1.以下有4组用户标识符,其中合法的一组是______。//(选项A中for和case为C语言中的保留字(指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。)不能作为用户标志符,故A错误。选项B中的4d其开头的第一个为数字,而在C语言中规定,第一个字符必须为字母或者下划线,故B错误;选项D中void为C语言中的保留字,不能作为用户标志符,故D错误。)
A、For -sub Case
B、4d DO Size
C、f2_G3 IF abc
D、WORD Void define
答案:C
2.以下程序的输出结果是______。
int main( )
{
int k=17;
printf("%d,%o,%x \n",k,k,k);//(%o为八进制即2*8+1=21,%x为十六进制即16*1+1=11)
}
A、17,021,0x11 B、17,17,17
C、17,0x11,021 D、17,21,11
答案:D
3、下面的程序的运行结果是______。
main()
{
int x=3;
do
{
printf("%d\n",x-=2);
}
while(!(--x));//(等价于while(--x==0)故再次进入循环)
}
A、输出的是1 B、输出的是1和-2
C、输出的是3和0 D、是死循环
答案:B
4、有以下程序
int main()
{
int k=5,n=0;
while(k>0)
{ switch(k)
{ default : break;
case 1: n+=k; //(因为没写break所以继续向下执行,第一次n=3,第二次n=3+2,第三次n=5+1+1故为7)
case 2:
case 3: n+=k;
}
k--;
}
printf("%d\n",n);
}
程序运行后的输出结果是______。
A、0 B、4 C、6 D、7
答案:D
5.有以下程序
int fun(int x[],int n)
{
static int sum=0,i;//(static关键字可以使下一次进入函数的值用sum即fun(b,4)进入时sum值为15)故最后值为60
for(i=0;i<n;i++) sum+=x[i];
return sum;
}
main()
{
int a[]={1,2,3,4,5},b[]={6,7,8,9,},s=0;
s=fun(a,5)+fun(b,4);
printf("%d\n",s);
}
程序执行后的输出结果是______。
A、45 B、50 C、60 D、55
答案:C
6.若有定义int x[]={0,1,2,3,4,5,6,7,8,9},*p1;则数值不为3的表达式是()//(C答案第一个式子将p1指向2,然后先*p再++。)
A.x[3] B.p1=x+3,*p1++ C.p1=x+2,*(p1++) D.p1=x+2,*++p1
答案:C