阿里云开发者社区

电脑版
提示:原网页已由神马搜索转码, 内容由developer.aliyun.com提供.

C语言习题~day31

2024-06-148
版权
版权声明:
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
简介:C语言习题~day31

下面代码执行的结果是:( )

#define A 2+2#define B 3+3#define C A*Bint main(){  printf("%d\n", C);  return 0;}

A.24

B.11

C.10

D.23

宏C预处理后的代码是:2+2*3+3,即2+6+3,等于11,选B。

下面哪个不是宏和函数的区别?( )

A.函数可以递归,宏不能递归

B.函数参数有类型检查,宏参数无类型检查

C.函数的执行速度更快,宏的执行速度慢

D.由于宏是通过替换完成的,所以操作符的优先级会影响宏的求值,应该尽量使用括号明确优先级

宏不存在执行速度,它是查找替换,选C。A中宏是查找替换,无法设定递归跳出条件,自然无法递归。B中宏是查找替换,都没有执行,类型更是无从谈起。D中直接说了宏的本质。所以只要知道了宏是查找替换,其他问题也就不是问题了。

下面哪个是条件编译指令( )

A.#define

B.#ifdef

C.#pragma

D.#error

A是宏定义,C是一个比较复杂的预编译语句,但跟条件肯定扯不上关系,D是报错用的,条件编译指令包括#if、#ifdef,#ifndef,#else,#elif、#endif等。除此之外还有#if defined(xxx)的用法。故选B。

以下关于头文件,说法正确的是( )

A.#include<filename.h>,编译器寻找头文件时,会从当前编译的源文件所在的目录去找

B.#include“filename.h”,编译器寻找头文件时,会从通过编译选项指定的库目录去找

C.多个源文件同时用到的全局整数变量,它的声明和定义都放在头文件中,是好的编程习惯

D.在大型项目开发中,把所有自定义的数据类型、函数声明都放在一个头文件中,各个源文件都只需要包含这个头文件即可,省去了要写很多#include语句的麻烦,是好的编程习惯。

AB说反了,尖括号是直接去库找,双引号是先从当前目录找,再去库里找。C选项头文件不能定义全局变量,否则如果有多个文件,那链接时会冲突。故选D。D也不是十全十美,在大型项目的开发中,这也并不是一个很好的编程习惯,分类放在不同的头文件并根据特点命名是更好的选择,因为这样更加方便代码的管理和维护,就目前而言,算是一个好习惯吧。

C语言头文件中的 ifndef/define/endif 的作用?( )

A.防止头文件重复引用

B.规范化代码

C.标志被引用文件内容中可以被共享的代码

D.以上都不正确

概念性问题,这个做法本就是解决同一文件重复包含相同头文件的,选A。

文章标签:
关键词:
TU^
目录
相关文章
|
13天前
|
存储C语言
C语言习题~day35
C语言习题~day35
1111
|
13天前
|
算法程序员C语言
C语言习题~day36
C语言习题~day36
1511
|
13天前
|
存储C语言
C语言习题~day34
C语言习题~day34
911
|
13天前
|
算法C语言
C语言习题~day33
C语言习题~day33
1011
|
13天前
|
C语言
C语言习题~day32
C语言习题~day32
911
|
13天前
|
C语言
C语言习题~day30
C语言习题~day30
711
|
13天前
|
自然语言处理C语言C++
C语言习题~day29
C语言习题~day29
711
|
13天前
|
存储C语言
C语言习题~day28
C语言习题~day28
911
|
13天前
|
C语言
C语言习题~day27
C语言习题~day27
911
|
13天前
|
存储C语言
C语言习题~day26
C语言习题~day26
1011