几个NCRE二级C语言的问题请教

来源:百度知道 编辑:UC知道 时间:2024/06/03 22:31:52
1.以下叙述中正确的是()
A)C语言的源程序不必通过编译就直接可以运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
答案选B,我想问一下D为什么不对?
2.设有声明语句char a='\72';则变量a()
A)包含1个字符
B)包含2个字符
C)包含3个字符
D)声明不合法
3.有定义语句int b;char c[10];,则正确的输入语句是()
A)scanf(“%d%s”,&b,&c);
B)scanf(“%d%s”,&b,c);
C)scanf(“%d%s”,b,c);
D)scanf(“%d%s”,b,&c);
答案选B,为什么?
4.以下能正确死你定义且赋初值的语句是()
A)int n1=n2=10;
B)char c=32;
C)float f=f+1.1 ;
D)double x=12.3E2.5;
答案选B,能不能解释一下?
5.以下程序的输出结果是____。
main()
{
unsigned short a=65536;
int b;
printf(“%d\n”,b=a);
}
6.有以下程序
main()
{
int x=102,y=012;
printf(“%2d,%2d\n”,x,y);
}
执行后输出结果是()
A)10,01
B)002,12
C)102,10
D)02,10

谢谢各位大虾了o(∩_∩)o...

第一题
函数当然可以单独编译。编译是检查你有没有语法错误什么的,要区分,编译连接是形成可执行文件的两个不同步骤。
你单独编译函数的时候,编译器会提示你没法连接,但是你的函数还是被编译成功了,也就是说你编写的函数正确。至于功能是怎么样的编译器就不管你了 编译时它只负责是不是符合c语法。

第二提
得到的字符是一个=号。
\75 是把acic为75的字符赋值给c

第三题
scanf()后面要接的是变量的地址,变量b的地址应该是&b &为取地址符号。c是数组名 本身代表了数组的首地址。

第四题
A)int n1=n2=10; 不可以在定义的时候连续这样初始化,谭老师的书中说过。
B)char c=32; 字符类型本质是无符号整形中的(0-255)。姑且把字符类型看作整形中的贵族,它在期望为整形的地方为整形,期望为字符类型的地方为字符类型,它是两面派
C)float f=f+1.1 ; 同a
D)double x=12.3E2.5;这里的e后面错误

第五题
输出为0。
unsigned short 范围是0-65535 占用两个字节,你的65536存不下,所以变成0

第六题
结果是102,10