




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.面向对象方法中,实现对象的数据和操作结合于统一体中的是A.结合B.封装C.隐藏D.抽象正确答案:B你的答案:解析:【解析】对象的基本特点是:标识唯一性、分类性、多态性、封装性、模块独立性好。封装是指隐藏对象的属性和实现细节,将数据和操作结合于统一体,仅对外提供访问方式,B选项正确。2.在进行逻辑设计时,将E-R图中实体之间联系转换为关系数据库的A.关系B.元组C.属性D.属性的值域正确答案:A你的答案:解析:【解析】E-R模型和关系模式的对照表如下由表中可以看出,联系转换为关系数据库的关系,A选项正确。3.线性表的链式存储结构与顺序存储结构相比,链式存储结构的优点有A.节省存储空间B.插入与删除运算效率高C.便于查找D.排序时减少元素的比较次数正确答案:B你的答案:解析:【解析】顺序表和链表的优缺点比较如下表:由表中可以看出链式存储插入与删除运算效率高,故B选项正确。4.深度为7的完全二叉树中共有125个结点,则该完全二叉树中的叶子结点数为A.62B.63C.64D.65正确答案:B你的答案:解析:【解析】在树结构中,定义一棵树的根结点所在的层次为1,其他结点所在的层次等于它的父结点所在的层次加1,树的最大层次称为树的深度。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。深度为6的满二叉树,结点个数为2^6-1=63,则第7层共有125-63=62个叶子结点,分别挂在第6层的左边62个结点上,加上第6层的最后1个叶子结点,该完全二叉树共有63个叶子结点,故B选项正确。5.下列叙述中正确的是A.所谓有序表是指在顺序存储空间内连续存放的元素序列B.有序表只能顺序存储在连续的存储空间内C.有序表可以用链接存储方式存储在不连续的存储空间内D.任何存储方式的有序表均能采用二分法进行查找正确答案:C你的答案:解析:【解析】"有序"是特指元素按非递减排列,即从小到大排列,但允许相邻元素相等,A选项错误。有序表可以顺序存储也可以链式存储,B选项错。能使用二分法查找的线性表必须满足两个条件:用顺序存储结构;线性表是有序表,D选项错误。故C选项正确。6.设二叉树如下:
则后序遍历序列为A.ABDEGCFHB.DBGEAFHCC.DGEBHFCAD.ABCDEFGH正确答案:C你的答案:解析:【解析】二叉树遍历可以分为3种:前序遍历(访问根结点在访问左子树和访问右子树之前)、中序遍历(访问根结点在访问左子树和访问右子树两者之间)、后序遍历(访问根结点在访问左子树和访问右子树之后)。本题中前序遍历为ABDEGCFH,中序遍历为DBGEAFHC,后序遍历为DGEBHFCA,故C选项正确。7.计算机软件包括A.算法和数据B.程序和数据C.程序和文档D.程序、数据及相关文档正确答案:D你的答案:解析:【解析】计算机软件由两部分组成:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。故D选项正确。8.下面描述中不属于软件需求分析阶段任务的是A.撰写软件需求规格说明书B.软件的总体结构设计C.软件的需求分析D.软件的需求评审正确答案:B你的答案:解析:解析】需求分析阶段的工作可以分为4个方面:需求获取、需求分析、编写需求规格说明书和需求评审。故B选项正确。9.当数据库中数据总体逻辑结构发生变化,而应用程序不受影响,称为数据的A.逻辑独立性B.物理独立性C.应用独立性D.空间独立性正确答案:A你的答案:解析:【解析】数据独立性包括物理独立性和逻辑独立性,物理独立性指数据的物理结构的改变,不会影响数据库的逻辑结构,也不会引起应用程序的改动;逻辑独立性指数据库的总体逻辑结构的改变,不会导致相应的应用程序的改变。故A选项正确。10.有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是A.并B.投影C.交D.选择正确答案:A你的答案:解析:【解析】用于查询的3个操作无法用传统的集合运算表示,引入的运算为投影运算、选择运算、笛卡尔积。常用的扩充运算有交、除、连接及自然连接等。投影,从关系模式中指定若干个属性组成新的关系,T相较于R没有缺少属性,故B选项错误。选择,从关系中找出满足给定条件的元组的操作称为选择,T相较于R增加了元组,故D选项错误。交:R∩S结果是既属于R又属于S的记录组成的集合,T中元组多于R与S,故C选项错误。并:R∪S是将S中的记录追加到R后面,与题目中结果相符,故A选项正确。11.以下叙述正确的是A.C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件B.C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.exe的可执行文件C.C编译程序把文件后缀为.obj的二进制文件编译成文件后缀为.exe的可执行文件D.链接程序把文件后缀为.c的源程序文件链接成文件后缀为.exe的可执行文件正确答案:A你的答案:解析:【解析】C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件,链接将一个或多个目标文件与程序用到的库文件连接起来,形成一个可以在操作系统直接运行的执行程序.exe,故排除B,C,D选项,答案选A选项。12.以下叙述正确的是A.循环结构、选择结构、顺序结构都是结构化程序的基本结构B.计算机可以直接执行C语言程序,不需要做任何转换C.过于复杂的算法不能使用N-S流程图描述D.只有不超过20步操作步骤的算法才是简单算法正确答案:A你的答案:解析:【解析】计算机只能识别机器语言,C语言是高级语言,计算机无法直接执行,排除B选项;N-S流程图是复杂流程算法的描述手段,因此C选项错误;算法的复杂与简单,不能用操作步骤数来衡量,D选项错误;循环结构、选择结构、顺序结构都是结构化程序的基本结构,答案为A选项。13.有如下程序#include<stdio.h>main(){intx=072;printf("X=%d.\n",x+1);}程序运行后的输出结果是A.X=115B.X=73C.X=59.D.X=72.正确答案:C你的答案:解析:【解析】x定义为072,表示x为一个八进制数,%d代表十进制整数输出,x需要转化成十进制为58,在输出时,x+1=59,再输出,答案为C选项,另外输出时不能忘记"."。14.下面叙述正确的是A.任何复杂任务都可以分解成简单子任务B.C语言程序的所有函数只能处于同一个源文件中WErC.包含全部三种基本结构的程序才是结构化程序D.C语言程序可以定义多个不同内容的main函数正确答案:A你的答案:解析:【解析】C语言程序的函数可以处于不同的源文件,B选项错误;包含一种基本结构的程序就是结构化程序,C选项错误;C语言只可以定义一个main函数,D选项错误,答案为A选项。15.以下叙述正确的是A.C程序总是以main()作为程序执行的起始行B.main()函数若不带参数,其后面的一对圆括号可省略C.函数体内的定义语句和可执行语句允许任意穿插出现D.C语言中的语句之间必须用分号作为分隔符正确答案:A你的答案:解析:【解析】main()函数后面的括号告诉编译器这是一个函数,不可以省略,排除B选项;在复合语句中,不仅可以有执行语句,还可以有定义语句,定义语句应该出现在执行语句的前面,故排除C选项;C语言中的某些语句可以不用分号,例如if语句,故D选项错误;答案为A选项。16.有以下程序#include<stdio.h>main(){charc;for(;(c=getchar())!='#';)putchar(++c);}执行时如输入为:abcdefg##<回车>,则输出结果是A.abcdefgB.bcdefgh$C.bcdefgh$$D.bcdefgh正确答案:D你的答案:解析:【解析】for语句中执行的含义是,每次把输入赋给c值,如果不等于'#',则执行putchar(++c),即将当前c值在ASCII码上+1后再输出字符型c值,c的值等于'#',则终止循环,所以输出应该是bcdefgh,答案为D选项。17.有以下程序#include<stdio.h>main(){inta=1,b=0;for(;a<5;a++){if(a%2==0)break;continue;b+=a;}printf("%d\n",b);}程序运行后的输出结果是A.0B.1C.10D.4正确答案:A你的答案:解析:【解析】题干中for循环有break和continue语句,且均放在b+=a语句前面,无论if条件是否满足,b+=a都不会被执行,因此b值始终为0,答案为A选项。18.有以下程序#include<stdio.h>main(){intx=0x13;if(x=0x12)printf("True");printf("False\n");}程序运行后的输出结果是A.TrueB.TrueFalseC.FalseD.TrueFalseTrue正确答案:B你的答案:解析:【解析】if(x=0x12)表示x=0x12,此为赋值语句,表达式的值为0x12,非零为真,执行printf("True"),再执行printf("False\n"),因此答案为B选项,注意赋值操作符"="与相等操作符"=="的区别。19.为了避免在嵌套的if-else语句中产生二义性,C语言规定与else子句配对是A.与其在同一行上的if子句B.在其之后最近的不带else的if子句C.与其缩排位置相同的if子句D.在其之前最近的不带else的同层if子句正确答案:D你的答案:解析:【解析】注意if与else的配对关系。原则是if总是与它上面最近的、未配对的else配对,因此答案为D选项。20.有以下程序#include<stdio.h>main(){inti,a;for(i=0;i<=10;i++)a=i;printf("%d,%d\n",i,a);}程序的运行结果是A.11,10B.10,10C.10,11D.11,11正确答案:A你的答案:解析:【解析】当i=10时,i值赋值给a,同时i+1,再判定是否满足i<=10,i=11时,不满足条件,结束循环。循环结束时,输出i,a的值为11,10,答案为A选项。21.有以下程序#include<stdio.h>voidfun(inta[],intn){inti=0;for(i=0;i<n;i++){if(i%2==0)a[i]+=n;elsea[i]-=n;}}main(){intc[5]={5,4,3,2,1},i;fun(c,5);for(i=0;i<5;i++)printf("%d,",c[i]);printf("\n");}程序运行后的输出结果是A.10,-1,8,-3,6,B.5,4,3,2,1,C.10,2,8,4,6,D.5,-1,3,-3,1,正确答案:A你的答案:解析:【解析】fun()函数功能是:对数组中,下标为偶数的元素累加5,下标为奇数的元素减去5,所以执行完fun()函数后,数组c变为10,-1,8,-3,6,A选项正确。22.有以下程序#include<stdio.h>#defineN4voidfun(inta[][N]){inti;for(i=0;i<N;i++)a[0][i]=a[N-1][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i;fun(x);for(i=0;i<N;i++)printf("%d,",x[i][i]);printf("\n");}程序运行后的输出结果是A.16,6,11,16,B.1,6,11,16,C.4,7,10,13,D.17,17,17,17,正确答案:A你的答案:解析:【解析】程序最后输出x[0][0],x[1][1],x[2][2],x[3][3],其中只有x[0][0]的值在fun函数中发生改变,在fun函数中,当i=0时,x[0][0]=x[3][3]=16,因此答案为A选项。23.有如下程序#include<stdio.h>intconvert(int*data){return(*data)++;}main(){intdata=56;convert(&data);printf("%d,",data);data=convert(&data);printf("%d,\n",data);}程序运行后的输出结果是A.56,57,B.57,58,C.57,57,D.55,57,正确答案:C你的答案:解析:【解析】convert函数每次都定义了一个指针*data,再将指针变量*data对应地址的值进行加一处理,再返回加1前的值作为结果,因此答案为C选项。24.设有如下程序段inta[1]={0};intb[]={9};charc[3]={"A","B"};chard="12";以下叙述正确的是A.a,b的定义合法,c,d的定义不合法B.a,b,c,d的定义都是合法的C.a,b,c的定义是合法的,d的定义不合法D.只有a的定义是合法的正确答案:A你的答案:解析:【解析】inta[1]={0}表示定义一个数组a[1]初值为0,intb[]={9},表示定义一个数组b,其中只有一个值9,系统自动识别数组有1个元素。charc[3]={"A","B"},数组元素为字符串,需要用二维数组来表示,C选项错误;chard="12";,字符串常量不能赋值给字符变量,D选项错误;因此答案为A选项。25.设有定义:intx=2,*p=&x;floaty=3.0;charz='c';,则立即进行以下运算有安全隐患的是A.p++;B.x++;C.y++;D.z++;正确答案:A你的答案:解析:【解析】由于x是一个整形变量,将x地址赋值给p指针后,A选项中p++对指针p进行加1运算,p指针的值相当于加4(整型变量的地址占4个字节),此时p指向了未知的内存地址,对未知内存地址进行操作具有安全隐患,故答案为A选项。26.有以下程序#include<stdio.h>doublefun(doublea){doublex;x=a-(int)a;returnx;}main(){doublea=3.1415;printf("%f\n",fun(a));}程序的运行结果是A.3.000000B.3.141500C.0.141500D.0.000000正确答案:C你的答案:解析:【解析】这里考查了强制转换的概念,在fun函数中,x=a-(int)a表示x取值为a的小数部分,因此,输入a为3.1415,输出x=0.141500,答案为C选项。27.有以下程序#include<stdio.h>#include<string.h>char*a="you";char*b="WelcomeyoutoBeijing!";main(){char*p;p=b;while(*p!=*a)p++;p+=strlen(a)+1;printf("%s\n",p);}程序运行后的输出结果是A.Beijing!B.youtoBeijing!C.WelcomeyoutoBeijing!D.toBeijing!正确答案:D你的答案:解析:【解析】while函数判断p指针指向地址的内容是否和a指针指向地址的内容相等,如果不是,则移动指针p+1,当p指向*b字符串中的'y'时,和*a首地址元素相等,退出while语句后,p再向右移动a字符串长度+1个单位地址,此时p指向't',输出't'及剩余的字符串,答案为D选项。28.有如下程序#include<stdio.h>#include<string.h>main(){printf("%d\n",strlen("0\t\nA011\1"));}程序运行后的输出结果是A.8B.9C.7D.10正确答案:A你的答案:解析:【解析】strlen是求字符串长度的函数,"0\t\nA011\1"是一个长度为8的字符串,其中\t、\n、\1均为转移字符常量,但是长度也是1,因此输出结果是8,答案为A选项。29.有如下程序#include<stdio.h>intsum(intdata){staticintinit=1;returninit+=data;}main(){inti;for(i=1;i<=1;i++)printf("%d,",sum(i));printf("\n");}程序运行后的输出结果是A.2,B.2,3,C.3,D.1,正确答案:A你的答案:解析:【解析】在输出函数中,调用sum函数,sum函数作用是定义一个常数init=1,对Init进行叠加主函数传递的data值,随后将和返回给主函数,因此输出为2,答案为A选项。30.有以下程序#include<stdio.h>main(){chars1[]="programe",s2[]="Language";char*p1=s1,*p2=s2;intk;for(k=0;k<8;k++)if(*(p1+k)==*(p2+k))printf("%s\n",(p1+k));}程序的运行结果是A.grameameeeB.gaeC.programeD.无输出字符正确答案:A你的答案:解析:【解析】定义两个指针变量p1,p2,分别指向数组s1,s2首地址,在for循环中,比较两个指针对应地址的元素是否相等,如果相等,则输出当前指针指向地址的字符串,答案为A选项。31.以下针对全局变量的叙述错误的是A.全局变量的作用域是从定义位置开始至源文件结束B.全局变量是在函数外部任意位置上定义的变量C.用extern说明符可以限制全局变量的作用域D.全局变量的生存期贯穿于整个程序的运行期间正确答案:C你的答案:解析:【解析】在不同编译单位内用extern说明符来扩展全局变量的作用域,extern可以将全局变量作用域扩展到其他文件,而不是限制全局变量的作用域,答案为C选项。32.有以下程序#include<stdio.h>#include<string.h>typedefstructstu{charname[10];chargender;intscore;}STU;voidf(STU*c){strcpy(c->name,"Qian");c->gender='f';c->score=350;}main(){STUa={"Zhao",'m',290},b;b=a;f(&b);printf("%s,%c,%d,",,a.gender,a.score);printf("%s,%c,%d\n",,b.gender,b.score);}程序运行后的输出结果是A.Zhao,m,290,Qian,f,350B.Zhao,m,290,Qian,m,290C.Zhao,m,290,Zhao,m,290D.Zhao,m,290,Qian,m,350正确答案:A你的答案:解析:【解析】本题定义了一个结构变量structstu,并且命名为STU,STU结构中包含三个数据。main函数中,首先定义两个结构体STU类型的变量a,b,并对a完成初始化,然后将a赋值给b,使得结构体a,b的值都是{"Zhao",'m',290},然后调用f函数,f函数的功能是将形参结构体指针c指向的结构体赋值为{"Qian",'f',350},由于形参是指针,c指向的结构体就是b,所以实参b的值被修改为{"Qian",'f',350},而a的值不变,答案为A选项。33.下面关于编译预处理的命令行,正确的是A.#definePAI3.14B.#DefineEps0.00001C.##DEFINEFALSE0D.#defineintINT正确答案:A你的答案:解析:【解析】宏定义用法一般表达式为#define宏名字符串,A选项满足宏定义用法;C语言中是区分大小写的,define属于C语言的关键字,不可以大写,因此B,C选项错误;D选项中,int是代表整数类型,不满足define用法,D选项错误,因此答案为A选项。34.有以下程序#include<stdio.h>#defineD(x)2*x+3main(){inti=1,j=2;printf("%d\n",D(i+j));}程序运行后的输出结果是A.7B.6C.9D.2正确答案:A你的答案:解析:【解析】宏定义只作简单的替换,输出中D(i+j)表达式执行运算为2*i+j+3,代入i,j,答案为A选项。35.有以下程序#include<stdio.h>#include<string.h>structS{charname[10];};voidchange(structS*data,intvalue){strcpy(data->name,"#");value=6;}main(){structSinput;intnum=3;strcpy(,"OK");change(&input,num);printf("%s,%d\n",,num);}程序运行后的输出结果是A.OK,6B.#,6C.OK,3D.#,3正确答案:D你的答案:解析:【解析】声明结构类型S中有一个字符数组name,在main函数中,定义了一个结构变量input,为input中成员name初始化"ok"后,调用change()函数。chang()执行功能是把"#"赋值给name,由于change()函数的形参为结构体指针,因此change函数改变形参指针data指向的name值的同时,也改变了实参input的成员name值;而形参value为整型变量,change函数改变value值的同时不影响实参num,所以输出为#,3。答案为D选项。36.有如下定义structst{charname[12];intage;charsex;}std[10],*p=std;以下语句错误的是A.scanf("%d",p->age);B.scanf("%s",std[0].name);C.scanf("%d",&std[1].age)D.scanf("%c",&(p->sex));正确答案:A你的答案:解析:【解析】A选项中,p->age是结构指针访问结构成员的方式,如果为结构体内变量进行赋值,应该对指针地址指向的单元进行赋值,因此在p->age前面应该加入取地址符&,A选项语句错误,答案为A选项。37.有以下程序#include<stdio.h>#include<stdlib.h>voidfun(int**s,intx[2][3]){**s=*(x[1]+1);}main(){inta[2][3]={1,2,3,4,5,6},*p;p=(int*)malloc(sizeof(int));fun(&p,a);printf("%d\n",*p);}程序的运行结果是A.6B.2C.5D.3正确答案:C你的答案:解析:【解析】malloc(size)函数作用是在内存的动态存储区分配一个长度为size的连续空间,函数的返回值是新分配的存储区的首地址,将该地址赋值给p指针,然后取p指针的地址,调用fun函数。fun函数中对指向指针的指针s指向的内存单元赋值,其中x[1]表示二维数组x的第二行的行地址,x[1]+1表示二维数组x的第二行第二列的地址,所以fun函数的功能是将二维数组x的第二行第二列的值,即x[1][1]赋值给**s,*s为p,所以**s代表*p,x[1][1]与a[1][1]等价,因此答案为C选项。38.有如下定义structst{inta;floatb;}x[10];FILE*fp;若文件已正确打开,且数组x的10个元素均已赋值,以下将数组元素写到文件中的语句错误的是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如何制定购销合同协议书
- 商场石材保养合同协议书
- 表白策划工作室创业计划书
- 报告2025年智能型低压电器、智能型低压开关柜项目可行性研究
- 儿童书店开业营销策划方案
- 服务尾款合同结算协议书
- 犬五联用血清用量-早期应大量应用高免血清
- 厂房清工合同协议书范本
- 2025年中国肉桂酸钾项目投资计划书
- 猪常见传染病的预防措施
- 机电顾问服务建议书123
- 广西壮族自治区工程造价综合定额答疑汇编2022年11月更新
- 科学发展观基本解读(完整版)课件
- 基坑工程施工验收记录表
- 夜间施工专项方案
- 微生物实验室病原微生物评估报告
- 护理风险管理与护理安全
- 综采工作面液压支架压死救活技术研究
- 行政单位会计实习报告(共36页)
- 主体结构监理实施细则范本
- NETWORKER+SQL Server备份实施文档
评论
0/150
提交评论