我估计已经有很多路过的大神看到这个标题都觉得很熟悉了,哈哈!o(∩_∩)o...
以下是我今天看书遇到的问题以及昨天问题又延伸的一点问题~上题
【1】 C语言中的每条可执行语句和非执行语句最终都被转化成二进制的机器指令。——这句话是错在“非执行语句”上,我的问题就是像“注释”这样的语句就是“非执行语句”么?
【2】 -0xf ——这个地方的f是float的意思么?0x是不是就是0x0?就是说是十六进制的0?或者说这种表达方式是错的?
【3】 -80.0e 不合法是因为e后面没有跟整数么?他的含义不是-80.0e1么?
下面是具体的题目:
【1】 表达式(int)((double)(5/2)+2.5)的值是4 ——答案说如果写成(int)(((double)5/2)+2.5)则表达式的值是5 ——为什么?
【2】 /*/programming/*/ ——这种表达对么?不应该是这样的么?/*programming*/
【3】 当把以下四个表达式用作if语句的控制表达式时,有一个选项和其他三个选项含义不同,这个选项是(D)
(A)k%2
(B)k%2==1
(C)(k%2)!=0
(D)!k%2==1
答案说(D)项也可以写作(!k)%2==1。我的想法是ABC三个选项K要分奇偶讨论,K为奇ABC都为真;K为偶,ABC都为假;然后答案就说K=0时,!K%2的值为1,我的问题就是这个时候不用讨论奇偶了么?我的思路是,K=0,则!K为非零,如果!K为偶,则!K%2的值为0,否则为1。不知道对不对??
【4】 有以下程序
main()
{ int m=12,n=34;
printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); }
程序运行后的结果是A)12353514
——我怎么觉得应该是12353614?
【5】以下程序运行输出的结果是(10)
main()
{ int x=20;
printf("%d",0<x<20); ——难道这个地方的“0<x<20”是“x>0或x<20”的意思?
printf("%d\n",x>0&&x<20);
}
还有一个问题就是为什么答案是“10”而不是“1,0”?
暂时就这么多~哎... ...复习C语言简直要了命啊,不过我会坚持到最后,能不能考过2级也只能尽力了... ...感谢大神帮助~