c语言试题汇总.docx
- 文档编号:11155966
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:87
- 大小:43.49KB
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;i for(j=0;j printf("%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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题 汇总
![提示](https://static.bdocx.com/images/bang_tan.gif)