admin 管理员组

文章数量: 887032


2024年1月17日发(作者:length profile)

C语言练习题(12月3日讲解)

C语言单元练习题

第一单元数据类型、表达式及顺序结构练习题

一、选择题:

1. 不合法的C语言整型常量是 D 。

A. –012

B. 0x35

C. 123L

D. 8E2

2. 不合法的C语言实型常量是 A 。

A. E3

B. .123

C. –6.2E4

D. 5.0

3. 不合法的C字符常量是 D 。

A. ′2′

B. ′101′

C. ′AB′

D. ′n′

4.下列四组选项中,均是不合法的用户标识符的选项是 B 。

A. W P_0 do

B. b-a goto int

C. float la0 _A

D. -123 abc TEMP

5.下列四组选项中,均是合法转义字符的选项是 A 。

A. ‘”’‘’‘n’

B. ‘’‘017’‘”’

C. ‘018’‘f’‘xab’

D. ‘0’‘101’‘xlf’

6. 定义三个变量a、b、c,并分别赋初值为5。能实现该功能的语句是 C 。

A. int a=b=c=5;

B. int a,b,c=5;

C. int a=5,b=5,c=5;

D. int a=5;b=5;c=5;

7. 若x,y,t均为int类型,则执行语句x=y=3;t=++x||++y;后,y的值是 B 。

A. 不定值

B. 4

C. 1

D. 3

8.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。

x=(i=4,j=16,k=32)

A. 4

B. 16

C. 32

D. 52

9.设有说明:char w;int x; float y;double z;则表达式w*x+z-y值的数据类型为 D 。

A. float

B. char

C. int

D. double

10.设以下变量均为int类型,则值不等于7的表达式是 C 。

A. (x=y=6,x+y,x+1)

B. (x=y=6,x+y,y+1)

C. (x=6,x+1,y=6,x+y)

D. (y=6,y+1,x=y,x+1)

11、以下选项中不能用作C程序合法常量的是( D )。

A. 1.234

B. '123'

C.123

D."x7G"

12、以下选项中可用作C程序合法实数的是( A )

A. .1e0

B.3.0e0.2

C.E9

D.9.12E

13、阅读以下程序

#include

main()

{ int case; float printF;

printf(“请输入2个数:”);

scanf(“%d %f”,&case,&pjrintF);

printf(“%d %fn”,case,printF);

}

该程序编译时产生错误,其出错原因是( A )

A.定义语句出错,case是关键字,不能用作用户自定义标识符

B.定义语句出错,printF 不能用作用户自定义标识符

C.定义语句无错,scanf不能作为输入函数使用

D.定义语句无错,printf不能输出case的值

14、下列标识符中,不合法的用户标识符为( D )。

A. Pad

B. CHAR

C. a_10

D. a≠b

15、以下选项中能表示合法常量的是( D )。

A.整数:1,200

B.实数:1.5E2.0

C.字符斜杠:‘’

D.字符串:"007"

16、以下选项中,能用作数据常量的是( D )。

A.o115

B. 0118

C.1.5e1.5

D. 115L

17、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( A )。

A.1

B.0

C.2

D.3

18、若有定义语句:int x=10;,则表达式x-=x+x的值为( B )

A.-20

B.-10

C.0

D.10

19、表达式:(int)((double)9/2)-(9)%2的值是( B )。

A.0

B.3

C.4

D.5

20、若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是( D )。

A.a=a++,i++;

B.i=(a+k)<=(i+k);

C.i=a;

D.i=!a;

21、表达式a+=a-=a=9的值是( D )。

A.9

B._9

C.18

D.0

x=5, y=14; 则表达式x+7/y+0.6 值为( B )。

A.7.1

B.5.6

C.6.6

D.6.1

23、有以下程序执行后的输出结果是( D )。

main( )

{ int i,s=0;

for(i=1;i<10;i+=2) s+=i+1;

printf("%dn",s);}

A.自然数1~9的累加和 B.自然数1~10的累加和

C.自然数1~9中的奇数之和 D.自然数1~10中的偶数之和

24、C语言中运算对象必需是整型的运算符是( B )。

A./ B. % C.* D.+

25、若有表达式(w)?(--x):(++y),则其中与w 等价的表达式是( A)。

A.w==l

B.w==0

C.w!=l

D.w!=0

26、希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”,则以下不能满足的表达式是( C )。

A. num%2==1

B. !(num%2==0)

C. !(num%2)

D. num%2

27、若有以下类型说明语句:

char w; int x; float y; double z; 则表达式 w*x+z-y的结果为( D )类型.A.float B.char C.int D.double

28、表达式3.6-5/2+1.2+5%2的值是( D )。

A.4.3 B. 4.8 C. 3.3 D.3.8

29、若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++): (y++)中的条件表达式(x-y)等价的是( A )。

A.(x-y)>0 B (x-y<0) C.(x-y<0║x-y>0) D.(x-y)==0

30、能正确表示逻辑关系:"a≥8或a≤5"的C语言表达式是( D )。

A.a>=8 or a<=5 B.a>=5 | a<=8 C.a>=8 && a<=5

D.a>=8 || a<=5

31、C语言中,数字029 是一个(C )。

A.不合法数字 B.十进制数 C.八进制数 D.十六进制数

32 、已定义变量如下: int a=5, b=7,c; 则执行语句a>b?(c=

(a++)-(++b)): (c=a+++8); 后c的值为(B )

A.15

B.14

C.13

D.12

33、设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( D )。

A.k++

B.k+=1

C.++k

D.k+1

34、以下选项中,合法的C语言数值常量是( A )。

A.028

B.'12A'

C.'177’

D. N

35、C语言中运算符优先级最低的是(B )。

A.++

B. ,

C.-

D.!=

36、以下程序运行后的输出结果是( 2 )。

void fun(int p)

{ int d=2; p=d++; printf(“%d”,p);}

37、有以下程序运行时,输入的值在哪个范围才会有输出结果( B )。

main(){

int x; scanf("%d",&x);

if(x<=3) ;

else if(x!=10) printf("%dn",x); }

A.不等于10的整数 B.大于3且不等于10的整数

C.大于3或等于10的整数 D.小于3的整数

38.有以下程序

#include

main()

{ int x=011; 1+1*8=9

printf("%dn",++x);

}

程序运行后的输出结果是(C)

A.12

B.11

C.10

D.9

39.以下选项中可用作C程序合法实数的是(A)

A.1e0 B3.0e0.2 C.E9 D..12E

40.若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是(A)

A.a=(b=4)=3;

B.a=b=c+1;

C.a=(b=4)+c;

D.a=1+(b=c=4);

二、填空题:

1.若有定义int m=5,y=2;,则计算表达式y+=y-=m*=y后的y值是 -16 。2.若s是int型变量,且s=6,则表达式s%2+(s+1)%2的值为 1 。

3. 若a是int型变量,则表达式(a=4*5,a*2),a+6的值为 26 。

4.若x和a均是int型变量,则计算表达式x=(a=4,6*2)后的x值为 12 ,

计算表达式x=a=4,6*2后的x 值为 4 。

5. 若a是int型变量,则计算表达式a=25/3%3后a的值为 2 。

6.若x和n均是int型变量,且x和n的初值均为5,

则计算表达式x+=n++后x的值为 10 ,n的值为 6 。

7. 若有定义:char c=‘010’;则变量c中包含的字符个数为

1 。8.若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为 1 (x+y)%2+(int)a/(int)b

9. 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,

则表达式ch=‘a’+‘8’-‘3’的值为 f 。

三、程序阅读题:(写出程序运行结果)

1. 以下程序的输出结果是 a,98 。

#include

main()

{ int x=97; char y=’b’;

printf(“%c,%d”, x, y);

}

2. 以下程序的输出结果是 x=-60 。

#include

main()

{ int x=6;

x+=x-=x*x;

printf(“x=%dn”, x);

}

3. 以下程序的输出结果是 x=20 。

#include

main()

{ int x;

(x=4*5,x*5),x+25;

printf(“x=%dn”, x);

}

4. 以下程序的输出结果是 -1 。

#include

main()

{ int i=1,j;

j= -i++;

printf(“%dn”, j) ;

}

5. 有以下程序,运行后的输出结果是 b,b 。

main( )

{ char a='a',b;

print f("%c,",++a);

printf("%cn",b=a++);}

6.以下程序的输出结果是 1,0,7 。

main( )

{ int i=0,j=0,a=6;

if((++i>0)||(++j>0))

a++;

printf("%d,%d,%d",i,j,a); }

四、编程题:(顺序结构编程)

1. 输入华氏温度,输出摄氏温度。C=5/9*(F-32)

/*由华氏温度转化为摄氏温度*/

2. 输入底面半径r和高度h,计算并输出圆柱体的体积v。

v=πr2h(π取3.14,v计算结果保留到小数点后两位)

3.从键盘输入一扇形的半径和角度,求扇形的面积和周长。

4. 从键盘输入学生的三门考试成绩,计算并输出平均成绩。

第二单元选择结构练习题

一、选择题:

1、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()。

A.1

B.0

C.2

D.3

2、 if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是()。

A.必须是逻辑值

B.必须是整数值

C.必须是正数

D.可以是任意合法的数值

3、有以下程序运行时,输入的值在哪个范围才会有输出结果()。

main(){

int x; scanf("%d",&x);

if(x<=3) ;

else if(x!=10) printf("%dn",x); }

A.不等于10的整数 B.大于3且不等于10的整数

C.大于3或等于10的整数 D.小于3的整数

4、在嵌套使用if语句时,C语言规定else总是()。

A.和之前与其具有相同缩进位置的if配对 B.和之前与其最近的if配对

C.和之前与其最近的且不带else的if配对 D.和之前的第一个if配对

5、若有表达式(w)?(--x):(++y),则其中与w 等价的表达式是( )。

A.w==l

B.w==0

C.w!=l

D.w!=0

6、希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”,则以下不能满足的表达式是()。

A. num%2==1

B. !(num%2==0)

C. !(num%2)

D. num%2

7、设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是()。

(a>b) c=a,a=b,b=c;

(a>b) {c=a,a=b,b=c;}

(a>b) c=a;a=b;b=c;

(a>b) {c=a;a=b;b=c;}

8、若有表达式(w)?(--x):(++y),则其中与w 等价的表达式是( )。

A.w==l

B.w==0

C.w!=l

D.w!=0

9、有以下程序运行时,输入的值在哪个范围才会有输出结果()。

main(){

int x; scanf("%d",&x);

if(x<=3) ;

else if(x!=10) printf("%dn",x); }

A.不等于10的整数 B.大于3且不等于10的整数

C.大于3或等于10的整数 D.小于3的整数

10、若变量已正确定义,在if (W)printf(“%dn,k”);中,以下不可替代W的是

A.a<>b+c

=getchar()

C.a==b+c

D.a++

11.逻辑运算符两侧运算对象的数据类型。

A)只能是0或1 B)只能是0或非0正数

C)只能是整型或字符型数据 D)可以是任何基本数据类型的数据

12.下列表达式中,不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。 A)x%2==0 B)!x%2!=0 C)(x/2*2-x)==0

D)!(x%2)

13.以下程序片段。

int x=2,y=3;

printf( );

A)什么都不输出 B)输出为:***x=2

C)输出为:###y=2 D)输出为:###y=3

14.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是。

A)(x>=1) && (x<=10) && (x>=200) && (x<=210)

B)(x>=1) | | (x<=10) | | (x>=200) | | (x<=210)

C)(x>=1) && (x<=10) | | (x>=200) && (x<=210)

D)(x>=1) | | (x<=10) && (x>=200) | | (x<=210)

15.C语言对嵌套if语句的规定是:else总是与。

A)其之前最近的if配对 B)第一个if配对

C)缩进位置相同的if配对 D)其之前最近的且尚未配对的if配对

16.设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) &&

(n=c>d)后n的值为。

A)1 B)2 C)3 D)4

17.下面是错误的if语句(设int x,a,b;)

A)if (a=b) x++; B)if (a=<="">

C)if (a-b) x++; D)if ( x ) x++;

18.以下程序片段。

main ( )

{ int x=0,y=0,z=0;

if (x=y+z) printf(“***”);

else printf(“###”); }

A)有语法错误,不能通过编译 B)输出:***

C)可以编译,但不能通过连接,所以不能运行 D)输出:###

19.对下述程序,是正确的判断。

main ( )

{ int x,y;

scanf(“%d,%d”,&x,&y);

if (x>y) x=y;y=x;

else x++;y++;

printf(“%d,%d”,x,y); }

A)有语法错误,不能通过编译 B)若输入3和4,则输出4和5

C)若输入4和3,则输出3和4 D)若输入4和3,则输出4和5

20.若w=1,x=2,y=3,z=4,则条件表达式w<="" p="" w="" y=""

y

21.下述表达式中,可以正确表示x≤0或x≥1的关系。

A)(x>=1) | | (x<=0) B)x>=1 | x<=0

C)x>=1 && x<=0 D)(x>=1) && (x<=0)

22.下述程序的输出结果是。

main ( )

{ int a=0,b=0,c=0;

if (++a>0 || ++b>0) ++c;

printf(“%d,%d,%d”,a,b,c);

}

A)0,0,0 B)1,1,1 C)1,0,1 D)0,1,1

23.下述程序的输出结果是。

main ( )

{ int x=-1,y=4,k;

k=x++<=0 && !(y--<=0);

printf(“%d,%d,%d”,k,x,y);}

A)0,0,3 B)0,1,2 C)1,0,3 D)1,1,2

24.以下程序输出结果是。

main ( )

{ int x=1,y=0,a=0,b=0;

switch(x) {

case 1:switch (y) {

case 0 : a++ ; break ;

case 1 : b++ ; break ;

}

case 2:a++; b++; break;

case 3:a++; b++;

}

printf(“a=%d,b=%d”,a,b);

}

A)a=1,b=0 B)a=2,b=1 C)a=1,b=1 D)a=2,b=2

25.下述程序的输出结果是。

main ( )

{ int a,b,c;

int x=5,y=10;

a=(--y=x++)?–y : ++x ;

b=y++ ; c=x ;

printf(“%d,%d,%d”,a,b,c);

}

-5,5,6

A)6,9,7 B)6,9,6 C)7,9,6 D )7,9,7

26.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是。

if (a

if (c

else

if (a

if (b

else x=3;

else x=6;

else x=7;

A)1 B)2 C)3 D)4

27.在下面的条件语句中(其中S1和S2表示C语言语句),只有一个在功能上与其他三个语句不等价。

A)if (a) S1; else S2; B)if (a==0) S2; else S1;

C)if (a!=0) S1; else S2; D)if (a==0) S1; else S2;

28.若int i=0;执行下列程序后,变量i的正确结果是。

switch (i) {

case 9: i+=1 ;

case 10: i+=1 ;

case 11: i+=1 ;

default : i+=1 ;

}

1

A)10 B)11 C)12 D)13

29.若有说明语句int i=5,j=4,k=6;float f;则执行f=(i

p="">

A)4.0 B)5.0 C)6.0 D)7.0

30.若有定义:int a=3,b=2,c=1;并有表达式:①a%b,②a>b>c,③b&&c+1,④c+=1,则表达式值相等的是。

A)①和②B)②和③C)①和③D)③和④

填空题:

1.C语言提供6种关系运算符,按优先级高低它们分别是________,________,________,________,________,________等。

2.C语言提供三种逻辑运算符,按优先级高低它们分别是________,________,________。

3.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式________。

4.设x,y,z均为int型变量;写出描述“x,y和z中有两个为负数”的C语言表达式:x*y*z>0&&(x<0||y<0||z<0)________。

5.已知A=7.5,B=2,C=3.6,表达式A>B && C>A || AB的值是________。

6.有int x=3,y=-4,z=5;则表达式(x&&y)==(x||z)的值为________。

7.若有x=1,y=2,z=3,则表达式(x< bdsfid="500" p=""><>

8.执行以下程序段后,a=________,b=________,c=________。

int x=10,y=9, a,b,c ;

a = (x--=y++) ? x-- : y++ ;

b = x++ ;

c = y ;

读程题:

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

main()

{int a=1,b=0;

if(a==0) b++;

else if(a==0)

if(a)b+=2;

else b+=3;

printf(”%d\n”,b);

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

main()

{ int x=1,y=0;

if(!x) y++;

else if(x==0)

if (x) y+=2;

else y+=3;

printf("%dn",y);

}

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

main( )

{ int a=100;

if(a>100) printf("%dn",a<=100);

else printf("%dn",a<=100);

}

4、以下程序的输出结果是。main()

{ int i;

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

{switch(i)

{ case 1: printf("%d",i);

case 2: printf("%d",i);

default: printf("%d",i);}}}

5、以下程序的输出结果是。

main( )

{ int i=0,j=0,a=6;

if((++i>0)||(++j>0)) a++;

printf("%d,%d,%d",i,j,a); }

6.若运行时输入100↙,写出以下程序的运行结果。main ( )

{ int a ;

scanf(“%d”,&a);

printf(“%s”,(a%2!=0)?”No”:”Yes”);

}

7.写出以下程序的运行结果。

main ( )

{ int a=2,b=7,c=5;

switch (a>0) {

case 1: switch (b<0) {

case 1: printf(“@”); break ;

case 2: printf(“!”); break ; }

case 0: switch (c==5) {

case 1: pritnf(“*”) ; break ;

case 2: printf(“#”) ; break ;

default : printf(“#”) ; break ;

}

default : printf(“&”);

}

printf(“n”);}

编程题:

1.有三个整数a,b,c,由键盘输入,输出其中最大的数。

2.编程输入整数a和b,若大于100,则输出百位以上的数字,否则输出两数之和。

3.给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90分以上为’A’,80-89分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’。

4.提高题:给一个不多于5位的正整数,要求:①求出它是几位

数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数是321,应输出123。

第三单元循环结构练习题

选择题:

1、有以下程序执行后的输出结果是( D )。

main( )

{ int i,s=0;

for(i=1;i<10;i+=2) s+=i+1;

printf("%dn",s);}

A.自然数1~9的累加和 B.自然数1~10的累加和

C.自然数1~9中的奇数之和 D.自然数1~10中的偶数之和

2、以下关于for语句的说法不正确的是()。

A. for循环只能用于循环次数已经确定的情况

B. for循环是先判断表达式,后执行循环体语句

C. for循环中,可以用break跳出循环体

D. for循环体语句中,可以保含多条语句,但要用花括号括起来

3、若i和k都是int类型变量,有以下for语句

for(i=0,k=-1;k=1;k++) printf("*****n");

下面关于语句执行情况的叙述中正确的是()。

A.循环体执行两次

B.循环体执行一次

C.循环体一次也不执行

D.构成无限循环

4、以下程序程序的执行后的输出结果是()。

main()

{int i,t[][3]={9,8,7,6,5,4,3,2,1};

for(i=0;i<3;i++) printf(“%d”,t[2-i][i]);}

A.7 5 3

B. 3 5 7

C.3 6 9

D.7 5 1

5、以下程序运行后的输出结果是( A)。

void fun(char*s)

{ while(*s)

{ if(*s%2==0) printf(“%c”,*s); s++;}

}

main()

{ char a[]={“good”};fun(a);printf(“n”);}

注意:字母a的ASCⅡ码值为97

A.d

6、已知 int t=0; while(t=1){...} 则以下叙述正确的是()。

A)循环控制表达式的值为0

B)循环控制表达式的值为1

C)循环控制表达式不合法

D)以上说法都不对

7、设有以下程序段

int x=0,s=0;

while(!x!=0)s+=++x;

printf("%d",s); 则

A)运行程序段后输出0

B)运行程序段后输出1

C)程序段中的控制表达式是非法的

D)程序段执行无限次

8、设i,j,k均为int型变量,则执行完下面的for语句后,k的值为( C )。for(i=0, j=10; i<=j; i++, j- -) k=i+j;

A.6

B.9

C.10

D.11

9、C语言中,break; 语句可以用于循环语句和( A )语句中。

10、for(i=0; i<=15; i++) printf("%d", i ); 循环结束后,i 的值为()。

A.14

B.15

C.16

D.17

11.有以下程序

main()

{ char b,c; int i; b='a'; c='A';

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

{ if(i%2) putchar(i+b);

else putchar(i+c);

} printf("n");}

程序运行后的输出结果是(B)

A. ABCDEF

B. AbCdEf

C. aBcDeF

D. abcdef

12、与语句“while(!x)”等价的语句是()。

A. while(x==0)

B. while(x!=0)

C. while(x==1)

D. while(x!=1)

13、下述程序段中,while循环执行次数是()。

int k=0;

while(k=1) k++;

A.无限次

B. 有语法错误,不能执行

C.一次也不执行

D. 执行一次

14、以下程序中,while循环的次数是()。

#include

void main( )

{int i=0;

while(i<10) { if(i<1) continue; if(i= =5)break; i++;}}

A. 1

B. 死循环,不能确定次数

C. 6

D. 10

15.下面程序段

while (k=0) {printf(“%d”,k);k--;}

则下面描述中正确的是 C 。

A)while循环执行10次 B)循环是无限循环

C)循环题语句一次也不执行 D)循环体语句执行一次

16.以下程序段的循环次数是。

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

A)无限次 B)0次 C)1次 D)2次

17.下面程序的输出结果是 B 。

main ( )

{ char c='A’;

int k=0;

do {

switch (c++) {

case ‘A’ : k++ ; break ;

case ‘B’ : k-- ;

case ‘C’ : k+=2 ; break ;

case ‘D’ : k%=2 ; continue ;

case ‘E’ : k*=10 ; break ;

default : k/=3 ;

}

k++;

} while (c<’G’) ;

printf (“k=%d”,k) ;

}

A)k=3 B)k=4 C)k=2 D)k=0

19.下面程序的输出结果是。

main ( )

{ int x=9;

for (; x>0; x--) {

if (x%3==0) {

printf(“%d”,--x);

continue ;

} } }

A)741 B)852 C)963 D)875421

20. int i=100;以下不是死循环的程序段是。

A)while (1) {i=i%100+1 ;if (i>100) break ;} B)for ( ; ; ) ;

C) int k=0; do { ++k; } while (k>=0); D)int

s=36;while(s) ;--s ;

21.下述程序段的运行结果是 C 。

int a=1,b=2, c=3, t;

while (a

A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1

22.下面程序的功能是从键盘输入一组字符,从中统计大写字母和

小写字母的个数,选择填空。

main ( )

{ int m=0,n=0;

while ((【】) ! ’n’)

{

if (c>=’A’ && c<=’Z’) m++;

if (c>=’a’ && c<=’z’) n++;

} }

A)c=getchar( ) B)getchar( ) C)c==getchar( ) D)scanf(“%c”,&c) 23.下述语句执行后,变量k的值是。

int k=1;

while (k++<10);

A)10 B)11 C)9 D)无限循环,值不定

24.下面程序的输出结果是。

main ( )

{ int k=0,m=0,i,j;

for (i=0; i<2; i++) {

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

k++ ;

k-=j ;

}

m = i+j ;

printf(“k=%d,m=%d”,k,m) ;

}

A)k=0,m=3 B)k=0,m=5 C)k=1,m=3 D)k=1,m=5

25.下面for循环语句。B

int i,k;

for (i=0, k=-1; k=1; i++, k++)

printf(“***”);

A)判断循环结束的条件非法 B)是无限循环

C)只循环一次 D)一次也不循环

26.语句while (!E); 括号中的表达式!E等价于。

A)E==0 B)E!=1 C)E!=0 D)E==1

27.以下是死循环的程序段是。

A) for (i=1; ; ) {

if (i++%2==0) continue ;

if (i++%3==0) break ;

}

B) i=32767; do { if (i<0) break ; } while (++i) ;

C) for (i=1 ; ;) if (++I<10) continue ;

D. i=1 ; while (i--);

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

A)3 B)4 C)5 D)不定

29.以下程序段。

x=-1;

do

{ x=x*x; }

while (!x);

A)是死循环 B)循环执行2次 C)循环执行1次 D)有语法错误

30.下面程序的功能是在输入的一批正数中求最大者,输入0结束循环,选择填空。main ( )

{ int a,max=0;

scanf(“%d”,&a);

while (【】) { if (max<="" scanf="" }="">

A)a==0 B)a C)!a==1 D)!a

31.以下不是死循环的语句是 C。

A)for (y=9,x=1;x>++y;x=i++) i=x ;

B)for ( ; ; x++=i ) ;

C)while (1) { x++ ; }

D)for (i=10 ; ; i--) sum+=i ;

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

x=y=0;

while (x<15) y++,x+=++y ;

printf(“%d,%d”,y,x);

A)20,7 B)6,12 C)20,8 D)8,20

33.以下for循环的执行次数是。

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

A)无限循环 B)循环次数不定 C)4次 D)3次

34.若运行以下程序时,输入2473↙,则程序的运行结果是。

main ( )

{ int c;

while ((c=getchar( )) ! =’n’)

switch (c-‘2’) {

case 0 :

case 1 : putchar (c+4) ;

case 2 : putchar (c+4) ; break ;

case 3 : putchar (c+3) ;

default : putchar (c+2) ; break ;

}

printf(“n”);

}

A)668977 B)668966 C)66778777 D)6688766

读程题:

1.以下程序的输出结果是 3 5 7 。

main( )

{ int i,x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0; i<3; i++) printf("%d ",x[i][2-i]);

}

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

main()

{int n[2],i,j;

for(i=0;i<2;i++)n[i]=0;

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

for(j=0;j<2;j++)n[j]=n「i」+1;

printf(”%dn”,n[1]);}

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

main()

{ int i, a[6]={2,3,4,5,6,7};

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

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

}

4.以下程序的输出结果是。

main()

{ int i, j, a[3][4]={{0,1,2},{3,4,5,6},{7,8}};

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

{ for(j=i;j<4;j++)

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

printf("n"); }

}

5、以下程序的输出结果是 3 。

main()

{ char s[ ]="012xy08s34f4w2";

int i,n=0;

for(i=0;s[i]!=0;i++)

if(s[i]>='0'&&s[i]<='9') n++;

printf("%dn",n); }

6.写出下面程序运行的结果。

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

7.写出下面程序运行的结果。

main ( )

{ int i,b,k=0 ;

for (i=1; i<=5 ; i++) { b=i%2; while (b--=0)

printf(“%d,%d”,k,b);}

8.写出下面程序运行的结果。

main ( )

{ int a,b;

for (a=1,b=1 ; a<=100 ; a++) {

if (b>=20) break;

if (b%3==1) { b+=3 ; continue ; }

b-=5;

}

printf(“%dn”,a);}

9.写出下面程序运行的结果。

main ( )

{ int k=1,n=263 ;

do { k*= n%10 ; n/=10 ; } while (n) ;

printf(“%dn”,k);}

10.写出下面程序运行的结果。

main ( )

{ int i=5 ;

do {

switch (i%2) {

k++ ; }

case 4 : i-- ; break ;

case 6 : i-- ; continue ;

}

i-- ; i-- ;

printf(“%d”,i);

}while (i>0) ;

}

11.写出下面程序运行的结果。

main ( )

{ int i,j;

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

for (j=4 ; j>=0; j--) {

if ((j+i)%2) {

j-- ;

printf(“%d,”,j);

continue ;

}

--i ; j-- ;

printf(“%d,”,j) ; }}}

12.写出下面程序运行的结果。

main ( )

{ int a=10,y=0 ;

do {

a+=2 ; y+=a ;

if (y>50) break ;

} while (a=14) ;

printf(“a=%d y=%dn”,a,y) ;

}

13.写出下面程序运行的结果。

main ( )

{ int i,j,k=19;

while (i=k-1) {

k-=3 ;

if (k%5==0) { i++ ; continue ; }

else if (k<5) break ;

i++;

}

printf(“i=%d,k=%dn”,i,k);

}

14.写出下面程序运行的结果。

main ( )

{ int y=2,a=1;

while (y--!=-1)

do {

a*=y ;

a++ ;

} while (y--) ;

printf(“%d,%dn”,a,y);

}

15.写出下面程序运行的结果。

main ( )

{ int i,k=0;

for (i=1; ; i++) {

k++ ;

while (k<="">

k++ ;

if (k%3==0) goto loop ;

}

}

loop:

printf(“%d,%dn”,i,k);

}

编程题:

1.输入两个正整数m和n,求其最大公约数和最小公倍数。

2.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。

3.求(即求1!+2!+3!+…+19!+20!)。

4.打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。

5.编写程序,求s=1+2+3+……+n,直到累加和大于或等于5000为止,输出s及n的值。

6.编写程序输出如下图形。

*

**

***

****

*****


本文标签: 输出 表达式 结果 程序