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

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

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

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

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中,再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中,依此类推。

例如,若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8,7,按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a所指数组中数据的个数。

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

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

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

试题程序:

#include<stdio.h>

#define N9

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

void fun(int【1】,int n)

{int i,j,max,min,px,pn,t;

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

for(i=0;i<n-1;i+=【2】)

{max=min=a[i];

px=pn=i;

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

for(j=【3】;j<n;j++)

{if(max<a[j])

{max=a[j];px=j;}

if(min>a[j])

{min=a[j];pn=j;}

}

if(px!=i)

{t=a[i];a[i]=max;

a[px]=t;

if(pn==i)pn=px;

}

if(pn!=i+1)

{t=a[i+1];a[i+1]=min;

a[pn]=t;}

}

}

main()

{int b[N]={1,4,2,3,9,6,5,8,7),i;

printf(\\

(1)a[]

(2)2

(3)i+1

解析:填空1:由main中的函数调用语句确定函数定义的形式参数。

填空2:for循环语句中,循环变量增值为2。

填空3:确定for语句循环变量的初值。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,fun函数的功能是:在任意给定的N个正整数中,从左到右依次逐个取三个数作为一组,按值大小找出该组数的中值,用该中值替换与该组数对应的原三个数中的中间位置的数。处理后原数列中首尾2个数不变。处理后数列在主函数中输出。例如,有10个正整数如下:

初始数列为:6 5 7 23 18 5 8 21 45 38

第1组数为:6 5 7中值为:6替换后的数列为:6 6 723 18 5 8 21 45 38

第2组数为:5 7 23中值为:7替换后的数列为:66 7 2318 5 8 21 45 38

第3组数为:7 23 18中值为:18替换后的数列为:6 67 18 185 8 21 45 38

第4组数为:23 18 5中值为:18替换后的数列为:6 6 718 18 58 21 45 38

第5组数为:18 5 8中值为:8替换后的数列为:6 6 718 18 88 21 45 38

第6组数为:5 8 21中值为:8替换后的数列为:6 6 7 18 188 8 2145 38

第7组数为:8 21 45中值为:21替换后的数列为:6 6 7 18 18 88 21 4538

第8组数为:21 45 38中值为:38替换后的数列为:6 6 7 18 18 8 821 38 38

最终结果为:6 6 7 18 18 8 8 21 38 38

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

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

试题程序:

#include<stdio.h>

#define N10

int findmid(int a,int b,int c)

{int t;

t=(a>b)?(b>c?b:(a>c?c:a)):((a>c)?a:((b>c)?c:b));

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

return b;

}

void fun(int x[])

{int i,a,b,c,t[N];

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

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

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

{a=t[i];b=t[i+1];c=t[i+2];

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

t[i+1]=findmid(a,b,c);

}

}

main()

{int i,x[N]={6,5,7,23,18,5,8,21,45,38};

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

printf(\\

(1)return t;

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

(3)x[i+1]=findmid(a,b,c);

解析:(1)函数findmid的功能是找到a、b、c三个数中的中间数,并存放在变量t中,因此应返回t。

(2)语法错误,句末缺少分号。

(3)本程序是对数组x进行操作,数组t只是用来暂时存放数组x中的元素,因此此处应为x[i+1]=findmid(a,b,c)。

程序设计题

3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,其功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。

例如,若字符串数组中的M个字符串为{“AAAA”,“BBBBBBB”,“CC”},则合并后的字符串内容应该是“AAAABBBBBBBCC”。

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

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

试题程序:

#include<stdio.h>

#include<conio.h>

#define M3

#define N20

void fun(char a[M][N],char*b)

{

}

void main()

{

char w[M][N]={\\

void fun(char a[M][N],char*b)

{

int i,j,k=0;

for(i=0;i<M;i++)/*将字符串数组中的M个字符串,按顺序存入一个新的字符串*/

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号