c语言试题汇总.docx
《c语言试题汇总.docx》由会员分享,可在线阅读,更多相关《c语言试题汇总.docx(87页珍藏版)》请在冰豆网上搜索。
c语言试题汇总
全国计算机等级考试(二级)笔试题库
(1)在C语言中,如果下面的变量都是int类型,则输出的结果是C
sum=pad=5;
pAd=sum++,pAd++,++pAd;
printf("%d\n",pad);
A)7B)6C)5D)4
(2)以下程序的输出结果是B
#include
main()
{inti=010,j=10;
printf("%d,%d\n",++i,j--);
}
A)11,10B)9,10C)010,9D)10,9
(3)已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是D
#include
main()
{charc1='A',c2='Y';
printf("%d,%d\n",c1,c2);
}
A)因输出格式不合法,输出错误信息B)65,90
C)A,YD)65,89
(4)设有说明int(*ptr)[m];其中的标识符ptr是C
A)M个指向整型变量的指针
B)指向M个整型变量的函数指针
C)一个指向具有M个整型元素的一维数组的指针
D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量
(5)语句while(!
E);中的条件!
E等价于A
A)E==0B)E!
=1C)E!
=0D)~E
(6)以下函数调用语句中含有____个实参。
B
func((exp1,exp2),(exp3,exp4,exp5));
A)1B)2C)4D)5
(7)设有以下语句:
chara=3,b=6,c;
c=a^b<<2;
则c的二进制值是A
A)00011011B)00010100C)00011100D)00011000
(8)设有语句inta=3;则执行了语句a+=a-=a*a;后,变量a的值是D
A)3B)0C)9D)-12
(9)以下的for循环C
for(x=0,y=0;(y!
=123)&&(x<4);x++);
A)是无限循环B)循环次数不定
C)执行4次D)执行3次
(10)设有语句chara='\72';则变量aA
A)包含1个字符B)包含2个字符
C)包含3个字符D)说明不合法
(11)以下程序的输出结果是C
#include
#include
main()
{inta=1,b=4,c=2;
floatx=10.5,y=4.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf("%f\n",z);
}
A)14.000000B)015.400000
C)13.700000D)14.900000
(12)sizeof(double)是C
A)一种函数调用
B)一个双精度型表达式
C)一个整型表达式
D)一个不合法的表达式
(13)C语言中D
A)不能使用do-while语句构成的循环
B)do-while语句构成的循环必须用break语句才能退出
C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环
(14)以下程序的输出结果是A
#include
#include
main()
{charstr[12]={'s','t','r','i','n','g'};
printf("%d\n",strlen(str));
}
A)6B)7C)11D)12
(15)以下程序的输出结果是D
#include
main()
{inta=2,c=5;
printf("a=%%d,b=%%d\n",a,c);
}
A)a=%2,b=%5B)a=2,b=5
C)a=%%d,b=%%dD)a=%d,b=%d
(16)以下程序的输出结果是B
#include
main()
{inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
A)6,1B)2,1C)6,0D)2,0
(17)以下程序的输出结果是A
#include
main()
{inti;
for(i=1;i<=5;i++)
{if(i%2)
printf("*");
else
continue;
printf("#");
}
printf("$\n");
}
A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$
(18)以下程序的输出结果为C
#include
main()
{char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};
char**p;
inti;
p=alpha;
for(i=0;i<4;i++)
printf("%s",p[i]);
printf("\n");
}
A)ABCDEFGHIJKLB)ABCD
C)ABCDEFGHIJKLMNOPD)AEIM
(19)以下程序的输出结果是B
#include
#defineFUDGE(y)2.84+y
#definePR(a)printf("%d",(int)(a))
#definePRINT1(a)PR(a);putchar('\n')
main()
{intx=2;
PRINT1(FUDGE(5)*x);
}
A)11B)12C)13D)15
(20)以下程序的输出结果是B
#include
main()
{inti=1,j=3;
printf("%d,",i++);
{inti=0;
i+=j*2;
printf("%d,%d,",i,j);
}
printf("%d,%d\n",i,j);
}
A)1,6,3,1,3B)1,6,3,2,3
C)1,6,3,6,3D)1,7,3,2,3
(21)以下程序的输出结果是A
#include
main()
{intk=4,m=1,p;
p=func(k,m);
printf("%d,",p);
p=func(k,m);
printf("%d\n",p);
}
func(a,b)
inta,b;
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
A)8,17B)8,16C)8,20D)8,8
(22)C语言中形参的缺省存储类别是A
A)自动B)静态C)寄存器D)外部
(23)设inta=12,则执行完语句a+=a-=a*a后,a的值是D
A)552B)264C)144D)-264
(24)C语言程序的基本单位是C
A)程序行B)语句C)函数D)字符
(25)请选出合法的C语言赋值语句B
A)a=b=58B)i++;C)a=58,b=58D)k=int(a+b);
(26)设有如下一段程序:
int*var,ab;
ab=100
var=&ab;
ab=*var+10;
执行上面的程序后,ab的值为B
A)120B)110C)100D)90
(27)设有如下的程序段:
charstr[]="Hello";
char*ptr;
ptr=str;
执行完上面的程序段后,*(ptr+5)的值为B
A)'o'B)'\0'C)不确定的值D)'o'的地址
(28)在宏定义#definePI3.14159中,用宏名PI代替一个D
A)单精度数B)双精度数C)常量D)字符串
(29)执行下面的程序段B
intx=35;
charz='A';
intB;
B=((x&15)&&(z<'a'));
后,B的值为
A)0B)1C)2D)3
(30)C语言规定,程序中各函数之间A
A)既允许直接递归调用也允许间接递归调用
B)不允许直接递归调用也不允许间接递归调用
C)允许直接递归调用不允许间接递归调用
D)不允许直接递归调用允许间接递归调用
(31)若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是A
A)pb=&xB)pb=x;C)*pb=&x;D)*pb=*x
(32)设有staticcharstr[]="Beijing";则执行
printf("%d\n",strlen(strcpy(str,"China")));后的输出结果为A
A)5B)7C)12D)14
(33)设有如下程序:
#include
main()
{int**k,*j,i=100;
j=&i;
k=&j;
printf("%d\n",**k);
}
上面程序的输出结果是B
A)运行错误B)100C)i的地址D)j的地址
(34)设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)
后n的值为B
A)1B)2C)3D)4
(35)请选出以下程序的输出结果B
#include
sub(x,y,z)
intx,y,*z;
{*z=y-x;}
main()
{inta,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c);
}
A)5,2,3B)-5,-12,-7C)-5,-12,-17D)5,-2,-7
(36)下面程序的输出结果是A
#include
main()
{inti=2,p;
p=f(i,i+1);
printf("%d",p);
}
intf(a,b)
inta,b;
{intc;
if(a>b)
c=1;
else
if(a==b)
c=0;
else
c=-1;
return(c);
}
A)-1B)0C)1D)2
(37)请选出以下程序段的输出结果A
#include
#defineMIN(x,y)(x)<(y)?
(x):
(y)
main()
{inti,j,k;
i=10;
j=15;
k=10*MIN(i,j);
printf("%d\n",k);
}
A)15B)100C)10D)150
(38)设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是D
A)'a'&&'b'B)a<=bC)a||b+c&&b-cD)!
((a
c||1)
(39)若x和y都是int型变量,x=100,y=200,且有下面的程序片段:
printf("%d",(x,y));上面程序片段的输出结果是A
A)200B)100
C)100200
D)输出格式符不够,输出不确定的值
(40)下面各语句行中,能正是行赋字符串操作的语句行是C
A)charst[4][5]={"ABCDE"}
B)chars[5]={'A','B','C','D','E'};
C)char*s;s="ABCDE";
D)char*s;scanf("%s",s);
(41)请读程序:
#include
f(char*s)
{char*p=s;
while(*p!
='\0')p++;
return(p-s);
}
main()
{printf("%d\n",f("ABCDEF"));}
上面输出结果是B
A)3B)6C)8D)0
(42)请读程序:
#include
main()
{intn[2],i,j,k;
for(i=0;i<2;i++)n[i]=0;
k=2;
for(i=0;ifor(j=0;jprintf("%d\n",n[k]);
}
上面程序的输出结果是A
A)不确定的值B)3C)2D)1
(43)请读程序片段:
charstr[]="ABCD",*p=str;
printf("%d\n",*(p+4));
上面程序片段的输出结果是B
A)68B)0C)字符'D'的地址D)不确定的值
(44)请读程序:
#include
main()
{inta,b;
for(a=1,b=1;a<100;a++)
{if(b>=20)break;
if(b%3==1)
{b+=3;
continue;}
b-=5;
}
printf("%d\n",a);
}
上面程序的输出结果是B
A)7B)8C)9D)10
(45)请读程序:
#include
#include
main()
{char*s1="AbCdEf",*s2="aB";
s1++;
s2++;
printf("%d\n",strcmp(s1,s2));
}
上面程序的输出结果是A
A)正数B)负数C)零D)不确定的值
(46)请读程序:
#include
#defineSUB(X,Y)(X)*Y
main()
{inta=3,b=4;
printf("%d\n",SUB(a,b));
}
上面程序的输出结果是A
A)12B)15C)16D)20
(47)请读程序:
#include
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
上面程序输出结果是A
A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2
(48)请读程序:
#include
f(intb[],intn)
{inti,r;
r=1;
for(i=0;i<=n;i++)
r=r*b[i];
returnr;
}
main()
{intx,a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
printf("%d\n",x);
}
上面程序输出结果是B
A)720B)120C)24D)6
(49)请读程序:
#include
voidfun(float*pl,float*p2,float*s)
{s=(float*)calloc(1,sizeof(float));
*s=*pl+*(p2++);
}
main()
{floata[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;
fun(a,b,s);
printf("%f\n",*s);
}
上面程序的输出结果是D
A)11.100000B)12.100000
C)21.100000D)1.100000
(50)请读程序:
C
#include
#include
voidfun(char*w,intm)
{chars,*p1,*p2;
p1=w;
p2=w+m-1;
while(p1{s=*p1++;
*p1=*p2--;
*p2=s;
}
}
main()
{chara[]="ABCDEFG";
fun(a,strlen(a));
puts(a);
}
A)GFEDCBAB)AGADAGA
C)AGAAGAGD)GAGGAGA
(51)下列语句中符合C语言语法的赋值语句是D
A)a=7+b+c=a+7;B)a=7+b++=a+7;
C)a=7+b,b++,a+7D)a=7+b,c=a+7;
(52)下面程序的输出是C
A)0B)1C)3D)不确定的值
#include
main()
{intx=10,y=3;
printf("%d\n",y=x/y);
}
(53)若执行下面的程序时从键盘上输入3和4,则输出是B
A)14B)16C)18D)20
#include
main()
{inta,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
s=s*s;
printf("%d\n",s);
}
(54)下面的程序D
A)有语法错误不能通过编译
B)输出****。
C)可以通过编译,但是不能通过连接,因而不能运行。
D)输出####。
#include
main()
{intx=3,y=0,z=0;
if(x=y+z)
printf("****");
else
printf("####");
}
(55)下面的程序B
A)输出的是1B)输出的是1和-2
C)输出的是3和0D)是死循环
#include
main()
{
intx=3;
do
{
printf("%d\n",x-=2);
}while(!
(--x));
}
(56)下面程序的输出是B
A)17B)18C)23D)24
#include
main()
{intx=023;
printf("%d\n",--x);
}
(57)若执行下面的程序时从键盘上输入5,则输出是B
A)7B)6C)5D)4
#include
main()
{intx;
scanf("%d",&x);
if(x++>5)
printf("%d\n",x);
else
printf("%d\n",x--);
}
(58)下面程序的输出是A
A)3B)4C)1D)2
#include
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf("%d\n",*(p+2));
}
(59)执行下面程序中的输出语句,a的值是C
A)65B)20C)15D)10
#include
main()
{inta;
printf("%d\n",(a=3*5,a*4,a+5));
}
(60)下面程序的输出是C
A)003B)012C)103D)112
#include
main()
{inta=-1,b=4,k;
k=(a++<=0)&&(!
(b--<=0));
printf("%d%d%d\n",k,a,b);
}
(61)下面函数的功能是A
A)求字符串的长度B)比较两个字符串的大小
C)将字符串x复制到字符串yD)将字符串x连接到字符串y后面
intfunl(char*x)
{char*y=x;
while(*y++);
return(y-x-1);
}
(62)若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是D
A)EOFB)-1C)非零值D)NULL
(63)下面程序的输出是D
A)100
B)160
C)120
D)64
#include
main()
{charx=040;
printf("%d\n",x=x<<1);
}
(64)C语言中,运算对象必须是整型数的运算符是A
A)%B)\C)%和\D)**
(65)下述对C语言字符数组的描术中错误的是C
A)字符数组可以存放字符串
B)字符数组中的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
(66)设有如下定义:
intx=10,y=3,z;则语句
printf("%d\n",z=(x%y,x/y));的输出结果是D
A)1B)0C)4D)3
(67)以下程序的输出结果是D
#include
main()
{intx=10,y=10;
printf("%d%d\n",x--,--y);
}
A)1010B)99C)910D)109
(68)定义如下变题和数组
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是C
for(i=0;i<3;i++)
printf("%d",x[i][2-i]);
A)159B)147
C)357D)369
(69)设有如下函数定义:
intf(char*s)
{char*p=s;
while(*p!
='\0')p++;
return(p-s);
}
如果在主程序中用下面的语句调用上述函数,则输出结果为C
printf("%d\n",f("goodbey!
"));
A)3B)6C)8D)0
(70)以下说法中正确的是C
A)C语言程序总是从第一个定义函数开始执行
B)在C语言程序中,要调用的函数必须在main()函数中定义
C)C语言程序总是从main()函数开始执行
D)C语言程序中的main()函数必须放在程序的开始部分
(71)执行下面的程序后,a的值为B
#include
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break