C语言习题2Word下载.docx
- 文档编号:19673027
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:18
- 大小:24.97KB
C语言习题2Word下载.docx
《C语言习题2Word下载.docx》由会员分享,可在线阅读,更多相关《C语言习题2Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
i=0;
case‘2’:
i=1;
case‘3’:
i=2;
case‘4’:
i=3;
v[i]++;
k<
4;
k++)printf(“%d”,v[k]);
A)4211 B)0008 C)4678D)8888
5、当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值的为_A_。
if(a<
b)
if(c>
d)x=1;
elseif(a<
c)
if(b>
d)x=2;
elsex=3;
elsex=6;
elsex=7;
A)1 B)2 C)3 D)4
6、运行以下程序后,如果从键盘上输入china#<
回车>
,则输出结果为_C__。
main(){intv1=0,v2=0;
charch;
while((ch=getchar()!
=’#’)
switch(ch){case‘a’:
case‘h’:
default:
v1++;
case‘0’:
v2++;
printf(“%d,%d\n”,v1,v2);
A)2,0 B)5,0 C)5,5 D)2,5
7、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是_C__。
A)c=b=a;
B)(a=c)||(b=c);
C)(a=c)&
(b=c);
D)a=c=b;
8、能正确表示a和b同时为正或同时为负的逻辑表达式时_D__。
A)(a>
=0||b>
=0)&
(a<
0||b<
0) B)(a>
=0&
b>
0&
b<
0)
C)(a+b>
(a+b<
=0) D)a*b>
9、能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是__D_。
A)a>
=10ora<
=0 B)a>
=0|a<
=10 C)a>
=10&
a<
=0 D)a>
=10||a<
=0
10、设有如下定义:
inta=1,b=2,c=3,d=4,m=2,n=2;
,则执行表达式:
(m=a>
b)&
(n=c>
d)后,n的值为_B__。
注意短路逻辑
A)1 B)2 C)3 D)0
11、语句:
printf(“%d”,(a=2&
(b=-2));
的输出结果是_D__。
A)无输出 B)结果不确定 C)-1 D)1
12、设intx=1,y=1;
,表达式(!
x||y--)的值是__B__。
A)0 B)1 C)2 D)-1
填空题
1、下面程序的功能是:
输出100以内能被3整除且个位数为6的所有整数,请将程序补充完整,使之能完成需要的功能。
10或i<
=9j%3!
=0或j%3或j/3*3!
=j
main(){inti,j;
for(i=0;
_____;
i++){
j=i*10+6;
if(___)continue;
printf(“%d”,j);
}}
2、下面的if语句与y=(x>
=10)?
3*x-11:
(x<
1)?
x:
2*x-1;
的功能相同,请补充程序,使之能完成要求的功能。
1、x<
102、x>
=1
if(_1_)
if(_2__)y=2*x-1;
elsey=x;
elsey=3*x-11;
3、若x为int类型,请以最简单的形式写出与逻辑表达式!
x等价的C语言关系表达式__。
x==0
4、表示“整数x的绝对值大于5”时值为“真”的C语言表达式是___。
x>
5||x<
-5
五、循环结构程序设计
典型考题
1、有以下程序:
main(){inti,s=0;
for(i=1;
10;
i+=2)s+=i+1;
printf(“%d\n”,s);
程序执行后的输出结果是__D__。
A)自然数1~9的累加和 A)自然数1~10的累加和
C)自然数1~9中奇数之和 D)自然数1~10中偶数之和
2、有以下程序:
main(){inti,n=0;
for(i=2;
5;
do{if(i%3)continue;
}while(!
i);
n++;
printf(“n=%d\n”,n);
程序执行后输出结果是_D__。
A)n=5 B)n=2 C)n=3 D)n=4
3、下面程序的功能是输出以下形式的金字塔图案:
*
***
*****
*******
for(i=1;
=4;
for(j=1;
j<
=4-i;
j++)printf(““);
=__;
j++)printf(“*”);
printf(“\n”);
在下划线处应填写的是_B__。
A)i B)2*i-1 C)2*i+1 D)i+2
4、有如下程序:
main(){ints=0,a=1,n;
scanf(“%d”,&
n);
do{s+=1;
a=a-2;
}while(a!
=n);
printf(“%d”,s);
若要使程序输出值为2,则应该从键盘输入的值是_B__。
A)-1 B)-3 C)-5 D)0
5、有如下程序段,其中s、a、b、c均为已经定义为整型变量,且a、c均已经赋值(c>
0)。
s=a;
for(b=1;
=c;
b++)s=s+1;
则与上述程序段功能等价的赋值语句是_B__。
A)s=a+b;
B)s=a+c;
C)s=s+c;
D)s=b+c;
6、有如下程序:
main(){intk=4,n=0;
for(;
n<
k;
){n++;
if(n%3!
=0)continue;
k--;
}printf(“%d,%d\n”,k,n);
程序运行后的输出结果是_C__。
A)1,1 B)2,2 C)3,3 D)4,4
7、有以下程序:
main(){inti=0,s=0;
do{if(i%2){i++;
continue;
}i++;
s+=i;
}while(i<
7);
printf(“%d\n”,s);
执行后输出结果是__A_。
A)16 B)12 C)28 D)21
8、以下函数的功能是:
通过键盘输入数据,为数组中的所有元素赋值。
#defineN10
voidarrin(intx[N]){inti=0;
while(i<
N)scanf(“%d”,___);
在下划线处应填写的是_C__。
注意x为数组,它是地址
A)x+i B)&
x[i+1] C)x+(i++) D)&
x[++i]
main(){intt=1,i=5;
i>
=0;
i--)t*=i;
printf(“%d\n”,t);
执行后输出的结果是___。
0注意此题的技巧
2、执行以下程序后,输出’#’号的个数是___。
6
#include<
stdio.h>
for(j=2;
=i;
j++)putchar(‘#’);
3、有以下程序:
main(){inta[4][4]={{1,2,-3,4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
inti,j,s=0;
for(j=0;
j++){if(a[i][j]<
0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
执行后输出的结果是__1+2+23+32=58_。
main(){inti,sum;
=3;
sum++)sum+=i;
printf(“%d\n”,sum);
该程序的执行结果是_C__。
A)6 B)3 C)死循环 D)0
main(){intx=23;
do{printf(“%d”,x--)}while(!
x);
该程序执行的结果是_B__。
A)321 B)23 C)不输出任何内容 D)死循环
3、有如下程序:
main(){intn=9;
while(n>
6){n--;
printf(“%d”,n);
该程序段的输出结果是_B__。
A)987 B)876 C)8765 D)9876
4、以下循环体的执行次数是__C__。
main(){inti,j;
for(i=0,j=1;
=j+1;
i+=2,j--)printf(“%d\n”,i);
A)3 B)2 C)1 D)0
5、以下叙述正确的是_D__。
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非0时结束循环。
D)用do-while语句构成的循环,在while后的表达式为0时结束循环。
6、以下程序的输出结果是__C_。
main(){inti,j,m=0,n=0;
2;
j++)
if(j>
=i)m=1;
printf(“%d\n”,n);
A)4 B)2 C)1 D)0
7、以下程序段的输出结果是_B__。
inta,y;
a=10;
y=0;
do{a+=2;
y+=a;
printf(“a=%dy=%d\n”,a,y);
if(y>
20)break;
}while(a=14);
A)a=12y=12
a=14y=16
a=16y=20
a=18y=24
B)a=12y=12
a=16y=28
C)a=12y=12
a=14y=26
a=14y=44
D)a=12y=12
8、以下程序的输出结果是_D__。
main(){intx=10,y=10,i;
for(i=0;
x>
8;
y=++i)printf(“%d%d”,x--,y);
A)10192 B)9876 C)10990 D)101091
9、以下程序的输出结果是_A__。
main(){intn=4;
while(n--)printf(“%d”,--n);
A)20 B)31 C)321 D)210
10、以下程序的输出结果是_A__。
main(){inti;
6;
i++){if(i%2){printf(“#”);
}printf(“*”);
}printf(“\n”);
A)#*#*# B)##### C)***** D)*#*#*
11、当执行以下程序段时,__A__。
x=-1;
do{x=x*x;
A)循环体将执行1次 B)循环体将执行2次
C)循环体将执行无限次 D)系统提示有语法错误
12、执行以下程序后,输出的结果是_D__。
main(){inty=10;
do{y--;
}while(--y);
printf(“%d\n”,y--);
A)-1 B)1 C)8 D)0
13、在下列选项中,没有构成死循环的程序是_B__。
A)inti=100;
while
(1){
i=i%100+1;
if(i>
100)break;
B)intk=1000;
do{++k;
while(k>
=10000);
C)ints=36;
while(s);
--s;
D)for(;
;
)
14、执行语句:
i++<
);
后变量i的值是__C__。
A)3 B)4 C)5 D)不定
15、以下程序的输出结果是__B__。
main(){inti,j,x=0;
x++;
for(j=0;
j++){if(j%2)continue;
printf(“x=%d\n”,x);
A)x=4 B)x=8 C)x=6 D)x=12
16、运行以下程序后,如果从键盘上输入65 14<
main(){intm,n;
printf(“Enterm,n:
”);
while(m!
=n){
while(m>
n)m-=n;
while(n>
m)n-=m;
printf(“m=%d\n”,m);
A)m=3 B)m=2 C)m=1 D)m=0
17、以下程序运行后,输出结果为____。
main(){inty=18,i=0,j,a[8];
do{a[i]=y%2;
i++;
y=y/2;
}while(y>
=1);
for(j=i-1;
j>
j--)printf(“%d”,a[j]);
printf(“\n”);
A)10000 B)10010 C)00110 D)10100注:
此题是求的y的二进制数
1、要使以下程序段输出10个整数,请填入一个整数。
=_____;
printf(“%d\n”,i+=2));
18或19
2、函数pi的功能是根据以下公式求π的近似值。
(π*π)/6=1+1/(2*2)+1/(3*3)+1/(n*n)
请在下面的函数中填空,完成求π的功能。
math.h>
doublepi(longn){
doubles=0.0;
longi;
=n;
i++)s=s+____;
1.0/(i*i)
return(sqrt(6*s));
3、若输入字符串:
abcde<
,则以下while循环执行__0__次。
while((ch=getchar())==’e’)printf(“*”);
4、下面程序的功能是:
计算1~10之间奇数之和及偶数之和,请填空。
main(){inta,b,c,i;
a=c=0;
=10;
i+=2){a+=i;
______;
}c=c+i=1;
printf(“偶数之和=%d\n”,a);
printf(“奇数之和=%d\n”,c-11);
六、字符型数据
1、已经定义ch为字符型变量,以下赋值语句中错误的是__A__。
A)ch=’\’ B)ch=62+3 C)ch=NULL D)ch=’\xaa’
2、已定义c为字符型变量,则下列语句中正确的是__A_。
A)c=’97’ B)c=”97” C)c=97 D)c=”a”
main(){chara,b,c,*d;
a=’\’;
b=’\xbc’;
c=’\0xab’;
d=”\0127”;
printf(“%c%c%c%c\n”,a,b,c,*d);
编译时出现错误,以下叙述中正确的是__D__。
A)只有a=’\’;
语句不正确。
B)b=’\xbc’;
C)d=”\0127”;
D)a=’\’;
和c=’\0xab’;
语句都不正确。
1、已知字符’A’的ASCII码值是65,以下语句的输出结果是____。
B66
charch=’B’;
printf(“%c%d\n”,ch,ch);
main(){charch1,ch2;
intn1,n2;
ch1=getchar();
ch2=getchar();
n1=ch1-‘0’;
n2=n1*10+(ch2-‘0’);
printf(“%d\n”,n2);
程序运行时输入:
12<
,执行后输出结果是____。
12
3、以下程序运行后的输出结果是____。
b
main(){charm;
m=’B’+32;
printf(“%c\n”,m);
4、有以下程序:
main(){chara;
a=’H’-‘A’+’0’;
printf(“%c\n”,a);
}7
1、设有说明语句:
chara=’\72’;
则变量a__A__。
A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法
2、语句printf(“a\bre\’hi\’y\\\bou\n”);
的输出结果是__C__。
A)a\bre\’hi\’y\\\bou B)a\bre\’hi\’y\bou
C)re’hi’you D)abre’hi’y\bou
4、下列程序执行后的输出结果是__C__。
main(){charx=0xFFFF;
printf(“%d\n”,x--);
A)-32767 B)FFFE C)-1 D)-32768
5、有如下程序段:
inta=14,b=15,x;
charc=’A’;
x=(a&
(c<
’B’);
执行该段程序后,x的值为__D__。
A)true B)false C)0 D)1
6、下列程序执行后的输出结果是__A__。
main(){inx=’f’;
printf(“%c\n”,’A’+(x-‘a’+1));
A)G B)H C)I D)J
7、在执行以下程序时,如果从键盘上输入:
ABCdef<
,则输出为__B_。
main(){charch;
while((ch=getchar())!
=’\n’){
if(ch>
=’A’&
ch<
=’Z’)ch=ch+32;
elseif(ch>
=’a’&
=’z’)ch=ch-32;
printf(“%c”,ch);
A)ABCdef B)abcDEF C)abc D)DEF
1、已知大写字母A的ASCII码值是65,小写字母a的ASCII码值是97,则用八进制表示的字符常量’\101’是____。
A
2、下面程序的输出结果是____。
aceg
for(i=’A’;
’I’;
i++,i++)printf(“%c”,i+32);
七、函数
1、若程序中定义了以下函数:
doublemyadd(doublea,doubleb){return(a+b);
将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是____。
A
A)doublemyadd(doublea,b) B)doublemyadd(double,double)
C)doublemyadd(doubleb,doublea) D)doublemyadd(doublex,doubley)
charfun(charx,chary){if(x<
y)returnx;
returny;
main(){inta=’9’,b=’8’,c=’7’;
printf(“%c\n”,fun(fun(a,b),fun(b,c))}
程序运行结果是_D__。
A)函数调用出错 B)8 C)9 D)7
voidf(intv,intw){intt;
t=v;
v=w;
w=t;
main(){intx=1,y=3,z=2;
if(x>
y)f(x,y);
elseif(y>
z)f(y,z);
elsef(x,z);
printf(“%d,%d,%d\n”,x,y,z);
执行后的输出结果是__C_。
A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,1
4、若已知定义的函数有返回值,则以下该函数调用的叙述中错误是__D___。
A)函数调用可以作为独立的语句存在。
B)函数调用可以作为一个函数的实参。
C)函数调用可以出现在表达式中。
D)函数调用可以作为一个函数的形参。
5、有以下函数定义:
voidfun(intn,doublex){……}
若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是_C__。
A)fun(inty,doublem);
B)k=fun(10,12.5);
C)fun(x,n);
D)voidfun(n,x);
6、下列函数定义中,出现编译错误的是__B__。
A)max(intx,inty,int*z){*z=x>
y?
y;
B)intmax(intx,y){intz;
z=x>
returnz;
C)max(intx,inty){intz;
return(z);
D)intmax(intx,inty){return(x>
y);
fun(inta,intb){if(a>
b)return(a);
elsereturn(b);
main(){intx=3,y=8,z=6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题