一、单选题(每小题2分,共20分)
1. C语言程序中的基本功能模块为(D)。
A.表达式 B.标识符 c.语句 D.函数
2.逻辑表达式(x>0||y==5)的相反表达式为(B)。
A.x<=O||y!=5 B.x<=O&&y!=5 C.x>O||y!=5 D.x>O&&y==5
3.循环体至少被执行一次的循环语句为 (C)。
A.for B.while C.do-while D.任一种循环
4.假定 n的值为5,则表达式n++的值为(B)。
A.6 B.5 C.4 D.7
5.假定一个二维数组的定义为"int a[3][4]={{3,4},{2,8,6}}号",则元素a[2][O]值为(A)。
A.0 B.2 C.4 D.6
6.假定一个函数原型为"char *func(int n)",则该函数的返回类型为(D)。
A. int B. int* c.char D.char*
7.假定a为一个字符数组名,则元素a[i]的指针访问方式为(B)。
A.a+i B.*(a+i) C.&a+i D.*a+i
8.假定有语句为"int *p=calloc(10+20,sizeof(int)),则p所指向的动态数组中所包含的元素个数为(C)。
A.10 B.20 c.30 D.40
9.十进制数 50表示成符合C语言规定的八进制数为(D)。
A. 20 B.32 C.62 D.062
10.若要以读和写两种操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开方式字符串为(C)。
A."r+" B."ab+" C. "rh+" D."wb+"
二、填空题(每小题2分,共26分)
1.在一个C语言程序文件中,若要包含另外一个头文件或程序文件,则应使用的预处理命令为(#include )
2.用于从键盘上为变量输入值的标准输入函数的函数名为(scanf)
3.假定一个枚举类型的定义为"enum RA{ab,ac,ad,ae};",则ac的值为(1)
4. double类型的长度为(8)
5.执行"int x=45, y=13; printf("%d",x/y);"语句序列后得到的输出结果为(3)
6.把表达式x=x+y转换成复合赋值表达式为(x+=y)
7.假定x的值为5,则执行"a=((!x)?10:20);"语句后a的值为(20)
8.假定一维字符指针数组的定义为"char* a[8];",则该数组占用的存储空间的字节数为(32)
9.假定二维数组的定义为"double a[M][N];"则数组元素的行下标取值范围在(0~M-1)之间
10.空字符串的长度为 (0)
11.在所有函数定义之外定义的变量,若没有被初始化则系统隐含对它所赋的初值为(0)
12.若p指向x,则(*p)与x的表示是等价的。
13. 直接访问表达式(*fp).score所对应的间接访问表达式为(fp->score)
三、写出下列每个程序运行后的输出结果(每小题 6分,共 30分)
1. #include<stdio. h>
void main() {
int i,j ,k==0;
for ({i=O;i<5;i++)
for(j=i;j<5;j++) k++;;
printf("%d/n",k) ; }
运行结果:15
2. #include<stdio. h>
void main() {
int x=20;
int i=2;
while(i<x) {
if(x%i==0) {printf("%d",i); x/=i;}
i++; }}
运行结果:25
3. #include<stdio. h>
void main() {
int a[8]={76,63,54,95,40,75,90,66};
int i, s=0;
for(i=0;i<8;i++)
if(a[i]>=70 && a[i]<=90) s+=a[i];
printf("s=%d/n",s) ; }
运行结果:s=241
4. #include<stdio. h>
int WF(int x , int y) {
x=x+y;
y+=x;
return x+y; }
void main() {
int x=3 , y=8;
printf("%d/n" ,WF(x,y));}
运行结果:30
5. #include<stdio. h>
int LA(int *a,int n) {
int i,s=O;
for(i=O; i<n;i++) s+=a[i];
return s; }
void main() {
int a[5]={1 ,2,3,4,5};
int b=LA(a,5)+LA(a+2,3);
printf("b=%d/n",b);}
运行结果:b=27
四、写出下列每个函数的功能(每小题6分,共12分)
1. int WC(int a[],int n, int k) {
int i, c=O;
for(i=O; i<n;i++)
if(a[i]>=k) c++;
return c; }
函数功能:统计并返回一维整型数组a[n]中大于等于k的值的个数。
2. void QA(struct Worker a[],int n)
{int i;
for(i=O; i<n; i++)
scanf("%s%d%f", a[i].name,&a[i].age,&a[i].pay);}
假定结构类型 struct Worker的定义如下:
struct Worker{char name[15];int age;float pay;};
函数功能:从键盘上为具有struct Worker类型的数组a[n]输入n个记录。
五、按题目要求编写函数(每小题6分,共12分)
1.根据函数原型"double Mean(double a[M][N] ,int m ,int n)",编写函数定义,要求返回二维数组a[m][n]中所有元素的平均值。假定在计算过程中采用变量v存放累加值和最后的平均值。
double Mean(double a[M][N] ,int m ,int n) {
int i,j;
double v=O.0;
for(i=O; i<m; i++)
for(j=O; j<n;j++) v+=a[i][j];
v/=m*n;
return v; } //注:函数体的最后两行可以合并为一条返回语句:return v/=m*n,也可以把"="去掉。
2.根据函数原型"int MM(int a[],int m)",编写函数定义,计算并返回数组a[m]中元素最大值和最小值之差。
int MM(int a[],int m){
int i,x1,x2;
xl=x2=a[0];
for(i=1; i<m;i++){
if(a[i]>x1) xl=a[i];
if(a[i]<x2) x2=a[i];}
return xl-x2;}
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
相关文章:
高考语文备考:诗歌鉴赏高分攻略04-27
高考语文作文备考:议论文才能拿高分04-27
高考语文备考:成语题总丢分的12个错误04-27
高考语文备考:文言文解题技巧04-27
高考语文备考:文言文人物传记阅读总结04-27
高考语文备考:论述类文本阅读选择题怎么做才能拿高分04-27
高考语文备考:语文病句题高分攻略04-27
高考语文备考:文言文阅读提高方法04-27
高考语文备考作文素材 莫言:拾馒头的父亲04-27