zoukankan      html  css  js  c++  java
  • C语言试题(标准答案)

    C语言试题(标准答案)

    一.单选题(每小题2分,共20小题40分)

    1.11.5    B D A C B                1.61.10    C A D B C

    1.111.15  A D D C B                1.161.20   D A B C A

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

    2.1        52        。

    2.2       10         ;       12         ;       120        。

    2.3       110        。

    2.4       0x801005   ;       0x801014   。

    2.5       2          ;       5          。

    2.6       自动       。

    三.简答题(每小题4分,共5小题20分)

    3.1全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?

    答:可以。(2分)

    在不同的C文件中以static形式来声明同名全局变量。(2分)

    3.2引用与指针有什么区别?

    答:(1) 引用必须被初始化,指针不必;(1分)

        (2) 引用初始化以后不能被改变,指针可以改变所指的对象;(1.5分)

        (3) 不存在指向空值的引用,但是存在指向空值的指针。(1.5分)

    3.3堆栈溢出一般是由什么原因导致的?

    答:没有回收垃圾资源。(或答:没有释放无用的资源。)(4分)

    3.4队列和栈有什么区别?

    答:队列先进先出,(2分)栈后进先出。(2分)

    3.5编译工作区的时候,往往会遇到错误码为“0x00000002”的编译错误,查找相应的错误描述却没有找到,出现此种情况的原因是什么?应该怎样处理?

    答:原因是编译过程产生了不可预知的错误。(2分)

        解决办法有:尝试重启电脑或禁用分布式编译采用单机编译。(2分)

    四. 编程题(每小题10分,共2小题20分)

    4.1编写函数实现一个整数的逆序输出,整数由参数n表示,例如n=1234,则输出4321,要求不可以使用任何C库函数,函数原型如下:void inv(int n);

    答题评分标准:

    1、 考虑了负数的情况:3

    2、 使用了临时变量:2

    3、 有打印并打印格式正确:1

    4、 有相应的注释:1

    5、 结果完全正确:3

    参考程序:

    void inv(int n)

    {

    int tmpNum = n;   // 使用了临时变量:2

        if (tmpNum < 0)   // 考虑了负数的情况:3

        {

            // 负数

            k = 0;

            tmpNum = -tmpNum;

    printf("-");

        }

    while(tmpNum)

    {

    printf("%d", tmpNum%10);  // 打印正确:1

    tmpNum = tmpNum / 10;

    }

    }

    4.22~2000的所有素数并打印在屏幕上,有足够的内存,要求尽量快。

    答题评分标准:

    1、 保存找到的素数,使用全局数组和全局变量而非临时申请的空间:3

    2、 判断素数的关键循环:3

    3、 有打印并打印格式正确:1

    4、 有相应的注释:1

    5、 结果完全正确:2

    参考程序:

    int findvalue[2000] = {2};  // 使用了全局数组和全局变量:3

    static int find = 1;

    bool adjust(int value);

    void GetPrimeNumbers(void)

    {

    for (int i = 2; i <= 2000; i++)

    {

    if (adjust(i))      // 有打印判断并打印语句正确:1

    {

    printf("%d ", i);

    }

    }

    }

    bool adjust(int value)

    {

    assert(value>=2);

    if (value == 2)

    {

    return true;

    }

    for (int i = 0; i < find; i++)    // 判断素数的关键循环:3

    {

    if (value % findvalue[i] == 0)

    {

    return false;

    }

    }

    findvalue[find++] = value;

    return true;

    }

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)
  • 原文地址:https://www.cnblogs.com/lexuele/p/4691554.html
Copyright © 2011-2022 走看看