C语言程序设计教程第三章练习题题目docx.docx
- 文档编号:24885829
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:32
- 大小:23.21KB
C语言程序设计教程第三章练习题题目docx.docx
《C语言程序设计教程第三章练习题题目docx.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教程第三章练习题题目docx.docx(32页珍藏版)》请在冰豆网上搜索。
C语言程序设计教程第三章练习题题目docx
单选题
若定义a=3zb=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.aoO
B.!
a
C.a=0
D.a
3、为了避免嵌套的if・else语句的二义性,C语言规定else总是与()组成配对关系。
A.缩排位置相同的if
B.在其Z前未配对的if
C.在其Z前诡未配对的最近的if
D.同一行上的if
4、有定义intt=0;则有循环while(t"){・・・},则下列关于while循环语句的描述中正确的是()。
A.循坏控制表达式的值为0
B.循环控制表达式的值为1
C.循环控制表达式的值不合法
D.以上说法都不对
5、若冇定义:
intxj;贝lj下列for•循环语句:
for(i=0,x=0;i<=9&&x!
=876;i++)
scanf("%d;&x);
下列选项中,描述正确的是()
A.最多执行10次
B.最多执行9次
C.是无限循环
D.循环体一次也不执行
6、关于下面的for循环语句
inti,k;
for(i=0,k=-l;k=l;i++,k++)printf("*****");
下列选项中,描述正确的是()
A.判断循环结束的条件非法
B.是无限循环
C.只循环一次
D.—次也不循环
7、C语言程序的三种基本结构是()。
A.顺序结构,选择结构,循环结构
B.递归结构,循环结构,转移结构
C.嵌套结构,递归结构,顺序结构
D.循环结构,转移结构,顺序结构
8、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。
A.aoO
B.!
a
C.a=0
D.a
9、两次运行下面的程序,如果从键盘上分别输入6和4,那么输出结果是()。
voidmain()
{
intx;
scanf("%d"z&x);
if(x++>5)
printf(“%d”,x);
else
printf(H%d\n"zx-);
}
A.7和5
B.6和3
C.7禾U4
D.6和4
10、运行以下程序后,如果从键盘上输入china#,那么输出结果为()。
#include
voidmain()
{
intvl=0,v2=0;
charch;
while((ch=getchar())!
='#')
switch(ch)
{
case3:
caseh:
default:
vl++;
caseO:
v2++;
}
printf("%d,%d\n"zvl,v2);
}
A20
B.5,0
C.5,5
D.2,5
11、有如下程序:
voidmain()
intx=l,a=O,b=O;switch(x)
case0:
b++;
case1:
a++;
case2:
a++;
b++;
}printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是()。
A.a=2,b=l
B.a=l,b=l
C.a=l,b=0
D.a=2,b=2
12、下面程序的输出是()o
voidmain()
{
char*a="12134211,,;
intvl=0,v2=0,v3=0,v4=0,k;
for(k=O;s[k];k++)
switch(s[k])
{
default:
v4++;
caseT:
vl++;
case3:
v3++;
case'2':
v2++;
}
printf("vl=%d,v2=%d,v3=%d,v4=%d\n",vl,v2,v3,v4);
}
A.vl=4/v2=2/v3=l,v4=l
B.vl=4,v2=9,v3=3,v4=l
C.vl=5,v2=8,v3=6,v4=l
D.vl=8,v2=8,v3=8,v4=8
13、下列程序段的输岀结果为()。
inty=l;
while(y-);
pnntf("y=%d\n",y);
A.y=-1
B.y=O
C.死循环
D.y=9
14、当输入数据:
2763时,下面程序的运行结果是()。
#include
intgbs(inta,intb)
{
intc;
a=a>O?
a:
-a;
b=b>O?
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(Ha=%db=%dgbs=%dgys=%d\nl,/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=l)k++;while语句的循环次数是()。
A.无限次
B.有语法错,不能执行
C.一次也不执行
D.执行1次
16、执行下面程序片段的结果是()。
intx=23;
do
{
printf("%2d,,zx-);
}while(!
x);
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=0J=l;i<=j+l;i+=2zj-)pnntf("%d\n"zi);
}
A.3
B.2
C.l
D.O
20、冇如下程序:
voidmain()
inti,sum;
for(i=l;i<=3;sum++)
sum+=i;
printf(”%d\n”,sum);
}该程序的执行结果是()。
A.6
B.3
C.死循环
D.O
21、以下程序的输岀结果是()。
voidmain()
{
intx=10,y=10,i;
for(i=0;x>8;y=++i)
prin廿(”%d%d",x-,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=l,b=l;a<=100;a++)
{
if(b>=20)
break;
if(b%3==l)
{
b+=3;
continue;
}
b-=5;
}
}
A.7
B.8
C.9
D.1024、若有以下程序段,w和k都是整型变量:
w二k;
LB:
if(w==0)
gotoLE;
w-;
printfC'*");
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=(-l)&&(-l);
printf("%d,%d",a,b);
}
2、请阅读下面的程序,在空白处填写止确的代码,要求输出m和n的值,且每行从头开始。
voidmain()
{
intm=10,n二20;
printf(,m);
printff,n);
}
3、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。
voidmain
{
intx=l,y=1,z=10;
if(z<0)
if(y>0)x=3;
elsex=5;
printf("%d\t",x);
讦(z=y<0)x=3;
elseif(y==O)x=5;
elsex=7;
printf("%d\t〃,x);
printf("%d\t",z);
}
4、请阅读下面的程序,在空口处填写正确的代码,实现分段函数:
x<0y=2x+3;
x=0y=0;
x>0y=(x+7)/3;
输入x,计算y值,输出y。
voidmain()
{
intx,y;
scanf("%d",&x);
if(x<0)y=2*x+3;
y=0;
if(x>0)y=(x+7)/3;
printf("%d〃,y);
}
5、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。
voidmain()
charch='B';switch(ch)case'A':
printf("itisA\n〃);
case'B':
printf("itisB\n");
case'C':
printf(“itisC\n");
default:
printf("other\n");
}
}
6、请阅读下面的程序,在空白处填写正确的代码,实现下列功能:
投票表决器:
•输入Y,y,打印agree
■输入N,n,打印disagree
■输入其他,打印lose
voidmain()
{
charch;
scanf("%c",&ch);
{
caseV:
case'y':
printf("agree〃);;
case'N':
case'n‘;printf("disagree");;
;printf("loser〃);
}
}
7、请阅读下面的程序,在空口处填写正确的代码,实现卜-列功能:
查询学生身高的分布状况:
H175-200cm30%
M160-175cm40%
L150-160cm30%
voidmain()
{
charch;
scanf("%d",&ch);
{
:
printffa175-200cm身高的学生占30%\n”);;
:
printf(a160-175cm身高的学生占40%\n”);;
:
printff“160-175cm身高的学生占40%\n”);;
default:
printf(“输入有误,请重新输入!
\n”);
}
8、请阅读下血的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。
voidmain()
{
intnum=0;
while(num<=2)
{
num++;
printf("%d\n",num);
}
}
9、请阅读下面的程序,在空白处填写正确的代码,实现下列功能:
输出KL00之间的偶数数:
voidmain()
{
intnum=1,sum=0;
while(num<=100)
{
讦()
sum+=num;
}printf("sum=%d\n"zsum);
}
10、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。
voidmain()
{
intnum=0;
do
{
num++;
printf(z/%d\n"num);
}
while(num<=2);
}
11>请阅读下面的程序,在空口处填写正确的代码,实现下列功能:
输III1-100Z间的偶数数:
voidmain()
{
intnum=1,sum=0;
do
if(
sum+=num;
Jwhile(num<=100);printff'sum=%d\n,,/sum);
}
12、请阅读下而的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。
voidmain()
{
intizm=1;
for(i=3;i>=1;i-)
{
m=(m+1)*2;printff'm=%d\n",m);
}
}
13、请阅读下面的程序,在空白处填写匸确的代码,实现下列功能:
求II!
1-100Zfn|的偶数和:
voidmain()
{
int\,sum=0;
for(j=2;;i++)
}
}
14、请阅读下Mi的程序,分析程序是否能编绎通过并止确运行,如果不能,说明原因;如果能,请写出运行结果。
voidmain()
{
inti,j;
for(i=0;i<=2;i++)
{
for(j=0;j<=i;j++)
{
printf("(%d,%d)\n"zi,j);
}
}
}
15、请阅读卜面的程序,在空口处填写正确的代码,实现卜•列功能:
打卬下列图形:
♦
♦**
*****
*******voidmain()inti,j,k;
for(i=0;;i++)
{
for(j=0;j<=2・i;j++)printf("“);
for(k=0;;k++)
printfC1*");
}
}
16、请阅读下面的程序,在空白处填写正确的代码,实现下列功能:
XYZ
+YZZ
532
voidmain()
{
intx,y,z,result=532;
for(x=1;;x++)
{
for(y=1;;y++)
{
for(z=0;z<=1;z++)
{
i=+(100*y+10*z+z);
if(i==result)
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
}
}
}
17、请阅读下而的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。
voidmain()
{
inta,b;
for(a=lzb=1;a<=100;a++)
{
if(b>=10)
break;
if(b%3==1)
b+=3;
continue;
}
}
printf「a=%d\n",a);
}
18、请阅读下面的程序,在空白处填写匸确的代码,实现下列功能:
用户键盘输入一个数,判断是奇数还是偶数.
voidmain()
{
intnum;
scanf(,,%d,,/&num);
讦(num%2==0)
/
else
/
epl:
printff"输入的是一个偶数!
\nH);
ep2:
printf(-输入的是一个奇数!
\nH);
}
19、请阅读下面的程序,分析运行结果。
voidmain()
{
printf(H@\n");
pnntf("@@\nH);
printf("@@@\n");
printf("@@@@\n");
printf("@@@@@\n“);
}
20、请阅读下面的程序,在空白处填写正确的代码,输出三个整数中最大的整数。
#include
voidmain()
{
inta=10,b=40,c=20,t=a;
if(t
}
if()
{
t=c;
}
printf(n%d%d%d中的最大数是%d\n"/a,b,c,t);
21、请阅读下面的程序,在空白处填吗止确的代码,该程序的功能是:
从键盘输入一个年份数据,判断此年份是否为闰年。
(注:
满足下面两个条件中的一个即为闰年:
一、400的倍数;二、4的倍数但不是100的倍数)。
voidmain()
{
intx,i;
scanf(”%d”,&x);
if(x%400==0)
i=l;
elseif()
i=l;
else
if(i==l)
printf(“该年为闰年\n“);
if(i==0)printf(”该年为平年\n”);
}
22、请阅读下而的程序,在空门处填写正确的代码,该程序的功能是:
输入三个整数,将最人数挑选出來显示。
voidmain()
{
inta,b,c,max;
scanf(”%d,%d,%d",&a,&b,&c);
讦(a>b)
else
max=b;
if(max printf("max=%d"/max); } 23、诘阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,诘列出运行的结果,否则请说明编译失败的原因。 #include voidmain() { intx=1,a=0,b=0; switch(x) { case0: b++; case1: a++; case2: a++; b++; } printf("a=%d,b=%d\n",a,b); } 24、请阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。 #include voidmain() { 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\nnza,b); } 25、请阅读下血的程序,在空白处填写正确的代码,该程序的功能是: 通过输入成绩,为成绩评等级,90~100为A,80^89为B,70~79为C,60~69为D,60以F为E。 #inelude voidmain() { intscore; printf("Pleaseinputyourscore: "); scanf("%d”,&score); switch() { case10: case9: printff'YourlevelisA.\n"); break; case& printff'YourlevelisB.\n"); break; case7: printf("YourlevelisC.\n"); break; case6: printf("YourlevelisD.\n"); break; printf("YourlevelisE.\n"); } } 26、请阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。 #include voidmain() { inty=10; while(y-); printf("y=%d\n"/y); } 27、请阅读下而的程序,在空111处填写正确的代码,该程序的功能是: 计算并输出下列级数的前N项Z和SN,直到SN大于Q为止。 #include doublefun(doubleq) { intn; doubles; n=2; s=2.0; while() { s=s+(double)(n+l)/n; } printf("n=%d\n"/n); } voidmain() 28、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是: 从键盘上输入一行字符(不多于40个,以回车换行符作为输入结束标记),将其中的大写字母改为小写字母,其它字符不变,然后逆向输出。 voidmain() { chara[40]; intn=0; do { scanf(“%c“,&a[n]); if() a[n]+=32; n++; }while(! ='\n'); n二n-2; while(n>=0) printf(“%c”,a[n-]); } 29、请阅读下而的程序,在空白处填写正确的代码,该程序的功能是: 连续向数组输入成绩,并显示数组元素的值,当输入负数时停止接收数据。 voidmai
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程 第三 练习题 题目 docx