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

下载本文档

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

文档简介

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

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

1、一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入

栈,然后再依次出栈,则元素出栈的顺序是()。

A、12345ABCDE

B、EDCBA54321

C、ABCDE12345

D、54321EDCBA

标准答案:B

知识点解析:栈是按照“先进后出”的原则组织数据的,入栈的顺序为

12345ABCDE,则出栈的顺序应为其逆序,即EDCBA5432L

2、下列关于类、对象、属性和方法的叙述中,错误的是()。

A、类是对一类具有相同的属性和方法对象的描述

B、属性用于描述对象的状态

C、方法用于表示对象的行为

D、基于同一个类产生的两个对象不可以分别设置自己的属性值

标准答案:

知识之解析D:类是对一类具有相同的属性和方法对象的描述,属性用于描述对象的

状态,方法用于表示对象的行为,基于同一个类产生的两个对象是可以分别设置自

己的属性值。

3、深度为5的完全二叉树的结点数不可能是()。

A、15

B、16

C、17

D、18

标准答案:A

知识点解析:对于满二叉树,叶子结点的数目等于2nLn为深度,这里就是

24=16O

4、有以下程序:#include<stdio.h>voidfun(inta[],intn){inti,t;

for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-l-i]=t;))main()

{intk[10]={1,2,3,4,5,6,7,8,9,10},i;fun(k,5);for(i=2;i<8;i+

+)printf("%d”,k[i]);printfC'Xn");}程序的运行结果是()。

A、321678

B、876543

C、1098765

D、345678

标准答案:A

知识点解析:本题中的函数fun()的功能是将数组k中前5个元素倒序,所以返回

后数组k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印输出k[2]到k[7]元素的值,

即321678,所以选择A。

5、下列叙述中错误的是()。

A、在C语言中,对二进制文件的访问速度比文本文件快

B、在C语言中,随机文件以二进制代码形式存储数据

C、语句FILEfp:定义了一个名为fp的文件指针

D、C语言中的文本文件以ASCII码形式存储数据

标准答案:c

知识点。析:在C语言中,文件指针实际上是指向一个结构体类型的指针,一般

称这个结构体类型名为FILE,可以用此类型名来定义文件指制。定义文件类型指

针变量的一般形式为:FILE*指针变量名;选项C)中少了“*”,所以选项C)错

误。

6、对长度为n的线性表作快速排序,在最坏情况下,比较次数为()。

A、n

B、n-1

C、n(n-l)

D、n(n-l)/2

标准答案:D

知识点解析:快速排序最坏情况就是每次选的基准数都和其他数做过比较,共需比

较(n-l)+(n-2)+…+l=n(n・l)/2,故选D。

7、下列数据结构中,能用二分法进行查找的是()。

A、无序线性表

B、线性链表

C、二叉链表

D、顺序存储的有序表

标准答案:D

知识点解析:二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排

列。

8、有以下程序:#include<stdio.h>main(){intb[3][3]={0,1,2,0,I,2,0,

1,2},i,j,t=l;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];

printf("%d\n",t);}程序运行后的输出结果是(),

A、3

B、4

C、1

D、9

标准答案:B

知识点解析:每次内循环只循环一次就结束,第一次外循环时

t=t+b[0][b[0][0]]=1+b[0][0]=1+0=1;第二次外循环时

t=t+b[l][b[l][l]]=l+b[l][l]=l+l=2;第三次外循环时

t=t+h[2][b[2][2]]=2+b[2][2]=2+2=4o

9、有以下程序:#includeintfun(intX,inty){if(x==y)retum(x);elseretum((x+y)/

2):)main(){inta=l,b=2,c=3;printf(u%d\fun(2*a,fun(b,c)));}程序

运行后的输出结果是()c

A、2

B、3

C、4

D、5

标准答案:A

知识点解析:fun(b,c)即fun(2,3),21=3,所以返回(2+3)/2=2;皿】(2*@,2)即

fun(2,2),2=2,所以返回2。

10^下面程序的输出结果是()。Typedefunion{longx[l];inty[4];char

z[10];}M;Mt:main(){printf(,,%d\n",sizcoflt));)

A、32

R、26

C、IO

D、4

标准答案:C

知识点解析:“联合体”所占用的内存空间为最长的成员所占用的空间。题中联合体

的z[10]成员是联合体中占空间最长的成员。

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

A、函数的形参类型不能是指针类型

B、函数的类型不能是指针类型

C、设有指针变量为double*p,则p+1将指针p移动8个字节

D、基类型不同的指针变量可以相互混用

标准答案:C

知识点解析:C项正确,一般情况下,double类型的变量长度为8个字节,对指针

进行加、减运算时,数字“「'指1个存储单元长度。A项错误,函数的形参可以是

数值类型,也可以是指针类型;B项错误,C语言中有指向函数的指针,称为函数

指针;D项错误,int类型的指针只能指向int,不能指向double,基类型不同的指

针变量不能混用。

12、有以卜程序段intj;floaty;charname[50];scanf("%2d%f%s",&j,&y,

name);当执行上述程序段,从键盘上输入555667777abc后,y的值为()。

A、55566.0

B、566.0

C、7777.0

D、566777.0

标准答案:B

知识点解析:因为在输入格式控制符中指定变量i的输入格式控制符为“%2d”,即

变量j所占的宽度为2,所以变量j只接收输入数据的前两位,从第3位开始直到

空格之间的输入整数都会被保存到变量y中,因为y为浮点型数据,所以输出结果

为选项B。

13、若有以下定义:intx[10],*pt=x;则对x数组元素的正确引用是()。

A、pt+3

B、*&x[10]

C、*(pt+10)

D、*(x+3)

标准答案:D

知识点解析:没有A选项的引用形式.*与&放在一起作用抵消,所以B选项借

误,最大只能引用到x[9|、*(pl+i)表示引用指针pl所指元素后的第i个元素,所以

C选项错误,最大只能为*(pt+9)。因此D选项正确

14、以下选项中不属于C语言程序运算符的是()。

A、sizeof

B、<>

C、()

D、&&

标准答案:B

知识点解析:c语言中的不等于符号用"!=”表示,没有符号所以选择儿

15、有以下程序:#include<stdio.h>main(){intx;for(x=3;x<6;x++)

printf((x%2)?("*%dM):C'#%d,'),x);printff\n");}程序的输出结果是()°

A、*3#4*5

B、#3*4#5

C、*3M#5

D、*3#4#5

标准答案:A

知识点解析:条件运算符组成条件表达式的一般形式为:表达式1?表达式2:表达

式3。其求值规则为:表达式1值为真,则以表达式2的值作为条件表达式的值,

否则以表达式3的值作为整个条件表达式的值。本题中语句printf((x%2)?("*%

d"):(“#%d”,x);含义为变量x对2求余,如果结果为真,则按照“*%d”出,否

则按照“#%d”出。故A选项正确。

16、当用"defineF37.5f'定义后,下列叙述正确的是()。

A、F是float型数

B、F是char型数

C、卜无类型

D、F是字符串

标准答案:D

知识点解析:字符替换定义格式为:#definc标识符(形参表)形参表达式。题中F是

代表形参表达式的标识符(字符串)。

17^下面程序的输出结果是()。typedefunion{longx[1];inty[4];char

z[10];}M;Mt;main(){printf(H%d\n",sizcof(t));}

A、32

B、26

C、10

D、4

标准答案:C

知识点解析:“联合体''所占用的内存空间为最长的成员所占用的空间。题中联合体

的z[10|成员是联合体中占空间最长的成员。

18、函数rewind(fp)的作用是()。

A、使fp指定的文件的位置指针重新定位到文件的开始位置

B、将l、p指定的文件的位置指针指向文件中所要求的特定位置

C、使fp指定的文件的位置指针向文件的末尾

D、使fp指定的文件的位置指针自动移至下一个字符位置

标准答案:A

知识点解析:位置指针重返文件头函数rewind。的调用形式为:rewind(fp)。其中,

“fp”是指向文件的文件型指针。rcwind(fp)的功能是:使fp指定的文件的位置指针

重新定位到文件的开始位置。

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

A、++i:

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

C>k=i=j:

D、a=b+c=2;

标准答案:D

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

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

20、设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程

序段是()。

A、n=0;while((ch:getchar())!="\n")n++;

B、n=0:while(getchar()!="\n")n++;

C^for(n=0;gelchar()!=”\n”;n++);

D、13:O;for(ch=getchar()!=”\n";n++):

标准答案:D-

知识点解析:要统计一行中输入字符个数(不包含回车符),首先定义一个用作统计

的变量n,赋初值为0;一行字符是否结束的判断条件应为geichar。!=”\n”;D

项中for循环表达式格式错误,应在ch前添加“;”号。

21、下列叙述中错误的是()。

A、在C语言中,对二进制文件的访问速度比文本文件快

B、在C语言中,随机文件以二进制代码形式存储数据

C、语句FILEfp;定义了一个名为fp的文件指针

D、C语言中的文本文件以ASCH码形式存储数据

标准答案:C

知识点解析:在C语言中,文件指针实际上是指向一个结构体类型的指针,一般

称这个结构体类型名为FILE,可以用此类型名来定义文件指针。定义文件类型指

针变量的一般形式为:FILE*指针变量名;选项C)中少了“叱,所以选项C)错误。

22、下列叙述中正确的是()。

A、循环队列是队列的一种链式存储结构

B、循环队列是队列的•种顺序存储结构

C、循环队列是非线性结构

D、循环队列是一种逻辑结构

标准答案:B

知识点解析:在实际应用中,队列的顺序存储结构一般采用循环队列的形式。

23、有以下程序#inckidemain(){unsignedchara=8.c;c=a»3;printf(H%d\n",c);}

程序运行后的输出结果是()。

A、I

B、16

C、32

D、0

标准答案:A

知识点解析:暂无解析

24、有以下程序//includemain(){charcl,c2;cl='A'+'8'・'4';c2='A'+'8'・'5';

printf("%c,%d\n",cl,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是

()0

A、E,68

B、D,69

C>E,D

D、输出无定值

标准答案:A

知识点解析:暂无解析

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

A、调用函数时,函数名必须与被调用的函数名完全一致

B、函数调用时,不必区分函数名称的大小写

C、函数名允许用数字开头

D、在函数体中只能出现一次return语句

标准答案:A

知识点解析:暂无解析

26、以下叙述中正确的是()3

A、实用的C语言源程序总是由一个或多个函数组成

B、用户自己定义的函数只能调用库函数

C、不同函数的形式参数不能使用相同名称的标识符

D、在C语言的函数内部,可以定义局部嵌套函数

标准答案:A

知识点解析:一个C程序可以有一个或多个程序文件,所以也可以有一个或多个

函数,选项A)正确;除了main函数不能被其他函数调用之外,用户自定义函数

可以调用其他任意函数,选项B)错误;函数是一个独立的模块,不同函数之间的

定义相互没有影响,所以标识符可以相同,选项C)错误:函数体内部只可以调用

但是不可以定义其他函数,选项D)错误;答案选A)。

27、设有定义语句:int(*f)(int);则以下叙述正确的是()。

A、f是基类型为int的指针变量

B、f是指向函数的指针变量,该函数具有一个int类型的形参

C、f是指向int类型一维数组的指针变量

D、f是函数名,该函数的返回值是基类型为血类型的地址

标准答案:B

知识点解析:inl(*D(inl);为指向函数的指针变量的定义方法,其中f为指向函数

的指针变量,第一个皿为函数返回值类型,第二个int为函数的形参类型。因此B

选项正确。

28、计算机软件设计过程中,符合划分模块的准则的选项是()。

A、低内聚低耦合

B、高内聚高耦合

C、低内聚高耦合

D、高内聚低耦合

标准答案:D

知识点解析:划分模块的目的一般是希望设计的模块能够实现较高的内聚力和较低

的耦合性。

29、下列叙述中正确的是()。

A、顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

B、顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

C、顺序存储结构能存储有序表,链式存储结构不能存储有序表

D、链式存储结构比顺序存储结构节省存储空间

标准答案:A

知识点解析:链式存储结构既可以针对线性结构也可以针对非线性结构,所以B)

与C)错误。链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存

储空间,所以D)错误。

30、下列说法不正确的是

A,int*fun();一fun是一个返回int指针的函数

B、int(*fun)();—fun是一个返回int指针的函数

C、int(*carray[5])0;—array是一个有5个元素的数组,每一个元素都是一个函数

指针,指向一个返回im的函数。

D>int(*fun(int))(int);—fun是带有一个int参数的函数,返回值是一个函数指针,

这个指针指向带有一个ini参数并返回血的函数。

标准答案:B

知识点解析:该函数中fun是一个函数指针。指向一个返回int的函数。

31、在数据库管理系统堤供的数据语言中,负责数据模式定义的是

A、数据定义语言

B、数据管理语言

C、数据操纵语言

D、数据控制语言

标准答案:A

知识点解析:数据库管理系统提供了相应的数据语言,它们是:数据定义语言,该

语言负责数据的模式定义与数据的物理存取构建;数据操纵语言,该语言负责数据

的操纵,包括查询与增、删、改等操作;数据控制语言,该语言负责数据完整性、

安全性的定义与检查以及并发控制、故障恢复等功能。A选项正确。

32、有以下程序#include<stdio.h>#include<string.h>main(){charw[20],

a[5][10]={Mabcder,•'ghijkl","mnopq","rstuv","wxyz?,};inti;for(i=0;i<5;i++)

w[i]=a[i][strlen(a[i])/2];w[5]='(T;puts(w);}程序的运行结果是

A、djoty

B、agmrw

C>flqv

D、cimsx

标准答案:A

知识点解析:puts()函数将数组中存放的字符串输出到输出设备中,用“\n”取代字符

串结束符“\0"。strlen()函数是求字符串的实际长度〔不包含结束标志),并且作为

函数值返回。程序中for循环将第i个字符串的最中间的一个字符(字符串长度为

奇数)或者最中间下一个字符(字符串长度为偶数)放入w数组下标值为i的位

置。最后输出字符串w为djoty,A选项正确。

33、有三个关系R、S和T如下:

RST

ABCABC

a12d32EJ

b21c31□JLO

c31f47

e45

d3

则由关系R和S得到关

系T的操作是

A、交

B、差

C、并

D、选择

标准答案:A

知识点解析:用于查询的3个操作无法用传统的集合运算表示,引入的运算为投影

运算、选择运算、笛卡尔积。常用的扩充运算有交、除、连接及自然连接等。选

择,从关系中找出满足给定条件的元组的操作称为选择,题目中无给定条件,故D

选项错误。差:R-S结具是属于R但不属于S的记录组成的集合,T中元组“c32”

同时属于R和S,B选项错误。并:RUS是将S中的记录追加到R后面,T中元组

少于R,故C选项错误。交:RAS结果是既属于R又属于S的记录组成的集合,

与题目中结果相符,故A选项正确。

34、有如下程序#include<stdio.h>intconvert(int*data){return(*data)++;}

main(){intdata=56;convert(&data);printf(n%dj',data);data=convert(&data);

printf("%d,\n'\data):)程序运行后的输出结果是

A、56,57,

B、57,58,

C、57,57,

D、55,57,

标准答案:C

知识点解析:convert函数每次都定义了一个指针*data,再将指针变量*dala对应地

址的值进行加一处理,再返回加1前的值作为结果,因此答案为C选项。

35、以下选项中,合法的C语言常量是

A、21.84

B、'CPP'

C、”\1.0

D、2MB

标准答案:A

知识点解析:21.84是典型的浮点型数据,故A选项正确;字符常量是单引号括起

来的一个字符,字符串常量是双引号括起来的字符序列,B、C选项错误;C语言

常量不能直接用未加引号的字母、数字组合,D选项错误。

36、以下叙述错误的是

A、未经赋值的全局变量值不确定

B、未经赋值的auto变量值不确定

C^未经赋值的register变量值不确定

D、未经赋值的静态局部变量值为0

标准答案:A

知识点解析:C语言中,系统将未经赋初值的全局变量默认为0,答案为A选项。

37、以下选项中,合法的实数是

A、1.5E2

B、E1.1

C、2.10E

D、1.9E1.4

标准答案:A

知识点解析:E表示”10的暴次”,后面必须接整数,排除B,C,D选项,答案为A

选项。

38、以下程序段中的变量已正确定义:for(i=0;i<4;i++,i++)

for(k=I;k<3;k+-);printf(M*");程序段的输出结果是()。

A、**

B、****

C、*

D、********

标准答案:C

知识点解析:由于内层循环for(k=l;k<3;k++)后面直接跟了空语句“;”所

以在循环内部什么操作也不做,跳出外层循环后执行打印语句,所以打印了一个

“*”,选择C。

39、有以卜程序#include<stdio.h>main(){intx=10,y=ll,z=12;if(y<z)x=y;

y=z;z=x;printf("x=%dy=%dz=%d\n",x,y,z);)程序运行后的输出结果是

A、x=l1y=12z=l1

B、x=10y=10z=10

C、x=lly=llz=10

D、x=10y=10z=12

标准答案:A

知识点解析:if条件为真,执行x二y;此时x=ll;y=ll;z=12再执行y=z;z=x;此时

y=12;z=ll;最后x=ll;y=12;z=l1;故答案为A选演。

40、以下与数学表达式"0<x<5且x#2”不等价的C语言逻辑表达式是

A、(0<x<5)&&(x!=2)

B、0<x&&x<5&&x!=2

C、x>0&&x<5&&x!=2

D、(x>0&&x<2)||(x>2&&x<5)

标准答案:A

知识点解析:0<x<5在C语言里不能这样直接表达,需要分步骤来实现,一般使

用x>0&&xV5来描述。在C语言0VxV5属于一个逻辑运算表达式,可以理解

为(0<x)<5,囚此选项A错误。故答案为A选预

二、程序填空题(本题共I题,每题L0分,共[分0)

41、给定程序中,函数fun的功能是:判断形参s所指字符串是否是“回

文”(Palindrome),若是,函数返回值为1;不是,函数返回值为0。“回文''是正读

和反读都一样的字符串(不区分大小写字母)。例如,LEVEL和Level是“回文”,而

LEVLEV不是。请在程序的下划线处填入正确的内容并把下划线删除,使程序得

出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行

或删行,也不得更改程序的结构!1#includeVstdio.h>2#include<string.h>3

#include<ctype.h>4intfun(char*s)5{char*1p,*rp;6/

**********found**********/7lp=_1_;8rp=s+strlen(s)-1;9

while((toupper(*1p)==toupper(*rp))&&(1p<rp))(10/**********found**********

/1]1p++;rp_2__;(12/**********found**********/13{if(lpVrp)

_3_;14elsereturn1;15)16main()17{chars[81];18printfC^Entera

string:'');scantr%s'',s);19if(fun(s))printf("\n\"%s\"isaPalindrome.\

n\n'',s);20elseprir)tf(''\n\"%s\"isn'taPalindrome.\n\n'',s);21}

标准答案:⑴s(2)・・(3)remrn0

知识点解析:第一空:“rp=s+strlen(s)・l;”可知rp指向最后一个元素,因此Ip是

指向第一个元素,因此第一空应为飞”。第二空:“lp++;rp_2_;”lp往后移

动,rp应该往前移动,故第二空处应为“-"。第三空:“if(lp<rp)”成立说明Ip和

rp比较没有比较到字符串的最中间的字符,也就是说s字符串不是回文,因此第三

空处的应为“return0”。

三、程序修改题(本题共1题,每题1.0分,共7分0)

42、下列给定程序中,函数fun的功能是:将p所指字符串中的所有字符复制到b

中,要求每复制4个字符之后插入一个空格。例如,若给a输入字符串:

ABCDEFGHIJK,调用函数后,字符数组b中的内容为:ABCDEFGHIJK。请改

正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C

中,不得增行或删行,也不得更改程序的结构。#includevoidfun(char*P,cha产b)

{inti,k=0;while(*p)(i=l;while(i<=4&&*P){/**********found**********/

b[k]—p;k++;p++;i+4-;}if(*P){/**********found**********/

b[k++]='''';}}b[k]='\O';}main(){chara[80],b[80];printf(,'Entera

string:'');gets(a);print^^Theoriginalstring:'');puts(a);fun(a,b);priniR''

\nThestringafterinsertspace:puts(b);printff,\n'n"):}

标准答案:1.b[k]=*p;2.b[k]=\k++;

知识点解析:1.题目中p是指针型变量作函数参数,因此给b[k]赋值时出现错

误。2.题目要求赋值4个字符后加一个空格,所以应该是先给b[k]赋值空格,然

后变量k再加1。C语言中为了表示指针变量和它所指向的变量之间的关系,在程

序中用“*”,表示“指向”,例如,pointer代表指针变量,而*pointer是pointer配指

向的变量。

四、程序设计题(本题共I题,每题1・0分,共1分。)

43、若干名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向曾表

的头结点。请编写函数fun,其功能是:求出学生的平均分,并由函数值返回此平

均成绩。例如,若学生的成绩是:8576698591726487,则平均分应当是:

78.625o注意:部分源程序在文件PROC1.C中。请勿改动主函数main和其他

函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include

#include朴defineN8structslisl{doubles;structslisi*next;}:typedefstructslist

STREC;doublefun(STREC*h){}STREC*creat(double*s){STREC*h,*P,*q;int

i=0;h=P=(STREC*)malloc(sizeof(STREC));p—>s=0;while(i<N)

{q=(STREC*)malloc(sizeof(STREC));q—>s=s[i];i++;p->next=q;p=q;P

—>next=0:returnh;}outlist(STREC*h){STREC*P;p=h—*>next;

printf(''head'');do{printfif''—>%4.If\p->s);p=p_*>next;}while(p!

,,,,

=0);printf(\n\n);)main(){doublesEN]={92,83,72,81,90,85,75,

65},ave;voidNONO();STREC*h;h=creat(s);outlist(h):ave=fun(h);

printf(,,ave=%6.3f\n",ave);NONO();}voidNONO。{/*本函数用于打开文

件,输入数据,调用函数,输出数据,关闭文件。*/FILE*in,东out;inti,j;

doubles[N],ave:STREC*h;in=fbpen(''in.dat",

out=fopen(,,out.dat'‘,''W'');for(i=0;i<10;i++)(for(j=0;j<N;

j++)fseanf(in,"%lf,",&s[j]);h=creat(s);ave=fun(h);fprintf(out,"%

6.31f\ave);}fclose(in);fclose(out);}

标准答案:doublefun(STREC*h){doubleave=0.0;STREC*p=h->next;

while(p!=NULL){ave=ave+p—>s:p=p->next;}returnave/N;}

知识点解析:题目要求求链表中数据域的平均值,应首先使用循环语句遍历链表,

求各节虐数据域中数值的和,再对和求平均分。遍历链表时应定义一个指向节点的

指针P,因为“头节点”中没有数值,所以程序中让p直接指向“头节点”的下一个节

点,使用语句STREC*p=h—>next。

家二级(C语言)机试模拟试卷第2

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

1、算法的有穷性是指

A、算法程序的运行时间是有限的

B、算法程序所处理的数据量是有限的

C、算法程序的长度是有限的

D、算法只能被有限的用户使用

标准答案:A

知识点解析:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可

完成。有穷性是指算法程序的运行时间是有限的。

2、下面说法正确的是

A、一个C程序可以有多个主函数

B、一个C语言的函数中只允许有一对花括号

C、C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内

D、在对C程序进行编译时,可以发现注释行中的拼写错误

标准答案:C

知识点露析♦:本题涉及C语言基本的3个知识点:①C语言规定一个程序只允许

有一个.主函数,一个函数内可以允许有多个花括号;②C程序的注释部分仅仅是

方便程序员阅读,提高程序的可读性和可移植性,它并不参与程序的编译,所以编

译器也就不会发现注释中的错误。

3、假设有语句sizeof(doub1e),则它是()。

A、一个整型表iL式

B、一个双精度浮点型表达式

C、一种函数调用

D、一种函数定义

标准答案:A

知识点解析:sizeof(double)是C语言内部规定的一个计算参数(double)在计算机的

内存中所占用的字节数量的函数,它返回一个整数值。

4、若输入''abcdef'、"abdeP,以下程序的输出结果为()。include<stdio.h>

#include<string.h>main(){intn;chars11201,s2|20],*pl,*p2;scanf(''%

s”,si);scanf(''%s'',s2);pl=sl;p2=s2;n=strcmp(pl,p2);printR''%d\

nLn);)

A、-

B、0

C、,,abcdcf,

D、''abdeF'

标准答案:A

知识点解析:本题考查两个知识点:①字符串比较函数strcmp(sl,s2),若sl>

s2,则返回I;若sl=s2,则返回0;若slVs2,则返回・1。②字符串依次比较的

是它们相同位置上字符的ASCH码值。

5、有以下程序:#include<stdio.h>intb=3;intfun(int*k){b=*k+b;

return(b);}main(){inta,[10]={1,2,3,4,5,6,7,8},i;for(i=2;i<4;

i++)(b=fun(&a[i])+b;printf("%d”,b);)printf("\n"):}程序运行后的输出结果是

()o

A、1214

B、1232

C、1014

D、1020

标准答案:B

知识点解析:i=2时,fun(&a⑵)返回值是b=b+a[l]=3+3=6,b=b+b=6+6=12;i=3

时,fun(&a[3])返回值是b=b+a[3]=12+4=16,b=b+b=16+16=32o

6、软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属

于应用软件的是()。

A、编译程序

B、操作系统

C、教务管理系统

D、汇编程序

标准答案:C

知识点解析:编译软件、操作系统、汇编程序都属于系统软件,只有教务管理系统

才是应用软件。

7、以下选项中,能用作用户标识符的是()。

A、void

B、8_8

C、0

D、unsigned

标准答案:C

知识点解析:标识符是由若干个字符组成的字符序列,用来命名程序的一些实体。

C语言定义标识符应遵循以下六种规则:①标识符由字母、数字或下画线组成;

②第一个字符必须是字母或下画线;③标识符最多由274个字符组成;④在标识

符中严格区分大小写字母;⑥关键字不能作为自定义的标识符在程序中使用。

8、下面不属于黑盒测试方法的是()。

A、边界值分析法

13、基本路径测试

C、等价类划分法

D、错误推测法

标准答案:B

知识点解析:常见的黑盒测试方法有:等价类划分法、边界值分析法、错误推测法

以及因果图等;常见的白盒测试方法有:逻辑覆盖测试和基本路径测试。

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

A、每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存错单

B、一条语句只能定义一个数组

C、数组说明符的一对方括号中只能使用整型常量,而不能使用表达式

D、在引用数组元素时,下标表达式可以使用浮点数

标准答案:A

知识点解析:同类元素的集合称为数组,数组元素在内存中占据连续的存储空间,

答案A)正确。在使用逗号运算符的情况下,一条语句可以定义多个数组,选项

B)错。方括号中可以为整型变量或者常量表达式,选项C)错。数组元素在数组

中的下标为整型常量或者变量构成的整型表达式,不能为浮点数,选项D)错。答

案选A).

10、下列程序的运行结果是()。#includevoidsub(int*s,int*y){staticintm=4;

*y=s[0];m++;}voidmain(){inta[]={1,2,3,4,5),k;intx;printfC'Xn");

for(k=0;k<=4:k++){sub(a»&x);printf("%d,”,x);))

A、1,1,1,1,1,

B、1,2,3,4,5,

C、0,0,0,0,0,

D、4,4,4,4,4,

标准答案:A

知识点解析:本题中su3(int*s,int*y)函数的参数是两个指针型变量,在函数体内

将数组s的第一个元素赋给y。主程序内,首先定义了一维数组并赋初值,然后通

过for循环,5次调用sub(a,&X)函数,每一次调月都是将数组a的第一个元素1

赋给x,并输出。

11、有以下程序:#include<stdio.h>main(){intk=10;printf("%4d,%o,%x

\n%k,k,k);}程序的运行结果是()。(□代表一个空格。)

A、10,12,a

B、口口10,012,a

C、010,12,a

D、nalOt12,a

标准答案:D

知识点解析:%4d表示先输出占4个字符的十进制,10己占2个字符,故先输出

2个空格,然后输出10;%。表示输出八进制,所以输出10的八进制为12;%x

表示输出十六进制,即a。

12、有以下程序:#includeintfun(int*k){intb=O:b=*k+b;return(b);}main()

{inta[10]={l,2,3,4,5,6,7,8},i;for(i=2;i<4;i++){pnntff'%dM,

fun(&a|i]));)printf("\n");)程序运行后的输出垢果是()。

A、1012

B、810

C、34

D、1028

标准答案:C

知识点解析:b是局部变量,因此当i=2时,fun的返回值值为3,i=3时fun返回

值为4

13、有以下程序:#includemain(){inta=l,b=0;prinff("%d,",b=a+b);

prinff("%d\n",a=2*b);}程序运行后的输出结果是()。

A、1,2

B、I,0

C、3,2

D、0.0

标准答案:A

知识点解析:首先打印6=@+11=1+0=1的值1,此时己给b赋值为1。然后打印

a=2*b=2*l=2的值2。所以结果是1.2。

14、下列各选项中,不属于序言性注释的是()。

A、程序标题

B、程序设计者

C、主要算法

D、数据状态

标准答案:D

知识点解析:注释一般为序言性注释和功能性注释。序言性注释常位于程序开头部

分,它包括程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简

历、程序设计者、复审者、复审日期及修改日期等。功能性注释一般嵌在源程序体

之中,用于描述其后的语句或程序的主要功能。

15、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()。

A、软件矛盾

B、软件危机

C、软件藕合

D、软件产生

标准答案:B

知识点解析:随着计算机软件规模的扩大,软件本身的复杂性不断增加,研制周期

显著变长,正确性难以保证,软件开发费用上涨,生产效率急剧下降,从而出现了

入们难以控制软件发展的局面,即所谓的“软件危机”。

16、有以卜程序:#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,

j=2;printf("%d\n”,S(k+j));}程序运行后的输出结果是()。

A、33

B、197

C、143

D、28

标准答案:C

知识点解析•:本题考查带参数的宏定义,s为带参数的宏定义,运行s(k+j)为

4*(k+j)*k+j+1=143,选项C正确。

17、函数rewind(fp)的作用是()。

A、使fp指定的文件的位置指针重新定位到文件的开始位置

B、将fp指定的文件的位置指针指向文件中所要求的特定位置

C、使fp指定的文件的位置指针向文件的末尾

D、使fp指定的文件的位置指针自动移至下一个字符位置

标准答案:A

知识点解析:位置指针重返文件头函数rewind。的调用形式为:rewind(fp)。其中,

“fp”是指向文件的文件型指针.rewind(fp)的功能是:使fp指定的文件的位置指针

重新定位到文件的开始位巴。

A、并

B、自然连接

C、笛卡尔积

D、交

标准答案:D

知识点解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量

必须是相同的属性组,并且在结果中把重复的属性列去掉,所以B)错误。笛卡尔

积是用R集合中元素为第一元素,S集合中元素为第二元素构成的有序对,所以

C)错误。根据关系T可以很明显的看出是从关系R与关系S中取得相同的关系组

所以取得是交运算,选择D)。

19、下列关于数据库设计的叙述中,正确的是()。

A、在需求分析阶段建立数据字典

13、在概念设计阶段建立数据字典

C、在逻辑设计阶段建立数据字典

D、在物理设计阶段建立数据字典

标准答案:A

知识点解析:数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充

实和完善的。

20、在关系代数运算中,有5种基本运算,它们是])。

A、并(U)、差(-)、交(。)、除(:)和笛卡儿积(x)

B、并(U)、差(-)、交⑼、投影(H)和选择(o)

c、并(U)、交(「)、投影(兀)、选择(。)和笛卡儿积(X)

D、并(U)、差(-)、投影外)、选择(o)和笛卡儿积(x)

标准答案:D

知识点解析:并、差、笛卡儿积、投影和选择是5种基本的运算,其他运算即交、

连接和除,均可以通过5种基本的运算来表达。

21、以下叙述中错误的是()。

A、算法正确的程序可以有零个输入

B、算法止确的程序最终一定会结束

C、算法正确的程序可以有零个输出

D、算法正确的程序对于相同的输入一定有相同的结果

标准答案:C

知识点解析:算法的特征:①有穷性。一个算法(对任何合法的输入)在执行有穷步

后能够结束,并且存有限的时间内完成、②确定性。算法中的每一步鄙有确切的

含义。③可行性并法中的操作能够用己经实脱的基本运算执行有限次束实现。④

输入:一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件。

⑤输出:一个算法有一个或者多个输出,以反映出数据加工的结果所以C选项错

误。

22、有三个关系R、S和T如下:则由关系R和S

得到关系T的操作是()。

A、自然连接

B、交

C、除

D、并

标准答案:C

知识点解析:如果S=T/R,则S称为T除以R的商。在除运算中S的域由T中那

些不出现在R中的域所组成,对于S中的任一有序组,由它与关系R中每个有序

组所构成的有序组均出现在关系T中。所以本题选择C。

23、有以下程序:#includemain(){charch[]="uvwxyz",*pc;pc=ch;printf("%c

\nn,*(pc+5));}程序运行后的输出结果是()。

A、z

B、0

C、元素ch[5]的地址

D、字符y的地址

标准答案:A

知识点解析:语句pc二ch;使得指针变量指向字符数组ch的首地址,即指向字符

“u”.则pc+5指向的是字符向后移动5位,指向字符“z"。所以输出的*pc+5的值即

为z。因此A选项正确。

24、若有定义语句:inta⑵[3],*P[3];则以下语句中正确的是()。

A、P=a;

B、p|OJ=a;

C、p[0]=&a[l][2];

D、P[l]=&a;

标准答案:C

知识点。析:A选项错误,因为p是指向一个指针数组,作为数组名,不能指向别

的地方。B选项错误,因为p[0]是一个int指针,也就是int*;而a是一个指向指针

的指针int**。c选项正确,因为p⑼是一个int*,a⑴⑵是int,&a[l][2]Sint*,

类型吻合。D选项错误,因为a作为数组名,不能取地址。即使能取,p[l]是

int*,&a是int***,类型不对。因此C选项正确。

25、有以下程序:#includemain(){intn,*p=NULL;*P=&n:printfC'Inputn:

"):scanf(”%d”,&p);printf("outputn:");printfC%d\n",p);}该程序试图通

过指针P为变量n读入数据并输出,但程序有多处错误,以下语句正确的是()。

A、intn,*P:NULL;

B、*P=&n;

C、scartf(”%d”,&p)

D、printf("%d\n",P);

标准答案:A

知识点解析:选项B的正确写法应为p=&n;选项C的正确写法应为scanf(”%d”,

p);选项D的正确写法应为,printf("%d\n",*p)。

26、若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。

A、x=y==5;

B、x=n%2.5;

C、x+n=i;

D、x=5=4+l:

标准答案:A

知识点解析:B选项中运算符“%”的前后必须为整数,C选项中不能将变量赋给表

达式x+n,D选项中不能将表达式4+1赋给常量5。

27>有以下程序:#includeintfun(){staticintx=l;x*=2:returnx;}main(){int

i,s=l;for(i=l;i<=3;i++)s*=fun();prinff("%d\n",s);}程序运行后的输出

结果是()。

A、30

B、10

C、0

D、64

标准答案:D

知识点解析:暂无解析

28、有以下程序:main(){structSTU{charname[9];charsex;double

score⑵;);struetSTUa={"Zhao",85.0,90.0},b={“Qian",T,

95.0,92.0|;b=a;printf("%s,%c,%2.of,%2.of\n",b.name»

b.sex,b.score[0],b.8core[lJ);}程序的运行结果是()。

A、Qian,m,85,90

B、Zhao,m,85,90

C、Zhao,f,95,92

D、Qian,f,95,92

标准答案:B

知识点解析:本题考查结构体初始化操作。本题中可以直接将结构体a赋值给b,

所以输出的结果和a一样,故选项B正确。

29、对长度为n的线性表排序,在最坏情况下,比较次数不是n(n—1)/2的排序方

法是()。

A、快速排序

B、冒泡排序

C、直接插入排序

D、堆排序

标准答案:D

知识点解析:暂无解析

30、设有定义:struct{charmark[12];intnum1;doublenum2;}若变量均已正

确赋初值,则以下语句中错误的是

A、11=12;

B、t2.numl=tl.numl;

C、t2.mark=tl.mark;

D、t2.num2=tl.num2;

标准答案:C

知识点解析:本题考查结构体变量的引用,C选项中mark为结构体中的数组,不

能直接赋值,所以C选项错误。

31、关于算法,以下叙述中错误的是

A、某个算法可能会没有输入

B、同一个算法对于相同的输入必须得出相同的结果

C、一个算法对于某个输入的循环次数是可以事先估计出来的

D、任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕

标准答案:D

知识点解析:算法的特征:①有穷性:一个算法(对任何合法的输入)在执行有穷步

后能够结束,并且在有限的时间内完成。②确定性:算法中的每一步都有确切的含

义。③可行性:算法中的操作能够用已经实现的基本运算执行有限次来实现。@

输入:一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件。⑤输

出:一个算法有一个或者多个输此以反映出数据加工的结果,所以选择D选项。

32、以下关于算法的叙述中错误的是()。

A、算法正确的程序可以有零个输入

B、算法正确的程序可以有零个输出

C、算法正确的程序最终一定会结束

D、算法正确的程序对于相同的输入一定有相同的结果

标准答案:B

知识点解析:程序可以不用输入,但一定要有输出,所以B不正确:算法正确的

程序一定会结束,而且相对于相同的输入输出一定相同。

33、卜列函数的功能是()。voidfun(char*x,char*y){while((*y=*x)!='\0')

{x++;y++;}}

A、使指针y指向x所指字符串

B、求x和y中长度较长的那个字符串的长度

C、比较字符串x和y

D、将x所指字符串赋给y所指字符串空间

标准答案:D

知识点解析:子函数中,while循环的差别式中先将x指向的字符内容赋值给y所

指的字符空间,再判断其是否是字符串结束符,如果不是结束符,x和y指针分别

指向各自空间的下一个字符,直到碰到字符串结束符为止。所以选项D正确。

34、关于C语言的输出语句:printf(”%3d\n",1。01)的叙述中正确的是()。

A、程序运行时输出1001

B、程序运行时输出001

C、程序运行时输出100

D、指定的输出宽度不够,编译出错

标准答案:A

知识点解析:printf在输出时按照格式来输出,%3d表示输出3位整数,这里的3

是最小位数,即最少输出3位,但如果多于3位,则按照实际位数输出。

35、设二叉树如下:则后序序列为

A、ABDEGCFH

B、DBGEAFHC

C、DGEBHFCA

D、ABCDEFGH

标准答案;C

知识点解析:二叉树遍历可以分为3种:前序遍历(访问根结点在访问左子树和访

问右子树之前)、中序遍历(访问根结点在访问左子树和访问右子树两者之间)、

后序遍历(访问根结点在访问左子树和访问右子树之后)。本题中前序遍历为

ABDEGCFH,中序遍历为DBGEAFHC,后序遍历为DGEBHFCA,故C选项正

确。

36、有以下程序#includc<stdio.h>main(){intx=0x13;printf("INT:%d\n'\

x+1);(程序运行后的输出结果是

A、INT:14

B、INT:13

C、INT:12

D、INT:20

标准答案:D

知识点解析:0x13是16进制数,%d需要输出十进制数,换算成10进制为19,输

出INT=x+l=20,因此答案为D选项。

37、有以下程序include<stdio.h>main(){charw[20],a[5][10]={"abedef,

"ghijkl","mnopq","rstuv1,"wxyz");inti,j;for(i=0;i<5;i++){j=0;while

!=\(r)j++;w[i]=a[i][j-2];}w[5]=puts(w);}程序运行后的输出结臭是

A、agmrw

B、ekpuy

C、djotx

D、tlqvz

标准答案:B

知识点解析:在for循式中,执行完while语句后,j值为每行字符串的长度,因此

w[i]=a[i][j-2],比如i=0;j=6,则w[0]=a[0][4]=Q,循环依次赋值,最后输出w,答

案为B选项。

38、有以下程序#inckide<stdio.h>main(){charch='D';while(ch>'A'){ch";

putchar(ch);if(ch=9Af)break;putchar(ch+l);}}程序运行后的输出结果是

A、CB

B、BCA

C、CCBB

D、CDBCA

标准答案:D

知识点解析:putchar。函数功能是输出一个字符,由whlic判断条件和ch初始值可

知,,只要ch'A',每次执行二次pulchar,否则跳出。第一次输出CD,第二次输出

BC,第三次输出A,跳出循环。因此答案为D选项

39、有以下程序#include<stdio.h>typedefstructstu{charname[10];chargender;

intscore;)STU;voidf(STUa,STU*b,STUc){*b=c=a;printf("%s,%c,%d;\b->

name,b->gender,b->score);printf("%s,%c,%d,n,c,name,e.gender,c.score);}

main(){STUa={“Zhao",'m',290},b={,,Qian\Y,350},c={”Sun-m1370};f(a,

&b,c);printf(n%s,%c,%d,n,,b.gender,b.scorc);printf("%s,%c,%d\n",,

e.gender,c.score);)程序运行后的输出结果是

A、Zhao,m,290,Zhao,m,290,Zhao,m,290,Sun,m,370

B、Zhao,m,290,Zhao,m,290,Zhao,m,290,Zhao,m,290

C^Zhao,m,290,Zhao

温馨提示

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

最新文档

评论

0/150

提交评论