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

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

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

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

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:将一副扑克牌编号为1,2,3,…,53,54,以某种特定的方式洗牌,这种方式是将这副牌分成两半,然后将它们交叉,并始终保持编号为1的牌在最上方,如第一次这样洗牌后的结果为:1,28,2,29,…,53,27,54。两次洗牌后的结果为:1,41,28,15,2,42…,53,40,27,14,54。

程序的功能是:输出经过n次这样洗牌后的结果。

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

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

试题程序:

#inclucte<stdio.h>

void fun(int a[55],int n)

{int i,k;

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

int【1】[55];

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

{for(k=1;k<=27;k++)

{b[2*k-1]=a[k];

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

b[【2】*k]=a[k+27];

}

for(k=1;k<=54;k++)

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

a[k]=【3】

}

}

main()

{int m,a[55],i;

for(i=1;i<55;i++)a[i]=i;

printf(\\

(1)b

(2)2

(3)b[k]

解析:填空1:for循环中使用了一个数组b,用来临时存放交换位置后的扑克牌,C语言中变量需要先声明后使用,所以填空(1)处需要声明一个数组b。答案为b。

填空2:第二个for循环是将数组a中前一半元素(即1-27编号的扑克牌)放入数组b的奇数位置,将数组a中的后一半元素(即28~54编号的扑克牌)放入数组b的偶数位置,实现扑克牌的交叉洗牌。所以填空(2)处是数组b的起始值为2的偶数下标2k,答案为2。

填空3:由于数组b属于函数中的临时变量,所以将数组a的元素交叉存储到数组b后,还需要将数组b的元素依次赋值给数组a,第三个for循环实现的功能是将数组b赋值给数组a,所以填空(3)处需要填入对应下标为k的数组b的元素,答案为b[k]。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。例如,n=8时,输入193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763、所得平均值为195.838745,在平均值以上的实数个数应为5。

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

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

试题程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

int fun(float x[],int n)

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

int j,c=0;float xa=0.0;

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

xa+=x[j]/n;

printf(\\

(1){int j,c=0;float xa=0.0;

(2)if(x[j]>=xa)

解析:(1)本题着重考查考生对C语言基本语法以及比较运算符的掌握情况。

(2)本题中的第一个错误:在C语言中,{}应成对出现,所以程序中的语句\\

程序设计题

3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。

例如,若输入17,5,则应输出19、23、29、31、37。

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

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

试题程序:

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

void fun(int m,int k,int xx[])

{

}

void main()

{

FILE*wf;

int m,n,zz[1000];

system(\\

void fun(int m,int k,int xx[])

{

int i,j,n;

for(i=m+1,n=0;n<k;i++)/*找大于m的素数,循环k次,即找出紧靠m的k个素数*/

{for(j=2;j<i;j++)/*判断一个数是否为素数,如果不是,跳出此循环,判断下一个数*/

if(i%j==0)break;

if(j>=i)/*如果是素数,放入数组xx中*/

xx[n++]=i;

}

}

解析:本题主要考查素数的判定方法,如果一个数不能被除了1和其自身以外的数整除,则这个数为素数。本程序使用循环语句控制需要判断的数,在循环体中判断该数是否为素数,若是则存入数组xx中。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号