选择结构程序设计循环结构程序设计习题.docx
《选择结构程序设计循环结构程序设计习题.docx》由会员分享,可在线阅读,更多相关《选择结构程序设计循环结构程序设计习题.docx(28页珍藏版)》请在冰豆网上搜索。
选择结构程序设计循环结构程序设计习题
习题4
选择结构程序设计
一、单选题
1.有如下嵌套的if语句
if(a
if(aelsek=c;
if(belsek=c;
以下选项中与上述if语句等价的语句是
A)k=(a
a:
b;k=(b<c)?
b:
c;
B)k=(a
((b<c)?
a:
b)((b>c)?
b:
c);
C)k=(a
((a<c)?
a:
c)((b<c)?
b:
c);
D)k=(a
a:
b;k=(a<c)?
a:
c;
2.以下选项中与if(a==1)a=b;elsea++;语句功能不同的switch语句是
A)switch(a)
{case1:
a=b;break;
default:
a++;
}
B)switch(a==1)
{case0:
a=b;break;
case1:
a++;
}
C)switch(a)
{default:
a++;break;
case1:
a=b;
}
D)switch(a==1)
{case1:
a=b;break;
case0:
a++;
}
3.设变量x和y均已正确定义并赋值。
下列if语句中,在编译时将产生错误信息的是
()。
A)if(x++);B)if(x>y&&y!
=0);
C)if(x>0)x--D)if(y<0){;}
elsey++;elsex++;
4.有以下程序
#include
main()
{intc=0,k;
for(k=1;k<3;k++)
switch(k)
{default:
c+=k
case2:
c++;break;
case4:
c+=2;break;
}
printf(“%d\n”,c);
}
程序运行后的输出结果是
A)3B)5
C)7D)9
5.以下程序段中,与语句:
k=a>b?
(b>c?
1:
0):
0;功能相同的是
A)if((a>b)&&(b>c))k=1;
elsek=0;
B)if((a>b)||(b>c)k=1;
elsek=0;
C)if(a<=b)k=0;
elseif(b<=c)k=1;
D)if(a>b)k=1;
elseif(b>c)k=1;
elsek=0;
6.以下是if语句的基本形式:
if(表达式)
语句
其中“表达式”
A)必须是逻辑表达式
B)必须是关系表达式
C)必须是逻辑表达式或关系表达式
D)可以是任意合法的表达式
7.有以下程序
#include
main()
{intx;
scanf(“%d”,&x);
if(x<=3);else
if(x!
=10)
printf(“%d\n”,x);
}
程序运行时,输入的值在哪个范围才会有输出结果
A)不等于10的整数
B)大于3且不等于10的整数
C)
大于3或等于10的整数
D)小于3的整数
8.有以下程序
#include
Main()
{
inta=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!
=2||c--!
=3)
printf(“%d,%d,%d\n”,a,b,c);
elseprintf(“%d,%d,%d\n”,a,b,c);
elseprintf(“%d,%d,%d\n”,a,b,c);
}
程序运行后的输出结果是
A)1,2,3
B)1,3,2
C)1,3,3
D)3,2,1
9.以下程序中的变量已正确定义
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);
printf(”*”);
程序段的输出结果是
A)********
B)****
C)**
D)*
10.有以下程序段
inta,b,c;
a=10;b=50;c=30;
if(a>b)a=b,b=c;c=a;
printf("a=%db=%dc=%d\n”,a,b,c);
程序的输出结果是()。
A)a=10b=50c=10B)a=10b=50c=30
C)a=10b=30c=10D)a=50b=30c=50
一、看程序,写运行结果
1.#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;
case3:
a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
程序的运行结果是【】
2.#include
main()
{inta=1,b=2,c=3,d=0;
if(a==1)
if(b!
=2)
if(c==3)d=1;
elsed=2;
elseif(c!
=3)d=3;
elsed=4;
elsed=5;
printf(“%d\n”,d);
}
程序远行后的输出结果是 【】
3.#include
main()
{intx=1,y=2,z=3;
if(x>y)
if(yelseprintf("%d",++y);
printf("%d\n",x++);
}
程序的运行结果是【】。
4.#include
main()
{intk=5,n=0;
do
{switch(k)
{case1:
case3:
n+=1;k--;break;
default:
n=0;k--;
case2:
case4;n+=2;k--;break;
}
printf("%d",n);
}while(k>0&&n<5);
}
程序的运行结果是【】。
5.#include
main()
{inta,b,d=241;a=d/100%9;b=(-1)&&(-1);
printf(“%d,%d”,a,b);}
程序的运行结果是【】。
6.#include
main()
{intx=2,y=-1,z=2;
if(xif(y<0)z=0;
elsez+=1;
printf(“%d\n”,z);}
程序的运行结果是【】。
7.#include
main()
{intx,y=1;
if(y!
=0)x=5;
printf("%d\t",x);
if(y==0)x=3;
elsex=5;
printf("%d\t\n",x);
}
程序的运行结果是【】。
8.#include
main()
{intx=1,y=1,z=0;
if(z<0)
if(y>0)x=3;
elsex=5;
printf("%d\t",x);
if(z=y<0)x=3;
elseif(y==0)x=5;
elsex=7;
printf("%d\t",x);
printf("%d\t",z);
}
程序的运行结果是【】。
9.#include
main()
{inti,j;
for(i=1;i<4;i++)
{for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);
printf("\n");}
}
程序的运行结果是【】。
10.#include
main()
{inta=2,b=7,c=5;
switch(a>0)
{case1:
switch(b<0)
{case1:
printf("@");break;
case2:
printf("!
");break;
}
case0:
switch(c==5)
{case0:
printf("*");break;
case1:
printf("#");break;
case2:
printf("$");break;
}
default:
printf("&");
}
printf("\n");
}
程序的运行结果是【】。
三、程序填空
1.输入两个数,并判断是否相等
#include
main()
{inta,b;
printf("Enterintegera:
");
scanf("%d",&a);
printf("Enterintegerb:
");
scanf("%d",【】);
if(a==b)
printf("a==b\n");
else
printf("a!
=b\n");
}
2.输入3个实数a,b,c要求按从大到小的顺序输出三数。
#include
main()
{floata,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a
{t=a;【】;b=t;}
If(【】)
{t=a;a=c;c=t;}
if(b{【】;b=c;c=t;}
printf("%f,%f,%f",a,b,c);}
3.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型.在()填正确内容.
#include
#include“math.h”
main()
{
floata,b,c,s,area;
scanf("%f%f%f",&a,&b,&c);
if(【】)
{s=0.5*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%6.2f",area);
if(【】)
{printf("等边三角形");}
elseif(【】)
{printf("等腰三角形");}
elseif((a*a+b*b==c*c)||(a*a+c*c==b*b)
||(b*b+c*c==a*a))
{printf("直角三角形");}
else{printf("一般三角形");}
}
else{printf("不能组成三角形");}
}
二、编程题
1.编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词。
例如:
1转换成Monday,7转换成Sunday。
2.输入年号,计算这一年的2月份的天数,将结果输出。
3.输入学生的成绩,利用计算机将学生的成绩划分出等级并输出:
90~100:
A级;80~89:
B级;70~79:
C级;60~69:
D级;0~59:
E级;
习题5
循环结构程序设计
一、单选题
1.有以下程序
#include
main()
{intn=2,k=0;
while(k++&&n++>2);
printf(“%d%d\n”,k,n);
}
程序运行后的输出结果是
A)02B)13
C)57D)12
2.有以下程序
#include
main()
{inta=1,b=2;
for(;a<8;a++){b+=a;a+=2;}
printf(“%d,%d\n”,a,b);
}
程序运行后的输出结果是
A)9,18B)8,11
C)7,11D)10,14
3.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是
A)n=0;while((ch=getchar())!
=’\n’)n++;
B)n=0;while(getchar()!
=’\n’)n++;
C)for(n=0;getchar()!
=’\n’;n++);
D)n=0;for(ch=getchar();ch!
=’\n’;n++);
4.有以下程序
#include
main()
{inti=5;
do
{if(i%3==1)
if(i%5==2)
{printf("*%d",i);break;}
i++;
}while(i!
=0);
printf("\n");
}
程序的运行结果是()。
A)*7B)*3*5C)*5D)*2*6
5.若变量已正确定义,有以下程序段
i=0;
doprintf("%d,",i);while(i++);
printf("%d\n",i)
其输出结果是
A)0,0B)0,1
C)1,1D)程序进入无限循环
6.2、有如下程序
main()
{inti,sum;
for(i=1;i<=3;sum++)sum+=i;
printf(“%d\n”,sum);
}
该程序的执行结果是
A)6B)3
C)死循环D)0
7.3、有如下程序
main()
{intx=23;
do
{printf("%d",x--);}
while(!
x);
}
该程序的执行结果是
A)321B)23
C)2322D)陷入死循环
8.4、执行下面的程序后,a的值为:
()
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)
{b+=3;
continue;
}b-=5;
}
}
A)7B)8
C)9D)10
9.以下程序段的输出结果是()
intx=3;
do
{printf("%3d",x-=2);}
while(!
(--x));
A)1B)30
C)1-2D)死循环
10.有下列程序:
main()
{intk=5;
while(--k)printf("%d",k-=3);
printf("\n");
}
执行后的输出结果是()。
A)1B)2
C)4D)死循环
二、看程序,写运行结果
1.#include
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)printf("%d",--y);
}
程序的运行结果是【】
2.#include
main()
{inti,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j--)
{if(i+j>3)break;
m*=i*j;}
}
printf(“m=%d\n”,m);
}
程序的运行结果是【】
3#include
main()
{inti,j;
for(i=3;i>=1;i--)
{for(j=1;j<=2;j++)printf("%d",i+j);
printf("\n");
}
程序的运行结果是【】
4.#include
main()
{intm,n;
scanf(“%d%d”,&m,&n);
while(m!
=n)
{while(m>n)m=m-n;
while(mprintf(“%d\n”,m);
}
程序运行后,当输入1463<回车>时,输出结果是 【】 。
5.#include
main()
{inta=1,b=7;
do{
b=b/2;a+=b;
}while(b>1);
printf(“%d\n”,a);}
程序的运行结果是【】
6.#include
main()
{intf,f1,f2,i;
f1=0;f2=1;
printf(“%d%d”,f1,f2);
for(i=3;i<=5;i++)
{f=f1+f2;printf(“%d”,f);
f1=f2;f2=f;
}
printf(“\n”);
}
程序运行后的输出结果是【】
7.下列程序运行时,若输入abced2f<回车>输出结果为【】
#include
main()
{chara=0,ch;
while((ch=getchar())!
=’\n’)
{if(a&2!
=0&&(ch>’a’&&ch<=’z’))ch=ch-‘a’+’A’;
a++;putchar(ch);
}
printf(“\n”);
}
8.#include
main()
{inti,j,sum;
for(i=3;i>=1;i--)
{sum=0;
for(j=1;j<=i;j++)sum+=i*j;
}
printf("%d\n",sum);
}
程序运行后的输出结果是【】
9.#include
main()
{intk;
for(k=2;k<6;k++,k++)
printf("##%d",k);
}
程序运行后的输出结果是【】
10.#include
main()
{inti,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++)m=m%j;
printf("%d\n",m);
}
程序的运行结果是【】
三、程序填空
1.求x的y次方(y大于0)
#include
main()
{
inti,x,y;
doublez;
scanf("%d%d",&x,&y);
for(i=1,z=x;iz=【】;
printf("%f\n",z);
}
2.计算1到10之间奇数之和及偶数之和。
#include
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{
a+=i;
b=【】
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);}
3.要输出以下的图形(从1到6)
1
22
333
4444
55555
666666
#include
main()
{
inti,j,k;
for(i=1;i<=6;i++)
{
for(j=1;j<=20-2*i;j++)
printf("");;
for(k=1;【】;k++)
printf("%2d",i);
printf("【】");
}
}
4.下列程序的功能是输出如下形式的方阵:
13141516
9101112
5678
1234
请填空。
main()
{inti,j,x;
for(j=4;j【】;j--)
{for(i=1;i<=4;i++)
{x=(j-1)*4+【】;
printf("%4d",x);
}
printf("\n");
}
}
四、编程题
1.求Σn!
(即求1!
+2!
+3!
+……+20!
)
2.求下列试子的值:
1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。
3.打印九九乘法表。
4.百元买百鸡问题:
公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种买法。
5.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程。
6.用40元钱买苹果、西瓜和梨共100个,且三种水果都有。
已知苹果0.4元一个,西瓜4元一个,梨0.2元一个。
问可以买多少个?
编程输出所有购买方案。
习题4
选择结构程序设计
一、单选题
1(C)2(B)3(C)4(A)5(A)6(D)7(B)8(C)9(D)10(A)
二、看程序,写结果
1.【a=2,b=1】2.【4】3.【1】4.【235】5.【2,1】6.【2】7.【55】
8.【170】
9.【
1*1=11*2=21*3=3
2*2=42*3=6
3*3=9
】
10.【#&】
三
1.【&b】2.【a=b】【a3.【a+b>c&&b+c>a&&c+a>b】【a==b&&b==c】【a==b||b==c||a==c】
四、编程题
1.#include
voidmain()
{
inta;
printf("输入一个整数:
\n");
scanf("%d",&a);
if(a==1)printf("Monday\n");
elseif(a==2)printf("Tuesday\n");
elseif(a==3)printf("Wendesday\n");
elseif(a==4)printf("Thursday\n");
elseif(a==5)printf("Friday\n");
elseif(a==6)printf("Saturday\n");
elseif(a==7)printf("Sunday\n");
elseprintf("错误\n");
}
2.#include
voidmain()
{
intyear,leap;
printf("请输入年份:
\n");
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;
if(leap)
printf("%d年的2月有29天",year);
else
printf("%d年的2月有28天",year);
}
3.#include
voidmain()
{
floatm;
printf("输入学生成绩:
\n");
scanf("%f",&m);
if((m>100)||(m<0))printf("数据有误\n");
elseif(m>=90)printf("A级\n");
elseif(m>=80)printf("B级\n");
elseif(m>=70)printf("C级\n");
elseif(m>=60)printf("D级\n");
elseprintf("E级\n");
}
习题5
循环结构程序设计
一、单选题
1(D)2(D)3(D)