循环结构程序设计.docx

上传人:b****8 文档编号:30465381 上传时间:2023-08-15 格式:DOCX 页数:95 大小:61.88KB
下载 相关 举报
循环结构程序设计.docx_第1页
第1页 / 共95页
循环结构程序设计.docx_第2页
第2页 / 共95页
循环结构程序设计.docx_第3页
第3页 / 共95页
循环结构程序设计.docx_第4页
第4页 / 共95页
循环结构程序设计.docx_第5页
第5页 / 共95页
点击查看更多>>
下载资源
资源描述

循环结构程序设计.docx

《循环结构程序设计.docx》由会员分享,可在线阅读,更多相关《循环结构程序设计.docx(95页珍藏版)》请在冰豆网上搜索。

循环结构程序设计.docx

循环结构程序设计

第五章循环结构程序设计

一、选择题

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型,则以下程序段中循环体的总的执行次数是

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);

}

}

上述程序有一条语句出现在程序的位置不正确。

这条语句是。

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的程序段是。

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)。

2.将for(表达式1;表达式2;表达式3)语句改写为while语句是。

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语句为。

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的自然数中所有的完数(因子和等于该数本身的数)请填空。

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);}}

四、读程序写结果题

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试题)

第六章数组

(1)

一、选择题

1.在C语言中,引用数组元素时,其数组下标的数据类型允许是。

A)整型常量B)整型常量或整型表达式

C)整型表达式D)任何类型的表达式

2.以下对一维整型数组a的正确说明是。

(0级)

A)inta(10);B)intn=10,a[n];

C)intn;scanf(“%d”,&n);inta[n];

D)#defineSIZE10inta[SIZE];

3.

3.以下能对一维数组a进行正确初始化的语句是。

(0级)

A)inta[10]=(0,0,0,0,0);

B)inta[10]={};

C)inta[]={0};

D)inta[10]={10*1};

4.不是给数组的第一个元素赋值的语句是。

(0级)

A)inta[2]={1};B)inta[2]={1*2};

C)inta[2];scanf(“%d”,a);D)a[1]=1;

5.下面程序的运行结果是。

(1级)

main()

{inta[6],i;

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

{a[i]=9*(i-2+4*(i>3))%5;

printf("%2d",a[i]);

}

}

A)-40404B)-40403C)-40443D)-40440

6.下列定义正确的是。

(1级)

A)staticinta[]={1,2,3,4,5}B)intb[]={2,5}

C)inta(10)D)int4e[4]

7.若有说明inta[][4]={0,0};则下列叙述不正确的是。

(0级)

A)数组a的每个元素都可以得到初值0

B)二维数组a的第一维的大小为1

C)因为对二维数组a的第二维大小的值除以初值个数的商为1,故数组a的行数为1

D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值

8.设有charstr[10],下列语句正确的是。

(1级)

A)scanf("%s",&str);B)printf("%c",str);

C)printf("%s",str[0]);D)printf("%s",str);

9.下列说法正确的是。

(0级)

A)在C语言中,可以使用动态内存分配技术定义元素个数可变的数组

B)在C语言中,数组元素的个数可以不确定,允许随机变动

C)在C语言中,数组元素的数据类型可以不一致

D)在C语言中,定义了一个数组后,就确定了它所容纳的具有相同数据类型元素的个数

10.假设array是一个有10个元素的整型数组,则下列写法中正确的是。

A)array[0]=10B)array=0

C)array[10]=0D)array[-1]=0

11.执行以下程序段后,a的值是。

(1级)

staticinta[]={5,3,7,2,1,5,4,10};

inta=0;k;

for(k=0;k<8;k+=2)

a+=*(a+k);

A)17B)27C)13D)有语法错误,无法确定

12.分析下列程序

main()

{intn[3],i,j,k;

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

n[i]=0;

k=2;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1