77范文网 - 专业文章范例文档资料分享平台

福建省计算机二级常考题型

来源:网络收集 时间:1970-01-01 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

C语言习题

一、选择题部分

1、若有定义:int x=5,y=6;则表达式x=(y==6)的值为(B) A.5 B.1 C.6 D.0

2、若有定义:int a=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为(C) A.1 B.0 C.2 D.3

3、若一个外部变量的定义形式为static int x,其中static的作用是(D) A.将变量存放在静态存储区,使x的值可以永久保留 B.使变量x可以由系统自动初始化 C.使x的值可以永久保留 D.使x只能在本文件内引用

4、以下变量定义中合法的是(A)

A.short a=2.1e-1; B. double b=1+5e0.5; C.long do=0xffe D. float 3_end=1-e3; 5、C语言中的函数( B)

A.可以嵌套定义 B.嵌套调用和递归调用均可

C.不可以嵌套调用 D.可以嵌套调用但不可以递归调用 6、以下说法中正确的是(C)。

A. C语言程序总是从第一个的函数开始执行

B. 在C语言程序中,要调用的函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行

D. C语言程序中的main()函数必须放在程序的开始部分

7、凡是函数中未指定存储类别的局部变量,其隐含的存储类别是(A) A.auto B.static C.extern D.register 8、下列描述中不正确的是(C)。 A.字符型数组中可存放字符串。

B.可以对字符型数组进行整体输入、输出。 C.可以对整型数组进行整体输入、输出。

D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 9、若定义:int x=2; y=3; float i;则以下符合C语言语法的表达式是(B) A、x=x* 3=2 B、x=(y= = 1) C、i=float(x) D、i%(-3) 10、若有定义:char str[6]=“abcdm”,*ps,*str2=“abcdef”;正确的是(B) A.stycpy(str1,str2); B.表达式strcmp(str1,str2)的值>0 C.str1=str2; D.表达式strlen(str1)的值为6

11、设有如下定义typedef int *INTEGER;INTEGER P,*q;则(C)是正确的表述 A.P是int型变量 B.q是基类型为int的指针变量

C.P是基类型为int的指针变量 D.程序中可用INTEGER代替int类型名。 12、C语言对于计嵌套语句的规定:else总是与(B)配对 A.第一个if B.之前最近且尚未配对 C.缩进位置相同的if D之前最近的if

13、对于基类型相同的两个指针变量之间,不能进行的运算是(C) A.< B.= C.﹢ D.﹣

1

14、若函数fun的函数头为:int fun(int i,int j)且函数指针变量P定义如下:int (*P)(int i,int j);则要使指针P指向函数fun的赋值语句是(B) A. P=*fun B. P=fun; C. P=fun(i,j) D. P=&fun 15、对于整型变量x,与while(!x)等价的是(B)

A.while(x!=0) B.while(x==0) C.while(x!=1) D.while(x==1)

16、设有以下定义语句:struct student {int num;char name[10];float score;}wang,zhang;的变量wang所占的内存字节是(B)

A.14 B.16. C.18 D.9

17、设有以下定义语句:struct student {int num char name[10];float score;}wang,zhang;则不正确的叙述是(C)

A.struct 是结构体类型的关键字 B.zhang是结构体变量名

C.wang是结构体类型名 D.num,name,score都是结构体类型student的成员名 18、以下(D)是正确的变量名

A.a.bee B.-P11 C.int D.P_11 19、以下叙述中,正确的是(A)

A、宏展开不占用运行时间,只占用编译时间 B、预编译处理命令行必须以分号结束

C、一个源程序只能有一个预编译处理命令行

D、使用带参数的宏定义时,应该说明每个参数的数据类型 20、若有以下类型说明,叙述正确的是(A) typedef sturct { int num; char *name; int score;

} STU, *PSTU

A、STU是变量名 B、PSTU是变量名

C、PSTU是指向结构体类型STU的指针类型名 D、类型说明语句有错误 21、以下叙述正确的是(D)

A、C语言中的文件是流式文件,因此只能顺序存取数据

B、打开一个已存在的文件进行了写操作后,原有文件中的全部数据必定被覆盖

C、在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第一个数据

D、当对文件的写操作完成之后,必须将它关闭,否则可能导致数据丢失 22、设有如下定义语句: union u-type

{int i;double x;float f;}; struct str-type {char str[100]; union u_type u[2]; };

则语句“

printf(“%d”, sizeof(struct str-type) );”的输出结果是(B) A、100 B、116 C、120 D、200 23、标准函数fgets(s,n,f)的功能是(D)

2

A、从文件f中读取长度为n的字符串存入指针s所指的内存; B、从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C、从文件f中读取几个字符存入指针s所指的内在

D、从文件f中读取长度为n-1的字符串存入指针s所指的内存

24、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为“假”.则不能满足要求的表达式是( C )

A.a%2==1 B.!(a%2==0) C.!(a%2) D.a%2

25、若x和y为整数,以下表达式中不能正确表示数字关系|x-y|<10的是(C) A.abs(x-y)<10 B.(x-y)>-10&&(x-y)<10 C.!(x-y)<-10||!(y-x)>10 D.(x-y)*(x-y)<100

二、改错题部分

第一套卷:

cmody011.c

#include #include #include #include void main()

{ char str1[100], t[200]; int i, j;

/**/ i = 0; /**/ j=0 clrscr();

strcpy(str1, \ for (i = 0; i

/**/ if ((str1[i] %2== 0) && (i%2!=0)) /**/ if ((str1[i] %2== 0) && (i%2==0))

{

t[j] = str1[i]; j++; } }

t[j] = '\\0';

printf(\ printf(\ Result string: %s\\n\

3

cmody012.c

#include #include #include #include #define M 50 double fun(int n) { double y = 0.0; int i,j; j=0;

for(i=1;;i++) {

/**/ if((i<10)&&(i%3==0)) /**/ if((i>10)&&(i%3==0)) {

/**/ y+=1/i; /**/ y+=1.0/i; j++; }

if(j==n) break; }

return y; }

void main() { clrscr();

printf(\}

第二套卷

cmody021.c

#include void main() {

/**/ int i; j; /**/ int i, j;(概念错误) for (i=1;i<=5;i++) {

for (j=1;j<=10-2*i;j++) printf(\

/**/ for (j=1;j<=5;j++) /**/ for (j=1;j<=2*i-1;j++) printf(\ printf(\

4

*号的位置 } }

cmody022.c

#include #include

/**/int fun();/**/ int fun()(概念错误) { int hen,cock,chicken,n=0; clrscr();

for(cock=0;cock<=50;cock+=1) for(hen=0;hen<=100;hen=hen+1) { chicken=2*(100-hen-2*cock);

/**/ if(cock+hen+chicken=100) /**/ if(cock+hen+chicken==100) if后面关系表达式 { n++;

printf(\ if(n==20) getch(); } } return n; }

void main() { int num; num=fun();

printf(\ getch(); }

第三套卷

cmody031.c

#include #include void main()

{ int m,n,result,flag=0;

/**/ char ch, /**/ char ch;(概念错误) clrscr();

printf(\ scanf(\

/**/ switch ch /**/ switch (ch)

5

{ case '+': result=m+n; break; case '-': result=m-n; break; case '*': result=m*n; break; case '%': result=m%n; break; case '/': result=m/n; break;

default: { printf(\ }

if (!flag) printf(\ getch(); }

cmody032.c

#include #include void main() { int num; printf(\ num=fun();

printf(\ getch(); } int fun()

{ int m,i,k,n=0;

for(m=201; m<=300;m+=2) { k=sqrt(m+1); for(i=2;i<=k;i++)

/**/ if(m/i==0) /**/ if(m%i==0) break;

/**/ if(i==k) /**/ if(i>=k) { printf(\ n++;;

if(n==0) printf(\ } }

return n; }

模拟卷

evsum.c

#include void main() {

/**/ int sum=1,i; /**/ int sum=0,i

6

for(i=100; i>1; i--)

/**/ if(i%2=0) sum+=i; /**/ if(i%2==0) sum+=i; printf(\}

dafsum.c

#include void main() { int i,a,b,c;

/**/ for(i=100;i=999;i++) /**/ for(i=100;i<=999;i++) { a=i/100;

/**/ b=i/10; /**/ b=i/10; c=i;

/**/ if i==a*a*a+b*b*b+c*c*c /**/ if(i==a*a*a+b*b*b+c*c*c) printf(\ } }

三、填空题部分

第一套卷

ccon011.c

#include #include void main() {

int x;

/**/ float f ; /**/ printf(\ scanf(\

f = /**/ (fabs(x)-2)/(x*x+1) /**/ ; printf(\}

ccon012.c

#include void main() { double pi=0; long i, sign=1;

7

for(i=1;i<=10001;i+=2) {

pi+=1.0*sign/i;

sign=/**/ -sign; /**/; 题义中是正负交替的 }

pi*=/**/ 4 /**/; 前面一个系数 printf(\}

ccon013.c

#include #include int max,min;

void find_max_min(int *p,int n) {

int *q;

max=min=*p;

for(q=p; q*q) min=*q; }

void main() {

int i,num[10];

printf(\

for(i=0;i<10;i++) scanf(\

find_max_min(/**/ num /**/,10); 将主函数中的数组值[指针]传递给子函数 printf(\ }

第二套卷

ccon021.c

#include void main() {

int a,b,k;

int plu = /**/ 403 /**/; for(a=1; a<10; a++) for(b=1; b<10; b++) {

8

k = (a*10+b) * /**/(b*10+a ) /**/ ; if(k==plu) printf(\ } }

ccon022.c

#include void main() {

int n,a,b; /**/ a=0,b=0; /**/

scanf(\

while(/**/ n /**/) {

if(n>0) a++;

else /**/ b++; /**/ scanf(\ }

printf(\}

ccon023.c

#include #include int prime(int n) { int k,flag=1;

for(k=2; k<=n/2+1; k++)

if (n%k==0) { flag=/**/ 0 /**/ ; break;} return flag; }

void main() { int num, a; clrscr(); do

{ printf(\ scanf(\

}while(num<=6||num%2==1); for(a=2;a<=num/2+1;a++)

9

if(prime(a) && prime(/**/( num-a) /**/)) printf(\}

第三套卷

ccon031.c

#include #include

/**/ main() /**/ { float x,x0,f,f1; x=1.5; do

{ x0=x;

f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x=x0-f/f1;

}/**/ while /**/(fabs(x-x0)>=1e-6); printf(\}

ccon032.c

#include void main() { char s[80]; int i;

printf(\

for(i=0;((s[i]=getchar())!='\\n')&&(i<80);i++); s[i]='\\0';

for(i=0;s[i]!='\\0';/**/ i++ /**/) {

if(s[i]>='a'&&s[i]<='z') s[i]=s[i]-32;

else if(/**/ s[i]>='A'&&s[i]<='Z' /**/) s[i]=s[i]+32; printf(\ } }

ccon033.c

#include

10

float average(int *pa,int n) {

int k;

/**/ float avg=0; /**/ for(k=0;k

avg = avg+/**/ pa /**/; avg = avg/n; return avg; }

void main()

{ int a[5]={20,30,45,64,23}; float m;

m=average(/**/ a /**/, 5); printf(\}

模拟卷

calfun.c

#include #include void main() {

int x;

/**/ float f; /**/ printf(\ scanf(\

f = /**/ (abs(x)-2.0)/(x*x+1.0) /**/ ; printf(\ getch(); }

intsum.c

#include void main() {

int n,a,b; /**/ a=0,b=0; /**/

scanf(\

11

while(/**/n /**/) {

if(n%2==0) a+=n;

/**/ else b+=n /**/ scanf(\ }

printf(\}

fac.c

#include void main() { int n,i;

double s,fac;

/**/ s=0, fac=1; /**/ scanf(\ for(i=1;i<=n;i++) {

fac=/**/ fac/i /**/; s=s+fac; }

printf(\}

四、编程题部分

第一套卷

cprog011.c

#include #include double fun1(double x) { /**/ double f;

f=(1+sin(x)+exp(x))/(1+x); return f; /**/ }

void main() {

12

clrscr();

printf(\ printf(\ printf(\}

cprog012.c

#include #include #include #include

int fun2(int a[],int n,int b[],int c[]) {

/**/ int nb=0;

int i,j=0,temp; for(i=0;i

if(a[i]>-20) {b[j]=a[i];nb++;j++;} for(i=0;ic[j+1]) {

temp=c[j]; c[j]=c[j+1]; c[j+1]=temp; } return nb;

/**/ }

void main()

{ int n = 10, i, nb;

int aa[10] = {12, -10, -31, -18, -15, 50, 17, 15, -20, 20}; int bb[10], cc[10]; clrscr();

printf(\ printf(\

for(i=0; i

nb = fun2(aa, n, bb, cc);

13

printf(\

for (i=0; i

printf(\

for(i=0; i

printf(\}

第二套卷

cporg021.c

#include #include double fun1(double x) { /**/ double f;

f=(exp(x) +fabs(x-6)) / (x+1.3); return f;/**/ }

void main() {

clrscr();

printf(\ printf(\ printf(\}

cprog022.c

#include #include #include #include

void fun2(char a[],char b[],char c[]) {

/**/ if(strcmp(a,b)>0) {strcpy(temp,a);strcpy(a,b); strcpy(b,temp);} if(strcmp(a,c)>0) {strcpy(temp,a);strcpy(a,c); strcpy(c,temp);} if(strcmp(b,c)>0) {strcpy(temp,b);strcpy(b,c); strcpy(c,temp);}/**/

14

}

void main()

{ char str1[15]=\ clrscr();

fun2(str1,str2,str3);

printf(\ getch(); }

第三套卷

cprog031.c

#include #include double fun1(double x) {

/**/ double f; if(x<3) f=1.2;

else if(x==3) f=10; else f=2*x+1; return f;/**/ }

void main() {

clrscr();

printf(\ printf(\ printf(\}

cprog032.c

#include int fun(char *s) { /**/ int i,n=0;

for(i=0 ; s[i]!='\\0';i++) if(s[i]==' ') n++;

15

return n;/**/ }

void main() {

char str[255]; gets(str);

printf(\}

模拟卷

section.c

#include void main() { float x,y;

printf(\ scanf(\ /**/ if(x<=1) y=x+5; else if(x<=10) y=2*x; else y=3/(x-10);/**/ printf(\}

sort.c

#include void sort(int a[],int n) {

/**/k=i;

for(j=i+1;j

{t=a[i];a[i]=a[k];a[k]=t;} /**/ }

void main( )

{ int a[10]={6,3,12,0,2,10},i; sort(a,6);

printf(\ for(i=0;i<6;i++)

printf(\ printf(\

16

附录

1、打开程序Cprog042.C,完成其中的fun( )函数,使函数打印出Fibonacci数列的前20个数。该数列(1,1,2,3,5,8,13,…)的第1、第2个数为1,从第3个数开始每个数等于前2个数之和。 #include #include void fun(int a[],int m) {

/**/ int i;

a[0]=a[1]=1; for(i=2;i<20;i++) a[i]=a[i-1]+a[i-2]; /**/ }

void main() {

int a[20],i; fun(a,20);

for(i=0; i<20; i++) printf(\ printf(\ getch(); }

2、打开程序Cprog052.C,完成其中的fun( )函数,使其判断一个矩阵是否为对称矩阵,若矩阵对称返回1,不对称返回0。说明:矩阵a使一个二维数组,若其中的第k行第j列的元素与第j行第k列的元素相同,则称其为对称矩阵,否则为非对称矩阵。 如 输入:6 3 12 如 输入:6 9 12 3 18 8 3 18 8 12 8 7 34 8 22 输出:Yes 输出:No #include #include int fun(int a[][3],int m) { /**/

int b=1; int i,j;

for(i=0;i

for(j=0;j

return b;/**/

17

}

void main() {

int a[3][3],i,j; int b; fun(a,20);

for(i=0; i<3; i++) for(j=0; j<3; j++)

scanf(\ b = fun(a,3); if( b == 1 )

printf(\ else

printf(\ getch(); }

3、打开程序Cprog062.C,完成其中的fun( )函数,使其实现四则运算的功能。

如:输入:3.2 2.1

输出:3.20+2.10=5.3 3.2-2.10=1.10 3.20*2.10=6.72 3.20/2.10=1.52 #include #include

float fun(float a,char flag,float b) { /**/ float f;

switch(flag) {

case ‘+’: f=a+b; break; case ‘-’: f=a-b; break; case ‘*’: f=a*b; break; case ‘/’: f=a/b; break; }

return f; /**/ }

void main() {

float a,b;

printf(\ scanf(\

printf(\

18

printf(\ printf(\ printf(\ getch(); }

4、打开程序Cprog051.C,完成其中的f( )函数,使其计算:

?5.8?x?cos(x)?2.1f(x)???1;??x?700x??700

如 输入:0.4 输出:f(0.40)=0.82

输入:1.5 输出:f(1.50)=1.24 输入:780 输出:f(780.00)=-1.00 #include #include double f(float x) {

/**/double f;

if(fabs(x)<700) f=(sqrt(5.8+fabs(x)))/(cos(x)+2.1); else f=-1.0; return f;/**/ }

void main() {

float x; double y;

printf(\ scanf(\ y = f(x);

printf(\ getch(); }

5、打开程序Cprog061.C,完成其中的f( )函数,使其计算:

x?x?300?lg(|x|?2.6);f(x)???1;x??300??3

如:输入:0.8 输出:f(0.80)=0.96

输入:4.5 输出:f(4.50)=107.05 输入:725 输出:f(725.00)=-1.00 #include #include double f(float x) {

19

/**/double f;

if(fabs(x)<300) f=pow(x,3) /log10(fabs(x)+2.6); else f=-1.0; return f;/**/ }

void main() {

float x; double y;

printf(\ scanf(\ y = f(x);

printf(\ getch(); }

20

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库福建省计算机二级常考题型在线全文阅读。

福建省计算机二级常考题型.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/258303.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: