C语言
第一大题(每题1分)
1、以下不正确的C语言标识符是__a__。
A) int B) a_1_2 C) ab1exe D) _x
2、已知 long i=65539;执行语句printf(\;屏幕显示__c__。
A) 65539 B) -3 C) 3 D) 程序不能执行
3、温度华氏和摄氏的关系是: C=-(F-32)。已知:float C,F;由华氏求摄氏的正确的赋值表达式是__b__。
A) C=5/9(F-32) B) C=5*(F-32)/9 C) C=5/9*(F-32) D) 三个表达式都正确 4、已知以下程序段:
则执行以上语句后a和b的值分别是_b___。 A) a=3,b=4 B) a=4,b=3 C) a=4,b=4 D) a=3,b=3
5、执行语句printf(\;以后的输出结果是__d__。
A) 2:1,1:1, B) 1:1,2:1, C) 2:4,1:1 D) 1:1,2:4, 6、以下程序的输出结果是 。 main( d) A)
0.00000e+00 B) 0.0 C) 1.00000e-07 D) 0
7、以下程序的输出结果是__a__。 A) 127 B) 255 C) 128 D) 1 8、下面程序的输出结果是___c_。 main()
A) a=12 b=34 B) a=123 b=45 C) a=12 b=345 D) 语句右错误 9、下面程序的输出是 a。
A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 10、下面程序的输出结果是_d___。 A) 39 81 B) 42 84 C) 26 68 D) 28 70 第二大题(程序填空题,每题2分)
1、下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include
scanf(\; printf(\; a= ① ; b= ② ; a= ③ ;
printf(\; }
2、下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main()
{ float x,amax,amin; scanf(\; amax=x; amin=x; while( ① )
{ if(x>amax) amax=x; if( ② ) amin=x; scanf(\; }
printf(\; }
3、下面程序的功能是用辗转相除法求两个正整数m和n的最大公约数。hcf(int m,int n) { int r; if(m 4、下面程序的功能是输出两个字符串中对应相等的字符。请选择填空。#include while(x[i]!= '\\0' && y[i]!= '\\0') if(x[i]==y[i]) printf(\① ); else i++; } 5、下面程序的功能是计算S= k! 。 k=0 long fun(int n) 1 { int i; long s; for(i=1;i ① ;i++) s*=i; return( ② ); } main() { int k,n; long s; scanf(\; s= ③ ; for(k=0;k<=n;k++) s+= ④ ; printf(\; } 第三大题 (写程序 5分) 已知银行整存整取存款不同期限的月息利率分别为: 0.315% 期限一年 0.330% 期限二年 月息利率 = 0.345% 期限三年 0.375% 期限五年 0.420% 期限八年 要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。 参考答案 第二大题 1、答案: ① a+b ② a-b ③ a-b 2、答案: ① x>=0 ② x #include float money,rate,total; /* money:本金 rate:月利率 total:本利合计*/ printf(\; scanf(\; /* 输入本金和存款年限 */ if(year==1) rate=0.00315; /* 根据年限确定利率 */ else if(year==2) rate=0.00330; else if(year==3) rate=0.00345; else if(year==5) rate=0.00375; else if(year==8) rate=0.00420; else rate=0.0; total=money + money * rate * 12 * year; /* 计算到期的本利合计 */ printf(\; 数据结构 第一大题(每题2分) 1. 对一个算法的评价,不包括如下( )方面的内容。 B.并行性 2. 在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点, 则执行( )。 3. 对线性表,在下列哪种情况下应当采用链表表示?( ) B.经常需要进行插入和删除操作 一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 4. AOV网是一种( )。 D.有向无环图 5. 采用开放定址法处理散列表的冲突时,其平均查找长度( )。 A.低于链接法处理冲突 B. 高于链接法处理冲突 C.与链接法处理冲突相同 D.高于二分查找 6. 若需要利用形参直接访问实参时,应将形参变量说明为( )参数。 A.值 B.函数 C.指针 D.引用 7. 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有 相同的( )。 A.行号 B.列号 C.元素值 D.非零元素个数 8. 快速排序在最坏情况下的时间复杂度为( )。 A.O(log2 2n) B.O(nlog2n) C.0(n) D.0(n) 9. 从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。 A. O(n) B. O(1) C. O(log2 2n) D. O(n) 第二大题(5分) int Prime(int n) { int i=1; int x=(int) sqrt(n); while (++i<=x) if (n%i==0) break; if (i>x) return 1; else return 0; } (1) 指出该算法的功能; (2) 该算法的时间复杂度是多少? 参考答案: 第一大题:1.B 2.A 3.B 4.C 5.D 6.B 7.D 8.A 9.D 10.C 第二大题 (1) 判断n是否是素数(或质数) (2)O( n) 数据库 第一大题(每空1分) 1. 对于一个国家来说,数据库的建设规模、数据库信息量的 _____安全性和 _____完整性________ 已成为这个国家信息化程度的 ___衡量标准______________ 。 2. 数据模型通常由: ___数据结构,数据操作,完整约束 三部分组成。 3. 游标的功能是把 ____集合记录____________ 转换为 ____单记录____________ 。 4. 最常用的数据库的恢复技术是_____数据转储________ 和 _登陆日志文件____________。 5. _____概念________ 模型是现实世界到 ___数据模型_____ 机器模型的中间桥梁。 6. 数据独立性是指______物理_______ 和_____逻辑________ 独立性。 7. 数据库应用程序开发工具目前有 __ C++__、 _________________ 、 ________________ 、和 ___等。 8. 目前数据库产品有 SQL Server 和 ________________ 、 ________________ 等。 第二大题(5分) 关系数据库中有下列三个关系: 商店(商店代号, 商店名, 店员人数, 所在城市) 商品 ( 商品编号,商品名,价格 ) 商店 -- 商品(商店代号,商品编号,商品数量) 试用 SQL 语句写出下列查询: ( a )找出店员人数不超过 100 人或者在长沙市的所有商店的代号和商店名。( 2 分) ( b )找出供应书包的商店名。( 3分) 参考答案: 第一大题7. C++, VB, Def, C# 8. Oracle, Access 第二大题 (a) SELECT SNO,SNA FROM SHOP WHERE CITY=' 长沙 'OR SNO<=100 ( 2分) (b) SELECT SHOP.sna FROM SHOP,SHOP-GOODS,GOODS WHERE SHOP.sno=SHOP-GOODS.sno AND GOODS.gna=' 书包 ' SHOP-GOODS.gno =GOODS.gno ( 3分) 软件工程 5个题,每题5分。 1、什么是软件危机?2、需求分析的描述工具有哪些? 3、什么是模块化?模块设计的准则? 4、详细设计的主要任务?5、什么是黑盒测试?黑盒测试主要采用的技术有哪些? 2 参考答案: 1、什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。(2)软件产品的质量往往靠不住。(3)一般软件很难维护。 (4)软件生产效率很低。(5)软件开发成本越来越大。(6)软件成本与开发进度难以估计。 (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2、需求分析的描述工具有哪些? 有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier图、IPO图和需求描述语言等。 3、什么是模块化?模块设计的准则? 模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。模块设计的准则: (1) 改进软件结构, 提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。(2) 模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。(3) 软件结构图的深度、宽度、扇入和扇出要适当。一般模块的调用个数不要超过5个。(4) 尽量降低模块接口的复杂程度;(5) 设计单入口、单出口的模块。(6) 模块的作用域应在控制域之内。 4、详细设计的主要任务?编写软件的“详细设计说明书”.软件人员要完成的工作: (1) 为每一个模块确定采用的算法, 选择某种适当的工具表达算法的过程,写出模块的详细过程描述.(2) 确定每一模块使用的数据结构.(3) 确定模块结构的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及关于模块输入数据、输出数据及局部数据的全部细节.(4) 为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试. 5、什么是黑盒测试?黑盒测试主要采用的技术有哪些? 黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。 黑盒C语言 第一大题 每题1分 1、C语言程序从main()函数开始执行,所以这个函数要写在__d__。 A) 程序文件的开始 B) 程序文件的最后 C) 它所调用的函数的前面 D) 程序文件的任何位置 2、将空格符赋给字符变量c,正确的赋值语句是__d_。 A) c='\\0' B) c=NULL C) c=0 D) c=32 3、已知int x=1,y;执行下述语句后变量x的值是_b___。 y=++x>5&&++x<10; A) 1 B) 2 C) 3 D) 4 4、已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是__c__。 A) 0 B) 1 C) 5 D) 6 5、下面的for语句 c。 for(x=0,y=10;(y>0)&&(x<4);x++,y-- ) ; A) 是无限循环 B) 循环次数不定 C) 循环执行4次 D) 循环执行3次 6、以下程序的输出结果是__b__。 A) 1 1 1 B) 1 0 1 C) 1 1 0 D) 1 2 1 7、下面程序的输出结果是___c_。 A) a book! B) a book!<四个空格》 C) a bo D) 格式描述错误,输出不确定 8、以下程序的输出结果是 。 main() d A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1 C) v1=5,v2=8,v3=6,v4=1 D) v1=4,v2=7,v3=5,v4=8 9、下面程序的输出结果是__d__。 A) k=1 B) k=2 C) k=3 D) k=4 10、下面程序的输出结果是___c_。 A) k=4 B) k=8 C) k=14 D) k=18 第二大题 每题2分 1、有以下程序段: s=1.0; for(k=1;k<=n;k++) s=s+1.0/(k*(k+1)); printf(\; 填空完成下述程序,使之与上述程序的功能完全相同。 s=0.0; ① ; k=0; do { s=s+d; ② ; d=1.0/(k*(k+1)); }while( ③ ); printf(\; 2、下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数。main() { int i,j; for(i=0; ① ;i++) { j=i*10+6; if( ② ) countinue; printf(\; } } 3、下面程序的功能是将字符串s中所有的字符'c'删除。请选择填空。 #include for(i=j=0;s[i]!= '\\0';i++ ) if(s[i]!= 'c') ① ; s[j]= '\\0'; puts(s); } 4、下面的函数index(char s[], char t[])检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则送回-1。 index(char s[], char t[]) { int i,j,k; for(i=0;s[i]!= '\\0';i++ ) { for(j=i,k=0; ① && s[j]==t[k];j++,k++) ; if( ② ) return (i); } return(-1); } 5、以下程序是计算学生的年龄。已知第一位最小的学生年龄为10岁,其余学生的年龄一个比一个大2岁,求第5个学生的年龄。 #include printf(\② ); } 第三大题5分 输入n值,输出如图所示回型方阵。 3 参考答案第二大题 1、答案:① d=1 ② k++ ③ k<=n 2、答案:① i<=9 ② j%3!=03、答案:① s[j++]=s[i] 4、答案:① t[k]!= '\\0' ② t[k]== '\\0' 5、答案:① 2+age(n-1) ② age(5) 第三大题 分析:此题的关键还是要找到输出数字aij和行列数i、j的关系。为此将图形分为四个区域如下图: 3 3 3 3 3 3 2 2 2 3 3 2 1 2 3 3 2 2 2 3 3 3 3 3 3 (此图n为5) 在左上区域,即i<=(n+1)/2、j<=(n+1)/2时,输出数字为(n+1)/2-i+1和(n+1)/2-j+1中的大者,记为max{(n+1)/2-i+1,(n+1)/2-j+1};在右上区,即i<=(n+1)/2、j>(n+1)/2时, 输出数字为max{(n+1)/2-i+1,j-n/2};在左下区,即 i>(n+1)/2、j<=(n+1)/2 时,输出数字为 max{i-n/2,(n+1)/2-j+1};在右下区,即i>(n+1)/2、j>(n+1)/2时,输出数字为max{i-n/2,j-n/2}。 参考答案: #define max(x,y) ((x)>(y)?(x):(y)) main( ) { int i,j,n; printf(\; scanf(\; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) if(i<=(n+1)/2) if(j<=(n+1)/2) printf(\; else printf(\; else if(j<=(n+1)/2) printf(\; else printf(\; printf(\; } 数据结构 第一大题 每题2分 1、在一个长度为n的顺序线性表中顺序查找值为x的元素时,查找成功时的平均查找长度(即x与元素的平均比较次数,假定查找每个元素的概率都相等)为 ( )。 A n B n/2 C (n+1)/2 D (n-1)/2 2、在一个单链表中,若q所指结点是p所指结点的前驱结点,若在q与p之间插入一个s所指的结点,则执行( )。 A s→link=p→link; p→link=s; B p→link=s; s→link=q; C p→link=s→link; s→link=p; D q →link=s; s→link =p; 3、栈的插入和删除操作在( )进行。 A 栈顶 B 栈底 C 任意位置 D 指定位置 4、由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( ) A 24 B 71 C 48 D 53 第二大题 每题6分 1、已知一组记录的排序码为(46,79,56,38,40,80, 95,24),写出对其进行快速排序的每一次划分结果。 2、一个线性表为B=(12,23,45,57,20,03,78,31,15,36),设散列表为HT[0..12],散列函数为H(key)= key % 13并用线性探查法解决冲突,请画出散列表,并计算等概率情况下查找成功的平均查找长度。 第三大题 5分 假定从键盘上输入一批整数,依次为:78 63 45 30 91 34 –1,请写出输出结果。 # include < iostream.h> # include < stdlib.h > consst int stackmaxsize = 30; typedef int elemtype; struct stack { elemtype stack [stackmaxsize]; int top; }; # include “stack.h” Void main ( ) { stack a; initstack(a); int x; cin >>x; while (x! = -1) { 1、下述说法中没有体现数据库系统特点的是( )A.数据面向应用程序 push (a, x ); 2、在数据库技术中,独立于计算机系统的模型是( )。A.E-R模型 cin >>x; 3、SQL中的视图提高了数据库系统的( ) D.安全性 } 4、关系模型基本的数据结构是( ) while (!stackempty (a)) A树 B图 C索引 D关系 cout < } A.r+s B.r-s C.r×s D.max(r,s) 该算法的输出结果为: 6、要求“学生”关系的“性别”属性只能取0或1,这属于关系的( ) 参考答案: A.参照完整性规则 B.实体完整性规则 第一大题 C.用户自定义完整性规则 D.域完整性规则 题 号 1 2 3 7、下面不属于实现安全性措施的是( 4 ) 答 案 C D A A.授权规则 B B.数据加密 C.视图机制 D.日志文件 8、给出如下事务 第二大题 CREATE TABLE dwaine.mytab (col1 INT, col2 INT) 1、 INSERT INTO dwaine.mytab VALUES (1,2) 划分次序 划分结果 INSERT INTO dwaine.mytab VALUES (4,3) 第一次 [38 24 40] 46 [56 80 95 79] ROLLBACK 第二次 24 [38 40] 46 [56 80 95 79] SQL 语句 SELECT * FROM dwaine.mytab 的返回值为( ) A. COL1 COL2 第三次 24 38 40 46 [56 80 95 79] ----------- ----------- 第四次 24 38 40 46 56 [80 95 79] 没有数据被选取 B. COL1 COL2 第五次 24 38 40 46 56 79 [80 95] ----------- ----------- 第六次 24 38 40 46 56 79 80 95 1 2 选择了1行数据 2、 C. SQLCODE -204 \未定义. D. COL1 COL2 ----------- ----------- 0 1 2 3 4 5 6 7 8 1 2 4 3 9 10 11 12 78 15 03 57 45 20 31 9、下面创建表t1,并使得表中employid字段值唯一的sqlA CREATE TABLE t1 (employid INTEGER) 23 36 12 语句是( ) B CREATE TABLE t1 (employid UNIQUE INTEGER) 查找成功的平均查找长度:ASL SUCC=14/10= 1.4 C CREATE TABLE t1 (employid INTEGER NOT NULL) D CREATE TABLE t1 (employid INTEGER NOT NULL, primary key (employid)) 第三大题 10、表employee中有下列字段:name、department、phone_number, 1、 该算法的输入结果是:34 91 30 45 63 78 下面那些操作可以限制人们对phon_number字段的访问(多选)? A 使用视图来访问表 数据库 B 在phone_number字段创建索引 第一大题 每题2分 C 在表中使用check约束 D 收回对phone_number字段的访问权限 4 E 在表中使用参照完整性约束 第二大题 5分 什么是关系数据库管理系统及其作用? 参考答案: 第一大题 1、答案:A 2a 3d 4d 5c 6c 7d 8a 9d10ad 第二大题 答案:(dbms: 是位于用户和操作系统之间的一层数据管理软件,提供建立,管理,维护及控制数据库功能的一组计算机软件,主要提供以下功能:数据定义功能、数据操纵功能、2、数据库的建立与维护、数据库的运行与管理。) 软件工程 5个题,每题5分。 1、什么是软件生存周期?2、什么是结构化分析?它的结构化体现在哪里?3、事务分析设计的步骤? 4、详细设计的目的?5、软件工具是什么?按照软件生存周期可将其分为几类? 参考答案 1、什么是软件生存周期?答案:软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 2、什么是结构化分析?它的结构化体现在哪里?答案:结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。 结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。 3、事务分析设计的步骤? 答案:(1) 在DFD图中确定事务中心、接收部分(包含全部接收路径)和发送部分(包含全部动作路径); (2) 画出SC图框架,把DFD图的三部分分?quot;映射\为事务控制模块,接收模块和动作发送模块.一般得到SC图的顶层和第一层(如果第一层简单可以并入顶层); (3) 分解和细化接收分支和动作分支,完成初始的SC图; (4) 对初始结构图按照设计准则进行精化与改进。 4、详细设计的目的?答案:为软件结构图(SC图或HC图)中的每一个模块确定采用的算法和块内数据结构,用某种选定的表达工具给出清晰的描述. 5、软件工具是什么?按照软件生存周期可将其分为几类? 答案:软件工具是指为支持计算机软件及其文档的开发、维护、模拟、移植或管理而研制的程序系统。按照软件生存周期可将其分为如下几类: (1) 需求分析:如数据流图绘制与分析工具、状态转换图绘制与分析工具、面向对象的模型和分析工具、快速原型构造工具、数据字典与数据库工具等。 (2) 软件设计:如HIPO图、PDL(程序设计语言)或PAD(问题分析图) 支持工具等。 (3) 编码:集成化的程序员工作平台。如各种正文编辑器和常规的编译程序、汇编程序、连结程序及符号调试器等。 (4) 软件测试:如静态分析器、动态覆盖率测试器、测试用例生成器、测试报告生成器及环境模拟器等。 (5) 软件维护:如反汇编程序、反编译程序、程序结构分析器、源程序格式化工具、文档生成工具、源程序至PAD(问题分析图)或流程图的自动转换工具等。 测试主要采用的技术有:等价分类法、边沿值分析法、错误推测法和因果图等技术。 C语言 第一大题 每题1分 1、下列不属于C语言关键字的是________ 。 A) default B) register C) enum D) external 2、下列转义字符中错误的一个是____。 A) '\\000' B) '\\0014' C) '\\x111' D) '\\2' 3、已知int i=10;表达式\的值是____。 A) 0 B) 1 C) 19 D) 20 4、已知 int a=15,执行语句a=a<<2以后,变量a的值是____。 A) 20 B) 40 C) 60 D) 80 5、求取满足式 12+22+32+ ?? +n2 ≤1000的n,正确的语句是____。 A) for(i=1,s=0;(s=s+i*i)<=1000;n=i++) ; B) for(i=1,s=0;(s=s+i*i)<=1000;n=++i) ; C) for(i=1,s=0;(s=s+i*++i)<=1000;n=i) ; D) for(i=1,s=0;(s=s+i*i++)<=1000;n=i) ; 6、以下程序的输出结果是 。 main( ) { int x=10, y=10; printf(\――, ――y); } A) 10 10 B) 9 9 C) 9 10 D) 10 9 7、下面程序的输出结果是____。 main() { int a=111; a=a^00; printf(\; } A) 111,157 B) 0,0 C) 20,24 D) 7,7 5 8、下面程序的输出结果为 。 main() { int a=1,b=0; switch(a) { case 1: switch (b) { case 0: printf(\; break; case 1: printf(\; break; } case 2: printf(\; break; } } A) **0** B) **0****2** C) **0****1****2** D) 有语法错误 9、从键盘上输入\时,下面程序的输出是____。 #include printf(\; } A) 888988 B) 668966 C) 88898787 D) 66898787 10、下面程序的输出结果是____。 A) x=4 B) x=8 C) x=6 D) x=12 第二大题 每题2分 1、下面程序的功能是计算1-3+5-7+ ?? -99+101的值。 main() { int i,t=1,s=0; for(i=1;i<=101;i+=2) { ① ; s=s+t; ② ; } printf(\; } 2、下面程序的功能是统计用0至9之间的不同的数字组成的三位数的个数。main() { int i,j,k,count=0; for(i=1;i<=9;i++) for(j=0;j<=9;j++) if( ① ) continue; else for(k=0;k<=9;k++) if( ② ) count++; printf(\;