09年专升本计科类专业文档格式.docx

上传人:b****5 文档编号:21645272 上传时间:2023-01-31 格式:DOCX 页数:25 大小:182.48KB
下载 相关 举报
09年专升本计科类专业文档格式.docx_第1页
第1页 / 共25页
09年专升本计科类专业文档格式.docx_第2页
第2页 / 共25页
09年专升本计科类专业文档格式.docx_第3页
第3页 / 共25页
09年专升本计科类专业文档格式.docx_第4页
第4页 / 共25页
09年专升本计科类专业文档格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

09年专升本计科类专业文档格式.docx

《09年专升本计科类专业文档格式.docx》由会员分享,可在线阅读,更多相关《09年专升本计科类专业文档格式.docx(25页珍藏版)》请在冰豆网上搜索。

09年专升本计科类专业文档格式.docx

printf(“1”);

}

当运行时输入“B回车”,则输出结果是。

B.43

C.432

D.4321

7.已知字符’a’的ASCII码值为97,‘A’的ASCII码值为65,则如下程序段的运行结果是。

{charC=‘d’;

inti=C-32:

printf(“%c,%d”,i,i);

A.d,68

B.D,68

C.d,100

D.D,100

8.如下程序段的执行结果是

{intX=1,Y=100;

while(y>

0)

{X*=2;

Y/=3;

printf(“%d,%d”,X,Y);

A.8,0

B.16.0

C.32,0

D.64,0

9.如下选项中正确的数组定义是

A.#definem10;

staticinta[m]={3,4,5,6};

B.staticinta[2]={3,4,5,6};

C.staticinta[10]={3,4,5,6);

D.intm=4;

staticinta[m]={3,4,5,6};

10.执行程序段:

charstr[12];

scanf(“%s”,str);

如果输入如下字符串(其中口表示空格):

What’s口your口name?

则str的值是

A.What’s

B.What’s口

C.What’s口you

D.What’s口your口name?

11.如下程序段的运行结果是。

{inti=5,sum=100;

do(sum=sum+(--i);

)while(i>

=0);

printf(“%d”.sum);

A.100

B.10

C.105

D.110

12.如下程序段的运行结果是。

{inti;

for(i=1;

i<

=10;

i++)

{if(i%3==0)continue;

printf(“%d,”,i);

}}

A.1,2,4,5,7,8,10,

B.1,2,3,4,5,6,7,8,9,10,

C.3,6,9

D.1,2,4,5,6,7,8,9,10,

13.若有说明:

inta[5][6];

则数组a的正确引用是。

A.a[5][4]

B.a[3,4]

C.a(3)(4)

D.a[3][4]

14.在C语言中,凡不加类型说明的函数,自动。

A.按无类型void处理

B.按整型int处理

C.按字符类型char处理

D.按浮点型float处理

15.如下程序段的输出结果是。

voidkk(inta,intb)

{a=a*b;

printf(“%d,%d,”,a,b);

{inta=5,b=6;

kk(a,++b);

printf(“%d,%d”,a,b);

A.30,6,30,6

B.35,6,35,6

C.30,7,5,7

D.35,7,5,7

16.如下程序段的输出结果是

{staticinta[6]={3,6,9,12,15,18);

Int*c=&a[2];

printf(“%d,%d”,*(c+3),*c+3);

}

A.18,12

B.15,18

C.18,15

D.15.12

17.如下程序段中语法正确的是。

A.int*p;

p=1000;

B.inta,*p;

p=&

a;

C.inta,*p;

*p=&

D.inta:

1000,*p;

p=a;

18.如下程序段的输出结果是。

intmm(int*a,intb)

{*a=*a+5;

b*=3;

return*a+b;

{inta=3,b=6;

intc=mm(&

a,b);

printf(“%d,%d,%d”,a,b,c);

A.3,6,9

B.8,6,26

C.8,18,2

D.3,18,11

19.如下程序段的输出结果是。

{staticinta[2][3]={3,6,9,12,15,18);

Int*c:

a[1];

printf(“%d,%d”,*(c+1),*c+1);

A.15,13

B.6,7

C.9,10

D.12,13

20.已有函数定义如下。

voidaa(inta,charb,floatc){c=(float)(a+b);

则下列程序段能够进行函数正确调用的是

A.main(){aa(5.0,‘a’,5);

B.main(){int*a;

scanf(“%d”,&

a);

aa(a,‘a’,9);

C.main(){inta=1;

charb=‘b’;

floatc=1.0;

aa(a,b,c);

D.main(){int*a;

scarlf(“%d”,a);

aa(a,‘a’,3.0);

21.有如下定义:

structstudent

{charnmne[10];

floatscore;

intage;

}stul,*p;

则在C语言程序中给变量stul赋值正确的是。

A.stul={“ddd”,66.0,55);

B.strcpy(stul.name,“ddd”);

stul.Score=66.0;

stul.age=15;

C.P=&

stul;

p->

name=‘ddd’;

score=66.0;

age=15;

D.P=&

p.name=“ddd”;

p.score=66.0;

p.age=15;

22.下面程序段中语法正确的是。

A.intmm(intx,inty){intx,y;

returnx+y;

B.charstr[10];

scanf(“%s”,&

str);

C.inti,a[10];

for(i=0;

i++)scanf(“%d”,&a[i]);

D.inti,a[10],*p;

for(i=0,p=a;

p<

a+10;

p++)scan~“%d”,p);

23.已知inta;

并且a已经被正确赋值,则下列逻辑表达式中与(!

a)等价的是

A.(a==0)

B.(a>

C.!

(a==1)

D.(a==1)

24.若变量已经正确定义,要求程序段完成1到100的累加,下列选项中不能完成此功能的程序段是。

A.for(i=1,sum=0;

=100;

i++)sum=sum+i;

B.i=1;

suln=0;

while(i++<

=100)sum=sum+i;

C.for(i=1;

i++){sum=0;

sum=sum+i}

D.i=1;

sum=0;

do{sim=sum+i;

}while(++i<

100);

25.己知intk;

且k已经正确赋值,则下列表达式中存在语法错误的是

A.2<

k<

6

B.(k<

6)++

C.k<

6&

k>

2

D.k==1

26.如下程序段的输出结果是。

{inti,j,a=0;

=5;

i++)

for(j=i;

j<

j++)

a=a+j;

printf(“%d”,a);

A.10

B.250

C.55

D.75

27.语句:

printf(“%-8.4d”,-36);

执行时的输出结果是(口表示空格)。

A.-0036口口口口

B.-036口口口口口

C.口口口口-036

D.口口口口口-036

28.如下程序段的输出结果是。

{inta[10]={34,22,12,66,8,33,22,338,56,99);

inti,x=0;

10;

if(a[i]<

a[x])x=i;

printf(“%d”,a[x]);

A.8

B.34

C.99

D.338

29.如下程序段的输出结果是。

{charstr[]=(‘S’,‘t’,‘u’,‘d’,‘e’,‘n’,‘t’,‘\0’);

Char*q=str;

while(*q!

=‘\0’)q++;

printf(“%d”,q-str);

A.5

C.7

D.8

30.如下程序段的输出结果是。

#definen5

{intno;

{structstudentstu[n]={{1,12.},{2,55.5},{3,90.5},{4,78.0},{5,34.0}};

inti;

floata=0,b;

for(i=0;

n;

i++)a+=stu[i].score;

b=a/n;

printf(“%08.4f”,b);

A.0054.1000

B.054.1000

C.0054.1

D.54.10000

二、程序阅读题(本大题共4小题,每小题5分,共20分)阅读下列程序,请将运行时输出的结果写在答题纸相应的位置上。

31./*程序段中口表示空格*/

#include<

stdio.h>

voidmain()

{charstrl[]=“good口morning!

”,str2[20];

char*p,*q;

for(p=strl;

*p!

=‘\0’;

p++);

for(q=str2;

--p>

=strl;

q++)*q=*p;

*q=‘\0’;

printf(“%s”,str2);

答案:

!

gninromdoog

32.#include<

stdio.h>

#definen10

voidde(inta[],intx,int*m)

{inti=x+1;

for(;

=*m;

i++)a[i-1]=a[i];

*m=*m-1;

{staticinta[n]:

{32,12,12,56,78,12,78,5,32,12};

inti,j,x,m=n-1;

=m;

{x=a[i];

For(j=i+l;

if(a[j]==X)de(a,j,&

m);

printf(“%d,”,a[i]);

32,12,56,78,5,

33.#include<

voidch(int*a,int*b)

{intc;

c=*a;

*a=*b;

*b=c;

{staticinta[10]={32,5,18,56,98,52,78,15,132,112);

intx=0,y=1,i;

if(a[x]>

a[y])ch(&

x,&

y);

for(i=2;

a[x])x=i;

elseif(a[i]>

a[y])y=i;

ch(&

a[x],&

a[y]);

i++)printf(“%d,”,a[i]);

32,132,18,56,98,52,78,15,5,112

34.#include<

{charstr[]=“0342201411”;

staticinta[10];

char*p;

i++)a[i]=0;

for(p=str;

*p!

p++)

{i=*p-‘0’;

a[i]++;

i++)printf(“%d,”,a[i]);

2,3,2,1,2,0,0,0,0,0

三、完善下列程序(本大题共2小题,每空4分,共20分)

35.下面程序求一个二维矩阵的最大值。

#definem3

#definen4

intfindmax(inta[][n])

{inti,j,max=a[0][0];

m;

①)

for(j=0;

if(a[i][j]>

max)max=a[i][j];

②;

{inti,j,max,③;

rn;

for(j=0;

J<

a[i][j]);

max=findmax(a);

printf(“%d”.max);

(1)i++或i=i+1

(2)returnmax

(3)a[m][n]

36.下面程序找出100~200之间的全部素数。

math.h>

{intnq,k,i;

for(m=101;

m<

=200;

m=m+2)

{k=sqrt(m);

for(i=2;

=k;

④)

if(m%i==0)⑤;

if(i>

k)printf(“%d”,m);

}}

(4)i++

(5)break

 

第二部分数据结构(共100分)

一、单项选择题(本大题共12,qJ、题,每小题2分:

.共24分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将正确答案代码填写在答题纸相应位置上。

1.要表示高校的校、系、班级的有关数据及其关系,选择比较合适。

A.线性结构

B.树结构

C.图结构

D.集合结构

2.下列函数中渐近时间复杂度最小的是。

A.

B.

C.

D.

3.已知一个栈s以及一个输入序列(A,B,C,D,E),每个元素按照A,B,C,D,E顺序进栈一次,进栈后可立即出栈,也可在栈中停留一段时间后再出栈,则不能得到序列。

A.A,B,C,D,E

B.B,A,E,D,C

C.C,B,A,D,E

D.D,C,A,B,E

4.平均排序效率最好的排序方法是。

A.直接插入排序

B.快速排序

C.简单选择排序

D.冒泡排序

5.某链表中最常用的操作是在已知的一个结点之前插入一个新结点和删除其之前一个结点,则采用存储方式最节省运算时间。

A.双向链表

B.带头指针的单向链表

C.带尾指针的单向链表

D.单向循环链表

6.在逻辑结构不变的情况下,不是导致一个图的遍历序列不唯一的因素是

A.出发点不同

B.存储(物理)结构不同

C.遍历方法不同

D.画法不同

7.散列函数有一个共同的要求,即函数值应当尽量以取其值域的每个值。

A.最大概率

B.最小概率

C.正态分布概率

D.均等概率

8.下面方法可以判断出一个图中是否存在环(回路)。

A排序

B.深度和广度遍历

C.求最短路径

D.求关键路径

9.最佳二叉搜索(排序)树是。

A.关键码个数最小的二叉搜索树

B.退化为线性的二叉搜索树

C.搜索中平均比较次数最小的二叉搜索树

D.任何结点的度数为0或2的二叉搜索树

10.是数据的基本单位,即数据集合(对象)中的个体。

A数据结构

B.数据项

C.数据元素

D.数据对象

11.(线性)表是一个。

A有限序列,可以为空

B有限序列,不能为空

C无限序列,可以为空

D.无限序列,不能为空

12.树是结点的集合,它根结点。

A有0个或1个

B有0个或多个

C有且只有1个

D有1个或1个以上

二、填空题(本大题共7小题,每空2分,共16分)请将答案写在答题纸相应的位置上。

13.在有n个顶点的有向图中,每个顶点的度最大可达2(n1)

14.以下程序段的时间复杂度是O(n)

i=0;

j=o;

while(i+j<

=n)

{if(i>

j)j++;

elsei++;

15.右图所示的二叉树后序遍历的结果是

EDCBIHJGFA

16.在一个双向链表中P所指结点之前插入一个由指针s所指的新结点,写出可执行的操作序列:

s->

next=p;

s->

prior=p->

prior;

p->

prior->

next=s;

prior=s;

(前指和后指的指针域分别为prior和next)

17.(线性)表有两种存储结构:

顺序存储结构和链式存储结构,请就这两种存储结构完成下列填充:

顺序存储存储密度较大,可以随机存取;

链式存储

不可以随机存取,插入和删除操作比较方便。

18.递归的程序执行时使用栈

来保存各层递归调用时的现场信息,以保证可以正确返回。

19.设数组a[M](M为最大空间个数)作为循环队列Q的存储空间,front为队头指针(指向第一个存放数据的位置),rear为队尾指针(指向最后一个存放数据位置的下一个),则判定Q队列的队满条件是Q->

front==(Q->

rear+1)%M或Q.front==(Q.rear+1)%M或front==(rear+1)%M

三、应用题(本大题共4小题,每小题10分,共40分)请将答案写在答题纸相应的位置上。

20.设字符集D={A,B,C,D,E),各字符使用频率W={10,2,5,6,4)。

画出对字符进行哈夫曼编码时所对应的哈夫曼树,并给出各字符的编码。

哈夫曼树:

{10,2,5,6,4}

名字符的哈夫曼编码为:

A:

01B:

110C:

10D:

00E:

111

21.用普里姆(Prim)算法从右图中的顶点1开

始逐步构造最小支撑(代价生成)树,要求

画出构造的每一步。

22.给定待排关键字集合为{23,14,48,25,5,19},按关键字非递减(从小到大)排序,写出采用冒泡排序的每一趟(最外层循环的每一次)排序结果。

{23,14,48,25,5,19}

第一趟:

14,23,48,25,5,19

第二趟:

第三趟:

14,23,25,48,5,19

第四趟:

5.14,23,48,25,19

第五趟:

5.14,19,23,48,25,

23.

(1)图示表示右边有向图的邻接表。

(4分)

(2)写出从顶点1开始分别进行深度

优先和广度优先遍历的顶点序列各一种。

(6分)

(2)深度:

124653或125643或132465或132564或135624

广度:

123456或132546

四、算法设计题(本大题共2小题,每小题10分,共20分)

请将答案写在答题纸相应的位置上c

24.假定用一个有头结点循环链表来存储一个有序的线性表,线性表从头到尾为非递减(从小到大)有序(如下图)。

用指针(如下图)。

用指针current从head开始搜索数据域等于key的元素在线性表中位置,如果搜索成功则current指向搜索到的结点,函数返回该指针;

如果搜索不成功,函数返回空指针NULL。

请在函数SortedlistLocate(head,key)内填空,完成下列算法以实现这种搜索,并使得搜索不成功的平均比较次数小于链表长度。

typedefstructnode{elemtypedata;

//数据域

structnode*next;

//指针域

}1node,术linklist;

linklistSortedlistLocate(1inklisthead,elerntypekey)

{linklistcurrent;

if(

(1))returnERROR;

//错误提示

current=

(2);

while((3)&

(4))

current=current-->

next;

//循链搜索其值等于key的结点

if((5))

returncurrent;

//找到,返回结点地址

elsereturnNULL;

//未找到,返回空指针}

1.head==NULL

2.head->

next

3.key<

current->

data

4.head!

=current->

5.key==current->

25.r[]为一维数组,其中r[0]到r[n-]为待排序的n个元素,排序好的元素仍在r[0]到r[n-1]中。

请写出对该数组进行非递减排序的直接插入排序算法取名为InsertSort(etemtyper[],intn)。

voidInsertSort(elemtyper[],intn)

{

for(i=1;

n;

{

temp=r[1];

j=i;

while(j>

0&

temp<

r[j-1])

{

r[j]=r[j-1];

j--;

r[j]=temp;

第三部分关系数据库与SQL语言(共100分)

一、单项选择题(本大题共20小题,每小题2分,共40分)

1.数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是。

A.DBS包括DB乖DBMS

B.DBMS包括DB和DBS

C.DB包括DBS和DBMS

D.DBS就是DB,也就是DBMS

2.下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是I.人工管理阶段II.文件系统阶段III.数据库阶段。

A.I和II

B.只有I

C.II和III

D.只有II

3.下面的选项不是关系数据库基本特征的是。

A.不同的列应有不同的数据类型

B.不同的列应有不同的列名

C.与行的次序无关

D.与列的次序无关

4.从一个数据库文件中取出满足某个条件的所有记

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1