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

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

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

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

程序填空题

1.给定程序中,函数fun的功能是建立一个N×N的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,……依此类推。例如,若N=5,生成的矩阵为:

1 1 1 1 1

1 2 2 2 1

1 2 3 2 1

1 2 2 2 1

1 1 1 1 1

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

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

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

试题程序:

1 #include<stdio.h>

2 #defitie N 7

3 /*********found*********/

4 void fun(int(*a)【1】)

5 { int i,j,k,m;

6 if(N%2==0)m=N/2;

7 else m=N/2+1;

8 for(i=0;i<m;i++){

9 /*********found*********/

10 for(j=【2】;j<N—i;j++)

11 a[i][j]=a[N—i一1][j]=i+1;

12 for(k=i+1;k<N—i;k++)

13 /*********found*********/

14 a[k][i]=a[k][N—i一1]=【3】

15 }

16 }

17 main()

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

19 fun(x);

20 printf(\\

(1)[N]

(2)i

(3)i+1

解析:填空1:本题考查了形参的确定。参数传递时将实参的值赋给形参,实参和形参是一一对应的,因此该空应该填写[N]。

填空2:第二重for循环中a[i][j]和a[N—i—1][j]表示第一行和最后一行数组a[N][N]的值,因而此空应该填写i。

填空3:第三重for循环代表的是a[N][N]中每一列的值,因此此空应该填写i+1。

程序修改题

2.假定整数数列中的数不重复,并存放在数组中。下列给定程序中函数fun的功能是:删除数列中值为x的元素,变量n中存放数列中元素的个数。

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

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

试题程序:

#include<stdio.h>

#define N 2 0

fun(int*a,int n,int x)

{

int p=0,i;

a[n]=x;

while(x!=a[P])

P=P+1;

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

if(P==n)

return-1;

else

{

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

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

a[i+1]=a[i];

return n-1;

}

}

void main()

{

int w[N]={-3,0,1,5,7,99,10,15,30,90),x,n,i ;

n=10;

printf(\\

(1)if(p==n)return—1;

(2)a[i]=a[i+1];

解析:(1)需要确定if条件语句的条件表达式,发现变量p大写,C语言中变量是区别大小写的。

(2)删除数列中的元素,删除后,后面的元素依次前移一个位置,因此此处应为a[i]=a[i+1];

程序设计题

3.编写程序,实现矩阵(3行、3列)的转置(即行列互换)。

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

100 200 300

400 500 600

700 800 900

则程序输出:

100 400 700

200 500 800

300 600 900

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

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

试题程序:

1 #include<stdio.h>

2 #include<conio.h>

3 #include<stdlib.h>

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

5 {

6

7 }

8 void main()

9 {

10 FILE,lc Wf;

11 int i,j;

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

13 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[i][j]=array[i][j];

array[j][i]=t;

}

}

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

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

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号