安徽师范大学2020年硕士研究生招生考试自命题试卷真题898程序设计.docx
安徽师范大学2020年硕士研究生招生考试初试试题皇穿L年硕士研究生招生考试初试试题科目代码:898科目名称:程序设计一、程序填空题(每空3分,共M分)1. 以下程序计算Fibonacci数列:1, 1, 2, 3, 5, 8, 13.的前20项。请将程序补充完整,使程 序得出正确的结果。#include int mainOint i; fl,2;fl=l;f2=l;fbr(i=0;i10;i+)(printf(%ldn%ldn,fl ,f2);fl=fl+f2; ;return 0;2. 以下swap函数将一个数组中的元素按逆序重新存放。例如原来的顺序为:8,5,7,4,1,要求改为: 1,4,7,5,8。请将程序补充完整,使程序得出正确的结果。#include .#define N 100void swap(int a,int n)int i,s;for (i=0;in/2;i+)(s=ai;.ai=an-i-l; ;)int main()( int aN,k,n;printf(请输入数组元素的个数(小于100)scanf(%d,&ii);fbr (k=0;kn;k+)scanf(%d,&ak); :printf(交换后的数组:n);for (k=0;kn;k+)printf(%d ,ak);3. 以下程序中,函数firn的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增 排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。例如,形参s所指的字符串为:wijkwasgweqaasdgbcwegdefage,执行后p所指字符数组中的字符串 应为:aacdeefgggikso请将程序补完整,徒程序得出正确的结果。#include void fun(char *s, char *p)(inti,j, n, x, t;n=0;fbr(i=O; si!=0; i+) n+;for(i=l; in-2; i=i+2) _:for(;jsj) t=j;if(t!=i)(x=si; si=st; st=x;fbr(i=l,j=O; in; i=i+2, j+) pj=si; :int main()(char s100=wijkwasgweqaasdgbcwegdefage, p50;fun(s,p);-printf(The result is : %sn,p);return 0;4. 已定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。函数fUn的功能是对形参b 所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。请将程序补充完整,使程 序的输岀结果为:No: 101 Name: LiSi -Scores: 80.00 90.00 100.00#include #include struct student (int sno;char name10;float score 3;-;void fun( struct student *b)=101::此处将学生姓名修改为“LiSi”int mainO-(struct student t=( 102,ZhangSan, 80,90,100;int i; ;printf(No: %d Name: %snScores: ,t.sno, t.name);for (i=0; i3; i+) printf(%.2f, t.scorei);printf(n); .return 0;二、程序分析题(每小题8分,共40分)1. 分析以下程序,回答相关问题。#include int main()int a,b,num 1 ,num2,temp; scanf(%d%d,&numl,&num2); if(numl0)temp=a%b; a=b; b=temp; printf(%d,%d,a,numl *num2/a);(1) 该程序的功能是什么?(2) 请列举两个有代表性的测试用例,描述该程序的执行过程。2. 分析以下程序,回答相关问题。#include -int mainQint p7=3,5,6,7,8,9,11 ),i=O,k=O; while(i7 & pi%2=l)k=k+pi;i+;printf(k=%dn,k); return 0;(1) 该程序的运行结果是什么?(2) 请简述该程序的功能。3. 分析以下程序,回答相关问题。 #include char fun(char ch)if(ch=A&ch=Z) ch=ch-A+a;return ch; - int main()char s=ABC+abc=defDEF,*p=s; while(*p)*p=fiin(*p);P+;printl(%sn,s);(1) 该程序的运行结果是什么?(2) 请简述该程序的功能。4. 分析以下程序,回答相关问题。#include #define P3+5define F(x) (P*x*x)int mainO( printf(%d,n,P); printf%dn,F(3+5); return 0;)(1) 该程序的运行结果是什么?(2) 请简述该程序的执行过程。5. 分析以下程序,回答相关问题。#include void fun(int *s,int nl,int n2)int i,j,t; i=nl,j=n2; while(ij) t=*(s+i); i+; *(s+i)=*(s+j); *(s+j)=t; j-;)int mainO(int a10=0,l,2,3,4,5,6,7,8,9,i,*p=a; fun(p,0,9);fun(p,0,3); fun(p,4,9);fbr(i=0;i10;i+)printf( %d”, * (a+i); return 0; *(1) 该程序的运行结果是什么?(2) 请简述该程序的执行过程。三、程序设计题(第15小题每题10分,第6、7小题每题15分,共80分)1. 请编写程序,计算1 | 一二的和。23502. 输入n和m,并给nxm矩阵赋值,输出矩阵中最大元素值及其所在的行号和列号。3. 输入一个四位整数,将其加密后输出。加密方法:对该整数的每一位上数字,将其加5然后除以 10取余数,作为该位上的新数字;最后将该整数的个位数字与千位数字交换,十位数字与百位数字 交换,得到新整数。4. 写一个判断素数的函数,并通过调用该函数输出100-200内的所有素数。5. 编写函数,求一个整型数组中出现x值的次数并返回。6. 输入m (2m8)和一个整数n,将整数n转换成m进制数并输出。7. 输入一个字符串(长度不超过1000),保留字符串中最前端“#”号和最后端“#”号,其余“扩号删除。 如输入:“#Ab#cl2#W2#”,则输岀:#Abcl2W2#”。要求:只允许定义一个数组。考生请注意:答案必须写在答题纸上,写在本试题纸上的无效!第3页,共4页