早教吧作业答案频道 -->其他-->
设有定义:#defineSTR"12345";,则以下叙述正确的是这题的C,D两项有什么区别吗?A、宏名STR代替的是数值常量12345B、宏定义以分号结束,编译时会产生错误信息C、宏名STR代替的是字符串"12345"
题目详情
设有定义:#define STR "12345";,则以下叙述正确的是 这题的C,D两项有什么区别吗?
A、宏名STR代替的是数值常量12345
B、宏定义以分号结束,编译时会产生错误信息
C、宏名STR代替的是字符串"12345"
D、宏名STR代替的是字符串常量"12345"
A、宏名STR代替的是数值常量12345
B、宏定义以分号结束,编译时会产生错误信息
C、宏名STR代替的是字符串"12345"
D、宏名STR代替的是字符串常量"12345"
▼优质解答
答案和解析
#define STR "12345"; 宏定义居然带分号.
A,C,D 显然都是错的.因为 STR 代替的是 "12345"; (含分号和引号)
出题人的目的是要回答者 答 B -- 编译时会产生错误信息.
一般情况确实如此,例如:
#define STR "12345";
printf("%s",STR); // -- 编译时会产生错误信息,因为替代后为:printf("%s",“12345”;); 多余分号引起出错.
但有些情况未必出错.例如:
#define STR "12345";
char str[]=STR;
printf("%s",str);
没有问题,编译通过,运算正确.
--------------
C,D两项 没区别.出题人,估计原打算说 “字符常量”,却说成 “字符串常量”.
A,C,D 显然都是错的.因为 STR 代替的是 "12345"; (含分号和引号)
出题人的目的是要回答者 答 B -- 编译时会产生错误信息.
一般情况确实如此,例如:
#define STR "12345";
printf("%s",STR); // -- 编译时会产生错误信息,因为替代后为:printf("%s",“12345”;); 多余分号引起出错.
但有些情况未必出错.例如:
#define STR "12345";
char str[]=STR;
printf("%s",str);
没有问题,编译通过,运算正确.
--------------
C,D两项 没区别.出题人,估计原打算说 “字符常量”,却说成 “字符串常量”.
看了设有定义:#defineSTR...的网友还看了以下:
归雁入胡天的下一句12345 2020-05-16 …
此地无银三百两的下一句是什么? 2020-05-17 …
如数表:第1行12345…1415第2行3029282726…1716第3行3132333435… 2020-05-17 …
四舍五入的概率不一至么4舍的情况有12345入的情况有56789在生成随机数的情况下4舍要概率为4 2020-06-27 …
12345上山打老虎的下一句是什么... 2020-07-01 …
11.设有定义:#defineSTR"12345";,则以下叙述正确的是().A)宏名STR代替的是 2020-10-31 …
设有定义:#defineSTR"12345";,则以下叙述正确的是这题的C,D两项有什么区别吗?A、 2020-10-31 …
层数12345…用△的个数1491625…(1)搭10层一共需个△.(2)搭层需用49个△.(3)搭 2020-11-11 …
如数表:第1行12345…1415第2行3029282726…1716第3行3132333435…4 2020-11-17 …
任选12345里的四个数字(不能重复)组成两位数乘两位数的算式,要使乘积最大,该如何列式? 2020-11-24 …