山西省2018年专升本选拔考试(C程序设计数据结构)历年真题详解
- 格式:docx
- 大小:1.29 MB
- 文档页数:8
山西省2018年专升本选拔考试(C程序设计数据结构)历年真题详解说明:本试题分C程序设计和数据结构(C语言版)两部分,各占100分,满分200分,考试时间150分钟。
第一部分C程序设计一、单项选择题( 本大题共10小题,共小题3分,共计30分,在每小题的四个备选答案中,只有一个答案是正确的,请将代表正确答案的字母填入下列表格内)1.在每个数据声明和语句的最后一个必须有一个(A)A.分号B.逗号C.顿号D.句号2.合法的字符常量是(D)A.5B."D”C.’\081'D.’\t’3.已知“int b=5".则执行“int a=(b= =5);"后,a的值是(C)A5 B.0 C.1 D.24.已知" int a,b,s;",对于语句“scanf ("a=%d,b=%d,c=%d”,&a, &b, &c);” ,能够正确为变量值的输入是(B)A.1 3 2B.a=1,b=3,c=2C.a=1 b=3 c=2D.a=1,b=3,c=25.若存在语句”int a; " ,则表达式(a= =1)|| (a!=1)的值是(B)A.0B.1C.2D.不确定6.关于break相continue语有叙述正确的是(A)A. continue语句只结束本次循,但不能够结束整个循环执行B. continue语句只结束本次循环,且同时结束整个循环执行C break语句月结束本次循环,但不能够结束整个循环执行D.内循环中的break语句可以结束整个外循环的执行7.已知"int a[10]={1,2,3,4};”,则a[4]的值是(C)A.4B.3C.0D.不确定8.设有语句“double a[5],*p=a;",则与数组元素a[3]等价的是(B)A.( *p)[3] B. *(p+3) C. *p[3] D. *p+39.下列语句正确的是(D)A.char s{20};s={”C Language”}B.char s{20};s=”C Language”;C.char *s;s={”C Language”};D.char *s;s=”C Language”;10.下列叙述正确的是(A)A.一个自定义函数中可以根据不同情况设置多条return语句B.一个自定义函数中必须有一条return语句C.定义为void类型的函数中可以有带返回值的return语句D.没有return语句的自定义函数在执行结束时不能返回二、填空题(本大题共8小题,每空3分,共计24分。
请把正确评卷人 答案填写在括号内)1.为了表示一个算法,可常用自然语言、(程序流程图)、N -5合图、伪代码以及计算机语言等不同方法。
2.已知函数调用语句“myFunc(f2(1,2),(3,4,5) ,(6,max(7,8)));" ,则myFunc 函数有( 3 )个实参。
3.已知语句"int X=15;" ,则表达式X -=X+X 的值为( -15 )4.已知存在“int abc= 3;”语句,则执行完“printf("%d" ,abc --);”语句后变量abc 的值是( 2 )S.假设有字符数组定义语句“char a[ ]=" Language" ;”,数组a 的大小为( 9 )6.已知定义语句“int a=0, b=3,c;",执行语句c=++a||++b 后变量b 的值为( 3 )7.已知Y=5>3&&8<4-!0,则Y 的值为( 0)8.已知字符’A’的ASCII 码是65,执行“char c1='D';”语句和“printf( " %d\n" ,c1+2);”语句后,输出结果是( 70 )三、程序填空题(本大题共3小题,每小题8分,共计24分}1.已知函数Fun1的部分代码如下所示,其功能是求两个数的较小数,并把较小的数作为返回值,请在空格处补充程序。
double Fun1(_ double a,double b ){double min;min=a;if( min>b) min=b;( return min );}2.已知函数Fun2的部分代码如下所示,其功能是:计算如下公式前n 项的和并作为函数值返回,请在空格处补充程序。
s =1×322+3×542+5×762+⋯+(2×n−1)×(2×n+1)(2×n)2double Fun2( int n){int i;double s, t;s= 0 ;for(i=1; i<=n; it+){t=2.0*i;s=s+(2.0*i-1) *(2.0*i+1)/( t*t)}return s;}3.已知函数Fun3的部分代码如下所示,其功能是:统计指针变量a 所指的字符串中小写英文字符出现的次数,并存放在指针变量b所指的变量中。
例如,若a所指的字符串为" abe1234ABCDEF",则b所指的变量的值应为3,请在空格处补充程序。
void Fun3(char*a, int *b){int i=0,n=0;while ( a[i++]!='\0' )if(a[i]>='a'&&a[i]<= z') n++;*b=0;}四、程序设计题(本大题共2小题,共计22分)1. (8分)编写函数Fun1,其实现的功能是:判断某一年是否为闰年,如果是返回1,否则返回0。
(闰年的条件:能被4整除,但不能被100整除的年份是闰年;能被400整除的年份是闰年)(8 分)int Fun1 (int year)(2 分){int leap=0;if (year%4==0)(2 分)if (year%100!=0)leap=1;elseif (year%400==0)(2分)leap=1;return leap;(2分)}或者int Fun1(int year)(2分)int leap=0;if((year%4==0&&year%100!=0)ll (year%400==0)) (4 分)leap=l;returnleap;(2分)2. (14分) 有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁,问第4个学生岁数,他说比第3个学生大2岁,问第3个学生,又说比第2个学生大2岁,向第2个学生,说比第1个大2岁,最后问第1个学生,他说是10岁。
设计一个函数描述上述递归过程,并采用主函数调用的方式,输出第5个学生的年龄。
(14分)用一个主函数调用age函数,求得第5个学生的年龄。
整个程序如下:#include<stdio. h>(2分)int main( )(2分){int age(int n) ;(2分)printf("N0. 5, age:%d\n" age(5));(2分)return 0;(2分)}int age (int n){int c;(2分)if(n==1)(2分)c=10;elsec=age (n-1)+2;(2分)return(c);}第二部分数据结构五、单项选择题(本大题共10小题,每小题2分,共计20分)。
1.线性表若采用链式存储结构时,要求内存中可用存储单元的地址(D)A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续或不连续都可以2.判定一个顺序栈ST(最多元素为m0)为空的条件是(B)A. top!=0B. top==0C. top!= m0D. top= m0-13.深度为3的二叉树的最大结点数是(C)A.5B.6C.7D.84.前序遍历的顺序是(A)A.根结点,左子树,右子树B.左子树,根节点,右子树C.右子树,,根结点,左子树D.左子树,右子树,根结点5.一个有6个顶点的无向图的边数最多为(C)A.12B.30C.15D.206.二叉排序树中,根结点均(B)其左子树上的所有结点。
A.小于B.大于C.等于D.不确定7.归并排序的时间复杂度是(C)A.0(n)B.0(n2)C.O(nlogn)D.O(d∙n)8.评价排序算法好坏的标准主要是(A)A.执行时间B.辅助空间C.算法本身的复杂度D.执行时间和所需的辅助空间9.如果结点A有5个兄弟,而且B是A的双亲结点,.则B的度是(C)A.4B.5C.6D.710.最小生成树是指(D)A.由连通网所得到的边数最少的生成树B.由连通网所得到的顶点相对较少的生成树C.连通网的极小连通子网D.连通网中所有生成树中权值之和为最小的生成树六、填空题(本大题共8小题,每空2分,共计20分。
)1.可以从一个算法的(时间复杂度)与(空间复杂度)来评价算法的优劣。
2.给定有n个元素的向量,建立一个有序单链表的时间复杂度是(0(n2))。
3.一个栈的入栈序列1,2,3,....n,其输出序列为p1,p2...p i...p n ,若p1=n,则p为(n-i+1)。
4.一棵二叉树,其度为2的结点数为9,则该二叉树叶子结点数为_(10)。
5.一个索引顺序表由(顺序)表和(索引)表两个部分组成。
6.如果需要对线性表频繁进行插入或删除操作,则不宜采用(顺序)存储结构。
7.已知某循环队列具有100个单元,当队列满时共有(99)个元素。
8.哈希方法的核心是(哈希函数)其作用是将关键值映射到查找表中的存储位置。
七、名词解释(本大题共4小题,每小题3分,共计12分)1.栈:限定仅在表尾进行插入或删除操作的线性表。
2.链表:n个结点链组成一个链表。
3.完全二叉树:深度为k,有n个节点的二叉树,当且仅当其每个结点都占深度为k的满二叉树中编号从1至n的结点一一对应。
4.有向完全图:具有n(n-1)条弧的有向图称为有向完全图。
八、简答题(本大题共3小题,每小题5分,共计15分)1.简述顺序查找法的基本思想。
从表的一端开始,用所给定的关键字依次与顺序表中各记录的关键字逐个比较(3分),若找到相同的查找成功(1分;否则查找失败(1分)。
2.简述数据结构的定义及其常见的基本结构。
数据结构是指相互之间存在着一种或多种关系的数据元素的集合。
(1分)通常有以下四类基本结构:集合(1分);线性结构(1分);树形结构(1分)以及图状结构(1分)。
3.简述在选择排序方法时需要考虑的因素。
在选择排序方法时需要考虑的因素有如下4点:(1)待排序的记录数目的大小: (1 分)(2)记录本身数据量的大小,也就是记录中除关键字外的其他信息量的大小:(1分)(3)关键字的结构及其分布情况: (1 分)(4)对排序稳定性的要求。