软件工程基础试题三.docx

上传人:b****2 文档编号:3249078 上传时间:2023-05-05 格式:DOCX 页数:17 大小:50.04KB
下载 相关 举报
软件工程基础试题三.docx_第1页
第1页 / 共17页
软件工程基础试题三.docx_第2页
第2页 / 共17页
软件工程基础试题三.docx_第3页
第3页 / 共17页
软件工程基础试题三.docx_第4页
第4页 / 共17页
软件工程基础试题三.docx_第5页
第5页 / 共17页
软件工程基础试题三.docx_第6页
第6页 / 共17页
软件工程基础试题三.docx_第7页
第7页 / 共17页
软件工程基础试题三.docx_第8页
第8页 / 共17页
软件工程基础试题三.docx_第9页
第9页 / 共17页
软件工程基础试题三.docx_第10页
第10页 / 共17页
软件工程基础试题三.docx_第11页
第11页 / 共17页
软件工程基础试题三.docx_第12页
第12页 / 共17页
软件工程基础试题三.docx_第13页
第13页 / 共17页
软件工程基础试题三.docx_第14页
第14页 / 共17页
软件工程基础试题三.docx_第15页
第15页 / 共17页
软件工程基础试题三.docx_第16页
第16页 / 共17页
软件工程基础试题三.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

软件工程基础试题三.docx

《软件工程基础试题三.docx》由会员分享,可在线阅读,更多相关《软件工程基础试题三.docx(17页珍藏版)》请在冰点文库上搜索。

软件工程基础试题三.docx

软件工程基础试题三

C语言

第一大题每题1分

1、下面各选项组中,均是C语言关键字的组是。

A)auto,enum,includeB)switch,typedef,continue

C)signed,union,scanfD)if,struct,type

2、将字符g赋给字符变量c,正确的表达式是。

A)c=\147B)c="\147"C)c='\147'D)c='0147'

3、为求出s=10!

的值,则变量s的类型应当为。

A)intB)unsigedC)longD)以上三种类型均可

4、已知二进制数a是00101101,如果想通过整型变量b与a做异或运算,使变量a的高4位取反,低4位不变,则二进制数b的值应是____。

A)11110000B)00001111C)11111111D)00000000

5、已知inti=1,j=0;执行下面语句后j的值是____。

while(i)

switch(i)

{case1:

i+=1;j++;break;

case2:

i+=2;j++;break;

case3:

i+=3;j++;break;

default:

i--;j++;break;

}

A)1B)2C)3D)死循环

6、以下程序的输出结果是____。

main()

{unsignedintn;

inti=-521;

n=i;

printf("n=%u\n",n);

}

A)n=-521B)n=521C)n=65015D)n=102170103

7、下面程序的输出结果是____。

main()

{inta=1,i=a+1;

do

{a++;

}while(!

~i++>3);

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

}

A)1B)2C)3D)4

8、以下程序的输出结果是。

main()

{inta=0,b=1,c=0,d=20;

if(a)d=d-10;

elseif(!

b)

if(!

c)d=15;

elsed=25;

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

}

A)d=10B)d=15C)d=20D)d=25

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

main()

{inta=1,b=0;

do

{switch(a)

{case1:

b=1;break;

case2:

b=2;break;

default:

b=0;

}

b=a+b;

}while(!

b);

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

}

A)1,2B)2,1C)1,1D)2,2

10、假定从键盘上输入"3.6,2.4<回车>",下面程序的输出是____。

#include

main()

{floatx,y,z;

scanf("%f,%f",&x,&y);

z=x/y;

while

(1)

{if(fabs(z)>1.0)

{x=y;

y=z;

z=x/y;

}

elsebreak;

}

printf("%f\n",y);

}

A)1.500000B)1.600000C)2.000000D)2.400000

第二大题5个题,每题2分

1、下面的程序的功能是求一维数组中的最小元素。

findmin(int*s,intt,int*k)

{intp;

for(p=0,*k=p;p

if(s[p]

①;

}

main()

{inta[10],i,*k=&i;

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

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

findmin(a,10,k);

printf("%d,%d\n",*k,a[*k]);

}

2、下面程序的功能是输出1到100之间每位数的乘积大于每位数的和的数。

例如数字26,数位上数字的乘积12大于数字之和8。

main()

{intn,k=1,s=0,m;

for(n=1;n<=100;n++)

{k=1;

s=0;

①;

while(②)

{k*=m%10;

s+=m%10;

③;

}

if(k>s)

printf("%d",n);

}

}

3、下面程序的功能是读入20个整数,统计非负数个数,并计算非负数之和。

#include"stdio.h"

main()

{inti,a[20],s,count;

s=count=0;

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

scanf("%d",①);

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

{if(a[i]<0)

②;

s+=a[i];

count++;

}

printf("s=%d\tcount=%d\n",s,count);

}

4、下面程序的功能是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。

例如:

输入的两个字符串分别为"abcdefg"和"abceef",则输出为-1。

#include

main()

{charstr1[100],str2[100],c;

inti,s;

printf("Enterstring1:

");gets(str1);

printf("Enterstring2:

");gets(str2);

i=0;

while((str1[i]==str2[i]&&str1[i]!

=①))

i++;

s=②;

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

}

5、下面程序的功能是由键盘输入n,求满足下述条件的x、y:

nx和ny的末3位数字相同,且x≠y,x、y、n均为自然数,并使x+y为最小。

#include

pow3(intn,intx)

{inti,last;

for(last=1,i=1;i<=x;i++)

last=①;

return(last);

}

main()

{intx,n,min,flag=1;

scanf("%d",&n);

for(min=2;flag;min++)

for(x=1;x

if(②&&pow3(n,x)==pow3(n,min-x))

{printf("x=%d,y=%d\n",x,min-x);

③;

}

}

第三大题5分

输入n值,输出如图所示平行四边形。

 

参考答案:

第一大题

1、答案:

B

注释:

include是预处理命令;scanf是函数名;type不是C语言的关键字。

2、答案:

C

注释:

变量c是字符型,可用字符常量为它赋值。

字符常量必须用单引号括起来,所以B是错误的;在单引号或双引号内的反斜线'\'用于表示转义字符,A选项在无引号时使用反斜线是错误的;C选项单引号内出现反斜线表示它与后面的数字组成一个转义字符;单引号只允许括起一个字符,D选项在单引号内出现4个字符,是错误的。

3、答案:

C

4、答案:

A

5、答案:

D

注释:

break语句仅可跳出switch语句,不会跳出while循环,这是一个死循环。

6、参考答案:

C

注释:

变量i中的负号传送给变量n后,因n是无符号数,已不作为负号处理。

7、参考答案:

B

8、参考答案:

C

9、参考答案:

A

10、参考答案:

B

注释:

fabs()是浮点数绝对值函数。

第二大题

1、答案:

①*k=p

2、答案:

①m=n②m>0③m=m/10

3、答案:

①&a[i]②continue

注释:

①是基本概念,使用scanf函数输入数组元素的值。

当输入的元素值小于0时,应当跳过后面的语句,取下一个数,所以②要填入continue。

4、答案:

①'\0'②str1[i]-str2[i]

5、答案:

①last*n%1000②x!

=min-x③flag=0

第三大题

分析:

此图形和上题的区别在于在每一行先要打印空格,然后再打印n个'*'号,在上题第一层循环体内打印'*'号的循环前面增加一个循环打印空格。

每行空格的个数是逐行减少的,由于第一层循环的控制变量i是逐行增1,所以用一个固定值的数减去i就可实现对空格个数的控制,在此题中固定值可使用变量n。

参考答案:

main()

{inti,j,n;

printf("\nPleaseEntern:

");

scanf("%d",&n);

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

{for(j=1;j<=n-i;j++)

printf("");

for(j=1;j<=n;j++)

printf("*");

printf("\n");

}

}

数据结构

第一大题每题2分

1、栈和队列的共同特点是()。

A.只允许在端点处插入和删除元素

B.都是先进后出

C.都是先进先出

D.没有共同点

2、用链接方式存储的队列,在进行插入运算时().

A.仅修改头指针 B.头、尾指针都要修改

C.仅修改尾指针D.头、尾指针可能都要修改

3、以下数据结构中哪一个是非线性结构?

()

A.队列  B.栈C.线性表  D.二叉树

4、 设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?

脚注(10)表示用10进制表示。

A.688B.678C.692D.696

5、树最适合用来表示()。

A.有序数据元素B.无序数据元素

C.元素之间具有分支层次关系的数据D.元素之间无联系的数据

6、二叉树的第k层的结点数最多为().

A.2k-1B.2K+1C.2K-1   D.2k-1

7、若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为()

A.1,2,3B.9,5,2,3

C.9,5,3D.9,4,2,3

8、对n个记录的文件进行快速排序,所需要的辅助存储空间大致为

A.O

(1)  B.O(n)  C.O(1og2n)D.O(n2)

9、对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K%9作为散列函数,则散列地址为1的元素有()个,

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

10、设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。

A.5B.6C.7D.8

第二大题每题5分

1.在如下数组A中链接存储了一个线性表,表头指针为A[0].next,试写出该线性表。

A01234567

data

 

60

50

78

90

34

 

40

next

3

5

7

2

0

4

 

1

 

参考答案

第一大题

1.答案:

A

2.答案:

D

3.答案:

D

4.答案:

C

5.答案:

C

6.答案:

D

7.答案:

D

8.答案:

C

9.答案:

D

10.答案:

A

第二大题

参考答案:

线性表为:

(78,50,40,60,34,90)

数据库

第一大题每题2分

1、关系中主码的取值必须唯一且非空,这是由___________完整性规则决定的。

2、当数据库被破坏后,如果事先保存了数据库副本和________________,就有可能恢复数据库。

3、数据库的____________是指数据库的正确性和相容性。

4、关系数据操作语言的特点是:

操作对象与结果均为___________、操作的非过程性强、语言一体化、并且建立在数学理论基础之上。

5、SQL是一种介于关系代数和_____________之间的结构化的查询语言。

6、对于每一个外模式,数据库系统都有一个_______________映象,它定义了该外模式与模式之间的对应关系。

7、视图是一个需表,它一经定义就可以和基本表一样被查询,但_________操作将有一定的限制。

8、数据仓库是一个面向主题的、_____________、不可更新的、随时间不断变化的数据集合。

9、避免活锁的简单方法是采用________________的策略。

10、知识库系统和主动数据库系统是将数据库技术和______________技术相结合产生的。

第二大题5分

事务T1和T2同时对A的值操作。

A的初值是50,事务T1对A的值减10,事务T2对A的值加倍,

1、若这两个事务并发执行,举例可能结果。

(2分)

2、请给出一个可串行化调度,并给出执行结果。

(3分)

 

参考答案

第一大题

1、答案:

实体

2、答案:

日志文件

3、答案:

完整性

4、答案:

关系

5、答案:

关系演算

6、答案:

外模式/模式

7、答案:

更新

8、答案:

集成的

9、答案:

先来先服务

10、答案:

人工智能

第二大题

1、参考答案:

80,90

2、参考答案:

T1T2

SlockA

读A=50

Y=A

UnlockA

XlockA

A=Y-10SlockA

写回A=40

等待

UnlockA等待

读A=40

Y=A

UnlockA

XlockA

A=Y×2

写回A=80

UnlockA

 

软件工程

共五题,每题5分

1、怎样克服软件危机?

  

2、软件需求规格说明书由哪些部分组成?

  

 

3、给出一组数从小到大的排序算法,用流程图描述其详细过程:

 

4、什么是白盒测试?

白盒测试主要采用的技术有哪些?

 

5、软件成本估算的一般方法?

 

参考答案:

1、答案:

(1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。

在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

  

(2)推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。

  (3)根据不同的应用领域,开发更好的软件工具并使用这些工具。

将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。

总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。

2、答案:

组成包括:

  

(1)引言:

编写目的、背景说明、术语定义及参考资料等。

  

(2)概述主要功能、约束条件或特殊需求。

  (3)数据流图与数据字典。

  (4)用户接口、硬件接口及软件接口。

  (5)性能需求、属性等。

(6)其它需求,如数据库、操作及故障处理等。

3、答案:

4、答案:

测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致。

白盒测试主要采用的技术有:

路径测试技术和事务处理流程技术,对包含有大量逻辑判断或条件组合的程序采用基于逻辑的测试技术。

5、答案:

 自顶向下估计:

首先估算出项目总的开发成本,然后在项目内部进行成本分配。

由少数专家参与,依靠他们过去的经验,将要开发的软件与过去开发过的软件进行"类比",以估计新的软件开发所需要的工作量和成本。

自底向上估计:

将开发任务分成若干子任务,子任务又分成子子任务,直到每一个单元内容足够明确为止;把各个任务单元的成本估计出来,汇合成项目的总成本。

该方法得到的结果比较接近实际。

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

当前位置:首页 > 解决方案 > 学习计划

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

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