全国计算机等级考试C语言2级笔试题-(25)2007年4月1

更新时间:2023-09-30 19:22:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2007年4月全国等级考试题目

第25次(已经修改)

一、选择题

11. 算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。这属于算法的( )

C) 确定性

(12-50),C语言综合单向选择题 12. 以下叙述中错误的是( )

D) 后缀为.obj和.exe的二进制文件都可以直接运行

13. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( ) B) 连接符

14. 以下叙述中错误的是( )

C) 使用三种基本结构构成的程序只能解决简单问题 15. 对于一个正常运行的C程序,以下叙述中正确的是( )

A) 程序的执行总是从main函数开始,在main函数结束

16. 设变量均已正确定义,若要通过scanf(\,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值 10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:口代表空格字符) ( )

D) 10X<回车> 20Y<回车> 17. 若有代数式

(其中e仅代表自然对数的底数,不是变量),则以下能够正确

表示该代数式的C语言表达式是( ) C) sqrt(fabs(pow(n,x)+exp(X))) 18. 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( )

A) k++

19. 有以下程序,其中%u表示按无符号整数输出

main() {

unsigned int x=0xFFFF;/* x的初值为+六进制数 */ printf(\,x); }

程序运行后的输出结果是( ) B) 65535

20. 设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是( )

C) if(x>0)x- else y++;

21. 以下选项中,当x为大于1的奇数时,值为0的表达式是( ) D) x%2==0

22. 以下叙述中正确的是( )

C) break语句只能用在循环体内和switch语句体内 23. 有以下程序 main()

{ int k=5,n=0; do

{ switch(k)

{ case 1:

case 3:n+=1;k--;break; default:n=0;k--; case 2:

case 4:n+=2;k--;break; }

printf(\,n); }while(k>0&&n<5); }

程序运行后的输出结果是( ) A) 235

24. 有以下程序

main()

{int i,j;

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

for(j=i;j<4;j++)

printf(\,i,j,i*j); printf(\; } }

程序运行后的输出结果是( )

B) 1*1=1 1*2=2 1*3=3 2*2=4 2*3=6 3*3=9 25. 以下合法的字符型常量是( ) A) '\\x13'

26. 在C语言中,函数返回值的类型最终取决于( )

A) 函数定义时在函数首部所说明的函数类型

27. 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是( ) D)c=('A'+c)&-'a' 28. 有以下函数

int fun(char *s) { char *t=s; while(*t++); return(t-s); }

该函数的功能是

B) 计算s所指字符串占用内存字节的个数 29. 设已有定义:float x;,则以下对指针变量p进行定义且赋初值的语句中正确的是( ) D) float *p=&x; 30. 有以下程序

#include main()

{ int n,*p=NULL; *p=&n;

printf(\:\; scanf(\,&p); printf(\:\; printf(\,p); }

该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是( ) A) int n,*p=NULL;

31. 以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。

void f(int b[],int n,int flag) { int i,j,t;

for(i=0;i

for(j=i+1;jb[j]:b[i]

{t=b[i];b[i]=b[j];b[j]=t;}

} main()

{ int a[10]={5,4,3,2,1,6,7,8,9,10},i; f(&a[2],5,0); f(a,5,1); for(i=0;i<10;i++)

printf(\,\,a[i]); }

程序运行后的输出结果是( )

B) 3,4,5,6,7,2,1,8,9,10, 32. 有以下程序 void f(int b[]) { int i;

for(i=2;i<6;i++) b[i]*=2; } main()

{ int a[10]={1,2,3,4,5,6,7,8,9,10),i;

f(a);

for(i=0;i<10,i++)

printf(\,\,a[i]);

}

程序运行后的输出结果是( )

B) 1,2,6,8,10,12,7,8,9,10, 33. 有以下程序

typedef struct{int b,p;}A;

void f(A c) /* 注意:c是结构变量名 */ { int j; c.b+=1; c.p+=2; }

main()

{ int i;

A a={1,2}; f(a);

printf(\,%d\\n\,a.b,a.p); }

程序运行后的输出结果是( )

D) 1,2 34. 有以下程序 main()

{ int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t; for(i=0;<4:i++)

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

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]

{t=a[j][i];a[j][i]=a[k][i]=a[k][i]=t;} /*按列排序*/

for(i=0;i<4;i++)printf(\,\,a[i][i]); }

程序运行后的输出结果是( ) A) 1,6,5,7, 35. 有以下程序

main()

{ int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t; for(i=0;i<3;i++) for(k=i+1;k<4;k++)

if(a[i][i]

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

for(i=0;i<4;i++)

printf(\,\,a[0][i]); }

程序运行后的输出结果是( ) B) 6,4,3,2, 36. 有以下程序

void f(int *q) { int i=0; for(;i<5;i++)

(*q)++;

}

main()

{ int a[5]={1,2,3,4,5},i; f(a); for(i=0;i<5;i++)

printf(\,\,a[i]); }

程序运行后的输出结果是

B) 6,2,3,4,5, 37. 有以下程序

#include main()

{ char p[20]={'a','b','c','d'},q[]=\,r[ ]=\; strcpy(p+strlen(q),r); strcat(p,q);

printf(\,sizeof(p),strlen(p)); }

程序运行后的输出结果是( )

A) 20 9 B) 9 9 C) 20 11 D) 11 11 38. 有以下程序

#include main()

{ char p[20]={'a','b','c','d'},q[ ]=\,r[ ]=\; strcat(p,r);

strcpy(p+strlen(q),q); printf(\,strlen(p)); }

程序运行后的输出结果是( ) B) 6

39. 有以下程序

#include

void f(char p[][10],int n)/*字符串从小到大排序*/ { char t[10];int i,j; for(i=0;i

for(j=i+1;j0) { strcpy(t,p[i]);

strcpy(p[i],p[j]); strcpy(p[j],t); } }

main()

{ char p[5][10]={\,\,\,\,\; f(p,5);

printf(\,strlen(p[0]));

}

程序运行后的输出结果是( ) C) 6 40. 有以下程序

void f(int n,int *r) { int r1=0;

if(n%3==0) r1=n/3; else if(n%5==0) r1=n/5; else f(--n,&r1); *r=r1; } main()

{ int m=7,r; f(m,&r);

printf(\,r); }

程序运行后的输出结果是( ) A) 2

41. 有以下程序

main(int argc,char *argv[ ]) { int n=0,i;

for(i=1;i

n=n*10+ *argv[ i ] - '0'; printf(\,n); }

编译连接后生成可执行文件tt.exe。若运行时输入以下命令行tt 后的输出结果是( ) D) 136

42. 有以下程序 int a=4; int f(int n)

{ int t=0;static int a=5; if (n%2)

{ int a=6;t+=a++;} else

{ int a=7;t+=a++;} return t+a++; }

main()

{ int s=a,i=0;

for(;i<2;i++) s+=f(i); printf(\,s); }

程序运行后的输出结果是( )

345 678 。程序运行 12 B) 28

43. 有一个名为init.txt的文件,内容如下: #define HDY(A,B) A/B

#define PRINT(Y) printf(\,Y) 有以下程序

#include\ main()

{ int a=1,b=2,c=3,d=4,k; k=HDY(a+c,b+d); PRINT(k); }

下面针对该程序的叙述正确的是( ) D) 运行结果为y=6 44. 有以下程序

main() {

char ch[]=\,*pc; pc=ch;

printf(\,*(pc+5)); }

程序运行后的输出结果是( ) A) z

45. 有以下程序

struct S { int n;int a[20];}; void f(struct S *p)

{ int i,j,t;

for(i=0;in-1;i++)

for(j=i+1;jn;j++) if(p->a[i]>p->a[j])

{t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}

} main() { int i;

struct S s={10,{2,3,l,6,8,7,5,4,10,9}}; f(&s);

for(i=0;i

printf(\,\,s.a[i]); }

程序运行后的输出结果是( )

A) 1,2,3,4,5,6,7,8,9,10, 46. 有以下程序

struct S { int n;int a[20];}; void f(int *a,int n) { int i;

for(i=0;i

main() { int i;

struct S s={10,{2,3,1,6,8,7,5,4,10,9}}; f(s.a,s.n); for(i=0;i

printf(\,\,s.a[i]); }

程序运行后的输出结果是( )

A) 2,4,3,9,12,12,11,11,18,9, 47. 有以下程序段

typedef struct node { int data;struct node *next;} *NODE; NODE p;

以下叙述中正确的是( )

C) p是指向struct node结构变量的指针 48. 有以下程序

main() {

unsigned char a=2,b=4,c=5,d; d = a|b; d &=c;

printf(\,d); }

程序运行后的输出结果是( ) B) 4

49. 有以下程序

#include main() { FILE *fp;

int k,n,a[6]={1,2,3,4,5,6}; fp=fopen(\,\;

fprintf(fp,\,a[0],a[1],a[2]);

fprintf(fp,\,a[3],a[4],a[5]); fclose(fp);

fp=fopen(\,\; fscanf(fp,\,&k,&n); printf(\,k,n); fclose(fp); }

程序运行后的输出结果是( ) D) 123 456 50. 有以下程序

#include

main() { FILE *fp;

int i,a[6]={1,2,3,4,5,6}; fp=fopen(\,\; fwrite(a.sizeof(int),6,fp); fseek(fp,sizeof(int)*3,SEEK_SET);

/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/ fread(a,sizeof(int),3,fp); fclose(fp); for(i=0;i<6;i++)

printf(\,\,a[i]); }

程序运行后的输出结果是( ) A) 4,5,6,4,5,6, 二、填空题

6. 执行以下程序后的输出结果是 【6】 。 main()

{ int a=10;

a=(3*5,a+4);printf(\,a); } a=14

7. 当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行 【7】 次。 #include main() { char ch;

while((ch=getchar())=='0')prinft(\; } 0

8. 以下程序的运行结果是 【8】 。 int k=0;

void fun(int m) { m+=k;

k+=m;

printf(\ k=%d \,m,k++); } main()

{ int i=4;

fun(i++);

printf(\ k=%d\\n\,i,k); }

m=4 k=4 i=5 k=5

9. 以下程序的运行结果是 【9】 。 main()

{ int a=2,b=7,c=5; switch(a>0)

{ case 1:switch(b<0)

{ case 1:printf(\;break; case 2:printf(\;break; }

case 0:switch(c==5)

{ case 0:printf(\;break; case 1:printf(\;break; case 2:printf(\$\;break; }

default:printf(\; }

printf(\; } #&

10. 以下程序的输出结果是 【10】 。 #include main()

{ printf(\,strlen(\;} 9

11. 已定义char ch='$';int i=1,j;,执行j!=ch&&i++以后,i的值为 【11】 。 1

12. 以下程序的输出结果是 【12】 。 #include main()

{ char a[]={'\\1','\\2','\\3','\\4','\\0'}; printf(\,sizeof(a),strlen(a)); } 54

13. 设有定义语句:int a[][3]={{0},{1}{2}};,则数组元素a[1][2]的值是 【13】 。 0

14. 以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

main()

{ int x[10],a[9],i;

for(i=0;i<10;i++) scanf(\,&x[i]); for( 【14】 ;i<10;i++) a[i-1]=x[i]+ 【15】 ;

for(i=0;i<9;i++) printf(\,a[i]); printf(\; }

[14]i=1 [15]x[i-1]

15. 以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上。请填空。 main()

{ int x,y,z,max,*px,*py,*pz,*pmax; scanf(\,&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max; 【16】 ;

if (*pmax<*py) *pmax=*py; if (*pmax<*pz) *pmax=*pz; printf(\,max); }

*pmax=*px

16. 以下程序的输出结果是 【17】 。 int fun(int *x,int n) { if (n==0)

return x[0];

else

return x[0]+fun(x+1,n-1); }

main()

{ int a[]={1,2,3,4,5,6,7};

printf(\,fun(a,3)); } 10

17. 以下程序的输出结果是 【18】 。 #include main()

{ char *s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char)); *s1=15;

*s2=20;

m=*s1+*s2;

printf(\,m); } 40

18. 设有说明

struct DATE { int year;int month;int day;};

请写出一条定义语句,该语句定义d为上述结构体类型变量,并同时为其成员year、month、day依次赋初值2006、10、1: 【19】 。

struct DATE d={2006,10,1};

[解析] 本题考查结构体变量初始化的问题。正确的语句应为“struct DATE d={2006,10,1};”。

19. 设有定义:FILE *fw;,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容。

fw=fopen(\, 【20】 ); \

本文来源:https://www.bwwdw.com/article/n92d.html

Top