C语言程序设计教程第三章练习题题目.docx
- 文档编号:2155834
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:29
- 大小:22.60KB
C语言程序设计教程第三章练习题题目.docx
《C语言程序设计教程第三章练习题题目.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教程第三章练习题题目.docx(29页珍藏版)》请在冰豆网上搜索。
C语言程序设计教程第三章练习题题目
单项选择题
1、假设定义a=3,b=4,执行printf("%d,%d〞,(a,b),(b,a));的输出结果为〔〕。
A.3,4
B.4,3
C.3,3
D.4,4
2、如果要求在if后的判断条件是a不等于0,则以下选项中能正确表达这一关系的是〔〕。
A.a<>0
B.!
a
C.a=0
D.a
3、为了防止嵌套的if-else语句的二义性,C语言规定else总是与〔〕组成配对关系。
A.缩排位置一样的if
B.在其之前未配对的if
C.在其之前尚未配对的最近的if
D.同一行上的if
4、有定义intt=0;则有循环while(t=1){…},则以下关于while循环语句的描述中正确的选项是〔〕。
A.循环控制表达式的值为0
B.循环控制表达式的值为1
C.循环控制表达式的值不合法
D.以上说法都不对
5、假设有定义:
int*,i;则以下for循环语句:
for(i=0,*=0;i<=9&&*!
=876;i++)
scanf("%d〞,&*);
以下选项中,描述正确的选项是〔〕
A.最多执行10次
B.最多执行9次
C.是无限循环
D.循环体一次也不执行
6、关于下面的for循环语句
inti,k;
for(i=0,k=-1;k=1;i++,k++)printf("*****〞);
以下选项中,描述正确的选项是〔〕
A.判断循环完毕的条件非法
B.是无限循环
C.只循环一次
D.一次也不循环
7、C语言程序的三种根本构造是〔〕。
A.顺序构造,选择构造,循环构造
B.递归构造,循环构造,转移构造
C.嵌套构造,递归构造,顺序构造
D.循环构造,转移构造,顺序构造
8、假设要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为〔〕。
A.a<>0
B.!
a
C.a=0
D.a
9、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是〔〕。
voidmain()
{
int*;
scanf("%d",&*);
if(*++>5)
printf("%d",*);
else
printf("%d\n",*--);
}
A.7和5
B.6和3
C.7和4
D.6和4
10、运行以下程序后,如果从键盘上输入china*,则输出结果为〔〕。
*include
voidmain()
{
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
11、有如下程序:
voidmain()
{
int*=1,a=0,b=0;
switch(*)
{
case0:
b++;
case1:
a++;
case2:
a++;
b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是〔〕。
A.a=2,b=1
B.a=1,b=1
C.a=1,b=0
D.a=2,b=2
12、下面程序的输出是〔〕。
voidmain()
{
char*a="12134211";
intv1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{
default:
v4++;
case'1':
v1++;
case'3':
v3++;
case'2':
v2++;
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}
A.v1=4,v2=2,v3=1,v4=1
B.v1=4,v2=9,v3=3,v4=1
C.v1=5,v2=8,v3=6,v4=1
D.v1=8,v2=8,v3=8,v4=8
13、以下程序段的输出结果为〔〕。
inty=1;
while(y--);
printf("y=%d\n",y);
A.y=-1
B.y=0
C.死循环
D.y=9
14、当输入数据:
2763时,下面程序的运行结果是〔〕。
*include
intgbs(inta,intb)
{
intc;
a=a>0"a:
-a;
b=b>0"b:
-b;
c=a*b;
if(c==0)
return0;
while(a!
=b)
if(a>b)
a-=b;
else
b-=a;
returnc/a;
}
intgys(inta,intb)
{
if(a*b==0)
return0;
a=a>0"a:
-a;
b=b>0"b:
-b;
while(a!
=b)
if(a>b)
a-=b;
else
b-=a;
returna;
}
voidmain()
{
inta,b,c,d;
scanf("%d%d",&a,&b);
c=gbs(a,b);
d=gys(a,b);
printf("a=%db=%dgbs=%dgys=%d\n",a,b,c,d);
}
A.a=30b=63gbs=189gys=9
B.a=27b=63gbs=190gys=10
C.a=27b=63gbs=189gys=9
D.a=27b=63gbs=188gys=10
15、假设有程序段:
intk=0;while(k=1)k++;while语句的循环次数是〔〕。
A.无限次
B.有语法错,不能执行
C.一次也不执行
D.执行1次
16、执行下面程序片段的结果是〔〕。
int*=23;
do
{
printf("%2d",*--);
}while(!
*);
A.打印出321
B.打印出23
C.不打印任何内容
D.陷入死循环
17、在C语言程序中,假设希望完毕循环,则do-while语句构成的循环中的条件为〔〕。
A.0
B.1
C.true
D.非
18、以下描述中正确的选项是〔〕。
A.do-while语句构成的循环不能用其它语句构成的循环来代替
B.do-while语句构成的循环只能用break语句退出
C.用do-while语句构成的循环,在while后的表达式为非零时完毕循环
D.用do-while语句构成的循环,在while后的表达式为零时完毕循环
19、以下循环体的执行次数是〔〕。
voidmain()
{
inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)
printf("%d\n",i);
}
A.3
B.2
C.1
D.0
20、有如下程序:
voidmain()
{
inti,sum;
for(i=1;i<=3;sum++)
sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是〔〕。
A.6
B.3
C.死循环
D.0
21、以下程序的输出结果是〔〕。
voidmain()
{
int*=10,y=10,i;
for(i=0;*>8;y=++i)
printf("%d%d",*--,y);
}
A.10192
B.9876
C.10990
D.101091
22、以下说法中正确的选项是〔〕。
A.在switch语句中一定要使用break语句
B.在switch语句中不一定要使用break语句
C.break语句是switch语句的一局部
D.break只能用于switch语句中
23、执行下面的程序后,a的值为〔〕。
voidmain()
{
inta,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=20)
break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
}
A.7
B.8
C.9
D.10
24、假设有以下程序段,w和k都是整型变量:
w=k;
LB:
if(w==0)
gotoLE;
w--;
printf("*");
gotoLB;
LE:
则不能与上面程序段等价的循环语句是〔〕。
A.for(w=k;w!
=0;w--)printf("*");
B.for(w=k;w;--w)printf("*");
C.w=k;while(w--!
=0)printf("*");w++;
D.w=k;do{w--;printf("*");}while(w!
=0);
多项选择题
1、C语言的程序构造语句包括〔〕。
A.顺序构造语句
B.循环构造语句
C.选择构造语句
D.逻辑构造语句
2以下语句哪些属于循环语句〔〕。
A.for语句
B.do-while语句
C.while语句
D.switch语句
判断题
1、break是跳出当前循环,接着执行循环后面的代码。
2、continue只能用于循环语句。
3、break语句只能在循环语句中使用。
4、在C语言中,跳转语句有break语句、goto语句和continue语句。
简答题
1、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。
voidmain()
{
inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d〞,a,b);
}
2、请阅读下面的程序,在空白处填写正确的代码,要求输出m和n的值,且每行从头开场。
voidmain()
{
intm=10,n=20;
printf(,m);
printf(,n);
}
3、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。
voidmain
{
int*=1,y=1,z=10;
if(z<0)
if(y>0)*=3;
else*=5;
printf("%d\t〞,*);
if(z=y<0)*=3;
elseif(y==0)*=5;
else*=7;
printf("%d\t〞,*);
printf("%d\t〞,z);
}
4、请阅读下面的程序,在空白处填写正确的代码,实现分段函数:
*<0y=2*+3;
*=0y=0;
*>0y=(*+7)/3;
输入*,计算y值,输出y。
voidmain()
{
int*,y;
scanf("%d〞,&*);
if(*<0)y=2**+3;
y=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程 第三 练习题 题目