编程规范课程试题A卷20070307

更新时间:2024-01-21 08:01:01 阅读量: 教育文库 文档下载

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

编程规范试题(A套)

机密

一. 判断题(共19题,每题2分,直接在括号内打“√”或“×”)

( 对 )1、不允许把多个短语句写在一行中,即一行只写一条语句。 ( 对 )2、如果编程工具提供将TAB键转换成空格键,对齐、缩进可以使用TAB键,否则应使用空格键。

( 对 )3、数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须加以注释。

( 对 )4、i,j,k只可以用作循环变量,不能用于其它局部变量。

( 错 )5、当一个表达式包含多个运算符时,应该尽量用默认优先级来保证表达式的运算顺序。

( 对 )6、由于引用了全局变量和静态局部变量的函数不方便重入,因此在实时系统编程中,应尽量减少对全局变量和静态局部变量的使用。

( 错 )7、应当尽可能设计功能全面、灵活的数据结构,以提高效率。 ( 错 )8、结构中元素的排列不影响结构占用空间的大小。 ( 错 )9、断言可以用来处理程序的任何错误情况。

( 错 )10、在一般应用的情况下,当前代码,处理一个1000条记录的结果只要2000毫秒。采用了新的处理机制,处理同样大小的结果只要1999毫秒,这种提高还是有重要意义的。

( 对 )11、提高代码效率应当保证软件系统的正确性、稳定性、可读性及可测性的前提下进行。

( 错 )12、内存操作越界可以通过测试发现,设计时不必过分关注. ( 对 )13、对程序进行编译时,必须打开编译器的所有告警开关。 ( 对 )14、用宏定义代替表达式时,要使用完备的括号,保证宏定义的完整性。 ( 对 )15、单元测试开始要跟踪每一条语句,并观察数据流及变量的变化。不能进行单步跟踪的代码,要采用日志输出等形式,跟踪数据流和变量的变化;

( 对 )16、一个函数仅完成一件功能。

( 对 )17、对参数输入和非参数输入都要检查有效性。 ( 错 )18、应该设计高扇出、合理扇入的函数。

( 错 )19、应该为函数功能的扩展预留尽可能多的参数接口。

二、单项选择题(共17题,每题2分)

( D )1、下面哪条语句符合编程规范:

(A)

for (...) {

... // program code } (B) if (...) {

... // program code }

2018-7-23

华为机密,未经许可不得扩散

第1页, 共6页

(C)

编程规范试题(A套)

机密

void example_fun( void ) {

... // program code }

(D) 以上都不对。

( D )2、下面哪种变量定义不当,可能导致堆栈溢出?

A、静态全局变量 B、动态全局变量 C、静态局部变量 D、动态局部变量

( D )3、在C语言中,若有以下定义:

char a; int b; float c; double d; 则表达式a*b+d-c值的类型为: A、float B、int C、char D、double

( A )4、关于结构,不正确的说法是:

A、结构的功能要尽可能强大 B、结构的元素不可以随意排列

C、功能太单一的结构会降底代码质量 D、结构间的关系不能太复杂

( D )5、下面的说法,哪个描述是正确的?

A、测试代码只是调测时使用,所以没有必要象正式代码一样给出注释。 B、在软件系统中设置与取消有关测试手段,软件功能行为上可以不一

致。

C、调测开关统一使用_UNIT_DEBUG,一般不允许再定义其它新的调

测开关。

D、好的测试用例应尽可能模拟出程序所遇到的边界值、各种复杂环境

及一些极端情况等。

( A )6、关于程序效率,正确的说法是_____。

A、要减少循环嵌套次数 B、提倡用汇编提高效率 C、程序效率是最重要的 D、最忙的循环放在最外面

( A )7、用_____,可提高浮点运算效率。

A、乘法代替除法 B、除法代替乘法

2018-7-23

华为机密,未经许可不得扩散

第2页, 共6页

编程规范试题(A套)

机密

C、减法代替加法 D、除法代替加法

( D )8、下列说法中,错误的是:

A、switch语句必须有default分支

B、系统运行之初,必须初始化有关变量 C、必须防止引用已经释放的内存空间

D、为了提高代码效率,应尽可能使用嵌入式汇编

( B )9、下面哪种情况是规范中所说的差“1”错误

A、错误使用“++” B、“>=”错写成“>”

C、变量右移时多移了1个BIT

D、short型变量错误定义为char型而少了一个字节

( A )10、关于代码的编辑、编译,下面说法不正确的是

A、在产品软件(项目组)中,不需要统一编译开关选项。 B、虽然编辑器提供的块拷贝功能很方便,但还是要小心使用。 C、合理设计软件系统目录,方便开发人员使用。

D、某些语句经编译后产生告警,但如果你认为它是正确的,那么应通过某种手段去掉告警信息。

( B )11、选择出正确的宏定义______。

A、#define INIT_RECT_VALUE( a, b )\\ a = 0;b = 0;

for (index = 0; index < RECT_TOTAL_NUM; index++) INIT_RECT_VALUE( rect.a, rect.b ); B、#define INIT_RECT_VALUE( a, b )\\ {a = 0; b = 0;} for

(index = 0; index < RECT_TOTAL_NUM; index++) {INIT_RECT_VALUE( rect[index].a, rect[index].b );} C、#define INIT_RECT_VALUE( a, b )\\ (a = 0;b = 0;)

for (index = 0; index < RECT_TOTAL_NUM; index++) INIT_RECT_VALUE( rect.a, rect.b );

D、#define INIT_RECT_VALUE( a, b )\\ a = 0; b = 0;

for (index = 0; index < RECT_TOTAL_NUM; index++) (INIT_RECT_VALUE( rect.a, rect.b ));

( A )12、单元测试的覆盖率要求至少达到______

A、语句覆盖; B、条件覆盖; C、逻辑覆盖;

2018-7-23

华为机密,未经许可不得扩散

第3页, 共6页

编程规范试题(A套)

机密

D、分支覆盖;

( A )13、关于函数参数,正确的说法是______。

A、不必要的参数应从接口中去掉。 B、应为将来的应用保留充分多的参数。

C、较多的参数可使函数的功能强大,测试、维护容易。

D、将函数的参数作为工作变量,以提高编程和程序执行速度。

( B )14、关于函数实现,不正确的说法是______。

A、明确函数功能,精确(而不是近似)地实现函数设计。 B、为使得函数具有可重入性,应使用static局部变量。 C、编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护。 D、函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出。

( D )15、关于函数命名,不正确的说法是______。

A、函数名应准确描述函数的功能。

B、使用动宾词组为执行某操作的函数命名。如果是OOP方法,可以只有动词(名词是对象本身)。

C、避免使用无意义或含义不清的动词为函数命名。 D、函数名称越简单越好。

( D )16、关于函数,不正确的说法是______。

A、除非必要,最好不要把与函数返回值类型不同的变量,以编译系统默认的转换方式或强制的转换方式作为返回值返回。 B、应减少函数本身或函数间的递归调用。 C、函数的规模尽量限制在200行以内。

D、函数中的冗余代码只要不影响函数的效率,不需要删除。

( C )17、代码质量保证优先原则,下面哪个应最优先考虑

A、稳定性、安全性,指程序稳定、可靠、安全。 B、全局效率,指软件系统的整体效率。 C、正确性,指程序要实现设计要求的功能。 D、可测试性,指程序要具有良好的可测试性。

三、多项选择题(共14题,每题2分,少答、多答、答错皆不得分)

( ABD )1、关于程序注释,哪些描述是正确的?

A、修改代码同时修改相应的注释,以保证注释与代码的一致性 B、错误的注释不但无益反而有害 C、不再有用的注释不能删除

D、变量、常量、宏的注释应放在其上方相邻位置或右方

( ABD )2、关于程序注释,哪些描述是正确的?

A、说明性文件(.h,.def等)的头部应该进行注释

2018-7-23

华为机密,未经许可不得扩散

第4页, 共6页

编程规范试题(A套)

机密

B、函数头部应该进行注释 C、注释越多越好

D、全局变量必须要有注释

( ABC )3、为了使程序具有更好的可读性,以下描述正确的:

A、用括号明确表达式的操作顺序,避免使用默认优先级;

B、避免使用不易理解的数字,用有意义的标识(宏或枚举)来替代; C、源程序中关系较为紧密的代码应尽可能相邻; D、使用技巧性很高的语句;

( AB )4、下列定义中正确的是:

A、char *a = \B、char a[] = \C、char a[4]= \D、char a[] = 'abcd';

( ABC )5、定义如下结构 struct TEMP_MSG

{ int iLen; //总消息长度,从头开始算起 short sSerialNo; //序列号 char cFlag; //执行标志 char cReserved; //保留未使用 };

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

A、由于数据结构的成员都在字节对齐边界上,因此存取效率良好; B、由于数据结构的成员都在字节对齐边界上,因此节省了占用空间; C、cReserved成员保留,可以为以后版本升级和兼容留有余地;

( ABCD )6、在分布式环境或不同CPU间的通讯环境中,下面的描述中正确的是:

A、不同字节序的CPU之间的通讯时,必须进行字节序转换;

B、字节对齐方式是在编译时决定的,因此应尽量在不同的CPU环境上使用相同的字节对齐方式;

C、由于不同编译环境对位域的处理可能有差异,因此应尽量避免使用位域进行通讯; D、由于不同编译环境对枚举值所占有空间的定义有差异,因此应尽量避免使用枚举值进行通讯。

( ABD )7、关于可测性,不正确的说法是______。

A、断言可以用来处理必须处理的错误情况 B、调试时打印的出错信息只要有错误码就行了 C、项目组内要有一套统一的错误输出函数

D、软件的DEBUG版本与发行版本可以分为两套源代码

( BCD )8、下列说法哪些是正确的:

A、在软件调试过程中构筑软件质量

B、充分了解系统接口后,再使用系统提供的功能

C、过程/函数中分配的内存,如果不再使用,在过程/函数退出之前要释放

2018-7-23

华为机密,未经许可不得扩散 第5页, 共6页

编程规范试题(A套)

机密

D、不能引用已经释放的内存空间, 不能随意改变与其它模块的接口 E、以上都不对

( ABD )9、关于代码质量保证优先次序,不正确的是:

A、可测试性最重要 B、效率比可读性重要 C、稳定性比可读性重要

D、局部效率优先于全局效率

( ABD )10、关于代码的编辑、编译和审查,下面说法正确的是:

A、使用代码静态检查工具PC_LINT对源程序进行检查。 B、审查代码时,可使用LogiScope工具进行。

C、代码编写时为了节约时间,提高效率,可一鼓作气编写完毕后再做保存和备份处理。

D、某些语句经编译后产生告警,但如果你认为它是正确的,那么应通过某种手段去掉告警信息。

( BC )11、使用宏有哪些注意事项______。

A、不能使用含有数字的字符串定义宏变量 B、将宏所定义的多条表达式放在大括号中 C、使用宏时,不允许参数发生变化 D、不能用大写字母定义宏变量

( ABCD )12、关于函数的调用,正确的说法是______。

A、让函数在调用点显得易懂、容易理解。

B、在调用函数填写参数时,应尽量减少没有必要的默认数据类型转换或强制数据类型转换。

C、对所调用函数的错误返回码要仔细、全面地处理。

D、对于提供了返回值的函数,在引用时最好使用其返回值。

( ABCD )13、对于优化函数结构,正确的说法是______。

A、降低函数间的耦合度。 B、提高函数内聚。

C、代码可读性、效率和可维护性。 D、不能影响模块功能的实现。

( ABC )14、关于代码的编辑、编译和审查,下面说法正确的是:

A、当程序中多处出现相似的代码时,可考虑将这些相似的代码抽象成函数或者宏。

B、对主机软件而言,打开编译器的所有告警开关对程序进行编译是一个必须的要求;而单板软件则不必。 C、条件编译是预处理程序的功能之一。

D、在产品软件(项目组)中,要统一编译开关选项。

2018-7-23 华为机密,未经许可不得扩散 第6页, 共6页

编程规范试题(A套)

机密

D、不能引用已经释放的内存空间, 不能随意改变与其它模块的接口 E、以上都不对

( ABD )9、关于代码质量保证优先次序,不正确的是:

A、可测试性最重要 B、效率比可读性重要 C、稳定性比可读性重要

D、局部效率优先于全局效率

( ABD )10、关于代码的编辑、编译和审查,下面说法正确的是:

A、使用代码静态检查工具PC_LINT对源程序进行检查。 B、审查代码时,可使用LogiScope工具进行。

C、代码编写时为了节约时间,提高效率,可一鼓作气编写完毕后再做保存和备份处理。

D、某些语句经编译后产生告警,但如果你认为它是正确的,那么应通过某种手段去掉告警信息。

( BC )11、使用宏有哪些注意事项______。

A、不能使用含有数字的字符串定义宏变量 B、将宏所定义的多条表达式放在大括号中 C、使用宏时,不允许参数发生变化 D、不能用大写字母定义宏变量

( ABCD )12、关于函数的调用,正确的说法是______。

A、让函数在调用点显得易懂、容易理解。

B、在调用函数填写参数时,应尽量减少没有必要的默认数据类型转换或强制数据类型转换。

C、对所调用函数的错误返回码要仔细、全面地处理。

D、对于提供了返回值的函数,在引用时最好使用其返回值。

( ABCD )13、对于优化函数结构,正确的说法是______。

A、降低函数间的耦合度。 B、提高函数内聚。

C、代码可读性、效率和可维护性。 D、不能影响模块功能的实现。

( ABC )14、关于代码的编辑、编译和审查,下面说法正确的是:

A、当程序中多处出现相似的代码时,可考虑将这些相似的代码抽象成函数或者宏。

B、对主机软件而言,打开编译器的所有告警开关对程序进行编译是一个必须的要求;而单板软件则不必。 C、条件编译是预处理程序的功能之一。

D、在产品软件(项目组)中,要统一编译开关选项。

2018-7-23 华为机密,未经许可不得扩散 第6页, 共6页

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

Top