1、二级 C语言笔试-204 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.若 int类型数据占两个字节,则下列语句int k-1;printf(“%d,%u/n“,k,k);的输出为 ( )(分数:1.00)A.-1,-1B.-1,32767C.-1,32768D.-1,655352.下列常数中,不合法的 C常量是 ( )(分数:1.00)A.-0x3b1B.123e+2.3C.D.6e+73.若有以下定义和语句;double r=99,*p7;*pr;则以下正确的叙述是 ( )(分数:1.00)A.两处的*p 含义相同,都说明给指针变量
2、P赋值 3B.在“double r99,*p7;*p=r;”中,把 r的地址赋给了 p所指的存储单元C.语句“*pr;”把变量 r的值赋给指针变量 pD.语句“*p=r;”把变量 r的值放回 P中4. (分数:1.00)A.B.C.D.5.fwrite函数的一般调用形式是 ( )(分数:1.00)A.fwrite(buffer,count,fp,size);B.fwrite(fp,size,count,buffer);C.fwrite(fp,count,size,buffer);D.fwrite(buffer,size,count,fp);6.有下列程序main()double d;float
3、 f;long l;int i;i=f=1=d203;printf(“%d%1d %f %f/n“,i,1,f,D) ;程序运行后的输出结果是(小数点后只写 1位) ( )(分数:1.00)A.6 6 6.0 6.0B.6 6 6.7 6.7C.6 6 6.0 6.7D.6 6 6.7 6.07.有以下程序void ss(char * s,char t)while(*s)if(*s=t)*st-a+A;s+;main()char str1100“abcddfefdbd“,cd:ss(str1,C) ;printf(“%s/n“,str1);程序运行后的输出结果是 ( )(分数:1.00)A.A
4、BCDDEFEGDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd8.已知大写字母 A的 ASCII码值是 65,小写字母 a的 ASCII码是 97,则用八进制表示的字符常量/101是 ( )(分数:1.00)A.字符 AB.字符 aC.字符 eD.非法的常量9.在关系数据库中,对一个关系做投影操作后,新关系的元组个数将 ( )(分数:1.00)A.等于原来关系中的元组个数B.大于原来关系中的元组个数C.小于原来关系中的元组个数D.不能确定元组个数10.已知下列函数定义setw(int *b,int m,int n,int dat)int k;for(k=0
5、;km*n,k+)*bdat;b+;则调用此函数的正确写法是(假设变量 a的说明为 int a50) ( )(分数:1.00)A.setw(*a,5,8,1);B.setw(too;DATE max;则下列语句的执行结果是 ( )printf(“%d“,stzeof(struct date)+sizeof(max);(分数:1.00)A.25B.30C.18D.832.有如下程序main()int x1,a0,b0;switch(x)case 0 : b+;case 1 : a+;case 2 : a+;b+;printf(“a=%d,b=%d/n“,a,B) ;程序运行后的输出结果是 ( )
6、(分数:1.00)A.a2,b1B.a1,b=1C.a=1,b=0D.a=2,b=233.已有定义语句:int x3,y0,z0;,则值为 0的表达式是 ( )(分数:1.00)A.x*b=c;main()cha,a,b;aA;bB;sub3(putchar(B.;aA;35.若有以下说明和定义fun(int *C) main()int(*(分数:1.00)A.()fun,*b(),w10,c;在必要的赋值之后,对 fun函数的正确调用语句是 ( )A) aa(w);B.(*a) ( main()int s331,2,3,4,5,6,7,8,9;sub(s,2); 则程序运行后的输出结果是 (
7、 )(分数:1.00)A.3 6 9B.2 4 8C.4 5 6D.7 8 937.结构化程序设计所规定的三种基本控制结构是 ( )(分数:1.00)A.输入、处理、输出B.树形、网形、环形C.顺序、选择、循环D.主程序、子程序、函数38.以下有四组用户标识符,其中合法的一组是 ( )(分数:1.00)A.For -subCaseB.4dDOSizeC.f2_G3 IFabcD.WORDvoiddefine39.若变量已正确说明为 float类型,要通过语句 scanf(“%f %f %f“, 则程序运行后的输出结果是 ( )(分数:1.00)A.12345B.1234567C.1234567
8、8D.12345641.以下选项中,正确的 if-else语句是 ( )(分数:2.00)A.if(x!0) printf(“%d“,x) else printf(“%d“,-x);B.if(x!0)xx+y;printf(“%d“,x);elseprintf(“%d“,-x);C.if(x!=0) xx+y;printf(“%d“,x);else printf(“%d“,-x);D.if(x!=0)xx+y;printf(“%d“,x);elseprintf(“%d“,-x);42.执行下面的程序段int x=40;char zB;int B;B=(x【19】 ;while(chgetcha
9、r()!=#)fputc( 【20】 );fclose(fp);(分数:6.00)填空项 1:_二级 C语言笔试-204 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.若 int类型数据占两个字节,则下列语句int k-1;printf(“%d,%u/n“,k,k);的输出为 ( )(分数:1.00)A.-1,-1B.-1,32767C.-1,32768D.-1,65535 解析:2.下列常数中,不合法的 C常量是 ( )(分数:1.00)A.-0x3b1B.123e+2.3 C.D.6e+7解析:3.若有以下定义和语句;double r=
10、99,*p7;*pr;则以下正确的叙述是 ( )(分数:1.00)A.两处的*p 含义相同,都说明给指针变量 P赋值 3B.在“double r99,*p7;*p=r;”中,把 r的地址赋给了 p所指的存储单元C.语句“*pr;”把变量 r的值赋给指针变量 pD.语句“*p=r;”把变量 r的值放回 P中 解析:4. (分数:1.00)A.B.C. D.解析:5.fwrite函数的一般调用形式是 ( )(分数:1.00)A.fwrite(buffer,count,fp,size);B.fwrite(fp,size,count,buffer);C.fwrite(fp,count,size,buf
11、fer);D.fwrite(buffer,size,count,fp); 解析:6.有下列程序main()double d;float f;long l;int i;i=f=1=d203;printf(“%d%1d %f %f/n“,i,1,f,D) ;程序运行后的输出结果是(小数点后只写 1位) ( )(分数:1.00)A.6 6 6.0 6.0 B.6 6 6.7 6.7C.6 6 6.0 6.7D.6 6 6.7 6.0解析:7.有以下程序void ss(char * s,char t)while(*s)if(*s=t)*st-a+A;s+;main()char str1100“abcd
12、dfefdbd“,cd:ss(str1,C) ;printf(“%s/n“,str1);程序运行后的输出结果是 ( )(分数:1.00)A.ABCDDEFEGDBDB.abcDDfefDbD C.abcAAfefAbAD.Abcddfefdbd解析:8.已知大写字母 A的 ASCII码值是 65,小写字母 a的 ASCII码是 97,则用八进制表示的字符常量/101是 ( )(分数:1.00)A.字符 A B.字符 aC.字符 eD.非法的常量解析:9.在关系数据库中,对一个关系做投影操作后,新关系的元组个数将 ( )(分数:1.00)A.等于原来关系中的元组个数 B.大于原来关系中的元组个数
13、C.小于原来关系中的元组个数D.不能确定元组个数解析:10.已知下列函数定义setw(int *b,int m,int n,int dat)int k;for(k=0;km*n,k+)*bdat;b+;则调用此函数的正确写法是(假设变量 a的说明为 int a50) ( )(分数:1.00)A.setw(*a,5,8,1);B.setw(too;DATE max;则下列语句的执行结果是 ( )printf(“%d“,stzeof(struct date)+sizeof(max);(分数:1.00)A.25B.30 C.18D.8解析:32.有如下程序main()int x1,a0,b0;swi
14、tch(x)case 0 : b+;case 1 : a+;case 2 : a+;b+;printf(“a=%d,b=%d/n“,a,B) ;程序运行后的输出结果是 ( )(分数:1.00)A.a2,b1 B.a1,b=1C.a=1,b=0D.a=2,b=2解析:33.已有定义语句:int x3,y0,z0;,则值为 0的表达式是 ( )(分数:1.00)A.x*b=c;main()cha,a,b;aA;bB;sub3(putchar( B.;aA;解析:35.若有以下说明和定义fun(int *C) main()int(*(分数:1.00)A.()fun,*b(),w10,c;在必要的赋值
15、之后,对 fun函数的正确调用语句是 ( )A) aa(w);B.(*a) ( main()int s331,2,3,4,5,6,7,8,9;sub(s,2); 则程序运行后的输出结果是 ( )(分数:1.00)A.3 6 9 B.2 4 8C.4 5 6D.7 8 9解析:37.结构化程序设计所规定的三种基本控制结构是 ( )(分数:1.00)A.输入、处理、输出B.树形、网形、环形C.顺序、选择、循环 D.主程序、子程序、函数解析:38.以下有四组用户标识符,其中合法的一组是 ( )(分数:1.00)A.For -subCaseB.4dDOSizeC.f2_G3 IFabc D.WORDv
16、oiddefine解析:39.若变量已正确说明为 float类型,要通过语句 scanf(“%f %f %f“, 则程序运行后的输出结果是 ( )(分数:1.00)A.12345B.1234567C.12345678D.123456 解析:41.以下选项中,正确的 if-else语句是 ( )(分数:2.00)A.if(x!0) printf(“%d“,x) else printf(“%d“,-x);B.if(x!0)xx+y;printf(“%d“,x);elseprintf(“%d“,-x); C.if(x!=0) xx+y;printf(“%d“,x);else printf(“%d“,-x);D.if(x!=0)xx+y;printf(“%d“,x);elseprintf(“%d“,-x);解析:42.执行下面的程序段int x=40;char zB;int B;B=(x【19】 ;while(chgetchar()!=#)fputc( 【20】 );fclose(fp);(分数:6.00)填空项 1:_ (正确答案:18fname,“#“19exit(0)20ch,fp)解析: