基本知识聚焦
(1)以下叙述中正确的是   
A)输入项可以是一个实型常量,如
  scanf(“%f,”3.5;
B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:
  scanf(“a=%db=%d”);
C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:
  scanf(“%4.2f”,&f);
D)当输入数据时,必须指明变量地址,例如:
  scanf(“%f”,&f);
(2)设xy均为int型变量,则以下语句:x+=yy=x-yx-=y;的功能是 
A)把xy按从大到小排列
B) 把xy按从小到大排列
C)无确定结果
D)交换xy中的值
(3)以下程序的输出结果是
A10 10    B12 12     C11 10     D11 13
main
{ int a=12b=12
printf(“%d %d\n”,--a++b;
}
(4) 下列程序的输出结果是
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);
}
(5) 下列程序执行后的输出结果是(小数点后只写一位)
A) 6 6 6.0 6.0     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);
}
(6) 下列程序的运行结果是
A) a=%2,b=%5 B) a=2,b=5
C) a=d, b=d D) a=%d,b=%d
#include
main()
{ int a=2,c=5;
printf("a=%d,b=%d\n",a,c); }
(7) 语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是   
A) a\bre\'hi\'y\\\bou     B) a\bre\'hi\'y\bou
C) re'hi'you               D) abre'hi'y\bou
(说明:'\b'是退格符)
(8) 若变量a、i已正确定义,且i已正确赋值,合法的语句是 
A) a==1  B) ++i;   C) a=a++=5;     D) a=int(i);
(9) 若有以下程序段,
int c1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是   
A) 0   B) 0.5   C) 1   D) 2
(10) 有如下程序
main0
{ int y=3,x=3,z=1;
printf(“%d %d\n”,(++x,y++),z+2);
}
运行该程序的输出结果是 
A) 3 4   B) 4 2   C) 4 3   D) 3 3
(11) 以下程序的输出结果是      
main()
{ unsigned short a=65536; int b;
printf(“%d\n”,b=a);
}
(12) 若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是    
c=(a-=(b-5));
c=(a%11)+(b=3);
(13) 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 
printf函数的执行顺序
A) -3 B) 9 C) -12 D) 6
(14) 若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:
A) 10<回车>
22<回车>
33<回车>
B) 10.0,22.0,33.0<回车>
C) 10.0<回车>
22.0 33.0<回车>
D) 10 22<回车>
33<回车>
(15) 以下程序的输出结果是    
main()
{ int a=1, b=2;
a=a+b; b=a-b; a=a-b;
printf("%d,%d\n", a, b ); 
}
(16) 下列程序的输出结果是16.00,请填空。 
main()
{ int a=9, b=2;
float x=     , y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n", z ); 
}
(17) 以下合法的赋值语句是
A) x=y=100 B) d--; C) x+y; D) c=int(a+b);
(18) 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 
printf("%d,%d\n",x--,--y);
A) 10,3   B) 9,3   C) 9,2   D)10,2
(19) x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 
A) INPUT x、y、z;         B) scanf("%d%d%d",&x,&y,&z);
C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);
(20) 以下程序的输出结果是 
main()
{ int a=3;
printf("%d\n",(a+=a-=a*a) );
}
A) -6 B)12  C) 0 D) –12
(21)语句:x++; ++x; x=x+1; x=l+x; ,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)  。
(22) 以下程序段的输出结果是 
int a=1234;
printf("%2d\n",a);
A) 12   B) 34  C) 1234  D) 提示出错、无结果
(23) 若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是
A) scanf("%d%d%d",&a,&b,d); B) scanf("%d%d%d",&a,&b,&d); 
C) scanf("%d%d%d",a,b,d);  D) scanf("%d%d%d",a,b,*d);
(24) 在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是
A) a=20000+20000; B) a=4000*10;
C) a=30000+10000; D) a=4000L*10L;
(25) 若定义:int a=511,*b=&a;, 则printf("%d\n",*b);的输出结果为
A) 无确定值 B) a的地址 C) 512 D) 511
(26) 以下程序的输出结果是   
main()
{ int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
}
A) 5 B) 4 C) 6 D) 不确定
(27) 以下程序的输出结果是    
main()
{ int a=177;
printf("%o\n",a);
}
(28) 以下程序的输出结果是    
main()
{ int a=0
a+=(a=8);
printf("%d\n",a);
}
答案:1 D、2 D、3 D、4 C、5 A、6 B、7 C、8 B、9 A、10 D、11 0、12 3、13 C、14 B、15(2,1)、16(6.6)、17 B、18 D、19 B、20 D、21 (x+=1)、22 C、23 A、24 D、25 D、26 C、27 (261)、28 16