D:'AB' 没有这样的字符常量定义
F:0238 8不是八进制位数
G:0xabcdef 应该也错误的,0x后最多能带2位十六进制数,0可以带三位八进制数
----------------解决方案--------------------------------------------------------
版主,答案D确实不对啊
我跟老师怎么评论啊
他即不是字符也非字符串啊
答案D当然是不对啦,怎么会有这样的变量呢?他要么是"AB",要么就'A',单引号表示字符形,又引号表示字符串形,字符形只有一个字节
----------------解决方案--------------------------------------------------------
B是正确的
比如有这样一道程序
#include <stdio.h>
main()
{
float m=-.456;
printf("%f",m);
getch();
}
输出结果是
-0.456
----------------解决方案--------------------------------------------------------
是-0.456000
----------------解决方案--------------------------------------------------------
B:-.456 错误
D:'AB' 没有这样的字符常量定义
F:0238 8不是八进制位数
G:0xabcdef 应该也错误的,0x后最多能带2位十六进制数,0可以带三位八进制数
受教了,多谢!
----------------解决方案--------------------------------------------------------
B:-.456 错误
D:'AB' 没有这样的字符常量定义
F:0238 8不是八进制位数
G:0xabcdef 应该也错误的,0x后最多能带2位十六进制数,0可以带三位八进制数
试一下再作结论不迟。
----------------解决方案--------------------------------------------------------
答案D当然是不对啦,怎么会有这样的变量呢?他要么是"AB",要么就'A',单引号表示字符形,又引号表示字符串形,字符形只有一个字节
我曾经也这么认为.
可是.你为什么不去试一下呢?
----------------解决方案--------------------------------------------------------
我刚才编译了一下,发现只有E、F编译通不过,其他的都可以,而且运行结果是。
#include <stdio.h>
main()
{
int a=125;
float b=-.456;
float c=1.25e20;
char d='AB';
int g=0xbcdef;
char h[20]="\n\\\'\123";
printf("%d\n",a);
printf("%f\n",b);
printf("%f\n",c);
printf("%c\n",d);
printf("%d\n",g);
printf("%s\n",h);
getch();
}
运行结果:
125
-0.456000
125000002505109668000.000000
A
-12817
\'S
这样我有的很费解了。不知道怎样解释。我不懂。
----------------解决方案--------------------------------------------------------
答案D是字符常量,C语言把字符常量解释成的是int整数常量,所以型如'A','AB','ABC','ABCD'(最多4位,根据编译器有所不同)都可看作字符常量。
----------------解决方案--------------------------------------------------------
只有F选项不是常量吧,:-.456 0可以不写的。‘AB’其实就是B,‘abcd'就存了d,不过不同的机器可能不同,右到左或左到右,放满了,后面的字符就不再显示了,这样理解行么,E6可能辨认不出来,是指数能还是16进制?
[此贴子已经被作者于2006-7-31 13:17:58编辑过]
----------------解决方案--------------------------------------------------------