1、1江 西 财 经 大 学江 西 财 经 大 学2007 年攻读硕士学位研究生入学考试试题2007 年攻读硕士学位研究生入学考试试题(B 卷)(B 卷)专 业:管理科学与工程、计算机应用技术、计算机软件与理论、数量经济学考试科目:程序设计语言重要提示:考生必须将所有答案写在答题纸上,本试题上的任何标记均不作判题依据一、根据要求写出 C 语言表达式(每小题 5 分,共 20 分)、根据要求写出 C 语言表达式(每小题 5 分,共 20 分)1某校研究生入学成绩要求如下:总分大于等于 260 分,政治50,数学60,英语48,专业70 分(专业分数由初试和复试两部份组成,各占 70%和 30%)。甲
2、考生入学考试的政治、数学、英语、专业初试、专业复试成绩分别为:a1、a2、a3、a4 和 a5。试写出甲考生满足入学成绩要求的 C 语言表达式。2x 为 int 型,x 为奇数并且能被 7 整除,写出满足条件的 C 语言表达式。3写出图中坐标系上阴影部分的点(x,y)所满足的 C 语言表达式。4对于一元二次方程 ax2+bx+c=0,如有实根,则计算它的两个实根 x1 和 x2;如有复根,则计算两个复根的实部 m 和虚部 n。请用条件运算符写出计算 x1 和 x2 或 m 和 n 的 C 语言表达式。二、程序阅读题(每小题 6 分,共 24 分)二、程序阅读题(每小题 6 分,共 24 分)1
3、#include stdio.h#define N 10void main()void main()int a10=34,23,56,76,34,6,12,5,7,8,b10;int i;xyocbade2for(i=1;i10;i+)bi=ai/ai-1;for(i=1;i*q)r=q;if(r!=p)ch=*r;*r=*p;*p=ch;for(p=string;*p;p+)for(q=p;*p=*q;q+);strcpy(p+1,q);printf(result:%sn,string);运行程序,并在出现提示信息“请输入一个字符串:”后输入字符串 asdfgdklaj。请写出程序运行的输出
4、结果。3#include stdio.hvoid trans(int n)void trans(int n)int i;if(i=n/10)!=0)trans(i);putchar(n%10)+0);putchar(,);void main()void main()int num;scanf(%d,&num);3if(num0)putchar(-);num=-num;trans(num);运行程序,并输入 789。请写出运行程序的输出结果。4#include stdio.hvoid main()void main()int i,j,k;for(i=0;i=3;i+)for(j=0;j=2-i;
5、j+)printf(#);for(k=0;k=i;k+)printf(*);printf(n);for(i=0;i=2;i+)for(j=0;j=i;j+)printf(#);for(k=0;k3-i;k+)printf(*);printf(n);请写出运行程序的输出结果。三、程序填空题(每空 4 分,共 28 分)三、程序填空题(每空 4 分,共 28 分)1下面的程序是不使用库函数而采用迭代式1111nnxax来计算a的近似值。该程序是不完整的,请在下划线空白处将其补充完整,不允许增删语句。#include#include#define PRECISION 0.000001 void ma
6、in()void main()float x=0.1,temp;int a,count=0;printf(Please input an integer:n);scanf(%d,&a);do 4 temp=x;x=;count+;while(fabs(x-temp)=PRECISION);printf(tIts square root appr to%f after%d iterationsn,x,count);2下面的程序的功能是,将一个整数数组中存放的数据完全颠倒顺序。该程序是不完整的,请在下划线空白处将其补充完整,不允许增删语句。#include void main()void main
7、()int data7=1,2,3,4,5,6,7,temp,k,*ph,*pt;ph=data;pt=data+6;while(ptph)temp=*ph;*pt=temp;ph+;pt-;for(k=0;k7;k+)printf(%d,*();printf(n);3下面的程序是用双向冒泡法对键盘输入的 10 个整数进行排序(由小到大),在某些输入情况下,如果未排序部分的扫描过程没有发生交换,表示这一部分已经排好了序,相同和相反方向的扫描都不再需要考虑这一部分。该程序是不完整的,请在下划线空白处将其补充完整,不允许增删语句。#define N 10 void main()void main(
8、)int aN,i,k,temp,up,low;printf(nPlease input%d data:n,N);for(i=0;ilow)k=low;for(i=low;iai+1)temp=ai;ai=ai+1;ai+1=temp;k=i;5 up=k;for(i=up;)if()temp=ai;ai=ai-1;ai-1=temp;k=i;low=k;printf(nThe sorted data is:);for(i=0;iN;i+)printf(i%10=0)?n%7d:%7d,ai);printf(n);4下面程序的功能是,从键盘输入一个十六进制数,转换后输出相应的十进制值。要求允许
9、输入的 16 进制数包含小数部分和符号,并且可以使用大写或小写字母,转换时忽略前导空格。该程序是不完整的,请在下划线空白处将其补充完整,不允许增删语句。#include void main()void main()char h36;double d=0.0,p=1.0;int i=0,k=0,n=1;printf(nPlease input hexadecimal data:n);scanf(%s,h);strupr(h);while(hi=)i+;if(hi=-)n=-1;i+;if(hi=+)i+;while(hi!=0)if(hi=.)k=1;i+;continue;if(hi=0&hi
10、=9)hi=hi-48;else if()hi=hi-55;else printf(nError!n);break;if(k=0)d=d*16+hi;else p=p/16.0;d=;i+;d=d*n;6 printf(Decimal data is:%lfn,d);四、程序设计题(12 小题每题 15 分,35 小题每题 16 分,共 78 分)四、程序设计题(12 小题每题 15 分,35 小题每题 16 分,共 78 分)(为便于阅读,请在程序中加必要的注释。)1编写实现求 10000 以内的自然数中的完数的程序,并显示结果(所谓完数,指它恰好等于除它本身之外的因子之和,如:6=1+2+
11、3,28=1+2+4+7+14)。2已知一个日期(包括年、月、日),编写一程序,求该日是该年的第几天。3编写一程序,实现字符串的匹配搜索。先根据用户的输入建立一个字符串,再提示用户输入另一个字符串,在原串中搜索,是否存在与此相同的子串。若存在,给出此子串的起始位置,否则,给出没有找到的信息。4编写一程序,使键盘输入的一行英文句子按如下方式改造后输出:(1)单词之间只留一个空格作间隔;(2)句子结束后必须紧跟句号(.);(3)句子的首字母大写,其余字母均小写,首字母前不保留空格。5二进制文件 student 中存放了若干名学生的学号(长整型)、姓名(长度为 15 字节的字符串)及四门课程的考试成绩(均为整型),试编写一个函数输出这些学生的成绩表。