版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家二级C语言机试(选择题)模拟试卷10(共9套)(共225题)国家二级C语言机试(选择题)模拟试卷第1套一、选择题(本题共25题,每题1.0分,共25分。)1、以下叙述中错误的是A、C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件B、用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中C、C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令D、C语言源程序经编译后生成后缀为.obj的目标程序标准答案:C知识点解析:C语言中的非执行语句例如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。由高级语言编写的程序称为“源程序”,把由二进制代码表示的程序称为“目标程序”。C语言编写的源程序就是一ASCII的形式存放在文本文件中的。C源程序经过C编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件),然后由称为“连接程序”(Link)的软件,把此.obj文件与c语言提供的各种库函数连接起采生成一个后缀为.EXE的可执行文件。2、下列描述中正确的是A、线性链表是线性表的链式存储结构B、栈与队列是非线性结构C、双向链表是非线性结构D、只有根结点的二叉树是线性结构标准答案:A知识点解析:线性表的链式存储结构称为线性链表。线性表链式存储结构的基本单位称为存储结点,每个存储结点包括数据域和指针域两个组成部分。各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一结点的指针HEAD称为头指针,当HEAD=NUILL,时称为空表。栈、队列和双向链表是线性结构,树是一种简单的非线性结构。在树这种数据结构中,所有数据元素的关系具有明显的层次特征。二叉树是非线性结构。线性结构和非线性结构是从数据的逻辑结构角度来讲的,与该数据结构中有多少个元素没有关系,即使是空的二叉树也是非线性结构。3、有以下程序:#include<stdi0.h>intm1(intx,inty){returnx<=y?x:y;}intm2(intx,inty){returnx<=y?y:x;}intfun(inta,intb){returna+b;}main(){intx=2,y=3,z=1;printf(″%d\n″,fun(m1(x,y),m2(y,z)));}程序的运行结果是()。A、5B、6C、4D、3标准答案:A知识点解析:函数m1()返回两个参数中较小的数值,函数m2()返回两个参数中较大的数值,函数fun()返回两个参数之和,所以fun(m1(x,y),m2(y,z))=fun(m1(2,3),m2(3,1))=fun(2,3)=5,答案选A。4、下列叙述中正确的是A、栈是“先进先出”的线性表B、队列是“先进后出”的线性表C、循环队列是非线性结构D、有序线性表既可以采用顺序存储结构,也可以采用链式存储结构标准答案:D知识点解析:栈是“先进后出”,队列“是先进先出”。栈和队列都是一种线性表,属于线性结构。有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。采用链式存储结构的线性表称之为线性链表。5、下列叙述中正确的是()。A、二分查找法只适用于顺序存储的有序线性表B、二分查找法适用于任何存储结构的有序线性表C、二分查找法适用于有序循环链表D、二分查找法适用于有序双向链表标准答案:A知识点解析:二分查找法(又称对分查找法)只适用于顺序存储的有序表。在此所说的有序表是指线性表的中元素按值非递减排列(即从小到大,但允许相邻元素值相等)。6、对长度为n的线性表作快速排序,在最坏情况下,比较次数为()。A、nB、n-1C、n(n-1)D、n(n-1)/2标准答案:D知识点解析:在最坏情况下,快速排序需要比较n(n-1)/2次。7、一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为()。A、219B、229C、230D、231标准答案:B知识点解析:二叉树中,度为0的结点数等于度为2的结点数加1,即n2=n0—1,叶子结点即为0,则n2=79,总结点数为n0+n1+n2=80+70+79=229。故B选项正确。8、深度为5的完全二叉树的结点数不可能是A、15B、16C、17D、18标准答案:A知识点解析:对于满二叉树,叶子结点的数目等于2n-1,n为深度,这里就是2的5-1=4次方,就是16。所以选项A为正确答案。9、从表中任何一个结点位置出发就可以不重复地访问到表中其他所有结点的链表是A、循环链表B、双向链表C、单向链表D、二叉链表标准答案:A知识点解析:循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环,循环一圈就访问到了表中其他所有结点而不重复。10、表达式a+=a-=a=9的值是A、-9B、0C、18D、9标准答案:B知识点解析:第一步a=9,然后计算a-a的值,并将此值赋给a,因此此时a=0,最后计算a+a,并将此倩赋给a,因此最终结果为0。11、在进行逻辑设计时,将E-R图中实体之间联系转换为关系数据库的()。A、元组B、关系C、属性D、属性的值域标准答案:B知识点解析:E-R模型与关系模型间的转换关系如下表所示。12、关系模型中的关系模式至少应是()。A、1NFB、2NFC、3NFD、BCNF标准答案:A知识点解析:关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同的范式。满足最低要求的叫第一范式,简称1NF。在满足第一范式的基础上,进一步满足更多要求规范则是第二范式。然后在满足第二范式的基础上,还可以再满足第三范式,以此类推。对于关系模式,若其中的每个属性都已不能再分为简单项,则它属于第一范式。若某个关系R为第一范式,并且R中每一个非主属性完全依赖于R的某个候选键,则称其为第二范式。第二范式消除了非主属性对主键的部分依赖。如果关系R是第二范式,并且每个非主属性都不传递依赖于R的候选键,则称R为第三范式。(传递依赖:在关系模式中,如果Y→X,X→A,且X不决定Y和A不属于X,那么Y→A是传递依赖。)比第三范式更高级的:BCF范式,它要求所有属性都不传递依赖于关系的任何候选键。13、若有如下说明和定义:typedefa{intx;chary;floatz;unionU{charul[5l;intu2[2];}u;}mya;则sizeof(structa)的值是()。A、12B、16C、14D、9标准答案:A知识点解析:“structa”所占字节数为:x为2,y为1,z为4,u为5。故“structa”所占字节数=2+1+4+5=12,答案为A)。14、若有以下程序#includemain(){inta=1,b=2,c=3,d=4;if((a=2)&&(b=1))c=2;if((c==3)Il(d=-1))a=5;printf("%d,%d,%d,%d\n",a,b,c,d);)则程序的输出结果是A、2,1,2,-1B、2,2,2,4C、1,2,3,4D、5,1,2,-1标准答案:D知识点解析:代码中有两条并列的if语句,第一条if语句,逻辑与表达式(a=2)&&f1)=1)中,a=2,则执行b=1,得到该逻辑与表达式值为1,执行分支语句c=2;第二条if语句(c==3)‖(d=-1),c==3不成立,执行d=-1,而后得出整个逻辑与表达式值为1,执行分支语句a=5。15、有以下程序:#include<stdio.h>main(){intk=5;while(--k)printf(’’%d’’,k-=3);printf(’’\n’’);}执行后的输出结果是()。A、1B、2C、4D、死循环标准答案:A知识点解析:一k先自减再使用,所以第一次判断条件即为while(4),条件为真执行打印k的值k=4-3,结果为1,第二次判断条件即为while(0),条件为假,结束循环,打印回车换行符,所以选择A选项。16、若有以下函数首部intfun(doublex[10],int*n)则下面针对此函数的函数声明语句中正确的是A、intfun(double,int);B、intfun(double*x,intn);C、intfun(double*,int*);D、intfun(doublex,int*n);标准答案:C知识点解析:函数说明的一般形式为:类型名函数名(参数类型1,参数类型2,……)。因为函数intfun(doublex[10],int*n)的第1个形式参数是一个双精度型的一维数组,第2个参数是一个整型指针,并返回一个整型值。一维数组的名字表示的是一维数组的地址。17、有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A、自然连接B、差C、交D、并标准答案:B知识点解析:由三个关系R、S和T的结构可以知道,关系T是由关系R、S经过差运算得到的。18、若有定义typedefint*T;Ta[10];则a的定义与下面哪个语句等价A、int*a[10];B、int(*a)[10];C、int*a;D、inta[10];标准答案:A知识点解析:typedef的主要功能是为存在的类型命名,后面的代码中可以利用该新定义的类型名定义变量,题目中定义了整型指针类型T,而后利用T定义了整型指针数组a,含有10个元素,选项A中定义了整型指针数组a,选项B定义了一个指向一维数组的指针a,选项C定义指针变量,而选项D为定义整型数组最常用的形式,数组a中可以存放10个数据元素。19、有以下程序main(){inta=-2,b=0;while(a++&&++b);printf("%d,%d\n",a,b);}程序运行后输出结果是A、0,3B、1,2C、1,3D、0,2标准答案:B知识点解析:循环体为空,共执行2次。第一次变量a初值为-2,b初值为0,表达式a++&&++b值为1,同时a的值为-1,b的值为1,第二次循环条件判断以后,a的值为0,b的值2,执行循环体空,第三次判断条件表达式值为0,不执行循环体,而a的值为1,但是表达式a++的值为0,因此不计算表达式++b的值,b的值仍为2。20、以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。#includevoidf(intb[],intn,intflag){inti,j,t;for(i=0;ib[j]:b[i]A、3,4,5,6,7,2,1,8,9,10,B、1,2,3,4,5,6,7,8,9,10,C、5,4,3,2,1,6,7,8,9,10,D、10,9,8,7,6,5,4,3,2,1,标准答案:A知识点解析:根据题意说明,被调函数"f(&a[2],5,0);"将数组a的第3个元素到第7个元素进行从大到小排序,执行完毕后a[10]={5,4,7,6,3,2,1,8,9,10};被调函数"f(a,5,1);"将数组a的第1个元素到第5个元素进行从小到大排序,执行完毕之后a[10]={3,4,5,6,7,2,1,8,9,10},所以输出结果为选项A)。21、有以下程序#includevoidf(intb[]){inti;for(i=2;i<6;i++)b[i]*=2;}main(){inta[10]={1,2,3,4,5,6,7,8,9,10},i;f(a);for(i=0;i<10;i++)printf("%d,",a[i]);}程序运行后的输出结果是()。A、1,2,6,8,10,12,7,8,9,10,B、1,2,3,4,5,6,7,8,9,10,C、1,2,3,4,10,12,14,16,9,10,D、1,2,6,8,10,12,14,16,9,10,标准答案:A知识点解析:函数f()的功能是把数组b中第3个到第6个元素的值均乘以2,所以答案选A。22、有以下程序#includestructord{intx,y;}dt[2]={1,2,3,4};main(){structord*p=dt;printf("%d,",++(p->x));printf("%d\n",++(p->y));}程序运行后的输出结果是A、4,1B、2,3C、3,4D、1,2标准答案:B知识点解析:在题目中定义了结构体ord类型的数组变量dt,并对其赋初值。在程序中定义了指向结构体ord类型的指针变量p,并且它指向变量数组dt的第一个元素dt[0],所以此时成员变量p->x的值等于1,成员变量p->y的值等于2,在输出时分别加1,所以输出结果为选项B。23、下列叙述中正确的是A、算法的效率只与问题的规模有关,而与数据的存储结构无关B、算法的时间复杂度是指执行算法所需要的计算工作量C、数据的逻辑结构与存储结构是一一对应的D、算法的时间复杂度与空间复杂度一定相关标准答案:B知识点解析:算法的效率与问题的规模和数据的存储结构都有关,A错误。算法的时间复杂度,是指执行算法所需要的计算工作量,B正确。由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此数据的逻辑结构和存储结构不是一一对应的,C错误。算法的时间复杂度和空间复杂度没有直接的联系,D错误。24、有以下程序:#includemain(){inta[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序运行后的输出结果是()。A、0304B、2050C、3344D、3040标准答案:D知识点解析:第一次循环i为0,i%2为0,执行switch(a[0]%2)中的case0语句后内容即a[0]++,a[0]的值变成3;第二次循环i的值为1,i%2为1,执行case1:a[i]=0;所以a[1]的值变成0;第三次循环i的值为2,i%2为0,执行switch(a[2]%2)中的case1语句后的内容a[2]--,a[2]的值变成4;第四次循环i的值为3,i%2为1,执行case1:a[i]=0;所以a[3]的值变成0。25、有三个关系R、S和T如下:则由关系R和关系s得到关系T的操作是()。A、选择B、差C、交D、并标准答案:B知识点解析:关系R和关系S经过差运算后得到的关系由属于关系R而且不属于关系S的元组构成,记为R-S。观察题干可知,关系T中的行属于关系R,但不属于关系S,故为差运算。国家二级C语言机试(选择题)模拟试卷第2套一、选择题(本题共25题,每题1.0分,共25分。)1、有三个关系R、S和T如下,则关系T由关系R和S通过()得到。A、交B、差C、选择D、并标准答案:A知识点解析:关系R与S经交运算后所得到的关系是由那些既在R内又在S内的有序组所组成,记为R∩S。本题中,关系T中的行既属于关系R又属于关系S,故为交运算。2、在软件开发中,需求分析阶段可以使用的工具是A、N—S图B、DFD图C、PAD图D、程序流程图标准答案:B知识点解析:在软件开发中,需求分析阶段常使用的工具有数据流图(DFD),数据字典(DD)、判断树和判断表。3、在数据库中,数据模型包括数据结构、数据操作和()。A、数据约束B、数据类型C、关系运算D、查询标准答案:A知识点解析:数据模型是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示和操作提供一个抽象的框架,即描述了数据结构、数据操作及数据约束。故正确答案为A。4、数据库设计的根本目标是要解决A、数据共享问题B、数据安全问题C、大量数据存储问题D、简化数据维护标准答案:A知识点解析:数据库应用系统中的一个核心问题就是设计一个能满足用户要求、性能良好的数据库,这就是数据库设计。数据库设计是在一定平台制约下,根据信息需求与处理需求设计出性能良好的数据模式。数据库设计的根本目标是要解决数据共享的问题。5、若有定义语句:inta,b,c,*p=&c;,接着执行以下选项中的语句,则能正确执行的语句是()。A、seanf("%d",a,b,12);B、scanf("%d%d%d",a,b,c);C、seanf("%d",p);D、scanf("%d",&p);标准答案:C知识点解析:本题重点考查的知识点是标准输入函数scanf()。scanf()函数要求,除了第一个参数为格式化字符串以外,其余参数均为相应变量的地址值。本题中,只有p是地址值,因此C选项正确。6、有二个关系R、S和T如下。则由关系R和S得到关系T的操作是A、自然连接B、交C、除D、并标准答案:C知识点解析:从关系R、S和T的结构可以得出关系T是由关系R、S经过除运算后得到的。7、若有以下程序#includechar*a=’’you’’;charb[]=’’WelcomeyoutoChina!’’;main(){inti,j:0;char*p;for(i=0;b[i]!=’\0’;i++){if(*a=b[i]){p=a;for(j=i;*p!=’\0’;j++){if(*P!=b[j])break;p++;}if(*p=’\0’)break;}}printf(’’%s’’,&b[i]);}则程序的输出结果是A、youtoChina!B、toChina!C、meyoutoChina!D、China!标准答案:A知识点解析:程序中循环部分的主要功能是,在字符串b中寻找是否含有予串a,如果含有则退出,此时i为子串a在字符串b中第一次出现的位置。因此最后的输出函数则从第i个字符开始一直输出到字符串的末尾。8、若有以下程序#includemain(){inta=-11,b=10;a/=b/=-4;printf("%d%d\n",a,b);}则程序的输出结果是()。A、5-2B、-1-2C、4-3D、5-3标准答案:A知识点解析:考查运算符与表达式。若除法运算符"/"的参与量均为整型,则结果也为整型,所以表达式"a/=b/=-4;"先计算表达式"b/=-4;"的值,b为-2,然后计算表达式"a/=b"即"a=a/b"得a为5,所以输出结果为选项A)。9、若有定义语句:intx=10;则表达式x-=x+x的值为A、-20B、0C、-10D、10标准答案:C知识点解析:表达式x-=x+x等价于x=x-(x+x),整型变量x的初始值等于10,计算题目所求表达式的值时,首先计算x与x的和等于20,然后再用10减去20等于-10,得到该表达式的值。10、以下程序的输出结果是()。#includemain()#defineN4{intx[][N]={{1,2,3),{4),{5,6,7,8),{9,10}},voidfun(inta[][N],intb[])y[N],i;{inti;fun(x,y);for(i=0;i<N;i++)b[i]=a[i][i];for(i=0;i<N;i++)printf(’’%d,’’,y[i]);}printf(’’\n’’);}A、3,4,8,10,B、1,4,5,9,C、1,0,7,0,D、1,2,3,4,标准答案:C知识点解析:题目中函数fun(inta[][N],intb[])的功能是把矩阵a[N][N]主对角线上的元素赋给一维数组b[]。在主函数中由x[][N]的初始化可知,其主对角线上的元素是1,0,7,0。所以当执行完函数fun(x,v)后,一维数组y[]中的元素值为1,0,7,0,选项为C。11、有以下程序#include<stdio.h>yoidfun(char*c,intd){*c=*c+l;d=d+1;printfl’’%c,%c,’’,*c,d);}main(){charb=’a’,a=’A’;fun(&b,a);printf(’’%c,%c\n’’,b,a);}程序运行后的输出结果是A、b,B,b,AB、b,B,B,AC、a,B,B,aD、a,B,a,B标准答案:A知识点解析:本题中fun函数的参数传递方式,形参c是传地址,形参d是传值,所以在主函数中,执行fun时,把变量b的地址传给了c,把a的值传递给了d,经过运算,输出的值为b,B。在主函数的输出语句中,输出变量b的值为b,变量a的值为A。12、关于“while(条件表达式)循环体”,以下叙述正确的是A、循环体的执行次数总是比条件表达式的执行次数多一次B、条件表达式的执行次数与循环体的执行次数一样C、条件表达式的执行次数总是比循环体的执行次数多一次D、条件表达式的执行次数与循环体的执行次数无关标准答案:C知识点解析:while语句中表达式是循环条件,语句为循环体。while语句中当表达式计算的值为真(非0)时,执行循环体语句。因此条件表达式执行的次数总是比循环体多一次。13、有以下程序#includemain(){chara=4;printf("%d\n",a=a<<1);}A、8B、16C、40D、4标准答案:A知识点解析:本题主要考查按位右移运算。a=4的二进制为00000100,a<14、以下关于函数的叙述中正确的是A、每个函数都可以被其他函数调用(包括main函数)B、每个函数都可以被单独编译C、每个函数都可以单独运行D、在一个函数内部可以定义另一个函数标准答案:B知识点解析:本题主要考查函数的定义和使用。选项A错误,main函数可以调用其他函数,但是其他函数不能调用main函数;选项B正确;选项C错误,只有main函数可以单独运行,其他函数只能被调用;选项D错误,C语言中不能在函数内部定义函数。15、有以下程序#include<stdioh>voidmain(){Inta□={2,3,5,4),i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]--;}break;case1:a[i]=0;]for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序运行后的输出结果是A、2050B、3344C、3040D、0304标准答案:C知识点解析:在主函数的for循环语句中,当循环变量i的值等于0,2时,执行switch中的case0语句,分别对数组元素a[0]和a[2]加1和减1,所以a[0]的值等于3,a[2]等于4。当循环变量i的值等于1,3时,执行switch中的case1语句,把数组元素a[1]和a[3]的值赋为0。所以输出数组a的元素,其结果为3040。16、以下选项中,当x为大于1的奇数时,值为0的表达式是A、x/2B、x%2!=0C、x%2==0D、x%2==1标准答案:C知识点解析:由于x为大于1的奇数,因此x%2取余的值为1,和0不相等。17、以下叙述中正确的是A、charca[3][5]={"A","BB","CCC"};是不合语法的B、字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组C、charca[][5]={"A","BB","CCC"};是不合语法的D、char*ca[3]={"A","BB","CCC"};是不合语法的标准答案:B知识点解析:字符串数组,也就是二维字符数组,其中每个元素为一个字符串,选项B)的说法正确。选项A)和C)对于ca的定义是正确的。选项D)定义一个指针数组,可以保存多个字符串的首地址。18、下面选项中合法的字符常量是A、XB、’X’C、’abc’D、’\’标准答案:B知识点解析:字符常量是用单引号括起来的一个字符。A选项中,使用双引号,所以是错误的;C选项中,’abc’是字符串,字符常量只能是单个字符,不能是字符串;D选项中,以反斜线"\"开头的是转义字符。因此B选项正确。19、在32位编译器上,设有定义char*str1="Hello",str2[]="Hello";,则以下语句printf("%d%d",sizeof(str1),sizeof(str2));的输出结果是A、56B、55C、66D、46标准答案:D知识点解析:本题主要考查了指向字符串的指针和字符数组,str1为一个字符指针,所以sizeof为4,str2为字符数组,其中包含6个字符,所以答案为46。20、有以下程序#includemain(){intk,j,s;for(k=2;k<6;k++,k++){s=1;for(j=k;j<6;j++)s+=j;}printf("%d\n",s);}程序运行后的输出结果是A、6B、10C、24D、40标准答案:B知识点解析:本题重点考察for语句循环嵌套,首先k=2,进行一次循环后,k自增两次,变成4,这时s为1。即当k=4的时候,s=1,j=4,执行内层循环,s=1+4,j自增1后等于5,s=5+5,j再自增1后即为6,跳出内层循环。k自增两次后等于6,不成立,跳出外层循环。最后输出s的值,即为10。因此B选项正确。21、有以下程序段int*p;p=_______malloc(sizeof(int));若要求使p指向一个int型的动态存储单元,在横线处应填入的是A、(int*)B、intC、int*D、(*int)标准答案:A知识点解析:本题考查malloc函数,题目中要求p指向一个int型的动态存储单元,那么就应该将分配的存储单元转化为int,所以选项A正确。22、下面不属于软件需求分析阶段主要工作的是A、需求变更申请B、需求分析C、需求评审D、需求获取标准答案:A知识点解析:需求分析阶段的工作可概括为4个方面:①需求获取。②需求分析。③编写需求规格说明书。④需求审评。23、有以下程序:#include#includemain(){charstr[][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是()。A、10,One*Dream!B、9,One*Dream!C、9,One*WorldD、10,One*World标准答案:A知识点解析:p是指向二维字符数组第二行One*Dream!的数组指针,所以长度是10,打印输出的也是该字符串。24、在面向对象方法中,不属于"对象"基本特点的是()。A、一致性B、分类性C、多态性D、标识唯一性标准答案:A知识点解析:对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。所以选择A。25、有以下程序#includevoidfun2(chara,charB){printf("%c%c",a,b);}chara=’A’,b=’B’;voidfun1(){a=’C’;b=’D’;}main(){fun1();printf("%c%c",a,b);fun2(’E’,’F’);}程序的运行结果是A、ABEFB、CDEFC、ABCDD、CDAB标准答案:B知识点解析:本题考察的是变量的作用范围。如果在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量被"屏蔽",即不起作用。本题中,在fun1()和main()函数内访问的是全局变量a和b,在fun2()函数中访问的是形参变量a和b。所以,main()函数中的printf()函数输出的是在fun1()函数中被改变的全局变量a和b的值CD,而fun2()函数中输出的是传递给它的实参值EF。因此B选项正确。国家二级C语言机试(选择题)模拟试卷第3套一、选择题(本题共25题,每题1.0分,共25分。)1、下面对对象概念描述正确的是()。A、对象间的通信靠消息传递B、对象是名字和方法的封装体C、任何对象必须有继承性D、对象的多态性是指一个对象有多个操作标准答案:A知识点解析:对象是面向对象方法中最基本的概念。操作描述了对象执行的功能,通过消息传递,还可以为其他对象使用。操作过程是被封装在对象中,用户看不到,称之为对象的封装性。对象的多态性是指同一个操作可以是不同对象的行为。不是所有的对象都必须有继承性。2、设数据结构B=(D,R),其中D={a,b,c,d,e,f}R={(f,a),(d,b),(e,d),(c,e),(a,c)}该数据结构为A、线性结构B、循环队列C、循环链表D、非线性结构标准答案:A知识点解析:由结点之间的关系R={(f,a),(d,b),(e,d),(c,e),(a,c)}可以得到,该数据结构为:“f-a-c-e-d-b”。由此可知结点f没有前驱,结点b没有后继结点,并且其它的结点只有一个前驱结点和一个后继结点,所以该数据结构为线性结构。所以应选A选项。3、以下程序段中.与语句k=a>b?(b>e?1:0):0;功能相同的是()。A、if((a>b)‖(b>c))k=1;elsek=0:B、if((a>b)&&(b>c))k=1;elsek=0;C、if(a<=b)k=0;elseif(b<=c)k=1;D、if(a>b)k=1;elseif(b>c)k=1;elsek=0;标准答案:B知识点解析:条件表达式的含义是,如果表达式1成立,结果为表达式2的值,如果不成立,则为表达式3的值。所以题干中k的值这样取值:如果a>b且b>c,k值结果为1,如果a>b且bb与b>c中只要有一个条件不成立,k的值就为0,所以选择B选项。4、以下各项中,当x为大于1的奇数时,值为0的表达式是()。A、x%2==0B、x/2C、x%2!=0D、x%2==1标准答案:A知识点解析:当x为大于1的奇数时,x%2==0表达式为0,所以答案为A。5、在学生管理的关系数据库中,存取一个学生信息的数据单位是A、文件B、数据库C、字段D、记录标准答案:D知识点解析:本题考查关系数据库中,数据单位的相关概念。文件是指存储在外部介质上的数据的集合。数据库是存储在计算机存储设备上,结构化的相关数据集合。它不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。在数据库中,表的“行”称为“记录”,“列”称为“字段”。由此可得,题中存取一个学生信息的数据单位为记录。6、程序中对fun函数有如下说明void‰();此说明的含义是A、fun函数无返回值B、fun函数的返回值可以是任意的数据类型C、fun函数的返回值是无值型的指针类型D、指针fun指向一个函数,该函数无返同值标准答案:A知识点解析:本题主要考察函数的声明,voidfun()表示fun函数没有输入参数,函数返回void表示函数无返回值。7、有以下程序#includemain(){charch[]="uvwxyz",*pc;pc=ch;printf("%c\n",*(pc+5));}程序运行后的输出结果是A、zB、0C、元素ch[5]的地址D、字符y的地址标准答案:A知识点解析:语句pc=ch;使得指针变量指向字符数组ch的首地址,即指向字符’u’。则pc+5指向的是字符向后移动5位,指向字符’z’。所以输出的*pc+5的值即为’z’。因此A选项正确。8、关于结构体类型的叙述中正确的是()。A、结构体类型中各个成分的类型必须是一致的B、在定义结构体类型时,编译程序就为它分配了内存空间C、结构体类型中的成分只能是C语言中预先定义的基本数据类型D、一个结构体类型可以由多个称为成员(或域)的成分组成标准答案:D知识点解析:C语言中的结构体类型,它是由若干“成员”组成,每一个成员可以是一个基本数据类型或者是一个构造类型。在说明和使用之前先定义它,也就是构造它。9、下列语句组中,正确的是A、char*s;s="Olympic";B、chars[7];s="Olympic";C、char*s;s={"Olympic"};D、chars[7];s={"Olympic"};标准答案:A知识点解析:选项A中定义了指针变量s,通过赋值语句保存字符串常量的地址,而字符数组绝对不能赋值,而只能初始化或者输入。10、以下结构体说明和变量定义中,正确的是A、typedefstructabc{intn;doublem;)ABC;ABCx,y;B、structabc{intn;doublem};structabcx,y;C、structABC{intn;doublem;}structABCx,y;D、structabc{intn;doublem;};abcx,y;标准答案:A知识点解析:选项B)中结构体定义中每个成员后面的分号都不能省略,doublem后没分号,因此错误。选项C)结构体类型定义完毕后,}外没加分号。选项D)中定义变量要加上关键字struct。11、若有定义语句:imx=10;则表达式x-=x+x的值为A、-20B、0C、-10D、10标准答案:C知识点解析:表达式x-=x+x等价于x=x-(x+x),整型变量x的初始值等于10,计算题目所求表达式的值时,首先计算x与x的和等于20,然后再用10减去20等于-10,得到该表达式的值。12、设有定义:intx=2;以下表达式中,值不为6的是A、2*x,x+=2B、x++,2*xC、x*=(1+x)D、x*=x+1标准答案:A知识点解析:本题考查逗号表达式。逗号表达式的求解过程是:先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值,因此,选项A)中值为4;选项B)中,值为6。选项C)中x*=x+1等价于x=x*(x+1),所以等于6;选项D)与选项C)等价,结果也为6。13、以下叙述中正确的是A、函数的类型不能是指针类型B、函数的形参类型不能是指针类型C、基类型不同的指针变量可以相互混用D、设有指针变量为“double*p”,则“p+1”将指针p移动8个字节标准答案:D知识点解析:在对指针进行加、减算术运算时,数字1表示1个存储单元的长度,而double类型数据在内存中占8个字节,因此移动一次移动8个字节。其他三个都不正确。14、有以下函数intfun(char*x,char*Y){intn=0;while((*x=*Y)&&*x!=’\0’){x++;y++;n++;}retumn;)函数的功能是A、查找x和y所指字符串中是否有’\0’B、统计x和Y所指字符串中最前面连续相同的字符个数C、将y所指字符串赋给x所指存储空间D、统计x和y所指字符串中相同的字符个数标准答案:B知识点解析:在while循环中的判断表达式为(*x=*y)&&*x!=’\0’,所以只要字符串x与y的当前字符不相等时,循环就结束。15、以下叙述中错误的是A、可以用typedef将已存在的类型用一个新的名字来代表B、可以通过typedef增加新的类型C、用typedef定义新的类型名后,原有类型名仍有效D、用typedef可以为各种类型起别名,但不能为变量起别名标准答案:B知识点解析:C语言允许用typedef说明一种新类型名。typedef类型名标识符:其中“类型名”必须是在此语句之前已定义的类型标识符;“标识符”是一个用户定义标识符,用作新的类型名:typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新的数据类型,原有类型名依然有效。16、若变量己正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是A、ch=getchar()B、a==b+cC、a<>b+cD、a++标准答案:C知识点解析:在if()语句的括号是一个合法的C语言表达式即可,如果表达式的值为0,则不执行if语句,否则执行if语句,而在选项C)中,符号<>不是C语言的合法运算符,如果要表达a大于或小于b+c可用a!=b+c或(a>b+c)||(a<b+c)来表达,而不能使用a<>b+c。所以它不是一个合法的C语言表达式。17、以下与函数fseek(fp,OL,SEEK_SET)有相同作用的是A、feof(fp)B、ftell(fp)C、fgetc(fp)D、rewind(fp)标准答案:D知识点解析:本题主要考查文件系IO函数的使用,fseek函数用于设置文件指针的位置,feof函数用于判断是否已经到了文件结束,ftell函数返回文件指针的当前位置,fgetc从文件读取一个字符,rewind函数将文件指针重新指向文件开始。题目当中fseek(fp,OL,SEEK_SET)表示把文件指针移动到文件的开始位置0,和rcwind函数功能一致。18、若已建立以下链表结构,指针p、s分别指向如图所示结点则不能将s所指节点插入到链表末尾的语句组是A、s->next=’\0’;p=p->next;p->next=s;B、p=p->next;s->next=p->next=s;C、p=p->next;s->next=p->next;P->next=s;D、p=(*p).next;(*S).next=(*p).next;(*p).next=s;标准答案:B知识点解析:选项A)中首先p后移,s的后继指针指向p,p的后继指向s,在s和最后结点之间形成了圆圈,无法完成题中的操作。19、以下叙述中错误的是A、gets函数用于从终端读入字符串B、getchar函数用于从磁盘文件读入字符C、fputs函数用于把字符串输出到文件D、fwrite函数用于以二进制形式输出数据到文件标准答案:B知识点解析:本题考查的是输入输出函数的使用,gets和getchar函数用于从标准输入设备终端读入字符串和字符,并非从磁盘文件读入,fputs用于把字符串输出到文件,fwrite用于以二进制形式输出数据到文件。20、以下叙述中正确的是A、循环发生嵌套时,最多只能两层B、三种循环for,while,do-while可以互相嵌套C、循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误D、for语句的圆括号中的表达式不能都省略掉标准答案:B知识点解析:A选项中,循环发生嵌套时,没有规定层数;C选项中,循环嵌套时,书写代码时没有要求必须缩进;D选项中,for语句的圆括号中的表达式都可以省略掉。因此B选项正确。21、程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。若有以下程序段:q=s;s=s->next;p=s;while(p->next)p=p->next;p->next=q;q->next=NULL;该程序段实现的功能是A、尾结点成为首结点B、首结点成为尾结点C、删除首结点D、删除尾结点标准答案:B知识点解析:分析程序可知,程序段首先让q指向链表的首结点,s指向链表的第二结点,p此时指向链表的第二个结点。然后在while循环中,当p的后继结点非空时,让p指向链表的最后一个结点,退出循环。然后让尾结点指向首结点,并使首结点的后继结点为NULL。所以最终实现链表的首结点成为尾结点。22、有以下程序#include<stdio.h>#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是A、-12B、0C、10D、-20标准答案:D知识点解析:本题主要考查的是宏替换,在程序中执行d=sub(a+b)*c这条语句时,首先要进行宏替换,依据宏SUB(a)的定义可知,上面这条语句替换为d=(a+b)-(a+b)*c,因为乘法的优先级比减法的优先级高,所以先进行乘法运算,即d=5-5*5=-20。23、有以下程序:#include<stdio.h>voidfun(char*c){while(*c){if(*c>=’a’&&*c<=’z’)*c=*c-(’a’-’A’);c++;}}voidmain(){chars[81];gets(s);fun(s);puts(s);}当执行程序时从键盘上输入HelloBeijing<回车>,则程序的输出结果是A、HELLOBEIJINGB、HelloBeijingC、helloBeijingD、hELLOBeijing标准答案:A知识点解析:子函数fun的功能是把小写字母转换成大写字母,所以程序的输出结果为选项A。24、若有定义typedefintT[10];Ta[20];则与上述定义完全等价的说明语句是()。A、inta[20][10];B、inta[20];C、inta[10];D、inta[10][20];标准答案:A知识点解析:typedef为类型定义符,作用是用"新类型名"代替"原类型名",即为现有类型定义容易记忆的类型名。typedef能够隐藏复合类型,比如指针和数组,定义语句"typedefintT[10];"表明类型T就代表了具有10个元素的整型数组,所以语句"Ta[20];"则表示定义了具有20个元素并且每个元素都为一个有10个元素的一维数组,所以答案选A。25、下列关于C语言文件的叙述中正确的是A、文件由一系列数据依次排列组成,只能构成二进制文件B、文件由结构序列组成,可以构成二进制文件或文本文件C、文件由数据序列组成,可以构成二进制文件或文本文件D、文件由字符序列组成,其类型只能是文本文件标准答案:C知识点解析:本题考查文件的概念,文件是由数据序列组成,可以构成二进制文件或文本文件,所以答案为C选项。国家二级C语言机试(选择题)模拟试卷第4套一、选择题(本题共25题,每题1.0分,共25分。)1、以下叙述中错误的是A、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有相同的结果标准答案:C知识点解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。一个算法应该具有以下5个特征:①有穷性。一个算法包含的操作步骤应该是有限的。也就是说,在执行若干个操作步骤之后,算法将结束,而且每一步都在合理的时间内完成。②确定性。算法中的每一条指令必须有确切的含义,不能有二义性,对于相同的输入必能得出相同的执行结果。③可行性。算法中指定的操作,都可以通过已经验让过可以实现的基本运算执行有限次后实现。④有零个或多个输入。在计算机上实现的算法是用来处理数据对象的,在大多数情况下这些对象需要通过输入来得到。⑤有一个或多个输出。算法的目的是为了求“解”,这些“解”只有通过输出才能得到。2、C语言程序的模块化通过以下哪个选项来实现A、变量B、程序行C、函数D、语句标准答案:C知识点解析:用函数作为程序模块以实现C程序的模块化,程序有多个函数构成,每个函数可以实现一个具体的功能,实现程序的模块化设计。3、我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是A、一条C语句可能会被转换成多条机器指令B、一条C语句对应转换成一条机器指令C、一条C语句可能会被转换成零条机器指令D、某种类型和格式的C语句被转换成机器指令的条数是固定的标准答案:B知识点解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而C语苦的语句条数和机器指令的条数不是一对一的关系。4、设二叉树共有150个结点,其中度为1的结点有10个,则该二叉树中的叶子结点数为A、71B、70C、69D、不可能有这样的二叉树标准答案:D知识点解析:根据二叉树的性质3,在任意一颗二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。即有n0=n2+1。对于这个题来说,总结点数150=n0+n1+n2=n2+1+10+n2=2n2+11,所以2n2=139,度为2个结点个数不能确定。5、下列叙述中正确的是A、循环队列是线性结构B、循环队列是线性逻辑结构C、循环队列是链式存储结构D、循环队列是非线性存储结构标准答案:A知识点解析:为充分利用向量空间,克服“假溢出”现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(CircularQueue)。线性结构是一个有序数据元素的集合。常用的线性结构有:线性表,栈,队列,双队列,数组,串。常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图。6、结构化程序的三种基本控制结构是()。A、顺序、选择和重复(循环)B、过程、子程序和分程序C、顺序、选择和调用D、调用、返回和转移标准答案:A知识点解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环),故正确答案为A。7、有三个关系R、S和T如下,则关系T由关系R和S通过()得到。A、交B、差C、选择D、并标准答案:A知识点解析:关系R与S经交运算后所得到的关系是由那些既在R内又在S内的有序组所组成,记为R∩S。本题中,关系T中的行既属于关系R又属于关系S,故为交运算。8、下面不属于软件工程过程的4种基本活动A、软件规格说明B、软件开发C、软件演进D、软件测试标准答案:D知识点解析:软件工程过程的4种基本活动是:软件规格说明、软件开发、软件确认、软件演进。9、设二叉树的后序序列为DGHEBIJFCA,中序序列为DBGEHACIFJ。则前序序列为A、ABDEGHCFIJB、JIHGFEDCBAC、GHIJDEFBCAD、ABCDEFGHIJ标准答案:A知识点解析:后序遍历中,最后一个字母是根结点,也就是A是根结点;在中序遍历中,根结点前面的是左子树、后面的是右子树。后序中C在A前面、中序中C在A的后面,说明C是A的右结点;后序中F在C的前面、中序中在C后面,且后序和中序中,I均在F前面由此可确定,I为F的左结点,F为C的右结点。同C理J为F的右结点。后续中B为左子树的根结点,因此B为A的左结点,以此划分,在中序中B前面的D为左结点,后面的GEH为右子树,后序中,E在最后,应为剩下3个结点的根结点,也就是B的右子树,再根据中序中的顺序,可得出G为E的左结点,H为E的右结点。由此可画出这个二叉树,然后根据二叉树可的前序序列为ABDEGHCFIJ。10、若有“chars[3][3]={"AAA","BBB","CCC"};”说明语句,则与它等价的语句是()。A、char**s={"AAA","BBB","CCC"};B、char*s[3]={"AAA","BBB","CCC"};C、chars[][5]={"AAA","BBB","CCC"};D、chars[][3]={"AAA","BBB","CCC"};标准答案:D知识点解析:二维字符数组在定义时可省略第一维的维数,根据初始化有3个字符串,所以选项D)中数组有3行,与已知说明语句等价。11、以下叙述中正确的是A、程序的主函数名除main外,也可以使用Main或mainB、在C程序中,模块化主要是通过函数来实现的C、程序可以包含多个主函数,但总是从第一个主函数处开始执行D、书写源程序时,必须注意缩进格式,否则程序会有编译错误标准答案:B知识点解析:C语言中任何一个有效的程序都有且只能有一个main()函数,不能写成其他形式,一个C程序总是从主函数开始执行,到main函数体执行完后结束,而不论main函数在整个程序中的位置如何。而为了代码清晰容易看懂,最好加上注释,这是程序书写风格,与编译无关。12、有以下程序:#include<stdio.h>main(){chars[]=’’abcde’’;s+=2;printf(’’%d\n’’,s[0]);}程序的运行结果是()。A、输出字符c的ASCII码B、程序出错C、输出字符cD、输出字符a的ASCII码标准答案:B知识点解析:本题重点考查数组名的概念。在C语言中,数组名类似于一个指向数组首地址的指针常量,一旦定义就不能修改其内容。所以本题中的“s+=2”;语句让数组名s的内容加2是错误的,编译无法通过,因此B选项正确。13、下面可以作为软件设计工具的是A、系统结构图B、数据字典(DD)C、数据流程图(DFD图)D、甘特图标准答案:A知识点解析:结构化分析方法的常用工具:数据流图(DFD)、数据字典(DD)、判定表、判定树。常用的过程设计工具如下所述:图形工具(程序流程图、N-S图、PAD图、HIPO)、表格工具(判定表)、语言工具(PDL)。结构化设计方法使用的描述方法是系统结构图。系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发角度出发,把系统功能逐次分割成层次结构,是在概要设计阶段用到的。数据流程图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功14、设有课程关系模式:R(C#,Cn,T,TA)(其中C#为课程号,Cn为课程名,T为教师名,Ta为教师地址),并且假定不同课程号可以有相同的课程名,每门课程只有一位任课教师,但每位教师可以有多门课程。关系R范式最高达到A、1NFB、2NFC、3NFD、BCNF标准答案:B知识点解析:第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。这个唯一属性列被称为主关键字或主键、主码。第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属件。如果存在,那么这个属性和土关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。本题R关系模式中,课程号有不同课程名,每位老师又可以任教多门课程,因此符合第二范式。15、有以下计算公式若程序前面已经在命令行中包含math.h文件,不能够正确计算上述公式的程序段是A、y=sqrt(x);if(x<0)y=sqrt(-x);B、if(x>=0)y=sqrt(x);elsey=sqrt(-x);C、if(x>=0)y=sqrt(x);if(x<0)y=sqrt(-x);D、y=sqrt(x>=07x:-x);标准答案:A知识点解析:由题意可知计算公式的含义是:当x大于等于0时,y值等于x的算*平方根;当x小于0时,y值等于x的相反数的算*平方根。所以选项B)用一个完整的ifelse语句表达了计算公式的含义:选项C)用两个if语句表达了计算公式的含义;选项D)在求平方根函数的后面用x≥0?x:-x条件表达式来表达了计算公式的含义。选项A)没有用C语言语句正确的表达计算公式的含义。16、若有以下程序#include<stdio.h>int*f(int*s,int*t){int*k;if(*S<*t){k=s;s=t;t=k;)returns;)main(){inti=3,3=5,*p=&i,*q=&j,*r;r=f(p,q);printf(’’%d,%d,%d,%d,%d\n’’,i,j,*P,*q,*r);)则程序的输出结果是A、3,5,5,3,5B、5,3,5,3,5C、5,3,3,5,5D、3,5,3,5,5标准答案:D知识点解析:本题考查了返回值为指针的函数,函数f的土要功能为第一个参数小于第二个参数,那么交换指针的指向,这对于实参指向的数据时没有影响的。最后返回比较大的元素的地址。主函数中p指向i,q指向j,调用r=f(p,q),返同q的地址,因此*p=3,*q=5,*r=5。17、有以下程序intfun1(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=fun1(x);b=fun1(y);return(int)(a+b);}main(){doublew;w=fun2(1.1,2,0);……}程序执行后输出结果是A、5.00B、5C、5.21D、0.0标准答案:A知识点解析:子函数fun1(doublea)的功能是返回a的平方值的整数部分。子函数fun2(doublex,doubley)的功能是返回x的平方值的整数部分与y的平方值的整数部分的和。又因为题中变量w的定义为double型,函数fun(2)的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量w的值为5.00。18、若在定义语句:inta,b,c,*p=&c;接着执行以下选项中的语句,则能正确执行的语句是A、scanf("%d%d%d",a,b,c);B、scanf("%d",a,b,c);C、scanf("%d",p);D、scanf("%d",&p);标准答案:C知识点解析:程序语句inta’b,c,*p=&c;定义了三个整型变量a’b,c,和一个整型指针变量p,并且把变量c的地址赋给p。scanf函数的一般形式为“scanf(“格式控制字符串”,地址列表)”,其中的地址列表应当是存放输入数据变量的地址。19、程序中若有如下说明和定义语句charfun(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);标准答案:A知识点解析:本题主要考查函数调用和函数指针的使用。根据定义f1是一个函数指针,且指向fun函数,因此可以使用函数指针来调用函数。使用函数指针调用函数的时候使用.运算符,即*f1和fun是一样的,fun函数有参数,通过f1调用fun函数写法为:(*f1)(a),括号是必须的,这样才能保证各部分正确结合。20、以下叙述中正确的是A、数组下标的下限是1B、数组下标的下限由数组中第一个非零元素的位置决定C、数组下标的下限由数组中第一个被赋值元素的位置决定D、charc1,c2,*c3,c4[40];是合法的变量定义语句标准答案:D知识点解析:数组下标的下限是0。因此D选项正确。21、有以下程序,程序运行后的输出结果是#definePT3.5;#defineS(x)PT*x*x;main(){inta=1,b=2;printf("%4.1f\n",S(a+b));}A、31.5B、7.5C、程序有错无输出结果D、14.0标准答案:C知识点解析:本题考查宏定义。预处理语句后面不能加分号,因此程序有错。如果没加分号的话S(a+b)=PT*a+b*a+b=3.5*1+2*1+2=7.5。22、以下叙述中正确的是A、函数名允许用数字开头B、函数调用时,不必区分函数名称的大小写C、调用函数时,函数名必须与被调用的函数名完全一致D、在函数体中只能出现一次return语句标准答案:C知识点解析:B选项中,函数调用时,函数名称是需要区分大小写的;A选项中,函数名不允许以数字开头;D选项中,在函数中允许有多个return语句,但每次调用只能有一个return语句被执行。因此C选项正确。23、有以下程序#include#defineN3voidfun(inta[][N],intb[]){inti,j;for(i=0;i<N;i++){b[i]=a[i][0];for(j=1;j<N;j++)if(b[i]<a[i][j])b[i]=a[i][j];}}main(){intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;fun(x,y);for(i=0;i<N;i++)printf("%d,",y[i]);printf("\n");}程序运行后的输出结果是A、3,5,7B、1,3,5,C、2,4,8,D、3,6,9,标准答案:D知识点解析:函数fun()的作用是求出二维数组a[][N]中每一行中的最大元素,所以在main()函数中执行完fun(x,y)后,数组y中的元素为二维数组x[N][N]每一行的最大元素。因此D选项正确。24、C语言程序中,运算对象必须是整型数的运算符是A、&&B、/C、%D、*标准答案:C知识点解析:%取余运算是二目运算符,且要求运算对象必须为整数,所以选C。25、以下叙述中正确的是A、在一个程序中,允许使用任意数量的#include命令行B、在包含文件中,不得再包含其他文件C、#include命令行不能出现在程序文件的中间D、虽然包含文件被修改了,包含该文件的源程序也可以不重新进行编译和连接标准答案:A知识点解析:本题考查预处理中文件包含的概念,包含文件中可以包含其他文件,B选项错误,#include可以出现在程序文件的中间,C选项错误,包含文件被修改了,包含该文件的源程序必须重新进行编译和连接。国家二级C语言机试(选择题)模拟试卷第5套一、选择题(本题共25题,每题1.0分,共25分。)1、若输入“abcdef”、“abdef”,以下程序的输出结果为()。#include#includemain(){intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%s",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("%d\n",n);}A、-1B、0C、abcdefD、abdef标准答案:A知识点解析:本题考查两个知识点:①字符串比较函数strcmp(s1,s2),若s1>s2,则返回1;若s1=s2,则返回0;若s12、下列叙述中正确的是()。A、栈与队列都只能顺序存储B、循环队列是队列的顺序存储结构C、循环链表是循环队列的链式存储结构D、以上说法都不对标准答案:B知识点解析:栈和队列都可以采用链式存储结构,选项A)错误。队列的顺序存储结构一般采用循环队列的形式,所以循环队列是队列的顺序存储结构,选项B正确,选项C)错误。答案选B)。3、数据库应用系统中的核心问题是()。A、数据库设计B、数据库系统设计C、数据库维护D、数据库管理员培训标准答案:A知识点解析:数据库应用系统中的核心问题是数据库的设计。4、结构化程序由三种基本结构组成,三种基本结构组成的算法A、可以完成任何复杂的任务B、只能完成部分复杂的任务C、只能完成符合结构化的任务D、只能完成一些简单的任务标准答案:A知识点解析:结构化程序由3种基本结构组成:顺序结构、选择结构和循环结构。已经得到证明,由3种基本结构组成的算法结构可以解决任何复杂的问题。5、对序线性表(23,29,34,55,60,70,78)用二分法查找值为60的元素时,需要比较次数为()。A、1B、2C、3D、4标准答案:C知识点解析:根据二分法查找法需要两次:①首先将60与表中间的元素55进行比较,由于60大于55,所以在线性表的后半部分查找。②第二次比较的元素是后半部分的中间元素,将60与表中间的元素70进行比较,由于60小于70,所以在线性表的前半部分查找。③第三次比较的元素是前半部分的中间元素,即60,这时两者相等,即查找成功。6、下列程序段的输出结果是()。main(){chars[]="Helloworld";s[5]=0;printf("%s\n",s);}A、Hello0worldB、HelloworldC、HelloD、Hello0标准答案:C知识点解析:由于s数组中数组下标为5的元素赋值为0,0是字符串的结束标志,所以在输出字符串的时,仅输出数组下标为0~4的数组元素。7、数据库系统的三级模式不包括()。A、概念模式B、内模式C、外模式D、数据模式标准答案:D知识点解析:数据库系统的三级模式包括概念模式、外模式和内模式(物理模式)。8、若变量已正确定义,以下选项中非法的表达式是A、a!=4‖b’B、’a’%4C、a’=1/2*(x=y=20,x*3)D、’A’+32标准答案:C知识点解析:赋值表达式左边应为变量,选项C中左边为字符常最,因此非法,其余表达式均为合法的表达式。9、下列叙述中正确的是A、带链栈的栈底指针是固定的B、带链栈的栈底指针是随栈的操作而动态变化的C、若带链队列的队头指针与队尾指针相同,则队列为空D、若带链队列的队头指针与队尾指针相同,则队列中至少有一个元素标准答案:B知识点解析:栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。带链栈的栈底指针是随栈的操作而动态变化的;若带链队列的队头指针与队尾指针相同,则队列可能为0也可能为1。10、下列语句组中正确的是()。A、ehar*s;s={“BOOK!”};B、char*s;s=“BOOK!”;C、chars[10];s=“BOOK!”;D、chars[];s=“BOOK!”;标准答案:B知识点解析:A选项去掉大括号就正确了;C选项和D选项应在定义时赋初值。B选项正确。11、以下选项中合法的变量是A、5aB、A%C、_10_D、sizeof标准答案:C知识点解析:对于变量的命名要利用标识符命名,所谓标识符就是C语言中的变量名、函数名、数组名、文件名、类型名等。其中标识符构成如下:①标识符由字母、数字和下划线组成;②第一个字符必须为字母或下划线;因此选项A中数字开头,选项B出现了非法字符%,而选项D中sizeof为关键字,不能为变量命名。12、关于变量的定义和说明的叙述中正确的是()。A、对于变量而言,“定义”和“说明”这两个词实际上是同一个意思B、在复合语句中不能定义变量C、全局变量的存储类别可以是静态类D、函数的形式参数不属于局部变量标准答案:C知识点解析:C语言的关键字static说明符说明全局变量时,此变量可称作静态全局变量。静态全局变量只限于本编译单位使用,不能被其他编译单位所引用。在一个函数内部定义的变量(包括形参)是局部变量,它只在本函数范围内有效。不同函数中可以使用相同名字的局部变量,它们代表不同的对象,互不影响。在函数内部复合语句中也可以定义变量,这些变量都是局部变量,只在本复合语句中有效。13、关于字符数组定义中存在语法错误的是()。A、charss[][20]={’’right’’};B、char*ss[6];ss[1]=’’right?’’;C、char*ss[]={’’right?’’};D、charss[6][20];ss[1]=’’right?’’;标准答案:D知识点解析:本题考查字符数组,选项D中定义了二维数组ss,可以用于存储字符串,但是字符串的存储不能通过赋值,仅可以初始化或者输入得到,而选项C和A不同,选项B为指针数组,对于指针变量可以保存常量字符串的地址。14、下面描述中正确的是A、软件调试是为了改善软件的性能B、软件测试要确定错误的性质和位置C、软件测试是软件质量保证的重要手段D、软件调试的任务是发现并改正程序中的错误标准答案:C知识点解析:软件测试(SoftwareTesting),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。15、一个教师讲授多门课程,一门课程由多个教师讲授。则实体教师和课程间的联系是A、1:1联系B、1:m联系C、m:1联系D、m:n联系标准答案:D知识点解析:一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程的联系是多对多的联系。16、若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是(注:□代表一个空格符)A、□□□1.2,3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省委托拍卖合同案例分析
- 《社会保险信息系统》课件
- 中英双语合同范本2024年
- 店铺转租合同书模板
- 《基础班多媒体技术》课件
- 精简版建筑装饰工程施工合同范本
- 广告发布委托合同-合同范本
- 热性惊厥儿科护理学
- 5 《树和喜鹊》公开课一等奖创新教学设计
- 甲状腺术前用药护理
- 1.3+化学键【中职专用】(高教版2021通用类)
- 《尼采善恶之彼岸》课件
- 2024届新高考生物冲刺热点复习:生物膜微专题
- 矿井建设过程安全管理指南
- 劳动模范评选管理工作制度
- 火龙罐综合灸疗法
- 2022年GOLD慢阻肺诊治指南
- 上海版六年级英语期末试卷(附听力材料和答案)
- 污水处理厂管道工程施工方案1
- 【中医治疗更年期综合征经验总结报告3800字】
- 齿轮类零件加工工艺分析及夹具设计
评论
0/150
提交评论