2003年硕士研究生招生入学考试试卷
专业名称 地图学与地理信息系统
研究方向 地理信息系统
科目代码 480 481
考试科目 程序设计 (C语言)(A)
一、 选择题(每题4分,共20分)
(1) 设有如下定义:int x=1,y=1;则语句printf(“d%/n”,(x--&++y));的输出结果是
(A)1 (B)0 (C)-1 (D)2
(2) 若已定义:int a[9],*p=a;并在以后的语句中并未改变P的值,不能表示a[1]的地址的表达式是
(A)p+1 (B)a+1 (C)a++ (D)++p
(3) 若有以下的说明和语句,则在执行for语句后,*(*(pt+1+2))表示的数组元素是
(A)t[2][0] (B)t[2][2] (C)t[1][2] (D)t[2][1]
(4) #include“studio.h”
main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,11,12};
int p=a+5,q=NULL;
*q=*(p+5);
printf(“%d%d\n”,*p,*q);
}
输出结果是
(A)运行后报错 (B)6 6 (C)6 12 (D)5 5
(5) 以下不正确的说法是
(A)实参可以是常量、变量或表达式 (B)形参应与其对应的实参类型一致
(C)实参可以为任意类型 (D)形参可以是常量、变量或表达式
二、 程序填空(每题5分,共计20分,请将答案写在答题卡的相应位置)
(1) 函数yanghui能够按以下方式构成一个杨辉三角形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
……
#define N 11
yanghui(int a[][N])
{
int i,j;
for(i=1;i<N;i++)
{a[1]=1;a=1;}
for([A];i<N;i++)
for(j=2;;j++)
a[j]=[C]+a[i-1][j];
}
(2) 条件“2<x<3或x<-10”的C语言表达式是[A]
(3) 以下程序的功能是判断输入的年份是不是闰年
main()
{
int y,f;
scanf(“%d”,&y);
if(y%400==0)f=1;
else if([A]) f=1;
else ;
if(f) printf(“%d is”,y);
else printf(“%d is not”,y);
printf(“a leap year\n”);
}
(4) 以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空。
(5) #include“studio.h”
main()
{
char b[16]={'0'、'1'、'2'、'3'、'4'、'5'、'6'、'7'、'8'、'9'、'A'、'B'、'C'、'D'、'E'、'F'};
int c[64],d,i=0,base;
long n;
printf(“enter a number:\n”);
scanf(“%1d”,&n);
printf(“enter new base:\n”);
scanf(“%d”,&base);
do{c=[A];
i++;n=n/base;
}while(n!=0);
printf(“transmite new base:\n”);
for(--i;i>=0;--i)
{
d=c;
printf(“%c”,b);
}
}
三、 程序设计题(卷面有分)
(1) 从键盘输入10个数,输出其中最大数和最小数。(本题10分)
(2) 求300以内的双素数,并输出,判断一个数m是否为素数的方法如下:让m被2到 除,当且仅当m不能被2~ 之间的任何一个数所整除,则m为素数,而当m为素数,同时m+2也为素数,则m与m+2就是双素数。(本题15分)
(3) 编写一个子程序能将主程序传过来的数组按行分别进行从小到大的排序,再编写一个二分法查找子程序,判定主函数传过来的待查数是否在已排序的数组中,若查找到则返回它在数组中的位置(可以在多个位置出现),否则返回-1。(本题15分)
(4) 利用递归方法找出从自然数1,2,……n中任取r个数的所有组合,并画出程序N-S图,例如n=5,r=3,所有组合为:(本题20分)
5 4 3 5 2 1
5 4 2 4 3 2
5 4 1 4 3 1
5 3 2 4 2 1
5 3 1 3 2 1
(5) 利用单项循环链表和顺序存储结构设计一个算法解决约瑟夫(JOSEHUS)问题。设有N个人围坐一圈,现从某个人开始报数,数到M的人出现,接着从出列的下一个人开始重新报数,数到M的人又出现,如此下去知道所有人都出列为止。试求出他们的出列次序。(本题20分)
(6) 编号为A,B,C,D的四辆列车,顺序开进一个栈式结构的站台。问开出车站的顺序有多少种可能?请具体写出来。
(7) 试将下面的树转换成二叉树,并写出二叉树前序遍历后的结点序列。(本题15分)
[ 本帖最后由 vocan 于 2006-7-5 06:03 PM 编辑 ] |