福建专升本计科类真命题.docx

上传人:b****1 文档编号:15212938 上传时间:2023-07-02 格式:DOCX 页数:29 大小:59.18KB
下载 相关 举报
福建专升本计科类真命题.docx_第1页
第1页 / 共29页
福建专升本计科类真命题.docx_第2页
第2页 / 共29页
福建专升本计科类真命题.docx_第3页
第3页 / 共29页
福建专升本计科类真命题.docx_第4页
第4页 / 共29页
福建专升本计科类真命题.docx_第5页
第5页 / 共29页
福建专升本计科类真命题.docx_第6页
第6页 / 共29页
福建专升本计科类真命题.docx_第7页
第7页 / 共29页
福建专升本计科类真命题.docx_第8页
第8页 / 共29页
福建专升本计科类真命题.docx_第9页
第9页 / 共29页
福建专升本计科类真命题.docx_第10页
第10页 / 共29页
福建专升本计科类真命题.docx_第11页
第11页 / 共29页
福建专升本计科类真命题.docx_第12页
第12页 / 共29页
福建专升本计科类真命题.docx_第13页
第13页 / 共29页
福建专升本计科类真命题.docx_第14页
第14页 / 共29页
福建专升本计科类真命题.docx_第15页
第15页 / 共29页
福建专升本计科类真命题.docx_第16页
第16页 / 共29页
福建专升本计科类真命题.docx_第17页
第17页 / 共29页
福建专升本计科类真命题.docx_第18页
第18页 / 共29页
福建专升本计科类真命题.docx_第19页
第19页 / 共29页
福建专升本计科类真命题.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

福建专升本计科类真命题.docx

《福建专升本计科类真命题.docx》由会员分享,可在线阅读,更多相关《福建专升本计科类真命题.docx(29页珍藏版)》请在冰点文库上搜索。

福建专升本计科类真命题.docx

福建专升本计科类真命题

C01

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

软件工程

专业知识试卷

计算机科学与技术

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

答题说明:

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

注意事项:

答案写在试卷上一律不给分。

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

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

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

1.

下列选项中,合法的C语言标识符是________。

A.my_name

B.$234

C.myname

D.23b

2.

已知:

intx=5;执行完printf("%d",++x);后,输出的结果是:

________。

A.4

B.5

C.6

D.不确定

3.

已知:

intx=5,y=3;则逻辑表达式(x-y)&&(y-3)的值为________。

A.7

B.2

C.1

D.0

4.

已知:

inta=3,b=6,c=8;则执行完语句:

a=a>b?

a(b

b:

c);后,a的值是________。

A.3

B.6

C.8

D.17

5.

有如下程序段执行后的结果是________。

main()

{inta=11,b=3;

printf("%d,%d",a/b,a%b);

}

A.3,2

B.11,2

C.3,3

D.3.3,2

6.

有如下程序段:

main()

{charc;

scanf("%c",&c);

switch(c)

{case'A':

printf("5");

case'B':

printf("4");

case'C':

printf("3");

case'D':

printf("2");

default:

printf("1");

}

}

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

A.4

B.43

C.432

D.4321

7.

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

main()

{charc='d';

inti=c-32;

printf("%c,%d",i,i);

}

A.d,68

B.D,68

C.d,100

D.D,100

8.

如下程序段的执行结果是________。

main()

{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□your

D.what’s□your□name?

11.

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

main()

{inti=5,sum=100;

do{sum=sum+(--i);}while(i>=0);

printf("%d",sum);

}

A.100

B.109

C.105

D.110

12.

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

main()

{inti;

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

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

printf("%d,",i);

}

}

A.1,2,4,5,7,9,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);}

main()

{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.

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

main()

{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=&a;

D.inta=1000,*p;p=a;

18.

如下程序段的输出结果是:

________。

intmm(int*a,intb)

{*a=*a+5;b*=3;return*a+b;}

main()

{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,26

D.3,18,11

19.

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

main()

{

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(){int*a=1;charb='b';floatc=1.0;aa(a,b,c);}

D.main(){int*a;scanf("%d",a);aa(a,'a',3.0);}

21.

有如下定义:

structstudent

{charname[10];

floatscore;

intage;

}stu1,*p;

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

A.str1={"ddd",60.0,55};

B.strcpy(stu1,name,"ddd");stu1.score=66.0;stu1.age=15;

C.p=&stu1;p->name="ddd";p->score=66.0;p->age=15;

D.p=&stu1;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<=10;i++)scanf("%d",&a[i]);

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

for(i=0,p=a;p

23.

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

a)等价的是________。

A.(a==0)

B.(a>0)

C.!

(a==1)

D.(a==1)

24.

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

A.for(i=1,sum=0;i<=100;i++)sum=sum+i;

B.i=1;sum=0;while(i++<=100)sum=sum+i;

C.for(i=1;i<=100;i++){sum=0;sum=sum+i;}

D.i=1;sum=0;do{sum=sum+i;}while(++i<=100);

25.

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

A.2

B.(k<6)++

C.k<6&&k>2

D.k==1

26.

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

main()

{

inti,j,a=0;

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

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

a=a+j;

printf("%d",a);

}

A.10

B.25

C.55

D.75

27.

语句:

printf("%-8.4d",-36);执行时的输出结果是(□表示空格)________。

A.-0.36□□□□

B.-036□□□□□

C.□□□□-036

D.□□□□□-036

28.

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

main()

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

inti,x=0;

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

if(a[i]

printf("%d",a[x]);

}

A.8

B.34

C.99

D.338

29.

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

main()

{charstr[]={'s','t','u','d','e','n','t','\0'};

char*q=str;

while(*q!

='\0')q++;

printf("%d",q-str);

}

A.5

B.6

C.7

D.8

30.

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

#definen5

structstudent

{intno;

floatscore;

}

main()

{

structstudentstr[n]={{1,12.5},{2,55.5},{3,90.5},{4,78.0},{5,34.0}};

inti;

floata=0,b;

for(int=0i

b=a/n;

printf("%08.4f",b);

}

A.0054.1000

B.054.1000

C.0054.1

D.54.10000

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

阅读下列程序,请将运行时输出的结果写在答题纸相应的位置上。

31.

/*程序段中□表示空格*/

#include

voidmain()

{

charstr1[]="good□morning!

",str2[20];

char*p,*q;

for(p=str1;*p!

='\0';p++);

for(q=str2;--p>=str1;q++)*q=*p;

*q='\0';

printf("%s",str2);

}

32.

#include

#definen10

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

{

inti=x+1;

for(;i<=*m;i++)a[i-1]=a[i];

*m=*m-1;

}

voidmain()

{staticinta[n]={32,12,12,56,78,12,78,5,32,12};

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

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

{x=a[i];

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

if(a[j]==x)de(a,j,&m);

}

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

printf("%d,",a[i]);

}

33.

#include

voidch(int*a,int*b)

{intc;

c=*a;*a=*b;*b=c;

}

voidmain()

{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;i<10;i++)

if(a[i]

elseif(a[i]>a[y])y=i;

ch(&a[x],&a[y]);

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

}

34.

#include

voidmain()

{charstr[]="0342201411";

staticinta[10];

inti;

char*p;

for(i=0;i<10;i++)a[i]=0;

for(p=str;*p!

='\0';p++)

{i=*p-'0';

a[i]++;

}

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

}

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

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

35.

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

#include

#definem3

#definen4

intfindmax(inta[][n])

{for(i=0;i

for(j=0;j

if(a[i][j]>max)max=a[i][j];

②;

}

voidmain()

{inti,j,max,③;

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

max=findmax(a);

printf("%d",max);

}

36.

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

#include

#include

voidmain()

{

intm,k,i;

for(m=101;m<=200;m=m+2)

{

k=sqrt(m);

for(i=2;i<=k;④)

if(m%i==0)⑤;

if(i>k)printf("%d",m);

}

}

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

四、单项选择器(本大题共12小题,每小题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个顶点的有向图中,每个顶点的度最大可达。

14.

以下程序段的时间复杂度是。

i=0;j=0;

while(i+j<=n)

{

if(i>j)j++;

elsei++;

}

15.

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

16.

在一个双向链表中p所指节点之前插入一个由指针s所指的新节点,写出可执行的操作序

列:

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

17.

(线性)表有两种村粗结构:

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

存储密度较大,可以随机存取:

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

18.

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

19.

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

六、应用题(本大题共4小题,每小题10分,共40分)

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

20.

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

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

21.

用普利姆(Prim)算法从右图中的顶点1开始逐步构建最小支撑(代价生成)树,要求画出构造的每一步。

22.

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

23.

1)

图示表示右边有向图的邻接表。

2)写出从顶点1开始分别进行深度优先遍历的顶点序列各一种。

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

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

24.

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

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

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

typedefstructnode{

elemtypedata;//数据域

structnode*next;//指针域

}lnode,*linklist;

linkSortedlistLocate(linklisthead,elemtypekey)

{linklistcurrent;

if(

(1))returnERROR;//错误提示

c

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2