搜索
您的当前位置:首页正文

程序设计基础(C)第1——5章复习题答案

来源:意榕旅游网
程序设计基础(C)

第1——5章复习题及参考答案

一、单选题

1.可以在C语言中使用的一组用户标识符是( C )。

A. 3B B. KEY C. _123 D. void

sizeof cl_c2 T3_al_

DO -for scanf

2.while(!x)中的 !x与下面条件( A )等价。

A. x==0 B. x==1 C. x!=5 D. x!=0 3.增1减1运算只能作用于 ( B )。

A. 常量 B. 变量 C. 表达式 D. 函数 4.下面四个选项中,均是字符常量或数值常量的选项是( A )。

A. 0.0 B. “A” C. „3‟ D. +001

0f 3.9E-2.5 011 0xabcd

8.9e 1e1

0xff00 2e3

50.

„&‟ „\\”‟ 0a

5.下选项中正确的实型常量是( D )。

CHAT

6B

A. 0 B. 0.618*10^2 C. .871 D. 3.1415 6.C语言中运算对象必须是整型的运算符是( D )。 A. %= 与 / B. = 与 & C. * 与 ^ D. % 与 |

7.设a=2,b=2;则++a+b的结果是( D ),a的结果是( B ),b的结果是( A )。 A. 2 B. 3 C. 4 D. 5 9.下列运算符中优先级最低的是( B )。 A. + B. && C. <= D. sizeof 10.设int a=2;则表达式(a++*1/3)的值是( A ) ,a的值是( D ) 。 A. 0 B. 1 C. 2 D. 3 11.字符数据在内存中的存储采用的是( D )。

A. 反码 B. 补码 C. EBCDIC码 D. ASCII码 12.在C语言类型说明中,int、char、short等类型数据的长度是( D )。 A. 固定的 B. 由用户自己定义的

C. 任意的 D. 与机器字的长度有关的

13.在C语言中,不同类型的两个数据混合运算时,要先转换成相同类型再进行运算,

设有int, long,unsigned和char类型的变量和数据,则它们的转换规律是( C ),表达式最后的运算结果是( D )类型的数据。

(1) A. intunsignedlongchar B. charintlongunsigned

C. charintunsignedlong D. charunsignedlongint

(2) A. char B. int C. unsigned D. long 14.以下叙述正确的是( C ) 。

A. 在C程序中无论是整数还是浮点数,只要在允许的范围内都能准确无误地表示。

B. 若有double a,b;定义,可以直接执行语句a = b+3.456;因,b已经正确定义。 C. 在C语言中,常量、变量、函数调用,都是表达式的一种。 D. 在main函数中,一旦定义一个变量,系统将自动赋它以初值。

1

15.以下选项中,合法的赋值语句是( B )。

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

16.变量已经正确定义,要将ab中的两个数进行交换,不正确的语句组是( B )。

A.a=a+b,b=a-b,a=a-b; B. a=b,b=a;

C. t=a,a=b,b=t; D. t=b;b=a;a=t; 17.下列选项中不是C语言语句的是( C )。

A. { int i=1; i++; printf(“i=%d\\n”,i); } B. ;

C. k=5,a=10 D. { ; ; }

18.若已经正确说明为int类型,要给abc输入数据,正确的输入语句是( D )。

A.read(a,b,c); B. scanf(“%d%d%d”, a,b,c); C.scanf(“%D%D%D”,&a,&b,&c); D. scanf(“%d,%d,%d”,&a,&b,&c); 19.程序输入ABC后的执行结果是( B )。

#include “stdio.h”

main()

{ char c ;

scanf ( “ %3c ” , &c ) ;

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

A. ABC B. A C. B D. C 20.表示关系的数学表达式xx&&yA. true B. 非零值 C. 0 D. 1 23.下程序段的输出结果为( A )。 x=0; y=2; z=3; switch ( x +1)

{ case 1: switch(y==2)

{ case 1: printf(“*”); break;

case 2 : printf(“%”); break; } case 2 : switch(z)

{ case 1: printf(“$”);

case 2: printf(“*”); break; default : printf(“#”); }

}

A. *# B. *$* C. *%$*# D. * 24.以下for循环是( C )。

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

A. 无限循环 B. 循环次数不定 C. 执行10次 D. 执行9次

二、填空题

1. C程序中定义的一个变量,代表内存中的一个 存储单元 。

2. 决定表达式计算顺序的两个因素是 优先级 和 结合性 。 3.x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char

2

型变量, 则表达式x+y*a/x+b/y+c的值是 double 类型。

4.把k1,k2定义成基本整型变量,并赋初值7的定义语句为 int k1=7,k2=7; 。若有语句 k1+=k1-=k1+1;则k1的值为 -2 。 5.C语言中用 1 表示逻辑“真”值,用 0 表示逻辑“假”值,它们属于

int 类型,C语言 不 存在逻辑类型。

6.结构化程序设计的三种基本结构是 顺序 、 选择 、 循环 。 7.程序中用花括号{}括起来的多条语句,称为 复合 语句,它在语法上等同于 1

条语句。

8.写出判断一个整型数a为奇数的表达式 a%2==1 或者 a%2!=0 。 9.请说明表达式score>=60? (c = ‟P‟):( c = ‟F‟ )的意义: 当score>=60时,取c=‟P‟,否则 取c=‟F‟ 。

10.设x、y、z、t均为int型变量而且初始值均为1,则执行语句t = ++x | | ++y && ++z ;

后,x的值为 2 ,y的值为 1 ,z的值为 1 ,t的值为 1 。 11.表达式3.5+1/2+56%10的计算结果是 9.500000 。 12.在C语言中(以16位PC机为例),一个char型数在内存中所占的字节数为 1个 ,一个int型数据在内存中所占的字节数为 2个 。

13.有一个整数354,取它的个位数的表达式为 345%100 ,取百位数的表达式为 345/100 ,取十位数的表达式为 345/10%10 。 14. 写出算式

abcde的C语言表达式 a*b/(c*d+e) 。

15.若k为int型且赋值12,则表达式k%=k的值是 -264 。

16.设有整型变量a,若赋值a=12; a += a -= a*a ; 则 a 的 值 为 0 。 17.5&3的值为 1 , 5|3 的值为 7 ,5^3的值为 6 ,~5

的值为 250 。(先将数值变为二进制,再进行按位运算。) 18.取一个整数a从右端开始的4到7位的位运算表达式是 ~(~0<<4) 。 19.C语言中,逻辑运算符 ! 的优先级高于算术运算符。若已知a=2,b=3,则表达式!a+b的值为 3 。

20.printf(“%f”,(int)(2.5*3.0)/3);的输出结果是 2 。

21.一个循环的循环体中套有另一个循环称为 循环嵌套 ,一个循环外面仅包

围一层循环称为 双重循环 。

22.如果循环无休止地进行下去,这种状态称为 死循环 。 23.下列for循环执行 4 次。

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

24.while语句与do-while语句的区别是 do-while的循环体至少执行一次 。 25.在循环语句中,break的作用是 中止循环 ,continue的作用是 结束本次循环 。 26.设有说明int y=10;则执行完以下语句后,y的值为 0 。

do {

y-- ; } while (--y) ;

printf (“ %d \\n ”, y-- ) ;

三、读程序,写出下列程序的运行结果

1. #include “stdio.h”

main()

3

{ char a, b , c=‟x‟; 1. 程序执行结果: a=‟A‟; b=111;

Boy putchar(a+1); putchar(b);

c++;

putchar(c); putchar(„\\n‟); } 2. main()

{ char x=012 ,int n=0; 2.程序执行结果: while (x)

x=0, n=2 { x>>=2 ; n++; }

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

3. main()

{ int a = -2,b = -1, c = 2 ; if(ac=0 else c+=1; printf( “ c=%d\\n ”, c ) ; }

4. #include “stdio.h”

main()

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

4.程序执行结果: a=b=c=0;

d=1 x=6 d=1;

if(a) d=d-10 ; else if(!b)

if (!c) x=6; else x=7;

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

5.main()

5.程序执行结果: { int i=5 ;

for( ; i<=15 ; )

{ i++ ;

if( i% 4 = = 0) printf (“%d ”, i ) ; else continue ; } } 6.main()

{ int i ,j,m=0 ; for(i=1 ;i<=15; i+=4 )

for( j=3; j<=19 ; j+=4 ) m++ ;

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

}

6.程序执行结果: 20 8 12 16 4

因篇幅问题不能全部显示,请点此查看更多更全内容

Top