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、答案:
自顶向下估计:
首先估算出项目总的开发成本,然后在项目内部进行成本分配。
由少数专家参与,依靠他们过去的经验,将要开发的软件与过去开发过的软件进行"类比",以估计新的软件开发所需要的工作量和成本。
自底向上估计:
将开发任务分成若干子任务,子任务又分成子子任务,直到每一个单元内容足够明确为止;把各个任务单元的成本估计出来,汇合成项目的总成本。
该方法得到的结果比较接近实际。