A)视i、j的具体值而定B)FALSEC)TRUED)1
[3-1]已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下程序运行
结果是(A)。
main()
{charch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);}
A)67,DB)C,DC)C,68D)67,68
[3-2]设有语句intx=2,y=3;,则表达式x=(y==3)的值是(B)。
A)0B)1C)2D)3
[3-3]以下程序的运行结果是(B)。
main()
{unsigneda=0x3ef,b;
b=a<<2;
printf("%x,%x\n",a,b);
}
A)3ef,fbB)3ef,fbcC)fbc,3efD)fbc,fbc
[4-1]下列语句中,符合C语言语法的赋值语句是(C)。
A)a=7+b+c=a+7;B)a=7+b++=a+7;C)a=7+b,b++,a+7;D)a=7=b,c=a+7;
[4-2]为表示x≥y≥z,须用的C语言表达式为(A)。
A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=x)
C)x>=y>=zD)(x>=y)&(y>=z)
[4-3]设inta,b;,用语句scanf('%d%d",&a,&b);输入a、b值时,不能作为输入数据分隔符的是(B)。
A)空格B),C)回车D)[Tab]
[5-1]以下程序运行时,若从键盘输入5,则输出结果是(D)。
main()
{inta;
scanf("%d",&a);
if(a++>5)printf("%d\n",a);
elseprintf("%d\n",a--);}
A)7B)4C)5D)6
[5-2]以下程序的运行结果是(A)。
main()
{inta,b,c;
a=b=c=1;
if(a++||++b)c++;
printf("%d,%d,%d\n",a,b,c);}
A)2,1,2B)1,2,1
C)2,2,2D)2,2,1
[5-3]以下程序的运行结果是(A)。
main()
{inti=3,j=2,k;
k=i+j;
{intk=8;
if(i==3)printf("%2d",k);
elseprintf("%2d",j);}
printf("%2d%2d\n",i,k);}
A)835B)838
C)383D)583
[6-1]有以下程序:
main()
{intc;
while((c=getchar())!
='\n')
{switch(c-'2')
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;}}
printf("\n");}
当输入:
247<回车>,程序的输出结果是(B)。
A)689B)6689C)66778D)66887
[6-2]以下程序的运行结果是(B)。
main()
{inta=1,b=0;
switch(a)
{case1:
switch(b)
{case0:
printf("0000\n");
case1:
printf("1111\n");break;}
case2:
printf("2222\n");break;}}
A)0000
1111
B)0000
1111
2222
C)0000
2222
D)1111
2222
[6-3]以下程序的运行结果是(C)。
voidmain()
{inta=1;
switch(a)
{case1:
printf("aaaa\n");
case2:
printf("bbbb\n");break;
default:
printf("cccc\n");}}
A)aaaa
B)aaaa
bbbb
cccc
C)aaaa
bbbb
D)aaaa
cccc
[7-1]以下程序运行后,a的值是(D)。
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1){b+=3;continue;}
b-=5;}}
A)101B)100C)8D)7
[7-2]以下程序段的运行结果是(D)。
main()
{inti,j;
i=10;
j=20;
for(;j>=0;j-=20)
{if(i=j)printf("Good!
");
elseprintf("Notgood!
");}}
A)Good!
Good!
B)Notgood!
C)Good!
D)Good!
Notgood!
[7-3]以下程序的运行结果是(A)。
main()
{inta,b,c,n=13;
printf("ABC\n");
for(a=1;a<=n;a++)
for(b=1;b<=n;b++)
for(c=b;c<=n;c++)
if(a*a==b*b+c*c)
printf("%3d%3d%3d\n",a,b,c);}
A)ABC
534
1068
13512
B)ABC
354
6108
51312
C)ABC
453
8106
12135
D)ABC
543
1086
13125
[8-1]以下程序段的运行结果是(D)。
intx=3;
do{
printf("%3d,",x-=2);
}while(!
(--x));
A)1B)30
C)死循环D)1,-2
[8-2]设E为表达式,以下与do…while(E);不等价的语句是()。
[答]C,1.1
A)do…while(!
E==0);B)do…while(E>0||E<0);
C)do…while(E==0);D)do…while(E!
=0);
[8-3]以下程序的运行结果是(D)。
main()
{inti,s;
i=0;
s=1;
do{
s/=s+1;
i++;}
while(i<=10);
printf("%2d%2d\n",i,s);}
A)102B)112
C)100D)110
[9-1]下列程序段中,非死循环的是(A)。
A)inti=100;
while
(1)
{i=i%100+1;
if(i>=100)break;}
B)intk=0;
do{
++k;}
while(k>=0);
C)ints=10;
while(++s%2+s%2)s++;
D)for(;;)
[9-2]循环语句循环体中执行continue语句,其作用是(C)。
A)立即终止程序运行B)继续执行continue语句之后的循环体各语句
C)结束本次循环D)结束本次循环,跳出循环
[9-3]下列do...while循环的循环次数是(D)。
inti=5;
do{
printf("%d\n",i--);
i--;
}while(i!
=0)
A)0B)2C)5D)死循环
[10-1]设已定义chars[]="\"Name\\Address\023\n";,则字符串所占的字节数是(B)。
A)19B)15C)18D)14
[10-2]已定义charx[8];inti;,为了给该数组赋值,下列语句正确的是(D)。
A)x[8]="TurboC";B)x="TurboC";
C)x[]="TurboC";D)for(i=0;i<7;i++)x[i]=getchar();
[10-3]设inta[][4]={0,0};,则下列描述错误的是(D)。
A)数组a的每个元素的值为0B)二维数组a的第一维大小为1
C)数组a有4个元素D)只有元素a[0][0]和a[0][1]的值为0,其余元素的值不确定
[11-1]以下程序段的运行结果是(D)。
main()
{inti=4,j;
j=i;
pic(i+2*j-2,'*');
putchar('\n');
for(j-=2;j>=0;j--)
{pic(3-j,'');
pic(i+2*j,'*');
putchar('\n');}}
pic(intlen,charc)
{intk;
for(k=1;k<=len;k++)putchar(c);}
A)*
***
*****
*******
B)**********
**********
**********
**********
C)****
******
********
**********
D)**********
********
******
****
[11-2]以下程序运行结果是(B)。
main()
{chara[][5]={"ABCD","1234","abcd","5678","EFGH"};
inti;
for(i=0;i<3;i++)printf("%s",a[i]);}
A)A1aB)ABCD1234abcd
C)ABCD)ABCD1234abcd5678EFGH
[11-3]以下程序的运行结果是(A)。
main()
{intarray[4][4];
inti,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)array[i][j]=i+j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(i==j||i+j==3)array[i][j]=0;
for(j=0;j<4;j++)printf("%2d",array[2][j]);
printf("\n");}
A)2005B)1004C)0120D)0450
[12-1]设有下列语句,则(D)是对a数组元素的不正确引用,其中0≤i<10。
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A)a[p-a]B)*(&a[i])C)p[i]D)*(*(a+i))
[12-2]若有以下程序:
main
{charch[]="Iamstudent!
",*p;
p=ch
printf("%x\n",p);
printf("%x\n",p+9);}
其中第一个printf()运行结果是ffd6,则第二个printf()运行结果是(A)。
A)ffdfB)ffe8C)ffd6D)ffcf
[12-3]以下程序的运行结果是(D)。
main()
{inti;
charaa[][3]={'a','b','c','d','e','f'};
char(*p)[3]=aa;
for(i=0;i<2;i++)
if(i==0)aa[i][i+1]=**(p++);
printf("%c\n",**p);}
A)aB)bC)cD)d
[13-1]设有下列语句:
charstr1[]="string",str2[8],*str3,*str4="string";
则(A)是对库函数strcpy的不正确调用。
此函数用来复制字符串。
A)strcpy(str3,"HELLO3");B)strcpy(str2,"HELLO2");
C)strcpy(str1,"HELLO1");D)strcpy(str4,"HELLO4");
[13-2]若有以下定义和语句,且0≤i<4,0≤j<3,则不能访问a数组中的元素的是(D)。
inti,(*p)[3];
inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12};
p=a;
A)*(*(a+i)+j)B)p[i][j]
C)(*(p+i))[j]D)p[i]+j
[13-3]以下关于指针概念的叙述中,错误的是(C)。
A)一个指针变量只能指向同一类型的变量B)一个变量的地址称为该变量的指针
C)两个同类型的指针变量可以作加减运算D)任何指针变量都可以与空指针NULL进行比较
[14-1]以下程序的运行结果是(C)。
fun3(intx)
{staticinta=3;
a+=x;
returna;}
main()
{intk=2,m=1,n;
n=fun3(k);
n=fun3(m);
printf("%d\n",n);}
A)3B)4C)6D)9
[14-2]以下程序运行后,输出的结果是(C)
func(inta)
{staticintm=0;
m+=a;
return(m);}
main()
{intk=4,p;
p=func(k);printf("%d,",p);
p=func(k);printf("%d\n",p);}
A)4,4B)0,4C)4,8D)8,8
[14-3]以下程序的运行结果是(B)
age(n)
intn;
{intc;
if(n==1)c=10;
else
if(n%2==0)c=age(n-1)+2;
elsec=age(n-1)+3;
return(c);}
main()
{printf("%d\n",age(5));}
A)18B)20C)10D)21
[15-1]以下程序的运行结果是(A)。
voidast(intx,inty,int*cp,int*dp)
{*cp=x+y;*dp=x-y;}
main()
{inta=4,b=3,c,d;
ast(a,b,&c,&d);
printf("%d,%d\n",c,d);}
A)7,1B)1,7C)7,-1D)c、d未赋值,编译出错
[15-2]以下程序的输出结果是(D)。
swap(int*p,int*q)
{intt;
t=*p;*p=*q;*q=t;}
main()
{inta=10,b=20;
swap(&a,&b);
printf("%d,%d\n",a,b);}
A)10,10B)20,20C)10,20D)20,10
[15-3]以下程序的运行结果是(D)。
main()
{voidchange_p();
int*p,a[]={1,4,7,10};
p=&a[1];
change_p(p);
printf("%d\n",*p);}
voidchange_p(int*pi)
{*pi+=2;
pi+=2;
*pi+=2;}
A)7B)8C)5D)6
[16-1]以下程序段的运行结果是(B)。
enumweekday{aa,bb=2,cc,dd,ee}week=ee;
printf("%d\n",week);
A)eeB)5C)2D)4
[16-2]以下对枚举类型进行定义,不正确的是(A)。
A)enumb{1,2,3};B)enuma{A,B,C};
C)enumc{D=3,E,F};D)enumd{X=0,Y=5,Z=9};
[16-3]在C程序中,设一表达式含有int、long、unsigned和char类型的常数和变量,则表达式的最后运算结果是(D)。
A)intB)charC)unsignedD)long
[17-1]若定义如下结构,则能打印出字母M的语句是(B)。
structperson{
charname[9];
intage;};
structpersonclass[10]={"Wujun",20,
"Liudan",23,
"Maling",21,
"zhangming",22};
A)printf("%c\n",class[3].name);B)printf("%c\n",class[2].name[0]);
C)printf("%c\n",class[2].name[1]);D)printf("%c\n",class[3].name[1]);
[17-2]以下程序的运行结果是(B)。
main()
{unionu_type
{inti;
doublex;
floatf;};
structstr_type
{charstr[100];
unionu_typeu[2];};
printf("%d\n",sizeof(structstr_type));}
A)100B)116C)120D)200
[17-3]以下程序的输出结果是(C)。
main()
{unionexample
{struct
{intx;
inty;}
in;
inta[2];}
e={0,0};
e.a[0]=1;e.a[1]=2;
printf("%d,%d\n",e.in.x,e.in.y);}
A)2,1B)0,0C)1,2D)0,1
[18-1]以下程序的输出结果是(A)。
main()
{printf("%d\n",fac(5));}
fac(intn)
{ints;
if(n==1)return1;
elsereturnn*fac(n-1);}
A)120B)60C)6D)1
[18-2]以下程序的运行结果是(D)。
main()
{charch[7]="12xy89";
inti,s=0;
for(i=0;ch[i];i++)
if(ch[i]>='0'&&ch[i]<='9')s=10*s+ch[i]-'0';
printf("%d\n",s);}
A)12B)xyC)12xy89D)1289
[18-3]以下程序运行后,输出的结果是(B)。
fun(char*w)
{chart,*s1,*s2;
for(s1=w,s2=w+strlen(s1)-1;s1{t=*s1;
*s1=*s2;
*s2=t;}}
main()
{char*p="12345";
fun(p);
puts(p);}
A)12345B)54321C)15115D)51551
[19-1]以下程序中的循环执行了(C)次
#defineN2
#defineMN+1
#defineNUM(M+1)*M/2
main()
{inti,n=0;
for(i=0;iprintf("%d\n",n);}
A)5B)6C)8D)9
[19-2]以下程序的输出结果是(C)。
#defineSUM(y)1+y
main()
{intx=2;
printf("%d\n",SUM(5)*x);}
A)10B)11C)12D)15
[19-3]以下程序的运行结果是(A)。
#defineM(x,y)x*y
main()
{inta=3,b=2,s1,s2,f12();
s1=M(a+b,a-b);
s2=M(a-b,a+b);
printf("%d,%d,%d,%d\n",s1,s2,f12(a+b,a-b),f12(a-b,a+b));}
f12(intx,inty)
{return(x*y);}
A)7,-1,5,5B)5,5,7,-1C)5,5,5,5D)7,-1,7,-1
[20-1]以下程序的功能是(C)。
#include
main()
{FILE*fp;
longintn;
fp=fopen("wj.txt","rb");
fseek(fp,0,SEEK_END);
n=ftell(fp);
fclose(fp);
printf("%ld",n);}
A)计算文件wj.txt的起始地址B)计算文件wj.txt的终止地址
C)计算文件wj.txt的长度D)将文件指针定位到文件末尾
[20-2]标准函数fgets(s,n,f)的功能是(B)。
A)从文件f中读取长度为n的字符串存入指针s所指的内存
B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
C)从文件f中读取n个字符串存入指针s所指的内存
D)从文件f中读取长度为n-1的字符串存入指针s所指的内存
[20-3]以下程序的可执行文件名是file.exe。
main(argc,argv)
int