嵌入式C语言编码规范考试题库_第1页
嵌入式C语言编码规范考试题库_第2页
嵌入式C语言编码规范考试题库_第3页
嵌入式C语言编码规范考试题库_第4页
嵌入式C语言编码规范考试题库_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式C语言编码规范考试题库1.统一的编码规范,既满足功能安全产品的要求,又合理避免C语言的固有缺陷,以统一编程风格,可以合理地进行______和结构化设计。空1答案:模块化2.不能在具有副作用的表达式中使用______运算符,因为其只对表达式的类型有用,表达式是不会被计算的。空1答案:sizeof3.安全产品不要使用______运算符,不利于代码的可读性,可以使用其他方法达到相同的效果。空1答案:逗号4.安全产品中函数不能调用自身,不管是直接还是间接,这意味着在安全相关的系统中不能使用______函数调用。空1答案:递归5.不带参数的函数应当声明为具有void类型的参数函数,如果函数不返回任何数据,返回类型为______。空1答案:void6.安全产品中使用______时,应明确并文档化该编译器对它存储的细节――如末尾的字节填充数、各个成员的对齐方式、多字节的数据类型高低字节的顺序等。空1答案:联合体7.我们使用空格缩进。不要在代码中使用制表符。你应该设置编辑器将制表符转为______空1答案:空格8.______可理解为“编译器警告指示字”,用于告诉编译器必须每次去内存中取变量值。空1答案:volatile9.动态堆内存分配能够导致______、数据不一致、内存耗尽和不确定的行为。空1答案:内存泄漏10.不能有对______行为或未指定行为的依赖性。空1答案:未定义11.检查编译器/链接器应确保______个有效字符,支持大小写敏感。空1答案:3112.signedchar和unsignedchar类型应该只用做存储和使用______值。空1答案:数字13.具有内部作用域的标识符不应使用与具有外部作用域的标识符相同的名称,这会隐藏了______标识符。空1答案:外部14.无论安全产品与非安全产品都不允许使用禁止使用______语句。空1答案:goto15.单纯的char类型应该只用做存储和使用______值。空1答案:字符16.标识符(内部的和外部的)的有效字符不能多于______。空1答案:3117.signedint类型的位域至少应该为______bits长度。空1答案:218.不应使用______常量(零除外)和八进制转义序列。空1答案:八进制19.函数的每个参数类型在声明和定义中必须是______的,函数的返回类型也该是一致的。空1答案:一致20.如果对象的访问只是在单一的函数中,那么对象应该在______范围内声明。空1答案:块21.函数宏的调用不能缺少______。空1答案:参数22.具有外部链接的标识符应该具有______的外部定义。空1答案:唯一23.______存储类标识符应该用于具有内部链接的对象和函数的定义和声明。空1答案:static24.当一个数组声明为具有外部链接,它的大小应该______声明或者通过初始化进行隐式定义。空1答案:显式25.对于与硬件相关其值可以不在编译器控制下被修改的变量或在并发线程中访问的全局变量,应使用关键字______来定义。空1答案:volatile26.所有自动变量在使用前都应被______。空1答案:赋值27.在枚举列表中,“=”不能显式用于除______之外的元素上,除非所有的元素都是显式初始化的。空1答案:首元素28.如果位运算符~和<<应用在基本类型为unsignedchar或unsignedshort的操作数,结果应该立即强制转换为______的基本类型。空1答案:操作数29.不应依赖C表达式中的运算符优先规则,应使用______明确运算的优先顺序。空1答案:括号30.逻辑运算符&&或||的右手操作数不能包含______。空1答案:副作用31.位运算符不能用于基本类型是______的操作数上。空1答案:有符号32.数组的______应当是指针数学运算的唯一可允许的方式。空1答案:索引33.一元减运算符不能用在基本类型是______的表达式上。空1答案:无符号34.浮点表达式不能做______的检测。空1答案:相等或不等35.一个函数在其结尾应该有______的退出点。空1答案:单一36.所有的if...elseif结构应该由______子句结束。空1答案:else37.switch语句的最后子句应该是______子句。空1答案:default38.函数的声明和定义中使用的标识符应该______。空1答案:一致39.传递给一个函数的参数应该与声明的参数______。空1答案:匹配40.不能有对未定义行为或______行为的依赖性。空1答案:未指定41.在安全产品中,所有______指令的使用应该文档化并给出良好解释。空1答案:#pragma42.单纯的______类型应该只用做存储和使用字符值。空1答案:char43.函数应当具有原型声明,且原型在函数的定义和调用范围内都是______的。空1答案:可见44.不论何时声明或定义了一个对象或函数,它的类型都应______声明。空1答案:显式45.安全产品中,头文件中不应有对象或函数的______。空1答案:定义46.在文件范围内声明和定义的所有对象或函数应该具有______链接,除非是在需要外部链接的情况下。空1答案:内部47.不应依赖C表达式中的运算符优先规则,应使用括号明确运算的______顺序。空1答案:优先48.对任何迭代语句至多只应有______break语句用于循环的结束。空1答案:一条49.指针减法只能用在指向______数组中元素的指针上。空1答案:同一50.文件名要全部______,可以包含下划线“_”。空1答案:小写51.变量(包括函数参数)和数据成员名一律______,单词之间用下划线连接。空1答案:小写52.所有具有静态存储类型的变量命名时,以字母______开头,大小写混合。空1答案:k53.常规函数使用______混合,取值和设值函数则要求与变量名匹配空1答案:大小写54.枚举的命名应当和宏一致全部______。空1答案:大写55.函数命名、变量命名、文件命名要有______,少用缩写。空1答案:描述性56.一般来说,函数名的每个单词______大写(即“驼峰式”),没有下划线。空1答案:首字母57.只使用空格缩进,每次缩进______个空格,不要在代码中使用制表符。空1答案:458.声明为______的变量,或在程序运行期间其值始终保持不变的,命名时以字母“k”开头,大小写混合。空1答案:const59.良好的编程是,避免使用______标识符。空1答案:全局60.如果一个变量只是被同一文件中的函数所使用,或者只是在同一文件中的其他地方调用,那么就用______。空1答案:static61.下列说法不符合规范的是()A.我们使用空格缩进,不要在代码中使用制表符。B.for循环中用于迭代计数的数值变量可以在循环体中修改。(正确答案)C.宏命名像枚举命名一样全部大写,使用下划线。D.枚举的命名应当和宏一致全部大写。62.以下宏定义不符合编码规范的是()。A.#definePI3.14159FB.#defineU_CLK1000UC.#definemult(X)(X*X)(正确答案)D.#defineU_PLUS(X)((X)+2))63.下列用法符合编码规范的是()。A.staticuint8_tmid=0;B.constuint8_tsend_time=0U;C.#defineadd_all(a+b)D.voidAppInit(void);(正确答案)64.下列符合编码规范的是()。A.enumcolour{RED=1,BLUE=3,GREEN=5,YELLOW=7};(正确答案)B.staticvoidAppRun();C.int16_ty[3][2]={1,2,3,4,5,6};D.staticdeal_func(uint32_tlen);/*无返回值*/65.下列不符合编码规范的是()。A.无论安全产品还是非安全产品,都不应使用goto语句。B.signedchar和unsignedchar类型应该只用做存储和使用字符值。(正确答案)C.所有的#else、#elif和#endif预处理指令应该同与它们相关的#if或#ifdef指令放在相同的文件中。D.所有自动变量在使用前都应被赋值。66.下列说法不符合规范的是()。A.移位运算符的右手操作数应该位于零和某数之间,这个数要小于左手操作数的基本类型的位宽。B.typedef的名字应当是唯一的标识符。C.for语句的控制表达式不能包含任何浮点类型的对象。D.for循环中用于迭代计数的数值变量可以在循环体中修改。(正确答案)67.下列用法符合编码规范的是()。A.#include“headfile.h”(正确答案)B.staticuint8_tmid=0;C.#includeheadfile.hD.voidfunc();68.下列符合编码规范的是()。A.非安全产品中可以使用goto语句。B.单纯的char类型应该只用做存储和使用数字值。C.标准库中保留的标识符、宏和函数不能被定义、重定义或取消定义。(正确答案)D.signedchar和unsignedchar类型应该只用做存储和使用字符值。69.下列不符合编码规范的是()。A.intarray1[10];B.externintarray[];(正确答案)C.intarray[]={0,10,15}D.externint16_tx;70.下列变量命名符合编码规范的是()。A.intnerr=0;B.intpc_reader=0;C.intprice_count=0;(正确答案)D.intcstmer_id=0;71.汇编语言应该被封装并隔离。A、正确(正确答案)B、错误72.printf(“??-??-??”);//打印出“??-??-??”。A、正确B、错误(正确答案)73.位域只能被定义为unsignedint或singedint类型A、正确(正确答案)B、错误74.不应使用八进制常量(零除外)和八进制转义序列。A、正确(正确答案)B、错误75.后缀“U”应该用在所有unsigned类型的常量上。A、正确(正确答案)B、错误76.可以依赖C表达式中的运算符优先规则,或者应使用括号明确运算的优先顺序。A、正确B、错误(正确答案)77.m=sizeof(n=5678);该语句执行后n=5678。A、正确B、错误(正确答案)78.位运算符不能用于基本类型是有符号的操作数上。A、正确(正确答案)B、错误79.赋值运算符不能使用在产生布尔值的表达式上。A、正确(正确答案)B、错误80.赋值运算符不能使用在产生布尔值的表达式上。A、正确(正确答案)B、错误81.printf(“\r\n”);//为回车换行符。A、正确(正确答案)B、错误82.typedef的名字应当是唯一的标识符。A、正确(正确答案)B、错误83.标签(tag)名称必须是唯一的标识符。A、正确(正确答案)B、错误84.后缀“U”应该用在所有unsigned类型的常量上。A、正确(正确答案)B、错误85.不可以依赖C表达式中的运算符优先规则,或者应使用括号明确运算的优先顺序。A、正确(正确答案)B、错误86.static存储类标识符应该用于具有内部链接的对象和函数的定义和声明。A、正确(正确答案)B、错误87.检查编译器/链接器应确保31个有效字符,支持大小写敏感。A、正确(正确答案)B、错误88.函数的每个参数类型在声明和定义中必须是一致的,函数的返回类型也该是一致的。A、正确(正确答案)B、错误89.for循环中用于迭代计数的数值变量不应在循环体中修改。A、正确(正确答案)B、错误90.安全产品不能有不可到达的代码(不可达代码属于异常防护时除外)。A、正确(正确答案)B、错误91.所有非空语句应该至少有一个副作用;A、正确(正确答案)B、错误92.在函数的原型声明中可以只给出参数的类型,而不用包括参数名字,这样更清晰简洁。A、正确B、错误(正确答案)答案解析:必须参数名字93.带有返回类型的函数其所有退出路径都应具有显式的带表达式的return语句。A、正确(正确答案)B、错误94.函数标识符的使用应采用如下两种方式之一:(1)函数标识符前加前缀*;(2)使用带括号的参数列表,列表可以为空。A、正确B、错误(正确答案)答案解析:前缀&95.指针的数学运算只能用在指向数组或数组元素的指针上。对并非指向数组或数组元素的指针做整数加减运算(包括增值和减值)会导致未定义的行为.A、正确(正确

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论