第3、4章习题 下载本文

第3章

一、单项选择题

1.下列选项中属于c语言字符常量的是( C )。 A.?abe? B.”\\n” C.?a? D.?a\\0? 2.下列选项中属于字符串常量的是( D )。

A.ABC B.”ABC” C.?abe? D.?a? 3.在PC机中,?\\n?在内存占用的字节数是( A )。 A.1 B.2 C.3 D.4

4.下列字符串常量中,占用内存字节数为2的字符串常量是( B )。 A.”12” B.”l” C.”1、0” D.”、n、n” 5.字符串\在内存占用的字节数是( B )。 A.3 B.4 C.6 D.8

6.在c语言中,合法的长整型常量是( A )。

A.0L B.4962 C.0.054838743 D.2.1 869e10 7.下列符号常量的定义中正确的是( C )。

A.#define N3 B.define N 3 C.#define N_1 3 D.#define N 1 3 8.设有宏定义“#define R 2+3”,则R*R的宏替换结果正确的是( B )。 A.(2+3)*(2+3) B.2+3*2+3 C.5*5 D.5.0*5.0 9.char型常量在内存中存放的是( A )。

A.ASCII代码值 B.二进制代码值 c.八进制代码值 D.十进制代码值 10.下列说法中错误的是( B )。

A.整型变量可以存放字符常量的值 B.字符型变量可以存放任意整型常量的值 C.变量必须先定义,后使用 D.字符串的长度不等于它占用的字节数 11.设整型变量i的值为3,则表达式i---i的值为( A )。 A.0 B.1 C.2 D.3

12.设整型变量a,b,c均为2,表达式a+++b+++c++的值是( A )。 A.6 B.9 C.8 D.12 13.表达式“10!=9”的值是( D )。

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

14.设a为整型变量,下列选项中不能正确表达数学关系“10

A.1010&&a<15 D.!(a<=10)&&!(a>=15) 15.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是( D )。 A.?a?&&?b? B.a<=b C.a||b+c&&b-c D.!((a

16.设x为整型变量,和表达式“!(!x)”值完全相同的表达式是( AB )。 A.x==0 B.x==1 C.x!=0 D.x!=1 17.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是( D )。 A.3 B.0 C.9 D.-12 18.下列选项中,正确的赋值表达式是( C )。 A.a=7+b+C=a+7 B.a=7+b++=a+7 C.a=(7+b,b++,a+7) D.a=7+b,C=a+7

19.设整型变量m,n,a,b,C,d的值均为0,执行(m=a==b)||(n=c==d)后,m,n的值是( C )。 A.0,0 B.0,1 C.1,0 D.1,1

20.设整型变量m,n,a,b的值均为1,执行“(rll=a>b)&&(n=a>b)”后m,n的值是( )。

A.0,0 B.0,1 C.1,0 D.1.1

21.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( C )。 A.1 B.2 C.2.0 D.2.5 22.执行语句“x=(a=3,b=a --)”后,x,a,b的值依次为( C )。 A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,2 23.设a为5,执行下列语句后,b的值不为2的是( C )。 A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=a>3?2:2 24.设a=1,b=2,c=3,d=4,则表达式:a=?A?&&ch<=?Z?)?(ch+32):ch”的值是( B )。 A.?A? B.?a? C.?Z? D.?z? 26.在c语言中,结果不等于4的表达式是( A )。 A.sizeof(double) B.sizeof(long) C.sizeof(float) D.sizeof(unsigned long) 27.用十进制数表示表达式“12|012”的运算结果是( C )。 A.1 B.0 C.14 D.12 28.设有定义“char a=3,b=6,c;”,计算表达式c=(a^b)<<2后c的二进制值是( D )。 A.00011100 B.00000111 C.00000001 D.00010100

29.设有定义“short i=013,j=0x13,k;”。计算表达式“k=~i|j>>3;”后,k的值是( -10 )。 A.06 B.0177776 C.066 D.0177766 30.设整型变量x、y、z均已赋值,下列选项中,正确的赋值表达式是( B )。 A. <

33.若有以下定义语句:char a; int b; float c; double d;则表达式a*b+d-c值的类型为( D )。

A.float B.int C.char· D.double

34.关于运算时的数据类型转换,下列说法中错误的是( C )。 A.表达式计算中,数据要转换成数据长度最长的数据类型再运算 B.赋值时,右边表达式的运算结果转换成左边变量的数据类型再赋值

C.赋值时,左边变量的数据类型转换成右边表达式的运算结果类型再赋值 D.(noat)(n+m)是先计算n+m,然后将结果转换成单精度实型

二、填空题

1.C语言中的常量有四种类型:整型、实型、 字符 型和 字符串 型。 2.用十进制表示整型常量-017为 -15 ,表示整型常量-0xf为 -15 。

3.无符号短整型数据的范围是 0 至 65535 。 4.在内存中存储”A”要占用 2 个字节,存储?A?要占用 1 字节。

5.在内存中存放字符串,其最后一个字符称为“空字符”,对应的转义字符是 \\0 ,其值为 0 。

6.符号常量的定义方法是 #define 。

7.设有宏定义#define x 3-2;则2*x的宏替换结果是 2*3-2 。 8.定义变量的语句格式是 数据类型符 变量 。 9.无符号基本整型的数据类型符为 int ,双精度实型数据类型符为 double ,字符型数据类型符为 char 。

10.定义整型有名常量nn的初值为199,正确的定义语句是 const int nn=199 ;。 11.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为 1 。 12.请写出数学式

a的c语言表达式 a/(b*c) bc。

13.设a=3,b=2,c=1,则a>b的值为 1 ,a>b>c的值为 0 。

14.C语言中作为运算对象时的逻辑值“真”是用 非0 表示的,逻辑值“假”是用 0 表示的。逻辑表达式值为“真”是用 1 表示的,逻辑表达式值为“假”是用 0 表示的。

15.若已知a=10,b=20,则表达式!a

16.能表述“2020&&x<30)||x<-100 。 17.设变量x、y、z均为实型,表示其中至少有一个负数的表达式应为 x<0||y<0||z<0。 18.表达式“?a?>?A?>=1<=0==1!=0”的值等于 0 。

19.设二进制数A是00101101,若想通过按位加运算A^B使A的高4位取反,低4位不变,则二进制数B应是 11110000 。 20.设整型变量x,y,z均为5: A.执行“x-=y-z”后x= 5 , B.执行“x%=y+z”后x= 5 ,

c.执行“x=(y>z)?x+2:x-2,3,2”后x= 3 。 21.设有下列运算符:.<<、+、++、&&、<=,其中优先级最高的是 . ,优先级最低的是 && 。

22.C语言中运算结果可以当成逻辑值使用的表达式有 关系 表达式、 逻辑 表达式、 算术 表达式、 位 表达式、 赋值 表达式和 逗号 表达式。

第4章

一、单项选择题(题中的口代表一个空格符)

1.设a=3,b=4,执行语句“printf(\%d,%d\,(a,b),(b,a));\的输出是( B )。 A.3,4 B.4,3 C.3,3 D.4,4 2.使用语句“scanf(\%f,y=%f\,&x,&y);”使x,y均为1.25,正确的输入是( C )。

A.1.25,1.25 B.1.25口1.25 C.x=1.25,y=1.25 D.x=1.25口y=1.25

3.设有int i=010,j=10;则printf(\%d,%d\\n\,++i,j--);的输出是( B )。 A.11,10 B.9,10 C.010,9 D.10,9 4.设a、b为字符型变量,执行语句“scanf(”a=%c,b=%c”,&a,&b);”后使a为?A’,b为?B'。从键盘上的正确输入是( D )。

A. ?A?B? B. ?A?,?B? C. A=A,B=B D. a=A,b=B

5.设x,y,z,t均为int型变量,则执行以下语句串后,t的值为( C )。 x=y=z=1;t=++x||++y&&++z; A.不定值 B.2 C.1 D. 0

6.设x,y,z,t均为int型变量,则执行下列语句串后,变量t的值为( C )。 x=y=z=0:

if(x=y)t=z;else t=!z;

A.不定值 B.2 C.1 D.0

7.假定所有变量均已正确定义,下列程序段运行后x的值是( A )。 a=b=c=0;x=35;

if(!a)x--;else if(b);if(c)x=3;else x=4; A.34 B.4 C.35 D.3

8.下面的程序段所表示的数学函数关系是( C )。 y=-1;

if(x!=0)if(x>0)y=1;else y=0;

(x?0)(x?0)?1 ??1 ??(x?0) (x?0) B. y=?-1 A. y=?0 ? 0 ?1 (x?0)(x?0)??(x?0)?0 ??1 (x?0)??(x?0) D. y=?1 (x?0) C. y=?-1 ?0 ?1 (x?0)(x?0)??

9.设整型变量m1值为3、m2值为2、m3值为1,执行下列语句后,整型变量m4值是( A )。

switch(m1=m2==m3+1) {case 1:m4=1;break; case 3:m4=3;break; case 2:m4=2;break; default:m4=4;

}

A.1 B.2 C.3 D.4 10.下列语句中,错误的是( B )。

A.while(x=y)5; B.do x++while(x==10); C.while(0); D.do 2;while(a==b); 11.设有循环语句“for(i=-1;i<4;i++)i++;”,其循环体执行的次数是( C )。 A.无限 B.0 C.3 D.4

12.设有循环语句for(x=0,y=0;(y!=123)||(x<4);x++);其循环体执行的次数是( C)。

A.无限次 B.不确定次 C.4次 D.3次

13.若i、j已定义为int类型,则以下程序段中内循环体{...}的执行次数是( A )。 for(i=5;i;i--)for(j=0;j<4;j++){?} A.20 B.24 C.25 D.30

14.假定a和b为int型变量,则执行以下语句后b的值为( D )。 a=1;b=10;

do{b-=a;a++;}

while(b--<0);

A.9 B.-2 C.-1 D.8

15.设x和y均为int型变量,则执行下面的循环后,y的值为( C )。 for(y=1,x=1;y<=50;y++) { if(x>=10)break; if(x%2==1){x+=5;continue;}

x-=3; }

A.2 B.4 C.6 D.8 16.设有数据定义语句“int s,k;”,不能正确计算s=1+2+?+10的程序段是( A A.s+=1+2+3+4+5; B.s=k=0: s+=6+7+8+9+10; do s+=k:

while(k++<10); C.s=k=0; D.for(s=k=0;k<11:k++) while(k<11) s+=k: s+=k++:

17.在C语言中,下列说法中正确的是( D )。 A.不能使用“do语句;while(表达式);”实现循环结构。 B.“do语句;while(表达式);”的循环必须使用\语句退出循环。 C.“do语句;while(表达式);”的循环中,当表达式为非0时将结束循环。 D.“do语句;while(表达式);”的循环中,当表达式为0时将结束循环。 18.以下说法中正确的是( A )。

A.continue只能在循环体中使用 B.break只能在循环体中使用

C.break不能在循环体中使用 D.break只能在switch语句中使用

二、填空题

1.结构化程序设计规定的三种基本结构是 顺序 结构、选择结构和 循环 结构。)。