福建省C语言二级考试模拟试卷之二一、选择题。(本大题共40个选项,【1】~【40】每个选择项1.5分,共60分)1.属于整型常量的是【1】。【1】(A)12(B)12.0(C)-12.0(D)10E102.char型常量在内存中存放的是【2】。【2】(A)ASCII代码值(B)BCD代码值(C)内码值(D)十进制代码值3.设整型变量a为5,使b不为2的表达式是【3】。【3】(A)b=a/2(B)b=6-(--a)(C)b=a%2(D)b=a>3?2:14.执行语句“x=(a=3,b=a--);”后,x、a、b的值依次为【4】。【4】(A)3,3,2(B)3,2,2(C)3,2,3(D)2,3,25.sizeof(double)的结果值是【5】。【5】(A)8(B)4(C)2(D)出错6.设整型变量x的值为35,则表达式“(x&15)&&(x|15)”的值是【6】。【6】(A)0(B)1(C)15(D)357.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是【7】。【7】(A)0(B)4(C)-4(D)28.设f为实型变量,下列表达式中不是逗号表达式的是【8】。【8】(A)f=3,4,5(B)f=(3,2,1,0)(C)f>=3,f<2,0(D)f=2,f=19.设有无符号短整型变量i、j、k,i值为013,j值为0x13。执行语句“k=~i|j>>3;”后,k的值是【9】。【9】(A)06(B)0177776(C)066(D)017776610.指出下列语句中有实际意义的语句是【10】。【10】(A)a||b;(B)a!=b;(C)a+=b;(D)getchar(a);11.在16位PC机上执行下列语句后,a的16进制值是【11】,b的值是【12】,c的值是【13】,d的值是【14】。inta,b,c;longd;b=(a=32767,a+1);c=d=0xffff;【11】(A)0xffff(B)0x7fff(C)0xfffe(D)0x7ffe【12】(A)32767(B)32768(C)0(D)-32768【13】(A)65535(B)32768(C)0(D)-1【14】(A)65535(B)32768(C)0(D)-112.指出下面正确的输入语句是【15】。【15】(A)scanf("a=b=%d",&a,&b);(B)scanf("a=%d,b=%f",&m,&f);(C)scanf("%3c",c);(D)scanf("%5.2f",&f);13.C语言用【16】表达逻辑“真”值。【16】(A)true(B)t或y(C)非零整型值(D)整型值014.下列循环结构中,【17】不是无限循环。【17】(A)for(i=1,s=0;;i++)(B)i=10;s=s+i;while(1){i=i%10+1;if(i>10)break;}(C)i=0;(D)i=100;dowhile(i++%2+i%2){i++;++i;}while(i>=0);15.执行下列程序段后,x的值是【18】,i的值是【19】。inti,x;for(i=1,x=1;i<=20;i++){if(x>=10)break;if(x%2==1){x+=5;continue;}x-=3;}【18】(A)6(B)7(C)10(D)14【19】(A)4(B)5(C)6(D)716.下列程序:#include#defineN6main(){chars[N];inti=0;for(;ibcdef程序输出的结果是【20】。【20】(A)abcdef(B)a(C)a(D)abbbccdcdefdef17.下列程序正确的运行结果为【21】。structs{intn;int*m;}*p;intd[5]={10,20,30,40,50};structsarr[5]={100,&d[0],200,&d[1],300,&d[2],400,&d[3],500,&d[4]};#includemain(){p=arr;printf("%d\n",++p->n);printf("%d\n",(++p)->n);printf("%d\n",++(*p->m));}【21】(A)101(B)101200202130(C)200(D)100101101211018.设有以下一程序段:chars[]="Hello";char*p;p=s;执行完上面的程序段后,*(p+5)的值为【22】。【22】(A)'o'(B)'\0'(C)'o'的地址(D)不确定的值19.以下程序输出两个整数中较大的数,两个整数由键盘输入。请根据需填空的项目顺序从对应的选择项顺序组中选择正确内容填入程序的横线内,使其能完成这一操作。#includemain(){inta,b,*p1,*p2;p1=(int*)malloc(sizeof(int));p2=【23】malloc(sizeof(int));scanf("%d%d",【24】);if(*p2>*p1)*p1=*p2;printf("max=%d\n",【25】);free(p1);free(p2);}【23】(A)int(B)int*(C)(int)(D)(int*)【24】(A)*p1,*p2(B)p1,p2(C)&p1,&p2(D)&a,&b【25】(A)*p1(B)*p2(C)p1(D)p220.以下定义与【26】中的定义等价。int*p[4];【26】(A)intp[4](B)int*p(C)int*(p[4])(D)int(*p)[4]21.若有以下定义和语句,则【27】是对a数组元素的错误引用。inta[12]={0},*p[...