编程规范课程试题a卷0070307 下载本文

内容发布更新时间 : 2024/11/16 18:44:25星期一 下面是文章的全部内容请认真阅读。

一. 判断题(共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

} (C)

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、除法代替乘法 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、语句覆盖;