流程控制
一、选择题
1、在while(!a)中,其中!a与表达式()等价
A、a==0
B、a==1
C、a!=1
D、a!=0
2、设整型变量x的当前值是3,执行以下循环语句后,输出的结果是()
do
printf(“%d”,x-=2);
while(!(--x));
A、0B、1-2C、30D、死循环,输出许多值
3、对下面三条语句,正确的论断是()
(1)if(a)s1;else s2;(2)if(a==0)s2;else s1;(3)if(a!=0)s1;else s2;
A、三者相互等价
B、三者相互不等价
C、只有(2)和(3)等价
D、以上三个说法都不正确
4、对于for(表达式1;;表达式3)可理解为()
A、for(表达式1;0;表达式3)
B、for(表达式1;1;表达式3)
C、for(表达式1;表达式1;表达式3)
D、for(表达式1;表达式3;表达式3)
5、执行以下程序段的输出是()
for(i=1;i<7;i++)
{if(i%3==0)break;
printf(“%d”,i);}
A、123456
B、1245
C、123
D、12
6、执行以下程序段的输出是()
for(i=1;i<7;i++)
{if(i%3==0)continue;printf(“%d”,i);}
A、123456
B、1245
C、123
D、12
二、阅读程序题
1、当前整型变量i的值是10,执行下列switch语句后,i的值是_____________
switch(i)
{case9:i+=1;
case10:i+=1;
case11:i+=1;
default:i+=1;}
2、若整型变量w=1,x=2,y=3,z=4,则条件表达式w>x?w:z>y?z:x的值为__________。
3、若有程序
main()
{int i=1;
while(i++<5);printf(“%d”,i);}运行后的输出结果是______________。
4、main()
{int a,b,c;a=2;b=3;c=1;
if(a>b)
if(a>c)printf(“%d”,a);
else printf(“%d”,b);
printf(“end”);}输出结果为______________。
5、main()
{int a,b,c;a=2;b=3;c=1;
if(a>b)
{if(a>c)printf(“%d”,a);}
else printf(“%d”,b);
printf(“end”);}____________。continue语句执行过程
三、完善程序题
1、用0~9之间不同的数字构造所有可能的三位数(即个位、十位和百位上的数字各不相同),并统计出共有多少种。
main()
{int i,j,k,count=0;
for(i=1;i<=_____________;i++)
for(j=0;j<=___________________;j++)
if(____________________)continue;
else for(k=0;k<=9;k++)
if(______________________________)
{printf(“%d,”,100*i+10*j+k);
count++;}
printf(“\nTotal=%d”,count);}
2、求f(x)=-x2/2!+x4/4!-x6/6+x8/8!……,要求精度为十万分之一。
#include<math.h>
main()
{double x,y,t;
int n=0;printf(“Input x:”);
scanf(“%f”,&x);
t=1;
_______________________;
while(fabs(t)>1e-6)
{n++;
t=___________________________________;
y+=t;}
printf(“f(%f)=%f”,x,y);}
四、编程
1、利用三种循环计算1+2+3+……+100的值
2、输出九九乘法表
1*1=1
1*2=22*2=4
1*3=32*3=63*3=9
……
3、求两个正整数的最大公约数和最小公倍数
4、求出所有水仙花数
5、出100以内的所有完数
6、从键盘上输入3个整数,输出其中的最大值
7、2006年1月1日是星期一,设计程序,输入2007年的月份和日期,计算该天是星期几