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

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

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

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

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出理后的数据序列,并将中间数作为函数值返回。

例如,有9个正整数:1 5 7 23 87 5 8 21 45

按升序排列时的中间数为:8

处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45

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

注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

#define N9

int fun(int x[])

{int i,j,k,t,mid,b[N];

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

b[i]=x[i];

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

{k=i;

for(j=i+l;j<N;j++)

if(b[k]>b[j])k=j;

if(k!=i)

{

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

t=b[i];b[i]=【1】

b[k]=t;

}

}

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

mid=b[【2】];

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

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

if(x[i]【3】mid)x[i]=mid;

return mid:

}

main()

{int i,x[N]={1,5,7,23,87,5,8,21,45};

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

prntf(\\

(1)b[k]

(2)4或N/2

(3)<

解析:数组中的9个数任意排列,要找到按升序排列时处于中间位置的数,应首先对数组进行升序排列。因为只需找到中间位置的数即可,故不必对整个数组进行排序,只需要排列出数组的前半部分。找到中间数后,遍历原数组,将小于中间数的元素进行替换。

填空1:利用选择算法排序,先指定一个元素为最小,用这个数与其后的所有数进行比较,若找小于此数,则进行替换。此处考查替换操作。

填空2:元素mid存放中间位置的数,数组长度为9,因此中间元素数为b[4]。

填空3:遍历数组,当元素小于中间位置的数(即mid)时,进行替换。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,fun函数的功能是:删除b所指数组中小于10的数据。主函数中输出删除后数组中余下的数据。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

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

试题程序:

#include<stdio.h>

#include<stdlib.h>

#define N20

int fun(int*b)

{

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

int t[N],i,num

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

if(b[i]>=10)

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

t[++num]=b[i];

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

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

b[i]=t[i];

return(num);

}

main()

{int a[N],i,num;

printf(\\

(1)int t[N],i,num=0;

(2)t[num++]=b[i];或{t[num]=b[i];num++;}

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

解析:要删除数组b中小于10的数,应依次取出数组数组b中的元素与10进行比较,若不小于10,则将其存入数组t中,遍历完成后,数组t中的元素即为所求,再将数组t中的元素保存到数组b中即可。

(1)元素num存放不小于10的元素的个数,应将其初始化为0。

(2)将数组b中不小于10的元素存入数组t中,同时使数组t的下标加1。

(3)语法错误,没有nun这个变量,应该为num。

程序设计题

3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,其功能是:统计s所指字符串中的数字字符个数,并作为函数值返回。

例如,s所指字符串中的内容是:2def5adh253kjsdf7/kj8655x,

函数fun返回值为:11

注意:部分源程序在文件PROG1.C文件中。

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

试题程序:

#include<stdio.h>

void NONO();

int fun(char*s)

{

}

main()

{char*s=\\

int fun(char*s)

{int n=0;

char*p,

for(p=s*p!=’\0’;p++)

if((*p>=’0’)&&(*p<=’9’))

n++;

return n;

}

解析:要统计字符串中数字字符的个数,首先应定义变量n,并初始化为0,然后遍历字符串,逐个判断字符是否为数字字符,判断条件为该元素的ASCII码在字符0和9的ASCII码之间,若判断条件成立,则使n的值加1,否则,继续判断下一个字符,直到字符串结束。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号