国家二级(C语言)机试模拟试卷15_第1页
国家二级(C语言)机试模拟试卷15_第2页
国家二级(C语言)机试模拟试卷15_第3页
国家二级(C语言)机试模拟试卷15_第4页
国家二级(C语言)机试模拟试卷15_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家二级(C语言)机试模拟试卷15

一、选择题(本题共39题,每题1.0分,共39分。)

1、算法的时间复杂度是指()。

A、算法的长度

B、执行算法所需要的时间

C、算法中的指令条数

D、算法执行过程中所需要的基本运算次数

标准答案:D

知识点解析:算法的时间复杂度,是指执行算法所需要的工作量,可以用算法在执

行过程中所需基本运算的执行次数来度量算法的工作量。

2、以下数据结构中,属于非线性数据结构的是()。

A、栈

B、线性表

C、队列

D、二叉树

标准答案:

知识之解析D:二叉树属于非线性结构。栈是一种特殊的线性表,这种线性表只能在

固定的一端进行插入和删除操作;队列可看作是插入在一端进行,删除在另一端进

行的线性表。

3、数据结构中,与所使用的计算机无关的是数据的()。

A、存储结构

B、物理结构

C、逻辑结构

D、线性结构

标准答案:C

知识点解析:数据的逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机

无关。

4、内聚性是对模块功能强度的衡量,下列选项中,内聚性较弱的是()。

A、顺序内聚

B、偶然内聚

C、时间内聚

D、逻辑内聚

标准答案:B

知识点解析:内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能联

系。内聚有如下种类,它们之间的内聚度由弱到强排列:偶然内聚一一模块中的

代码无法定义其不同同功能的调用。但它使该模块能执行不同的功能,这种模块为

巧合强度模块。逻辑内聚——这种模块把几种相关的功能组合在一起,每次被调

用时,由传送给模块的参数来确定该模块应完成哪一种功能。时间内聚——这种

模块顺序完成一类相关功能,比如初始化模块,它顺序地为变量置初值。过程内

聚——如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过

程内聚。通信内聚——这种模块除了具有过程内聚的特点外,还有另外一种关

系,即它的所有功能都通过使用公用数据而发生关系。顺序内聚一一如果一个模

块内各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,处理元素

的输出数据作为下一个处理元素的输入数据,则称为顺序内聚。功能内聚——如

果一个模块包括为完成某一具体任务所必需的所有成分,或者说模块中所有成分结

合起来是为了完成一个具体的任务,此模块则为功能内聚模块。

5、在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有

若干个键,它们称为该表的()。

A、连接码

B、关系码

C、外码

D、候选码

标准答案:D

知识点解析:在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表

中可能有若干个键,它们称为该表的候选码或候选键。从二维表的所有候选键中选

取一个作为用户使用的键称为主键或主码。

6、检查软件产品是否符合需求定义的过程称为()。

A、确认测试

R、需求测试

C、验证测试

D、路径测试

标准答案:A

知识点解析:确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需

求规格说明中确定的各种需求。

7、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构

成。下列图符名标识的图符不属于数据流图合法图符的是()。

A、控制流

B、加工

C、存储文件

D、源和潭

标准答案:A

知识点解析:数据流图用于抽象描述一个软件的逻辑模型,它由一些特定的图符构

成,包括4个方面,即加工、数据流、存储文件、源和潭。

8、待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增

的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第()个位置。

A、2

B、3

C、4

D、5

标准答案:B

知识点解析:选择排序的基本思想是扫描整个线性表,从中选出最小的元素,将它

交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空。所以第一

趟排序后,将选出最小的元素9放在第一个位置,元素15则被交换放在第三个位

置。

9、对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关

系R中的所有元组,这样的集合运算称为()。

A、并运算

B、交运算

C、差运算

D、除运算

标准答案:A

知识点解析:关系的并运算是指,由结构相同的两个关系合并,形成一个新的关

系,其中包含两个关系中的所有元组。

10、下列选项中,不属于数据管理员(DBA)职责的是()。

A、数据库维护

B、数据库设计

C、改善系统性能,提高系统效率

D、数据类型转换

标准答案:D

知识点解析:数据库管理员(DataBaseAdminiswator,DBA)是指对数据库的规划、

设计、维护、监视等的人员,其主要工作如下:数据库设计。DBA的主要任务之

一是数据库设计,具体地说是进行数据模式的设计。数据库维护。DBA必须对数

据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与

维护。改善系统性能,提高系统效率。DBA必须随时监视数据库的运行状态,不

断调整内部结构,使系统保持最佳状态与效率。

11、C语言规定,在一个c程序中,main。函数的位置()。

A、必须在系统调用的库函数之后

B、必须在程序的开始

C、必须在程序的最后

A、2.500000

B、2.750000

C、3.5

D、0

标准答案:A

知识点解析:此题考查的是变量的类型转换。表达式中(int)(x+y)把x+y=(7.2)的值

强制转化成整型即得到7,那么a%3*(im)(x+y)%2的值为整型常量1,所以a%

3*(int)(x+y)%2/4的值为0;因为变量x是浮点型变量,所以表达式x+a%

3*(int)(x+y)%2/4的结果也是浮点型,得到2.500000。

16、若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是()。

A、++i;

B、nl=(n2/(n3=2));

C、k=i=j;

D、a=b+c=2;

标准答案:D

知识点解析:本题考查赋值表达式。赋值表达式的一般形式是:变量名=表达式。

C语言规定,不能给变量表达式赋值。

17、下列关于逻辑运算符两侧运算对象的叙述中正确的是()。

A、只能是整数。或1

B、只能是整数。或非0整数

C、可以是结构体类型的数据

D、可以是任意合法的表达式

标准答案:D

知识点解析:逻辑运算符两侧的运算对象可以是任意合法的表达式。逻辑表达式的

运算结果或者为1(“真”),或者为0(“假

18、若有说明inta[3][4];则a数组元素的非法引用是()。

A、a[0][2*l]

B、a[l][3]

C、a[4—2][0]

D、a[0][4]

标准答案:D

知识点解析:此题考查的是数组元素的引用。对于已定义的数组a[MHN],数组元

素的正确引用必须满足行下标小于M,列下标小于N且为正整数。此题中,选项

D)中列下标值出现溢出。

19、下列说法不正确的是()。

Asint*ptr;〃指针指向整形数据

B、char*ptr;〃指针的类型是字符型指针

C.int**ptr;〃指针的类型是双重指针

D.int(*ptr)|3];〃是一个指针数组,数组共有三个元素,而三个元素是ini型指针

标准答案:D

知识点解析:int(*ptr)[3]是一个数组指针,指针指向一个有3个int型变量的数组。

20、有以下程序#includevoidmain。{chars口二{"01aXy");inti,n=0;for(i=0;

s[i]!=0;i++)if(s[i]<=,a,&&s[i]>=,z,)n++;printf(M%d\a",n);}程序运行后的输出

结果是()o

A、0

B、2

C>3

D、5

标准答案:A

知识点解析:这段程序的功能求出字符串s中字符的.ASCH码小于小写字符a并

且大于小写字符z的字符的个数。因为小写字符z的ASCH码大于小写字符a的

ASCH码,所以满足a的ASCH码并且大于z的的ASCII码的字符是不存在的,所

以输出0«

21、有以下程序:#includemain(){inta[]={1,2,3,4),y,*P=&a[3];-p;

y=*p:printf("y=%d\n",y);)程序的运行结果是()▽

A、y=0

B、y=l

C、y=2

D、y=3

标准答案:D

知识点解析:程序首先定义了一个一维数组和指针,接着将数组第4个元素的地址

赋给*p,进行一p使指针p指向了数组的第3个元素;通过y二*p,将数组第3个

元素的值3赋给了v,所以选项D)正确。

22、下面的for语句的循环次数为()。for(x=l,y=0;(y!=19)&&(x<6);x++);

A、是无限循环

B、循环次数不定

C、最多执行6次

D、最多执行5次

标准答案:D

知识点解析•:本题考查for循环。只考虑x的取值变化,x从I取到5,可以循环5

次,但是并不知道v是如何变化的,有可能出现y=19提前跳出循环的情况,所以

是最多执行了5次。

23、下列程序的输出结果是()。#includevoidmain(){inta=0,b=l,c=2;

if(++a>0||++b>0)++C;printf(n%d,%d,%(1",a,b,c);)

A、0,1,2

B、1,2,3

C、1,1,3

D、1,2,2

标准答案:C

知识点解析:本题考查if语句。先判断if语句的条件是否成立,因为++a=l>0,所

以条件成立,又因为是进行逻辑或运算,在已知其中一个运算对象为真的情况下,

不必判断另外一个运算对象的真假,即不进行++b操作,就可以直接得出整个表达

式的值为逻辑1,执行下面的++C。

24>有以下程序:#includemain(){intc;while((c=getcharO)!=,\n,){switch(c-,3,)

{case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:

putchar(c+3);case4:putchar(c+3);break;}}printf("\n");}从第一列开始输入

数据(代表一个回车符):3845,则程序输出结果为])。

A、77889

B、77868

C、776810

D、7.78866e+007

标准答案:A

知识点解析:题中while循环的条件是:当从键盘读入的字符不是时,执行

while循环。输入第一,个字符3时:执行case0,H么也不输出:case1,输出7;

case2,输出7;遇到break语句,跳出switch语句。输入第二个字符8时:c

一,3・5,不执行任何语句。输入第三个字符4时:c」3=l,执行easel输出8;

case2,输出8;遇到break语句,跳出switch语句。输入第四个字符5时:

c-'3'=2,执行case2,输出9;遇到break语句,跳出switch语句。

25、C语言规定,函数返回值的类型是()。

A、由调用该函数时的主调函数类型所决定

B、由relum语句中的表达式类型所决定

C、由调用该函数时系统临时决定

D、由定义该函数时所指定的数值类型决定

标准答案:D

知识点解析:本题考查函数调用时的数值类型。函数调用时,函数返回值的类型既

不由主调函数类型所决定,也不由retum语句中的表达式类型所决定,更不是由系

统临时决定,而是由定义该函数时所指定的数值类型所决定。

26、执行下列程序时输入456〈空格>789〈空格>123(回车〉,输出结果是()。

#includemain(){charm|80|;intc.i:scanf("%c",&c);scanff&i):

scanf("%sH,&m);printf(H%c,%d,%s\n”,c,i,m):}

A、456,789,123

B、4,789,123

C、4,56,789,123

D、4,56,789

标准答案:D

知识点解析:scanf函数中的“%c”表示通过键盘只读入一个字符型的数据,表

示将该数据赋值给c,所以c=4。另外,以“%d”格式读入数据时,只有遇到空格或

者换行等间隔时符才停止读入,所以i=56,m=7890

27、已知下列函数定义:fun(int*b,intc,intd){intk;for(k=0;k

A、fun(*a,6,14);

fun(&a,6,8);

C、fun(a,8,4):

D^fun((int)a,8,6);

标准答案:C

知识点解析:本题考查函数调用时的参数传递。fun函数的调用形式为

fun(int*b,intc,intd)o调用数组时,用数组名表示一个指向数组的第一个元素的指

针,因此调用时的形式为fun(a,8,4)。

28、设Y为整型变盘,A=I,A的地址为EF01;B=2,B的地址为EF02;执行语

句8=&人;Y=&B:后Y的值()。

A、1

B、2

C、EF01

D、EF02

标准答案:D

知识点解析:&是取地址运算符,Y=&B是将B的地址赋给Y,因此Y值为

EFOIo

29有以下程序:#includeiniflintt[],intn);main(){inta[41={1,2,3,4),s;

s=f(a,2):printf("%d\n,,s):)intflintt[],intn)|if((n>O)&&(n<5))return

t[n+l]+fit,n—1);elsereturn0;}程序运行后的输出结果是()。

A、4

B、7

C、10

D、6

标准答案:B

知识点解析:本题主要考查的是函数的递归调用,子函数f是一个递归函数,所以

主函数中执行f(a,2)时,其执行过程是a[3]+f(a,1)=a[3]+a[2]+f(a,0)=7。

30、以下语句定义正确的是()。

A、inta[l][4]={l,2,3,4,5};

B、floata[3][]={{l,2},{2,3},{3,1)(:

C>Ionga[2][3]={{l),|1,2},{1,2,3},{0,0}};

D、doublea[][3]={8};

标准答案:D

知识点解析:本题考查如何对二维数组的元素赋值。选项A),数组第二维的大小

是4,但是却赋值了5个元素,数组溢出;选项B),C语言规定,对于二维数组,

只可以省略第一个方括号中的常量表达式,而不能省略第二个方括号中的常量表达

式;选项C),数组第一维的大小是2,但是赋值超过了2;选项D),在对二维数

组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0。

31、下列一维数组说明rfl,不正确的是()。

A、intN;oscanf("%d",&N);

B、floata][]={l,6,6,0,2);intb[N];

C>#defineS10mta^sj;

D、#defineS10inta[S+5];

标准答案:A

知识点解析:本题考查一维数组的赋值。一维数组的一般定义格式为:类掣说明符

数组名[常量表达式]。其中,“口”中的内容可以是整型常量,也可以是整型表达

式。选项A)中的N是一个变量,所以错误。

32、下面函数的功能是()。sss(s,t)char*s,*t:

{while((*s)&&(*t)&&(*t+4-==*s++));return(*s-*t);}

A、将字符串S复制到字符串t中

B、比较两个字符串的大小

C、求字符串的长度

D、将字符串s接续到字符串t中

标准答案:B

知识点解析:*s—*t的输出实际是比较两个字符的ASCH码值,比较两个字符串

的大小。

33、若已定义:inta[]={0,1,2,3,4,5,6,7,8,9),*p=a,i;其中更已

则时a数组元素不正确的引用是()。

A^a[p一a]

B、*(&a[i])

C、p[i]

D、a[10]

标准答案:D

知识点解析:此题考查对一维数组的引用。对于己定义的数组a[M],数组元素的

正确引用必须满足下标小于M且为正整数。选项D)中下标值出现溢出。

34、以下选项中可用作C程序合法实数的是()。

A、.leO

B、3.OeO.2

C、E9

D、9.12E

标准答案:A

知识点解析:C程序的合法实数有两种表示形式,一种是小数形式,另一种是指数

形式,对于用指数形式表示的实数来说,需要注意的是字母e或E之前必须要有数

字,且字母e或E后面的指数必须为整数,所以选项A)为正确答案。

35、以下叙述中不正确的是()。

A、预处理命令行都必须以W}号开始,结尾不加分号

B、在程序中凡是以#号开始的语句行都是预处理命令行

C、C程序在执行过程中对预处理命令进行处理

D、预处理命令可以放在程序中的任何位置

标准答案:C

知识点解析:本题考查预处理命令的特点。编译预处理命令的特点有:①为了区

分一般的语句,预处理命令行都必须以#开始,结尾不加分号:②预处理命令可以

放在程序中的任意位置;③在程序中凡是以#开始的语句都是预处理命令行。

36、以下程序的输出结果是()。#include#defineF(x)2.84+x#definew(y)printf("%

d-L(int)(y))#defineP(y)w(y)main(){intx=2:P(F(5)*x);}

A、12

B、13

C、14

D、16

标准答案:A

知识点解析:本题考查带参数的宏定义及相关运算。

P(F(5)*x)=P(2.84+5*2)=P(12.84),调用w(12.84),输出(int)(12.84)=12。

37设有下面的定义:Stnuctst{inta;floatb:}d;int*p;要使P指向结构变

量d中的a成员,正确的赋值语句是()。

A、*p=d.a;

B、p=&a;

C>p=d.a;

D、p=&d.a;

标准答案:D

知识点解析:小题丰要考查按结构数组元素方式引用结构成员。结构体变量的成

员引用方法有3种:①结构体变量名,成员名;②指针变量名,成员名;③产指

针变量名),成员名。因为p是指针变量,所以应该将地址值赋给p。

38、交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。

A、&

B、A

C、||

D、〜

标准答案:B

知识点解析:按逻辑化运算的特定作用主要有3点:①用按位与运算将特定位清0

或保留特定位;②用按位或运算将特定的位置设置为1;③用按位异或运算将某

个变量的特定位翻转或交换两个变量的值。

39、如果需要打开一个已经存在的非牢文件“FILE”并进行修改,正确的语句是()。

A、fp=fopen("FILEM,T);

B、fp=fopen("HLE",na+");

C、fp=fopen(',FILE","w+");

D、fp=fopen("FILEM,,+”);

标准答案:D

知识点解析:本题考查打开文件函数fopen(),打开文件函数fopen()的调用形式

为:fp=fopen(文件名,文件使用方式)。”文件使用方式”说叫:方式“r”为以输入方

式打开一个文本文件;方式“a+”为以读/写方式打开一个文本文件,保留文件中原

有的数据;方式“w+”为以读写方式建立一个新的文本文件;方式“什”为以读/写方

式打开一个文本文件。

二、程序填空题(本题共1题,每题1.0分,共1分。)

40、给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文

件myfilc4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示

在屏幕上。文件的读写分别由自定义函数ReadTexl和WriteText实现。请在程序

的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源

程序存放在考生文件夹下的BLANKI.C中。不得增行或删行,也不得更改程序

的结构!#include#include#includevoidWrJ_teText(FTLE*);void

Readq?ext(FTLE*);raain()(FTLE*fp;if((fp=fopen("myfile4.txt",nw"))

==NULL){printf("openfail!!\n");exit(O);)WriteText(fp);fclose(fp);

if((fp=fopen("myfile4.txt","r"))==NULL){printf("openfail!!\n");exit(O);}

ReadText(fp);fclose(fp):}/**********found**********/void

WriteText(FILE1){charstr|81];printf("\nEnterstringwith-1toend:

\n");gets(str);while(strcrnp(str,"-1H)!=0){/**********found**********/

fputs(2,fw)jfputs("\n",fw):gets(str);))voidReadText(FTLE*fr)

{charstr[81];printff'\nReadfileandoutputtoScEeen:\nH);fgets(str,81,fr);

while(!leof(fr)){/**********fOund**********/prinlf("%s",3);

fgets(str,81,fr);}}

标准答案:(1)*fw(2)str(3)str

知识点解析:第一空:此处是补充函数参数名,参数类型已知是FILE文件指针,

fputs(”\n”,fW)是将字符“\11”写入文件,可知fW是文件指针名,因此第一空处应

该是voidWriteText(FlLE*fw)0第二空:while(strcmp(str,"-l")!=0)循环的结束标志

是str字符串等于时循环退出,如果sir不等于执行循环体内容:用fputs

函数将str字符串写入文件。fputs函数的调用形式是:fputs(s,fp),其中s是居向

字符串的指针或字符半数组名,fp是指向将要被写入的文件的文件指针,因此第

二处应该是fpuls(str,fw)。第三空:while(!feof(fr))循环的作用是不断读取文件直

到到达文件尾,每次最多读81个,将读到的数据放在str字符串里,并用primf输

出到屏幕,因此第三处应该是printf("%s”,str)。

三、程序修改题(本题共I题,每题7.0分,共I分°)

41、给定程序MODI1.C中函数fun的功能是:将字符串中的字符按逆序输出,

但不改变字符串中的内容。例如,若字符串为abed,则应输出:debao请改正程

序中的错误,使它能计算出正确的结果v注意:不要改动main函数,不得增行或

删行,也不得更改程序的结构!#includc/************fOund************/funfehar

a){if(*a){fun(a+l);/x***********氏)und*******x****/printf("%c"*a).}}

main(){chars[10]=Habcd";printf("处理前字符Ig=%s\n处理后字符串二",s);

fun(s);printf("\n");)

标准答案:(1)voidfun(char*a)(2)prinlf("%c'\*a):

知识点解析:(1)主函数中“fun(、s):”语句中的s是数组名,所以在fun函数中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论