全国计算机等级考试二级C语言笔试题详解 联系客服

发布时间 : 星期一 文章全国计算机等级考试二级C语言笔试题详解更新完毕开始阅读56a95f25e2bd960590c67748

{ double s[10][22]; int n: ?? fun(s); ?? }

参考答案:void fun(double b[10][22]) 知识点:函数的定义

评析:本题答案:void fun(double h[10][22]) (32)以下程序的输出结果是______。 void fun()

{ static int a=0;

a+=2;printf("%d",a); } main() { int cc;

for(cc=1;cc<4;cc++)fun(); printf("\\n"); }

参考答案:246

知识点:变量类型的作用域

评析:循环for(cc=1;cc<4;cc++)被执行了3次。在函数fun中,由于a是static型变量,所以函数第1次调用后,a=2;第2次调用后,a=4;第3次调用后,a=6。

(21)以下程序的输出结果是______。 #define MAX(x,y) (x)>(y)?(x):(y) main()

{ int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf("%d\\n",t); }

参考答案:7 知识点:宏定义

评析:在c语言中,宏定义是直接替换的,所以在对表达式MAX(a+b,c+d)*10进行或替换后,表达式变为:(a+b)>(c+d)?(a+b):(c+d)*10 。

在这个条件表达式中,(a十b)>(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+d)*10的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。

(22)用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。

St=(char*)_______; 参考答案:malloc(11) 知识点:动态分配内存

评析:malloc函数的格式是:void*(或char*)malloc(size),size表示应分配的存储区。此题要分配11字节的单元,把11代入即可。

(23)下列程序段的输出结果是_______。 main()

{ char b[]="Hello,you"; b[5]=0;

printf("%s\\n",b); }

参考答案:Hello 知识点:字符数组

评析:字符串中,数值0或符号’\\0’表示字符串的结束。本题中,b[5]被赋了0值,表明字符串b的第六个字符就是结束标志。因此,只输出前五个字符,即Hello。

(24)以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。 void fun(int*x,int*y) { ?? } main()

{ int a=10,b=20; ______;

p=fun; p(&a,&b); ?? }

参考答案:void(*p)(); 知识点:函数指针的定义

评析:要定义p为指向函数的指针变量,需写成:void(*p)();,注意*p两侧的括弧不可以省略,表示p先与*结合,是指针变量,再与后面的()结合,表示此指针变量指向函数,这个函数无返回值(同fun函数)。

(25)下列程序的输出结果是_______。