




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家二级(C语言)笔试模拟试卷第1
套
一、公共基础选择题(本题共10题,每题7.0分,共
10分。)
1、下列关于栈和队列的描述中,正确的是()。
A、栈是先进先出
B、队列是先进后出
C、队列允许在队头删除元素
D、栈在栈顶删除元素
标准答案:D
知识点解析:栈实际也是线性表,只不过是一种特殊的线性表。栈是只能在表的一
端进行插入和删除运算的线性表,通常称插入、删除的这〜端为栈顶,另一端为栈
底。队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队
头,允许插入的一端叫做队尾。
2、己知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历
序列是()。
A、ABCDE
B、ECABD
C、EACDB
D、CDEAB
标准答案:C
知识点解析:由于后序遍历的最后一个元素为E,所以E为根结点,所以它的前序
遍历的首个元素为E,故排除A和D选项。由于中序遍历中,元素B在元素根结
点E的后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个元素,所
以前序遍历的最后一个元素应为B,故选项C为正确选项,即该二义树的前序遍
历序列是EACDB。
3、在数据流图中,带有箭头的线段表示的是()。
A、控制流
B、数据流
C、模块调用
D、事件驱动
标准答案:B
知识点解析:数据流图中带箭头的线段表示数据流,沿箭头方向传递数据的通道,
一般在旁边标注数据流名。
4、结构化程序设计的3种结构是()。
A、顺序结构,分支结构,跳转结构
B、顺序结构,选择结构,循环结构
C、分支结构,选择结构,循环结构
D、分支结构,跳转结构,循环结构
标准答案:B
知识点解析:程序设计语言仅仅使用顺序、选择和重要(循环)二种基本控制结阳就
足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结
构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效
率,降低软件的开发成本。
5、下列方法中,不属于软件调试方法的是()。
A、回溯法
B、强行排错法
C、集成测试法
D、原因排除法
标准答案:C
知识点解析:软件调试主要采用以下三种方法:强行排错法:作为传统的调试方
法,其过程可概括为设置断点、程序暂停、观察程序状态、继续运行程序。回溯
法:该方法适合于小规模程序的排错、即一旦发现了错误,先分析错误征兆,确定
最先发现“症状”的位置C原因排除法:原因排除法是通过演绎和归纳,以及二分
法来实现。
6、下列选项中,不属于模块间耦合的是()。
A、内容耦合
B、异构耦合
C、控制耦合
D、数据耦合
标准答案:B
知识点解析:耦合可以分为下列几种,它们之间的耦合度由高到低排列:内容耦
合——若一个模块直接访问另一模块的内容,则这两个模块称为内容耦合。公共
耦合——若一组模块都访问同一全局数据结构,则称为公共耦合。外部耦合-
若一组模块都访问同一全局数据项,则称为外部耦合。控制耦合—若一模块明
显地把开关量、名字等信息送入另〜模块,控制另一模块的功能,则称为控制耦
合。标记耦合—若两个以上的模块都需要其余某一数据结构的子结构时,不使
用其余全局变量的方式而全使用记录传递的方式,这样的耦合称为标记耦合。数
据耦合——若一个模块访问另一个模块,被访问模块的输入和输出都是数据项参
数,则这两个模块为数据耦合。非直接耦合—若两个模块没有直接关系,它们
之间的联系完全是通过程序的控制和调用来实现的,则称这两个模块为非直接耦
合,这样的耦合独立性最强。
7、下列特征中不是面向对象方法的主要特征的是()。
A、多态性
B、标识惟一性
C、封装性
D、耦合性
标准答案:D
知识点解析:面向对象没计方法与面向过程设计方法有本质的不同,其基本原理
是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:标识
惟一性、多态性、封装性、模块独立性、继承和多态性好。
8、在数据库设计中,将E-R图转换成关系数据模型的过程属于()。
A、需求分析阶段
B、概念设计阶段
C、逻辑设计阶段
D、物理设计阶段
标准答案:C
知识点解析:逻辑结构设计的任务:概念结构是各种数据模型的共同基础,为了能
够用某一DBMS实现用户需求,还必须将概念结构进一步转化为相应的数据模
型,这正是数据库逻辑结构设计所要完成的任务。它包括从E-R图向关系模式转
换和逻辑模式规范化及调整、实现。
9、在一棵二叉树上,第5层的结点数最多是()。
A、8
B、9
C、15
D、16
标准答案:D
知识点解析:根据二叉树的性质:二叉树第i(i>l)层上至多有2=个结点。得到第
5层的结点数最多是16个。
10、下列有关数据库的描述,正确的是()。
A、数据库设计是指设计数据库管理系统
B、数据库技术的根本目标是要解决数据共享的问题
C、数据库是一个独立的系统,不需要操作系统的支持
D、数据库系统中,数据的物理结构必须与逻辑结构一致
标准答案:B
知识点解析:数据库设计的目的实质上是设计出满足实际应用需求的实际关系模
型。数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据
的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数
据的一致性和完整性:提供数据与应用程序的独立性,从而减少应用程序的开发和
维护代价。
二、选择题(1分)(本题共30题,每题1.0分,共30
分。)
11、c语言源程序名的后缀是()。
A、.exe
B、.C
C^.obj
D、.cp
标准答案:B
知识点解析:由C语言构成的指令序列称为c源程序,源程序文件的后缀为
c”。源程序经过c编译程序编译生成后缀为cbj”的二进制文件(称为目标文
件),然后由称为“连接程序”(Link)的软件把目标文件与C语言提供的各种库函数连
接起来,生成后缀为exe”的可执行文件。
12、若函数中有定义语句:inta;,贝欧)。
A、系统将自动给a赋初值0
B、这时a中的值是和随机数
C、系统将自动给a赋初值-1
D、这a中无任何值
标准答案:B
知识点解析:本题考查变量赋值基本概念。在声明一个变量后,如果未显式的对其
进行赋值,则它的值是一个随机值。
13、以下选项中,合法的一组C语言数值常量是()。
A、028.5e-3-Oxf
B、12OXa234.5e0
C^.1774cl.5Oabc
D、Ox8A10,0003.e5
标准答案:B
知识点解析:八进制数开头必须是数字"0”,其数字包括。〜7,而在选项A中,
028是错误的。浮点数据的指数形式表示常量中,C语言规定字母e或E之前必须
要有数字,且e或E之后的指数必须为整数,而选项C中4el.5是错误的。在选
项D中,整型数据10,000的表示形式是错误的。所以本题的答案为选项B。
14、下列语句组中,不正确的是()。
A、charts;s="Olympic”;
chars[]=ttOlympic,\
C、char*s;s={"Olympic”};
D、chars[]={"Olympic”};
标准答案:C
知识点解析:s是一个字符指针变量,s代表其地址,C将字符串赋给地址,因此
选项C错误。
15、若在定义语句:inta,b,C,*p=&c;之后,接着执行以下选项中的语句,则
能正确执行的语句是()。
A、scanR"%d”,a,b,C;
B、scanf("%d%d%d",a,b,C;
C>scanf(''%d",p);
D、scanf("%d”,&p);
标准答案:C
知识点解析:程序语句inta,b,c,*p=&c;定义了3个整型变量a,b,c和一个
整型指针变量p,并且把变量c的地址赋给p。scanf函数的一般形式为“scanlT格
式控制字符串”,地址列表)“,其中的地址列表应当是存放输入数据变量的地址。
16、有以卜.程序,其中%u表示按无符号整数输出()。main(){unsignedint
x=0xFFFF;/*x的初值为十六进制数*/printfC^u\n”,X);)程序运行后的输
出结果是().
A、-1
B、65535
C、32767
D、OxFFFF
标准答案:B
知识点解析:因为%u表示按无符号整数输出,而x用十六进制表示为OxFFFF,
所以输出无符号整数的最大值65535。
17、设变量x和Y均已正确定义并赋值,以下if语句中,在编译时将产生错误信
息的是()。
A、if(x++);
B、if(x>y&&y!=O);
C^if(x>y)x—elsey++;
D、if(y<0){;Jelsex++;
标准答案:C
知识点解析:选项C中,if(x>y)后面的“x-”是一个表达式而不是一个语句,所以
在编译时会产生错误信息。
18、以下选项中,当x为人于1的奇数时,值为0的表式为()。
A、x%Z==l
B、x/2
C、x%2!=0
D^x%2==0
标准答案:D
知识点解析:当x为大于1的奇数时,x对2求余的结果为1,不为0,所以选项
D中表达式的值为0。
19、若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值
为()。
A、4
B、16
C、32
D、52
标准答案:C
知识点解析:本题考查逗号表达式的运用。x=(i=4.j=16,k==32)中的i=4J=16,
k=32构成一个逗号表达式,整个表达式的值取最后一项的值,即32,所以x的值
为32。
20、在下列选项中,没有构成死循环的是()。
A、inti=100;while(l){i=i0+l;if(i>100)break;}
B、for(;;);
C、intk=10000:do(k++;)while(k>10000);
D、ints=36;while(s)—s;
标准答案:D
知识点解析:选项D中,首先定义的变量s的值为36,因为语句-s;所以当s=0
时循环会结束;选项A由于while(l)永远成立,循环构成死循环;选项B中for循
环没有使循环结束的限定条件,也构成死循环;选项C中由于k永远大于10000,
所以循环无法停止。
21、在printf的格式字符中,e格式字符的作用是()。
A、以十六进制无符号形式输出整数
B、以带符号的十进制形式输出整数
C、以指数形式输出实数
D、以字符形式输出,且只输出一个字符
标准答案:C
知识点解析:本题考查printf函数的格式。格式字符"e”或者"E”都表示以指数形式
输出单精度或双精度数。
22、以下选项中正确的语句组是()。
A、chars[J;s="HELL0!”;
B、charts;s={"HELLO!”);
C、chars[10];s="HELLO!”;
D、charts;s="HELLO!”;
标准答案:D
知识点解析:本题考查数组和字符串的赋值。选项A中数组s没有明确其大小就
赋值是错误的。选项B中不能有大括号,选项C中的写法应该为
23、字符串“%%\"ABCDEF\“\\”的长度是()。
A、11
B、10
C、5
D、3
标准答案:B
知识点解析:本题涉及字符串最基本的2个概念:①字符串的长度是指字符串中
字符的个数,但不包括字符串结束符;②以反斜杆、'开头的特殊字符序列,意思
是把反斜杆后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符
串长度之内,''连同后面的字符为一个长度:而也是如此。
24、下列说法正确的是
A、int(**def)[10];…-def指向一个指针,该指针指向10个整型变量构成的数组
B、im*(*gh[10]);—gh指向一个指针,该指针指向10个整型变量构成的数组
C、jnt*(*gh[10])一gh是一个指针,指向由10个指向整型变量的指针构成的数组
D、A,C均正确
标准答案:D
知识点解析:im*(*gh[10]);-曲是一个指针,指向由10个指向整型变量的指针构
成的数组,im(**de3IO];--def指向一个指针,该指针指向10个整型变量构成的
数组。
25、若函数调用时的实参为变量,以下关于函数形参和实参的叙述中正确的是()。
A、函数的实参和其对应的形参共占同一存储单元
B、形参只是形式上的存在,不占用具体存储单元
C、同名的实参和形参占同一存储单元
D、函数的形参和实参分别占用不同的存储单元
标准答案:D
知识点解析:在C语言中,函数的实参单元与形参单元在内存中分配不同的存储
单元。在调用函数时,给形参分配临时存储单元,并将实参对应的值传递给形参,
在被调用函数中对形参存储单元中的值进行运算,最后通过return语句把函数值返
回调用函数。当调用结束后,形参单元被释放,实参单元仍保留并维持原值。
26>设有如下定义:structsk{intm;floatx;)data,*q;若要使q指向dala中的
m域,正确的赋值语句是()。
A、q=&data.m;
B、*q=data.m;
C、q=(stmctsk*)&data.m;
D、q=(structsk*)data.in:
标准答案:c
知识点露析:利用强制类型转换(structsk*)把整数型地址&data.m转换成结构体变
量指针赋给结构体指针变量q。
27、有以卜程序:intfl(doublea){returna*a;}inlf2(intx,inty){doublea,b;
a=n(x);b=fl(y);returna+b:)main(){doublew;w=f2(2.1,4.0);;}程序
执行后,变量w的值是()。
A、20.21
B、20
C>20.0
D、0
标准答案:C
知识点解析:本题考查函数调用的使用。计算w的时候,先调用f2函数,f2函数
的公式是“a+b”,计算a和b的时候又调用到n函数,n的函数是“a*a”,因此,w
的计算公式为:w=(double)[(int)(2.1*2l)+(int)(4.0*4.0)]=20.0。
28、若语句"t=fun(fun(x,y,a),(a+b,a+C,x+y+z);”对fun函数的调用正确,
则fun函数的形参个数为()。
A、3
B、4
C、5
D、6
标准答案:A
知识点解析:本题考查函数调用时的参数个数。在函数调用时,实参必须和形参的
个数、类型一一对应。但函数的计算结果只有一个值,因而fun函数的参数个数为
3。
29、设X为整型变量,n=14,n的地址为4000;m=6,m的地址为2000;执行语
句*=&1】后的结果为()。
A、14
B、6
C、2000
D、4000
标准答案:D
知识点解析:&是取地址运算符,表达式x=&a是表示将a的地址赋给变量X。
30、若有说明intm[3][4]:{3,9,7,8.5),(*q)|4];和赋值语句q=m;,见中
0<=i<3,0<=i<4)值的正确引用为()。
A、(q+i)Ul
B、*q[i][j]
C、*(*q[i]+j)
D、*(*(q+i)+j)
标准答案:D
知识点解析:*(q+i)指向第i行首地址,*(*(q+i)+j)代表第i行第i个元素。
31、有以下程序:voidss(char*s,chart){while(*s){if(*s==t)*s=t-<a*+tA,;
t,,
s++;}}main(){charstrl[100]-abcddfeRibd>c='d';ss(strl,c);printR"%s\
n",strl);}程序运行后的输出结果是()。
A、ABCDDEFEDBD
B、abcDDfefDbD
C^abcAAfefAbA
D、Abcddfefdbd
标准答案:B
知识点解析:函数ss(char*s,chart)的功能是将指针s所指向的字符串中存在的字
符“t”均改写成大写字母:所以main函数中引用函数ss后使得数组strl中的小写字
母“d”均变成了大写字母“D”,然后输出数组strl,结果为:abcDDfefDbDo
32、下述语句中,在字符串si和s2相等时显示“theyareEqual”的是()。
A、if(*sl==*s2)puts(4ttheyareEqual");
B、if(!strcmp(sl,s2))puts(4<theyareEquaP));
C、if(sl==s2)puts("theyareEqual'》
D、if(strcmp(s1,s2))puts("theyareEqual");
标准答案:B
知识点解析:字符串比较不能用要用strcmp®,s2涵数,字符串si和s2
相等时返回值为O故!strcmp(sl,s2)==l,条件成立执行后面的语句,输出they
areEquak
33、设有说明int(*ptr)[M];其中的标识符ptr是()。
A、M个指向整型变量的指针
B、指向M个整型变量的函数指针
C、一个指向具有M个整型元素的一维数组的指针
D、具有M个指针元素的一维指针数组,每个元素都只能指向整型变量
标准答案:C
知识点解析:根据C语言的语法规则可知,int(*ptr)[M]中的标识符pir是一个指向
具有M个整型元素的一维数组指针。
34、在C语言中,变量的隐含存储类别是()。
A^auto
B、static
C、exlem
D、无存储类别
标准答案:A
知识点解析:C语言中,变量的隐含存储类型为aulo。
35、有以下程序:#includestructtt{intx;structIt*y;}*p;structtta[4]=120»
a+1,15,a+2,30,a+3,17,a);main(){inti;p=a;for(i=l;i<=2;
i++){printf("%d,”,p->x);p=P->y;}}程序的运行结果是()。
A、20.30o
B、30,17
C、15.30.
D、20,15,
标准答案:D
知识点言析:本题考查的是指针和结构的应用。首先定义的数组It中有两个成
员,一个整型变量,一个结构指针。当i=l时,p指针指向结构数组的第一个元
素,并输出此元素的第一个成员x,即20;当1-2时,p指针指向结构数组的第二
个元素的第一个成员,所以输出15。
36、有以下程序:includemain(){FILE*fp;inta[10]={1,2,3,0,0),i;
fp=fbpcnCd2.dat”,“wb");fwrite(a,sizeof(int),5,fp);fwrite(a,sizeof(int),
5,fp);fclose(fp);fp=fbpenC*d2.dat","rb");fread(a,sizeof(int),10,fp);
fclose(fp);for(i=0;ivlO;i++)printf(“%d,”,a[i]i;}程序的运行结果是()。
A、1.2,3,0,0,0,0,0,0,0,
B、1,2,3,1,2,3,0,0,0,0,
C、123,0,0,0,0,123,0,0,0,0,
D、1,2,3,0,0,1,2,3,0,0,
标准答案:D
知识点解析:首先用函数fopen()以“wb”的方式打开文件“d2.daf\然后调用两次
fwrite函数将数组a的5个元素,依次输出到文件币中(共10个字节),然后关闭文
件。再次打开文件,使用文件指针指向文件的开头,调用fread函数从文件fb中读
取这10个字节的数据到数组a中,此时数组a的内容就变为{1,2,3,0,0,1,
2,3,0,0),因此最后的输出结果为“1,2,3,0,0,1,2,3,0,0”。
37、定义结构体数组structStu{intnum;charname|20|;}x[51={1,"ZHAO”,2,
“QIAN”,3,“SUN”,4,“LEE”,5,“ZHOU”};for(i=l;i<5;i++)primf("%d%c”,
x[i].num,x[i].name[2]);程序执行后的输出结臭是()。
A、2A3N4E5O
B、1H2I3U4E
C、1A2N3E4O
D、1A2N3E4O
标准答案:A
知识点解析:本题主要考查结构体数组。x[i].num是结构体x川中的num成员,
x|i].name[2|是结构体x[i]中name成员的第3个元素。第一次循环,i=l,输出
x[l]num,x[l].name⑵的值,即2A;第二次循环,i=2,输出x[2].num,
x[2].name⑵的值,即3N;第三次循环,i=3»输出x[3].num,x[3].name⑵的
值,即4E;第四次循环,i=4,输出x[4].num,x|4].name⑵的值,即50。
38、uniondt(inta;charb;doublec;}data;以、叙述中错误的是
A^data的每个成员起始地址都相同
B、变量data所占内存字节数与成员c所占字节数相等
C、程序段:data.a=5;printf("%\n”,data.C;输出结果为5.000000
D、data可以作为函数的实参
标准答案:C
知识点解析:输出不会是5.00000的,因为单精度浮点数和双精度浮点数在内存
中的存储形式不一样。
39、设x=021,y=012,则z=x|y的值是()。
A、1
B、0
C、00011011
D、11000010
标准答案:C
知识点解析:本题主要考查按位或运算。按位或是对两个运算对象相应的位进行逻
辑或运算,其运算规则和逻辑或相同,两个运算对象只要有一个是1,则结果为
lo
40、fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是()。
A、字符串读入后会自动加入'(T
B、昂是指向该文件的文件型指针
C、fgets函数将从文件中最多读入n个字符
D、fgets函数将从文件中最多读入n-1个字符
标准答案:C
知识点解析:字符串输入函数fgets()的调用形式为;fgets(s,n,fp)<>s可以是一个
字符数组名,或是指向字符串的指针;n为要读取的最多的字符个数;fp是指向该
文件的文件型指针.字符串输入函数的功能是:从fp所指向的文件中读取长度不
超过n-1个字符的字符串,并将该字符串存放到字符数组s中。
三、公共基础填空题(本题共5题,每题7.0分,共5
分。)
41、软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编
码和测试属于阶段。
标准答案:开发
知识点解析:软件牛命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护
阶段。定义阶段包括可行性研究初步项目计划和需求分析:开发阶段包括概要设
计、详细设计、实现和测试;维护阶段包括使用、维护和退役。
42、不改变关系表中的属性个数但能减少元组个数的是。
标准答案:选择
知识点解析:关系数据库的专门关系运算包括选择、投影和连接3种,其中选择不
改变关系表中的属性个数但能减少元组个数。
43、用树形结构表示实体之间联系的模型是。
标准答案:层次模型
知识点解析:层次模型是最早发展起来的数据库模型。层次模型的基本结构是树形
结构。
44、在两种基本测试方法中,测试的原则之一是保证所测模块中每一
个独立路径至少执行一次。
标准答案:白盒
知识点解析:按功能划分测试可分为白盒测试和黑盒测试。白盒测试的原则是保证
所测试模块中每一独立路径至少执行一次:保证所测试模块所有判断的每一分支至
少执行一次:保证所测试模块每一循环都在边界条件和一般条件下至少各执行一
次;验证所有内部数据结构的有效性。
45、与二维表中的“行”的概念最接近的概念是o
标准答案:元组
知识点解析:在关系模型中,数据结构用单一的二维表结构来表示实体及实体问的
联系。一个关系对应一个二维表。二维表中的列称为属性,属性值的取值范围称为
值域。二维表中的一行祢为一个元组。
四、填空题(本题共8题,每题1.0分,共8分。)
46、若有定义:inla=10,b=8,c=4;然后顺序执行下列语句后,变量a中的值是
oc=(b-=(a-4)):a=(c%2)+(b-l);
标准答案;2
知识点解析:本题考查的是基本赋值运算符和赋值表达式。表达式c=(b=a-4)等价
于c=(b=b-a+4)等价于c=b=2;表达式a=(c%2+(b-l))等价于a=l+2-l=2:因此最后a
的值为2。
47>以下程序的输出结果是-o#includevoidmain(){inif,fl,⑵
i;fl=0;f2=l;printf("%d%d”,fl,f2);for(i:3;i<=5:i++){f=fl+f2,
printf("%d",f);t2=f1;fl=f}printf("\a");}
标准答案:01112
知识点解析:在主函数中定义了整型变量fl和f2,并把其值赋为。和1,在屏幕
上输出。然后在第一次运行for循环语句时,变量f的值等于1,把其值输出,把
变量n的值0赋给变量f2,变量f的值I赋给fl,在执行第二次for循环语句时,
变量f的值等于1,把此值输出。然后再把变量fl的值1赋给变量f2,变量f的值
1赋给fl,在执行第三次for循环语句时,变量f的值等于2,把此值输出。所以程
序运行后的结果为。1112。
48、以卜.程序运行后的瑜出结果是©main(){inta=3,b=4,c=5,
t=79;if(b
标准答案:4579
知识点解析:本题考查的是条件判断语句。本题特别需要注意的是“:”的问题,
不能把“t=a:a=c;c=t;”误认为是第一个if的语句,实际上,只有“t=a;-才是第
一个if的语句。所以判断第一个if语句的表达式不成立后,执行的是“a=c;
c=l;",此时a=5,c=79。然后判断第二个if语句的条件表达式,表达式成立,执行
后面的3条语句,让a、b、c分别为4、5和79。
49、以下程序的定义语句中,x[lj的初值是_________,程序运行后输出的内容是
o#ineludemain(){intx[]={1,2,3,4,5,6,7,8,9,10,11,
12,13,14,15,16),*p[4],i;for(i=0;i<4;i++){p[i]=&x[2*i+l],printff4%
d",p[i][0]);}printfT'n");}
标准答案:22468
知识点解析:p为指向数组的指针变量,数组x[l]为数组x口的第二个元素,值为
2;进入for循环i=0时,p[O]=&x[l]…直到循环完些,指针分别指向数组x口中的第
2、4、6、8个元素,所以第二个空白处应填2468。
50、以下程序的输出结果是v#includevoidswap(int*a,int*b){int*t:
t=a;a=b;b=t;)main(){inti=3,j=5,*p=&i,*q=&j;swap(p,q);printff'%d%
d\n”,*p,*q);}
标准答案:35
知识点解析:本题考查函数中形参和实参的传递。在C语言函数中实参和形参传
递具有不可逆性,参数只能由实参传向形参,而不能由形参传向实参,虽然swap
函数的功能是实现两个数的交换,但由于没有返回值,故最终的输出结果为35。
51、以下程序的输出结果是o#includeintfun(intx){staticintt=0;
return(t+=x);)main(){ints,i;for(i=l;i<=5;i++)s=fun(i);printR"%d'n",
s);)
标准答案:15
知识点解析:在函数fun(intx)中定义了局部静态整形变量3并初始化为0。这个
函数的返回值为t+x。所以在主函数的for循环中,5次连续调用fun(i),实现了从】
到5连续数字的相加运算。因而最后结果等于15。
52、当运行以下程序时,输入abed,程序的输出结果是_________oinsert(char
str[]){inti;i=strlen(str):while(i>0){str[2*i]=str[i];str[2*i-l]=t*,ji—;}
printf("%s\n”,str);)main(){charstr|40|;scanR"%s\n",str);insert(str);)
标准答案:a+b*c*d
知识点解析:本题考查的是函数与一个简单的算法结合在一起的应用。首先定义一
个int型变量来存放字符串sir的长度,执行while条件语句,通过分析可知,字符
串2*i项的值可由第i项的值得到;第2巧-1项直接赋值为*,i递减,如此反复直到
不满足i>0的条件时,输出运行后的字符串。
53、以F程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时
用字符@作为输入结束标志。请填空。includelong;/*函数说
明语句*/main(){longn;n=func();printf("n=%ldha”,n);)longfunc(){longm;
for(m=0;getchar()!=t@,;);returnm;)
标准答案:fimc()m++
知识点解析:第一空白处,在c语言中如果子函数在主函数之后定义,就要对其进
行说明,说明的形式为:“函数类型名函数名所以此处填写func()。第二空白
处,整型变量m表示输入字符的个数,所以每输入一个字符,变量m的值就加
lo所以此处填写m++。
国家二级(C语言)笔试模拟试卷第2
套
一、公共基础选择题(本题共20题,每题1.0分,共
20分。)
1、算法的空间复杂度是指
A、算法程序的长度
B、算法程序中的指令条数
C、算法程序所占的存储空间
D、执行算法需要的内存空间
标准答案:D
知识点解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓
算法的时间复杂度是指决行算法所需要的计算工作量;算法的空间复杂度是指执行
这个算法所需要的内存空间。
2、在结构化程序设计中,模块划分的原则是
A、各模块应包括尽量多的功能
B、各模块的规模应尽量大
C、各模块之间的联系应尽量紧密
D、模块内具有高内聚度、模块间具有低耦合度
标准答案:D
知识点解析:在结构化程序设计中,一般较优秀的软件设计尽量做到高内聚、低耦
合,这样有利于提高软件模块的独立性,也是模块划分的原则。
3、下列叙述中,不属于测试的特征的是
A、测试的挑剔性
B、完全测试的不可能性
C、测试的nJ•靠性
D、测试的经济性
标准答案:C
知识点解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错
误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试
的不可能性及测试的经济性。其中,没有测试的可靠性这一说法。
4、下面关于对象概念的描述中,错误的是
A、对象就是C语言中的结构体变量
13、对象代表着正在创建的系统中的一个实体
C、对象是一个状态和操作(或方法)的封装体
D、对象之间的信息传递是通过消息进行的
标准答案:A
知识点解析:对象是由数据和容许的操作组成的封装体,与客观实体有直接的对应
关系,对象之间通过传递消息互相联系,从模拟现实世界中不同事物彼此之间的联
系,B)、C)、D)是正确的,对象的思想广泛应用于C++、Java等语言中,因此A)错
误。
5、下列关于队列的叙述中正确的是
A、在队列中只能插入数据
B、在队列中只能删除数据
C、队列是先进先出的线性表
D、队列是先进后出的线性表
标准答案:C
知识点解析:队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操
作,另一端进行删除操作。其中,允许插入的一端称为队尾(rear),允许删除的一端称为
队首(front)。队列具有先进先出的特点,它是按“先进先出”的原则组织数据的。
6、已知二义树后序遍历序列是dabcc,中序遍历序列是debac,它的前序遍历序列是
A、acbed
B、decab
C^deabc
D、cedba
标准答案:D
知识点解析:依据后序遍历序列可确定根结点为c;再依据中序遍历序列可知其左子
树由deba构成,右子树为空;又由左子树的后序遍历序列可知其根结点为e,由中序遍
历序列可知其左子树为d、右子树由ba构成,如下图所示,求得该二叉树的前序遍历序
7、某二叉树中有n个度为2的结点,则该二义树中的叶子结点数为
A、n+1
B、n-1
C、2n
D、n/2
标准答案:A
知识点解析:对于任何一棵二叉树T,如果其终端结点(叶子)数为nl,度为2的结点
数为n2,则nl=n2+l,所以该二叉树的叶子结点数等于n+1。
8、设有如下三个关系表卜列操作中正确的是
A、T=RCIS
B、T=RUS
C、T=RxS
D、T=R/S
标准答案:C
知识点解析:对于两个关系的合并操作可以用笛卡尔积表示。设有n元关系R和
m元关系S,它们分别有p和q个元组,则R与S的笛卡儿积记为RxS它是一个m+n
元关系,元组个数是pxq由题意可得,关系T是由关系R与关系S进行笛卡尔积运算
得到的。
9、下列叙述中,正确的是
A、用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系
B、用E-R图只能表示实体集之间一对一的联系
C、用E-R图只能表示实体集之间一对多的联系
D、用E-R图表示的概念数据模型只能转换为关系数据模型
标准答案:A
知识点解析:两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可
以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模
型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易
向关系模型、网状模型和层次模型等各种模型转换。
10、下列有关数据库的璜述,正确的是
A、数据处理是将信息转化为数据的过程
B、数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变
C、关系中的每一列称为元组,一个元组就是一个字段
D、如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键
字,则称其为本关系的外关键字
标准答案:D
知识点解析:数据处理是指将数据转换成信息的过程,故选项A)叙述错误;数据的物
理独立性是指数据的物理结构的改变,不会影响数捱库的逻辑结构,故选项B)叙述错
误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文
件中的字段,故选项C)叙述错误。
11、算法的空间复杂度是指
A、算法程序的长度
B、算法程序中的指令条数
C、算法程序所占的存储空间
D、执行算法需要的内存空间
标准答案:D
知识点解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓
算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度是指执行
这个算法所需要的内存空间。
12、在结构化程序设计中,模块划分的原则是
A、各模块应包括尽量多的功能
B、各模块的规模应尽量大
C、各模块之间的联系应尽量紧密
D、模块内具有高内聚度、模块间具有低耦合度
标准答案:D
知识点解析:在结构化程序设计中,一般较优秀的软件设计尽量做到高内聚、低耦
合,这样有利于提高软件模块的独立性,也是模块划分的原则。
13、下列叙述中,不属于测试的特征的是
A、测试的挑剔性
B、完全测试的不可能性
C、测试的可靠性
D、测试的经济性
标准答案:C
知识点解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错
误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试
的不可能性及测试的经济性。其中,没有测试的可靠性这一说法。
14、下面关于对象概念的描述中,错误的是
A、对象就是C语言中的结构体变量
B、对象代表着正在创建的系统中的一个实体
C、对象是一个状态和操作(或方法)的封装体
D、对象之间的信息传递是通过消息进行的
标准答案:A
知识点解析:对象是由数据和容许的操作组成的封装体,与客观实体有直接的对应
关系,对象之间通过传递消息互相联系,从模拟现实世界中不同事物彼此之间的联
系,B)、C)、D)是正确的,对象的思想广泛应用于C++、Java等语言中,因此A)错
误。
15、下列关于队列的叙述中正确的是
A、在队列中只能插入数据
B、在队列中只能删除数据
C、队列是先进先出的线性表
D、队列是先进后出的线性表
标准答案:C
知识点解析:队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操
作,另一端进行删除操作。其中,允许插入的一端称为队尾(rear),允许删除的一端称为
队首(from)。队列具有先进先出的特点,它是按“先进先出”的原则组织数据的。
16、已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是
A、acbed
B、decab
C、deabc
D、cedba
标准答案:D
知识点解析:依据后序遍历序列可确定根结点为c;再依据中序遍历序列可知其左子
树由deba构成,右子树为空;乂由左子树的后序遍历序列可知其根结点为e,由中序遍
历序列可知其左子树为d、右子树由ba构成,如下图所示,求得该二叉树的前序遍历序
歹ll为选项D)o①•!.。2入耀(2)出椎.*3.X入楼6出楼④,3出槎<S>・1出楼
17、某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为
A、n+1
B、n-1
C、2n
D、n/2
标准答案:A
知识点解析:对于任何一棵二叉树T,如果其终端结点(叶子)数为nl,度为2的结点
数为n2,则nl=n2+l,所以该二叉树的叶子结点数等于用。
R
m
18、设有如下三个关系表n
A、T=RAS
B、T=RUS
C、T=RxS
D、T=R/S
标准答案:c
知识点露析:对于两个关系的合并操作可以用笛卡尔积表示。设有n元关系R和
m元关系S,它们分别有p和q个元组,则R与S的笛卡儿积记为RxS它是一个m+n
元关系,元组个数是pxq由题意可得,关系T是由关系R与关系S进行笛卡尔积运算
得到的。
19、下列叙述中,正确的是
A、用E-R图能够表示实体集间•对•的联系、对多的联系和多对多的联系
B、用E-R图只能表示实体集之间一对一的联系
C、用E-R图只能表示实体集之间一对多的联系
D、用E-R图表示的概念数据模型只能转换为关系数据模型
标准答案:A
知识点解析:两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可
以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模
型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易
向关系模型、网状模型和层次模型等各种模型转换。
20、下列有关数据库的描述,正确的是
A、数据处理是将信息转化为数据的过程
B、数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变
C、关系中的每一列称为元组,一个元组就是一个字段
D、如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键
字,则称其为本关系的外关键字
标准答案:D
知识点解析:数据处理是指将数据转换成信息的过程,故选项A)叙述错误;数据的物
理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项B)叙述错
误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文
件中的字段,故选项C)叙述错误。
二、选择题(1分)(本题共20题,每题1.0分,共20
分。)
21、下列叙述中错误的是
A、一个C语言程序只能实现一种算法
B、C程序可以由多个程序文件组成
C、C程序可以由一个或多个函数组成
D、一个C函数可以单独作为一个C程序文件存在
标准答案:A
知识点解析:一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所
以一个C语言程序可以实现多种算法。
22、下面四个选项中,均是不正确的八进制数或十六进制数的选项是
A、0160x8f018
B、0abc0170xa
C、010-0x110x16
D、0al27ff-123
标准答案:D
知识点解析:八进制中不可能包括8以上的数字,它的范围只在07之间,以0开
头。同样,十六进制是以Ox开头,数字在0~9和A~F之间。
23、以下叙述不正确的是
A、一个C源程序可由一个或多个函数组成
一个C源程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面
标准答案:D
知识点解析:本题考查C语言的基本基础知识。在C程序中,注释用符号少”开始,
而以符号“*/”结束。程序的注释可以放在程序的任何位置。通常将注释放在程序的
开始,以说明本程序的功能;或者放在程序的某个语句后面,以对此语句的功能进行描
述。无论将注释放有何处,在程序进行编译时,编译程序不会处理注释的内容,且注释
内容也不会出现在目标程序中。
24、设变量a是int型,f是float型,i是double型,则表达式10+W+i*f值的数据类型
为
A、int
float
C、double
D、不确定
标准答案:C
知识点解析:根据混合运算规则,如果有一个数据是float型或double型,则其他数据
类型先转化为double型,运算的结果最终也是double型。
25>现有格式化输入语句,scanf("x=%d],sum]y=%d,line]z=%dL”,&x,&y,&z);,已知在
输入数据后,x,y,z的值分别是12,34,45,则下列选项中是正确的输入格式的是[注]门”
表示空格,表示回车
A、12,34,45
B、x=12,y=34,z=45
C^x=12C,sumy=34,z=45
D、x=12|,sumjy=34Jine]z=45
标准答案:D-
知识点解析:若在scanf的格式化控制串中插入了其他字符,则在输入时要求按一一
对应的位置原样输入这些字符。格式化输入函数必须严格按照双引号里面的格式进
行输入。在格式化输出函数中,格式控制串中除了合法的格式说明外,可以包含任意
的合法字符。
26、已知各变量的类型说明如卜:intk,a,b;unsignedlongw=5:doublex=1.42;则以下
不符合C语言语法的表达式是
A、x%(-3)
B、w+=-2
C、k=(a=2,b=3,a+b)
D^a+=a-=(b=4)*(a=3)
标准答案:A
知识点解析:%是求余运算符或模运算符两侧均应为整型数据,选项A)中的x
是double型数据。
27、有以下程序fun(intx){intp;if(x==1)return(3);p=x-fun(x-2);returnp;}main()
{printf("%d\n",fun(7));)执行后的输出结果是
A、7
B、3
C、2
D、0
标准答案:C
知识点解析:因为fun(intx)是一个递归函数,所以主函数中fun(7)经过三次递归调
用,其过程可以描述为“fun⑺=7_fun⑸=7_(5_fun⑶)=7Y5_(3_fun⑴))=7-(5G3))=7-
5=2”,所以最后的输出结果为2o
28、下列程序段中,不能正确赋值的是
A、char*p,ch;p=&ch;scanf("%c,&p")
B、char*p;p=(char*)malloc(1);scanf("%cn,p);
C、char*p;*p=getchar();
D、char*p,ch;p=&ch;*p=getchar();
标准答案:C
知识点解析:本题考查了字符的输入函数getchar和利用scanf函数输入一个字符。
用scanf输入字符时,格式说明字符应该为%或本题选项。因为指针p没有赋初值,
所以是一个不定值,不能直接将getchar读入的字符赋给指针p所指向的字符,所以选
项C错误。
29、在16位编译系统上,若有定义inta[]={10,20,30},*p=&a;,当执行p++;后,下列说
法错误的是
A、p向高地址移了一个字节
8、p向高地址移了一个存储单元
C、p向高地址移了两个字节
D、p与a+1等价
标准答案:A
知识点解析:在16位编译系统下,一个ini型变量是用16位来存储的,其占用两个字
节,当执行p++之后,相当于p向高位移动了一个存储单元,也就是两个字节。因此,本
题的答案为选项A)o
30、若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果
是#includemain(){chare;intv0=l,vl=0,v2=0;do{switch(c=getchar())
{case'a':case'A':caseze':case'E':case'incaseT:case'o':case'O':
case'u':casc'U':vl+=1;dcfault:v0+=l;v2+=l;}}whilc(c!=,\n,);
printf("vO=%d,v1=%d,v2=%d\n",v0,v1,v2);)
A、v0=7,vl=4,v2=7
v0=8,vl=4,v2=8
C、v0=ll,vl=4,v2=ll
D、v0=13,vl=4,v2=12
标准答案:D
知识点解析:本题考查switch语句的掌握。必须撑握以下内容:首先应该明白
switch语句的语法格式:switch语句的语法格式为:switch(表达式){case常量表达
式1:语句组1;case常量表达式2:语句组2;case常量表达式n:语句组n;default:语句
组n+1;}另外,以下几点关于switch语句的重点:①系统在执行时计算开关表达式
的值;②根据所得的值在各个case标号表达式中寻找匹配,直到发现与表达式匹配
的标号(本例中匹配的是casOB,:);③找到匹配后执行后面相应的语句表,顺序
往下执行;④如果无相匹配的标号,若存在defauk标号,则执行该语句标号后面的语
句表n+1;当不存在default标号时,不执行switch中的任何一个语句表。一般而言,
在多分支结构中总会出现“意外”的情况,这时均可归入default程序段,作统一的处
理。default标号是可选性的,不必每次都有,视需要而定。switch语句中还可以包含
switch语句,形成switch的嵌套。
31、下列叙述中错误的是
A、一个C语言程序只能实现一种算法
B、C程序可以由多个程序文件组成
c、c程序可以由一个或多个函数组成
D、一个C函数可以单独作为一个C程序文件存在
标准答案:A
知识点解析:一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所
以一个C语言程序可以实现多种算法。
32、下面四个选项中,均是不正确的八进制数或十六进制数的选项是
A、0160x8f018
Oabc017Oxa
C>010-0x110x16
D、0al27ff-123
标准答案:D
知识点解析:八进制中,不可能包括8以上的数字,它的范围只在07之间,以0开
头。同样,十六进制是以Ox开头,数字在0〜9和A〜F之间。
33、以下叙述不正确的是
A、一个C源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main函数
C、C程序的基木组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面
标准答案:D
知识点解析•:本题考查C语言的基本基础知识。在C程序中,注释用符号“/*”开始,
而以符号,,*/”结束。程序的注释可以放在程序的任何位置。通常将注释放在程序的
开始,以说明本程序的功能;或者放在程序的某个语句后面,以对此语句的功能进行描
述。无论将注释放有何处,在程序进行编译时,编译程序不会处理注释的内容,且注释
内容也不会出现在目标程序中。
34、设变量a是int型,f是float型,i是double型,则表达式10+'a,+i*f值的数据类型
为
A、int
B、float
C^double
D、不确定
标准答案:C
知识点解析:根据混合运算规则,如果有一个数据是float型或double型,则其他数据
类型先转化为double型,运算的结果最终也是double型。
35、现有格式化输入语句,scanf("x=%d],sum]y=%dJine]z=%dL”,&x,&y,&z);,已知在
输入数据后,x,y,z的值分别是12,34,45,则下列选项中是正确的输入格式的是[注]门”
表示空格,表示回车
A、12,34,45
x=12,y=34,z=45
C、x=12C,sumy=34,z=45
D^x=12],sum]y=34,line]z=45
标准答案:D
知识点解析:若在scanf的格式化控制串中插入了其他字符,则在输入时要求按一一
对应的位置原样输入这些字符。格式化输入函数必须严格按照双引号里面的格式进
行输入。在格式化输出函数中,格式控制串中除了合法的格式说明外,可以包含任意
的合法字符。
36、已知各变量的类型说明如下:intk,a,b;unsignedlongw=5;doublex=1.42;则以下
不符合C语言语法的表达式是
A、x%(-3)
w+=-2
C、k=(a=2,b=3,a+b)
D、a+=a-=(b=4)*(a=3)
标准答案:A
知识点解析:%是求余运算符或模运算符两侧均应为整型数据,选项A)中的x
是double型数据。
37,有以下程序fun(intx){intp;if(x==1)return(3);p=x-fun(x-2);returnp;}main()
{printf(n%d\n",fun(7));}执行后的输出结果是
A、7
B、3
C、2
D、0
标准答案:C
知识点解析:因为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年设备级试题及答案
- 2025年新安卓面试题及答案
- 2025年涪陵春招试题及答案
- 2025年运营逻辑能力测试题及答案
- 2025年管道安装考试题及答案
- 2025年全国医学检验技术人员考试试卷及答案
- 2025年c语言上机考试题及答案
- 2025年项目经理招聘试题及答案
- 2025年运行指挥员技能竞赛题库
- 2026版高考化学一轮总复习考点突破第九章有机化学基础第51讲物质的分离和提纯考点1常用物理方法及装置
- 普通话水平测试用普通话词语表
- 西南林业大学新生入学登记表样表
- :高速公路缺陷责任期工程管理办法
- 重力学:第二章 地球正常重力场
- 城市生活垃圾处理和给水与污水处理工程项目建设用地指标
- 车辆安全例检操作规程
- 土建危险源辨识及预防措施
- 热奄包(精品课件)
- 基于最小均方误差(MMSE)估计的因果维纳滤波的实现
- 年产30万吨碳酸钙粉体、10万吨环保墙体材料、10万吨塑料母粒项目可行性研究报告模板-拿地申请立项
- 混凝土路面施工合同模板
评论
0/150
提交评论