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

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

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

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

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的数作为函数值返回,并在主函数中输出。

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

主函数中输出m=30。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdlib.h>

#include<stdio.h>

#define N10

double fun(double x[],double*av)

{int i,j;double d,s;

s=0;

for(i=0;i<N;i++)s=s+x[i];

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

【1】=s/N;

d=32767;

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

if(x[i]<*av&&av-x[i]<=d){

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

d=*av-x[i];

j=【2】

}

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

return【3】

}

main()

{int i;double x[N],av,m;

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

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

printf(\\

(1)*av

(2)i

(3)x[j]

解析:填空1:从原程序中可以看出*av代表的是平均值,而s/N表示的就是平均值,因此本空应该填*av。

填空2:if语句来判断找最接近平均值的数,因而此空应该填i。

填空3:题目要求将小于平均值且最接近平均值的数作为函数返回,而j表达的是最接近平均值的数在数组中的下标,因而本空应该填写x[j]。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:先从键盘上输入一个3行、3列的矩阵的各个元素的值,然后输出主对角线元素之和。

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

注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

void fun()

{

int a[3][3],sum;

int i,j;

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

sum=1;

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

{for(j=0;j<3;j++)

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

scanf(\\

(1)sum=0;

(2)scanf(\\

解析:该题考查对循环语句的掌握和对数组概念的理解。本题的解题思路为:先从键盘输入一个3×3矩阵,然后循环累加,执行循环语句中的sum=sum+a[i][i];。因为变量sum用来存放累加后的结果,所以应对其初始化为0。第二处错误考查标准输入函数scanf的格式,被赋值的变量前要加上取地址符\\

程序设计题

3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。可调用strlen函数求字符串的长度。例如:在键盘输入字符串2345210,函数返回长整型数2345210。

注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun指定的部位填入所编写的若干语句。

试题程序:

#include<stdio.h>

#include<string.h>

void NONO();

long fun(char*s)

{

}

main()

{char s[10];long r;

printf(\\

long fun(char*s)

{

int i,len;

long sum=0;

len=strlen(s);

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

{

sum=sum*10+*s-’0’;

s++;

}

return sum;

}

解析:要把一个数字字符转为相应的数字,只要用它的ASCII码减去48即可。要把数字字符串转为相应的数字,则要从左到右依次取出字符转为相应数字,乘10再加上下一位数字。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号