C语言程序设计课程 模拟试卷
    一、单项选择题。把合适的选项编号填写在括号内。(每小题3分,共42分)
    1.在C语言中,每条复合语句的结束标记字符为(    )。
        A.]            B.)            C.>            D.}
  2. C语言程序中,单行或行尾注释语句使用的标记符为(    )。
        A. */      B. /*    C. //    D. **
  3. C语言源程序文件的扩展名为(    )
        A. cpp      B. exe      C. obj      D. c
    4. 控制字符'\n'表示(    )。
        A. 回车      B. 响铃      C. 换行      D. 换页
    5. 运算符优先级最高的是(    )。
        A. ==       B. +      C. &&      D. ||
    6. x<=10的相反表达式为(    )。
A. x>=10        B. x>10
C. x!=10        D. x>0
    7. 每次先进行循环条件的判断,然后再执行循环体的语句为(    )。
        A. for和do          B. for和while
        C. while和do        D. switch和break
    8. 假定对二维数组a[3][4]进行初始化的数据为{{3,5,6},{2,8},{7}},则a[1][1]被初始化为(    )。
        A. 6      B. 2        C. 8      D. 7
    9. 对于一个二维字符数组a[M][N],存储每个字符串的长度至多为(    )。
        A. M      B. N        C. M-1        D. N-1
    10. 假定p所指对象的值为25,p+1所指对象的值为42,则表达式*p++的值为(    )。
        A. 25        B. 42        C. 26        D. 43
    11. 已知“int a[6][5];”,则元素a[2][4]的地址比该数组的首地址大(   )。
        A. 14个字节      B. 56个字节      C. 28个字节      D. 96个字节
    12. 在C语言中,用户定义的标识符分为4种作用域,下列选项中不属于这4种作用域的是(    )。
        A. 全局      B. 语句      C. 文件      D. 局部
    13. 在一个链表中,每个结点必然存在着一个指向自身结点类型的指针域,用来保存下一个结点的(    )。
        A. 地址      B.       C. 名称      D. 类型
    14. 在C语言中,为只写操作打开一个文本文件的方式为(    )。
        A. "a"      B. "r+"      C. "r"      D. "w"
二、是非判断题。根据叙述正确与否在其后面的括号内打对号“√”或叉号“×”。(每小题2分,共30分) 
    1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。(    )
    2.在C语言程序上机操作的过程中,编译程序的操作步骤之后是运行操作。(    )
    3. 在一条变量定义语句中,可以同时定义不同类型的变量。(    )
    4. 表达式x=x+y表示成复合赋值表达式为x+=y(    )
    5.若x=5,y=10,则x<=y的逻辑值为假。(    )
    6. do-while循环语句的循环体,只能是复合语句,不能是简单语句。(    )
    7. 在一维数组的定义语句中,数组名前为元素类型关键字。(    )
    8. 假定二维数组的定义语句为“double a[M][N];”,则每个数组元素的列下标取值范围在0~N-1之间。(    )
  9. 一个二维字符数组a[10][20]中存储每个字符串的最大长度为19。(    )
    10. 假定a是一个一维数组,则表达式*(a+i)所对应的元素为a[i-1](    )
    11. 进行动态存储分配的calloc()函数带有两个参数。(    )
    12. 对于标识为static属性的变量,若没有对它进行初始化,则默认的初值为1。(    )
    13. 在C语言中,一个结构类型的长度等于所含的所有数据成员类型的长度之和。(    )
    14. 在结构成员访问运算符中,点运算符和箭头运算符的左边均为结构变量。(    )
    15. 当向字符文件输出一个换行符时,实际将输出的是回车符或换行符。(    )
    三、程序填空题。分析程序后把合适的内容填写在括号内。(每小题5分,共30分)
    1. 执行下面程序的输出结果为(    )。
#include<stdio.h>
void main() {
    int x=5,y=8,z=6,w=0;
    if(x>=y) w=x; else w=y;
    if(w<z) w=z;
    printf("w=%d\n",w);
}
    2. 执行下面程序的输出结果为(    )
#include<stdio.h>
void main() {
    int n=0,y=0;
    while(n<10) {n++; y+=n;}
    printf("y=%d\n",y);
}
    3. 执行下面程序的输出结果为(    )
#include<stdio.h>
void main() {
    int a[8]={12,15,20,8,5,9,16,10};
    int i,j,x=a[0]+a[1];
    for(i=0; i<8; i++)
        for(j=i+1; j<8; j++)
            if(a[i]+a[j]>x) x=a[i]+a[j];
    printf("%d ",x);
}
    4. 执行下面程序的输出结果为(    )
#include<stdio.h>
void main() {
    int a[8]={10,8,16,15,9,21,7,16};
    int i,x=a[0];
    for(i=1;i<8;i++)
        if(a[i]<x) x=a[i];
    printf("x=%d\n",x);
}
    四、编程题。按题目要求编写程序或函数。(每小题4分,共8分)
    1. 补充完整下面的函数定义,利用for循环计算1+21+22++2n的值,最后返回计算结果。假定计数变量用i表示,每次累乘2的变量用p表示,每次累加一个数据项值的变量用sum表示。
一个完整的c语言程序      int FF(int n)
      {
          int i, p=1, sum=1;
          //在下面一行的后面补上for循环语句的语句体
          for(i=1; i<=n; i++) _____________________________
          return sum;
      }
    2. 根据函数原型“int DD(int a[], int n, int MM)”编写函数定义,利用双重for循环统计出数组a[n]中任何两个不同元素的值等于MM值的配对个数,然后返回统计结果。如假定a[i]+a[j]等于MM,同时i≠j,则为一个配对。
    int DD(int a[], int n, int MM)
      {
          int i,j,c=0;          //用i和j作为循环变量,用c作为统计变量
          //在下面补充一个双重for循环语句
          return c;
      }

C语言程序设计课程  模拟试卷参考答案
    一、单项选择题,把合适的选项编号填写在括号内。(每小题3分,共42分)
    1. D    2. C    3. D    4. C    5. B    6. B    7. B 
    8. C    9. D    10. A    11. B    12. B    13. A    14. D
    二、是非判断题,根据叙述正确与否在其括号内打对号“√”或叉号“×”。(每小题2分,共30分)
    1. √    2. ×    3. ×    4.     5. ×    6. ×    7.
    8.     9.     10. ×  11. √    12. ×  13.   14. ×  15. ×
    三、程序填空题。分析程序后把合适的内容填写在括号内。(每小题5分,共20分)
    1. w=8    2. y=55    3. 36    4. x=7   
    四、编程题。按题目要求编写程序或函数。(每小题4分,共8分)
评分标准:根据编写程序或函数的正确与完整程度酌情给分。
    1. {p*=2; sum+=p;}                          //4分
  2. for(i=0; i<n; i++)                        //1分
          for(j=i+1; j<n; j++)                  //2分
              if(a[i]+a[j]==MM) c++;            //4分

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。