2  基本数据类型及顺序结构程序设计
一、选择题
1以下关于longintshort类型数据占用内存大小的叙述中正确的是(D)
A)均占4个字节          B)根据数据的大小来决定所占内存的字节数
C)由用户自己定义        D)由C语言编译系统决定
2、以下选项中不合法的标识符是 (C)
A)print  B)FOR  C)&a  D)_00
3、可在C程序中用作用户标识符的一组标识符是(A)
A)and      B)Date        C)Hi          D)case
  _2007      y-m-d          Dr.Tom      Big1
4、以下选项中不属于字符常量的是 (B )
A)'C' B)"C" C)'\xCC0' D)'\072'
5、以下选项中,合法的一组C语言数值常量是(B)
A)028      B)12.        C).177      D) 0x8A
  .5e-3        0Xa23      4e1.5        10,000
-0xf        4.5e0        0abc        3.e5
6、以下正确的字符串常量是(A)
A) "\ \ \"      B) ' abc '    C)Olympic Games  D) ""
7、下列定义变量的语句中错误的是(D)
A)int _int;  B)double int_;  C)char For;  D)float USS
8、下列变量定义中合法的是(A)。
A) short _a=1.le-1;    B) double b=1+5e2.5;
C) long do=0xfdaL;     D) float 2_and=1e-3;
9、以下定义语句中正确的是(C)
A)int a=b=0 ;                B)char A=65+1,b='b';
C)float a=1,*b=&a,*c=&b ;    D)double a=0.0,b=1.1;
10、设有说明语句:char a=’\72’;则变量a(A)。
A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法
11、若变量均已正确定义并赋值,以下合法的C语言赋值语句是(A)
A)x=y==5;    B)x=n%2.5;    C)x+n= i ;    D)x=5=4+1;
12、若变量xy已正确定义并赋值,以下符合C语言语法的表达式是(A)
A)++x,y=x--   B)x+1=y      C)x=x+10=x+y     D)double(x)/10
13、若变量ai已正确定义,且i已正确赋值,合法的语句是(B)。
A) a==1  B) ++i;   C) a=a++=5;   D) a=int(i);
14、以下关于逻辑运算符两侧运算对象的叙述中正确的是(D)
A)只能是整数01       B)只能是整数0或非0的整数
C)可以是结构体类型的数据 D)可是任意合法的表达式
15、已知字母AASCⅡ代码值为65,若变量kkchar型,以下不能正确判断出kk中的值为大写字母的表达式是( B)
A)kk>='A'&&kk<='Z'              B)!(kk>='A'kk<='Z')
C)(kk+32)>='a'&&(kk+32)<='z'      D)isalpha(kk)&&(kk<91)
16、当变量c的值不为246时,值也为的表达式是(B)
A)(c==2)(c==4)(c==6)      B)(c>=2&&c<=6)(c!=3)(c!=5)
C)(c>=2&&c<=6)&&!(c%2)      D)(c>=2&&c<=6)&&(c%2!=1)
17、有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++): (y++)中的条件表达式(x-y)等价的是(C)
A)(x-y>0)   B)(x-y<0)   C)(x-y<║x-y>0)   D)(x-y==0)
18、有如下程序段
int a=14,b=15,x;
char c=’A’;
x=(a&&b)&&(c<’B’);
执行该程序段后,x的值为(D)。
A) ture    B) false   C) 0   D) 1
19、设有 int x=11; 则表达式 (x++ * 1/3) 的值是(A)。
A) 3    B) 4   C) 11    D) 12
20、若变量已正确定义并赋值,下面符合C语言语法的表达式是 (B)。
A) a:=b+1  B) a=b=c+2 C) int 18.5%3  D) a=a+7=c+b
21、设变量已正确定义并赋值,以下正确的表达式是(C)
A) x=y*5=x+z      B) int(15.8%5)
C) x=y+z+5,++y    D)x=25%5.0
22、C语言中运算对象必须是整型的运算符是 (Aprintf函数的执行顺序)
A) %=     B)   C) =      D) =
23、能正确表示逻辑关系:“a≥=10a≤0”C语言表达式是(D)。
A) a>=10 or a<=0  B) a>=0|a<=10   C) a>=10 &&a<=0   D) a>=10a<=0
24、 int x=1, y=1; 表达式(!x||y--)的值是(B)。
A) 0     B) 1     C) 2    D) -1
25、 int b=2;表达式(b>>2)/(b>>1)的值是(A)。
A) 0   B) 2  C) 4    D) 8
26、有以下程序段
char ch; int k;
ch='a';
k=12;
printf("%c,%d,",ch,ch,k);
printf("k=%d\n",k);
已知字符aASCll十进制代码为97,则执行上述程序段后输出结果是(D)
A)因变量类型与格式描述符的类型不匹配输出无定值
B)输出项与格式描述符个数不符,输出为零值或不定值
C)a,97,12k=12
D)a,97,k=12
27、设有定义:int a; float b;执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876 543.0<回车>ab的值分别是( )
A)876543.000000   B)876.000000
C)87543.000000   D)76543.000000
28、若有以下程序段,
int c1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是 (A)。
A) 0  B) 0.5   C) 1  D) 2
29、下列程序的输出结果是(C)。
A) 3 B) 3.2 C) 0 D) 3.07
main()
{
double d=3.2;
int x,y;
x=1.2;
y=(x+3.8)/5.0;
printf("%d \n", d*y);
}
30、下列程序执行后的输出结果是(小数点后只写一位)(A)。
A) 6 6 6.000000 6.0000000     B) 6 6 6.7 6.7
C) 6 6 6.0 6.7                 D) 6 6 6.7 6.0
main()
{
double d; float f; long l; int i;
i=f=l=d=20/3;
printf("%d %ld %f %f \n", i,l,f,d);
}
31、下列程序的运行结果是(B)。
A) a=%2,b=%5        B) a=2,b=5
C) a=d, b=d         D) a=%d,b=%d
main()
{
int a=2,c=5;
printf("a=%d,b=%d\n",a,c);
}
32、有如下程序
main( )
{
int y=3,x=3,z=1;
printf(“%d %d\n”,(++x,y++),z+2);
}
运行该程序的输出结果是 (D)。
A) 3 4  B) 4 2   C) 4 3   D) 3 3
33、有以下程序
main()
{
int x,y,z;
     x=y=1;
     z=x++,y++,++y;
     printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是(C)
A)2,3,3 B)2,3,2  C)2,3,1 D)2,2,1
34、有以下程序
main(){
int a=0,b=0;
a=10; /*a赋值
b=20; b赋值 */
printf("a+b=%d\n",a+b); /* 输出计算结果 */
}
程序运行后输出结果是(A)
A)a+b=10  B)a+b=30  C)30 D)出错
35、有以下程序
main(){
unsigned  char  a=2,b=4,c=5,d;
d=a|b; 
d&=c; 
printf(“%d\n”,d);
}
程序运行后的输出结果是(B)
A)3          B)4        C)5            D)6
二、程序阅读题
1、下列程序执行后的输出结果是    G     
main(){
int x='f';
printf("%c \n",'A'+(x-'a'+1));
}
2、以下程序的输出结果是  0   
main()
{
unsigned short a=65536; int b;
   printf(“%d\n”,b=a);
}
3、若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是  3   
c=(a-=(b-5));
c=(a%11)+(b=3);
4、以下程序的输出结果是 2,1   
main()
{
int a=1, b=2;
a=a+b; b=a-b; a=a-b;
printf(“%d,%d\n”, a, b );
}
5以下程序输出的结果是  0 
main()
{ int a=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}