C程序设计综合练习题

C程序设计综合练习题

注:可以在线查看pdf格式题目文档,效果更好。 链接:https://www.aliyundrive.com/s/7W7TZH2hKJV

题目背景

C语言期末考试模拟题,以选择题形式布置作业,每道题10分,读入题号,输出改题的答案,文章最后有代码参考。

题目描述

  1. ( )是构成C语言程序的基本单位。 A. 函数 B. 过程 C. 子程序 D. 子例程

  2. C语言程序从( )开始执行。

    A. 程序中第一条可执行语句 B. 程序中第一个函数 C. 程序中的main函数 D. 包含文件中的第一个函数

  3. 下列关于C语言的说法错误的是( )。
    A. C程序的工作过程是编辑、编译、连接、运行 B. C语言不区分大小写

    C. C程序的三种基本结构是顺序、选择、循环 D. C程序从main函数开始执行

  4. 下列C语言用户标识符中合法的是( )。
    A. 3ax B. x C.case D. -e2

  5. C语言中的简单数据类型包括( )。
    A. 整型、实型、逻辑型 B. 整型、实型、逻辑型、字符型

    C. 整型、字符型、逻辑型 D. 整型、实型、字符型

  6. 阅读程序选择答案:

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
       int a = 3, b = 4, ans;
       ans = a < b ? a : b;
       printf("%d", ans);
       return 0;
    }
    

    请问程序运行的结果是( )。
    A. 3 B. 4 C.0 D. 1

  7. 在C语言程序中,\(5\%2\)的结果是( )。
    A. 2.5 B. 2 C.1 D. 3

  8. 设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( )。
    A. b=1.0/a B. b=(float)(1/a)
    C. 1/(float)a D. b=1/(a*1.0)

  9. 以下对一维数组a的正确说明是( )。

    A. char a B. int a[];
    C. int k=5,a[k]; D. char a[3]={'a','b','c'};

  10. 以下能对一维数组a进行初始化的语句是( )。

    A. int a[5]=(0,1,2,3,4,); B. int a(5)={};
    C. int a[3]={0,1,2}; D. int a{5}={10*1};

  11. 已知int a[10];则对a数组元素的正确引用是( )。

    A. a[10] B. a[3.5] C.a(5) D. a[0]

  12. 已知int a[3][4];则对数组元素引用正确的是( )。

    A. a[2][4] B. a[1,3] C.a[2][0] D. a(2)(1)

  13. 在C语言中,函数的数据类型是指( )。

    A. 函数返回值的数据类型 B. 函数形参的数据类型
    C. 调用该函数时的实参的数据类型 D. 任意指定的数据类型

  14. 在C语言中,表示静态存储类别的关键字是( )。

    A. auto B. register C.static D. extern

  15. 语句int *p;说明了( )。

    A. p是指向一维数组的指针 B. p是指向函数的指针,该函数返回一int型数据
    C. p是指向int型数据的指针 D. p是函数名,该函数返回一指向int型数据的指针

  16. 下列不正确的定义是( )。

    A. int *p=&i,i; B. int *p,i;
    C. int i,*p=&i; D. int i,*p;

  17. 有语句int a[10];则( )是对指针变量p的正确定义和初始化。

    A. int p=*a; B. int *p=a;
    C. int p=&a; D. int *p=&a;

  18. 有如下程序

    int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;

    则数值为9的表达式是 ( )。

    A. *P+9 B. *(P+8)
    C. *P+=9 D. P+8

  19. 阅读程序回答问题:

    #include <stdio.h>
    int main() { 
        int a=12, b=-34, c=56, min=0;
        min=a;
        if(min>b)
            min=b;
        if(min>c)
            min=c;
        printf("min=%d", min);
        return 0;
    }
    

    程序运行的结果是( )。

    A. min=%d B. -34
    C. min=0 D. min=-34

  20. 下列程序为一种将10进制数转化为2进制数的写法,请阅读程序完成问题

    #include <stdio.h>
    int main() {
        int i, n = 31, ans[10] = {0}, cnt = 0;
        while (n > 0) {
            cnt ++ ;
            if (n % 2 == 1) {
                /* 此处应该填入(  ) */
            }
            else {
                ans[cnt] = 0;
            }
            n /= 2;
        }
        for (i = cnt; i >= 1; i -- ) {
            printf("%d", ans[i]);
        }
        return 0;
    }
    

    请问程序中留空的位置应该填入的是( )。

    A. ans[cnt] = 0; B. ans[cnt] == 1;
    C. ans[cnt] ++ D. ans[cnt] = (n % 2);

输入格式

一个整数为题目序号

输出格式

一个大写字母,为A、B、C或D,表示该题目的答案。

输入输出样例

输入#1

1

输出#1(答案非正确答案)

B

代码样例

如果觉得手写麻烦,可以直接应用如下的代码格式。代码格式中给出了具体的用法,但是其中举例用的答案未必是正确答案。

#include <stdio.h>
#define A() printf("A\n"); break;
#define B() printf("B\n"); break;
#define C() printf("C\n"); break;
#define D() printf("D\n"); break;
int main() {
    int id;
    scanf("%d", &id);
    switch(id) {
        /*使用的时候直接在相应的题号后面写上答案+括号、分号即可,例如A(); B();等*/
        case 1: D();  // 答案为示范答案,不一定正确
        case 2: 
        case 3: 
        case 4: 
        case 5: 
        case 6: 
        case 7: 
        case 8: 
        case 9: 
        case 10: 
        case 11: 
        case 12: 
        case 13: 
        case 14: 
        case 15: 
        case 16: 
        case 17: 
        case 18: 
        case 19: 
        case 20: 
    }
}

信息

ID
1028
难度
(无)
分类
(无)
标签
递交数
82
已通过
26
通过率
32%
上传者