D.for(p=a,i=0;i<4;i+=2)printf("%d",p[i]);
14.在下列C语言源程序的错误中,通常不能在编译时发现的是(14)C。
A.括号不匹配B.非法标识符
C.数组元素下标值越界D.程序结构不完整
15.若有声明“longa,b;”且变量a和b都需要通过键盘输入获得初值,则下列语句中正确的是(15)D。
A.scanf("%ld%ld,&a,&b");B.scanf("%d%d",a,b);
C.scanf("%d%d",&a,&b);D.scanf("%ld%ld",&a,&b);
16.若有程序段“charc=256;inta=c;”,则执行该程序段后a的值是(16)C。
A.256B.65536C.0D.-1
17.若在一个C语言源程序中“e1”和“e3”是表达式,“s;”是语句,则下列选项中与语句“for(e1;;e3)s;”功能等同的语句是(17)B。
A.e1;while(10)s;e3;B.e1;while(10){s;e3;}
C.e1;while(10){e3;s;}D.while(10){e1;s;e3;}
18.若有声明“inta[3][4],*p=a[0],(*q)[4]=a;”,则下列叙述中错误的是(18)B。
A.a[2][3]与q[2][3]等价B.a[2][3]与p[2][3]等价
C.a[2][3]与*(p+11)等价D.a[2][3]与p=p+11,*p等价
19.若有声明“longfun(int*x,intn,long*s);inta[4]={1,2,3,4};longb,c;”,则以下函数调用形式中正确的是(19)D。
A.c=fun(a,4,b);B.c=fun(a[],4,&b);
C.c=fun(a[4],4,b);D.c=fun(a,4,&b);
20.已知在函数f中声明了局部变量x,如果希望f函数第一次被调用返回后变量x中存储的数据保持到下次f函数被调用时仍可以使用,则在声明x时必须指定其存储类型为(20)C。
A.autoB.registerC.staticD.extern
21.若有如下的类型定义和变量声明,则在给出的选项中值不为7的表达式是(21)A。
A.ptr->aB.(++ptr)->aC.x[1].aD.x[0].b->a
structss
{inta;structss*b;}x[3]={{5,&x[1]},{7,&x[2]},{9,0}},*ptr=&x[0];
22.若需要对一个数据文件abc.txt中的数据做加密处理并且限定只能做一次打开文件操作,则在“fp=fopen("abc.txt",模式字符串);”中,模式字符串应当是(22)B。
A."w+"B."r+"C."a+"D."r"
23.若有如下声明和语句:
intt[3][3],*pt[3],k;
for(k=0;k<3;k++)pt[k]=&t[k][0];
则表达式*(*(pt+1)+2)所引用的是(23)C。
A.t[2][0]B.&t[2][0]C.t[1][2]D.&t[1][2]
24.若有结构类型定义“typedefstructtest{intx,y[2];}TEST;”,则以下声明中正确的是(24)A。
A.structtestx;B.structx;
C.testx;D.structTESTx;
25.设有声明intvalue=‘5’;则执行下列选项的赋值语句后,value的值不等于5的是(25)C。
A.value=value-‘0’;B.value=value-0x30;
C.value=value-49;D.value=value-‘\060’;
26.若有枚举类型定义“enumlist1{x1,x2,x3,x4=6,x5,x6};”,则枚举常量x2和x6代表的值分别是(26)B。
A.1,6B.1,8C.2,6D.2,8
27.设有声明floata=1.23456;inti;,欲将a中的数值保留小数点后两位,第三位进行四舍五入运算,能实现该功能的表达式是(27)A。
A.i=a*100+0.5,a=i/100.0B.a=(a*100+0.5)/100.0
C.a=((int)a*100+0.5)/100.0D.a=(a/100+0.5)/100.0
28.若有声明“intx[10]={0,1,2,3,4,5,6,7,8,9},*p;”,则值不为4的表达式是(28)C。
A.p=x,*(p+4)B.p=x+4,*p++
C.p=x+3,*(p++)D.p=x+3,*++p
29.若有声明“inti,k=1;unsignedj;”,则下列语句执行时会出现无限循环的语句是(29)A。
A.for(j=15;j>0;j-=2)k++;B.for(j=0;j<15;j+=2)k++;
C.for(i=0;i<15;i+=2)k++;D.for(i=15;i>0;i-=2)k++;
30.已知A盘根目录下有文本文件“data.txt”且程序中已有声明“FILE*fp;”,若程序需要先从“data.txt”文件中读出数据,修改后再写入“data.txt”文件中,则调用fopen函数的正确形式是(30)C。
A.fp=fopen("a:
\\data.txt","rw");
B.B.fp=fope