首页 > 全部 > 二级C语言 > 国家二级C语言机试(操作题)模拟试卷286

国家二级C语言机试(操作题)模拟试卷286

本单篇文档共3036字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 4189人下载
价格: 0.60 原价:¥8.00
收藏

国家二级C语言机试(操作题)模拟试卷286

程序填空题

1.给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回,并将大于平均值的数放在形参Y所指数组中,在主函数中输出。

例如,有10个正数:46、30、32、40、6、17、45、15、48、26,其平均值为30.500000。

主函数中输出:46 32 40 45 48。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

试题程序:

1 #include<stdlib.h>

2 #include<stdio.h>

3 #define N 10

4 double fun(double x[],double*y)

5 {int i,j;double av;

6 /*********found*********/

7 av=【1】

8 /*********found*********/

9 for(i=0;i<N;i++)

10 av=av+【2】

11 for(i=j=0;i<N;i++)

12 /*********found*********/

13 if(x[i]>av)Y[【3】]=x[i];

14 y[j]=-1;

15 return av;

16 }

17 main()

18 {int i;double x[N],y[N];

19 for(i=0;i<N;i++)

20 {x[i]=rand()%50;

21 printf(\\

(1)0.0

(2)x[i]/N

(3)j++

解析:填空1:通过上面的程序可以看出此空考的是给变量赋初值,av代表的是平均值,因此av的初值应该是0.0。

填空2:通过for循环可知,此空代表求平均值,因此应该填写x[i]/N。

填空3:先把大于平均值的数放在形参y所指数组中,然后使下标值加1,因此此空应该填j++。

程序修改题

2.下列给定程序中函数fun的功能是:将P所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

例如,若给a输入字符串:“ABCDEFGHIJK”,调用函数后,字符数组b中的内容为:“ABC DEFGHI JK”。

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

void fun(char*P,char*b)

{int i,k=0;

while(*P)

{ i=1;

while(i<=3&&*P){

/*********found*********/

b[k]=P;

k++;P++;i++;

}

if(*P)

{

/*********found*********/

b[k++]=\\

(1)b[k]=*p;

(2)b[k]=’’;k++;

解析:本题考查:指针类型变量作为函数的参数,函数的参数不仅可以是整型、实型、字符型等数据类型,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。

(1)题目中p是指针型变量作函数参数,因此给b[k]赋值时出现错误。

(2)题目要求复制三个字符后加一个空格,所以应该是先给b[k]赋值空格,然后变量k再加1。

c语言中为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”符号表示“指向”,例如,pointer代表指针变量,而*pointer是pointer所指向的变量。

程序设计题

3.请编写函数fun,其功能是:找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。

主函数中x是数组名,11是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:

#inclucle<time.h>

#include<stdlib.h>

#include<stdio.h>

void fun(int a[ ],int n,int*max,int*d)

{

}

void main()

{

int i,x[20],max,index,n=10;

srand((unsigned)time(NULL));

for(i=0;i<=n ;i++)

{

x[i]=rand()%50 ;

printf(\\

void fun(int a[],int n, int *max,int*d)

{

int i;

*max=a[0];

*d=0;

for(i=1;i<n;i++) /*将最大的元素放入指针max所指的单元,最大元素的下标放入指针d所指的单元*/

if(*max<a[i])

{*max=a[i];*d=i;}

}

解析:查找最大值及其下标需要定义两个变量,该程序直接使用形参max和d,由于它们都是指针变量,所以在引用它所指向的变量时要对它进行指针运算。循环语句用来遍历数组元素,条件语句用来判断该数组元素是否最大。

本文档预览:3600字符,共3036字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言机试(操作题)模拟试卷286

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号