C语言1-5章复习题及参考答案

C语言1-5章复习题及参考答案
C语言1-5章复习题及参考答案

3、有如下程序:

void main() {

int i,sum;

for(i=1;i<=3;sum++) sum+=i;

printf("%d\n",sum); }

该程序的执行结果是(

)。

A .6 B.3

C. 死循环

D.0

4、 下列关于表达式的描述中,错误的是(

)。

A . 常量和变量都是表达式。 B. 运算符类型对应表达式的类型。 C. 每一个表达式都有自己的值。 D. 表达式必须以分号结尾。 5、 C 语言中,合法的长整型常数是(

)。

A . '\t' B. ” A ” C.65 D.a

6、 若已定义 x 和 y 为 double 类型,则表达式 x=1;y= ( x+3)/2

的值是()。

A .1 B.2

C.2.00000

D.2.50000

7、 表达式: 10!=9 的值是(

)。 A . true B. 非零值 C.0 D.1

8、 以下程序的输出结果是( )。 #include

void main ()

{

printf ("%d\n", NULL ); }

A . 不确定的 B.0

C.-1

D.1

9、 请选出合法的 C 语言赋值语句。( )

A . a=b=58

B.i++;

C. a=58,b=58

D. k=int (a+b );

10、 假设 int b=2; 表达式 (b>>2)/(b>>1) 的值是(

)。

A .0

B.2

C.4

D.8

11、 关于语句 printf ( “hello

n ”); ,下列描述中错误的是() A . printf () 是格式化

输出函数,用于输出信息。

B. printf () 括号中的内容为函数的参数。

C. printf () 括号中的内容会全部输出到控制台上。

D. \n 表示换行操作。

12、 下列选项中,哪一项不是 C 语言中的位运算符()。

A ?&

B.||

C.~

D.A

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

void main() char c='z'; printf("%c", c-25);

A .-3 B.9 C.-12

D.6

2、若有定义: int a=8, b=5, c

; 执行语句 c=a/b+0.4;

后, c 的值为

A .1.4 B.1 C.2.0 D .2

.选择题

1若a 为int 类型,且其值为3,则执行完表达式 a+=a-=a*a 后,a 的值是(

)。 )。

A .a B.Z C.z-25 D.y

14、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( )。

A . a<>0 B. !a C. a=0 D. a

15、以下循环体的执行次数是( )。void main()

{

int i,j;

for (i=0,j=1; i<=j+1; i+=2,j--)

printf("%d\n",i);

}

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

16、下列运算符中优先级最高的是( )。

A .|| B.&& C.+ D.=

17 、若有以下定义和语句:

char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+'A'); 那么输出结果是( )。

A .2,M B.3,E C.2,E D. 输出项与对应的格式控制不一致,输出结果不确定

18、若有以下程序段:int c1=1,c2=2,c3; c3=1.0/c2*c1; 那么执行后,c3 中的值是

( )。

A .0 B.0.5 C.1 D.2

19、若变量 a 是int 类型,并执行了语句:a='A'+1.6; 则下列描述中,正确的是( )。

A . a 的值是字符' C' B. a 的值是浮点型

C.不允许字符型和浮点型相加

D. a的值是字符’A'的ASCII值加上1

20、若有定义:int x ,i; 则下列for 循环语句:

for(i = 0,x = 0; i<= 9 && x!=876;i++)

scanf( “%d”,&x);

下列选项中,描述正确的是( )

A . 最多执行10 次B. 最多执行9 次C. 是无限循环D. 循环体一次也不执行

21、假定有以下变量定义:int k=7,x=12; 那么能使值为3 的表达式是( )。

A . x%=(k%=5) B. x%=(k-k%5) C. x%=k-k%5 D. (x%=k)-(k%=5)

22、两次运行下面的程序,如果从键盘上分别输入 6 和4,那么输出结果是( )。

void main()

{

int x;

scanf("%d",&x);

if (x++ > 5)

printf("%d",x);

else printf("%d\n",x--);

A . 7 和 5 B. 6 和3 C. 7 和 4 D. 6 和4

23、若已定义 x 和 y 为 double 类型,则表达式: x=1, y=x+3/2 的值是( )。

A . 1 B. 2 C. 2.0 D. 2.5

24、执行下面程序片段的结果是( int x=23; do

{

printf("%2d",x--);

} while (!x);

A . 打印出 321 B. 打印出 23 C. 25、以下选项中合法的字符常量是(

A . "B" B. '\010' C. 68 D. D

26、将二进制数 00001011 进行 >>位运算,将其结果转换为十进制是() A . 101 B. 1 C. 11 D. 5 27、下列说法中正确的是(

)。

A . 在 switch 语句中一定要使用 break 语句 B. 在 switch 语句中不一定要使用 break 语句 C. break 语句是 switch 语句的一部分 D. break 只能用于 switch 语句中

28 、 假 设 有 如 下 的 变 量 定 义 : int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合 C 语言 语法的表达式是( )。

A . a+=a-=(b=4)*(a=3) B. x%(-3) C. a=a*3=2 D. y=float(i)

29、若a 为int 型变量,则下列 C 语言表达中,不能表达数学关系式

10

A . 10

B. a==11||a==12||a==13||a==14

C. a>10&&a<15

D. !(a<=10)&&!(a>=15)

30、表示关系 x<=y<=z 的 C 语言表达式为(

)。

A . (X<=Y)&&(Y<=Z) B. (X<=Y)AND(Y<=Z) C. (X<=Y<=Z)

D. (X<=Y)&(Y<=Z) 二.判断题 1、 C 语言属于机器语言。(x )

2、 C 语言中的逻辑值“真”是用 1表示的,逻辑值“假”是用 0表示的。(V)

3、 在C 语言中转义字符有特殊的含义,它以反斜杠

开头,后面接特定的字符。

(V)

4、 机器语言是由二进制数 0 和 1 组成的一串指令。 ( V )

5、 c ontinue 只能用于循环语句。 ( x )

6、 C 语言中的逻辑值“真”是用 1表示的,逻辑值“假”是用

0表示的。(V)

7、 将浮点型数据转换为整型数据时,小数点后的数会进行四舍五入。

( x )

8、字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的双引号( 来。

(X )

)。 不打印任何内容 D. 陷入死循环 )。

)引起

9、通常将不可改变的数值称为常量。(V)

10、变量虽有不同的数据类型,但它们所占内存的大小是一样的。(X )

11、位运算符“ <<”就是将操作数所有二进制位向左移动一位。运算时,右边的空位补0。左边移走的部分舍去。(V )

12、十进制数10 转换为二进制为1010。(V )

13、计算机使用特定的整数编码来表示对应的字符,我们通常使用的英文字符编码是ASCII 。( V )

14、逻辑运算符用于判断数据的真假,其结果为“真”或“假”。(V )

15、十进制转换成二进制可以采用除2 取余的方式。(V )

16、变量的值保存在内存单元上,是可以被改变的。(V )

17、十进制和二进制只是针对数字的不同表示方式,无论采用哪种方式表示一个数,它的值都是一样的。(V )

18、位运算符是针对二进制数的每一位进行运算的符号,是专门针对数字0和1进行操作的。( V )

19、sizeof 运算符的功能是获取某一数据或数据类型在内存中所占的字节数。(V)

20、两个二进制数进行“ | ”运算,如果二进制位上只有一个值为1,则该位的运行结果为0。( X )

三.填空题

1、在C 语言中根据运算符进行运算需根据变量的个数可以将运算符分为单目运算符、双目运算符和(三目)运算符。

2、定义变量int x = 1.20,则%4格式输出x的结果为(1 )。

3、运算符“ || ”表示或操作,当且仅当运算符两边的表达式结果都为假时,其结果为

(假)。

4、运算符“ &&”表示与操作,当且仅当运算符两边的表达式结果都为真时,其结果才为

(真),否则结果为假。

5、若有定义int x = 7; 则表达式x/=3; 的值为(2 )。

6、计算机语言可分为三大类,即机器语言、汇编语言和(高级语言)。

7、在进行取模运算时,运算结果的正负取决(被模数)的符号,与模数的符号无关。

8、在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个(整数)。

9、C语言中的数据类型可分为4种,分别是(基本类型)、构造类型、指针类型、空类型。

10、注释有两种类型,分为(单行注释)和多行注释。

11 、整型变量是用来存储整型数据,(实型)变量用来存储小数类型。

12、实型常量也称为浮点数常量,可以分为单精度浮点数和(双精度)两种类型。

13、sizeof 运算符用于获取某一数据或(数据类型)在内存中所占的字节数。

14、在C语言中,如果除法运算有浮点数参与运算,得到一个(浮点)型结果。

15、C语言的比较运算中,“真”用数字“ (1 )”来表示,“假”用数字“ (0 )” 来表示。

16、在C语言中,常量包括(整型常量)、浮点数常量、字符常量等。

17、在C语言中,运算符都有一定的结合性,则赋值运算符的结合性为(左结合)。

18、赋值运算符的作用就是将常量、变量或(表达式)的值赋给某一个变量。

19、已知a = 10, b = 20, 则表达式!a

20、在C语言中,(sizeof )运算符可以求算出数据字节数。

21、关系运算符中表示不等于的运算符是“(!=)”。

22、关系运算符的结果用逻辑值(真)和(假)来表示。

23、在C语言的运算符中,(关系)运算符和逻辑运算符是用“真”和“假”来表达结果。

24、C语言中的基本数据类型分别是整型变量、实型变量、(字符型)、枚举型变量。四?阅读程序,填空。

1、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:通过输入成绩,为成

绩评等级,90~100 为A, 80~89 为B, 70~79 为C, 60~69 为D, 60 以下为E。

#in clude

void mai n()

{

int score;

prin tf("Please in put your score :"

scan f("%d",&score);

switch (score/10)

{

case 10:

case 9:

prin tf("Your level is A.\n");

break;

case 8:

prin tf("Your level is B.\n");

break;

case 7:

prin tf("Your level is C.\n");

break;

case 6:

prin tf("Your level is D.\n ”);

break;

(default)

prin tf("Your level is E.\n");

}

}

2、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:从键盘上输入一行字

符(不多于40个,以回车换行符作为输入结束标记),将其中的大写字母改为小写字母,其

它字符不变,然后逆向输出。

void mai n()

{

char a[40];

int n=0;

do

{

scan f("%c", &a[n]);

if 丄a[n]>= ' A' &&a[n]<= ' Z _)

a[n ]+=32;

n++;

} while ( a[ n-1] _ != '\n');

n=n_2;

while (n >=0)

prin tf("%c", a[n--]);

}

3、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:求s=3+5+7+??+29之和。

void mai n()

{

int i,sum=0;

for (i=3; i<=29; _i=i+2 __)

sum = sum+i ;

prin tf("sum=%d\n",sum);

}

4、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:从键盘输入一个年份

数据,判断此年份是否为闰年。(注:满足下面两个条件中的一个即为闰年:一、400的倍数;二、4的倍数但不是100的倍数)。

void mai n()

{

int x,i;

scan f("%d",& x);

if (x%400==0)

i=1;

else if (_x%100!=0&& x%4==0_ )

i=1;

else

i=0 ;

if (i==1)

printf(" 该年为闰年\n");

if (i==0)

printf(" 该年为平年\n");

相关主题