计算机等级考试二级C语言考试试题(带答案)
{ *p=cchar(*p);
p++;
}
printf("%s\n",s);
}
A) abc+ABC=DEFdef B) abc+abc=defdef
C) abcaABCDEFdef D) abcabcdefdef
(30) 以下程序的输出结果是
int f()
{ static int i=0;
int s=1;
s+=i; i++;
return s;
}
main()
{ int i,a=0;
for(i=0;i<5;i++) a+=f();
printf("%d\n",a);
}
A) 20 B) 24 C) 25 D) 15
(31) 以下程序段的输出结果是
char s[]="\\141\141abc\t";
printf ("%d\n",strlen(s));
A) 9 B) 12 C) 13 D) 14
(32) 若有以下程序
#include
void f(int n);
main()
{ void f(int n);
f(5);
}
void f(int n)
{ printf("%d\n",n); }
则以下叙述中不正确的是
A) 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B) 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
C) 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明
D) 函数f无返回值,所以可用void将其类型定义为无值型
(33) 以下程序调用findmax函数返回数组中的最大值
findmax(int *a,int n)
{ int *p,*s;
for(p=a,s=a; p-a
if ( ) s=p;
return(*s);
}
main()
{ int x[5]={12,21,13,6,18};
printf("%d\n",findmax(x,5));
}
在下划线处应填入的是
A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s
(34) 以下程序的输出结果是
main()
{ char cf[3][5]={"AAAA","BBB","CC"};
printf("\"%s\"\n",ch[1]);
}
A) "AAAA" B) "BBB" C) "BBBCC" D) "CC"
(35) 在C语言中,形参的缺省存储类是
A) auto B) register C) static D) extern
(36) 若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是
A) p=2*(int*)malloc(sizeof(int));
B) p=(int*)malloc(2*sizeof(int));
C) p=(int*)malloc(2*2);
D) p=(int*)calloc(2,sizeof(int));
(37) 以下程序的输出结果是
main()
{ char x=040;
printf("%0\n",x<<1);
}
A) 100 B) 80 C) 64 D) 32
(38) 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是
A) fopen("A:\user\abc.txt","r") B) fopen("A:\\user\\abc.txt","r+")
C) fopen("A:\user\abc.txt","rb") C) fopen("A:\\user\\abc.txt","w")
(39) 以下不能正确进行字符串赋初值的语句是
A) char str[5]="good!"; B) char str[]="good!";
C) char *str="good!"; D) char str[5]={‘g',‘o',‘o',‘d'};
(40) 若有下面的说明和定义:
struct test
{ int ml; char m2; float m3;
union uu {char ul[5]; int u2[2];} ua;
} myaa;
则sizeof(struct test )的值是
A) 12 B) 16 C) 14 D) 9
(41) 若有定义:int aa[ 8];。则以下表达式中不能代表数组元aa[1]的地址的是
A) &aa[0]+1 B) &aa[1] C) &aa[0]++ D) aa+1
(42) 以下程序的输出结果是
f(int b[],int m,int n)
{ int i,s=0;
for(i=m;i
return s;
}
main()
{int x,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}
A) 10 B) 18 C) 8 D) 15
(43) 若有以下定义和语句:
int s[4][5],(*ps)[5];
ps=s;
则对s数组元素的正确引用形式是
A) ps+1 B) *(ps+3) C) ps[0][2] D) *(ps+1)+3
(44) 以下程序的输出结果是
main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++) t=t+b[i][b[j][j]];
printf("%d\n",t);
}
A) 3 B) 4 C) 1 D) 9
(45) 以下程序的输出结果是
#include
#include
main()
{ char b1[8]="abcdefg",b2[8],*pb=b1+3;
while (--pb>=b1) strcpy(b2,pb);
printf("%d\n",strlen(b2));
}
A) 8 B) 3 C) 1 D) 7
(46) 在说明语句:int *f();中,标识符f代表的是
A) 一个用于指向整型数据的指针变量