您好,欢迎来到年旅网。
搜索
您的当前位置:首页c语言for循环的嵌套题(含解析和答案)

c语言for循环的嵌套题(含解析和答案)

来源:年旅网


第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\

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次

解析:第一次:;y=123&&0<4成立x++x=1;第二次:(y=123)&&(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\

A)x=27,y=27 B)x=12,y=13 C)x=15,y=14 D)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

第四次: 14<10为假,

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;

while (36) ; --s;

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\

}

2、编写程序,求e 的值。e1+1/1!+1/2!+1/3!+..+1/n!

(1)用for循环,计算前50项。

(2)用循环,要求直至最后一项的值小于10-4

源程序一:(1)用for循环实现

main( )

{

int i,n;

double sum=1,t=1;

printf(\"input n:\\n\");

scanf(\"%d\

for(i=1;i<=n;i++)

{

t=t*i; /* 实现阶乘*/

sum=sum+1/t;

}

printf(\"e=%lf\

}

源程序二:(2)用while循环实现

#include<>

main( )

{

int i;

doubel sum=1,t=1;

while(fabst)>1e-4) /* fabs求浮点型数据的绝对值 */

{

t=t*i;

sum=sum+1/t;

i++;

}

printf(\"e=%lf\

}

3、编写程序,在屏幕上打印出以下图形。

*

***

*****

*******

*****

***

*

解:程序如下

main()

{

int i,j,k;

for(i=0;i<=3;i++) /*输出上面4行*号*/

{

for(j=0;j<=2-i;j++)

printf(“ “); /*输出*号前面的空格*/

for(k=0;k<=2*i;k++)

printf(“*”); /*输出*号*/

printf(“\\n”); /*输出一行*号后换行*/

}

for(i=0;i<=2;i++)/*输出下面3行*号*/

{

for(j=0;j<=i;j++)

printf(“ “); /*输出*号前面的空格*/

for(k=0;k<=4-2*i;k++)/*输出*号*/

printf(“*”);

printf(“\\n”); /*输出一行*号后换行*/

}

}

解析:

上面四行

i的值 空格数 0 3 1 2 2 1 3 0 下面三行

i的值 空格数 j后的值 2 1 0 j后的值 *号的个数 1 3 5 7 *号的个数 K后的值

0

2

4

6

K后的值

0 1 0 5 4

1 2 1 3 2

2 3 2 1 0

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务