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.结构化程序设计规定的三种基本结构是 顺序 结构、选择结构和 循环 结构。)。