C语言循环结构程序设计模拟题.docx
- 文档编号:24825431
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:19
- 大小:27.57KB
C语言循环结构程序设计模拟题.docx
《C语言循环结构程序设计模拟题.docx》由会员分享,可在线阅读,更多相关《C语言循环结构程序设计模拟题.docx(19页珍藏版)》请在冰豆网上搜索。
C语言循环结构程序设计模拟题
第五章循环结构程序设计
一、选择题
1.while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为的操作,否则,循环将会无限制地进行下去。
(0级)
A)0B)1C)成立D)2
2.在do-while循环中,循环由do开始,用while结束;必须注意的是:
在while表达式后面的不能丢,它表示do-while语句的结束。
(0级)
A)0B)1C);D),
3.for语句中的表达式可以部分或全部省略,但两个不可省略。
但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。
(0级)
A)0B)1C);D),
4.程序段如下
intk=-20;
while(k=0)k=k+1;
则以下说法中正确的是。
(1级)
A)while循环执行20次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次
5.程序段如下
intk=1;
while(!
k==0){k=k+1;printf("%d\n",k);}
说法正确的是。
(1级)
A)while循环执行2次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次
6.以下for循环是。
(1级)
for(a=0,b=0;(b!
=123)&&(a<=4);a++)
A)无限循环B)循环次数不定C)执行4次D)执行5次
7.在下列程序中,while循环的循环次数是。
(1级)
main()
{inti=0;
while(i<10)
{if(i<1)continue;
if(i==5)break;
i++;
}
......
}
A)1B)10C)6D)死循环、不能确定次数
8.程序段如下
intk=0;while(k++<=2)printf("%d\n",k);
则执行结果是。
(1级)
A)1B)2C)0D)无结果
231
342
9.程序段如下
intk=0;
while(k++<=2);printf("last=%d\n",k);
则执行结果是last=。
(1级)
A)2B)3C)4D)无结果
10.执行下面的程序后,a的值为。
(1级)
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)8C)9D)10
11.以下程序的输出结果。
(1级)
main()
{
intx=3;
do
{printf("%3d",x-=2);
}while(--x);
}
A)1B)303C)1-2D)死循环
12.定义如下变量:
intn=10;
则下列循环的输出结果是。
(1级)
while(n>7)
{n--;
printf("%d\n",n);
}
A)10B)9C)10D)9
9898
8787
76
13.以下程序的输出结果。
(1级)
main()
{intn=0;
while(n++<=1)
printf("%d\t",n);
printf("%d\n",n);
}
A)123B)012C)112D)122
14.以下程序的输出结果是。
(1级)
main()
{inti;
for(i=1;i<=5;i++)
{if(i%2)printf("#");
elsecontinue;
printf("*");
}
printf("$\n");
}
A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$
15.以下程序的输出结果是。
(1级)
main()
{inta=0,i;
for(i=;i<5;i++)
{swich(i)
{case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
}
printf("%d\n",a);
}
A)31B)13C)10D)20
16.以下程序的输出结果是。
(1级)
#include
main()
{inti=0,a=0;
while(i<20)
{for(;;){if((i%10)==0)break;elsei--;}
i+=11;a+=i;
}
printf("%d\n",a);
}
A)21B)32C)33D)11
17.当输入为"quert?
"时,下面程序的执行结果是。
(1级)
#include
main()
{charc;
c=getchar();
while((c=getchar())!
='?
')putchar(++c);
}
A)QuertB)vfsuC)quert?
D)rvfsu?
18.当输入为"quert?
"时,下面程序的执行结果是。
(1级)
#include
main()
{while(putchar(getchar())!
='?
');}
A)quertB)RvfsuC)quert?
D)rvfsu?
19.当输入为"quert?
"时,下面程序的执行结果是。
(2级)
#include
main()
{charc;
c=getchar();
while(c!
='?
')
{
putchar(c);
c=getchar();
}
}
A)quertB)RvfsuC)quert?
D)rvfsu?
20.在C语言的循环语句for,while,do-while中,用于直接中断最内层循环的语句是。
(0级)
A)swichB)continueC)breakD)if
21.若i,j已定义为int型,则以下程序段中循环体的总的执行次数是。
(1级)
for(i=5;i;i--)
for(j=0;j<4;j++)
{}
A)20B)24C)25D)30
22.以下程序的功能是:
按顺序读入10名学生的4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
{intn,k;
floatscore,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{for(k=1;k<=4;k++)
{scanf("%f",&score);sum+=score};}
ave=sum/4.0;
printf("NO%d:
%f\n",n,ave);
}
}
上述程序有一条语句出现在程序的位置不正确。
这条语句是。
(2级)
A)sum=0.0;B)sum+=score;
C)ave=sum/4.0;D)printf("NO%d:
%f\n",n,ave);
23.有如下程序段,其执行结果为。
(02~03第一学期试题)
for(n=10;n>7;n--)
printf(“%d\n”,n);
A)10B)9C)10D)9
9898
8787
76
24.循环语句中的for语句,其一般形式如下:
for(表达式1;表达式2;表达式3)语句
其中表示循环条件的是。
(01~02第二学期试题)
A)表达式1B)表达式2C)表达式3D)语句
25.定义如下变量:
intn=10;
则下列循环的输出结果是。
(01~02第二学期试题)
while(n>7){n--;printf(“%d”,n);}
A)10B)9C)10D)9
9898
8787
76
26.下面程序段的运行结果是:
。
(03试题)
x=y=0;while(x<15)y++,x+=++y;
printf(“%d,%d”,y,x);
A)20,7B)6,12
C)20,8D)8,20
27.以下程序的运行结果是:
。
(03试题)
main()
{inta=2,i;
for(i=0;i<3;i++)printf(“%4d”,f(a));}
f(inta)
{intb=0,c=3;
b++;c++;return(a+b+c);}
A)71013B)777
C)7911D)789
28.下面程序的运行结果是:
。
(往届试题)
main()
{inty=10;
do{y--;}while(--y);
printf(“%d\n”,y--);}
A)-1B)1C)8D)0
29.下面有关for循环的正确描述是。
(04~05第二学期试题)
A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
30.以下能正确计算1×2×3×…×10的程序段是。
(04~05第二学期试题)
A)do{i=1;s=1;s=s*i;i++;}while(i<=10);
B)do{i=1;s=0;s=s*i;i++;}while(i<=10);
C)i=1;s=1;do{s=s*i;i++;}while(i<=10);
D)i=1;s=0;do{s=s*i;i++;}while(i<=10);
31.以下程序段。
(04~05第二学期试题)
x=-1;do{x=x*x;}while(!
x);
A)是死循环B)循环执行二次
C)循环执行一次D)有语法错误
32.下面程序的运行结果是:
。
(往届试题)
#include
main()
{inty=10;
do{y--;}while(--y);
printf(“%d\n”,y--);}
A)-1B)1C)8D)0
33.定义如下变量和数组:
intI;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面执行语句的结果为:
。
(往届试题)
for(I=0;I<3;I++)
printf(“%3d”,x[I][2-I]);
A)159B)147
C)357D)369
34.以下程序的运行结果是:
。
(往届试题)
main()
{intn=4;
while(n--)
printf(“%2d”,--n);}
A)20B)31
C)321D)210
35.设有以下程序段,则执行该程序后为:
。
(往届试题)
intx=0,s=0;
while(!
x!
=0)s+=++x;
printf(“%d”,s);
A)运行程序段后输出0
B)运行程序段后输出1
C)程序段中的控制表达式是非法的
D)程序段执行无限次
36.下面程序的运行结果是:
。
(往届试题)
#include
main()
{intI;
for(I=1;I<=5;I++)
switch(I%5)
{case0:
printf(“*”);break;
case1:
printf(“#”);break;
default:
printf(“\n”);
case2:
printf(“&”);break;}
}
A)#&&*B)#&C)#D)#&
&&
&*&*
&
*
二、填空题
1.while语句的特点是
(1),do-while语句的特点是
(2)。
(0级)
2.将for(表达式1;表达式2;表达式3)语句改写为while语句是。
(0级)
3.break语句的功能是。
(0级)
4.break语句只能用于
(1)语句和
(2)语句中。
(0级)
5.continue语句的作用是,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。
(0级)
6.在循环中,continue语句与break语句的区别是:
continue语句只是
(1),break语句是
(2)。
(0级)
7.循环的嵌套是指。
(0级)
8.要使以下程序段输出10个整数,请填入一个整数:
for(i=0;i<=;printf("%d\n",i+=2));
9.goto语句的用途是和。
(0级)
10.while语句的特点是,do_while语句的特点是。
(0级)
11.把for(表达式1;表达式2;表达式3);改写为等价的while语句为。
(0级)
12.语句标号由标识符表示,由,和组成。
第一个字符必须是字母或下划线。
(0级)
三、程序填空题
1.以下程序的功能是:
从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
main()
{floatx,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while
(1)
{if(x>amax)amax=x;
if
(2)amin=x;
scanf("%f",&x);
}
printf("\namax=%f\namin=%f\n",amax,amin);
}
2.下面程序可求出1~1000的自然数中所有的完数(因子和等于该数本身的数)请填空。
(03试题)
main()
{intm,n,s;
for(m=2;m<1000;m++)
{____
(1)____
for(n=1;n<=m/2;n++)
if(__
(2)___)s+=n;
if(__(3)___)printf(“%d\n”,m);}}
3.以下程序的功能是根据
求e的近似值,精度要求为
。
请填空:
(04~05第二学期试题)
main()
{inti=1;doublee,new;
e=1.0;new=1.0;
while(
(1))
{new/=(double)i;e+=new;
(2);}
printf(“e=%e\n”,e);
}
四、读程序写结果题
1.下面程序的输出结果是。
(1级)
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d\n",n);
}
2.下面程序的输出结果是。
(1级)
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n",s);
}
3.下面程序的输出结果是。
(1级)
main()
{inti=10,j=0;
do
{j=j+i;i--;
while(i>2);
printf("%d\n",j);
}
4.设有以下程序
main()
{intn1,n2;
scanf("%d",&n2);
while(n2!
=0)
{n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298,则输出结果为。
(1级)
5.下面程序的输出结果是。
(1级)
main()
{ints=0,k;
for(k=5;k>=0;k--)
{swich(k)
{case1:
case5:
s++;break;
case3:
case4:
break;
case0:
case2:
s+=2;break;
}
}
printf("s=%d\n",s);
}
6.下面程序运行结果是:
。
(03试题)
main()
{intx,i;
for(i=1,x=1;i<=50;i++)
{if(x>=10)break;
if(x%2==1){x+=5;continue;}
x-=3;}
printf(“%d\n”,i);}
7.下面程序运行结果是:
。
(04~05第二学期试题)
#include
main()
{inti,j;
for(i=4;i>=1;i--)
{printf(“*”);
for(j=1;j<=4-i;j++)
printf(“*”);
printf(“\n”);}}
8.下面程序的运行结果是:
。
(往届试题)
main()
{inti;
for(i=1;i<=5;i++)
switch(i%5)
{case0:
printf(“*”);break;
case1:
printf(“#”);break;
default:
printf(“\n”);
case2:
printf(“&”);}
}
9.下面程序的运行结果是:
_________。
(往届试题)
#include
main()
{inti,j;
for(i=0;i<=3;i++)
{for(j=0;j<=5;j++)
{if(i==0||j==0||i==3||j==5)printf(“*”);
elseprintf(“”);}
printf(“\n”);}
}
五、编程题
1.编写程序,求两个整数的最大公约数。
(1级)
2.把输入的整数(最多不超过5位)按输入顺序的反方向输出,例如,输入数是12345,要求输出结果是54321,编程实现此功能。
(1级)
3.中国古代数学家张丘建提出的“百鸡问题”:
一只大公鸡值五个钱,一只母鸡值三个钱,三个小鸡值一个钱。
现在有100个钱,要买100只鸡,是否可以?
若可以,给出一个解,要求三种鸡都有。
请写出求解该问题的程序。
(1级)
4.求100~200间的全部素数。
(1级)
5.整元换零钱问题。
把1元兑换成1分,2分,5分的硬币,共有多少种不同换法,请编写求解此问题的程序。
(1级)
6.有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13,...,编写程序求这个数列的前20项之和。
(1级)
7.编写程序,利用公式e=1+1/1!
+1/2!
+1/3!
+....+1/n!
求出e的近似值,其中n的值由用户输入(用于控制精确度)。
(1级)
8..一个数如果恰好等于它的因子之和(除自身外),则称该数为完全数,例如:
6=1+2+3,6就是完全数,请编写一程序,求出1000以内的整数中的所有完全数。
其中1000由用户输入。
(2级)
9.编一程序,将2000年到3000年中的所有闰年年份输出并统计出闰年的总年数,要求每10个闰年放在一行输出。
(1级)
10.请编写一程序,打印出九九乘法口诀表(例:
1*1=1)。
(1级)
11.请编写一程序,将所有“水仙花数”打印出来,并打印出其总数。
“水仙花数”是一个其各位数的立方和等于该整数的三位数。
(04~05第二学期试题)
12.编写一程序,求1-3+5-7+.........-99+101的值。
(1级)
13.编写程序,计算1!
+2!
+3!
+.......+n!
的值,其中n的值由用户输入。
(1级)
14.求sn=a+aa+aaa+aaaa+......+aa.....a的值,其中a是一个数字,例如:
2+22+222+2222+22222(此时n=5)。
n和a的值由键盘输入,请编程实现以上和过程。
(1级)
15.编写程序,用迭代法求x=√a的近似根。
求平方根的迭代公式为:
Xn+1=(Xn+a/Xn)/2。
要求前后两次求出的x的差的绝对值小于0.00001。
(1级)
16.一个求从100米高度自由落下,每次落地后又反弹回原来高度的一半,再落下,求它在第10次落地时共经过多少米?
第10次反弹多高?
编写程序求解该问题。
(1级)
17.若有如下公式:
+
+
+。
。
。
。
。
。
。
+
试根据上述公式编程计算
的近似值
(精确到10-6)。
(03试题)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言 循环结构程序设计模拟题 语言 循环 结构 程序设计 模拟