C语言编程规范试题

[说明]:

1、本试题中不考虑头文件引用问题(假定已经包含正确的头文件),C语言的标准函数都可用;

2、如果不特别说明,假定程序运行环境为:操作系统Windows 2000, VC6.0编译环境,缺省为四字节对齐,X86(80586)CPU处理器(32位小字节序处理器);

3、试卷需要回收再利用,请在答题纸上答题;

4、本试题满分为100分,答题时间为90分钟。

一.单选题(每小题3分,共20小题60分)

(  )1.1 程序块要采用缩进风格编写,缩进的空格数为几个?

A. 2    B. 4    C. 6    D. 8

(  )1.2 如下代码正确符合规范的是?

A.

MMI_BOOL bSim1Valid;

bSim1Valid = srv_sim_ctrl_is_available(mmi_sim_enum sim);

if (bSim1Valid)

{

… // program code

}

sim_cntx = srv_sim_ctrl_get_sim_cntx(sim);

app_strlcpy(out_imsi_buffer, sim_cntx->imsi, buffer_size);

B.

rect.length = 0; rect.width = 0;

C.

if (pUserCR == NULL) return;

D.

for (...)

{

... // program code

}

if (...)

{

... // program code

}

void example_fun( void )

{

... // program code

}

(  )1.3 新增代码时添加注释的Qicker快捷命令是?

A. abg    B. mbg    C. dbg    D. mbe

(  )1.4 一般情况下,源程序有效注释量必须在多少比例以上?

A. 40%    B. 30%    C. 20%    D. 10%

(  )1.5 新增函数时添加函数头部注释的Qicker快捷命令是?

A. file    B. func    C. fi    D. hi

(  )1.6 下列国内软件编译开关命名正确的是?

A. __AHONG_ONEKEY_SAVING_MODE__

B. __AHONG_CALL_SAVING_WAY__

C. __AHONG_MMI_NORMAL_UI_176X220__

D. __MMI_AHONG_IP_NUMBER__

(  )1.7 如下代码中命名正确符合规范的是?

A. void set_udt_msg_sls( BYTE sls );

B. #define _EXAMPLE_0_TEST_

C. Add_User

D. void set_sls00( BYTE sls );

(  )1.8 比较如下两段代码:

Typedef struct EXAMPLE_STRU

{

unsigned int valid: 1;

PERSON person;

unsigned int set_flg: 1;

} EXAMPLE;

typedef struct EXAMPLE_STRU

{

unsigned int valid: 1;

unsigned int set_flg: 1;

PERSON person ;

} EXAMPLE;

左右两边定义的结构所占用的内存空间相差几个字节?

A. 0    B. 1    C. 2    D. 4

(  )1.9 如下哪个方法是用来保护可重入函数的全局变量的?

A. 开中断    B. 信号量    C. 管道    D. 消息队列

(  )1.10 下面关于函数的描述不正确的是?

A. 一个函数仅完成一件功能。

B. 为简单功能编写函数。

C. 函数的规模尽量限制在300行以内。

D. 不要设计多用途面面俱到的函数。

(  )1.11 设计函数时,函数的合理扇出应该是?

A. 小于7    B. 小于8    C. 小于9    D. 小于10

(  )1.12 优化函数结构时,下面描述的原则哪个是不正确的?

A. 不能影响模块功能的实现。

B. 仔细考查模块或函数出错处理及模块的性能要求并进行完善。

C. 通过分解或合并函数来改进软件结构。

D. 提高函数间接口的复杂度。

(  )1.13 正式的软件产品中应该把断言及其他调测开关关掉是为了?

A. 防止无法重启系统    B. 减少程序代码空间

C. 提高系统的稳定性    D. 加快软件运行速度

(  )1.14 如下关于效率的描述不正确的是?

A. 不应花过多的时间拼命地提高调用不很频繁的函数代码效率。

B. 尽量减少循环嵌套层次

C. 要追求紧凑的代码

D. 尽量用乘法或其它方法代替除法,特别是浮点运算中的除法

(  )1.15 有如下程序代码:

#define OK              0

#define ERR             1

#define ERROR           (-1)

#define BUFFER_SIZE     256

char *GetMemory(unsigned long ulSize)

{

char *pcBuf = NULL;

pcBuf = (char *)malloc(ulSize);

if(NULL == pcBuf)

{

return ERROR;

}

return pcBuf;

}

void Test(void)

{

char *pszBuf = NULL;

pszBuf = GetMemory(BUFFER_SIZE);

if(NULL != pszBuf)

{

strcpy(pszBuf, "Hello World!\r\n");

printf(pszBuf);

free(pszBuf);

}

return;

}

如下描述正确的是:

A、pszBuf指向的内存不能超过255

B、GetMemory函数的异常分支返回了-1,是一个非法地址

C、GetMemory中异常分支没有释放空间

D、pcBuf为局部指针,指向的内存将在GetMemory被调用后释放

(  )1.16 如下关于测试维护的描述正确的是?

A. 可以通过“试”来解决问题

B. 清理、整理或优化后的代码只要经过测试即可

C. 通过手工备份的方式实现对代码版本进行维护

D. 代码版本升级要经过严格测试

(  )1.17 如下宏定义不存在风险的是?

A. #define RECTANGLE_AREA( a, b ) ((a) * (b))

B. #define RECTANGLE_AREA( a, b ) (a) * (b)

C. #define RECTANGLE_AREA( a, b ) (a * b)

D. #define RECTANGLE_AREA( a, b ) a * b

(  )1.18 如下代码:

#define SQUARE( a ) ((a) * (a))

int a = 5;

int b;

b = SQUARE( a++ );

执行完之后a和b的值是多少?

A. a = 6    b = 25        B. a = 7    b = 25

C. a = 7    b = 30        D. a = 7    b = 36

(  )1.19 有如下代码:

#define SQUARE( a ) ((a) * (a))

int a = 5;

int b;

使用宏的方法正确符合规范的是?

A.

b = SQUARE( a++ );

B.

b = SQUARE( ++a );

C.

b = SQUARE( a );

a++;

D.

b = SQUARE( (a)++ );

(  )1.20 有下列程序代码:

#include <stdio.h>

void main()

{

union

{

int     k;

char    i[2];

}*s,a;

s = &a;

s->i[0] = 0x19;

s->i[1] = 0x18;

printf("%x\n", a.k);

}

输出结果是?

A. 不可预知

B. 1819

C. 1918

D. 180019

二.填空题(每空1分,共20空20分)

2.1 通常在设计函数的时候,函数之间要低______,函数内部要高______,函数之间调用关系要____扇入、______扇出。

2.2 为了提高代码的效率,通常要求循环体内工作量______,把多重循环中最忙的循环放在______。

2.3 代码质量保证优先原则中,最优先保证______,然后依次是稳定性、安全性、______、规范/可读性、全局效率、局部效率、个人方便性。

2.4 代码走读主要是对程序的编程风格如注释、命名等以及编程时易出错的内容进行检查,可由开发人员自己或开发人员      的方式进行;代码审查主要是对程序实现的功能及程序的稳定性、安全性、可靠性等进行检查及评审,可通过自审、          或              等方式进行。

2.5同产品软件(项目组)内,最好使用相同的编辑器,并使用相同的          。

2.6资源文件(多语言版本支持),如果资源是对语言敏感的,应让该资源与源代码文件      ,具体方法有下面几种:             、            或其它单独的描述文件(如数据库格式)。

2.7对较关键的算法最好使用          来确认。

2.8局部效率应为          服务,不能因为提高局部效率而对          造成影响。

2.9在同一项目组或产品组内,要有一套统一的为集成测试与系统联调准备的          及相应打印函数,并且要有详细的说明。

2.10检查函数所有参数输入的有效性,同时还要检查函数所有非参数输入的有效性,如数据文件、          等。

三.编程题(每小题20分,共1小题20分)

3.1 编写函数实现:将整型数变成字符串,如3489变成"3489"。要求不可以使用任何C库函数。函数原型声明如下:

char *intTostring(int num, char *result);

C语言编程规范试题的更多相关文章

  1. C语言编程规范试题(标准答案)

    C语言编程规范试题(标准答案) 一.单选题(每小题3分,共20小题60分) 1.1-1.5    B D A C B                1.6-1.10    C A D B C 1.11 ...

  2. 华为C语言编程规范

    DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...

  3. linux shell语言编程规范安全篇之通用原则【转】

    shell语言编程规范安全篇是针对bash语言编程中的数据校验.加密与解密.脚本执行.目录&文件操作等方面,描述可能导致安全漏洞或风险的常见编码错误.该规范基于业界最佳实践,并总结了公司内部的 ...

  4. C语言编程规范

    C语言编程规范 6 函数与过程 6.1 函数的功能与规模设计 函数应当短而精美,而且只做一件事.不要设计多用途面面俱到的函数,多功能集于一身的函数,很可能使函数的理解.测试.维护等变得困难. 6.2 ...

  5. Uber Go 语言编程规范

    目录 Uber Go 语言编程规范 1. 介绍 2. 编程指南 3. 性能相关 4. 编程风格 5. 编程模式(Patterns) 6. 总结 Uber Go 语言编程规范 相信很多人前两天都看到 U ...

  6. C++语言编程规范

    前言 这里参考了<高质量C++C 编程指南 林锐>.<google C++编程指南>以及<华为C++语言编程规范>编写了这份C++语言编程规范文档,以合理使用 C+ ...

  7. Golang语言编程规范

    Golang语言编程规范 一.说明 编程规范好,可避免语言陷阱,可有利团队协作,有利项目维护. 正常的Go编程规范有两种:编译器强制的(必须的),gofmt格式化非强制的(非必须). Go宣告支持驼峰 ...

  8. 单片机C语言编程规范

    一.基本要求 1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行. 1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序. 1.3 尽量使用标准库函数和公共函数. 1.4 不要 ...

  9. C语言编程规范—命名规则

    C是一门朴素的语言,你使用的命名也应该这样.与Modula-2和Pascal程序员不同,C程序员不使用诸如“ThisVariableIsATemporaryCounter”这样“聪明”的名字.C程序员 ...

随机推荐

  1. 【Linux】小米路由开启SSH访问权限

    一.验证小米路由ROM是否为开发版 1.  登录小米路由Web管理页面,检查ROM版本是否为开发版(若为开发版直接跳至第二步,若为稳定版继续本步骤). 2. 进入小米路由器官网(http://www1 ...

  2. c++ string函数合集

    s.substr(x,len) 在s中取出从x位置开始,长度为len的字符串,并返回string类型的字符串. s.find(a) 在s中查找字符串a,并返回起始下标(从0开始),若不存在,返回184 ...

  3. C#上机作业及代码Question1

    第一题创建控制台应用程序,利用下面的公式计算 q 的近似值,并运行出 k=10 时 q 的值. 本着开源的精神,献给各位,题目简单,随便写写,功能都实现了,不过现在先上传简单题,有一些难度的题目我先留 ...

  4. BFS Codeforces Beta Round #94 (Div. 2 Only) C. Statues

    题目传送门 /* BFS:三维BFS,坐标再加上步数,能走一个点当这个地方在步数内不能落到.因为雕像最多8步就会全部下落, 只要撑过这个时间就能win,否则lose */ #include <c ...

  5. ASP.NET中的<%%>介绍

    一.主要用于ASP.NET前台绑定用的最多: <%#Eval("")%> <%#Bind("")%> <%=变量%> 1.& ...

  6. Spring框架及AOP

    Spring核心概念 Spring框架大约由20个功能模块组成,这些模块主分为六个部分: Core Container :基础部分,提供了IoC特性. Data Access/Integration ...

  7. 利用freemarker导出页面格式复杂的excel

    刚开始大家可能会利用poi生成简单的excel,但是遇到需要生成复杂的excel,poi导出excel就比较困难,这时候可以利用freemarker来渲染实现实现生成复杂的excel, 首先,将exc ...

  8. CF861B Which floor?

    思路: 暴力枚举. 实现: #include <bits/stdc++.h> using namespace std; int n, m, x, y; bool check(int x, ...

  9. CSS笔记集合

    CSS CSS 认识 CSS全称为层叠样式表,主要是用于定义HTML内容在浏览器内的显示样式. CSS样式由选择符和声明组成,而声明又由属性和值组成. CSS中注释语句:/*注释语句*/.Html中使 ...

  10. SVN的三种merge方式【转】

    SVN的merge操作是为了保证主干(trunk)和分支(branch)同步,merge方式有: 1.Merge a range of revisions(合并一个范围的版本) 2.Reintegra ...