1、二级 C语言笔试-259 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.进行二分法查找,则线形表_。(分数:2.00)A.必须以顺序方式存储B.必须以链接方式存储,且数据元素已按值排好序C.必须以链接方式存储D.必须以顺序方式存储,且数据元素已按值排好序2.设血 a=12;,则执行完语句 a+=a-=a*a;后,a 的值是_。(分数:2.00)A.522B.264C.144D.-2643.下列程序的输出结果为_。main ( )int p, y=0, x=0;p=x8 | y8;printf(“%d “,p);p+=(p+=2);prin
2、tf(“%d/n“,p);(分数:2.00)A.-1 0B.0 0C.0 4D.-1 24.下列语句中,不正确的是_。(分数:2.00)A.static int a23=1,2,3,4,5,6;B.static int a23=1,4,5;C.static int a 3=1,4;D.static int a =1,2,3,4,5,6;5.下列可作为 C语言赋值语句的是_。(分数:2.00)A.x=3,y=5;B.a=b=6;C.i-;D.y=int(x);6.在下列叙述中,错误的一条是_。(分数:2.00)A.定义 char*string=“China“中的 string是一个字符串变量,其
3、值为 ChinaB.若有一个多维数组 a,则*(a+i)与 ai等价C.int(*p)4表示 p为指针变量,它指向包含 4个元素的一维数组D.数组名代表数组的首地址,固定不变。指针变量可通过指向数组首地址来代表对应的数组,但其值可以改变7.下列程序的输出结果是_。main()int k=17;printf(“%d,%0,%x /n“,k,k,k);(分数:2.00)A.17,021,0x11B.17,17,17C.17,Ox11,021D.17,21,118.以下程序运行后的输出结果是_。main ()int y=18,i=0,j,a8;doai=y%2;i+;y=y/2;while(y=1)
4、;for(j=i-1;j=0;j-)printf(“%d“,aj);printf(“/n“);(分数:2.00)A.1000B.10010C.00110D.101009.在 C语言中,表达式 10!=9的值是_。(分数:2.00)A.TRUEB.非零值C.0D.110.下列程序中,正确的为_。(分数:2.00)A.main() int *pb= float 1=15.25;print f(“%d/n“ ,*pb); B.amin()int a,*pa;a=10;*pa=a;prinffC%d“,*pa);C.main() char s20; char *ps= scanf(“%s“,*p);
5、printf(“%s“,*p); D.main()char str10;int *ps=str0;str=“abcdefg“;printf(“%s“,*p);11.执行下面的语句后,表达式+xb?x:b-+x?+b:x 的值为_。int x=5,b=5;(分数:2.00)A.6B.7C.8D.912.执行以下语句后的输出结果是_。int x=3,y=0;printf(“%d,%d”,-1x-10, 则表达式(b2)/(b1)的值是_。(分数:2.00)A.0B.2C.4D.817.下列程序的输出结果是_。#includestdiohmain ()int a,b;for(a=1,b=1;a=10
6、0;a+)if(b=20)break;if(b%3=1)b+=3;continue;b-=5;printf(“%d/n“,a);(分数:2.00)A.7B.8C.9D.1018.人们提出了用_的原理来设计软件,这就是软件工程学诞生的基础。(分数:2.00)A.计算机科学B.数学C.工程学D.运筹学19.若变量 a、i 已正确定义,且 i已正确赋值,合法的语句是_。(分数:2.00)A.a=1;B.+1;C.a=a+=5;D.a=int(i);20.下列程序的输出结果是_。main()int i,j;for(j=10;j11;i+)for(i=9;ij;i+)if(!(j%i)break;if(
7、i=j-1)printf(”%d”,i);(分数:2.00)A.11B.10C.9D.10 1121.2个指针变量不可以_。(分数:2.00)A.相加B.比较C.相减D.指向同一地址22.若已定义以下语句,其中 0i9,则对 a数组元素不正确的引用为_。int a=0,1,2,3,4,5,6,7,8,9,*p=a,i;(分数:2.00)A.ap-aB.*(main ()int a2 3=1,3,5,7,9,11,*p;p=(int *)malloc(sizeof(int);fur (printf (“%d/n“, *p);(分数:2.00)A.1B.7C.9D.1128.下列各 m的值中,能使
8、 m%3=2(分数:4.00)填空项 1:_39.下列程序的功能是计算机一元二次方程的根。#include 【10】 #include stdio.hmain ( )float a, b, c, disc, x1, x2, realpart, imagpart;scanf(“%f%f%f“,printf(“The equation“);if( 【11】 =1e-6)printf(“ is not quadratic/n“);elsedisc=b*b-4*a*c;if (fabs (disc) =1e-6)printf(“has two equal roots:%-8.4f/n“,-b/(2*a
9、);else if( 【12】 )x1= (-b+sqrt (disc)/(2*a);x2= (-b-sqrt (disc)/(2*a);printf(“has distinct real roots:%8.4f and %.4f/n“,xl,x2);elserealpart=-b/(2*a);imagpart=sqrt (-disc)/(2*a);printf(“has complex roots:/n“);printf (“%8.4f+%. 4fi/n“, realpart, imagpart);printf (“%8.4f-%. 4fi/n“, realpart, imagpart);(
10、分数:4.00)填空项 1:_40.下列程序的功能是计算机平均成绩并统计 90分以上的人数。main ( )int n,m;float grade, average;average=n=m= 【13】 ;while( 【14】 )scanf(“%f“, if (grade0) break;m+;average+=grade;if (grade90) 【15】 ;m+;)if(n) printf(“%.2f %d/n“,average/n,m);(分数:4.00)填空项 1:_二级 C语言笔试-259 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00
11、)1.进行二分法查找,则线形表_。(分数:2.00)A.必须以顺序方式存储B.必须以链接方式存储,且数据元素已按值排好序C.必须以链接方式存储D.必须以顺序方式存储,且数据元素已按值排好序 解析:2.设血 a=12;,则执行完语句 a+=a-=a*a;后,a 的值是_。(分数:2.00)A.522B.264C.144D.-264 解析:3.下列程序的输出结果为_。main ( )int p, y=0, x=0;p=x8 | y8;printf(“%d “,p);p+=(p+=2);printf(“%d/n“,p);(分数:2.00)A.-1 0B.0 0C.0 4D.-1 2 解析:4.下列语
12、句中,不正确的是_。(分数:2.00)A.static int a23=1,2,3,4,5,6;B.static int a23=1,4,5;C.static int a 3=1,4;D.static int a =1,2,3,4,5,6; 解析:5.下列可作为 C语言赋值语句的是_。(分数:2.00)A.x=3,y=5;B.a=b=6;C.i-; D.y=int(x);解析:6.在下列叙述中,错误的一条是_。(分数:2.00)A.定义 char*string=“China“中的 string是一个字符串变量,其值为 China B.若有一个多维数组 a,则*(a+i)与 ai等价C.int(
13、*p)4表示 p为指针变量,它指向包含 4个元素的一维数组D.数组名代表数组的首地址,固定不变。指针变量可通过指向数组首地址来代表对应的数组,但其值可以改变解析:7.下列程序的输出结果是_。main()int k=17;printf(“%d,%0,%x /n“,k,k,k);(分数:2.00)A.17,021,0x11B.17,17,17C.17,Ox11,021D.17,21,11 解析:8.以下程序运行后的输出结果是_。main ()int y=18,i=0,j,a8;doai=y%2;i+;y=y/2;while(y=1);for(j=i-1;j=0;j-)printf(“%d“,aj)
14、;printf(“/n“);(分数:2.00)A.1000B.10010 C.00110D.10100解析:9.在 C语言中,表达式 10!=9的值是_。(分数:2.00)A.TRUEB.非零值C.0D.1 解析:10.下列程序中,正确的为_。(分数:2.00)A.main() int *pb= float 1=15.25;print f(“%d/n“ ,*pb); B.amin()int a,*pa;a=10;*pa=a;prinffC%d“,*pa);C.main() char s20; char *ps= scanf(“%s“,*p); printf(“%s“,*p); D.main()
15、char str10;int *ps=str0;str=“abcdefg“;printf(“%s“,*p);解析:11.执行下面的语句后,表达式+xb?x:b-+x?+b:x 的值为_。int x=5,b=5;(分数:2.00)A.6 B.7C.8D.9解析:12.执行以下语句后的输出结果是_。int x=3,y=0;printf(“%d,%d”,-1x-10, 则表达式(b2)/(b1)的值是_。(分数:2.00)A.0B.2C.4D.8 解析:17.下列程序的输出结果是_。#includestdiohmain ()int a,b;for(a=1,b=1;a=100;a+)if(b=20)b
16、reak;if(b%3=1)b+=3;continue;b-=5;printf(“%d/n“,a);(分数:2.00)A.7B.8 C.9D.10解析:18.人们提出了用_的原理来设计软件,这就是软件工程学诞生的基础。(分数:2.00)A.计算机科学B.数学C.工程学 D.运筹学解析:19.若变量 a、i 已正确定义,且 i已正确赋值,合法的语句是_。(分数:2.00)A.a=1;B.+1; C.a=a+=5;D.a=int(i);解析:20.下列程序的输出结果是_。main()int i,j;for(j=10;j11;i+)for(i=9;ij;i+)if(!(j%i)break;if(i=
17、j-1)printf(”%d”,i);(分数:2.00)A.11B.10 C.9D.10 11解析:21.2个指针变量不可以_。(分数:2.00)A.相加 B.比较C.相减D.指向同一地址解析:22.若已定义以下语句,其中 0i9,则对 a数组元素不正确的引用为_。int a=0,1,2,3,4,5,6,7,8,9,*p=a,i;(分数:2.00)A.ap-aB.*(main ()int a2 3=1,3,5,7,9,11,*p;p=(int *)malloc(sizeof(int);fur (printf (“%d/n“, *p);(分数:2.00)A.1B.7C.9 D.11解析:28.下
18、列各 m的值中,能使 m%3=2(分数:4.00)填空项 1:_ (正确答案:void fun (double b1022))解析:39.下列程序的功能是计算机一元二次方程的根。#include 【10】 #include stdio.hmain ( )float a, b, c, disc, x1, x2, realpart, imagpart;scanf(“%f%f%f“,printf(“The equation“);if( 【11】 =1e-6)printf(“ is not quadratic/n“);elsedisc=b*b-4*a*c;if (fabs (disc) =1e-6)p
19、rintf(“has two equal roots:%-8.4f/n“,-b/(2*a);else if( 【12】 )x1= (-b+sqrt (disc)/(2*a);x2= (-b-sqrt (disc)/(2*a);printf(“has distinct real roots:%8.4f and %.4f/n“,xl,x2);elserealpart=-b/(2*a);imagpart=sqrt (-disc)/(2*a);printf(“has complex roots:/n“);printf (“%8.4f+%. 4fi/n“, realpart, imagpart);pri
20、ntf (“%8.4f-%. 4fi/n“, realpart, imagpart);(分数:4.00)填空项 1:_ (正确答案:(10) math.h (11) fabs(a) (12) fabs(disc)1e-6)解析:40.下列程序的功能是计算机平均成绩并统计 90分以上的人数。main ( )int n,m;float grade, average;average=n=m= 【13】 ;while( 【14】 )scanf(“%f“, if (grade0) break;m+;average+=grade;if (grade90) 【15】 ;m+;)if(n) printf(“%.2f %d/n“,average/n,m);(分数:4.00)填空项 1:_ (正确答案:(13) 0 (14) 1 (15) continue)解析: