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小时内删除。
发表评论