C/C++ L10

2018/08/04 C/C++

C/C++程序语言设计 Level10。

选择题

  1. 一个C程序的执行是从_____

     A. 本程序的main函数开始,到main函数结束
     B. 本程序的main函数开始,到本程序文件的最后一个函数结束
     C. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
     D. 本程序文件的第一个函数开始,到本程序main函数结束
    
  2. C语言程序的基本单位是_____

     A. 程序行
     B. 语句
     C. 函数
     D. 字符
    
  3. 下面可以作为变量名字的是_____

     A. void
     B. a1_2_3
     C. 1_2_3
     D. sizeof
    
  4. 下面的运算符号中,要求运算数一定是整数的是_____

     A. /
     B. ++
     C. *=
     D. %
    
  5. 下面程序的运行结果是_____

     char ch = 'A';
     ch = (ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch;
    
     A. A
     B. a
     C. Z
     D. z
    
  6. 下面程序的运行结果是_____

     #include <stdio.h>
        
     int main(){
         int k = 3;
         switch(k){
             case 1: printf("%d ", k++);
             case 2: printf("%d ", k++);
             case 3: printf("%d ", k++);
             case 4: printf("%d ", k++);break;
             default: printf("Full!\n");
         }
     }
    
     A. 3
     B. 4
     C. 3 4
     D. 4 4
    
  7. 下面程序中,输出的结果是

     #include <stdio.h>
        
     int main(){
         int y = 0;
         do{
             y--;
         }while(--y);
         printf("%d\n", y--);
     }
    
     A. -1
     B. 1
     C. 8
     D. 0
    
  8. 关于汇编语言,下列说法错误的是

     A. 是一种与具体硬件相关的程序设计语言
     B. 在编写复杂程序时,相对于高级语言而言代码量较大,且不易调试
     C. 可以直接访问寄存器、内存单元、以及I/O端口
     D. 随着高级语言的诞生,如今已完全被淘汰,不再使用
    
  9. 以下不属于操作系统

     A. Windows
     B. DOS
     C. PhotoShop
     D. NOI Linux
    
  10. 下列各无符号十进制整数中,能用八位二进制表示的数中最大的是

    A. 296   
    B. 133   
    C. 256   
    D. 255
    
  11. 下面是根据欧几里得算法编写的函数,它所计算的是a和b的

    int euclid(int a, int b){
        if (b == 0)
            return a;
        else
            return euclid(b, a % b);
    }
    
    A. 最大公共质因子   
    B. 最小公共质因子   
    C. 最大公约数
    D. 最小公倍数
    
  12. 要求以下程序的功能是计算:s= 1 + 1/2 + 1/3 + … + 1/10,其中出错的语句是

    #include <iostream>
    using namespace std;
    
    int main() {
        int n;
        float s;
        s = 1.0;
        for(n = 10; n > 1; n--)
            s += 1/n;
        cout << s << endl;
        return 0;
    }
    
    A. s=1.0;   
    B. for(n=10;n>1;n--)
    C. s+=1/n;   
    D. cout<<s<<endl;
    
  13. 在使用高级语言编写程序时,一般提到的“空间复杂度”中的“空间”是指

    A. 程序运行时理论上所占的内存空间
    B. 程序运行时理论上所占的数组空间
    C. 程序运行时理论上所占的硬盘空间
    D. 程序源文件理论上所占的硬盘空间
    
  14. n个节点生成的最小生成树有多少条边?

    A. n
    B. n-1
    C. n+1
    D. 不确定
    
  15. 在程序运行过程中,如果递归调用的层数过多导致死循环,会引发

    A. 系统分配的栈空间溢出
    B. 系统分配的堆空间溢出
    C. 系统分配的队列空间溢出
    D. 系统分配的链表空间溢出
    
  16. 前序遍历序列与中序遍历序列相同的二叉树为

    A. 根结点无左子树
    B. 根结点无右子树
    C. 只有根结点的二叉树或非叶子结点只有左子树的二叉树
    D. 只有根结点的二叉树或非叶子结点只有右子树的二叉树
    
  17. 面向对象设计的类设计中,哪一部分是不允许外部访问的

    A. private
    B. protected
    C. public
    D. class
    
  18. 调用函数时,当实际参数和形式参数都是简单变量时,它们之间数据传递的过程是

    A. 实际参数将地址传递给形式参数,并释放原来占用的储存单元
    B. 实际参数将地址传递给形式参数,调用结束时形式参数将地址传回给实际参数
    C. 实际参数将值传递给形式参数,调用结束时形式参数再将值传递给实际参数
    D. 实际参数将值传递给形式参数,调用结束时形式参数无法将值回传给实际参数
    
  19. 下面错误的是

    A. C语言程序总是从main函数开始执行
    B. 在C语言程序中,被调用的函数必须在main函数中定义
    C. C程序是函数的集合,在这个函数中包含标准函数库和用户自己定义的函数
    D. C语言程序中,函数的定义不可以嵌套,但是函数的调用可以嵌套。
    
  20. C语言中规定的函数的返回值的类型是由____

    A. return语句中的表达式类型所决定
    B. 调用该函数时的主调用函数类型所决定
    C. 调用函数时系统临时决定
    D. 在定义函数时所指定的类型所决定
    
  21. 输入2 3 4, 输出:

    #include <iostream>
    using namespace std;
    
    int main(){
        int a, b, c, d, ans;
        cin >> a >> b >> c;
        d = a - b;
        a = d + c;
        ans = a * b;
        cout << "Ans = " << ans << endl;
        return 0;
    }
    
  22. 输入7, 输出:

    #include <iostream>
    using namespace std;
    
    int fun(int n){
        if(n == 1)
            return 1;
        if(n == 2)
            return 2;
        return fun(n-2) - fun(n-1);
    }
    
    int main(){
        int n;
        cin >> n;
        cout << fun(n) << endl;
        return 0;
    }
    
  23. 输入Hello, my name is Lostmonkey, 输出:

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main(){
        string st;
        int i, len;
        // 这里是指输入一整行字符串到st中。
        getline(cin, st);
        // size返回这个字符串的长度。
        len = st.size();
            
        for(i=0;i<len;i++){
            if(st[i] >= 'a' && st[i] <= 'z')
                st[i] += 'A' - 'a';
        }
        cout << st << endl;
        return 0;
    }
    
  24. 输入30, 输出:

    #include <iostream>
    using namespace std;
    
    const int SIZE = 100;
    
    int main(){
        int p[SIZE];
        int n, tot, i, cn;
        tot = 0;
        cin >> n;
        for(i=1;i<=n;i++)
            p[i] = 1;
        for(i=2;i<=n;i++){
            if(p[i] == 1)
                tot++;
            cn = i * 2;
            while(cn <= n){
                p[cn] = 0;
                cn += i;
            }
        }
        cout << tot << endl;
        return 0;
    }
    
  25. 输入3 5, 输出:

    #include <iostream>
    using namespace std;
    
    int main(){
        int a, b;
        cin >> a >> b;
        cout << a << "+" << b << "=" << a+b << endl;
        return 0;
    }
    
  26. 输入1 100 15, 输出:

    #include <iostream>
    using namespace std;
    
    int main(){
        int a, b, u, i, num;
        cin >> a >> b >> u;
        num = 0;
        for(i=a;i<=b;i++)
            if(i%u == 0)
                num++;
        cout << num << endl;
        return 0;
    }
    
  27. 输入12 17 2 4 6 9 11 15 17 18 19 20 21 25, 输出:

    #include <iostream>
    using namespace std;
    
    int main(){
        const int SIZE = 100;
        int n, f, i, left, right, middle, a[SIZE];
        cin >> n >> f;
        for(i=1;i<=n;i++)
            cin >> a[i];
        left = 1;
        right = n;
        do{
            middle = (left + right) / 2;
            if(f <= a[middle])
                right = middle;
            else
                left = middle + 1;
        }while(left < right);
        cout << left << endl;
        return 0;
    }
    
  28. 输入一个千位数n,按照数位将它翻转并输出。例如,输入2345,输出5432。

  29. 输入10个整数,求出这10个整数的平均值、最大值、最小值。平均值保留两位小数。

  30. 输入两个正整数a b,求出a、b之间的所有的不能被3、5整除的数的和。(包含a和b)。

Search

    Table of Contents