1算法分析的目的是(
1算法分析的目的是(
-、选择题1.算法分析的目的是( )A.找出数据结构的合理性B.找出算法中输入和输出之间的关系C. 分析算法的易懂性和可靠性D. 分析算法的效率以求改进【参考答案】D2.在单链表中,增加头结点的目的是( )A.方便运算的B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现【参考答案】A3.软件开发离不开系统环境资源的支持,其中必要的测试数据属于( )A.硬件资源B.通信资源C.支持软件D.辅助资源【参考答案】D4.分布式数据库系统不具有的特点是( )A.数据分布性和逻辑整体性B.位置透明性和复制透明性C.分布性D.数据冗余【参考答案】D5.下列数据模型中,具有坚实理论基础的是( )A.层次模型B.网状模型C.关系模型D.以上3个都是【参考答案】C6.栈底到栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是( )A.ABCEDB.DCBEAC.DBCEAD.CDABE【参考答案】B7.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的( )A.安全性B.一致性C.可理解性D.合理性【参考答案】C8.软件开发的结构化生命周期方法将软件生命周期划分成( )A.定义、开发、运行维护B.设计阶段、编程阶段、测试阶段C.总体设计、详细设计、编程调试D.需求分析、功能定义、系统设计【参考答案】A9.在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有( )A.特定的数据模型B.数据无冗余C.数据可共享D.专门的数据管理软件【参考答案】A10.实体是信息世界中广泛使用的一个术语,它用于表示( )A.有生命的事物B.无生命的事物C.实际存在的事物D.一切事物【参考答案】C11.下面叙述中正确的是()A.C语言编译时不检查语法B.C语言的子程序有过程和函数两种C.C语言的函数可以嵌套定义D.C语言的函数可以嵌套调用【参考答案】D12.以下叙述中正确的是()A.构成C程序的基本单位是函数B.可以在一个函数中定义另一个函数C.main()函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义【参考答案】A13.下列程序段的输出结果是()int a=1234;float b=123.456;double c=12345.54321;printf(″%2d,%2.1f,%2.1f″,a,b,c);A.无输出B.12,123.5,12345.5C.1234,123.5,12345.5D.1234,123.4,1234.5 【参考答案】C14.设有以下程序段int x=0,s=0;while(!x!=0)s+=++x;printf(″%d″,s);则()A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次【参考答案】B15.以下程序段的描述,正确的是()x=-1;do{x=x*x;}while(!x);A.是死循环B.循环执行两次C.循环执行一次D.有语法错误【参考答案】C16.下列程序执行后的输出结果是()void func1(int i);void func2(int i);char st[]=″hello,friend!″;void func1(int i){ printf(″%c″,st[i]);if(i<3){i+=2;func2(i);}}void func2(int i){ printf(″%c″,st[i]);if(i<3){i+=2;func1(i);}}main(){ int i=0;func1(i);printf(″\n″);}A.helloB.helC.hloD.hlm【参考答案】C17.以下程序的输出结果是()#include <stdio.h>void prt(int *x,int*y,int*z){ printf(″%d,%d,%d\n″,++*x,++*y,*(z++));} main(){ int a=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}A.11,42,31B.11,41,2012,22,41 12,42,20C.11,21,40D.11,41,2111,21,21 12,42,22【参考答案】B18.下列程序执行后的输出结果是()main(){ int a[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;printf(″%d\n″,a[1][2]);}A.3B.6C.9D.随机数【参考答案】B19.下列程序执行后的输出结果是()main(){ char arr[2][4];strcpy(arr,″you″);strcpy(arr[1],″me″); arr[0][3]=′&′;printf(″s\n″,arr);}A.you&meB.youC.meD.err【参考答案】A20.有以下程序int f(int n){ if(n==1)return 1;else return f(n-1)+1;}main(){ int i,j=0;for(i=1;i<3;i++)j+=f(i);p rintf(″%d\n″,j);}程序运行后的输出结果是()A.4B.3C.2D.1【参考答案】B21.以下对结构体类型变量的定义中,不正确的是()A.typedef struct aaB.#define AA struct aa { int n; AA{ int n;float m; float m;} AA; } tdl;AA tdl;C.structD.struct{ int n; { int n;float m; float m;} aa; } tdl;struct aa tdl;【参考答案】C22.若有以下程序#include <stdio.h>void f(int n);main(){ void f(int n);f(5);}void f(int n){ printf(″%d\n″,n);}则以下叙述中不正确的是()A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数fC.对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明D.函数f无返回值,所以可用void将其类型定义为无返回值型【参考答案】C23.有以下程序#include <stdio.h>main(){ FILE *fp;int i=20,j=30,k,n;fp=fopen(″d1.dat″,″w″);fprintf(fp,″%d\n″,i);fprintf(fp,″%d\n″,j);fclose(fp);fp=fopen(″d1.dat″,″r″);fscanf(fp,″%d%d″,&k,&n);printf(″%d%d\n″,k,n);fclose(fp);}程序运行后的输出结果是()A.20 30B.20 50C.30 50D.30 20【参考答案】A24.下面4个选项中,均是不合法的用户标识符的选项是()A.A P_0B.float la0 _AC.b-a goto intD._123 temp int【参考答案】C25.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是()A.a>=10 or a<=0B.a>=0|a<=10C.a>=10 &&a<=0D.a>=10||a<=0【参考答案】D26.若有说明:int *p,m=5,n;以下正确的程序段是()A.p=&n;scanf(″%d″,&p;)B.p=&n;scanf(″%d″,*p)C.scanf(″%d″,&n);*p=n;D.p=&n;*p=m;【参考答案】D27.有如下程序main(){int a=2,b=-1,c=2;if(a<b)if(b<0)c=0;else c++;printf(″%d\n″,c);}该程序的输出结果是()A.0B.1C.2D.3【参考答案】C28.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。
数据结构选择、判断、填空
北京语言大学网络教育学院《数据结构》一、【单项选择题】1、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则采用(C)存储方式最节省时间。
[C] 带头结点的双循环链表2、队列操作的原则是(D)。
[D] 先进先出3、某二叉树的先序序列和后序序列正好相反,则该二叉树一定是(B)的二叉树。
[B] 高度等于其结点数4、在下列排序方法中,(C)方法平均时间复杂度为0(nlogn),最坏情况下时间复杂度为0(n2)。
[C] 快速排序5、对二叉树从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一个结点的左、右孩子中,其左孩子编号小于右孩子编号。
则可采用(C)次序的遍历实现编号。
[C] 后序6、若线性表中采用二分查找法查找元素,该线性表应该(C)。
[C] 元素按值有序,且采用顺序存储结构。
7、对待排序数据的初始状态不作任何要求的排序方法有(A)。
[A] 插入和快速排序8、已知数据表A中每个元素距其最终位置不远,则采用(B)排序算法最节省时间。
[B] 插入排序9、以下哪一个不是队列的基本运算?(B)[B] 从队列中删除第i个元素。
10、广度优先遍历类似于二叉树的(D)。
[D] 层次遍历一、【单项选择题】1、在一个图中,所有顶点的度数之和等于图的边数的(C)倍。
[C] 22、采用顺序查找方法查找长度为n的线性表,平均查找长度为(C)。
[C] (n+1)/23、线性链表不具有的特点是(A)。
[A] 随机访问4、删除长度为n的非空顺序表的第i个数据元素之前需要移动表中(A)个数据元素。
[A] n-i5、任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序(A)。
[A] 不发生改变6、若用数组S[n]作为两个栈S1和S2的共用存储结构,对任何一个栈,只有当S[n]全满时才不能作入栈操作。
为这两个栈分配空间的最佳方案是(C)。
[C] S1的栈底位置为0,S2的栈底位置为n-17、对一棵二叉排序树进行(C)遍历,可以得到该二叉树的所有结点按值从小到大排列的序列。
2021级数据结构习题
2021级数据结构习题第1章绪论一、单选题:(从给定选项中选择最合适的答案)1。
算法分析的目的是_;。
a.找出数据结构的合理性b.研究算法中的输入和输出的关系c.分析算法的效率以求改进d.分析算法的易懂性和文档性2.线性表的顺序存储结构是一种____的存储结构。
a、随机存取B.顺序存取C.索引存取D.散列存取3.顺序存储设计中,存储单元的地址。
a.一定连续b.一定不连续c.不一定连续d.部分连续,部分不连续4.下列数据中_______是非线性数据结构。
a、堆栈B.队列C.完整的二叉树D.字符串5。
算法应该是___。
a.程序b.问题求解步骤的描述c.要满足五个基本特性d.a和c.6.以下属于逻辑结构的是_______。
a、序列表B.哈希表C.线性表D.单链表7。
当计算机执行以下语句时,语句s的执行频率为__。
对于(i=l;i=i;j--)s;a.o(n)b.o(nlogn)c.o(n3)d.o(n2)8.算法分析的两个主要方面是_____。
a、空间复杂性和时间复杂性B.正确性和简洁性c.可读性和文档性d.数据复杂性和程序复杂性9.下面说法错误的是________.a、算法的原位工作意味着不需要添加额外的辅助空间b.在相同的规模n下,复杂度o(n)的算法在时间上总是优于复杂度o(2n)的算法c.所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界d.同一个算法,实现语言的级别越高,执行效率就越低10.如果序列表的第一个元素的存储地址为100,每个元素的长度为2,则第五个元素的地址为__。
a.110b.108c.100d.12011.从存储结构来看,数据结构可以分为两类。
a.动态结构、静态结构b.顺序结构、链式结构c.线性结构、非线性结构d.初等结构、构造型结构12.下列叙述中正确的是_____。
a、一个逻辑数据结构只能有一个存储结构。
b.数据的逻辑结构属于线性结构,存储结构属于非线性结构。
c、一个逻辑数据结构可以有多种存储结构,而各种存储结构不会影响数据处理的效率。
数据结构总复习题(JAVA)
一、填空题1. 栈和队列的共同特点是(只允许在端点处插入和删除元素)。
2. 在深度为5的满二叉树中,叶子结点的个数为(31)3. 算法分析的目的是(分析算法的效率以求改进)。
4. 由两个栈共享一个存储空间的好处是(节省存储空间,降低上溢发生的机率)。
5.串的长度是(串中所含字符的个数)。
6.设有两个串p和q,求q在p中首次出现位置的运算称做(模式匹配)7. N个顶点的连通图中边的条数至少为(N-1)。
8.N个顶点的强连通图的边数至少有(N)。
9.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为(N)。
P25910.假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为(n(n-1)/2)。
P29211. 在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。
12. 在具有n个单元的循环队列中,队满时共有 n-1 个元素。
13. 有向图G用邻接表矩阵存储,其第i行的所有元素之和等于顶点i的出度。
14. 用Dijkstra算法求某一顶点到其余各顶点间的最短路径是按路径长度递增的次序来得到最短路径的。
15. 在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
16.在一个循环队列中,队首指针指向队首元素的前一个位置。
17.在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。
18. 线性表中结点的集合是有限的,结点间的关系是一对一的。
19.数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。
20. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
21. 一个算法的效率可分为时间效率和空间效率。
22. 在顺序表中访问任意一结点的时间复杂度均为 O(1) ,因此,顺序表也称为随机存取的数据结构。
23. 在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。
二级C考前试卷
公共基础知识和C 语言程序设计 (考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A )、B )、C )、D )四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)算法分析的目的是______。
A )找出数据结构的合理性B )找出算法中输入和输出之间的关系C )分析算法的易懂性和可靠性D )分析算法的效率以求改进(2)n 个顶点的强连通图的边数至少有______。
A )n-1B )n(n-1)C )nD )n+1 (3)已知数据表A 中每个元素距其最终位置不远,为节省时间,应采用的算法是______。
A )堆排序B )直接插入排序C )快速排序D )直接选择排序 (4)用链表表示线性表的优点是______。
A )便于插入和删除操作 B )数据元素的物理顺序与逻辑顺序相同C )花费的存储空间较顺序存储少D )便于随机存取(5)下列不属于结构化分析的常用工具的是______。
A )数据流图B )数据字典C )判定树D )PAD 图 (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)C 语言规定,程序中各函数之间______。
2011年数据结构期末试题(附完整答案)
15.串是一种特殊的线性表,其特殊性体现在( ) A.可以顺序存储 B.数据元素是一个字符 C.可以链接存储 D.数据元素可以是多个字符 16.树的基本遍历策略分为先根遍历和后根遍历;二叉树的基本遍历策 略可分为先序遍历、中序遍历和后序遍历。结论( )是正确的。 A.树的先根遍历序列与其对应的二叉树的先序遍历序列相同 B.树的后根遍历序列与其对应的二叉树的先序遍历序列相同 C.树的先根遍历序列与其对应的二叉树的中序遍历序列相同 D.以上都不对 17.由五个分别带权值为9,2,3,5,14的叶子结点构成的一棵哈夫曼 树,该树的带权路径长度为( )。 A. 60 B. 66 C. 67 D. 50 18.一棵二叉树有67个结点,这些结点的度要么是0,要么是2。这棵二 叉树中度为2的结点有( )个 A. 33 B. 34 C. 32 D. 30 19.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找 值82为的结点时,( )次比较后查找成功。 A. 1 B. 2 C. 4 D. 8 20.若有文件的关键字序列为:[265] [301] [751] [129] [937] [863] [742] [694] [076] [438],以下为二路归并排序过程。第二趟为: A.[265 301] [129 751] [863 937] [694 742] [076 438] B.[076 129 265 301 438 694 742 751 863 937] C.[129 265 301 694 742 751 863 937] [076 438] D.[129 265 301 751] [694 742 863 937] [076 438]
⑴ ⑷
⑵ ⑸
⑶
3.请在标号处填写合适的语句。完成下列程序。(每空1分,共5分) int Binary_Search(S_TBL tbl,KEY kx) { /* 在表tbl中查找关键码为kx的数据元素,若找到返回该元素在表中的位 置,否则,返回0 */ int mid,flag=0; low=1;high=length; while( ⑴ &!flag ) { /* 非空,进行比较测试 */ mid= ⑵ ; if(kx<tbl.elem[mid].key) ⑶ ; else if(kx>tbl.elem[mid].key) ⑷ ; else { flag= ⑸ ;break;} } return flag; } ⑴ ⑵ ⑶ ⑷ ⑸
重庆理工大学2021年[计算机学科基础综合]考研真题
重庆理工大学2021年[计算机学科基础综合]考研真题一、单选题1.算法分析的目的是()。
A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和稳定性2.设某算法完成对n个元素进行处理所需的时间是:T(n)=200log2n+1000n(log2n+100)+100000,则该算法的时间复杂度是()。
A.O(1)B.O(n)C.O(nlog2n)D.O(nlog2n+log2n)3.若某链表最常用的操作是在最后一个结点之后插入一个元素和删除最后一个元素,则采用()存储方式最节省运算时间。
A.单链表B.双链表C.单循环链表D.带头结点的双循环链表4.在中缀表达式转化为后缀表达式与后缀表达式求值算法中,都需要用到哪种特殊的数据结构()。
A.栈B.队列C.二叉树D.堆5.一个队列的入队序列是1,2,3,4,则队列的出队序列只能是()。
A.4,3,2,1B.1,2,3,4C.1,4,3,2D.3,2,4,16.将含有100个结点的完全二叉树从根结点开始编号,根为0号,后面按从上到下、从左到右的顺序对结点编号,那么编号为41的结点的双亲结点编号为()。
A.42B.40C.21D.207.如果在某二叉树的前序序列、中序序列和后序序列中,结点b都在结点a的后面(即形如…a…b…),则最有可能的情况是()。
A.a和b是兄弟B.a是b的双亲C.a是b的左孩子D.a是b的右孩子8.某二叉树的后序遍历序列是dabec,中序遍历序列是debac,其前序遍历序列是()。
A.acbedB.decabC.deabcD.cedba9.下述编码中,哪一个不是前缀码()。
A.(0,10,110,111)B.(11,10,001,101,000)C.(00,010,011,1)D.(1,01,000,001)10.一个有n个顶点的无向图最多有()条边。
A.nB.n(n-1)C.n(n-1)/2D.2n11.在现代操作系统中,采用缓冲技术的主要目的是()A.改善用户编程环境B.提高CPU的处理速度C.实现与设备无关D.提高设备与CPU之间的并行程度12.下列哪个事件不可能在用户态发生?()A.系统调用B.外部中断C.进程切换D.缺页13.操作系统是对()进行管理的软件。
计算机等级考试NCRE计算机等级考试二级模拟题2020年(54)_真题-无答案
计算机等级考试(NCRE)计算机等级考试二级模拟题2020年(54)(总分100,考试时间90分钟)一、选择题1. 1. 算法分析的目的是______。
A.找出数据结构的合理性B.找出算法中输人和输出之间的关系C.分析算法的易懂性和可靠性D.分析算法的效率以求改进A. AB. BC. CD. D2. 2. 在教师表中,如果要找出职称为“教授”的教师,所采用的关系运算是______。
A.选择B.投影C.连接D.自然连接A. AB. BC. CD. D3. 3. 用链表表示线性表的优点是______。
A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同A. AB. BC. CD. D4. 4. 将Access数据库中的数据发布在Internet网络上可以通过______。
A.查询B.窗体C.报表D.数据访问页A. AB. BC. CD. D5. 5. C语言的基本单位是______。
A.函数B.过程C.子程序D.子函数A. AB. BC. CD. D6. 6. 代表必须输入字母(A~Z)的输入掩码是______。
A.9**C.#**A. AB. BC. CD. D7. 7. 在面向对象方法中,______描述的是具有相似属性与操作的一组对象。
A.属性B.事件C.方法D.类A. AB. BC. CD. D8. 8. 数据独立性是数据库技术的重要特点之一。
所谓数据独立性是指______。
A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对A. AB. BC. CD. D9. 9. 下列描述中正确的是______。
数据结构期末复习题库(215道)
数据结构期末复习1、算法分析的目的是分析算法的效率以求改进,算法分析的两个主要方面是()——[单选题]A 空间复杂性和时间复杂性B 正确性和简明性C 可读性和文档性D 数据复杂性和程序复杂性正确答案:A2、两类存储结构为()——[单选题]A 线性结构和非线性结构B 逻辑结构和非逻辑结构C 顺序结构和链式结构D 逻辑结构和物理结构正确答案:C3、计算机算法指的是解决问题的有限运算序列,它必具备输入、输出和()等五个特性。
——[单选题]A 可行性、可移植性和可扩充性B 可行性、确定性和有穷性C 确定性、有穷性和稳定性D 易读性、稳定性和安全性正确答案:B4、在 C 语言中,有一种适用于不同数据类型构成的数据的结构称为()——[单选题]A 结构体B 数组C 变量D 常量正确答案:A5、在定义数组 int a[10]后,需要访问数组中第 3 个元素,正确的是()——[单选题]A a[0]B a[1]C a[2]D a[3]6、分析以下程序段,其时间复杂度为 T(n)=() for( i =0; i<n;i++)For(j=0;j<i;j++) A[i][j] = 0;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:B7、数据元素之间存在一对多的关系,这种数据间的结构属于()——[单选题]A 集合B 线性结构C 树型结构D 图型结构正确答案:C8、有一个结构体及其变量定义如下: struct date{Int year; int month; intday;}birthday;此时要调用变量中的 year,正确的书写格式是()——[单选题]A yearB birthday.yearC date.yearD struct.year正确答案:B9、在数据结构中,从逻辑上可以把数据结构分成()——[单选题]A 动态结构和静态结构B 紧凑结构和非紧凑结构C 线性结构和非线性结构D 内部结构和外部结构正确答案:C10、分析下面算法(程序段),该算法的时间复杂度 T(n)=() for (i=0;i<n;i++)For (j=0;j<n; j++) A[i][j]=0;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)11、当定义一个结构体变量时,系统为它分配的内存空间是()——[单选题]A 结构体中一个成员所需的内存容量B 结构体中第一个成员所需的内存容量C 结构体中占内存容量最大者所需的容量D 结构体中各成员所需内存容量之和正确答案:D12、分析以下程序段,其时间复杂度为 T(n)=() x=0;For(i=1;i<n;i++);for(j=1;j<n;j++);For(k=1;k<n;k++); x++;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:A13、有结构体定义及结构体类型数组如下: struct worklist{Int no;Char name[20]; char sex;}person[5];需要给结构体数组中第 2 个变量的 no 成员赋值为 5,正确的写法是()——[单选题]A no=5;B person.no=5;C person[2].no=5;D person[1].no=5;正确答案:D14、分析以下程序段,其时间复杂度为 T(n)=() i=1;While(i<=n) i=3*i;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:D15、线性表是具有 n 个()的有限序列。
国家电网招聘考试计算机类专业知识(数据结构与算法)模拟试卷2(
国家电网招聘考试计算机类专业知识(数据结构与算法)模拟试卷2(题后含答案及解析)题型有:1. 单项选择题单项选择题1.采用顺序查找法查找长度为n的顺序表时,查找成功的平均查找长度为( )。
A.(n-1)/2B.(n+1)/2C.nD.n/2正确答案:B解析:在查找成功的前提下,查找的最好情况是查找的第一个元素即想要查找的元素,最坏情况是查找的最后一个元素即想要查找的元素,所以查找成功的平均查找长度是(n+1)/2。
2.在循环队列中用数组A[0..m-1]存放队列元素,其队头指针和队尾指针分别为front和rear,则当前队列中的元素个数是( )。
A.(front-rear+1)%mB.(rear-front+1)%mC.(front-rear+m)%mD.(rear-front+m)%m正确答案:D3.算法分析的目的是( )。
A.找出数据结构的合理性B.研究算法中输入和输出的关系C.分析算法的效率,以求改进D.分析算法的易懂性和文档性正确答案:C4.下列关于栈的叙述,正确的是( )。
A.只要确定了入栈序列,就可以确定出栈序列B.栈是一种操作受限的线性表,只允许在其两端进行操作C.采用非递归方式重写递归程序时,必须使用栈D.函数调用时,可以使用栈来保存必要的信息解析:确定了入栈序列无法确定出栈序列,因为各个元素出栈的时间是不确定的;栈是一种操作受限的线性表,只允许在其一端进行操作;采用非递归方式重写递归程序时,除了栈还可以使用循环结构算法。
5.若允许表达式中多种括号混合嵌套,则检查表达式中括号是否正确配对的算法,通常选用的辅助结构是( )。
A.栈B.线性表C.队列D.二叉排序树正确答案:A解析:由于栈具有先进后出的特点,因此选用辅助结构栈可以实现表达式中多种括号混合嵌套的配对。
例如,使用3个栈,就可以同时解决表达式中的“{”与“}”、“[”与“]”、“(”与“)”的配对问题。
6.设线性表的长度为15,采用冒泡排序,在最坏的情况下需要比较的次数为( )。
数据结构模拟试题(8)
一.单选题1.数据结构是()A.一种数据类型B.数据的存储结构C.一组性质相同的数据元素的集合D.相互之间存在一种或多种特定关系的数据元素的集合2.算法分析的目的是()A.辨别数据结构的合理性B. 评价算法的优劣C.研究算法中输入与输出的关系D.鉴别算法的可读性3.在线性表的下列运算中,不改变数据元素之间结构关系的运算是()A.插入B.删除C.排序D.定位4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为()A.3,2,6,1,4,5 B.3,4,2,1,6,5C.1,2,5,3,4,6 D.5,6,4,2,3,15.设串sl=”Data Structures with C++”,s2=”it”,则子串定位函数index(s1,s2)的值为()A.15 B.16C.17 D.186.广义表A=(a,(b),(),(c,d,e))的长度为( )A.4 B.5C.6 D.77.一棵含18个结点的二叉树的高度至少为( )A.3 B.4C.5 D.68..已知二叉树的先序序列为ABDECF,中序序列为DBEAFC,则后序序列为( ) A.DEBAFC B.DEFBCAC.DEBCFA D.DEBFCA9.无向图中一个顶点的度是指图中( )A.通过该顶点的简单路径数B.与该顶点相邻接的顶点数C.通过该顶点的回路数D.与该顶点连通的顶点数10.已知一个图如下所示,从顶点a出发进行广度优先遍历可能得到的序列为( )A.a c e f b d B.a c b d f eC.a c b d e f D.a c d b f e11.在下列排序方法中,平均时间性能为O(nlogn)且空间性能最好的是( )A.快速排序B.堆排序C.归并排序D.基数排序12.已知一组关键字为{25,48,36,72,79,82,23,40,16,35},其中每相邻两个为有序子序列。
对这些子序列进行一趟两两归并的结果是( )A.{25,36,48,72,23,40,79,82,16,35}B.{25,36,48,72,16,23,40,79,82,35}C.{25,36,48,72,16,23,35,40,79,82}D.{16,23,25,35,36,40,48,72,79,82}13.设顺序存储的线性表共有123个元素,按分块查找的要求等分成3块。
数据结构智慧树知到答案章节测试2023年上海电力大学
第一章测试1.数据结构中,与所使用的计算机无关的是数据的( ) 结构。
A:存储B:逻辑C:物理D:物理和存储答案:B2.从逻辑上可以把数据结构分为()两大类。
A:顺序结构、链式结构B:线性结构、非线性结构C:初等结构、构造型结构D:动态结构、静态结构答案:B3.算法分析的目的是()A:分析算法的效率以求改进B:找出数据结构的合理性C:分析算法的易懂性和文档性D:研究算法中的输入和输出的关系答案:A4.一个”好”的算法应达到的目标有( )。
A:高时间效率和低存储率B:正确性C:可读性D:健壮性答案:ABCD5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
A:错B:对答案:B6.数据的逻辑结构和数据的存储结构是相同的。
A:错B:对答案:A7.算法的实现依赖于数据的逻辑结构。
A:错B:对答案:A8.算法是对解题方法和步骤的描述。
A:对B:错答案:A9.链式存储结构所占存储空间()。
A:分两部分,一部分存放结点的值,另一个部分存放表示结点间关系的地址。
B:只有一部分,存储表示结点间关系的地址。
C:只有一部分,存放结点的值。
D:分两部分,一部分存放结点的值,另一部分存放结点所占存储单元值。
答案:A10.下列时间复杂度中最坏的是()。
A:O( logn)B:O(n2)C:O(n)D:O(1)答案:B第二章测试1.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:A:将n个结点从小到大排序B:访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)C:在第i个结点后插入一个新结点(1≤i≤n)D:删除第i个结点(1≤i≤n)答案:B2.链式存储结构的最大优点是A:存储密度高B:便于进行插入和删除操作C:便于随机存取D:无需预分配空间答案:B3.假设在顺序表{a0,a1,……,an-1}中,每一个数据元素所占的存储单元的数目为4,且第0个数据元素的存储地址为100,则第7个数据元素的存储地址是A:106B:128C:124D:107答案:B4.在一个单链表中的p和q两个结点之间插入一个新结点,假设新结点为s,则修改链的java语句序列是A:s.next=p;p.next=q;B:p.next=q;q.next=s;C:s.next=q;p.next=s;D:q.next=p;p.next=s;答案:C5.顺序存储方式的优点是存储密度大,且插入、删除运算效率高A:错B:对答案:A6.在单链表中,增加一个头结点的目的是为了A:方便运算的实现B:使单链表至少有一个结点C:标识表结点中首结点的位置D:说明单链表是线性表的链式存储答案:A7.一维数组第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是A:108B:110C:120D:100答案:A8.链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动A:错B:对答案:A9.链表的每个结点中都恰好包含一个指针A:对B:错答案:B10.顺序存储方式只能用于存储线性结构A:对B:错答案:B第三章测试1.若将整数1、2、3、4依次进栈,则不可能得到的出栈序列是A:1234B:4321C:1324D:1423答案:D2.在顺序栈中,若栈顶指针top指向栈顶元素的下一个存储单元,且顺序栈的最大容量是maxSize,则顺序栈的判空条件是A:top==maxSize-1B:top==-1C:top==maxSizeD:top==0答案:D3.在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,front指向队首元素,rear 指向队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判满条件是A:front==rear+1B:front==(rear+1)% maxSizeC:front!=rearD:front==rear答案:B4.在链栈中,进行出栈操作时A:需要判断栈是否为空B:无需对栈作任何差别C:需要判断栈是否满D:需要判断栈元素的类型答案:A5.栈和队列是一种非线性数据结构A:错B:对答案:A6.在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判空条件是A:front==(rear+1)% maxSizeB:front==rear+1C:front!=rearD:front==rear答案:D7.循环顺序队列是将顺序队列的存储区域看成是一个首尾相连的环,首尾相连的状态是通过数学上的哪种运算实现的?A:求余B:求和C:减运算D:除运算答案:A8.设数组Data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为A:front=(front+1)% mB:front=front+1C:front=(front+1)%(m+1)D:rear=(rear+1)%m答案:C9.假定利用数组a[n]顺序存储一个栈,用top表示栈顶指针,top==-1表示栈空,并已知栈未满,当元素x进栈时所执行的操作为A:a[top–]=xB:a[++top]=xC:a[–top]=xD:a[top++]=x答案:B10.在不带表头结点的链栈中,若栈顶指针top直接指向栈顶元素,则将一个新结点p入栈时修改链的两条对应语句为A:top=p;p.next=top;B:p.next=top;top=p;C:p=top;top.next=p.next;D:top.next=p;p=top;答案:B第四章测试1.下面关于串的叙述中,哪一个是不正确的?( )A:串既可以采用顺序存储,也可以采用链式存储B:空串是由空格构成的串C:模式匹配是串的一种重要运算D:串是字符的有限序列答案:B2.串的长度是指( )A:串中包含的不同字符个数B:串中除空格以外的字符个数C:串中包含的不同字母个数D:串中包含的字符个数答案:D3.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( )A:联接B:求子串C:求串长D:模式匹配答案:D4.设主串的长度为n,模式串的长度为m,则串匹配的KMP算法时间复杂度是( )A:O(n×m)B:O(n)C:O(m)D:O(n + m)答案:D5.串也是一种线性表,只不过( )A:数据元素均为字符B:数据元素是子串C:表长受到限制D:数据元素数据类型不受限制答案:A6.一个串的任意连续字符组成的子序列称为串的子串,该串称为主串。
数据结构 选择题
《数据结构》习题库之一:选择题1.算法分析的目的是()A.研究算法的输入与输出之间的关系B.找出数据结构的合理性C.分析算法的效率以求改进算法D.分析算法的可读性与可移植性2. 在由list所指的非空线性链表中删除由p指的链结点的下一个链结点的过程是依次执行q=p->link,(),delete q。
A.p->link=qB.q->link=pC.q->link=p->linkD.p->link=q->link3.依次在初始为空的队列中插入元素为a,b,c,d以后,紧接着作了两次删除操作,此时的队头元素是()A.aB.bC.cD.d4.若某堆栈的输入序列为1,2,3,…,n-1,n,输出序列的第1个元素为n,则第i个输出元素为()A.n-i+1B.n-1C.iD.哪个元素无所谓5.设计递归问题的非递归算法一般需要用到()机制。
A.数组B.堆栈C.队列D.二叉树6.已知非空二叉树采用顺序存储结构,树中结点的数据信息依次存放在一个一维数组中,即ABC □DEF□□G□□H□□该二叉树的中序列遍历序列为()A.G,D,B,A,F,H.C,EB.G,B,D,A,F,H,C,EC.B,D,G,A,F,H,C,ED.B,G,D,A,F,H,C,E7.在一棵度为3的树中,度为3的结点有2个,度为2的结点有1个,度为1的结点有2个,那么,该树有()个叶结点。
A.4B.5C.6D.78. 向具有n个结点的、结构均衡的二叉搜索树中插入一个元素的时间复杂度大致为()。
A. O(1)B. O(log2n )C. O(n)D. O(nlog2n)9.在初始为空的散列表中依次插入关键字序列(MON,TUE,WED,THU,FRI,SAT,SUN),散列函数为H(k)=i MOD 7,其中,i为关键字k的第一个字母在英文字母表中的序号,地址值域为[0:6] ,采用线性再散列法处理冲突。
2015年青海省数据结构基础考试答题技巧
D.同一结点集构造的二叉树中,哈夫曼树的WPL最小
31、与单链表相比,双链表的优点之一是 D 。
A.插入、删除操作更简单
B.可以进行随机访问
C.可以省略表头指针或表尾指针
D.顺序访问相邻结点更灵活
32、在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。
A.0 B.1 C.2 D.不确定
15、深度为k的完全二叉树至多有( )个结点
A B C D
16、长度为n的顺序表,删除位置i上的元素(0≤i≤n一1),需要移动的元素个数为
A.n—l条有向边 B.n条有向边
C.n(n—1)/2条有向边 D.n(n一1)条有向边
5、算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进 C.分析算法的易读性和文档性
42、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HL
B. p一>next=HL;HL=p3
C. p一>next=Hl;p=HL;
D. p一>next=HL一>next;HL一>next=p
35、下列选项中,符合堆定义的是
A.{102,24,55,60,89,93}
B.{24,89,55,60,93,102}
C.{102,93,55,60,89,24}
D.{102,60。89,93,55,24}
36、在数据结构中,从逻辑上可以把数据结构分为 C 。
算法分析的目的是((精品)
---------------------------------------------------------------最新资料推荐------------------------------------------------------算法分析的目的是((精品)-、选择题 1. 算法分析的目的是( ) A. 找出数据结构的合理性 B. 找出算法中输入和输出之间的关系 C. 分析算法的易懂性和可靠性 D. 分析算法的效率以求改进【参考答案】 D 2. 在单链表中,增加头结点的目的是( ) A. 方便运算的 B. 使单链表至少有一个结点 C. 标识表结点中首结点的位置 D. 说明单链表是线性表的链式存储实现【参考答案】A 3. 软件开发离不开系统环境资源的支持,其中必要的测试数据属于( ) A. 硬件资源 B. 通信资源 C. 支持软件 D. 辅助资源【参考答案】 D 4. 分布式数据库系统不具有的特点是( ) A. 数据分布性和逻辑整体性 B. 位置透明性和复制透明性 C. 分布性 D. 数据冗余【参考答案】 D 5. 下列数据模型中,具有坚实理论基础的是( ) A. 层次模型 B. 网状模型 C. 关系模型 D. 以上 3 个都是【参考答案】C 6. 栈底到栈顶依次存放元素 A、 B、 C、 D,在第五个元素E 入栈前,栈中元素可以出栈,则出栈序列可能是( ) A. ABCED B. DCBEA C. DBCEA D. CDABE 【参考答案】 B 7. 在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的( ) A. 安全性 B. 一致性 C. 可理解性 D. 合理性【参考答案】 C 8.软件开发的结构化生命周期方法将软件生命周期划分成( )1 / 14A. 定义、开发、运行维护B. 设计阶段、编程阶段、测试阶段 C. 总体设计、详细设计、编程调试 D. 需求分析、功能定义、系统设计【参考答案】 A 9. 在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有( ) A. 特定的数据模型 B. 数据无冗余 C. 数据可共享 D. 专门的数据管理软件【参考答案】 A 10. 实体是信息世界中广泛使用的一个术语,它用于表示( ) A. 有生命的事物 B. 无生命的事物 C. 实际存在的事物 D. 一切事物【参考答案】 C11. 下面叙述中正确的是() A. C 语言编译时不检查语法B. C 语言的子程序有过程和函数两种C. C 语言的函数可以嵌套定义 D. C 语言的函数可以嵌套调用【参考答案】 D 12. 以下叙述中正确的是() A. 构成 C 程序的基本单位是函数B. 可以在一个函数中定义另一个函数C. main()函数必须放在其他函数之前 D. 所有被调用的函数一定要在调用之前进行定义【参考答案】 A 13. 下列程序段的输出结果是() inta=1234; float b=123. 456; double c=12345. 54321; printf( %2d, %2. 1f, %2. 1f , a, b, c) ; A. 无输出B. 12, 123. 5, 12345. 5C. 1234, 123. 5, 12345. 5D. 1234, 123. 4, 1234. 5 【参考答案】 C 14. 设有以下程序段 int x=0, s=0; while(!x!=0) s+=++x; printf( %d , s) ; 则() A. 运行程序段后输出 0 B. 运行程序段后输出 1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次【参---------------------------------------------------------------最新资料推荐------------------------------------------------------考答案】 B 15. 以下程序段的描述,正确的是() x=-1;do {x=x*x; } while(!x) ; A. 是死循环 B. 循环执行两次 C. 循环执行一次 D. 有语法错误【参考答案】 C 16.下列程序执行后的输出结果是() void func1(int i) ;void func2(int i) ; char st[] = hello, friend! ; voidfunc1(int i) { printf( %c , st[i] ) ; if(i3) {i+=2;func2(i) ; } } void func2(int i) { printf( %c , st[i]) ; if(i3) {i+=2; func1(i) ; } } main(){ int i=0; func1(i) ; printf( \ n ) ; } A. hello B. helC. hloD. hlm 【参考答案】 C 17. 以下程序的输出结果是() #include stdio. h void prt(int *x, int*y, int*z){ printf( %d, %d, %d\ n , ++*x, ++*y, *(z++) ) ; } main(){ int a=10, b=40, c=20; prt(a, b, c) ; prt(a, b, c) ; }A. 11, 42, 31B. 11, 41, 20 12, 22, 41 12,42, 20 C. 11, 21, 40 D. 11, 41, 21 11, 21, 21 12, 42, 22 【参考答案】 B 18. 下列程序执行后的输出结果是() main() { int a[3][3] , *p, i; p=a[0][0] ; for(i=1; i9; i++) p[i] =i+1; printf( %d\ n ,a[1][2] ) ; } A. 3 B. 6 C. 9 D. 随机数【参考答案】 B 19. 下列程序执行后的输出结果是() main(){ char arr[2][4] ; strcpy(arr, you ) ; strcpy(arr3 / 14[1] , me ) ; arr[0][3] = ; printf( s\ n ,arr) ; } A. youme B. you C. me D. err 【参考答案】A 20. 有以下程序 int f(int n) { if(n==1) return 1;else return f(n-1) +1; } main() { int i, j=0;for(i=1; i3; i++) j+=f(i) ; printf( %d\ n , j) ; } 程序运行后的输出结果是() A. 4 B. 3 C. 2 D. 1 【参考答案】 B 21. 以下对结构体类型变量的定义中,不正确的是() A. typedef struct aa B. #define AA structaa { int n; AA{ int n; float m; float m; } AA; } tdl; AA tdl;C. structD. struct { int n; { int n; float m; float m; }aa; } tdl; struct aa tdl;【参考答案】 C 22. 若有以下程序 #include stdio. h voidf(int n) ; main() { void f(int n) ; f(5) ; }void f(int n) { printf( %d\ n , n) ; } 则以下叙述中不正确的是() A. 若只在主函数中对函数 f 进行说明,则只能在主函数中正确调用函数 f B. 若在主函数前对函数 f 进行说明,则在主函数和其后的其他函数中都可以正确调用函数 fC. 对于以上程序,编译时系统会提示出错信息:提示对 f 函数重复说明 D. 函数 f 无返回值,所以可用void 将其类型定义为无返回值型【参考答案】 C 23. 有以下---------------------------------------------------------------最新资料推荐------------------------------------------------------程序 #include stdio. h main() { FILE *fp; int i=20,j=30, k, n; fp=fopen( d1. dat , w ) ; fprintf(fp, %d\n , i) ; fprintf(fp, %d\n , j) ; fclose(fp) ; fp=fopen( d1. dat , r ) ; fscanf(fp, %d%d , k, n) ; printf( %d%d\ n , k, n) ; fclose(fp) ; } 程序运行后的输出结果是() A. 20 30 B. 20 50 C. 30 50 D. 3020 【参考答案】 A 24. 下面 4 个选项中,均是不合法的用户标识符的选项是() A. A P_0 B. float la0 _A C.b-a goto int D. _123 temp int 【参考答案】 C 25. 能正确表示逻辑关系:a10 或 a0 的 C 语言表达式是() A. a=10 or a=0 B. a=0| a=10 C. a=10 a=0 D. a=10|| a=0 【参考答案】D 26. 若有说明:int *p, m=5, n; 以下正确的程序段是() A. p=n; scanf( %d , p; ) B. p=n; scanf( %d , *p) C. scanf( %d , n) ; *p=n; D. p=n; *p=m; 【参考答案】 D 27. 有如下程序 main() { int a=2, b=-1, c=2; if(ab) if(b0)c=0; else c++; printf( %d\ n , c) ; } 该程序的输出结果是() A. 0 B. 1 C. 2 D. 3 【参考答案】C 28. 有一堆零件(100 到 200 之间),如果分成 4 个零件一组的若干组,则多 2 个零件;若分成 7 个零件一组,则多 3 个5 / 14零件;若分成 9 个零件一组,则多5 个零件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
---------------------------------------------------------------最新资料推荐------------------------------------------------------1算法分析的目的是(1. 算法分析的目的是( ) A. 找出数据结构的合理性B. 找出算法中输入和输出之间的关系C. 分析算法的易懂性和可靠性 D. 分析算法的效率以求改进【参考答案】 D 2. 在单链表中,增加头结点的目的是( ) A. 方便运算的 B.使单链表至少有一个结点 C. 标识表结点中首结点的位置 D.说明单链表是线性表的链式存储实现【参考答案】 A 3. 软件开发离不开系统环境资源的支持,其中必要的测试数据属于( ) A. 硬件资源 B. 通信资源 C. 支持软件 D. 辅助资源【参考答案】 D 4. 分布式数据库系统不具有的特点是( ) A. 数据分布性和逻辑整体性 B. 位置透明性和复制透明性 C. 分布性D. 数据冗余【参考答案】 D 5. 下列数据模型中,具有坚实理论基础的是( ) A. 层次模型 B. 网状模型 C. 关系模型 D. 以上 3 个都是【参考答案】 C 6. 栈底到栈顶依次存放元素 A、 B、 C、 D,在第五个元素 E 入栈前,栈中元素可以出栈,则出栈序列可能是( ) A. ABCED B. DCBEA C. DBCEA D. CDABE 【参考答案】 B 7. 在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的( ) A. 安全性 B. 一致性 C. 可理解性 D. 合理性【参考答案】 C 8. 软件开发的结构化生命周期方法将软件生命周期划分成( ) A. 定义、开发、运行1 / 14维护 B. 设计阶段、编程阶段、测试阶段 C. 总体设计、详细设计、编程调试 D. 需求分析、功能定义、系统设计【参考答案】 A 9. 在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有( ) A. 特定的数据模型B. 数据无冗余C. 数据可共享D. 专门的数据管理软件【参考答案】 A 10. 实体是信息世界中广泛使用的一个术语,它用于表示( ) A. 有生命的事物 B. 无生命的事物 C. 实际存在的事物 D. 一切事物【参考答案】 C 11. 下面叙述中正确的是() A. C 语言编译时不检查语法 B. C 语言的子程序有过程和函数两种 C. C 语言的函数可以嵌套定义 D.C 语言的函数可以嵌套调用【参考答案】D 12. 以下叙述中正确的是() A. 构成 C 程序的基本单位是函数 B. 可以在一个函数中定义另一个函数 C. main()函数必须放在其他函数之前 D. 所有被调用的函数一定要在调用之前进行定义【参考答案】 A 13. 下列程序段的输出结果是() int a=1234; float b=123. 456; double c=12345. 54321; printf( %2d, %2.1f, %2. 1f , a, b, c) ; A. 无输出 B. 12,123. 5, 12345. 5 C. 1234, 123. 5, 12345. 5 D. 1234, 123.4, 1234. 5 【参考答案】 C 14. 设有以下程序段 int x=0, s=0; while(!x!=0) s+=++x; printf( %d , s) ; 则() A.运行程序段后输出 0 B. 运行程序段后输出 1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次【参考答案】 B---------------------------------------------------------------最新资料推荐------------------------------------------------------15. 以下程序段的描述,正确的是() x=-1; do{x=x*x; } while(!x) ; A. 是死循环 B. 循环执行两次C. 循环执行一次D. 有语法错误【参考答案】 C 16. 下列程序执行后的输出结果是() void func1(int i) ; voidfunc2(int i) ; char st[] = hello, friend! ; voidfunc1(int i) { printf( %c , st[i] ) ; if(i3) {i+=2;func2(i) ; } } void func2(int i) { printf( %c , st[i]) ; if(i3) {i+=2; func1(i) ; } } main(){ int i=0; func1(i) ; printf( \ n ) ; } A. hello B. helC. hloD. hlm 【参考答案】 C 17. 以下程序的输出结果是() #include stdio. h void prt(int *x, int*y, int*z){ printf( %d, %d, %d\ n , ++*x, ++*y, *(z++) ) ; } main(){ int a=10, b=40, c=20; prt(a, b, c) ; prt(a, b, c) ; }A. 11, 42, 31B. 11, 41, 20 12, 22, 41 12,42, 20 C. 11, 21, 40 D. 11, 41, 21 11, 21, 21 12, 42, 22 【参考答案】 B 18. 下列程序执行后的输出结果是() main() { int a[3][3] , *p, i; p=a[0][0] ; for(i=1; i9; i++) p[i] =i+1; printf( %d\ n ,a[1][2] ) ; } A. 3 B. 6 C. 9 D. 随机数【参考答案】 B 19. 下列程序执行后的输出结果是() main(){ char arr[2][4] ; strcpy(arr, you ) ; strcpy(arr3 / 14[1] , me ) ; arr[0][3] = ; printf( s\ n ,arr) ; } A. youme B. you C. me D. err 【参考答案】A 20. 有以下程序 int f(int n) { if(n==1) return 1;else return f(n-1) +1; } main() { int i, j=0;for(i=1; i3; i++) j+=f(i) ; printf( %d\ n , j) ; } 程序运行后的输出结果是() A. 4 B. 3 C. 2 D. 1 【参考答案】 B 21. 以下对结构体类型变量的定义中,不正确的是() A. typedef struct aa B. #define AA structaa { int n; AA{ int n; float m; float m; } AA; } tdl; AA tdl;C. structD. struct { int n; { int n; float m; float m; }aa; } tdl; struct aa tdl;【参考答案】 C 22. 若有以下程序 #include stdio. h voidf(int n) ; main() { void f(int n) ; f(5) ; }void f(int n) { printf( %d\ n , n) ; } 则以下叙述中不正确的是() A. 若只在主函数中对函数 f 进行说明,则只能在主函数中正确调用函数 f B. 若在主函数前对函数 f 进行说明,则在主函数和其后的其他函数中都可以正确调用函数 fC. 对于以上程序,编译时系统会提示出错信息:提示对 f 函数重复说明 D. 函数 f 无返回值,所以可用void 将其类型定义为无返回值型【参考答案】 C 23. 有以下---------------------------------------------------------------最新资料推荐------------------------------------------------------程序 #include stdio. h main() { FILE *fp; int i=20,j=30, k, n; fp=fopen( d1. dat , w ) ; fprintf(fp, %d\n , i) ; fprintf(fp, %d\n , j) ; fclose(fp) ; fp=fopen( d1. dat , r ) ; fscanf(fp, %d%d , k, n) ; printf( %d%d\ n , k, n) ; fclose(fp) ; } 程序运行后的输出结果是() A. 20 30 B. 20 50 C. 30 50 D. 3020 【参考答案】 A 24. 下面 4 个选项中,均是不合法的用户标识符的选项是() A. A P_0 B. float la0 _A C.b-a goto int D. _123 temp int 【参考答案】 C 25. 能正确表示逻辑关系:a10 或 a0 的 C 语言表达式是() A. a=10 or a=0 B. a=0| a=10 C. a=10 a=0 D. a=10|| a=0 【参考答案】D 26. 若有说明:int *p, m=5, n; 以下正确的程序段是() A. p=n; scanf( %d , p; ) B. p=n; scanf( %d , *p) C. scanf( %d , n) ; *p=n; D. p=n; *p=m; 【参考答案】 D 27. 有如下程序 main() { int a=2, b=-1, c=2; if(ab) if(b0)c=0; else c++; printf( %d\ n , c) ; } 该程序的输出结果是() A. 0 B. 1 C. 2 D. 3 【参考答案】C 28. 有一堆零件(100 到 200 之间),如果分成 4 个零件一组的若干组,则多 2 个零件;若分成 7 个零件一组,则多 3 个5 / 14零件;若分成 9 个零件一组,则多5 个零件。
下面程序是求这堆零件总数,在划线处应填入的选项是()#include stdio. h main() { int i; for(i=100; i200;i++) if((i-2) %4==0) if(!((i-3) %7) ) if(〖CD#5〗 ) printf( %d , i) ; } A. i%9=5 B. i%9!=5 C. (i-5) %9!=0 D. (i-5) %9==0 【参考答案】 D 29. 下面程序段的运行结果是() char a[] = lanuage , *p; p=a; while(*p!=u ) {printf( %c , *p-32) ; p++; } A. LANGUAGE B. language C. LAN D. langUAGE 【参考答案】 C 30. 以下不正确的定义语句是() A. double x[5] ={2. 0, 4. 0, 6. 0, 8. 0, 10. 0} ; B. int y[5. 3] ={0, 1, 3, 5, 7, 9} ; C. charc1[] ={ 1 , 2 , 3 , 4 , 5 } ; D. char c2[] ={ \x10 , \ xa , \ x8 } ; 【参考答案】 B 31. 当说明一个结构体变量时系统分配给它的内存是() A. 各成员所需内存量的总和 B. 结构中第一个成员所需内存量 C. 成员中占内存量最大者所需的容量 D. 结构中最后一个成员所需内存量【参考答案】 A 32. 函数 fun 的返回值是() fun(char*a, char *b) { int num=0, n=0; while(*(a+num) != \ 0 ) num++; while(b[n] ) {*(a+num) =b[n] ; num++; n++; } return num; } A. 字符串 a 的长度 B. 字符串 b的长度 C. 字符串 a 和 b 的长度之差 D. 字符串 a 和 b 的长度之和【参考答案】 D 33. 下列程序的输出结果是()---------------------------------------------------------------最新资料推荐------------------------------------------------------main() { int a[5] ={2, 4, 6, 8, 10} , *p, **k; p=a; k=p; printf( %d , *(p++) ) ; printf( %d\ n , **k) ; } A. 4 B. 22 C. 24 D. 46 【参考答案】 C 34. 下列函数的运行结果是() main() { int i=2, p; int j, k; j=i; k=++i; p=f(j, k) ; printf( %d , p) ; } intf(int a, int b) { int c; if(ab) c=1; else if(a==b)c=0; else c=-1; return(c) ; } A. -1 B. 1 C. 2D. 编译出错,无法运行【参考答案】 A 35. 有如下程序#define N 2 #define M N+1 #define NUM 2*M+1 main() { int i; for(i=1; i=NUM; i++) printf( %d\ n ,i) ; } 该程序中的 for 循环执行的次数是() A. 5 B. 6 C. 7 D. 8 【参考答案】 B 36. 现有如下程序段#include stdio. h int fun(int k, int * m) { 〖ZK(〗if(k%3) *m=k*k; else * m=k/3; } 〖ZK) 〗 main() { 〖ZK(〗 int(*p) (int, int * ) , m; p=fun; (*p) (78,m) printf( %d\ n , m) ; } 〖ZK) 〗则程序段的输出结果为( ) A. 24 B. 25 C. 26 D. 27 【参考答案】 C 37. 阅读程序段,则执行后的输出结果为( ) #include stdio. h typedef union{ long x[2] ; inty[4] ; char z[8] ; } atx; typedef struct aa{ long x[2] ; int y[4] ; char z[8] ; }7 / 14stx; main() { printf( union=%d, struct aa=%d\ n , sizeof(atx) , sizeof(stx) ) ; } A. union=8, struct aa=8 B. union=8, struct aa=24 C. union=24, struct aa=8 D. union=24, struct aa=24 【参考答案】 B 38. 阅读下面程序,程序实现的功能是(a123. txt 在当前盘符下已经存在)( ) #include stdio. h void main() { 〖ZK(〗 FILE *fp; int a [10], *p=a; fp=fopen( a123. txt , w ) ; while( strlen(gets(p) ) 0) { 〖ZK(〗 fputs(a, fp) ; fputs( \ n , fp) ; 〖ZK) 〗} fclose(fp) ; 〖ZK) 〗 } A. 从键盘输入若干行字符,按行号倒序写入文本文件 a123. txt 中 B. 从键盘输入若干行字符,取前 2 行写入文本文件 a123. txt 中 C. 从键盘输入若干行字符,第一行写入文本文件 a123. txt 中 D. 从键盘输入若干行字符,依次写入文本文件 a123. txt 中【参考答案】 D 39. 下列常数中不能作为 C 语言常量的是( ) A. 0xabc B. 2. 5e-0. 2 C. 32 D. 0747 【参考答案】 B 40. 已知 int t=6, s; 则执行语句s=(++t) +(t++) ; 后, s 的值是( ) A. 12 B. 13 C. 14 D. 15 【参考答案】 C 41. 下列说法中正确的是( ) A.一个 C 程序是从命令行开始执行的 B. C 程序中有些执行语句不用分号(;)结束 C. 分号不是 C 语句的一部分,是 C 语句之间的分隔符 D. 命令行必须用# 开头,最后不能加;号,命令行不是 C 程序中的语句【参考答案】 D 42. 有如下程序段---------------------------------------------------------------最新资料推荐------------------------------------------------------#include stdio. h main() { int a=10, b=50, c=30; a=a30?1: 2; b=b30?1: 2; c=c30?1: 2; printf( %d, %d, %d\ n , a, b, c) ; } 则执行结果为( ) A. 2, 1, 2 B. 1, 2, 1 C. 1, 1, 2 D. 2, 1, 1 【参考答案】 A 43. 若有定义 int k=10; , 则下列程序的输出结果为( ) do{ printf( %d , k--) ; } while(! k) ; A. 9 B. 10 C. 10987654321 D. 没有输出【参考答案】 B 44.下列程序的运行结果是( ) #include stdio. h main() { int a, b, m; for(a=5; a=1; a--) { m=0; for(b=a; b=5; b++) m=m+a*b; } printf( %d\ n , m) ; } A. 30 B. 15 C. 20 D. 10 【参考答案】 B 45.下列说法中不正确的是( ) A. C 语言规定,不能在一个函数的内部再定义函数 B. 在没有声明函数返回值类型的情况下,默认的函数返回值类型为 int 型 C. 函数的类型可以是整型、实型、字符型,但不能是指针型 D. 函数可以没有形参,但函数名后的一对圆括号不能省略【参考答案】 C 46. 阅读如下程序段,则程序段的执行后的输出结果为( ) #include stdio.h main() { char c; int i; char count() ; int p(char) ; for(i=0; i30; i++) c=count() ; p(c) ; } char count() { char str= A ; str+=1; return(str) ; } p(char c) { putchar(c) ;9 / 14putchar( \ n ) ; } A. A B. B C. a D. b 【参考答案】B 47. 现有下列程序段#include stdio. h voidJFT(int *a, int *b, int *c, int *d, int *e) { int i, j, k,m; for(i=0; i *a; i++) for(j=0; j *b; j++) for(k=0; k*c; k++) for(m=0; m *d; m++) *e++; } main() { int a=10, b=10, c=10, d=10, e=0; JFT(a, b,c, d, e) ; printf( %d\ n , e) ; } 则程序段的输出结果是( ) A. 10000 B. 1000 C. 1000 D. 0 【参考答案】 D 48. 阅读下列程序段,则程序段实现的功能是( )#include stdio. h main() { int k[10] ; int j; for(j=0; j10; j++) scanf( %d , k[j] ) ; for(j=9;j =0; j--) printf( %d , k[j] ) ; } A. 输入 10 个数据的顺序输入并输出 B. 输入 10 个数据的逆序存放 C. 输入 10 个数据的逆序输出 D. 以上叙述均错误【参考答案】 C 49. 阅读下面程序,则程序的输出结果为( ) #include stdio. h main() { int c[] ={1, 2, 3, 4, 5, 6} ; int *p; p=c; printf( %d, , *p) ; printf( %d\ n , *++p) ; } A. 1, 2 B. 2, 1 C. 1, 1 D.2, 2 【参考答案】 A 50. 阅读下面程序,则执行后的结果为( ) #include stdio. h #include string. h#define N 10 #define M 10 char *find(char(*a) [M] , intn) { char *q; int i; q=a[0] ; for(i=0; in; i++)---------------------------------------------------------------最新资料推荐------------------------------------------------------if(strcmp(a[i] , q) 0) q=a[i] ; return q; } main() { char s[N][M] ={ tomeetme , you , and , he , china } ; char *p; int n=5, i; p=find(s, n) ; puts(p) ; } A. he B. and C. you D. tomeetme 【参考答案】 B 1. 长度为 n 的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【1】。