• C语言编程规范试题


    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! ");

            printf(pszBuf);

            free(pszBuf);

    }

        return;

    }

    如下描述正确的是:

    ApszBuf指向的内存不能超过255

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

    CGetMemory中异常分支没有释放空间

    DpcBuf为局部指针,指向的内存将在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++ );

    执行完之后ab的值是多少?

    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 ", 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++多态深入分析!
    字符编码总结
    算法:并查集
    树的非递归遍历:一种很好的算法
    算法:快速排序
    算法:堆排序
    字符串匹配:KMP算法, Boyer-Moore算法理解与总结
    shodan搜索
    google hacking 语法
    FOFA的搜索语句
  • 原文地址:https://www.cnblogs.com/lexuele/p/4691236.html
Copyright © 2020-2023  润新知