




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
下列关于栈叙述正确的是AA)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对【解析】栈是限定在一端进行插入与删除的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动。栈按照后进先出的原则存储数据,先进入的数据被压入栈底,最后进入的数据在栈顶,需要读数据时从栈顶开始弹出数据(最后一个进入数据被第一个读出来)。所以栈顶的元素最先被删除,本题答案为A)。下列叙述中正确的是BA)有一个以上根结点的数据结构不一定是非线性结构 B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构【解析】线性结构指的是数据元素之间存在着一对一线性关系的数据结构,这样的结构中只有一个根结点,如循环链表和双向链表;非线性结构指的是数据元素之间存在着一对多非线性关系的数据结构,这样的结构中可能有一个根结点,如树形结构,也可能有多个根结点,如网状结构。故本题答案为B)。某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层D)A)3B)4C)6D)7【解析】叶子结点个数=度为2的结点个数+1,在此题中叶子结点个数为1,说明度为2的结点数为0,即二叉树中不存在度为2的结点,只有度为1的结点和叶子结点,那么此二叉树就是一棵单支树,树中结点个数即为树的深度,所以答案为D)。在软件开发中,需求分析阶段产生的主要文档是DA)软件集成测试计划B)软件详细设计说明书C)用户手册D)软件需求规格说明书【解析】软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的的重要文档,故本题答案为D)。结构化程序所要求的基本结构不包括BA)顺序结构B)GOTO跳转C)选择(分支)结构D)重复(循环)结构 【解析】结构化程序设计方法主要由以下三种逻辑结构组成:1)顺序结构:顺序结构是一种线性、有序的结构,它依次执行各语句模块;2)循环(重复)结构:循环结构是重复执行一个或几个模块,直到满足某一条件为止;3)选择(分支)结构:选择结构是根据条件成立与否选择程序执行的通路。故本题答案为B)。下面描述中错误的是A A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具【解析】系统总体结构支持软件系统的概要设计,其他选项均正确。故本题答案选A)。负责数据库中查询操作的数据库语言是CA)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言【解析】数据库中有三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。其中数据操作语言主要负责数据的插入、删除、查询、修改等操作,故答案为C。一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是DA)1:1联系 B)1:m联系C)m:1联系D)m:n联系【解析】两个实体间的联系可分为3种类型:一对一联系、一对多联系、多对多联系。在本题中一位教师可讲授多门课程,一门课程可由多位教师讲授,属于多对多联系。故本题答案为D)。有三个关系R、S和T如下:RABCa12b21c31SABc3TC1则由关系R和S得到关系T的操作是CA)自然连接B)交C)除D)并【解析】在关系代数中,除法运算可理解为笛卡尔积的逆运算。设被除关系R为m元关系,除关系S为n元关系,那么它们的商为m-n元关系,记为RS。商的构成原则是:将被除关系R中的m-n列,按其值分成若干组,检查每一组的n列值的集合是否包含除关系S,若包含则取m-n列的值作为商的一个元组,否则不取。故本题答案为C)。定义无符号整数类为UInt,下面可以作为类UInt实例化值的是BA)-369B)369 C)0.369D)整数集合1,2,3,4,5【解析】无符号整型unsigned int,占16位,范围是065535。故本题答案为B)。计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是AA)C语言程序仅可以编译执行B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对【解析】解释程序是将源程序(如BASIC)作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。编译程序是把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机执行这个目标程序,得到计算结果。以下叙述中错误的是DA)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件【解析】C语言的可执行程序是由一系列机器指令组成的,用C语言编写的源程序必须经过编译生成二进制目标代码,再经过连接才能运行,并且可以脱离C语言集成开发环境。故答案为D)。以下选项中不能用作C程序合法常量的是AA)1,234B) 123C)123D)x7G【解析】常量是在程序运行过程中,其值不能被改变的量。常量类型包括:整型常量、实例常量、字符常量、字符串常量和符号常量。B)选项为字符常量,表示八进制数123代表的ASCII字符;C)选项为整型常量;D)选项为字符串常量。以下选项中可用作C程序合法实数的是AA).1e0B)3.0e0.2C)E9D)9.12E【解析】浮点型常量有十进制小数形式和指数形式。指数形式要求字母e(或者E)之前必须有数字,且e后面的指数必须为整数。B)、C)、D)都是不合法的指数形式,故答案为A)。若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;D)a=1+(b=c=4);【解析】在A)选项中,赋值语句b=4先把4赋值给整型变量b,之后执行(b=4)=3是把常量3赋值给常量4,但是由于C语言规定赋值运算符的左侧只能是变量,不能是常量或者表达式,因此A)选项错误。有以下程序段char name20; int num;scanf(name=%s num=%d,name,&num);当执行上述程序段,并从键盘输入:name=Lili num=1001后,name的值为A A)Lili B)name=Lili C)Lili num=D)name=Lili num=1001解析】scanf()函数规定,如果在格式控制字串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符,如题干中的name=和num=。在输入过程中遇到空格、回车或跳格键时认为输入结束,这些字符称为间隔符。if语句的基本形式是:if(表达式)语句,以下关于表达式值的叙述中正确的是DA)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数值【解析】if语句中的表达式可以是逻辑值也可以是任意合法的数值,表达式的运算结果为非0(真)或者0(假)。有以下程序#includemain() int x=011;printf(%dn,+x);程序运行后的输出结果是CA)12B)11C)10D)9【解析】x=011表示把八进制的11赋值给变量x,因此x的值为十进制的9,程序运行的结果输出变量x自加运算后的十进制值,即10。有以下程序#includemain() int s;scanf(%d,&s);while(s0) switch(s) case 1:printf(%d,s+5);case 2:printf(%d,s+4);break;case 3:printf(%d,s+3);default:printf(%d,s+1);break;scanf(%d,&s);运行时,若输入123450,则输出结果是A A)6566456B)66656C)66666D)6666656【解析】switch语句执行完一个case后面的语句后,流程控制转移到下一个case语句继续执行,遇到break会跳出本次循环。本题中输入1时会输出65,输入2时会输出6,输入3时会输出64,输入4时会输出5,输入5时会输出6,在输入0时不满足循环条件,程序执行结束。有以下程序段int i,n;for(i=0;i8;i+) n=rand()%5;switch(n) case 1:case 3:printf(%dn,n);break;case 2:case 4:printf(%dn,n);continue;case 0: exit(0);printf(%dn,n);以下关于程序段执行情况的叙述,正确的是DA)for循环语句固定执行8次B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行【解析】当产生的随机数n为1或2时,由于没有遇到break,因此程序将分别顺序执行case 3与case 4;当n为3时,程序输出n的值后跳出switch语句;当n为4时,程序输出n的值后将继续执行下一次循环;当n为0时,程序执行exit函数结束运行。有以下程序#includemain() char s=012xy08s34f4w2;int i,n=0;for(i=0;si!=0;i+)if(si=0& si=9)n+;printf(%dn,n);程序运行后的输出结果是BA)0B)3C)7D)8【解析】本题的程序是要统计字符串s中数字的个数,其中前三个字符满足选择条件,此时n为3,然后遇到字符0,这个转义字符表示值为0的空字符NULL,此时循环条件不满足,因此循环结束。若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k+)printf(*n);下面关于语句执行情况的叙述中正确的是DA)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环【解析】本题程序中,for循环的循环条件是k=1,这个语句是赋值语句总是正确的,因此循环条件将一直满足,构成一个无限循环。有以下程序#includemain() char b,c; int i;b=a; c=A;for(i=0;i6;i+) if(i%2)putchar(i+b);else putchar(i+c); printf(n);程序运行后的输出结果是BA)ABCDEFB)AbCdEfC)aBcDeFD)abcdef【解析】本题中当变量i取值为0、2、4时,i可以被2整除,程序执行putchar(i+c),分别输出ACE;当变量i取值为1、3、5时,2除i的余数不为0,因此程序执行putchar(i+b),分别输出bdf。所以最终输出AbCdEf。设有定义:double x10,*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是CA)scanf(%f,&x6);B)scanf(%lf,*(x+6);C)scanf(%lf,p+6);D)scanf(%lf,p6);【解析】本题中定义了数组x和指向数组首元素的指针p,因此可以用x6的地址或者p指针偏移6个单位来定位数组下标为6的元素。另外,由于数组x的元素类型为double型,因此输入的格式控制符应为%lf。有以下程序(说明:字母A的ASCIl码值是65)#includevoid fun(char *s) while(*s) if(*s%2)printf(%c,*s);s+;main() char a=BYTE;fun(a);printf(n); 程序运行后的输出结果是DA)BYB)BTC)YTD)YE【解析】本题中调用函数fun(),可以输出字符串中ASCII码值为奇数的字符,字符串BYTE中各字符的ASCII码分别为66、89、84和69,因此最终输出YE。有以下程序段#includemain() while(getchar()!=n); 以下叙述中正确的是CA)此while语句将无限循环B)getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行【解析】本题中while循环条件为getchar()!=n,如果不按下回车键,则循环条件getchar()!=n一直成立,形成一个空循环;如果按下回车键,则循环条件不成立使循环结束,程序继续执行。有以下程序#includemain() int x=1,y=0;if(!x)y+;else if(x=0)if(x)y+=2;else y+=3;printf(%dn,y);程序运行后的输出结果是DA)3B)2C)1D)0【解析】根据在ifelse语句中,else总是和最近的if配对的原则,本题中层次关系是:if (!x)与else if(x=0)是一组,在最外层。而if(x)与else是一组,位于else if(x=0)条件的内层。据此所有条件均不成立,所以y未进行任何操作,仍为0。若有定义语句:char s310,(*k)3,*p;,则以下赋值语句正确的是CA)p=s;B)p=k;C)p=s0;D)k=s;【解析】A)选项中p=s将二维数组赋值给指向字符的指针;B)选项中p=k将指向一维数组的指针赋值给指向字符的指针;D)选项中k=s将二维数组赋值给一维数组,因此上述赋值语句均不正确。C)选项p=s0是把一维数组的首地址赋值给p指针。有以下程序#includevoid fun(char *c) while(*c) if(*c=a &*c=z) *c=*c-(a-A);c+; main() char s81;gets(s); fun(s);puts(s);当执行程序时从键盘上输入Hello Beijing,则程序的输出结果是CA)hello BeijingB)Hello BeijingC)HELLO BEIJINGD)hELLO Beijing【解析】本题中调用gets()函数输入字符串,然后调用fun()函数,用*c=*c-(a-A)实现把输入字符串中的小写字母转化为对应大写字母,最后调用puts()函数输出字符串。以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#include#define N 10void fun(int xN) int i=0;while(iN)scanf(%d, );在程序中下划线处应填入的是CA)x+iB)&xi+1C)x+(i+)D)&x+i【解析】本题中A)选项x+i只能为x0赋值,B)选项&xi+1只能为x1赋值,两者均不能为数组中的元素循环赋值;D)选项可以实现循环赋值,但是不能为x0赋值。有以下程序#includemain() char a30,b30;scanf(%s,a);gets(b);printf(%sn%sn,a,b);程序运行时若输入:how are you? I am fine 则输出结果是BA)how are you? I am fine B)how are you? I am fineC)how are you? I am fine D)how are you?解析】scanf函数会把空格字符作为输入的字符串之间的分隔符,因此字符串a为how。gets()函数读取字符串时,直至接受到换行符或EOF时才停止,并将读取的结果存放在指针所指向的字符数组中,因此其余输入的内容赋值给b。设有如下函数定义int fun(int k) if(k1) return 0;else if(k=1)return 1;else return fun(k-1)+1;若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是BA)2B)3C)4D)5【解析】执行fun(3)语句时会返回fun(3-1)+1,即fun(2)+1;执行fun(2)时会返回fun(2-1)+1,即fun(1)+1;执行fun(1)时会返回1,所以一共执行fun函数为3次。有以下程序#includeint fun(int x,int y) if(x!=y) return(x+y)/2);else return(x);main() int a=4,b=5,c=6;printf(%dn,fun(2*a,fun(b,c);程序运行后的输出结果是BA)3B)6C)8D)12【解析】本题中对函数fun()进行了嵌套的调用。首先调用fun(5,6),返回值为5,2*a的值为8,然后调用fun(8,5),最终输出值为6。有以下程序#includeint fun() static int x=1;x*=2;return x;main() int i,s=1;for(i=1;i=3;i+) s*=fun();printf(%dn,s);程序运行后的输出结果是DA)0B)10C)30D)64【解析】静态局部变量只在定义它的函数内有效,程序仅为其分配一次内存,调用函数返回后,该变量仍然保存上次的结果值。本题中第一次for循环后x值为2,s值为2;第二次循环后x值为4,s值为8;第三次循环后x值为8,s值为64。有以下程序#include#define S(x) 4*(x)*x+1main() int k=5,j=2;printf(%dn,S(k+3);程序运行后的输出结果是BA)197B)143C)33D)28【解析】宏定义又称为宏代换,格式为#define 标识符 字符串,其中的标识符就是所谓的符号常量,也称为宏名,宏的预处理工作也叫做宏展开,即将宏名替换为字符串。本题中把S(k+j)替换成4*(k+j)*k+j+1,计算结果为143。设有定义:structchar mark12;int num1;double num2;t1,t2;,若变量均已正确赋初值,则以下语句中错误的是CA)t1=t2;B)t2.num1=t1.num1;C)t2.mark=t1.mark;D)t2num2=t1.num2;【解析】字符串赋值不能通过指针来简单赋值。结构体可以进行整体的赋值。有以下程序#includestruct ord int x,y;dt2=1,2,3,4;main()struct ord*p=dt;printf(%d,+(p-x);printf(%dn,+(p-y);程序运行后的输出结果是DA)1,2B)4,lC)3,4D)2,3【解析】本题中定义了一个结构体数组dt2,其中dt0.x=1,dt0.y=2,dt1.x=3,dt1.y=4。在main函数中指针p指向了结构体数组的第一个元素,因此p-x值为1,p-y值为2,自加运算的结果分别为2和3。有以下程序#includestruct S int a, b; data2=10,100,20,200;main() struct S p=data1;printf(%dn,+(p.a);程序运行后的输出结果是DA)10B)11C)20D)21【解析】本题中定义了一个结构体数组data2,其中data0.a=10,data0.b=100,data1.a=20,data1.b=200。在main函数中结构体数组的第2个元素data1赋值给p,即p指向结构体数组的第2个元素,因此p.a的值为20,进行自加运算后结果为21。有以下程序#includemain() unsigned char a=8,c;c=a3;printf(%dn,c);程序运行后的输出结果是CA)32B)16C)1D)0【解析】本题中将8赋值给字符变量a,则a的二进制为00001000,a3的位运算是把a向右移动三位,结果为00000001,输出其十进制的值1。设fp已定义,执行语句fp=fopen(file,w);后,以下针对文本文件file操作叙述的选项中正确的是BA)写操作结束后可以从头开始读B)只能写不能读C)可以在原有内容后追加写D)可以随意读和写【解析】本题中用w方式打开文件,只能向文件写数据。如果原来不存在该文件,则新创建一个以指定名字命名的文件;如果已存在该文件,则把原文件删除后重新建立一个新文件,而不是把内容追加到原文件后。有序线性表能进行二分查找的前提是该线性表必须是 【1】顺序 存储的。【解析】能使用二分法查找的线性表必须满足两个条件:1)用顺序存储结构;2)线性表是有序的。一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为 【2】DEBFCA 。【解析】依据前序遍历序列可确定根结点为A,再依据中序遍历序列可知其左子树由DBE构成,右子树为FC;由A的左子树的前序遍历序列可知其根结点为B,由中序遍历序列可知其左子树为D,右子树为E;由A的右子树的前序遍历序列可知其根结点为C,由中序遍历序列可知其左子树为F,右子树为空。因此此二叉树的后序遍历序列为DEBFCA。对软件设计的最小单位(模块或程序单元)进行的测试通常称为 【3】单元测试(模块测试) 测试。【解析】软件测试的过程一般按4个步骤进行,即单元测试、集成测试、验收测试(确认测试)和系统测试。单元测试又称模块测试,是针对软件设计的最小单位程序模块进行正确性检验的测试工作。实体完整性约束要求关系数据库中元组的 【4】主码(主键) 属性值不能为空。【解析】实体完整性规则是针对基本关系而言,即针对现实世界的一个实体集,而现实世界中的实体是可区分的。该规则的目的是利用关系模式中的主码或主属性来区分现实世界中的实体集中的实体,所以不能取空值。在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称【5】D 是关系A的外码。【解析】参照完整性用于约定两个关系之间的联系,理论上规定:若M是关系S中的一属性组,且M是另一关系Z的主关键字,则称M为关系S对应关系Z的外关键字。若M是关系S的外关键字,则S中每一个元组在M上的值必须是空值或是对应关系Z中某个元组的主关键字值。以下程序运行后的输出结果是 【6】3 。#includemain() int a;a=(int)(double)(3/2)+0.5+(int)1.99*2);printf(%dn,a); 【解析】本题中3/2=1,(double)(3/2)=1,(int)1.99*2=1*2=2,因此(int)(1+0.5+2)=(int)3.5=3。有以下程序#includemain() int x;scanf(%d,&x);if(x15)printf(%d,x-5);if(x10)printf(%d,x);if(x5)printf(%dn,x+5);若程序运行时从键盘输入12,则输出结果为 【7】1217 。【解析】本题中输入12时,第一条if的条件x15不满足因此不执行,第二条if的条件x10满足因此输出12,第三条if的条件x5满足因此输出17。有以下程序(说明:字符0的ASCIl码值为48)#includemain() char c1,c2;scanf(%d,&c1);c2=c1+9;printf(%c%cn,c1,c2);若程序运行时从键盘输入48,则输出结果为 【8】09 。【解析】本题中通过ASCII码对字符变量赋值,由于字符0的ASCII码是48,因此字符变量c1为0,c2的ASCII码比c1大9,因此c2为9。有以下函数void prt(char ch,int n) int i;for(i=1;i=n;i+)printf(i%6!=0 ? %c:%cn,ch);执行调用语句prt(*,24);后,函数共输出了 【9】4 行*号。【解析】本题中输出*并换行的条件是i能被6整除,否则输出*不换行。因此只有在i为6、12、18和24时*的输出才会换行,最终输出4行*。以下程序运行后的输出结果是 【10】20 0 。#includemain() int x=10,y=20,t=0;if(x=y)t=x;x=y;y=t;printf(%d%dn,x,y);【解析】本题中if选择的条件x=y不满足,因此直接执行后面的x=y和y=t,则x的值为20,y的值为0。已知a所指的数组中有N个元素。函数fun的功能是,将下标k(k0)开始的后续元素全部向前移动一个位置。请填空。void fun(int aN,int k) int i;for(i=k;iN;i+) a 【11】i-1 =ai;【解析】本题中要将数组元素向前移动一个位置,就要使ai赋值给前一个元
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技论文考试题及答案
- 考评员考试题及答案
- 餐具及厨具制作工标准化作业考核试卷及答案
- 物料输送及烟气净化工技能操作考核试卷及答案
- 酒师考试题及答案
- 冷却筛分工测试考核试卷及答案
- 隧道巡视养护工晋升考核试卷及答案
- 钒铁浸滤工岗位操作技能考核试卷及答案
- 2025年教师招聘之《幼儿教师招聘》通关试题库含答案详解【新】
- 戒毒条例考试题及答案
- 安庆飞凯新材料有限公司6000吨-年光固化树脂及表面处理涂料项目环境影响报告书
- 月子会所运营方案
- 排污单位自行监测方案编制模板
- 工作安全分析JSA杜邦
- YY 1727-2020口腔黏膜渗出液人类免疫缺陷病毒抗体检测试剂盒(胶体金免疫层析法)
- 粘膜免疫系统概述
- 10室外配电线路工程定额套用及项目设置
- 钢板桩及支撑施工方案
- 急救中心急救站点建设标准
- 冷藏车保温箱冰排使用记录
- 精细化学品化学-课件
评论
0/150
提交评论