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;

    }

  • 相关阅读:
    如何使用Flexbox和CSS Grid,实现高效布局
    最常用的四种大数据分析方法
    如何编写更好的SQL查询:终极指南-第三部分
    如何编写更好的SQL查询:终极指南-第二部分
    如何编写更好的SQL查询:终极指南-第一部分
    ES2017异步函数现已正式可用
    相对传统桌面设计器,在线报表设计器价值何在?
    如何实现报表设计中的高精度报表套打?
    2017年前端开发工具趋势
    Angular2 VS Angular4 深度对比:特性、性能
  • 原文地址:https://www.cnblogs.com/lexuele/p/4691554.html
Copyright © 2011-2022 走看看