2级C解析!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/26 01:13:25
(12)以下选项中可作为C语言合法常量的是

A)-80.

B)-080

C)-8e1.0

D)-80.0e

(36)有以下程序
?? main()
?? { int k=5,n=0;
?? while(k>0)
?? { switch(k)
?? { default : break;
?? case 1 : n+=k;
?? case 2 :
?? case 3 : n+=k;
?? }
?? k--;
?? }
?? printf("%d\n",n);
?? }
??程序运行后的输出结果是
?? A)0 B)4 C)6 D)7

(28)设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是
?? A)*p=*q; B)p=q; C)*p=&n1; D)p=*q;
(11)已定义char ch=”$”;int i=1,j;执行j=!ch&&i++以后,i的值为多少?

(18)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是
?? A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1
??
(22)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是
?? A)k=k>=k B)-k++ C)k%int(f) D)k>=f>=m
有谁可以告诉我详细的解析吗?为什么选那个?

(12)A e后必须是整数
(36)D k=5,n=0;k=4,n=0;k=3,n=3;k=2,n=5;k=1,n=6,n=7;
(28)A p是指针,*P表示指针所指的对象,题中即指n2;
(18)D k%2是表示k/2的余数,在C里非0即真,故A,B,C都是当K为奇数 时为真。
(22)D k>=f>m=>(k>=f)>m=> 0>f 显然是错误的。