⼭西省2018年专升本选拔考试(C程序设计数据结构)历年真题详解
⼭西省2018年专升本选拔考试(C程序设计数据结构)历年真题详解
说明:本试题分C程序设计和数据结构(C语⾔版)两部分,各占100分,满分200分,考试时间150分钟。
第⼀部分C程序设计
⼀、单项选择题( 本⼤题共10⼩题,共⼩题3分,共计30分,在每⼩题的四个备选答案中,只有⼀个答案是正确的,请将代表正确答案的字母填⼊下列表格内)
1.在每个数据声明和语句的最后⼀个必须有⼀个(A)
A.分号
B.逗号
C.顿号
D.句号
2.合法的字符常量是(D)
A.5
B."D”
C.’\081'
D.’\t’
3.已知“int b=5".则执⾏“int a=(b= =5);"后,a的值是(C)
A5 B.0 C.1 D.2
4.已知" int a,b,s;",对于语句“scanf ("a=%d,b=%d,c=%d”,&a, &b, &c);” ,能够正确为变量值的输⼊是(B)
A.1 3 2
B.a=1,b=3,c=2
C.a=1 b=3 c=2
D.a=1,b=3,c=2
5.若存在语句”int a; " ,则表达式(a= =1)|| (a!=1)的值是(B)
A.0
B.1
C.2
D.不确定
6.关于break相continue语有叙述正确的是(A)
A. continue语句只结束本次循,但不能够结束整个循环执⾏
B. continue语句只结束本次循环,且同时结束整个循环执⾏
C break语句⽉结束本次循环,但不能够结束整个循环执⾏
D.内循环中的break语句可以结束整个外循环的执⾏
7.已知"int a[10]={1,2,3,4};”,则a[4]的值是(C)
A.4
B.3
C.0
D.不确定
8.设有语句“double a[5],*p=a;",则与数组元素a[3]等价的是(B)A.( *p)[3] B. *(p+3) C. *p[3] D. *p+3
9.下列语句正确的是(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 )
c程序设计pdf下载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×5
42+5×762+?+(2×n?1)×(2×n+1)(2×n)2
double 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;
else
if (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(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;
else
c=age (n-1)+2;(2分)
return(c);
}
第⼆部分数据结构
五、单项选择题(本⼤题共10⼩题,每⼩题2分,共计20分)。
1.线性表若采⽤链式存储结构时,要求内存中可⽤存储单元的地址(D)
A.必须是连续的
B.部分地址必须是连续的
C.⼀定是不连续的
D.连续或不连续都可以
2.判定⼀个顺序栈ST(最多元素为m0)为空的条件是(B)
A. top!=0
B. top==0
C. top!= m0
D. top= m0-1
3.深度为3的⼆叉树的最⼤结点数是(C)
A.5
B.6
C.7
D.8
4.前序遍历的顺序是(A)
A.根结点,左⼦树,右⼦树
B.左⼦树,根节点,右⼦树
C.右⼦树,,根结点,左⼦树
D.左⼦树,右⼦树,根结点
5.⼀个有6个顶点的⽆向图的边数最多为(C)
A.12
B.30
C.15
D.20
6.⼆叉排序树中,根结点均(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)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。