2009年山西大学硕士研究生入学考试试题 试题编号:863(高级语言程序设计)
考生注意:本试卷共七大题,满分150分。考试时间为3小时;
所有答案均写在答题纸上(注明题号),在此答题一律无效。
一、 选择题(本题共20小题,每小题2分,满分40分)
1.判断char型变量ch是否为数字字符的正确表达式为 【1】 。
A) 0<=ch<=9 B) '0'<=ch<='9' C) (0<=ch)&&(ch<=9) D) ('0'<=ch)&&(ch<='9') 2.当用const int A=9;定义后,下列叙述正确的是 【2】 。
A) A是整型常数 B) A是整型变量 C) A是字符型数 D)A是不定类型
3.定义如下变量:int a=2;int b=3;则a/b的结果为 【3】 。
A)0.66667 B) 0 C)0.7 D) 0.66666666… 4.设a=1,b=2,则(a++)+b和a+++b这两个表达式的值分别为 【4】 。
A) 3,3 B) 3,4 C) 4,3 D) 4,4
5.下列语句中符合C语言语法的赋值语句是 【5】 。
A) a=5+b+c=a+5; B) a=5+b++=a+5; C) a=5+b,b++,a+5; D)a=5=b,c=a+5; 6.执行以下程序的输出结果是 【6】 。 main() {
int a=0,b=1,c=0,d=20,x; if(a) d=d-10; else if(!b) if(!c) x=15; else x=25;
printf(“%d\\n”,d); }
A) 15 B) 25 C) 20 D) 10
7.在C语言中,while和do-while循环的主要区别是 【7】 。
A)do-while的循环体不能是复合语句 B)do-while允许从循环体外转到循环体内
高级语言程序设计试卷第1页(共6页)
2009年山西大学硕士研究生入学考试试题 试题编号:863(高级语言程序设计)
C)while的循环体至少被执行一次 D)do-while的循环体至少被执行一次 8.若有以下定义和语句: static int a[3][4];
int *p[3],**pp; /* pp表示指向整型的指针变量 */ p[0]=a[0];p[1]=a[1];p[2]=a[2]; pp=p;
则对a数组元素的正确引用形式 【8】 。
A) *(pp+1) B) p[1] C) pp+1 D) *p[1]
9.已知小写字母a的ASCII码值是97,大写字母A的ASCII码值是65,下列语句中不能输出大写字母B的是 【9】 。 A) putchar('A'+1); B) putchar('b'-32); C) putchar(98-32); D) putchar(B);
10.将小写字母n赋值给字符变量one_char,正确的操作是 【10】 。
A)one_char=’\\n’; B) one_char=”n”; C) one_char=110; D) one_char=’N’; 11.在以下运算符中,优先级最高的运算符为 【11】 。
A)?: B)++ C)&& D)+=
12.已知int x=10,y=20,z=30,则执行 if(x>y) z=x;x=y;y=z;
语句后,x、y、z的值是 【12】 。
A) x=10,y=20,z=30 B) x=20,y=30,z=30 C)x=20,y=30,z=10 D) x=20,y=30,z=20 13.以下选项中,不能正确赋值的是 【13】 。
A) char s1[10]; s1=\B) char s2[]={'C', 't', 'e', 's', 't'}; C) char s3[20]=\D) char *s4=\
14.若i为整型变量,则以下循环语句的循环次数是 【14】 . for(i=2;i= =0;) printf(“%d”,i--);
A) 无限次 B) 0次 C) 1次 D) 2次
高级语言程序设计试卷第2页(共6页)
2009年山西大学硕士研究生入学考试试题 试题编号:863(高级语言程序设计)
15.运行下面程序,若从键盘输入“3”和“5”,则程序的输出结果是 【15】 。 main() {
int x,y;
scanf(“%d,%d”,&x,&y); if(x= =y)
printf(“x= =y”); else if(x>y)
printf(“x>y”); else
printf(“x } A) 3<5 B) 5>3 C) x>y D) x 16.若fp是指向某文件的指针,文件操作结束之后,关闭文件指针应使 用下列 【16】 语句 A)fp=fclose(); B)fp=fclose; C)fclose; D)fclose(fp); 17.以下函数值的类型是 【17】 fun ( float x ) { float y; y= 3*x-4; return y; } A) int B) 不确定 C) void D) float 18.设a和b均为double型变量,且a=5.5;b=2.5,,则表达式(int)a+b/b的值是 【18】 A)6.500000; B)6; C)5.500000; D)6.000000; 19.C语言中,函数值类型的定义可以缺省,此时函数值类型的隐含类型是 【19】 A) int B) double C) void D) float 20.在调用函数时,如果实参是数组名,它与对应形参之间的数据传递方式是 【20】 。 A) 地址传递 B) 单向值传递 高级语言程序设计试卷第3页(共6页) 2009年山西大学硕士研究生入学考试试题 试题编号:863(高级语言程序设计) C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定 二、 填空题(本题共10小题,每小题3分,满分30分) 1.求1~100以内能被3整除且含数字5的数 #include { int i,a,b,c; for (i=1;i<100;i++) { a=i; b=i/10; if ( 【21】 ) printf(\,i); } 2.以下程序中,主函数调用了LineMax(),实现在N行M列的二维数组中。找出每一行上的最大值。请填空 #define N 3 #define M 4 Void LineMMax(int x[N][M]) {int I,j,p; for(i=0;i for(j=0;j if(x[i][p] main() {int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1}; 【24】 ; } 3.以下程序输出的结果是 【25】 main() {int a=5,b=4,c=3,d; d=(a>b>c); printf(“%d\\n”,d); 高级语言程序设计试卷第4页(共6页) 2009年山西大学硕士研究生入学考试试题 试题编号:863(高级语言程序设计) } 4.下列程序的输出结果是 【26】 。 #include { int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; printf(\} 5.下列程序的输出结果是 【27】 。 main() {int a=177; Printf(“%o\\n”,a); } 6.以下函数的功能是动态建立一个单向循环链表,当键入0时结束,返 回循环链表中第一个结点的指针,head为指向第一个结点的指针。请将程序段补充完整。 struct node {int data; struct node *next; }; struct node *creat() {struct node *head,*p,*q; int n=0; p=q=(struct node *)malloc(sizeof(struct node)); printf(\;scanf(\,&p->data); head=NULL; while(p->data!=0) {n=n+1; if(n==1) 【28】 ; else 【29】 ; q=p; p=(struct node*)malloc(sizeof(struct node)); printf(\;scanf(\,&p->data); 高级语言程序设计试卷第5页(共6页) 2009年山西大学硕士研究生入学考试试题 试题编号:863(高级语言程序设计) } 【30】 ; return head; } 三、 (本题共1小题,满分20分) 请编写程序实现下述功能,从键盘输入10个数,对这10个数从小到大进行排序。 四、(本题共1小题,满分25分) 请编写程序求出100-200之间所有的素数,并将求出的素数存放到文件file.dat中(素数是只能被1和它本身整除的自然数)。 五、 (本题共1小题,满分20分) 已知切比雪夫多项式f(x)的定义如下: 当n=1 f(x)=x; 当n=2 f(x)=2x2-1; 当n=3 f(x)= 4x3-3x 当n=4 f(x)= 8x4-8x3 试编写程序,从键盘输入整数n和浮点数x,并根据n和x计算多项式f(x)的值 六、 (本题共1小题,满分15分) 从键盘输入一个矩阵A(2行3列),把行和列元素互换,存到另一个矩阵B中(3行2列)。(提示:矩阵可以用二维数组表示)。例如: ?14???123????A?????????B??25? 456???36??? 高级语言程序设计试卷第6页(共6页)