程序设计基础(C)习题指导书2014版(附带答案)(6)

2019-03-28 15:33

《程序设计基础(C)》习题指导书

7.break与continue语句,注意二者之间的区别;

8.循环结构程序设计思想。

二.习题 ? 基础篇

㈠.填空题

1.已知int i;执行语句while(i++<4);后变量i的值为 不确定 。 2.下面的for循环语句最多可执行 4 次。

for(x=0,y=0;(y!=99)&&(x<4);x++)

3.循环语句for(i=0;i<5;i++)printf(\,9-i)的执行结果是 98765 。

4.以下循环体中对循环变量i的值不改变,要使循环重复5次,则for语句的格式为: for(i=0;i<10; i=i+2 ){? ?} 5.有如下循环,则循环次数是 无限次 。 t=1; while(t=1)t=0;

6.以下程序段的输出结果y=7,x=21 。

x=y=0;while(x<20)y++,x+=3; printf(“y=%d,x=%d\\n”,y,x);

7.当执行以下程序段后,i的值是 5 、j的值是 4 、k的值是 6 。

int a,b,c,d,i,j,k;a=10;b=c=d=5;i=j=k=0; for( ;a>b;++b)i++; while(a>++c) j++; do k++;while(a>d++);

8.以下程序段的输出结果 16 。

int k,m,n;n=10;m=1;k=1; while((k+=2)<=n) m*=2; printf(“%d\\n”,m); 9.以下程序的输出结果为 -1 。

main()

{ int x=2;while(x--);printf(“%d\\n”,x);} 10.以下程序段的输出结果 11 。

int i=0,sum=1;do{ sum+=i++;}while(i<5);printf(“%d\\n”,sum); 11.下面程序的功能是读入20个整数,统计非负数个数,并计算非负数之和。

#include \ main( )

{ int i,a[20],s,count; s=count=0;

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

scanf(\; for(i=0;i<20;i++) { if(a[i]

continue ; s十=a[i]; count++: }

printf(\%d\t countt=%d\n\}

12.下面程序的运行结果是 s=254 。

#include

第 26 页 共 64 页

《程序设计基础(C)》习题指导书

main( )

{int a,s,n,count;

a=2; s=O; n=1;count=1;

whiIe(count<=7) { n=n*a; s=s+n; ++count; printf(\

}

13.等差数列的第一项n=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有的和。请填空。

#include main( )

{int a,d,sum;

a=2;d=3;sum=0; do {sum+=a; a+=d;

if( sum%4==0 )printf(\ }while(sum<200); }

14.当运行以下程序时,从键盘输入1 2 3 4 5 -1(表示回车),则下面程序的运行结果是 k=15 n=-1 。

#indude main()

{int k=O,n;

do{scanf(\%d\;k+=n;}while(n!=-1); printf(\,k,n); }

15.下面程序段是找出一个整数的所有因子,请填空。

scanf\,&x); i=1;

for(;i<=x ;)

{if(x%i==0)printf(\; i++; } ㈡.选择题

1.以下程序段的输出结果是( )。

A.9 B.1 C.11 D.10 int k,j,s;

for(k=2;k<6;k++,k++){ s=1;for(j=k;j<6;j++) s+=j;} printf(“%d”,s);

2.以下程序段的输出结果是( )。

A.12 B.15 C.20 D.25 int i,j,m=0;

for(i=1;i<=15;i+=4)

for(j=3;j<=19;j+=4〉m++; printf(“%d\\n”,m);

3.以下程序段的输出结果是( )。

A.10 B.9 C.10 D.9

第 27 页 共 64 页

《程序设计基础(C)》习题指导书

9 8 9 8

8 7 8 7 7 6

int n=10;while(n>7){ n--;printf(“%d\\n”,n);} 4.以下程序段的输出结果是( )。

A.1 B.3 0 C.1 -2 D.死循环 int x=3;do { printf(“=”,x-=2);}while(!(--x)); 5.以下程序的输出结果是( )。

A.15 B.14 C.不确定 D.0 main()

{ int i,sum;for(i=1;i<6;i++)sum+=sum;printf(“%d\\n”,sum);} 6.C语言中有关循环描述正确的是( )。

A.不能使用do-while语句构成的循环

B.do-while语句构成的循环必须使用break语句才能退出

C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D.do-whilc语句构成的循环,当while语句中的表达式值为零时结束循环 7.以下描述正确的是( )。

A.continue语句的作用是结束整个循环的执行

B.在循环体内和switch语句体内都可以使用break语句 C. 在循环体内使用break语句和continue 语句的作用相同 D. 从多重循环嵌套中退出时,只能使用goto语句 8.与while(e);等价的for循环语句为( )。

A. for(e=0;e==0;); B. for(;e;); C. for(e;;) D. for(;;e++); 9.while(ch=getchar( ));执行的次数是( )。

A.0 B.有限次 C.由循环体的内容决定 D.死循环 10.以下程序的执行结果为( )。

main( ) {

int i,j;

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

if(i==0) printf(“%d \\t”,i); }

A.100 B.1 2 3 4 5 6 7 8 9 10 C.10 20 30 40 50 60 70 80 90 D.1 2 3 4 ?? 98 99 11.下面有关for循环的正确描述是( )。

A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环体

D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 12.以下程序段,则该循环是一个( )。

x=-1;

do{x=x*x;}while(!x);

A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误 13.以下描述中正确的是( )。

A.由于do-while循环中循环体语句只能是一条可执行语旬,所以循环体内不能使用复合语句 B.do-while循环由do开始,用while结束.在while(表达式)后面不能写分号

第 28 页 共 64 页

《程序设计基础(C)》习题指导书

C.在do-while循环体中,一定要有能使while后面表达式的直值为零(”假”)的操作

D.do-while循环中,根据情况可以省略while

14.执行语句for(i=1;i++<4;);后变量i的值是( )。

A.3 B.4 C.5 D.不确定 15.若i为整型变量,则以下循环执行次数是( )。

for(i=2:i==0;) printf(“%d\\n”,i--);

A.无限次 B.0次 C.1次 D.2次 16.语句while(!E);中的表达式E等价于( )。

A.E==O B.E!=1 C.E!=0 D. E==l 17.设有程序段:

int k=10;C语言中while和do while循环的主要区别是( )。 A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do一while的循环体不能是复合语句

18.while(k=0) k=k-l;则下面描述中正确的是( )。

A.while循环执行10次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次 ㈢.程序设计题

1.编写程序,求1-3+5-7+?-99+101的值。 2.求1+2+3+?+100的值。

3.把100~200之间的不能被3整除的数输出。 4. 输入10整数,计算它的平均值。

5. 编程打印2000至3000年所有的闰年。

-5

6. 编程计算1/2+1/4+1/8+1/16+??的近似值(要求进度为10)。

7. 有个数.被3陈余2,被5除3,被7除余2,问满足该条件的数至少是多少。 8. 连续输入n个整数,要求找出其中的最大数和最小数。

9. 编写程序,输出用一元人民币兑换成1分,2分和5分硬币的不同兑换方法。

? 应用篇

㈠.填空题

1.有以下程序段:

s=1.0;for(k=1;k<=n;k++)s=s+1.0/(k*(k+1));printf(“%f\\n”,s); 要使下面的程序段的功能与上面程序段的功能相同,请填空: s=0.0;k=0; d=1 ;

do{ s=s+d; k=k+1 ;d=1.0/(k*(k+1));}while( k<=n ); printf(“%f\\n”,s);

2.下列程序段中,for循环的循环次数为 0 。

a=2;b=10;for(i=b;i<=a;i--,a++) printf(“=”,i);

3.鸡兔共有30只.脚共有80个,下面程序段是计算鸡免各有多少只,请填空,

for(x=1;x<=29;x++) {y=30-x;

if( 2*x+4*y==80 )printf(\ }

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

#include

第 29 页 共 64 页

《程序设计基础(C)》习题指导书

main( )

{ int i;

for(i=1;i<=5;i++) switch(i%2)

{ case 0:i++;printf(\;break; case 1:i+=2;printf(\; default:printf(\\n\

} } 答案: * #

5.下面程序的运行结果是 1,-2 。

#include main( )

{ int y,a; y=2;a=1; while(y--!=-1)

{ do(a*=y; a++; }while(y--);} printf(\,%d\,a,y); }

6.下面程序的功能是打印100以内个位数为6且能被3整除的所有数。请填空。

#include main( )

{int i,j;

for(i=0; i<10 ;i++) {j=i*10+6;

if( j%3==0 )continue; printf(\; } ㈡.选择题

1.以下程序的输出结果是( )。

A.741 B.852 C.963 D.875421 main(){ int y=10;

for( ;y>0;y--)if(y%3==0){ printf(“%d”,--y);continue;} } 2.以下叙述正确的是( )。

A.do_while语句构成的循环不能用其它语句构成的循环来代替。 B.do_while语句构成的循环只能用break语句退出。

C.用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。 D.用do_while语句构成循环时,只有在while后的表达式为零时结束循环。 3.以下程序的输出结果是( )。

A.39 81 B.42 84 C.26 68 D.28 70 main() { int x,i;

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

{ x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf(“%d ”,x);}

第 30 页 共 64 页


程序设计基础(C)习题指导书2014版(附带答案)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年高考成语复习分类[五]特殊用法类[六]谦辞敬辞类(精校WORD

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: