计算机二级试题Word下载.docx
- 文档编号:20318875
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:44
- 大小:46.58KB
计算机二级试题Word下载.docx
《计算机二级试题Word下载.docx》由会员分享,可在线阅读,更多相关《计算机二级试题Word下载.docx(44页珍藏版)》请在冰豆网上搜索。
答案:
【1】score[i]【2】below【3】below[i]
【真题2】给定程序modi.c中,函数fun的功能是:
计算输出high以内最大的
10个素数之和。
high由主函数传给fun函数。
若high的值为:
100,则函数的值为:
732。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,
conio.h>
math.h>
int
fun(inthigh)
{intsum=0,n=0,j,yes;
/************found************/
while((high>
=2)&
&
(n<
10)
{yes=1;
for(j=2;
j<
=high/2;
j++)
if(high%j==0){yes=0;
break}
if(yes){sum+=high;
n++;
}
high--;
returnsum;
main()
{clrscr();
printf("
%d\n"
fun(100));
本题的考核点是C语言中一些规定的应用。
本题中的第一处错误是:
在C语言中,"
{"
和"
}"
应成对出现,所以程序中的语
句"
while((high>
=2)&
(n<
10)"
应改为"
10))"
或相同作用的语句。
本题中的第二处错误是:
C语言中,"
;
"
是语句的一部分,是语句结束的标志,
不可缺少,所以,"
if(high%j==0){yes=0;
break}"
if
(high%j==0){yes=0;
break;
【真题3】请编写函数fun,函数的功能是:
实现B=A+A'
,即把矩阵A加上A的
转置,存放在矩阵B中。
计算结果在main函数中输出。
例如,输入下面的矩阵:
其转置矩阵为:
|123||147|
|456||258|
|789||369|
程序输出:
|2610|
|61014|
|101418|
部分源程序存在文件prog.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编
写的若干语句。
voidfun(inta[3][3],int
b[3][3])
{……}
main()/*主程序*/
{inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3];
inti,j;
clrscr();
fun(a,t);
3;
i++){
for(j=0;
j<
j++)
%7d"
t[i][j]);
\n"
);
本题的考核点是矩阵A加上A的转置算法。
提示思路:
A的转置即指原先在i行j列的元素现放置在j行i列上,通过一个
两重循环即可求得矩阵与其转置的和。
voidfun(inta[3][3],intb[3][3])
{inti,j;
for(i=0;
i<
3;
i++)
for(j=0;
j<
j++)
b[i][j]=a[i][j]+a[j][i];
/*按从行到列的顺序,求得矩阵与其转置的和*/
【真题1】下列给定程序中,函数fun()的功能是:
给定n个实数,输出平均值,
并统计平均值以上(含平均值)的实数个数。
例如,n=8时,输入193.199,
195.673,195.757,196.051,196.092,196.596,196.579,196.763,
所得平均值为195.838745,在平均值以上的实数个数应为5。
试题程序:
intfun(floatx[],intn)
intj,c=0;
float__1__;
{for(j=0;
n;
__2__;
ave=%f\n"
xa);
if(__3__)
c++;
returnc;
{float
x[100]={193.199,195.673,195.757,196.051,196.092,196.596,196.579,
196.763};
clrscr();
fun(x,8));
填空1:
这是一道语法题,这里对某个实型变量进行声明,在函数中找
一下就会发现xa就是这个变量,但是还要注意一下,xa是一个累加变量,其
初值应该设为0.0。
填空2:
函数一共有两个循环体,可以很容易地看出第二个循环是计算有多少个
大于平均分的人数,这里的作用也自然就是求平均值,因为循环就这一条语
句,其后没有对累加值求均值的语句,所以在这里要对累加值一并进行除n运
算。
填空3:
这里要将大于平均值的数字个数计算出来,利用循环和条件选择语句,
对x数组进行遍历,若某个值大于等于平均成绩,则将该元素累加计入c中。
【1】xa=0.0【2】xa+=x[j]/n【3】x[j]>
=xa
找出一个大于给定整数m且
紧随m的素数,并作为函数值返回。
intfun(intm)
{inti,k;
for(i=m+1;
i++){
for(k=2;
k<
i;
k++)
if(i%k!
=0)
if(k<
i)
return(i);
{intn;
clrscr();
\nPleaseentern:
);
scanf("
%d"
&
n);
fun(n));
首先,我们必须先读懂题中程序的大致意思,这是发现并改正程序中错
误的重要前提。
程序中的重要思想如下:
1、首先,要了解素数的意思,素数是指只能被1和它自身整除的数;
2、题目中要求找出一个大于给定整数m且紧随m的素数。
本题中的第一个错误:
在函数fun()的嵌套循环的循环体中,语句"
if(i%k!
=
0)break;
是不正确的,结合程序上下文,程序是为了判断当前离m最近的
整数是否可以为素数,如果它可以整除除了1和它自身以外其他任意一个整
数,就说明它不是素数,所以应当更改为"
if(i%k==0)break;
;
本题中的第二个错误:
函数fun()中的第二个判断语句"
i)"
是不正确的,
应当更改为"
if(i<
=k)"
。
【真题3】请编写一个函数fun,它的功能是:
求出一个M×
N二维数组每行元素的
和数,并依次放入一个一维数组中传回主函数。
例如,若有以下二维数组:
61021016
17151586
418111912
012137
则输出:
44616423
部分源程序存在文件prog.c中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编
#defineM4
#defineN5
fun(inta[][N],intb[])
main()
{intx[M][N],y[M],i,j;
The%dx%dArray:
M,N);
for(i=0;
M;
i++)
{for(j=0;
N;
j++){x[i][j]=rand()%20;
printf("
%4d"
x[i][j]);
fun(x,y);
Thesumofeachline:
i<
M;
y[i]);
本题的考核点是数组和循环语句的嵌套。
通过外循环控制数组的行下标,再使用内循环依次对行数组中的所
有元素求和,内循环结束后,将行元素的和存入另外一个数组中。
{inti,j,sum=0,n=0;
i++){/*通过外循环控制数组的行下标*/
for(j=0;
N;
j++)/*使用内循环依次对行数组中的所有元素求和*/
sum+=a[i][j];
b[n++]=sum;
/*将行元素的和存入数组b中*/
sum=0;
【真题1】给定程序中,函数fun()的功能是:
使数组中的元素的值增加10倍。
#include<
intm[10];
__1__fun(void)
{
intj;
Insubfuncaftercalling\n"
2__;
m[j]=3__;
%3d"
m[j]);
{inti;
Inmainbeforecalling\n"
10;
m[i]=i;
m[i]);
fun();
\nInmainaftercalling\n"
getch();
通过对C语言的学习我们知道这里要填一个函数类型,可以看
到这个函数没有返回语句,所以应该是void型的,要注意的是void虽然是空
类型,但必须写,因为不写时默认是整型。
这里问的是结束判断语句,函数的作用是将数组中每一个数乘以10,
可见这里应填j<
10。
这个函数很简单,循环的作用就是依次处理每一个数据,这里要完成函
数对数组的操作。
【1】void【2】j<
10【3】m[j]*10
【真题2】给定程序modi.c的功能是:
读入一个整数k(2≤k≤10000),打印它的
所有质因子(即所有为素数的因子)。
例如,若输入整数:
2310,则应输出:
2、
3、5、7、11。
请改正程序中的语法错误,使程序能得出正确的结果。
#include"
conio.h"
stdio.h"
Isprime(intn);
{inti,m;
m=1;
for(i=2;
if!
(n%i)
{m=0;
return(m);
{intj,k;
\nPleaseenteranintegernumberbetween2and
10000:
k);
\n\nTheprimefactor(s)of%dis(are):
k);
for(j=2;
=k;
if((!
(k%j))&
(Isprime(j)))printf("
\n%4d"
j);
本题的考核点是C语言的一些基本用法以及if语句的使用。
本题中Isprime(intn);
是函数的定义,定义语句不应用分号结束。
所以,
Isprime(intn)"
根据if语句的语法规则,if后的表达式必须由括号括起来。
由题意看出,n整
除i时,也就是说"
n%i==0"
时,循环才继续进行。
因此,"
(n%i)"
应改
为"
if(!
(n%i))"
【真题3】程序定义了N×
N的二维数组,并在主函数中自动赋值。
请编写函数
fun(inta[][N]),函数的功能是:
使数组中第一行元素中的值与倒数第一行元素中
的值对调、第二行元素中的值与倒数第二行元素中的值对调、……、其他依次类推。
例如:
a数组中的值为
|0111279|
|19745|
|20131831|
a=|145682|
|1591741|
|145682|
则返回主程序后a数组中的值应为|20131831|
stdlib.h"
intfun(inta[][N])
{inta[N][N],i,j;
*****Thearray*****\n"
for(i=0;
i<
{for(j=0;
{a[i][j]=rand()%30;
printf("
a[i][j]);
fun(a);
printf("
*****THERESULT*****\n"
j++)printf("
本题的考核点是C语言中循环嵌套语句的使用。
对于本题,我们给出的参考函数采取的算法是:
使用嵌套循环,外
循环是行循环,内循环是列循环。
将第一行各元素的值与倒数第一行各元素的
值对调,第二行元素中的值与倒数第二行元素中的值对调,……,因为一次互换
两个元素,所以for循环语句执行N/2次(N是数组行的长度)就可以把全部
元素值互换一遍。
{inti,j,k;
for(i=0;
N/2;
{/*将a[i][j]与a[N-i-1][j]中的元素进行对换*/
k=a[i][j];
a[i][j]=a[N-i-1][j];
a[N-i-1][j]=k;
}/*按先行后列的顺序,对数组a中的元素以中间行为对称线进行倒置*/
【真题1】给定程序的功能是把a数组中的n个数,和b数组中逆序的n个数一一
对应相乘、求平方,结果存在c数组中。
当a数组中的值是:
1、3、5、7、8,b数组中的值是:
2、3、4、5、8
调用该函数后,c中存放的数据是:
64、225、400、441、256
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确结果。
voidfun(inta[],intb[],intc[],intn)
{inti;
___1___=(a[i]*b[n-1-i])*(a[i]*b[n-1-i]);
{inti,a[100]={1,3,5,7,8},b[100]={2,3,4,5,8},c[100];
fun(___2___,5);
Theresultis:
5;
___3___);
本题的考核点是for循环的使用。
本题通过for循环,使用公式c[i]=(a[i]*b[n-1-i])*(a[i]*
b[n-1-i]),求得数组a与数组b逆序之积的平方,将计算结果存在c数组中。
【1】c[i]【2】a,b,c【3】c[i]
【真题2】给定程序modi.c是:
计算S=f(f(-1.0)+f(5.0))的值。
当程序正确
时,结果为:
2488.000000。
f(x)函数定义如下:
┌2x^2+3x+4(x<
=2)
设f(x)=│
└-2x^2+3x-4(x>
2)
double
f(doublex)
{doubley;
If(x<
=2.0)
y=2.0*x*x+3.0*x+4.0;
else
y=-2.0*x*x+3.0*x-4.0;
returny
{clrscr();
%f\n"
f(f(-1.0)+f(5.0)));
本题着重考察考生对C语言中一些简单算法的掌握情况。
在C语言中,命令语句应为小写字母,所以程序中语句
=2.0)"
if(x<
在C语言中,应以分号作为语句的分隔符,所以程序中
语句"
returny"
returny;
【真题3】请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值
返回。
二维数组中的值在主函数中赋予。
二维数组中的值为
13579
29994
69998
13570
则函数值为61。
intfun(inta[M][N])
{intaa[M][N]={{1,3,5,7,9},
{2,9,9,9,4},
{6,9,9,9,8},
{1,3,5,7,0}};
inti,j,y;
Theoriginaldatais:
{for(j=0;
j++)printf("
%6d"
aa[i][j]);
y=fun(aa);
\nThesum:
%d\n"
y);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 试题