存储笔试题
1. 数据库经典笔试题和面试题答案
如下这些有关数据库知识考查的经典笔试题,非常全面,对计算机专业毕业生参加笔试会很有帮助,建议大家收藏。
一、选择题
1. 下面叙述正确的是___c___。
A、算法的执行效率与数据的存储结构无关
B、算法的空间复杂度是指算法程序中指令(或语句)的条数
C、算法的有穷性是指算法必须能在执行有限个步骤之后终止
D、以上三种描述都不对
2. 以下数据结构中不属于线性数据结构的是___c___。
A、队列B、线性表C、二叉树D、栈
3. 在一棵二叉树上第5层的结点数最多是__b____。2的(5-1)次方
A、8 B、16 C、32 D、15
4. 下面描述中,符合结构化程序设计风格的是___a___。
A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
B、模块只有一个入口,可以有多个出口
C、注重提高程序的执行效率 D、不使用goto语句
5. 下面概念中,不属于面向对象方法的是___d___。
A、对象 B、继承 C、类 D、过程调用
6. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是___b___。
A、可行性分析 B、需求分析 C、详细设计 D、程序编码
7. 在软件开发中,下面任务不属于设计阶段的是__d____。
A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型
8. 数据库系统的核心是___b___。
A、数据模型 B、数据库管理系统 C、软件工具 D、数据库
9. 下列叙述中正确的是__c____。
A、数据库是一个独立的系统,不需要操作系统的支持
B、数据库设计是指设计数据库管理系统
C、数据库技术的根本目标是要解决数据共享的问题
D、数据库系统中,数据的物理结构必须与逻辑结构一致
10. 下列模式中,能够给出数据库物理存储结构与物理存取方法的是___a___。
A、内模式 B、外模式 C、概念模式 D、逻辑模式
11. Visual FoxPro数据库文件是___d___。
A、存放用户数据的文件 B、管理数据库对象的系统文件
C、存放用户数据和系统的文件 D、前三种说法都对
12. SQL语句中修改表结构的命令是___c___。
A、MODIFY TABLE B、MODIFY STRUCTURE
C、ALTER TABLE D、ALTER STRUCTURE
13. 如果要创建一个数据组分组报表,第一个分组表达式是"部门",第二个分组表达式是"性别",第三个分组表达式是"基本工资",当前索引的索引表达式应当是__b____。
A、部门+性别+基本工资 B、部门+性别+STR(基本工资)
C、STR(基本工资)+性别+部门 D、性别+部门+STR(基本工资)
14. 把一个项目编译成一个应用程序时,下面的叙述正确的是___a___。
A、所有的项目文件将组合为一个单一的应用程序文件
B、所有项目的包含文件将组合为一个单一的应用程序文件
C、所有项目排除的文件将组合为一个单一的应用程序文件
D、由用户选定的项目文件将组合为一个单一的应用程序文件
15. 数据库DB、数据库系统DBS、数据库管理系统DBMS三者之间的关系是_a___。
A、DBS包括DB和DBMS B、DBMS包括DB和DBS
C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS
16. 在"选项"对话框的"文件位置"选项卡中可以设置___b___。
A、表单的默认大小 B、默认目录
C、日期和时间的显示格式 D、程序代码的颜色
17. 要控制两个表中数据的完整性和一致性可以设置"参照完整性",要求这两个表_a_。
A、是同一个数据库中的两个表 B、不同数据库中的两个表
C、两个自由表 D、一个是数据库表另一个是自由表
18. 定位第一条记录上的命令是___a___。
A、GO TOP B、GO BOTTOM C、GO 6 D、SKIP
19. 在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过__b____。
A、候选键 B、主键 C、外键 D、超键
20. 设当前数据库有10条记录(记录未进行任何索引),在下列三种情况下,当前记录号为1时;EOF()为真时;BOF()为真时,命令?RECN()的结果分别是___a___。
A、1,11,1 B、1,10,1 C、1,11,0 D、1,10,0
21. 下列表达式中结果不是日期型的是___c___。
A、CTOD("2000/10/01") B、{^99/10/01}+365
C、VAL("2000/10/01") D、DATE()
22. 只有满足联接条件的记录才包含在查询结果中,这种联接为___c___。
A、左联接 B、右联接 C、内部联接 D、完全联接
23. 索引字段值不唯一,应该选择的索引类型为___b___。
A、主索引 B、普通索引 C、候选索引 D、唯一索引
24. 执行SELECT 0选择工作区的结果是___b___。
A、选择了0号工作区 B、选择了空闲的最小号工作区
C、关闭选择的工作区 D、选择已打开的工作区
25. 从数据库中删除表的命令是___a___。
A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE
26. DELETE FROM S WHERE 年龄>60语句的功能是__b____。
A、从S表中彻底删除年龄大于60岁的记录
B、S表中年龄大于60岁的记录被加上删除标记
C、删除S表 D、删除S表的年龄列 1 2
2. 华为C语言笔试题和面试题答案
一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)
1、有数组定义inta={{1},{2,3}};则a[0]的值为0。()
2、int(*ptr)(),则ptr是一维数组的名字。()
3、指针在任何情况下都可进行>,<,>=,<=,==运算。()
4、switch(c)语句中c可以是int,long,char,float,unsignedint类型。()
5、#defineprint(x)printf("theno,"#x",is")
二、填空题(共30分)
1、在windows下,写出运行结果,每空2分,共10分。
charstr[]="Hello";
char*p=str;
intn=10;
sizeof(str)=()
sizeof(p)=()
sizeof(n)=()
voidfunc(charstr[100])
{}
sizeof(str)=()
2、voidsetmemory(char**p,intnum)
{*p=(char*)malloc(num);}
voidtest(void)
{char*str=NULL;
getmemory(&str,100);
strcpy(str,"hello");
printf(str);
}
运行
test函数有什么结果?()
10分
3、设
intarr[]={6,7,8,9,10};
int*ptr=arr;
(ptr++)+=123;
printf("%d,%d",*ptr,*(++ptr));
()10分
三、编程题(第一小题20,第二小题30分)
1、不使用库函数,编写函数
intstrcmp(char*source,char*dest)
相等返回
0,不等返回
-1;
2、写一函数
intfun(char*p)判断一字符串是否为回文,是返回
1,不是返回
0,出错返回
-1
阅读了本文,本站还为你提供以下可能你会感兴趣的相关文章:
厦新笔试真题
安信证券笔试题
日立环球存储笔试题目
3. 三级笔试题填空比较
那两道题没有矛盾,是优先顺序的问题.
有二维数组a[0-j][0-k],
第一题是数组按"列"优先顺序存储,那么
a[n][m]的存储地址=首地址+(m*(j+1)+n)*字节数;
第二题是数组按"行"优先顺序存储,那么
a[n][m]的存储地址=首地址+(n*(k+1)+m)*字节数;
上面j+1是行数,k+1是列数.
第二题就是n=8,k+1=10.
4. 数据库常见笔试面试题
数据库常见笔试面试题
数据库常见笔试面试题有哪些?数据库常见笔试面试会考什么?下面是数据库常见面试题总结,为大家提供参考。
1、SQL的表连接方式有哪些?
SQL中连接按结果集分为:内连接,外连接,交叉连接
内连接:inner join on,两表都满足的组合。内连接分为等值连接,不等连接,自然连接。
等值连接:两表中相同的列都会出现在结果集中。
自然连接:两表中具体相同列表的列会合并为同一列出现在结果集中。
外连接:分为左(外)连接,右(外)连接,全连接
左(外)连接:A left (outer) join B,以A表为基础,A表的全部数据,B表有的组合,没有的为null。
右(外)连接:A right(outer) join B,以B表为基础,B表的全部数据,A表有的组合,没有的位null。
全连接:A full (outer) join 两表相同的组合在一起,A表有,B表没有的数据(显示为null),同样B表有,A表没有的显示为null。
交叉连接:cross join,就是笛卡尔乘积。
2、三范式
1NF:表中的字段都是单一属性,不再可分。
2NF:在1NF的基础上,表中所有的非主属性都必须完全依赖于任意一组候选键,不能仅依赖于候选键中的某个属性。
3NF:在2NF的基础上,表中所有的属性都不依赖其他非主属性。
简单的说就是:1NF表示每个属性不可分割,2NF表示非主属性不存在对主键的部分依赖,3NF表示不存在非主属性对主键的依赖传递。
3、表的操作
表的创建:create table 表名 (列名1 类型 约束,列2 类型 约束…)
表的删除: 表名
表的更改(结构的更改,不是记录的更新):alter table 表名 add|drop 列名|约束名
插入记录: into 表名…values…
更新记录:表名 set 列名=值 where 条件
删除记录: from 表名 where 条件
4、数据的完整性
数据完整性指的是存储在数据库中的数据的一致性和准确性。
完整性分类:
(1)实体完整性:主键值必须唯一且非空。(主键约束)
(2) 引用完整性(也叫参照完整性):外键要么为空,要么引用主表中存在的记录。(外键约束)。
(3)用户自定义完整性:针对某一具体关系数据库中的约束条件。
5、SQL的查询优化
(1)从表连接的角度优化:尽量使用内连接,因为内连接是两表都满足的行的组合,而外连接是以其中一个表的全部为基准。
(2)尽量使用存储过程代替临时写SQL语句:因为存储过程是预先编译好的SQL语句的集合,这样可以减少编译时间。
(3)从索引的角度优化:对那些常用的查询字段简历索引,这样查询时值进行索引扫描,不读取数据块。
(4)还有一些常用的select优化技巧:
(5)A.只查询那些需要访问的字段,来代替select*
B、将过滤记录越多的where语句向前移:在一个SQL语句中,如果一个where条件过滤的数据库记录越多,定位越准确,则该where条件越应该前移。
6、索引的作用,聚集索引与非聚集索引的区别
索引是一个数据库对象,使用索引,可以是数据库程序无须对整个数据进行扫描,就可以在其中找到目标数据,从而提高查找效率。索引的底层采用的是B树。
聚集索引:根据记录的key再表中排序数据行。
非聚集索引:独立于记录的结构,非聚集所以包含的`key,且每个键值项都有指向该简直的数据行的指针。
聚集索引与非聚集索引的区别:
(1)聚集索引的物理存储按索引排序,非聚集所以的物理存储不按索引排序。
(2) 聚集索引插入,更新数据的速度比非聚集索引慢,单查询速度更快。
(3) 聚集索引的叶级结点保存的是时间的数据项,而非聚集结点的叶级结点保存的是指向数据项的指针。
(4)一个表只能有一个聚集索引(因为只有一种排序方式),但可以有多个非聚集索引。
7、存储过程与函数的区别
(1)函数有返回值,存储过程没有返回值。
(2) 因为存储过程没有返回值,所以不能将存储过程的执行结果赋值给变量;函数有返回值类型,调用函数时,可以将函数的执行结果赋值给变量。也就是说,函数可以在select语句中使用,而存储过程则不能。
5. 2008年9月vf笔试题
2008年9月全国计算机等级考试二级笔试试卷
Visual FoxPro数据库程序设计
(考试时间90分钟,满分100分)
一、选择题(每小题2分,共70分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是
A)12345ABCDE B)EDCBA54321
C )ABCDE12345 D)54321EDCBA
(2)下列叙述中正确的是
A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B)在循环队列中,只需要队头指针就能反应队列中元素的动态变化情况
C)在循环队列中,只需要队尾指针就能反应队列中元素的动态变化情况
D)循环队列中元素的个数是由队头和队尾指针共同决定
(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是
A)O(N) B)O(n2) C)O(log2n) D)O(n log2n)
(4)下列叙述中正确的是
A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C)顺序存储结构能存储有序表,链式存储结构不能存储有序表
D)链式存储结构比顺序存储结构节省存储空间
(5)数据流图中带有箭头的线段表示的是
A)控制流 B)事件驱动 C)模块调用 D)数据流
(6)在软件开发中,需求分析阶段可以使用的工具是
A)N-S图 B)DFD图 C)PAD图 D)程序流程图
(7)在面向对象方法中,不属于“对象”基本特点的是
A)一致性 B)分类性 C)多态性 D)标识唯一性
(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是
A)一对一 B)一对多 C)多对一 D)多对多
(9)在数据管理技术发展的三个阶段中,数据共享最好的是
A)人工管理阶段 B)文件系统阶段
C)数据库系统阶段 D)三个阶段相同
(10)有三个关系R、S和T如下:
A B C
m 1 3
R S T
A B
m 1
n 2
B C
1 3
3 5
由关系R和S通过运算得到关系T,则所使用的运算为
A)笛卡尔积 B)交 C)并 D)自然连接
(11)设置表单标题的属性是
A)Title B)Text C)Biaoti D)Caption
(12)释放和关闭表单的方法是
A)Release B)Delete C)LostFocus D)Destory
(13)从表中选择字段形成新关系的操作是
A)选择 B)连接 C)投影 D)并
(14)Modify Command命令建立的文件的默认扩展名是
A)prg B)app C)cmd D)exe
(15)说明数组后,数组元素的初值是
A)整数0 B)不定值 C)逻辑真 D)逻辑假
(16)扩展名为mpr的文件是
A)菜单文件 B)菜单程序文件 C)菜单备注文件 D)菜单参数文件
(17)下列程序段执行以后,内存变量y的值是
x=76543
y=0
DO WHILE x>0
y=x%10+y*10
x=int(x/10)
ENDDO
A)3456 B)34567 C)7654 D)76543
(18)在SQL SELECT查询中,为了使查询结果排序应该使用短语
A)ASC B)DESC C)GROUP BY D)ORDER BY
(19)设a=”计算机等级考试”,结果为”考试”的表达式是
A)Left(a,4) B)Right(a,4) C)Left(a,2) D)Right(a,2)
(20)关于视图和查询,以下叙述正确的是
A)视图和查询都只能在数据库中建立
B)视图和查询都不能在数据库中建立
C)视图只能在数据库中建立
D)查询只能在数据库中建立
(21)在SQL SELECT语句中与INTO TABLE等价的短语是
A)INTO DBF B)TO TABLE C)TO FOEM D)INTO FILE
(22)CREATE DATABASE命令用来建立
A)数据库 B)关系 C)表 D)数据文件
(23)欲执行程序temp.prg,应该执行的命令是
A)DO PRG temp.prg B)DO temp.prg
C)DO CMD temp.prg D)DO FORM temp.prg
(24)执行命令MyForm=CreateObject(“Form”)可以建立一个表单,为了让该表单在屏幕上显示,应该执行命令
A)MyForm.List B)MyForm.Display
C)MyForm.Show D)MyForm.ShowForm
(25)假设有student表,可以正确添加字段“平均分数”的命令是
A)ALTER TABLE student ADD 平均分数 F(6,2)
B)ALTER DBF student ADD 平均分数 F 6,2
C)CHANGE TABLE student ADD 平均分数 F(6,2)
D)CHANGE TABLE student INSERT 平均分数 6,2
(26)页框控件也称作选项卡控件,在一个页框中可以有多个页面,页面个数的属性是
A)Count B)Page C)Num D)PageCount
(27)打开已经存在的表单文件的命令是
A)MODIFY FORM B)EDIT FORM
C)OPEN FORM D)READ FORM
(28)在菜单设计中,可以在定义菜单名称时为菜单项指定一个访问键。规定了菜单项的访问键为“x”的菜单名称定义是
A)综合查询\<(x) B)综合查询/<(x)
C)综合查询(\<x) D)综合查询(/<x)
(29)假定一个表单里有一个文本框Text1和一个命令按钮组CommandGroup1。命令按钮组是一个容器对象,其中包含Command1和Command2两个命令按钮。如果要在Command1命令按钮的某个方法中访问文本框的Value属性值,正确的表达式是
A)This.ThisForm.Text1.Value B)This.Parent.Parent.Text1.Value
C)Parent.Parent.Text1.Value D)This.Parent.Text1.Value
(30)下面关于数据环境和数据环境中两个表之间关联的陈述中,正确的是
A)数据环境是对象,关系不是对象
B)数据环境不是对象,关系是对象
C)数据环境是对象,关系是数据环境中的对象
D)数据环境和关系都不是对象
(31)~(35)使用如下关系:
客户(客户号,名称,联系人,邮政编码,电话号码)
产品(产品号,名称,规格说明,单价)
订购单(订单号,客户号,订购日期)
订购单名细(订单号,序号,产品号,数量)
(31)查询单价在600元以上的主机板和硬盘的正确命令是
A)SELECT * FROM 产品 WHERE 单价>600 AND (名称=’主机板’ AND 名称=’硬盘’)
B)SELECT * FROM 产品 WHERE 单价>600 AND (名称=’主机板’ OR 名称=’硬盘’)
C)SELECT * FROM 产品 FOR 单价>600 AND (名称=’主机板’ AND 名称=’硬盘’)
D)SELECT * FROM 产品 FOR 单价>600 AND (名称=’主机板’ OR 名称=’硬盘’)
(32)查询客户名称中有“网络”二字的客户信息的正确命令是
A)SELECT * FROM 客户 FOR 名称 LIKE "%网络%"
B)SELECT * FROM 客户 FOR 名称 ="%网络%"
C)SELECT * FROM 客户 WHERE 名称 ="%网络%"
D)SELECT * FROM 客户 WHERE 名称 LIKE "%网络%"
(33)查询尚未最后确定订购单的有关信息的正确命令是
A)SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单
WHERE 客户.客户号=订购单.客户号 AND 订购日期 IS NULL
B)SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单
WHERE 客户.客户号=订购单.客户号 AND 订购日期 = NULL
C)SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单
FOR 客户.客户号=订购单.客户号 AND 订购日期 IS NULL
D)SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单
FOR 客户.客户号=订购单.客户号 AND 订购日期 = NULL
(34)查询订购单的数量和所有订购单平均金额的正确命令是
A)SELECT COUNT(DISTINCT 订单号),AVG(数量*单价)
FROM 产品 JOIN 订购单名细 ON 产品.产品号=订购单名细.产品号
B)SELECT COUNT(订单号),AVG(数量*单价)
FROM 产品 JOIN 订购单名细 ON 产品.产品号=订购单名细.产品号
C)SELECT COUNT(DISTINCT 订单号),AVG(数量*单价)
FROM 产品,订购单名细 ON 产品.产品号=订购单名细.产品号
D)SELECT COUNT(订单号),AVG(数量*单价)
FROM 产品,订购单名细 ON 产品.产品号=订购单名细.产品号
(35)假设客户表中有客户号(关键字)C1~C10共10条客户记录,订购单表有订单号(关键字)OR1~OR8共8条订购单记录,并且订购单表参照客户表。如下命令可以正确执行的是
A)INSERT INTO 订购单 VALUES(‘OR5’,’C5’,{^2008/10/10})
B)INSERT INTO 订购单 VALUES(‘OR5’,’C11’,{^2008/10/10})
C)INSERT INTO 订购单 VALUES(‘OR9’,’C11’,{^2008/10/10})
D)INSERT INTO 订购单 VALUES(‘OR9’,’C5’,{^2008/10/10})
二、填空题(每空2分,共30分)
请将每一个空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
注意:以命令关键字填空的必须拼写完整。
(1)对下列二叉树进行中序遍历的结果是 【1】 。
(2)按照软件测试的一般步骤,集成测试应在 【2】 测试之后进行。
(3)软件工程三要素包括方法、工具和过程,其中, 【3】 支持软件开发的各个环节的控制和管理。
(4)数据库设计包括概念设计、 【4】 和物理设计。
(5)在二维表中,元组的 【5】 不能再分成更小的数据项。
(6)SELECT * FROM student 【6】 FILE student 命令将查询结果存储在student.txt文本文件中。
(7)LEFT("12345.6789",LEN("子串"))的计算结果是【7】 。
(8)不带条件的SQL DELETE命令将删除指定表的【8】记录。
(9)在SQL SELECT语句中为了将查询结果存储到临时表中应该使用【9】短语。
(10)每个数据库表可以建立多个索引,但是【10】索引只能建立1个。
(11)在数据库中可以设计视图和查询,其中【11】不能独立存储为文件(存储在数据库中)。
(12)在表单中设计一组复选框(CheckBox)控件是为了可以选择【12】个或【13】个选项。
(13)为了在文本框输入时隐藏信息(如显示“*”),需要设置该控件的【14】属性。
(14)将一个项目编译成一个应用程序时,如果应用程序中包含需要用户修改的文件,必须将该文件标为【15】 。
2008年9月全国计算机等级考试二级VFP笔试参考答案
一、选择题
1-5 BDCAD
6-10 BABCD
11-15 DACAD
16-20 BBDBC
21-25 AABCA
26-30 DACBC
31-35 BDAAD
二、填空题
1、DBXEAYFZC
2、单元
3、过程
4、逻辑设计
5、分量
6、TO
7、"1234 "
8、全部
9、INTO CURSOR
10、主
11、视图
12、零
13、多
14、PASSWORDCHAR
15、排除
6. 亲们,求新浪的C/C++方面的笔试题啊,有效期到2011-09-25 12:00:00哦,再晚,就关闭问题了
一、选择题
(1)数据的存储结构是指
(A)存储在外存中的数据 (B)数据所占的存储空间量
(C)数据在计算机中的顺序存储方式 (D)数据的逻辑结构在计算机中的表示
(2)下列关于栈的描述中错误的是
(A)栈是先进后出的先性表
(B)栈只能顺序存储
(C)栈具有记忆作用
(D)对栈的插入和删除操作中,不需要改变栈底指针
(3)对于长度为N的线性表,在最坏的情况下,下列各排序法所对应的比较次数中正确的是
(A)冒泡排序为N/2 (B)冒泡排序为N
(C)快速排序为N (D)快速排序为N(N-1)/2
(4)对长度为N的线性表进行顺序查找,在最坏的情况下所需要的比较次数为
(A)log2n (B)n/2 (C)n (D)n+1
(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)以上三种说法都不对
(10)用树形结构表示实体之间联系的模型是
(A)关系模型 (B)网状模型 (C)层次模型 (D)以上三个都是
(11)算法具有五个特性,以下选项中不属于算法特性的是
(A)有穷性 (B)简洁性 (C)可行性 (D)确定性
(12)以下选项中可作为C语言合法常量的是
(A)-80. (B)-080 (C)-8e1.0 (D)-80.0e
(13)以下叙述中正确的是
(A)用C语言实现的算法必须要有输入和输出操作
(B)用C语言实现的算法可以没有输出但必须要有输入
(C)用C程序实现的算法可以没有输入但必须要有输出
(D)用C程序实现的算法可以既没有输入也没有输出
(14)以下不能定义为用户标识符是
(A)Main (B)_0 (C)_int (D)sizeof
(15)以下选项中,不能作为合法常量的是
(A)1.234e04 (B)1.234e0.4 (C)1.234e+4 (D)1.234e0
(16)数字字符0的ASCII值为48,若有以下程序
main()
{
char a='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是
(A)3,2 (B)50,2 (C)2,2 (D)2,50
(17)有以下程序
main()
{
int m=12,n=34;
printf("%d%d",m++,++n); printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是
(A)12353514 (B)12353513 (C)12343514 (D)12343513
(18)有以下语句:int b;char c[10];,则正确的输入语句是
A)scanf("%d%s",&b,&c); B) scanf("%d%s",&b,c);
c)scanf("%d%s",b,c); D)scanf("%d%s",b,&c);
(19)有以下程序
main()
{
int m,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}
若想从键盘上输入数据,使变量M中的值为123,N中的值为456,P中的值为789,则正确的输入是
A)M=123N=456P=789 B)M=123 N=456 P=789 C)M=123,N=456,P=789 D)123 456 789
(20)有以下程序
main()
{
int a,b,d=25;
a=d/10%9;b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是
A)6,1 B)2,1 C)6,0 D)2,0
(21)有以下程序
main()
{
int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d\n",i,j,k);
}
程序运行后的输出结果是
(A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 3
(22)若整型变量a、b、c、d中的值依次为:1、4、3、2。
则条件表达式a>b?c:d的值为
A) 1 B)2 C)3 D)
(23)有以下程序
main()
{
int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7) if(p[i]%2) j+=p[i];
printf("%d\n",j);
}
程序运行后的输出结果是
A)42 B)45 C)56 D)60
(24)有以下程序
main()
{
char a[7]="a0\0a0\0"; int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %d\n",i,j);
}
程序运行后的输出结果是
A)2 2 B)7 6 C)7 2 D)6 2
(25)以下能正确定义一维数组的选项是
A)int a[5]={0,1,2,3,4,5}; B)char a[]={0,1,2,3,4,5};
C)char a={'A','B','C'}; D)int a[5]="0123";
(26)有以下程序
int f1(int x,int y){return x>y?x:y;}
int f2(int x,int y){return x>y?y:x;}
main()
{
int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);
}
程序运行后的输出结果是
A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7
27)已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是
A)数组a和b的长度相同 B)a数组长度小于b数组长度
C)a数组长度大于b数组长度 D)上述说法都不对
28)有以下程序
void f(int *x,int *y)
{
int t;
t=*x;*x=*y;*y=t;
}
main()
{
int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p
{f(p,q);p++;q--;}
for(i=0;i<8;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是
A)8,2,3,4,5,6,7,1, B)5,6,7,8,1,2,3,4,
C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,1,
29)有以下程序
main()
{
int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d",a[1][i]);
}
程序运行后的输出结果是
A)0 1 2 B)1 2 3 C)2 3 4 D)3 4 5
(30)以下叙述中错误的是
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出"下标越界"的出错信息
D)可以通过赋初值的方式确定数组元素的个数
(31)有以下程序
#define N 20
fun(int a[],int n,int m)
{int i,j;
for(i=m;i>=n;i--)a[i+1]=a[i];
}
main()
{
int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)printf("%d",a[i]);
}
程序运行后的输出结果是
A)10234 B)12344 C)12334 D)12234
32)有以下程序
main()
{
int a[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{ptr=a+i;scanf("%d",ptr);ptr++;}
for(i=0;i<3;i++)
{for(j=0;j<2;j++)printf("%2d",a[i][j]);
printf("\n");
}
}
若运行时输入:1 2 3<回车>,则输出结果是
A)产生错误信息 B)1 0 C)1 2 D)1 0
2 0 3 0 2 0
0 0 0 0 3 0
33)有以下程序
prt(int *m,int n)
{int i;
for(i=0;i
}
main()
{
int a[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++)
printf("%d,",a[i]);
}
程序运行后的输出结果是
A)1,2,3,4,5, B)2,3,4,5,6, C)3,4,5,6,7, D)2,3,4,5,1,
34)有以下程序
main()
{int a[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p
}
程序运行后的输出结果是
A)1,2,3,4,5,6,7,8,9,0, B)2,3,4,5,6,7,8,9,10,1,
C)0,1,2,3,4,5,6,7,8,9, D)1,1,1,1,1,1,1,1,1,1,
35)有以下程序
#define P 3
void F(int x){return(P*x*x);}
main()
{printf("%d\n",F(3+5));}
程序运行后的输出结果是
A)192 B)29 C)25 D)编译出错
36)有以下程序
main()
{int c=35;printf("%d\n",c&c);}
程序运行后的输出结果是
A)0 B)70 C)35 D)1
37)以下叙述中正确的是
A)预处理命令行必须位于源文件的开头
B)在源文件的一行上可以有多条预处理命令
C)宏名必须用大写字母表示
D)宏替换不占用程序的运行时间
38)若有以下说明和定义
union dt
{int a;char b;double c;}data;
以下叙述中错误的是
A)data的每个成员起始地址都相同
B)变量data所占的内存字节数与成员c所占字节数相等
C)程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000
D)data可以作为函数的实参
39)以下语句或语句组中,能正确进行字符串赋值的是
A)char *sp;*sp="right!"; B)char s[10];s="right!";
C)char s[10];*s="right!"; D)char *sp="right!";
40)设有如下说明
typedef struct ST
{long a;int b;char c[2];}NEW;
则下面叙述中正确的是
A)以上的说明形式非法 B)ST是一个结构体类型
C)NEW是一个结构体类型 D)NEW是一个结构体变量
41)有以下程序
main()
{int a=1,b;
for(b=1;b<=10;b++)
{if(a>=8)break;
if(a%2==1){a+=5;continue;}
a-=3;
}
printf("%d\n",b);
}
程序运行后的输出结果是
A) 3 B) 4 C)5 D) 6
42)有以下程序
main()
{char s[]="159",*p;
p=s;
printf("%c",*p++);printf("%c",*p++);
}
程序运行后的输出结果是
A)15 B)16 C)12 D)59
43)有以下函数
fun(char *a,char *b)
{while((*a!='\0')&&(*b!='\0')&&(*a==*b))
{a++;b++;}
return(*a-*b);
}
该函数的功能是
A)计算a和b所指字符串的长度之差
B)将b所指字符串连接到a所指字符串中
C)将b所指字符串连接到a所指字符串后面
D)比较a和b所指字符串的大小
44)有以下程序
main()
{int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<=i;j++)printf("%4c",' ');
for(j=_____;j<4;j++)printf("%4d",num[i][j]);
printf("\n");
}
}
若要按以下形式输出数组右上半三角
1 2 3 4
6 7 8
11 12
16
则在程序下划线处应填入的是
A)i-1 B)i C)i+1 D)4-i
45)有以下程序
point(char *p){p+=3;}
main()
{char b[4]={'a','b','c','d'},*p=b;
point(p);printf("%c\n",*p);
}
程序运行后的输出结果是
A)a B)b C)c D)d
46)程序中若有如下说明和定义语句
char fun(char *);
main()
{
char *s="one",a[5]={0},(*f1)()=fun,ch;
......
}
以下选项中对函数fun的正确调用语句是
A)(*f1)(a); B)*f1(*s); C)fun(&a); D)ch=*f1(s);
47)有以下结构体说明和变量定义,如图所示,
指针p、q、r分别指向此链表中的三个连续结点。
struct node
{int data;struct node *next;}*p,*q,*r;
现要将Q所指结点从链表中删除,同时要保持链表的连续,
以下不能完成指定操作的语句是
A)P->next=q->next; B)p->next=p->next->next;
c)p->next=r; D)p=q->next;
48)以下对结构体类型变量td的定义中,错误的是
A)typedef struct aa B)struct aa C)struct D)struct
{int n; {int n; {int n; {int n;
float m; float m; float m; float m;
}AA; }td; }aa; }td;
AA td; struct aa td; struct aa td;
49)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是
A)feof(fp) B)ftell(fp) C)fgetc(fp) D)rewind(fp)
50)有以下程序
#include
void WriteStr(char *fn,char *str)
{FILE *fp;
fp=fopen(fn,"w");fputs(str,fp);fclose(fp);
}
main()
{
WriteStr("t1.dat","start");
WriteStr("t1.dat","end");
}
程序运行后,文件t1.dat中的内容是
A)start B)end C)startend D)endrt
7. 经典数据结构笔试题和面试题答案
分享:典型的数据结构笔试题。
1. 线性表的顺序存储结构是一种 的存储结构,而链式存储结构是一种___的存储结构。
A.随机存取 B.索引存取 C.顺序存取 D.散列存取
2. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址___。
A. 必须是连续的 B. 部分地址必须是连续的
C. 一定是不连续的 D. 连续或不连续都可以
3. 在一个单链表中p所指结点之前插入一个s (值为e)所指结点时,可执行如下操作:
q=head;
while (q->next!=p) q=q->next;
s= new Node; s->data=e;
q->next= ; //填空
s->next= ; //填空
4. 在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行____。
A. s->next=p->next; p->next=s; B. p->next=s->next; s->next=p;
C. q->next=s; s->next=p; D. p->next=s; s->next=q;
5. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行____。
A. s->next=p; p->next=s; B. s->next=p->next; p->next=s;
C. s->next=p->next; p=s; C. p->next=s; s->next=p;
6. 在一个单链表中,若删除p所指结点的后续结点,则执行____。
A. p->next= p->next->next; B. p= p->next; p->next= p->next->next;
C. p->next= p->next; D. p= p->next->next;
7. 链表不具备的特点是 ____ 。
A 可随机访问任何一个元素 B 插入、删除操作不需要移动元素
C 无需事先估计存储空间大小 D 所需存储空间与线性表长度成正比
8. 在一个长度为n的顺序表中删除第i个元素,要移动 个元素。如果要在第i个元素前插入一个元素,要后移( )个元素。 N-I N-I+1
9. 以下关于线性表的说法不正确的是 。
A 线性表中的数据元素可以是数字、字符、记录等不同类型。
B 线性表中包含的数据元素个数不是任意的。
C 线性表中的每个结点都有且只有一个直接前趋和直接后继。
D 存在这样的线性表:表中各结点都没有直接前趋和直接后继。
答案
1.A/C(这题是考察对概念的理解,可参考第7题,“顺序表才能随即存取,而链表不可以”)
2.D
3.q->next=s;
s->next=p;
4.C
5.B
6.A
7.A(此题绝对选A,因为链表只能根据他的前一个结点才能找到下一个结点,不具备随即访问元素的功能)
8.n-i; n-i+1
9.C