C++编码规范试题三

更新时间:2024-01-22 09:31:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C++编码规范试题(满分100分)

一、单选题(5*2)

1、关于函数参数,不正确的说法是:

A、对参数输入和非参数输入都要检查有效性。 B、防止将函数的参数作为工作变量。 C、在调用函数填写参数时,应尽量减少没有必要的默认数据类型转换或强制数据类型转换

D、非调度函数应减少或防止控制参数,尽量不要使用数据参数。

2、宏定义#define SQUARE(a) ((a) * (a)) 在b = SQUARE(a++)中,a被执行了 次加1 A、0次; B、1次; C、2次; D、3次 3. ()关于可测性,正确的说法是 : A 断言用来处理必须处理的错误情况

B 调试时打印的出错信息只要有错误码就行了

C 软件的DEBUG版本与发行版本分为两套进行维护 D 项目组内要有一套统一的错误输出函数 4. ()以下程序中,可读性较好的有 : A rect.length = 10; char_poi = str; rect.width = 5; B if (Trunk[index].trunk_state == 0) C word = (high << 8) | low; D * ++ stat_poi += 1;

5、若已经定义:int a[9], *p = a;并在以后的语句中未改变p的值,能表示a[1]地址的表达式是:

A、++a; B、a++; C、++p; D、p++;

二、多选题(11*4)

1、关于变量,正确的说法是:

A、若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;

B、若全局变量仅在单个函数中访问,则可以将这个变量修改为该函数的静态局部变量,以降低模块间的耦合度;

C、设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题;

D、静态全局变量过大,可能会导致堆栈溢出。 2、A机和B机通讯,使用以下结构 struct A_B_COM { unsigned int a:6; unsigned int b:3; unsigned int :7; };

对这个结构定义的评价中,正确的是:

A、由于A机与B机可能使用不同的编译环境,该结构占用空间可能不一致; B、由于A机与B机可能字节序不同,位域的各位在内存中存放的顺序可不一致;

C、第三个结构成员没有名字,编译会出错;

D、结构中使用位域,不仅节省了空间,也提高了存取效率。 3、关于编译预处理程序的功能包括但不限于: A、宏定义; B、条件编译;

C、在源代码中插入预定义的环境变量; D、打开或关闭某个编译选项。

4、关于代码的编译、编译和审查,下面说法不正确的是: A、在产品软件(项目组)中,可不统一编译开关选项; B、对于安排进行单元测试的代码可以不用进行代码审查; C、LogiScope工具不具有审查代码的功能;

D、考虑到开发人员的个人习惯,软件系统目录可自行设计 5. ( )下列哪些命名是不允许的 : A Get_Card_Stat B get_card_stat C m_GetCardStat

D _GET_CARD_2_STAT

6. ( )关于结构,正确的说法是 :

A 结构占用的空间大小,不仅取决于结构成员的定义,还取决于结构成员的排列顺序,以及结构的字节对齐方式

B 结构成员的排列顺序,会影响结构成员数据的存取效率 C 功能太单一的结构,会降低代码效率

D 结构中使用位域,不仅节省了空间,也提高了存取效率 7. ( )一般说来,以下哪一段代码可能有问题 : A.

unsigned int size; while(size -- >=0) { …… } B.

/*name为一字符串型变量,用以存放名称*/ unsigned char name[MAXNAMELEN];

/*分析组成名字的每一个字符,进行相应的处理*/ while(* name ++) { ?? } C.

unsigned char ch; FILE * date_file;

for(;;)

{

ch = getch(date_file); /*从文件中读取一个字符*/ if(ch == EOF)

{ /*如果文件已被读完,则返回ENDOFFILE*/ return ENDOFFILE; } ...... } D.

struct S {int a; char b[4]; double c; }; struct S x = {1, \8、( )关于结构,正确的说法是 :

A 结构占用的空间大小,不仅取决于结构成员的定义,还取决于结构成员的排列顺序,以及结构的字节对齐方式

B 结构成员的排列顺序,会影响结构成员数据的存取效率 C 功能太单一的结构,会降低代码效率

D 结构中使用位域,不仅节省了空间,也提高了存取效率 9、A机和B机通讯,使用以下结构 struct A_B_COM { unsigned int a:6; unsigned int b:3; unsigned int :7; };

对这个结构定义的评价中,正确的是:

A、由于A机与B机可能使用不同的编译环境,该结构占用空间可能不一致; B、由于A机与B机可能字节序不同,位域的各位在内存中存放的顺序可不一致; C、第三个结构成员没有名字,编译会出错;

D、结构中使用位域,不仅节省了空间,也提高了存取效率。 10、关于编译预处理程序的功能包括但不限于: A、宏定义; B、条件编译;

C、在源代码中插入预定义的环境变量; D、打开或关闭某个编译选项。 11、关于变量,正确的说法是:

A、若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;

B、若全局变量仅在单个函数中访问,则可以将这个变量修改为该函数的静态局部变量,以降低模块间的耦合度;

C、设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题;

D、静态全局变量过大,可能会导致堆栈溢出。

三、 判断题(23*2)

1. 在同一软件产品内,应规划好接口部分标识符(变量、结构、函数及常量)的命名,

防止编译、链接时产生冲突。如可规定接口部分的变量与常量之前加上“模块”标识等。

2. 公共变量是增大模块间耦合的原因之一,故应减少没有必要的公共变量以降低模块

间的耦合度。

3. char a[][2][3][4][5][6][7][8];这样的全局变量申请是允许的。 4. 若两个结构间关系较复杂、密切,那么应合为一个结构。

5. 对模块中函数的划分及组织方式进行分析、优化,改进模块中函数的组织结构,可

以从根本上解决程序效率的问题。

6. #pragma指令可激活或者终止编译程序所支持的一些编译功能。 7. 任意两个类型的指针都可以进行<, >, >=, <=, == 等比较.

8. 递归调用使代码简洁,可以使用;但是在主机类函数中是绝对禁止的。 9. 非调度函数应减少或防止控制参数,尽量不要使用数据参数。 10. 函数设计要符合\高扇入、合理扇出\的原则。

11. 头文件可以互相包含,使用\?\的形式保证不会重复引用。 12. 数组比指针寻址、运算速度快,因此推荐使用数组,少用指针。 13. 程序编译时,要求放开所有的编译告警开关。 14. 命名中特殊的缩略语可以不需要有注释. 15. 要有自己特有的命名风格,并要始终如一。

16. 通过对系统数据结构的划分与组织的改进,以及对程序算法的优化是解决软件空间

效率的有效办法。

17. 在一个产品的设计中,可以为集成测试和系统测试分别定义不同的调测试开关和打

印函数,用不同的宏开关控制。

18. 任意两个类型的指针都可以进行<, >, >=, <=, == 等比较。

19. 头文件可以互相包含,使用\?\的形式保证不会重复引用。 20. 不允许把多个短语句写在一行中,即一行只写一条语句

21. 如果编程工具提供将TAB键转换成空格键,对齐、缩进可以使用TAB键,否则应使用

空格键

22. 如下if语句正确吗? if (pUserCR == NULL) return;

23. 单元测试开始要跟踪每一条语句,并观察数据流及变量的变化。不能进行单步跟踪

的代码,要采用日志输出等形式,跟踪数据流和变量的变化.

本文来源:https://www.bwwdw.com/article/ogpo.html

Top