付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、无纸化真考试题库第37套1.算法的时间复杂度是指A)设计该算法所需的工作量B)执行该算法所需要的时间C)执行该算法时所需要的基本运算次数D)算法中指令的条数参考答案:C算法的时间复杂度是指执行算法所需要的计算工作量。它与算法程序执行的具体时间并不一致,因为算法执行的具体时间受到所使用的计算机、程序设计语言以及算法实现过程中许多细节的影响。算法的计算工作量是用算法所执行的基本运算次数来度量的。故选C选项2.设循环队列存储空间为Q(1:50),初始状态为front=rear=50。经过一系列入队和退队操作后,front=rear=25,则该循环队列中元素个数为A)26B)25C)24D)0或50参
2、考答案:D循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。循环队列长度为50,由初始状态为front=rear=50可知此时循环队列为空。入队运算时,首先队尾指针rear®1(即rear+1),然后在队尾指针rear指向的位置插入新元素。特别的,当队尾指针rear=50+1时,置rear=1。退队运算时,排头指针front进1(即front+1),然后删除front指针指向的位置上的元素,当排头指针front=50+1时,置front=1。若经过运算,front=rear可知队列空或者队列满,则队列中有0或者50
3、个元素。故选D选项3.某棵树的度为4,且度为4、3、2、1的结点数分别为1、2、3、4,则该树中的叶子结点数为A)11B)9C)10D)8参考答案:A由题目可以知道,若四种度的结点分开成子树,共包含结点(4+1)+2X(3+1)+3X(2+1)+4X(1+1)=30个,当组合成一棵树时,任选一个度不为0的结点作为根结点,则新的树结点个数为30-2-3-4=21个,则该树中叶子结点个数为21-1-2-3-4=11。故选择A选项。4.设某二叉树的前序序列与中序序列均为ABCDEFGH则该二叉树的后序序列为A) HGFEDCBAB)EFGHABCDC)DCBAHGFED)ABCDEFGH参考答案:A
4、二叉树遍历可以分为3种:前序遍历(访问根结点在访问左子树和访问右子树之前)、中序遍历(访问根结点在访问左子树和访问右子树两者之间)、后序遍历(访问根结点在访问左子树和访问右子树之后)。二叉树的前序序列与中序序列相同,说明此树结点没有左子树,且第一个节点A为根节点,而后序遍历中根节点应在最后被访问,即节点A&最后出现,由此推断出后序遍历为HGFEDCBA故A项正确5,下列叙述中正确的是A)二分查找法适用于任何存储结构的有序线性表B)二分查找法只适用于顺序存储的有序线性表C)二分查找法适用于有序循环链表D)二分查找法适用于有序双向链表参考答案:B二分法查找也称拆半查找,能使用二分法查找的线
5、性表必须满足两个条件:顺序存储结构以及线性表有序。循环链表和双向链表都不是顺序存储结构,故B选项正确。6,下列序列中不满足堆条件的是A)(98,95,93,96,89,85,76,64,55,49)B)(98,95,93,94,89,85,76,64,55,49)C)(98,95,93,94,89,90,76,64,55,49)D)(98,95,93,94,89,90,76,80,55,49)参考答案:A若有n个元素的序列,将元素按顺序组成一棵完全二叉树,当且仅当满足下列条件时称为堆:大根堆,所有结点的值大于或等于其左右子结点的值;小根堆,所有结点的值小于或等于其左右子结点的值。BC、砒项属于
6、大根堆,A选项由于98>95,判断属于大根堆,但95<96,不满足条件,不是堆,故选择A选项7,下面属于面向对象方法中对象基本特点的是A)多态性B) 方法唯一性C)可修改性D)灵活性参考答案:A对象的基本特点如下:特点描述标识唯一性一个对象通常可由对象名、属性和操作三部分组成分类性指可以将具有相同属性和操作的对象抽象成类多态性指同一个操作可以是小同对象的行为,小同对象执行同一操作产生/、同的结果封装性从外面看只能看到对象的外部特性,对象的内部对外是不可见的模块独立性好由于完成对象功能所需的兀素都被封装在对象内部,所以模块独立性好由上表可知,本题选A选项8,下面可以作为软件需求分析工
7、具的是A)包图B)程序流程图C) PAD图D)数据流程图(DFD图)参考答案:D需求分析方法可以分为结构化分析方法和面向对象的分析方法,结构化分析工具包括:数据流图(DFD、数据字典(DD、结构化英语、判定表和判定树等。选项B中的程序流程图和选项C的PAt®是过程设计工具,选项A中的包图用于UMI®向对象建模。故选D选项9,数据库的数据模型分为A)层次、关系和网状B)网状、环状和链状C)大型、中型和小型D)线性和非线性参考答案:A数据库的数据模型分为层次、关系和网状三种。其中:用树形结构表示实体及其之间联系的模型称为层次模型,模型中结点是实体,树枝是联系,从上到下是一对多的
8、关系。用网状结构表示实体及其之间联系的模型称为网状模型,它是层次模型的扩展,表示多个从属关系的层次结构,呈现一种交叉关系。关系模型的数据结构非常单一,在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。故本题选A选项。10 .数据库系统的数据独立性是指A)不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序B)不会因为数据的变化而影响应用程序C)不会因为存储策略的变化而影响存储结构D)不会因为某些存储结构的变化而影响其他的存储结构参考答案:A数据库系统的数据独立性,是指数据库中数据独立于应用程序且不依赖于应用程序,即数据的逻辑结构、存储结构与存取方式白改变不会影响应用程序。故
9、选A选项。11.以下叙述正确的是A)C程序由函数组成,可以不包含main函数B)每个C程序文件中的main函数都应当放在最前面C)每个C程序文件都应当包含一个main函数D)每个C程序都只能有一个main函数参考答案:D虽然一个C程序可以包含多个文件,但是有且只有一个文件中包含main函数,因此,选项A,C错误。main函数可以放在程序的任意位置。因此,选项B昔误。答案为泌项。12 .以下叙述错误的是A)计算机可以直接识别由十六进制代码构成的程序B)可以连续执行的指令的集合称为"程序”C)"程序”是人与计算机"对话”的语言D)计算机可以直接识别由0和1组成的机器语
10、言代码参考答案:A计算机只能识别机器码,机器码是由二进制构成的,因此只能识别二进制构成的代码程序,不可以直接识别由十六进制代码构成的程序,十六进制的代码必须转为二进制才能在计算机上直接执行。因此选项A昔误13 .以下与数学表达式"0<x<5且x,2"不等价的C语言逻辑表达式是A) (0<x<5)&&(x!=2)B) 0<x&&x<5&&x!=2C) x>0&&x<5&&x!=2D) (x>0&&x<2)|(x>2&
11、amp;&x<5)参考答案:A0Vx<5在C语言里不能这样直接表达,需要分步骤来实现,一般使用x>0&&x<5描述。在以言0Vx<5属于一个逻辑运算表达式,可以理解为(0<x)<5,因此选项A错误。故答案为Ai项14.以下选项中与(!a=0)的逻辑值不等价的表达式是A) (a=!0)B) aC) (a>0|a<0)D) (a!=0)参考答案:A!与=运算,!的优先级高于=,即等价于(!a)=0。如果a#0,则表达式为真,否则表达式为假,因此可以验证选项,只有选项A不符合。故答案为A选项。15.变量math和engl中
12、存放了两门课的成绩。若两门课成绩均在60分以上(含60),则显示"pass";有一门低于60分则显示"fail",以下不能实现上述功能的程序段是A) if(math<60)if(engl<60)printf("failn");elseprintf("passn");B) if(math<60)printf("failn");elseif(engl>=60)printf("passn");elseprintf("failn");C)
13、if(math<60)|(engl<60)printf("failn");elseprintf("passn");D) if(math>=60)&&(engl>=60)printf("passn");elseprintf("failn");参考答案:A选项A,当math之60,没有输出pass,同时当math<60,engl之60,程序输出pass,这些案例都是与题目的原意不符合的,因此选项A错误。选项日CD,都可以正确输出。故答案为破项16.设有以下程序段main()
14、intxMN;Arrlet(x);)则作为函数Arrlet的形参,以下表示形式非法的是A) intxMB) int(*x)NC) intxND) intxMN参考答案:AC语言规定,二维数组作为实参参数传递时,形参必须要指明二维数组的列数,否则函数内无法识别数组的宽度,行数提供没有任何作用。(*p)N与p口N以及pMN效果一样。排除法A项17.有以下程序#include<stdio.h>voidfun(intn)if(n/2)fun(n/2);printf("%d",n%2);)main()fun(10);printf("n");程序运行后的
15、输出结果是A) 0101B) 1000C) 1100D) 1010参考答案:D函数fun()的作用是求一个整数的二进制数。通过辗转相除法获取一个整数的二进制。因此1010=10102,故答案为D选项。18.有以下程序#include<stdio.h>voidfun(char*a,char*b)char*s=a;while(*s)s+;s-;while(s>=a)*b=*s;s-;b+;*b='0'main()chars1="abc",s26;fun(s1,s2);puts(s2);)程序运行后的输出结果是A) cbaabcB) abcC)
16、cbaD) abccba参考答案:C函数fun()实现的功能是:将第一个参数指向的字符串逆序的赋值给第二个参数,fun()首先循环至第一个参数的末端,再从后至前,循环的赋值给第二个参数,因此第二个参数里的内容和第一个参数内容的逆序。因此结果是cba。答案为C选项。19 .有以下程序#include<stdio.h>main()charb410;inti;for(i=0;i<4;i+)scanf("%s",bi);for(i=3;i>=0;i-)printf("%s",bi);printf("n");)执行时若输
17、入:Peachflowerispink.<回车>,则输出结果是A) Peachflowerispink.B) pink.isflowerPeachC) Peachflowerispink.D) Pinkisflowerpeach.参考答案:B第一个for循环对字符串数组初始化,第二for循环,从后向前打印字符串数组,因此,得到的答案是pink.isflowerPeach,故答案为B选项。20 .有以下程序#include<stdio.h>int*f(int*s)s1+=6;*s=7;s+=2;returns;)main()inta5=1,2,3,4,5,*p=a;p=f
18、(p);printf("%d,%d,%dn",a0,a1,*p);程序运行后的输出结果是A)9,8,9B)7,8,7C)7,8,3D)1,2,1参考答案:C函数f中,s指向数组a,s1+=6,a1=8;a0=7;修改a1,*s=7修改a0,s+=2;s指向第三个元素,返回s,并赋给指针p,则*p=3。,因此打印7,8,3,答案为C选项21.设有定义:chars81;inti=0;以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是A)scanf("%s",s);B) while(si+=getchar()!='n')
19、;si='0'C) gets(s);D) doscanf("%c",&si);while(si+!='n');si='0'参考答案:Ascanf("%s",s);字符串不能整体输入,字符串数组一般采取循环输入,因此选择A错误。getchar()每一次读入一个字符,gets()一次读入多个字符,因此B,C,D正确。答案为砒项。22.以下叙述中错误的是()。A) C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B) C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文
20、件C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)C语言源程序经编译后生成后缀为.obj的目标程序参考答案:A【解析】C语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以A)错误。由C语言构成的指令序列称C源程序,C源程序经过C语言编译程序编译之后生成一个后缀为QBJ的二进制文件(称为目标文件);最后要由"连接程序”把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。23.以下选项中,合法的一组C语言数值常量是()。A)12.0Xa234.5e0B) 028.5e30xfC) .1774e1.50abcD)0x
21、8A10,0003.e5参考答案:A【解析】C语言中八进制整型常量的开头是数字0,十六进制整型常量的开头数字是0x。C语言中的实型常量有两种表示形式:小数形式,小数形式表示的实型常量必须要有小数点;指数形式,以"e"或"E"后跟一个整数来表示以10为底数的哥数,且规定字母e或E之前必须要有数字,且e或E后面的指数必须为整数。B)选项中028错误,八进制中没有数字8。C)选项中4e1.5中e后面的指数不是整数。D)选项中3.e5小数点后面缺少数字。24.以下选项中不合法的标识符是()。A) &aB) FORC) printD) _00参考答案:A【
22、解析】C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。因为C语言中区分大小写,所以B)选项中的"FOR"可以作为标识符来用。A)选项中含有非法字符&,所以选择A)。25.若有代数式面(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是()。A) sqrt(fabs(pow(n,x)+exp(x)B) sqrt(fabs(pow(n,x)+pow(x,e)C) sqrt(abs(nAx+eAx)D) sqrt(fabs(pow(x,n)+exp(x)参考答案:A【解析】B)选项中函数pow(
23、x,e)错误应该直接使用exp(x)函数。C)选项中函数abs(nAx+eAx)错误,应该使用fabs()返回浮点数的绝对值。D)选项中pow(x,n)参数顺序错误。26.若有定义:doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是()A) i=(a+k)<=(i+k);B) i=a%11;C) a=aHF,idFD) i=!a;参考答案:B【解析】取模运算符"",二元运算符,具有左结合性,参与运算的量均为整型。选项B中的a变量是double实型,所以B)不符合规定。27.有以下程序:#include<stdio.h>main(
24、)ints,t,A=10;doubleB=6;s=sizeof(A);t=sizeof(B);printf("%d,%dn",s,t);)在VC6.0平台上编译运行,程序运行后的输出结果是()。A)10,6B) 4,4C) 2,4D) 4,8参考答案:D【解析】C语言中利用sizeof()函数判断数据类型长度,在VC6.0平台中,整型int占有4个字节,double型数据占有8个字节。28.有以下程序:#include<stdio.h>main()chara,b,c,d;scanf("%c%c",&a,&b);c=getcha
25、r();d=getchar();printf("%c%c%c%cn",a,b,c,d);当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是()。A) 1234B) 12C) 1234D) 123参考答案:D【解析】按照从键盘输入的数据可以判断字符1给了变量a,字符2给了变量b,字符<CR>即回车给了变量c,字符3给了变量do所以打印输出的结果为D)选项。29 .下关于逻辑运算符两侧运算对象的叙述中正确的是()。A)可以是任意合法的表达式B)只能是整数0
26、或非0整数C)可以是结构体类型的数据D)只能是整数0或1参考答案:A【解析】C语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可以是任意合法的表达式,所以选择A)。30 .有以下程序:#include<stdio.h>main()inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf("%d,%d,%d,%dn",a,b,c,d);程序输出()。A)1,1,2,0B)0,0,0,3C)编译有错D)0,1,2,0参考答案:C【解析】本题中if(a=1)b=1;与elsed=3;之间多了语句c=2;所以会出现else
27、语句的位置错误的编译失败提示。31 .有以下程序:#include<stdio.h>main()32 intx=1,y=0,a=0,b=0;switch(x)case1:switch(y)case0:a+;break;case1:b+;break;)case2:a+;b+;break;case3:aHF;bHF;)printf("a=%d,b=%dn",a,b);)程序的运行结果是()。A)a=2,b=2B)a=2,b=1C)a=1,b=1D)a=1,b=0参考答案:B【解析】case常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行switch语句时
28、,根据switch的表达式,找到与之匹配的case语句,就从此case?句执行下去,不在进行判断,直到碰到break或函数结束为止。所以执行内层switch(y)时只执行了a+,此时a的值为1。然后执行外层case漪句的a+;b+;a为2,b为1。所以结果为B)。32 .以下程序段中的变量已正确定义:for(i=0;i<4;i+,i+)for(k=1;k<3;k+);printf("*");A)B)C)D)程序段的输出结果是()。*参考答案:C【解析】由于内层循环for(k=1;k<3;k+)后面直接跟了空语句";”所以在循环内部什么操作也不做,
29、跳出外层循环后执行打印语句,所以打印了一个"*",选择C)。33 .有以下程序段:#include<stdio.h>inti,n;for(i=0;i<8;i+)n=rand()%5;switch(n)case1:case3:printf("%dn",n);break;case2:case4:printf("%dn",n);continue;case0:exit(0);)printf("%dn",n);以下关于程序段执行情况的叙述,正确的是()。A)for循环语句固定执行8次B)当产生的随机数n为4
30、时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行参考答案:D【解析】case常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行sw让ch语句时,根据switch的表达式,找到与之匹配的case语句,就从此case?句执行下去,不再进行判断,直到碰到break或函数结束为止。简单的说break是结束整个循环体,而continue是结束单次循环。B)选项中当产生的随机数n为4时要执行打印操作。C)选项中当产生的随机数为1和2时分别执行case冉case4后面语句的内容。由于存在break语句所以for循环不是固定执行8次,执行次数与产生的随机
31、数n有关系。 4.有以下程序:#include<stdio.h>intf(intx);main() intn=1,m;m=f(f(f(n);printf("%dn",m);intf(intx) returnx*2;程序运行后的输出结果是()。A) 8B) 2C) 4D) 1参考答案:A【解析】第一次调用m=f(f(f(1),第二次为m=f(f(2),第三次为m=f(4),即返回值为8。35.以下叙述中错误的是()。A)可以给指针变量赋一个整数作为地址值B)函数可以返回地址值C)改变函数形参的值,不会改变对应实参的值D)当在程序的开头包含头文件stdio.h时,可
32、以给指针变量赋NULL参考答案:A【解析】不能将一个整数直接赋给指针变量作为地址,所以A)是错误的。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。36.设已有定义:floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是()。A) int*p=(float)x;B) float*p=&x;C) floatp=&x;D) float*p=1024;参考答案:B【解析】指针是用来存放地址的变量,用(类型名*指针变量名)的形式定义。赋值时应将某个变量地址即&x赋给指针变量,所以选择B)。37.以下数组定义中错误的是()。A) intx23=1,2,3,4,5,6;B) intx3=0;C) intx3=1,2,3,4,5,6;D) intx23=1,2,3,4,5,6;参考答案:D【解析】D)选项中x23定义的是一个两行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五金件供货合同(2026版)
- 学校物业服务合同(2026版)
- 2023年6月卫生资格考试呼吸内科肺癌预防测试题及答案
- 庆阳环县高中学校选调专任教师笔试真题2025
- 赣州市面向大学生乡村医生专项计划招聘笔试真题2025
- 社群基础及运营 5
- 2026年秋季校园安全教育专题课 防诈骗教育
- 2026 年初中秋季开学第一课厄尔尼诺引发暴雨洪涝科普教育
- 2026年感染性疾病科细菌性感染护理培训
- 2026年秋道德与法治一年级上册教学工作计划
- 2026年审计系统公文写作规范考试题
- 动词和动词短语 复习课件 中考英语复习
- 2026年农商银行网络运维岗位题库
- 内蒙古辅警综合基础知识历年真题
- 复方比那甫西颗粒-临床药品应用解读
- 口腔科2025年核与辐射安全隐患自查报告
- 商贸公司财务审批流程及控制制度
- 车库门应急预案(3篇)
- 化妆教学合同协议
- 2025年河北省机关事业单位工人技能等级考试《公共基础知识》备考题及答案
- 辐射安全操作规程
评论
0/150
提交评论