2002年9月全国计算机等级考试二级C笔试试卷含答案
计算机二级笔试题
程序运行后的输出结果是 A)1,2,3,4,5,6,7,8,9,10 B) 10,9,8,7,6,5,4,3,2,1, C) 1,2,3,8,7.6.5.4.9,10 D) 1,2,10,9,8,7,6,5,4,3 (32) 有以下程序 int f(int n)
{ if (n==1) return 1; else return f(n-1)+1; } main() { int i,j=0;
for(i=i;i<3;i++) j+=f(i); printf(“%d\n”,j); }
程序运行后的输出结果是 A) 4 B) 3 C) 2 D) 1 (33) 有以下程序 main() { char
a[ ]={‘a’,‘b’,‘c’,‘d’, ‘e’, ‘f’,
‘g’,‘h’,‘\0’}; int i,j;i=sizeof(a); j=strlen(a); printf(“%d,%d\b”i,j); }
程序运行后的输出结果是 A)9,9 B)8,9 C)1,8 D)9,8
(34) 以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。
void reverse(int a[ ],int n) { int i,t; for(i=0;i { t=a;
a=a[n-1-i];a[n-1-i]=t;} } main() { int
b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse(b,8);
for(i=6;i<10;i++) s+=b;
printf(“%d\n”,s); }
程序运行后的输出结果是 A) 22 B) 10 C) 34 D) 30 (35) 有以下程序 main() { int
aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0
for(i=0;i<4;i++) s+=aa[1]; printf(“%d\n”,s); }
程序运行后的输出结果是 A) 11 B) 19 C) 13 D) 20 (36) 有以下程序 #include main() { char
*p=“abcde\Ofghjik\0”; printf(“%d\n”,strlen(p)); }
程序运行后的输出结果是 A) 12 B) 15 C) 6 D) 5 (37) 程序中头文件typel.h 的内容是: #define N 5 #define M1 N*3 程序如下:
#define “type1.h” #define M2 N*2 main() { int i;
i=M1+M2; printf(“%d\n”,i); }
程序编译后运行的输出结果是: A) 10 B) 20 C) 25 D) 30 (38) 有以下程序 #include main()
{ FILE *fp; int i=20,j=30,k,n; fp=fopen(“d1.dat”“w”); fprintf(fp,“%d\n”,i);fprintf(fp,“%d\n”j);
fclose(fp);
fp=fopen(“d1.dat”, “r”); fp=fscanf(fp,“%d%d”,&k,&n);
printf(“%d%d\n”,k,n); fclose(fp); }
程序运行后的输出结果是 A) 20 30 B) 20 50 C) 30 50 D) 30 20
(39) 以下叙述中错误的是 A) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以 B) 在程序结束时,应当用fclose函数关闭已打开的文件 C) 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据 D) 不可以用FILE定义指向二进制文件的文件指针 (40) 有以下程序 #include
main(int argc,char *argv[]) { int i,len=0;
for(i=1;iprintf(“%d\n”,len); }
程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是: ex1 abcd efg 10<回车> 则运行的结果是: A) 22 B) 17 C) 12 D) 9 (41) 有以下程序 int fa(int x) { return x*x; } int fb(int x) { return x*x*x; } int f(int (*f1)(),int (*f2)(),int x)
{ return f2(x)-f1(x); } main() { int i; i=f(fa,fb,2);


