2.9 习题
选择题答案:
一、选择题
1.以下结果为整数的表达式(设有int i ; char c ; float f ; )是( )。
A) i+fB) i*c
C) c+f
D) i+c+f
答案:B
2.以下不正确的语句(设有int p,q)是( D)。
A)p*=3B) p/=q
C) p+=3
D) p&&=q
3.以下使i 的运算结果为4 的表达式是( D) 。
A) int i =0 , j=0 ;B) int i=1 , j=0 ; j= i =((i=3)*2) ;
C) int i=0 , j=1 ; (j= =1) ?(i=1):(i=3)D) int i=1 , j=1 ; i+ = j+ =2
4.设char ch ; 以下正确的赋值语句是(C )。
A) ch=‘123’B) ch=‘\xff’
C) ch=‘\08’
D)ch=“\”
5.设n=10 , i=4,则值运算n%=i+1 执行后,n 的值是( A)。
A) 0B) 3
C) 2
D) 1
6.逗号表达式(a=3*5 , a*4),a+15 的值为( ),a 的值为( )。C
<1>A) 15 B) 60 C) 30 D) 不正确
<2>A) 60 B) 30 C) 15 D)90
7.如果a=1 , b=2 ,c=3 ,d=4 , 则条件表达式a<b ? a : c<d ? c : d 的值为( A)。
A) 1 B) 2 C) 3 D) 4
8.设int n=3 ; 则++n 的结果是( ), n 结果是( )。C
A) 2 B) 3 C) 4 D) 5
9.设int n=3 ; 则n++的结果是( ),n 的结果是( )。B
A) 2 B) 3 C) 4 D) 5
10.设、int a=2 , b=2 , 则++a+b 的结果是( D),a 的结果是( B),b 的结果是(A )。
A) 2 B) 3 C) 4 D) 5
11.设int m=1,n=2 , 则m++= =n 的结果是(A )。
A) 0 B) 1 C) 2 D) 3
12.设a=2 , b ; 则b=a=! a ;语句,b 的结果是( A)。
A) 0 B) 1 C) 2 D) 3
13.设有以下语句,则变量c 的二进制值是(B )。
char a=3 , b=6,c ;
c=a^b<<2 ;
A) 00011011 B) 00010100 C) 00011100 D) 00011000
14.sizeof(double)是一个(B )表达式。
A)整型B)双精度C)不合法D)函数调用
15.如下程序的执行结果是( D)。
main()
{
int n =1;
printf(“%d%d%d\n”,n,++n,n--);
}
二、填空题
1. 表达式10/3 的结果是___3_____ , 表达式10%3 的结果是__1__。
2. 定义int x ,y ,执行y=(x=1 ,++x , x+2); 语句后,y 的值是____4__。
3. 设int x=9,y=8;表达式x==y+1 的结果是___1__。
4. 设int a=1,b=2 ,c=3,d;执行d=! (a+b+c)后,d 的结果是___0____。
5. 设int x;当x 值分别为1、2、3、4 时,表达式(x&1= = 1)?1:0 的值分别是_1__ , _0__ ,
__1_ , __0__。
6. 执行下列语句后,a 的值是____-264__。
int a=12 ; a+=a-=a*a ;
7. 执行下列语句后,a 的值是___7_____。
int x=4 ,y=25 ,z=2 ;
x=(--y/++x)*z--;
8. 执行下列语句后,a,b,c 的值分别是8、8、10。
int x=10 ,y=9 ;
int a ,b ,c ;
a=(--x= =y++)?--x : ++y ; b=x++ ; c=y ;
三、运行结果题
1. 写出下列程序的执行结果。
# include<stdio.h>
void main()
{
long a = 32767;
long b;
b = a + 1;
printf("a = % ld, b = % ld\n", a, b);
}