C语言第三章习题

更新时间:2024-04-26 15:24:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1、下列if语句中,不正确的是( )

A.if (x

2、若有int x,y;,执行程序段:( ) for(x=1,y=1;y<50;y++){ if (x>=10) break; if(x%2==1){ x+=5; continue; } x-=3;

} 变量x的值最终为( ) A)11 B)12 C)13 D)10 3、若有int x=3;,执行程序段: do {

printf(\}while(!(--x)); 输出的结果是( )

A)1 3 B)1 -1 C)1 -2 D4、 有如下程序段: int x=1,y=1; int m,n; m=n=1; switch (m) {

case 0:x=x*2; case 1:

{ switch (n)

{

case 1:x=x*2; case 2:y=y*2;break; case 3:x++; } }

case 2:x++;y++; case 3:x*=2;y*=2;break; default:x++;y++;

)1 -3 }

执行完成后,x和y的值分别是( )。

A)x=6 y=6 B)x=2 y=1 C)x=2 y=2 D)x=7 y=7 5、以下描述不正确的是

A.使用while和do-while循环时,循环变量初始化的操作应在循环体语句之前完成 B.while循环是先判断表达式,后执行循环语句

C.do-while 和for循环均是先执行循环语句,后判断表达式 D. for、while 和do-while循环中的循环体均可以由空语句构成 6、当a=1,b=3,c=5,d=4时,执行完下面的一段程序后x的值为( ) if(a

if(c

A.1 B.2 C.3 D.6

7、设i,j均为int类型的变量,则以下程序段中执行完成后,打印出的\数是多少( ) for (i=5;i>0;--i){

for(j=0;j<4;j++){ printf(\}

A.20 B. 24 C. 25 D. 30 8、下面有关for循环的正确描述是( ) A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在for循环中,不能用break语句跳出循环体

D. for循环体语句中,可以包含多条语句,但要用花括号括起来 9、C语言中( )

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

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

C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环 10、C语言中while和do-while循环的主要区别是( ) A. do-while的循环体至少无条件执行一次

B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 11、以下程序段:( ) int x=-1;

do {

x=x*x; }

while (!x); A. 是死循环

B. 循环执行二次 D. 有语法错误

C. 循环执行一次 12、下列语句段中不是死循环的是( )

A. i=100; while (1) {

i=i0+1; if (i==20) break; }

B. for (i=1;;i++) sum=sum+1; C. k=0; do { ++k; } while (k<=0); D. s=3379;

while (s++%2+3%2) s++;

13、与以下程序段等价的是(while (a) {

if (b) continue; c; }

A. while (a) { if (!b) c; } C. while (c)

{ if (b) c; }

14、以下程序的输出结果是(#include main() {

int i;

for (i=4;i<=10;i++)

) B. while (c) { if (!b) break; c; }

D. while (a)

{ if (b) break; c; }

{

if (i%3==0) continue; printf(”i”); } } A. 45

B. 457810

C. 69

D. 678910

15、以下程序的输出结果是( ) #include main() {

int num=0; while (num<=2) {

num++;

printf(\ } } A. 1 B. 1

C. 1 2

2 3 3

4

16,由以下while构成的循环,循环体执行的次数是 int k=0;

while ( k=1 ) k++; A) 有语法错,不能执行 B) 一次也不执行 C) 执行一次 D) 无限次

17,关于\条件表达式)循环体\,以下叙述正确的是 A) 循环体的执行次数总是比条件表达式的执行次数多一次 B) 条件表达式的执行次数总是比循环体的执行次数多一次 C) 条件表达式的执行次数与循环体的执行次数一样 D) 条件表达式的执行次数与循环体的执行次数无关 18,若要实现total=1+2+3+4+5求和,以下程序段错误的是 A) int i=1,total=1; while(i<5) { total+=i; i+=1; }

B) int i=1,total=0;

D. 1

2

while(i<=5) { total+=i; i+=1; }

C) int i=0,total=0; while(i<5) { i+=1; total+=i; }

D) int i=0,total=0; while(i<=5) { total+=i; i+=1; }

19,#include main()

{ int i, sum;

for( i=1; i<6; i++ ) sum+=i; printf(\ }

程序运行后的输出结果是 A) 随机值 B) 0 C) 15 D) 16 二、程序填空

1、若有int i=5,j=0;则执行完语句if(j=0)i++;else i--;后,i的值为________________ 2、下列C语言程序运行后,a的值应为_________________ int a=11; switch(a) {

case 9: a+=1; case 10: a+=2; case 11: a+=3;

default: a+=4;} 3、写出下面程序的运行结果。 #include void main() {

int x=15;

while (x<20) { x++; if (x/3!=0) {x++; break; }

else continue; }

运行后X的值为______________

4、若x是int型变量,以下程序的输出结果是_______________ for (x=3;x<6;x++)

printf ((x%2)?(\printf (\

5、以下程序的运行结果是__________________ #include main() {

int s=0,k; for (k=7;k>=0;k--) {

switch(k) {

case 1: case 4:

case 7: s++; break; case 2: case 3: case 6: break; case 0:

case 5: s+=2; break; } }

printf(\}

6、以下程序的运行结果是__________________ #include main() {

int i=1,s=3;

}

do {

s+=i++; if (s%7==0)

continue; ++i; else

} while (s<15); printf(\

7、以下程序的运行结果是___________________ #include main() {

int i,j;

for (i=4;i>=1;i--) {

printf(\ for (j=1;j<=4-i;j++) printf(\ printf(\ } }

输出结果:

8、以下程序的运行结果是________________ #include main() {

int i,j,k; for (i=1;i<=6;i++) {

for (j=1;j<=20-2*i;j++) printf(\ for (k=1;k<=i;k++) printf(\ printf(\ } }

输出结果:

9、以下程序的运行结果是_________________

#include main() {

int i,j,k; for (i=1;i<=6;i++) {

for (j=1;j<=20-3*i;j++) printf(\ for (k=1;k<=i;k++) printf(\ for (k=i-1;k>0;k--) printf(\ printf(\ } }

10、以下程序的运行结果是__________________ #include main() {

int i,j,k; for (i=1;i<=4;i++) {

for (j=1;j<=20-3*i;j++) printf(\ for (k=1;k<=2*i-1;k++) printf(\ printf(\ }

for (i=3;i>0;i--) {

for (j=1;j<=20-3*i;j++) printf(\ for (k=1;k<=2*i-1;k++) printf(\ printf(\ } }

11,有以下程序:

以下程序段中的变量已正确定义:

for( i=0; i<4; i++,i++ )

for( k=1; k<3; k++ ); printf(\; 程序段的输出结果是。 12,有如下程序 Int a;

Scanf(\Switch(a/10){

Default: printf(\,’E’); Case 10:

Case 9: printf(\,’A’);break; Case 8: printf(\,’B’);break; Case 7: printf(\,’C’);break; Case 6: printf(\,’D’);break; }

其当输入50,100,85的输出结果分别是: .

13,#include main()

{ int a = -2, b = 0; while (a++ && ++b) ; printf(\ }

程序运行后输出结果是。 14,有以下程序 #include main()

{ int a=1,b=1; while(a--) b--;

printf(\}

程序的运行结果是。 15,#include main( )

{ int a=0, b=0; for(; a<5; a++)

{ if (a%2==0) continue; b += a; break; }

printf(\程序运行后的输出结果是 。

三、写出程序代码

1、 计算1到20之间不能被3整除的数字之和。

2、编写一个程序,用户输入一个正整数 把它的各位数字前后颠倒一下 并输出颠倒后的结果。

3、编写一个程序,求1?

4、编写程序打印如图所示的9*9乘法表 1*1=1

1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 。。。。。。

1*9=9 。。。。。。 9*9=81

11111之值。 ??????23499100

本文来源:https://www.bwwdw.com/article/au3p.html

Top