软件工程基础试题九Word文件下载.docx

上传人:b****5 文档编号:18600025 上传时间:2022-12-29 格式:DOCX 页数:16 大小:34.79KB
下载 相关 举报
软件工程基础试题九Word文件下载.docx_第1页
第1页 / 共16页
软件工程基础试题九Word文件下载.docx_第2页
第2页 / 共16页
软件工程基础试题九Word文件下载.docx_第3页
第3页 / 共16页
软件工程基础试题九Word文件下载.docx_第4页
第4页 / 共16页
软件工程基础试题九Word文件下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

软件工程基础试题九Word文件下载.docx

《软件工程基础试题九Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件工程基础试题九Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。

软件工程基础试题九Word文件下载.docx

};

char**p;

inti;

p=alpha;

for(i=0;

i<

4;

i++)

printf("

%c"

*(p[i]));

\n"

);

A)AEIMB)BFJNC)ABCDD)DHLP

8.下面程序的输出结果是____。

char*pp[2][3]={"

abc"

"

defgh"

ijkl"

mnopqr"

stuvw"

xyz"

main()

{printf("

%c\n"

***(pp+1));

/*①*/

**pp[0]);

/*②*/

(*(*(pp+1)+1))[4]);

/*③*/

*(pp[1][2]+2));

/*④*/

%s\n"

**(pp+1));

/*⑤*/

①A)aB)dC)iD)m

②A)aB)dC)iD)m

③A)hB)lC)qD)w

④A)kB)oC)uD)z

⑤A)ijklB)mnopqrC)stuvwD)xyz

9.下面程序的输出结果是____。

#include"

stdio.h"

structstr1

{charc[5];

char*s;

{structstr1s1[2]={{"

},{"

IJK"

,"

LMN"

}};

structstr2

{structstr1sr;

intd;

}s2={"

OPQ"

RST"

,32767};

structstr1*p[2];

p[0]=&

s1[0];

p[1]=&

s1[1];

%s"

,++p[1]->

s);

,s2.sr.c[2]);

①A)LMNB)MNC)ND)IJK

②A)OB)PC)QD)R

10.以下程序的输出结果是____。

structst

{intx,*y;

}*p;

ints[]={10,20,30,40};

structsta[]={1,&

s[0],2,&

s[1],3,&

s[2],4,&

s[3]};

{p=a;

%d\n"

++(*(++p)->

y));

A)10B)11C)20D)21

第二大题(程序填空题,每题2分)

1.下面程序的功能是输入学生的姓名和成绩,然后输出。

structstuinf

{charname[20];

/*学生姓名*/

intscore;

/*学生成绩*/

}stu,*p;

{p=&

stu;

Entername:

gets(①);

Enterscore:

"

scanf("

,②);

Output:

%s,%d\n"

,③,④);

2.下面程序的功能是按学生的姓名查询其成绩排名和平均成绩。

查询时可连续进行,直到输入0时才结束。

#include<

string.h>

#defineNUM4

structstudent

{intrank;

char*name;

floatscore;

};

①stu[]={3,"

liming"

,89.3,

4,"

zhanghua"

,78.2,

1,"

anli"

,95.1,

2,"

wangqi"

,90.6

main()

{charstr[10];

inti;

do

Enteraname"

scanf("

,str);

for(i=0;

NUM;

i++)

if(②)

{printf("

Name:

%8s\n"

,stu[i].name);

printf("

Rank:

%3d\n"

,stu[i].rank);

Average:

%5.1f\n"

,stu[i].score);

③;

}

if(i>

=NUM)printf("

Notfound\n"

}while(strcmp(str,"

0"

)!

=0);

}

3.下面程序的功能是从终端上输入5个人的年龄、性别和姓名,然后输出。

structman

unsignedage;

charsex[7];

{structmanperson[5];

data_in(person,5);

data_out(person,5);

data_in(structman*p,intn)

{structman*q=①;

for(;

p<

q;

p++)

{printf("

age:

sex:

name"

);

%u%s"

&

p->

age,p->

sex);

②;

data_out(structman*p,intn)

{structman*q=__③__;

p++)

%s;

%u;

p->

name,p->

4.输入N个整数,储存输入的数及对应的序号,并将输入的数按从小到大的顺序进行排列。

要求:

当两个整数相等时,整数的排列顺序由输入的先后次序决定。

例如:

输入的第3个整数为5,第7个整数也为5,则将先输入的整数5排在后输入的整数5的前面。

程序如下:

#defineN10

struct

{intno;

intnum;

}array[N];

{inti,j,num;

for(i=0;

N;

enterNo.%d:

,i);

,&

num);

for(①;

j>

=0&

&

array[j].num②num;

③)

array[j+1]=array[j];

array[④].num=num;

array[⑤].no=i;

%d=%d,%d\n"

,i,array[i].num,array[i].no);

5.以下程序的功能是:

读入一行字符(如:

a、...y、z),按输入时的逆序建立一个链接式的结点序列,即先输入的位于链表尾(如下图),然后再按输入的相反顺序输出,并释放全部结点。

{structnode

{charinfo;

structnode*link;

}*top,*p;

charc;

top=NULL;

while((c=getchar())①)

{p=(structnode*)malloc(sizeof(structnode));

info=c;

link=top;

top=p;

while(top)

{②;

top=top->

link;

putchar(p->

info);

free(p);

第三大题(写程序5分)

输入n值,输出如图所示图形。

参考答案

第一大题

1.答案:

B

注释:

长整型数32768在计算机内的表示是1000000000000000,以一般整型进行输出时,此数恰是-32768的补码。

2.答案:

C

3.答案:

D

4.答案:

C

5.答案:

A

6.参考答案:

C

p是指针,pp是指向指针的指针。

7.参考答案:

A

对于指向数组的指针变量可以做下标运算,p[i]和alpha[i]都是指向字符串的首地址,*p[i]取出字符串的第一个字符。

8.参考答案:

①D②A③D④D⑤B

pp是一个二维指针数组,pp+1指向数组的第二维,*(pp+1)是第二维的起始地址,**(pp+1)是第二维第一个元素的地址,***(pp+1)是第二维第一个元素的内容,所以,①的参考答案应选D。

*(pp+1)+1是第二维第二个元素的地址,*(*(pp+1)+1)是第二维第二个元素,(*(*(pp+1)+1))[4]则是第二维第二个元素所指字符串下标为4的元素,即是字符w,故③应当选D。

9.参考答案:

①B②C

10.参考答案:

第二大题

①stu.name②&

stu.score③p->

name④p->

score

这是结构中的最基本概念。

①structstudent②strcmp(stu[i].name,str)==0③break

程序的主体是一个二重循环,内层for循环完成查找学生的工作。

①处是进行结构数组说明并初始化,按照结构变量说明的格式规定,应该填写:

strcutstudent。

②处为if语句的逻辑条件,应当是当查找到指定的学生后输出学生的情况,因此应当填写:

strcmp(stu[i].name,str)==0。

③处应当将控制退出内层的for循环,只能选择break语句。

①p+n②gets(p->

name)③p+n

本程序是通过函数完成对于结构数组的输入和输出操作。

函数data_in和data_out十分相似,都是通过结构指针p和结构指针q来操作结构数组的元素。

由于指针q在两个函数中的作用相同,所以①和③填写的内容也应该是相同的;

由for语句中的循环终止条件"

q"

可以看出,q应该指在数组的最后一个元素之后,所以①和③应当填入p+n。

②应当完成姓名的输入工作,应当为gets(p->

name)。

①j=i-1②>

③j--④j+1⑤j+1

程序的基本思想是:

对于输入的第i个整数num,从数组array中已有的元素中倒序开始查找。

若数组array中的第j个元素的值大于num,则将数组中的元素j向后移动一个位置;

否则,就应将num插入到当前位置作为元素j。

因此,程序的基本设计思想就是插入排序。

程序中内层的for循环完成查找插入位置的工作,因此答案①、②和③有密切的关系,要统一考虑。

同样,程序中的答案④和⑤也有密切的关系,要统一考虑。

①!

='

\n'

②p=top

第三大题

{inti,j,n;

\nPleaseEntern:

&

n);

for(i=1;

=n;

{for(j=1;

j<

j++)

if(j<

=i)printf("

1"

elseprintf("

%3d"

j-i+1);

 

数据结构

第一大题(每题2分)

1.组成数据的基本单位是()。

(A)数据项(B)数据类型(C)数据元素(D)数据变量

2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<

1,2>

,<

2,3>

3,4>

4,1>

},则数据结构A是()。

(A)线性结构(B)树型结构(C)图型结构(D)集合

3.数组的逻辑结构不同于下列()的逻辑结构。

(A)线性表(B)栈(C)队列(D)树

4.二叉树中第i(i≥1)层上的结点数最多有()个。

(A)2i(B)2i(C)2i-1(D)2i-1

5.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为()。

(A)p->

next=p->

next->

next(B)p=p->

next

(C)p=p->

next(D)p->

next=p

6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是()。

(A)6(B)4(C)3(D)2

7.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()。

(A)100(B)40(C)55(D)80

8.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为()。

(A)3(B)4(C)5(D)1

9.根据二叉树的定义可知二叉树共有()种不同的形态。

(A)4(B)5(C)6(D)7

.10.设有以下四种排序方法,则()的空间复杂度最大。

(A)冒泡排序(B)快速排序(C)堆排序(D)希尔排序

第二大题(5分)

已知二叉树的存储结构为二叉链表,阅读下面算法。

typedefstructnode{

DateTypedata;

Structnode*next;

}ListNode;

typedefListNode*LinkList;

LinkListLeafhead=NULL;

VoidInorder(BinTreeT)

{

LinkLists;

If(T){

Inorder(T->

lchild);

If((!

T->

lchild)&

(!

rchild)){

s=(ListNode*)malloc(sizeof(ListNode));

s->

data=T->

data;

next=Leafhead;

Leafhead=s;

}

rchild);

对于如下所示的二叉树

(1)画出执行上述算法后所建立的结构;

(2)说明该算法的功能。

参考答案:

第一大题:

1.C2.C3.D4.C5.A

6.C7.C8.B9.B10.B

第二大题 

33.

(1)Leafhead

F

H

G

(2)中序遍历二叉树,按遍历序列中叶子结点数据域的值构建一个以Leafhead为头指针的逆序单链表(或按二叉树中叶子结点数据自右至左链接成一个链表)。

数据库

前三题每题5分,最后题10分

1.使用数据库系统有什么好处?

2.数据库管理系统的主要功能有哪些?

3.数据库的完整性概念与数据库的安全性概念有什么区别和联系?

4.建立一个关于系、学生、班级、学会等诸信息的关系数据库。

学生:

学号、姓名、出生年月、系名、班号、宿舍区。

班级:

班号、专业名、系名、人数、入校年份。

系:

系名、系号、系办公地点、人数。

学会:

学会名、成立年份、办公地点、人数。

语义如下:

一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。

一个系的学生住在同一宿舍区。

每个学生可参加若干学会,每个学会有若干学生。

学生参加某学会有一个入会年份。

请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。

指出各关系模式的候选码、外部码,有没有全码存在?

1.使用数据库系统有什么好处?

答:

使用数据库系统的好处是由数据库管理系统的特点或优点决定的。

使用数据库系统的好处很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。

使用数据库系统可以大大提高应用开发的效率。

因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由DBMS来完成。

用一个通俗的比喻,使用了DBMS就如有了一个好参谋、好助手,许多具体的技术工作都由这个助手来完成。

开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多多复杂的细节操心。

还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库系统提供了数据与程序之间的独立性,数据逻辑结构的改变是DBA的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。

使用数据库系统可以减轻数据库系统管理人员维护系统的负担。

因为DBMS在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性、多用户并发控制、故障恢复等,都由DBMS执行。

总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。

读者可以在自己今后的工作中结合具体应用,认真加以体会和总结。

(l)数据库定义功能;

(2)数据存取功能;

(3)数据库运行管理;

(4)数据库的建立和维护功能。

答:

数据的完整性和安全性是两个不同的概念,但是有一定的联系。

前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garba:

eInGarba:

eout)所造成的无效操作和错误结果。

后者是保护数据库防止恶意的破坏和非法的存取。

也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。

解:

(1)关系模式如下:

学生:

S(Sno,Sname,Sbirth,Dept,Class,Rno)

班级:

C(Class,Pname,Dept,Cnum,Cyear)

系:

D(Dept,Dno,Office,Dnum)

学会:

M(Mname,Myear,Maddr,Mnum)

(2)每个关系模式的最小函数依赖集如下:

A、学生S(Sno,Sname,Sbirth,Dept,Class,Rno)的最小函数依赖集如下:

SnoSname,SnoSbirth,SnoClass,ClassDept,DEPTRno

传递依赖如下:

由于SnoDept,而DeptSno,DeptRno(宿舍区)

所以Sno与Rno之间存在着传递函数依赖。

由于ClassDept,DeptClass,DeptRno

所以Class与Rno之间存在着传递函数依赖。

由于SnoClass,ClassSno,ClassDept

所以Sno与Dept之间存在着传递函数依赖。

B、班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下:

ClassPname,ClassCnum,ClassCyear,PnameDept.

由于ClassPname,PnameClass,PnameDept

所以C1ass与Dept之间存在着传递函数依赖。

C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:

DeptDno,DnoDept,DnoOffice,DnoDnum

根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。

D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:

MnameMyear,MnameMaddr,MnameMnum

该模式不存在传递依赖。

(3)各关系模式的候选码、外部码,全码如下:

A、学生S候选码:

Sno;

外部码:

Dept、Class;

无全码

B、班级C候选码:

Class;

Dept;

C、系D候选码:

Dept或Dno;

无外部码;

D、学会M候选码:

Mname;

软件工程

5个题,每题5分。

1.应该怎样来划分阶段?

2.某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。

房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;

对合法的申请表根据类型分别进行处理。

3.比较层次方框图与结构图是的异同?

4.软件测试的基本任务?

5.等价分类法的测试

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

当前位置:首页 > PPT模板 > 卡通动漫

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

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