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

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

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

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

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.13。在此程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

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

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

试题程序:

#include<stdlib.h>

#include<stdio.h>

#define N20

void fun(int*a)

{int i,x,n=0;

x=rand()%20;

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

while(n<【1】)

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

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

if(x==a[i])

【2】

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

if(i==【3】)

{a[n]=x;n++;}

x=rand()%20;

}

}

main()

{int x[N]={0),i;

fun(x);

printf(\\

(1)N或20

(2)beak

(3)n

解析:填空1:变量n用于存储数组的下标,要通过while语句对数组进行赋值,数组的容量为20,因此循环条件应为n<20。

填空2:通过一个for循环判断x是否与数组中已存的元素重复,若重复则跳出for循环结束。

填空3:若for循环是由break语句结束的,则x与数组中的元素重复,此时i必然小于n;若for循环是因为循环变量i递增到某值,而不再满足循环条件结束的,说明x的值与数组中的元素不重复,则此时i的值等于n。

程序修改题

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。在此程序中,编写程序,实现矩阵(3行、3列)的转置(即行列互换)。

例如,若输入下面的矩阵:

100 200 300

400 500 600

700 800 900

则程序输出:

100 400 700

200 500 800

300 600 900

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

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

试题程序:

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

void fun(int array[3][3])

{

}

void main()

{

FILE*Wf;

int i,j;

int array[3][3]={{100,200,300},{400,500,600},{700,800,900}};

system(\\

void fun(int array[3][3])

{

int i,j,t;

for(i=0;i<3;i++)/*将右上三角和左下三角对换,实现行列互换*/

for(j=i+1;j<3;j++)

{t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;

}

}

解析:要实现矩阵转置,即将右上角数组元素和左下角数组元素对换,本题通过数组元素交换方法,完成矩阵转置操作。

因为对矩阵转置后仍然存回其本身,所以只能循环矩阵中的一个角(本程序是右上半三角)。控制右上半三角的方法是在内层循环中循环变量j从i+1或i开始。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号