今日份懵的题
下面代码段执行后,输出结果是()int i=0;
if( i ==0){
int i = 3;
}
printf("%d",i);
A.0
B.2
C.4
D.1
答案A
我不理解,不应该进入if嘛?i=0条件是成立的吧
52.编译以下程序时,( )
#include <stdio. h>
#define AA 123;
int main(void){
printf(' \% d \backslash n'',AA);
return 0;
A.第2行出错
B.第4行出错
C.第2行、第4行均出错
D.无错误
答案B
看死都没看出来第四行错在哪里
100.对于以下代码段:
int i = 6;
if( i <= 6)
printf(''hello \backslash n'');
else
printf(″bye-bye \backslash n″);
下面( )是对的。
A.打印出
''hel1o''
B.打印出"hello bye-bye"
C.打印出
“bye-bye''
D.不能通过编译
答案D
是两个分号了就会报错??? 第一个问题:
在if语句中定义的变量i只在if语句的作用域内有效,当if语句结束后,if语句内定义的变量i就会被销毁。因此,if语句内的i与外部的i是两个不同的变量。在if语句外部输出i时,输出的是外部的i,即0。
第二个问题:
在宏定义中,不应该在宏定义的值后面加上分号,因为在宏展开时,会将分号一同展开,导致语法错误。因此,应该将第2行改为#define AA 123。
第三个问题:
代码中的printf语句中的字符串格式控制符应该使用双引号而不是单引号。因此,应该将printf语句改为printf("%d\n",AA);。在编译时,会提示第4行出错,因为在宏定义时,不应该在宏定义的值后面加上分号。
第四个问题:
代码中的printf语句中的字符串应该使用双引号而不是单引号。在if语句中,i<=6是成立的,因此会输出"hello"。但是,由于代码中的字符串格式控制符使用了单引号,因此无法通过编译。 跪谢大佬
页:
[1]