- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第21套 上机考试试题
第21套 上机考试试题
1. 填空题
1.下列给定程序中,函数fun()的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
2.函数fun()的功能是:实现B=A+A′,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main()函数中输出。
例如,输入下面矩阵:
1 2 3
4 5 6
7 8 9
其转置矩阵为:
1 4 7
2 5 8
3 6 9
则程序输出:
2 6 10
6 10 14
10 14 18
2. 改错题
下列给定程序中函数fun()的功能是:将长整型数中每一位上为偶数的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如当s中的数,t中的数为6482。
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
3. 编程题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是按分数的高低排列学生的记录,低分在前。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
第21套 上机考试试题
1.填空题
1. 【答案】
(1)m+1
(2)i
(3)return(i)
【解析】
(1)根据题目的意思,这里应该是找出m后面第一个素数,所以循环的开始条件应该是m之后的第一个数,即m+1。
(2)根据题目的意思,此处是验证产生的这个i是不是素数,所以由求素数的一般思路可以知道,应该验证2到i之间的所有数字。
(3)由算法可以看出,如果满足条件,则证明该数是素数,应该把它作为子函数的返回值。
2. 【答案】
(1)void
(2)a[j][i]
(3)t
【解析】
(1)根据题目的意思,这里应该是对子函数返回值类型的声明,因为计算中并没有返回值,所以应该使用void类型的。
(2)根据题目的意思,此处是把原矩阵和其转置矩阵相加,在《线性代数》里面有矩阵转置的概念,行列数相等的二维数组的转置就是行列互换。即转置后的第i行第j列正好对应原矩阵的第j行第i列。
(3)由算法可以看出,此处是进行函数调用,因为声明中使用的是数组,所以可以直接把数组名作为参数。
2. 改错题
(1)错误:if(d%2!=0)
正确:if(d%2==0)
(2)错误:t=d*s1+t;
正确:*t=d*s1+*t;
【解析】错误1:偶数是能被2整除,而奇数是不能被2整除,题目要求找出偶数。
错误2:t为指针类型,所以进行运算时要加*号。
3. 编程题int fun (STRUC a[])
{
int i,j;
STRUC t;
for(i=1;iN;i++) /*用冒泡法进行排序,进行N-1次比较*/
for(j=0;jN-1;j++) /*在每一次比较中要进行N-1次两两比较*/
if(a[j].sa[j+1].s) /*按分数的高低排列学生的记录,低分在前*/
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
【解析】冒泡法算法思路:如果有N个数,则要进行N-1次比较,在每一次比较中要进行N-1次两两比较(这种算法较好理解但不是最精的)。所谓两两比较就是从头到尾依次将相邻两个数进行比较并将其中大的数放在前或在后(若要求从小到大排序,则大的数要放在后。反之则对调),即两两比较后这两个数要形成题中所要求的顺序。由于总是从头到尾进行比较,所以第1次比较结束后,最大(或最小)数肯定在最后,第2次比较结束后,次最大(或次最小)数肯定在倒数的第2个数,依次类推,所以进行第一次比较时必须比较到最后一个数,而进行第2次比较时只要比较到倒数的第2个数即可,所以进行第i次比较时只需比较N-i次即可(这种算法较难理解,但它是最好的)。
文档评论(0)