C语言 for循环的嵌套题(含解析和答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第33、34课时for循环的嵌套
实验题一:
1、下面有关for循环的正确描述是: D
A) for循环只能用于循环次数已经确定的情况
B) for循环是先执行循环体语句,后判断表达式
C) 在for循环中,不能用break语句跳出循环体
D) for循环的循环体语句中, 可以包含多条语句,但必须用花括号括起来
2、对for(表达式1;;表达式3)可理解为:B
A) for(表达式1; 0;表达式3)
B) for(表达式1;1;表达式3)
C) for(表达式1;表达式1;表达式3)
D) for(表达式1;表达式3;表达式3)
3、若i为整型变量,则以下循环执行次数是:B
for (i=2;2==0;) printf("%d",i-- );
A)无限次B) 0次C) 1 次D) 2次
4、以下for循环的执行次数是:C
for (x=0,y=0; (y=123)&&(x<4); x++) ;
A)是无限循环B)循环次数不定C)执行4次D)执行3次
&&(1<4)成立,x++→x=2
第三次:(y=123)&&(2<4)成立,x++→x=3 第四次:(y=123)&&(3<4)成立,x++→x=4
第五次:(y=123)&&(4<4)不成立,退出循环。
5、以下不是无限循环的语句为:A
A) for (y=0,x=1;x > ++y;x =i++) i=x ;
B) for (;1; x++=i);
C) while (1) {x ++;}
D) for(i=10;1 ;i--) sum+=i;
6、下面程序段的运行结果是:C
for (y=1;y<10;)
y=((x=3* y,x+1),x-1);
printf ("x=%d,y=%d",x,y);
A)x=27,y=27 B)x=12,y=13 C)x=15,y=14D)x=y=27
第一次:1<10为真,x=3,x+1=3+1=4, y=(4,x-1) y=(4,2)=2第二次:2<10为真,x=3*2=6,7 y=(7,x-1)=(7,5) y=5 第三次:5<10为真,x=3*5=15 16 y=(16,x-1)=(16,14) y=14
7、下面程序段的运行结果是
for(x=3;x<6;x++)
printf((x %2)?("**%d"):(" ##%d\n"),x);
解析:第一次:3<6为真,3%2=1 **3 x++→x=4 第二次:4<6为真,4%2=0 ##4(换行)x++→x=5 第三次:5< 6为真,5%2=1 **5 x++→x=6
第四次:6<6为假,结束循环
A)**3 B )##3 C)##3 D)**3##4
##4 **4 **4##5**5
**5 ##5
8、下列程序段不是死循环的是
A) int i=100;
whiLe (1)
{i=i%100+1;
if (i>100) break;
}
B) for(;1;);
C) int k=0;
do{++k;}
while (k> =0) ;
D) int s=36;
9、执行语句for(i=1;i++<4;) ;后变量i的值是
A)3 B )4 C)5 D)不定
实验题二:编程题
1、编写程序,求1-3+5-7+…-99+101的值。
(1+5+9+13+17+...+101)-(3+7+11+15+ (99)
方法一:
main()
{
int i,j,sum1=0,sum2=0,sum;
for(i=1;i<=101;i+=4)
sum1+=i;
for(j=3;j<=99;j+=4)
sum2+=j;
sum=sum1-sum2;
printf(“1-3+5-7+…-99+101=%d”,sum); }
方法二:
main()
{
int i,sum=0,s=1;
for(i=1;i<=101;i+=2)
{
sum=sum+i*s;
s=-s;/*控制符号交替变换*/ }
printf("sum=%d",sum);
}
2、编写程序,求e 的值。e 1+1/1!+1/2!+1/3!+..+1/n!
(1)用for循环,计算前50项。
(2)用循环,要求直至最后一项的值小于10-4
源程序一:(1)用for循环实现
main()
{
double sum=1,t=1;
printf("input n:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=t*i;/*实现阶乘*/
sum=sum+1/t;
}
printf("e=%lf",sum);
}
源程序二:(2)用while循环实现
#include
main()
{
int i;
doubel sum=1,t=1;
while(fabs(1.0/t)>1e-4)/*fabs求浮点型数据的绝对值*/ {
t=t*i;
sum=sum+1/t;