福建专升本计算机科学类真题.docx

上传人:b****8 文档编号:11174705 上传时间:2023-02-25 格式:DOCX 页数:28 大小:48.47KB
下载 相关 举报
福建专升本计算机科学类真题.docx_第1页
第1页 / 共28页
福建专升本计算机科学类真题.docx_第2页
第2页 / 共28页
福建专升本计算机科学类真题.docx_第3页
第3页 / 共28页
福建专升本计算机科学类真题.docx_第4页
第4页 / 共28页
福建专升本计算机科学类真题.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

福建专升本计算机科学类真题.docx

《福建专升本计算机科学类真题.docx》由会员分享,可在线阅读,更多相关《福建专升本计算机科学类真题.docx(28页珍藏版)》请在冰豆网上搜索。

福建专升本计算机科学类真题.docx

福建专升本计算机科学类真题

机密★启用前C01

2007年福建省高职高专升本科入学考试

软件工程专业知识试卷

(考试时间150分钟,满分300分,共三部分)

答题说明:

答案卸载答题纸相应的位置上,写在试卷上一律不给分。

第一部C语言程序设计(100分)

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

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

写在试卷上不得分。

1.下列选项中合法的C语言关键字是

A.VARB.charC.integerD.default

2.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是

A.-3B.9C.-12D.6

3.设x、y、r均为int型变量,则执行完语句:

x=y=3;t=++x||++y;后,y的值为

A.不定值B.4C.3D.1

4.有以下程序段

intk=0;

while(k=1)k++;

while循环的次数是

A.无限次B.语法错误C.一次也不执行D.执行1次

5.以下程序执行后sum的值是

main()

{intI,sum;

for(i=1;i<6;i++)sum+=I;

printf("%d\n",sum);

}

A.15B.14C.不确定D.0

6.若变量a是int类型,并执行了语句:

a='A'+1.6;,则正确叙述A.a的值是字符CB.a的值是浮点型

C.不允许字符型和浮点型相加D.a的值是字符'A'的ASCⅡ值加上1

7.下列字符中,ASCⅡ码值最小的是

A.AB.aC.ZD.z

8.不能把字符串:

Hello!

赋给数组b的语句是

A.charb[10]={'H','e','l','l','o','!

'}B.charb[10];b="Hello!

";

C.charb[10];strepy(b,"Hello!

");D.charb[10]="Hello!

";

9.C语言中运算对象必须是整型的运算符是

A.%=B./C.=D.<=

10.若变量已正确定义并赋值,下面符合C语言语法的表达式是

A.a:

=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

11.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是

A.1B.2C.2.0D.2.5

12.能正确表示逻辑关系:

"a≥10或a≤10"的C语言表达是

A.a>=10ora<=10B.a>=10|a<=10

C.a>=10&&a<=10C.a>=10||a<=10

13.有如下程序,运行该程序的输出结果是

voidmain()

{inty=3,x=3,z=1;

printf("%d%d\n",(++x,y++),z+2);

}

A.34B.42C.43D.33

14.有数组定义inta[2][2]={{1},{2,3}};则a[1][1]的值为

A.1B.2C.3D.0

15.有如下程序段

inta=14,b=15,x;

charc='e'

x=(a&&b)&&(c<'B');

执行完这段程序后,x的值为

A.trueB.falseC.1D.0

16.有以下程序,程序运行后的输出结果是

voidmain()

{intI;

for(i=0;i<3;i++)

switch(i)

{

case0:

printf("%d",i);

case2:

printf("%d",i);

default:

printf("%d",i);

}

}

A.022111B.021021C.000122D.012

17.若变量已正确定义并赋值,则下列条件语句中,功能与其他语句不同的是

A.if(a)printf("%d\n",x);elseprintf("%d\n",y);

B.if(a==0)printf("%d\n",y);elseprintf("%d\n",x);

C.if(a!

=0)printf("%d\n",x);elseprintf("%d\n",y);

D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);

18.若变量已正确定义,要求程序段完成求5!

的计算,不能完成此操作的程序段是

A.for(i=1;i<=5;d++)p*=I;

B.for(i=1;i<=5;d++){p=1;p*=I};

C.i=1;p=1;while(i<=5){p*=i;i++};

D.i=1;p=1;do{p*=i;i++};while(i<=5);

19.有以下程序,运行后的输出结果是

main()

{inta=7,b=8,*p,*q,*r;

p=&a;q+&b;

r=p;p=q;q=r;

printf("%d,%d,%d,%d\n",*p,*q,a,b)

}

A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

20.以下选项中非法的表达式是

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

21.有定义语句:

int,xy;。

若要通过scanf("%d,%d",&x,&y);语句变量x得到数值11,变量y得到数值12,下面四组输入形式,错误的是

A.1112B.11,12C.11,12D.11,12

22.有以下函数定义

voidfun(intn,doublex){……}

若以下选项中的变量都已经确定并赋值,则对函数fun的正确调用语句是

A.fun(inty,doublem);B.k=fun(10,12,5);

C.fun(x,n)D.voidfun(n,x)

23.已定义以下函数fun(int*p)

{return*p}

该函数的返回值是

A.不确定的值B.行参p中存放的值

C.行参p所指存储单元中的值D.行参p的地址值

24.有以下程序

#include

#defineF(x,y)(x)*(y)

voidmain()

{inta=3,b=4;

printf("%d\n",F(a++,b++));

}

程序运行后的输出结果是

A.12B.15C.16D.20

25.有以下程序

voidmain()

{inta[3][3],*p,I;

p=&a[0][0]

for(i=0;i<9;i++)p[i]=i+1;

printf("%d\n",a[1][2]);

}

A.3B.6C.9D.2

26.有以下程序

structSTU

{charname[10];

intnum;

intScore;};

voidmain()

{structSTUs[5]={{"YangSan",20041,703};

{"LiSiGuo",20042,580};

{"WangYin",20043,680};

{"SunDan",20044,550};

{"WangYin",20045,537}};*p[5],*t;

intI,j;

for(i-0;i<5;i++)p[i]=&s[i];

for(i=0;i<4;i++)

for(j=i+1;j<5;j++)

if(p[i]->Score>p[j]->Score)

{t=p[i];p[i]=p[j];p[j]=t;}

printf("%d%d\n",s[1],Score,p[1]->Score);

}

程序运行后的输出结果是

A.550550B.680680

C.580550D.580680

27.有以下程序

voidsort(inta[],intn)

{intI,j,t;

for(i=0;i

for(j=i+2;j

if(a[i]

}

voidmain()

{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

sort(aa,10);

for(i=0;i<10;i++)printf("%d,",aa[i]);

printf("\n");

}

程序运行后的输出结果是

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

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

28.有以下程序

voidmain()

{inti=0,s=0;

for(;;)

{

if(i==3||i==5)continue;

if(i==6)break;

i++;

s+=I;

}

printf("%d\n",s)

}

A.10B.13C.21D.程序进入死循环

29.有以下程序

voidmain()

{intx[8]={8,7,6,5,0,0},*s;

s=x+3;

printf("c%d\n",s[2]);

}

程序执行后的输出结果是

A.随机值B.0C.5D.6

30.设有以下定义和语句

inta[3][2]={1,2,3,4,5,6},*p[3]

p[0]=a[1];

则*(p[0]+1)所代表的数组元素是

A.a[0][1]B.a[1][0]Ca[1][1]D.a[1][2]

二、程序阅读题(本大题共4小题,每小题5分,共20分)

阅读下列程序,将输出结果写到答题纸的相应位置。

写在试卷上不得分

31.#include

voidmain()

{chara[]="Iamaboy.",b[20];

inti,j;

for(i=0,j=0;*(a+i)!

=’\0’;i++)

{

if(*(a+i)==’’)continue;

*(b+j)=*(a+i);

j=j+1;

}

*(b+j)=’\0’;

printf("\n%s\n",a);

printf("%s\n",b)

}

32.#include

#defineMAX(x,y)(x)>(y)?

(x):

(y)

voidmain()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

printf("%d\n",t)

}

33.##include

voidmain()

{chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{if(i%2==0)*p’*’;

p++;i++;

}

puts(a);

}

34.#include

typedefstructsudent{charname[10];

longsno;

floatscore;

}STU;

voidmain()

{STUa={"Zhangsan",2001,95};

{"Shangxian",2002,90};

{"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(a.name,b.name)>0)d=b;

if(strcmp(c.name,d.name)>0)d=c;

printf("%d%d\n",d.sno,p->name);

}

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

请在答题纸相应的位置上填上正确答案。

写在试卷上不得分。

35.以下为递归法球n!

的函数

floatfac(intn)

{floatf;

if(n<0)

printf("error!

");

elseif(n==0||n==1)

else

return()

}

36.以下函数把b字符串链接到a字符串的后面,并返回操作后a字符串的长度

streen(chara[].charb[])

{intnum=0,n=0;

while(*(a+num)!

=)num++;

while(b[n]){*(a+num)=b[n];num++;;}

return()

}

37.从键盘上输入0-9十个数字组成的字符串存入数组S中,然后求数组S中0-9的个数分别是多少,最后输出。

voidfun(char*str,int*num)

{

intI;

while()

{if(*str<=’9’&&)

str++;

}

}

voidmain()

{chars[81];

staticintnum[10];

inti;

printf("\nPleaseenter1linestrings(0——9):

\n");

scanf("%s",)

fun(s,num);

for(i=0;i<10;i++)

printf("%d:

%3d\n",I,num[1]);

}

 

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

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

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

写在试卷上不得分。

1.在待排序记录已基本有序的前提下,下述排序方法中效率最高的是

A.直接插入排序B.简单选择排序

C.快速排序D.归并排序

2.与数据的存储结构无关的术语是

A.栈B.必散列表

C.线索二叉树D.双向链表

3.有个元素6,5,4,3,2,1按排序进栈,下列不合法的出栈序列是

A.5,4,3,6,1,2B.4,5,3,1,2,6

C.3,4,6,5,2,1D.2,3,4,1,5,6

4.排序存储方式的优点是

A.存储密度大B.插入运算方便

C.删除运算方便D.可方便地用于各种逻辑结构的存储表示

5.对于只在表的首、尾继续拧插入操作的线性表,宜采用的存储结构为

A.顺序表B.用头指针表示的单循环链表

C.用尾指针表示的单循环链表D.单链表

6.对包含n个元素的散列表进行查找,平均查找长度

A.为O(logn)B.为O(n)

C.为O(nlogn)D.不直接依赖于n

7.具有对称邻接矩阵的图是

A.有向图B.无向图C.AOV图D.AOE图

8.设表(a1,a2,a3,……,a32)中的元素已经按递增顺序排好序,用二分法检索与一个给定的值k相等的元素,若a1

A.3B.4C.5D.6

9.具有3个结点的不同二叉树的数目是

A.2B.3C.4D.5

10.对二叉树的结点从1开始编号,要求每个结点的编号大约其左右孩子的编号,同一个结点的左右孩子中,其左孩子的编号大于其有孩子的编号,则可采用的编号方法

A.先序遍历B.中序遍历C.后续遍历D.层次遍历

11.在长度为n的顺序表的第i(1≤i≤n+1)个位置上插入一个元素,需要移动元素的次数

A.n-i+1B.n-1C.iD.i-1

12.对于一个无向图,下列说法正确的是

A.每个顶点的入度大于出度

B.每个顶点的度等于其入度与出度之和

C.无向图的邻接矩阵一定是对称矩阵

D.有向图中所有顶点的入度之和大约所有顶点的出度之和

二、填空题(本大题共10小题,每空2分,共22分)

请在答题纸相应的位置上填上正确答案。

写在试卷上不得分。

13.设一哈希表表长M为100,用除余法构造哈希函数,即H(K)%P,其中K是关键字,P≤M,为使函数具有较好性能,P应选

14.N个结点的二叉树采用二叉链表存放,共有空指针域个数为

15.若一个算法中的语句频度之和为T(n)=3720n+4nlogn,则算法的时间复杂度为

16.已知有向图的邻接矩阵,要计算第1号顶点的入度,计算方法是将

累加。

17.深度为6(根深度为1)的二叉树至多有个结点。

18.一棵具有n个叶子结点的哈夫曼树中,结点总数为

19.设单链表结点的定义如下:

strucenode{

intdata;

structnode*next;

}*p,*s,*t;

要在一个单链表中p所指结点之后插入一个子链表,子链表第一个结点的地址为s,子链表最后一个结点的地址为t,则应执行的操作:

20.设单链表结点的定义如19题,现有一个含头结点的单链表,头指针为head,指向头结点,则判断该单链表是否为空表的条件为

21.n个顶点的联通无向图至少有条边

22.在顺序存储结构的线性表中插入一个元素,平均需要移动

个元素

三、应用题(本大题共4小题,每小题8分,共32分)

请在答题纸相应的位置上填上正确答案。

写在试卷上不得分。

23.已知有向图如图所示;

(1)写出顶点B的度(2分);

(2)写出从顶点D开始的两个广度优先搜索序列(2分)

(3)画出该图的邻接表(4分)

24.已知二叉树的中序序列为DBGEAFC,后序列为DGEBFCA,画出对应的叉树

25.如图表示一个地区的通讯网,边表示城市间的通讯线路,边上的权值表示架设线路花费的代价,请画出该图的最小支撑树,并计算最小支撑树的权

26.设一个闭散列表具有10个桶,散列函数H(x)=x%7,若元素输入顺序为:

{50,42,85,22,76,19,34,68},解决冲突用线性重新散列技术,要求画出构造好的散列表。

四、算法设计(本大题共2小题,第25小题10分,第26小题12分,共22分)请在答题纸相应的位置上填下正确的答案。

写在试卷上不得分。

27.二叉搜索树T用二叉链表存储结构表示,其中各元素的值均不相同。

编写算法,按递减顺序打印T中各元素的值。

树结点结构定义如下:

typedefintTreeItem

typedefstructbtnode*btlink;

typedefstructbtnode;{

TreeItemdata;

btlinkleft,right;

}BTNODE;

28.阅读下面程序,其功能是调整线性表中的元素,将所有奇数放在表的左边,将所有偶数放在表的右边。

请填空完成该程序(每空1分,共12分)

#defineMAXSIZE100

typedefintElemType;

typedefstruct;{

ElemTypeelem[MAXSIZE];/*用于保存线性表各元素值*/

intlast;/*用于保存elem数组末元素下标*/

}SeqList;

voidAdjustSqList(SqList*L){

ElemTypetemp;

inti=0,j=

(1);

while(i

while(L->elem[

(2)]%2!

=0&&(3))

i++;

while(L->elem[(4)]%2==0&&(5))

j++;

if((6))break;

temp=L->elem[i];

L->elem[i]=(7);

L->elem[j]=(8);

}

}

voidmain()

SeqList(9);

intr,I;

sq=((10))malloc(sizeof(SeqList));

printf("请输入线性表的长度:

");

scanf("%d",&r);

sq->last=(11);

printf("请输入线性表的各元素值:

\n");

for(i=0;i<=sq->;i++)scanf("%d",&(12));

AdjustSqlist(sq);

}

 

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

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

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

写在试卷上不得分。

1.数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者的关系是

A.DBS包括DB和DBMS

B.DBMS包括DB和DBS

C.DB包括DBS和DBMS

D.DBS就是DBMS,包括DB

2.在关系理论中称为”元组”的概念,在关系数据库中称为

A.实体B.属性C.行D.字段

3.在关系数据库中,能对数据进行查询、插入、修改和删除操作的功能称为

A.数据定义功能B.数据管理功能

C.数据控制功能D.数据操纵功能

4.下列可用来实现表结构修改的命令是

A.ALTERB.CREATEC.UPDATED.DROP

5.关系数据库中,用户共同视图是数据库三级模式结构中的

A.模式B.概念模式C,外模式D.存储模式

6.在一个关系中,有可能用来唯一标识一个元组的对象,我们称这个对象为

A.主码B.候选码C.主属性D.外码

7.下列说法正确的是

A.几个域做笛卡尔积运算的结果是一个集合,几个关系做广义笛卡尔积运算的结果不是一个集合

B.几个域做笛卡尔积运算的结果不是一个集合,几个关系做广义笛卡尔积运算的结果是一个集合

C.几个域做笛卡尔积运算,

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

当前位置:首页 > 高等教育 > 经济学

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

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