文档库 最新最全的文档下载
当前位置:文档库 › C语言前四章练习题答案.doc-

C语言前四章练习题答案.doc-

C语言程序基础练习1-4

一、选择(每题2分,共60分)

1、以下叙述中错误的是

A、C语句必须以分号结束

B、复合语句在语法上被看作一条语句

C、空语句出现在任何位置都不会影响程序运行

D、赋值表达式末尾加分号就构成赋值语句

2、以下叙述中正确的是____。

A、用C程序实现的算法必须要有输入和输出操作

B、用C程序实现的算法可以没有输出但必须要有输入

C、用C程序实现的算法可以没有输入但必须要有输出

D、用C程序实现的算法可以既没有输入也没有输出

3、以下叙述中错误的是

A、用户所定义的标识符允许使用关键字

B、用户所定义的标识符应尽量做到“见名知意”

C、用户所定义的标识符必须以字母或下划线开头

D、用户定义的标识符中,大、小写字母代表不同标识

4、以下不能定义为用户标识符的是____。

A、Main

B、_0

C、_int

D、sizeof

5、C语言提供的合法的数据类型的关键字是____。

A、Double

B、long

C、integer

D、Char

6、C语言提供的合法的关键字是____。

A、Switch

B、cher

C、Case

D、default

7、以下选项中可作为C语言合法常量的是____。(p39)

A、-80.0

B、-080

C、-8e1.0

D、-80.0e

8、C语言提供的不正确的转义字符是____。

A、?\\?

B、?\??

C、?074?

D、?\0?

9、字符串”ab\n\012\\\’”包括____个字符(空字符除外)。(空字符除外,1

个英文字符存储要1个字节,2个数字为一个字节/转义字符占1个字节)

A、3

B、4

C、6

D、12

10、在C语言中,要求运算数必须是整型的运算符是____。

A、/

B、++

C、!=

D、%

11、符合c语言语法的表达式是____。

A、a:=b+1

B、a=b=c+2

C、int 18.5%3

D、a=a+7=c+b

12、若有代数式3ae/bc,则不正确的C语言表达式是_____。

A、a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*3

13、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是__。

A、7

B、8

C、6

D、2

14、int x=10; 执行x+=x-=x-x后x的值是____。

A、10

B、20

C、30

D、40

15、int x=3; 表达式x++的值是____。

A、2

B、3

C、4

D、5

16、若有double x,y; 执行x=1,y=x+3/2后y的值是____。

A、1

B、2

C、2.0

D、2.5

17、int x=11,表达式(x++*1/3)的值是____。

A、3

B、4

C、11

D、12

18、已知int x=1,y=2,z;执行(z=1.0/y*x)语句后z的值是___。

A.0

B.0.5

C.1

D.2

19、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是__。

A.int a=b=c=5;

B.int a,b,c=5 ;

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

D.a=b=c=5;

20、若有以下定义,则不正确的赋值语句是____。

int a, b=0; float x;

A、a=1,b=2; B.b++; C.a=b=5; D.b=int(x);

21、已知ch是字符型变量,下面不正确的赋值语句是____。

A.ch=?a+b?;

B.ch=?\0?;

C.ch=?7?+?9?

D.ch=5+9;

22、若int a,i;以下合法的语句是____。

A.a= =1;

B.+ + i;

C.a=a+i=5;

D.a+ + =i;

23、假设所有变量均为整型,且num=sum=7;则表达式

sum=num++,sum++,++num执行后的值为____。

A、7

B、8

C、9

D、10

24、有以下程序

main()

{int m,n,p;

scanf("m=%d n=%d p=%d",&m,&n,&p);

printf("%d%d%d\n",m,n,p);}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,

p中的值为789,则正确的输入是____。

A、m=123n=456p=789

B、m=123 n=456 p=789

C、m=123,n=456,p=789

D、123 456 789

25、以下程序的运行结果是____。

main() {int k=4,a=3,b=2,c=1; printf(“\n%d\n”, k

A、4

B、3

C、2

D、1 (结合方向从右至左)

26、以下能正确定义且赋初值的语句是

A、int n1=n2=10;

B、char c=32;

C、float f=f+1.1;

D、double x=12.3E2.5;

27、设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是

A、(!a= =1)&&(!b==0)

B、(a

C、a && b

D、a||(b+b)&&(c-a)

28、以下程序的运行结果是___。

main()

{char c=?b?;

printf(“%c”,c-32); }

A、a

B、B

C、b-32

D、z

29、数字字符0的ASCII值为48,若有以下程序

main()

{ char a='1',b='2';

printf("%c,",b++);

printf("%d\n",b-a); }

程序运行后的输出结果是____。

A、3,2

B、50,2

C、2,2

D、2,50

30、有以下程序

main()

{ int m=12,n=34;

printf("%d%d",m++,++n);

printf("%d%d\n",n++,++m); }

程序运行后的输出结果是____。

A、12353514

B、12353513

C、12343514

D、12343513

31、有以下程序

main()

{ int a,b,d=25;

a=d/10%9;

b=a&&(-1);

printf("%d,%d\n",a,b);}

程序运行后的输出结果是____。

A、6,1

B、2,1

C、6,0

D、2,0

32、有以下程序

main()

{ char a1='M', a2='m';

printf("%c\n", (a1, a2) ); }

以下叙述中正确的是

A、程序输出大写字母M

B、程序输出小写字母m

C、格式说明符不足,编译出错

D、程序运行时出错

33、有以下程序

#include

main()

{ char c1='1',c2='2';

c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); }

当运行时输入:a<回车> 后,以下叙述正确的是

A、变量c1被赋予字符a,c2被赋予回车符

B、程序将等待用户输入第2个字符

C、变量c1被赋予字符a,c2中仍是原有字符2

D、变量c1被赋予字符a,c2中将无确定值

34、有以下程序

main()

{ int i=1,j=2,k=3;

if(i++==1&&(++j==3||k++==3))

printf("%d %d %d\n",i,j,k);}

程序运行后的输出结果是____。

A、1 2 3

B、2 3 4

C、2 2 3

D、2 3 3

35、若整型变量a、b、c、d中的值依次为:1、4、3、2。

则条件表达式a

A、1

B、2

C、3

D、4

36、以下程序的运行结果是___。

main()

{int m=5;

if(m++>5)printf(“%d\n”,m);

else printf(“%d\n”,m--);} (在if判断时就将m值+1)

A、4

B、5

C、6

D、7

37、以下程序的运行结果是____。

main()

{int a=2,b= - 1,c=2;

if (a

else c++;

print(“%d”,c); }

A、0

B、3

C、2

D、1(注意if嵌套时else的配对问题)

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

main()

{int x=2,y=-1,z=2;

if (x

if(y<0) z=0;

else z+=1;

printf(“%d\n”,z);}

A、3

B、2

C、1

D、0 (注意if嵌套时else的配对问题)

39、以下程序的运行结果是____。

main()

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

if (a<=b) x=1;

else y=2;

if (a>b) printf(“******y=%d”,y);

else printf(“######x=%d”,x);

}

A、******y=1

B、******y=2

C、######x=1

D、######x=2

40、int a,b; printf(“%d”, (a=2)&&(b= - 2));的运行结果是____。

A、0

B、1

C、2

D、- 2

二、填空

1、一个C源程序中至少应包括一个_主函数____。

2、在C语言中的实型变量分为两种类型,它们是_单精度型_和双精度型。

3、若x和a均是int型变量,则执行表达式x=a=4,6*2 后x的值为_4_。

4、若a是int型变量,则执行下面表达式a=25/3%3后a的值为__2___。

5、若有定义:int a=2 , b=3; float x=3.5 , y=2.5;则表达式(float) (a+b) / 2 +

(int)x % (int)y的值类型为__double___。

6、若有以下定义int a=5,n=2; 则执行表达式a%=(n%=2)+1后a的值是_0

_。

7、若x和n均是int型变量,且x和n的初值均为5,则执行下面表达式

x + = n ++后x的值为__10__,n的值为___6__。

8、以下程序运行后的输出结果是_4599___。

main()

{ int a=3,b=4,c=5,t=99;

if(b

if(a

printf("%d%d%d\n",a,b,c); } (注意if的语句体!)

9、已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回

车>.输出结果是_1 B___。(0的ASCII代码值为48)

#include "stdio.h"

main()

{ char a,b;

a=getchar(); scanf("%d",&b);

a=a-'A'+'0';

b=b*2;

printf("%c %c\n",a,b); }

10、以下程序运行后的输出结果是__88__。

main()

{ int x=0210; printf("%X\n",x);}

11、以下程序运行后的输出结果是__2__。

main()

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

if(c=a) printf("%d\n",c);

else printf("%d\n",b); }

12、以下程序运行后的输出结果是2 20.000000。

main()

{ char c; int n=100;

float f=10; double x;

x=f*=n/=(c=50);

printf("%d %f\n",n,x); }

13、已知字母A的ASCII码为65。以下程序运行后的输出结果是_67 e

__。

main()

{ char a, b;

a='A'+'5'-'3'; b=a+'6'-'2' ;

printf("%d %c\n", a, b); }

若运行时输入:1234<回车>,程序的输出结果是____。

14、以下程序的运行结果是__20___。

main( )

{ int a, b, c, d, x;

a=c=0;

b=1;

d=20;

if (a) d=d-10;

else if (!b)

if (!c) x=15; 注意嵌套if与else的匹配!

else x=25;

printf(“%d\n”,d);}

15、若grade的值为?C?,则输出结果为_60—69____。

设有程序片段:

switch(grade)

{ case …A?: printf(“85—100\n”);break;

case …B?: printf(“70—84\n”);break;

case …C?: printf(“60—69\n”);break;

case …D?: printf(“<60\n”);break;

default : printf(“error!\n”);}

三、编程题

1、从键盘上任意输入3个整数,输出其中的最小值。

(1)

#include

void main()

{int a,b,c,m;

scanf("%d,%d,%d",&a,&b,&c); m=a;

if(m>b) m=b;

if(m>c) m=c;

printf("最小值为%d\n",m);

}

(2)

#include

void main()

{int a,b,c,m;

scanf("%d,%d,%d",&a,&b,&c); if(a

else m=b;

if(m>c) m=c;

printf("最小值为%d\n",m);

} (3)

#include

void main()

{int a,b,c,m;

scanf("%d,%d,%d",&a,&b,&c); printf("最小值为%d\n",(a

相关文档
相关文档 最新文档