电大《C语言程序设计A》练习题(5)

时间:2024-04-27 17:36:52 5A范文网 浏览: 复习资料 我要投稿

一、单选题(每小题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

高考语文备考作文素材 莫言:拾馒头的父亲04-27

热搜文章
最新文章