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

下载本文档

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

文档简介

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

一、公共基础选择题(本题共10题,每题7.0分,共

10分。)

1、下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。

A、内模式

B、外模式

C、概念模式

D、逻辑模式

标准答案:A

知识点解析:数据库管理系统的三级模式结构由外模式、模式和内模式组成。外

模式,或子模式,或用户模式,是指数据库用户所看到的数据结构,是用户看到的

数据视图。模式,或逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,

是所有用户所见到的数据视图的总和。外模式是模式的一部分。内模式,或存储模

式,或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理

结构和存取方式的描述。

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

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

B、并(U)、差(-)、交⑺)、投影(兀)和选择(0)

C、并(U)、交S)、投影(兀)、选择(o)和笛卡儿积(X)

D、并(U)、差(-)、投影(兀)、选择(6和笛卡儿积(X)

标准答案:A

知识点解析:数据库有两层映像,即外模式/模式和模式/内模式映像。模式/内

模式映像定义数据库全局逻辑结构与存储结构之间的对应关系。

3、以下叙述中错误的是o

A、用户所定义的标识符允许使用关键字

B、用户所定义的标识符应尽量做到“见名知意”

C、用户所定义的标识符必须以字母或下划线开头

D、用户所定义的标识符中,大、小写字母代表不同标识

标准答案:A

知识点解析:在C语言中,用户所定义的标识符不能使用关键字。

4、在结构化分析方法中,数据字典的作用是()。

A、存放所有需要处理的原始数据

B、存放所有处理的结果

C、存放所有程序文件

D、描述系统中所用到的全部数据和文件的有关信息

标准答案:D

知识点解析:在C语言中,结构化分析方法中的数据字典的作用是描迹系统中所

用到的全部数据和文件的有关信息。

5、下面选项中不属于面向对象程序设计特征的是()。

A、继承性

B、多态性

C、类比性

D、封闭性

标准答案:C

知识点解析•:面向对象程序设计的特征有以下几点:分类性、继承性、封装性、多

态性、模块性等。

6、在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为()。

A、63

B、64

C、6

D、7

标准答案:2

知识点解析:在长度为n的线性表中进行顺序查找,如果表中第一个元素就是被查

找元素,则只需做一次比较就查找成功,这是顺序查找的最好情况;如果被查找的

元素是线性表中的最后一个元素或者不在线性表中,则需要进行n次比较,这是顺

序查找的最坏情况。所以选项B)正确。

7、下列SQL语句中,用于修改表结构的是()。

A、ALTER

B、CREATE

C、UPDATE

D、INSERT

标准答案:1

知识点解析:在SQL语句中,仓ij建用CREATE,删除用DROP,改变用ALTER,

后面跟类型和名字,附加子句。

8、下列叙述中正确的是

A、一个逻辑数据结构只能有一-种存储结构

B、数据的逻辑结构属于线性结构,存储结构属于非线性结构

C、一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效

D、一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率

标准答案:8

知识点解析:一•般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,

常用的存储结构有顺序、链接、索引等存储结构。而采用不同的存储结构,其数据

处理的效率是不同的。由此可见,选项D的说法正确。

9、结构化程序设计主要强调的是_____o

A、程序的规模

B、程序的易读性

C、程序的执行效率

D、程序的可移植性

标准答案:2

知识点解析:结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程

序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。

10、在面向对象方法中,不属于“对象”基本特点的是_____o

A、一致性

B、分类性

C、多态性

D、标识唯一性

标准答案:A

知识点解析:面向对象方法中最基本的概念是对象,它的基本特点有:标识唯-

性、分类性、多态性、封装性和模块独立性好。

二、选择题(1分)(本题共〃题,每题1.0分,共〃

分。)

II、数据库技术的根本目标是要解决数据的()。

A、存储问题

B、共享问题

C、安全问题

D、保护问题

标准答案:B

知识点解析:数据库技术的根本目标是解决数据的共享问题。

12、关于C语言中数的表示,以下叙述中正确的是

A、只要在允许范围内整型数和实型数都能精确的表示

B、只有整型数在允许范围内能精确无误的表示,实型数会有误差

C、只有实型数在允许范围内能精确无误的表示,整型数会有误差

D、只有用八进制表示的数才不会有误差

标准答案:B

知识点解析:在C语言中,整型数值是以补码表示的。正整数的补码与原码相同,负

数的补码是将该数的绝对值的二进制形式按位取反再加lo这样,在整型数的允许范

围内能够精确的表示整数。与整型数据的存储方式不同,浮点型数据是按照指数形

式存放的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。由于浮点

型数据是由有限的存储单元组成的,因此能提供的有效数字总是有限的,在有效数字

以外的数字将被舍去,由此可能会产生一些误差。

13、能正确表“当x的取值在[1,10]和[100,110|范围内为真,否则为假”的表述式

是()。

A、(x>=l)&&(x<=W)&&(x>=100)&&(x<=l10)

B、(x>=l)II(x<=IO)II(x>=100)II(x<=110)

C、(x>=l)&&(x<=10)II(x>=100)&&(x<=110)

D、(x>=l)II(x<=10)&&(x>=100)II(x<=110)

标准答案:4

知识点解析:本题考查逻辑与(&&)和逻辑或(II)运算符的使用。x>=l和x<=10

是逻辑与的关系,因此C语言表达式应写成“(x>=l)&&(xV=10)”,x>=100和x

<二110也是逻辑与的关系,因此C语言表达式应写成“(x>=100)&&(x〈=110)”;

[1,10]和[100,110]是逻辑或的关系,因此只要将前两个表达式用逻辑或运算符连

接起来即可,所以最后的表达式:(x>=l)&&(X<=10)II(x>=100)&&(x<=l10)o

14、若以下选项中的变量已正确定义,则正确的赋值语句是()。

A^xl=26.8%3;

B、l+2=x2;

C、x3=0xl2;

D^x4=1+2=3;

标准答案:4

知识点解析:正确的赋值语句的左值不能为常量或表达式。选项A)中右值的表达

式错:选项R)的左值为表达式,错误:选项D)的表达式x4=1+2=3,是先执行赋值

表达式1+2=3,这本身就是错误的,1+2不是变量,不能赋值。

15、若变量已正确说明为float型,要通过scanf("%f%f%F,&a,&b,&c);给a

赋值10.0,b赋值22.0,c赋值33.0,下列不正确的输入形式是()。

A、10V回车>22V回车>33V回车》

B、10.0,22.0,33.0V回车)

C、C.0V回车>22.033.0V回车》

D、1022V回车>33V回车》

标准答案:2

知识点解析:在scanf("%f%f%f,&a,&b,&c);中,格式描述为“当输

入数据时,数据之间可用空格、制表符和回车符作为间隔符,而逗号不是合法的间

隔符。

16、下面四个选项中,均是不正确的8进制数或16进制数的选项是

A、0I60x8f018

Oabc017Oxa

C、010-0x110x16

D、0al27ff-123

标准答案:8

知识点解析:8进制中,不可能包括8以上的数字,它的范围只在。〜7之间,以0

开头。同样,十六进制是以Ox开头,数字在0〜9和a〜f之间。

17、以下语句的输出结果是()printf("%d,%d,%u\n",016,16,-16);

A、16,16,6542。

B、14,16,6542

C、16,16,-16

D、14,16,-16

标准答案:2

知识点解析:暂无解析

18、有以下程序:main(){intm=0256,n=256;printf("%o%o\n\m,n);}程序运行后

的输出结果是()。

A、02560400

B、0256256

C、256400

D、400400

标准答案:4

知识点解析:程序中定义了两个整型变量,一个用八进制表示,一个用十进制表

示,输出语句中要求m、n都为八进制输出,显然m原样输出为256,n的值转换

为八进制输出(256的八进制为400),故输出400。所以,4个选项中选项C符合题

意°

19、以下选项中可作为C语言合法常量的是

A、-80

B、-80

C、-8el.O

D、-80.0e

标准答案:1

知识点解析•:选项B中,以0开头表示是一个八进制数,而八进制数的取值范围

是0-7,所以-080是不合法的;选项C和D中,e后面的指数必须是整数,所以

也不合法。

20、以下选项中属于C语言的数据类型是o

A、复数型

B、逻辑型

C、双精度型

D、集合型

标准答案:4

知识之解析:C语言的数据类型分为基本类型、构苴类型、指针类型、空类型四大

类。其中,基本类型分为整型、字符型、实型三类。实型又称浮点型,包括单精度

型和双精度型两种类型。

21、下列程序的输出结果是()。main(){chara[7]="a0\0a0\0";intij;i=sizeof(a);

j=strlen(a);printf("%d%d\n",i,j);)

A、22

B、76

C、72

D、62

标准答案:4

知识点解析:函数sizeof(a)的功能是求出字符串a中的字符占用存储空间的大小,

由于字符数组a有长度为7,所以i=7;函数slrlen(a)的功能是:求出字符串a的长

度。而每个字符串都以'(T为字符串的结束标记,所以j的值等于2。

三、选择题(2分)(本题共20题,每题1.0分,共20

分。)

22>下列程序的输出结果是#include"stdio.h""main(){inti,a=0,b=0;

for(i=l;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,

b=%d",a,b);)

A^a=4,b=4

B、a=4,b=5

C^a=5,b=4

D、a=5,b=5

标准答案:B

知识点解析:continue语句的作用是跳过本次循环体中余下尚未执行的语句,接着

再一次进行循环条件的判定。当能被2整除时,a就会增1,之后执行continue语

句,直接执行到for循环体的结尾,进行i++,判断循环条件。

23、有以下程序:main(){inty=1,x=2,z=3;printf("%d,%d\n",(++x,y++),z+2);}执

行后的输出结果是()。

A、3,5

B、2,5

C、3,3

D、1,5

标准答案:D

知识点解析:本题考查逗号表达式。逗号表达武的求解步骤是先求解表达式1,然

后依次求解表达式2,直到表达式N的值。整个逗号表达式的值就足最后一个表达

式N的值。(++x,y++)这个表达式的返回值是y++,先使用y的债,然后将y加

1,所以输出第一个值为1。第二个输出的值为z+2=3+2=5。

24、函数fseek。的正确调用形式是()。

A、fseek(位移量,起始点,文件类型指针);

B、fseek(文件类型指针,位移量,起始点);

C、fseek(文件类型指针,起始点,位移量);

D、fseek(起始点,位移量,文件类型指针);

标准答案:B

知识点解析:改变文件位置的指针函数fscck()的调用形式:

fseek(fp,offset,position);cfseek函数参数说明:“fp”是指向该文件的文件型指针;

“offset”为位移量,指从起始点position到要确定的新位置的字节数。也就是以起点

为基准,向前移动的字节数。“position”为起始点,指出以文件的什么位置为基准

进行移动,position的值用整型常数表示,“0”表示文件的开头,“1”表示文件的当

前位置,“2”表示文件的末尾。

25、有以下程序//includemain(){charp[20]={,a\,b\,c\,d,},q[]=nabc",r[l-'abcdc';

strcat(p,r);strcpy(p+slrlen(q),q);printf("%d\n",strlen(p));)程序运行后的输出结果是

A、9

B、6

C、11

D、7

标准答案:B

知识点解析:strcpy()函数的功能是将字符串q复制到从pl3]位置开始的存储单

元,同时复制字符串结束标志'\0'到p[6]中。函数shien()返回的是字符串中不包

括、(T在内的实际长度,敢本题答案为B)。

26、与“y=(x>0?l:x<0?-l:Of;的功能相同的if语句是O。

A^if(x>0)v=l;elseif(x<0)y=l;elsey=0;

B、if(x)if(x>0)y=l;elseif(x<0)y=-l;elsey=0;

C、y=-lif(x)if(x>0)y=l;elseif(x==0)y=0;elsey=-1;

D^y=0:if(x>=0)if(x>=0)y=l;elsey=-I;

标准答案:B

知识点解析:y=(x>0?l:x<0?-l:0)中有两个三目运算符,因此按右到左的顺序

运算,可写成y=(x>0?l:(xV0?-l:0)),故选择B选项。

27、执行语句“for(i=l;i++V4;);”后,变量i的值是()。

A、3

B、4

C、5

D、不定

标准答案:C

知识点解析:for循环结束时,i++的值应为4,i自加后此时应为5,故选择C选

项。

28>有以下程序:#includevoidWriteStr(char*fn,char*str){FILE*fp:

fp=fopen(fn,"w");fputs(str,fp);fclose(fp);main()(WriteStrC'tl.dat","start'1);

WriteStrC'tl.dat'7'end");)程序运行后,文件tl.dat中的内容是()。

A^start

B、end

C、startend

D、cndrt

标准答案:B

知识点解析:暂无解析

29、数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构

进行的运算以及。

A、数据的存储结构

B、计算方法

C、数据映像

D、逻辑存储

标准答案:A

知识点解析:暂无解析

30、设有如下函数定义,则输出结果为ochar*fun(char*str)

{char*p=str;\vhile(*p){if(*p>,d,)continue;p++;}returnp;)

main(){printf("%s\n1,,fun("welcome!"));}

A、welcome!

B、come!

C、w

D、程序陷入死循环中

标准答案:D

知识点解析:暂无解析

31、有如下定义:structperson{charname[9];intage;};structperson

class[10]={nJohnn,l7,"paul",l9,“Mary”,18,“Adam”,16};根据上述定义,能输出字母

M的语句是()。

A、printf("%c\n",class[3].name);

B、printf(n%c\n",class[3].name[1]);

C、printf(,'%c\n,,,class[2].name[1]);

D、printf("%c\n",class[2].name[0]);

标准答案:8

知识点解析:本题的关键是弄清楚给结构体数组赋初值的问题。初始值将按数组的

各个元素在内存中的存放次序逐个地赋给各元素。结构体数组的各个元素在内存中

的存放次序是:class[O\name,class[O].age,class[l].name,class[l].age,...,由此可知,

包含字符“M”的字符串“Mary”赋值给了元素class⑵.name,则与字符相对应的

表达式是class[2].name[0]o

32、有以卜程序:#defmeP3voidP(intx){return(p*x*x);}main()

{pritnf("%d\n';F(3+5);)程序运行后的输出结果是(),

A、192

B、29

C、25

D、编译出错

标准答案:8

知识点解析:本题是一道陷阱题,考生如果没注意到F()函数被定义为void类型的

话,很容易错选为选项A,其实应该选择选项D,编译出错。

33、若有下面的程序片段:int[12]={0},*p[3],**pp,i;for(i=0;i<3;i)

p[i]=&a[i*4];pp=p则对数组元素的错误引用是

A、pp[O][l]

B、a|10]

C、p[3][l]

D^*(*(p+2)+2)

标准答案:4

知识点解析:本题综合考查一维数组和多维数组指针变量的表示方法。在C语言

中,引用数组元素的方法有两种,即:下标法和指针法。下标法如a[i]形式;指针

法如*(a+i)或*(p+l)。其中a是数组名,p是指向数组的指针变量,其初值p=a。再

如气木(p+2)+2)是a⑵⑵的值,注意语句中指针型数组的书写格式,不能写成“(*数

组名)[长度]”,因为这是定义指向含有“长度”个元素的一维数组的指针变量。例如

有定义语句“inta,b,c,c,*P[3]={&a,&b,&c};",它定义了一个名为p的指

针型数组.其3个元素p[0],p[1],p[2]分别指向B个整型变量a.b.c„注意:

数组元素的引用方法。

34、若有如下程序:main(){intx=l,n;for(n=0;n<5;n++){switch(n){case

n

3:x+=3;case2:x+=2:case1:case0:default:x+=4;}}printf("%d\n?

x);}则程序执行后的输出结果是()

A、10

B、18

C、28

D、30

标准答案:4

知识点解析:暂无解析

35、以下程序的输出结果是()#includeVstdio.h>main(){unionun{inti;long

k:charc;};structbyte{inta;longb;unionunc;)r;printf("%d\n",

sizeof(r));}

A、10

B、13

C、7

D、8

标准答案:1

知识点解析:暂无解析

36、有以卜.程序:main(){unsignedchara,b,c;a=0x3;b=a|0x8;c=b<<1;

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

A、-1112

B、-6-13

C、1224

D、1122

标准答案:8

知识点解析:将a的值用二进制表示:00000011。a与0x8(二进制表示为

00001000)按位或,得到结果00001011赋值给b,b的值为11。再将b左移一位得

到:00010110,赋值给c,c的值为22。所以最后输出的b,c的值为11,22。

37、请读程序:#inckide<stdio.h>main(){inta=5,b=7,c=9;

pintf(n%d,%d,"a,b,C);printf(H%d,%d",a,D);}上面程序的输出结果是。

A、579,5,7

B、5,7,5,7

C、5,7,不定7,9

D、5,7,5,7,不定

标准答案:8

知识点解析:printf函数按格式控制符的个数输出表列中对应的数据,若输出表列

的个数大于格式控制符个数,则输出与格式控制符对应的输出表列的数据,输出表

列中多的则省略;若格式控制符个数大于输出表列的个数,则输出与格式控制符对

应的输出表列的数据,格式控制符多的部分输出的数据是随机的。

38、以下函数值的类型是()fun(floatx){floaty;y=3*x-4;

returny;)

A、int

B、不确定

C^void

D、float

标准答案:1

知识点解析:暂无解析

39、下面程序段中C的二进制值是ochara=3,b=6.c:c=ab<<1;

A、1011

B、1111

C、11110

D、11100

标准答案:2

知识点解析:C语言提供六种位运算符,按优先级由高到低的顺序分别为:取反

(〜)、左移(VV)和右移(>>)、按位与(&)、按位异或(A)、按位或(|)。所以表达式

©=^<<1先运算1><<1得二进制为00001100,再运算aAOOOOUOO,最后得二进

制值00001111o

40、有以下函数定义:voidfun(intn,doublex){......}若以下选项中的变量都已

正确定义并赋值,则对函数fun的正确调用语句是

A^fun(inty,doublem);

k=fun(10,12.5);

C^fun(x,n);

D^voidfun(n,x);

标准答案:C

知识"解析:选项A)中的实参不能在调用时声明;选项B)错误,因为无返回值的

函数不能出现在表达式中;选项D)错误,其调用格式不正确。

41、以下程序的功能是进行位运算:main(){unsignedchara,b;a=7A3;b=〜4&

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

A、43

B、73

C、70

D、40

标准答案;A

知识点解析:C语言提供六种位运算符,按优先级由高到低的顺序分别为:取反

(-)一左移(VV)和右移(>>)T按位与(&)一按位异或(A)T按位或(I)。是按位异

或运算,当对应位上的二进制数值相同时,异或的结果为0,对应位上的二进制数

值不同时,异或的结果为1,本题“7A3”相当于01UA0011,所以a的值为4;

是按位与运算符,只有当所有对应位上的数值都为1时,结果才为1;是按位取

反。题中“-4&3”相当于1011&0011=0011,所以b的值为3。

四、公共基础填空题(本题共4题,每题1.0分,共4

分。)

42、长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,

插入一个元素所需移动元素的平均个数为o

A、n/2

标准牝索.

知识之解析:哲无解析

43、下列程序的功能是对输入的一行字符中的数字字符的字面值累加,输出此累加

和,请填空。#include#includemain(){chare;inta,s=0;while()

if(isdigit(c)){a=s-,O,;s+=a:}printf(',s=%d,\s);}

标准答案:(c=getchar())!=’\n\

知识点解析:由题可知,用函数c=gelchar()从键盘上读取一行的字符(即没有换

行)所以条件为(c=gctchar())L\n\

44、在面向对象方法中,信息隐蔽是通过对象的【】性来实现的。

标准答案:封装

知识点解析:封装是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者

分开。用户只能见到对象封装界面上的信息,不必知道实现的细节。

45、软件测试按功能划分的方法划分,通常分为【】测试方法和黑盒测试方法。

标准答案:白盒

知识点解析:软件测试的方法分为白盒测试方法和黑盒测试方法。

46、一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体”项目主

管”与实体”项目,,的联系属于【】。

标准答案:一对多

知识点解析:由于一个项目主管可以管理多个项目,而一个项目只能有一个项目主

管,“项目主管”这个实体与“项目”这个实体的管理关系属于一对多。

五、填空题(本题共70题,每题1.0分,共70分。)

47、写出下列程序的输出结果。main。{intn=0;while(n++<=l);

printf(”%dj,n);printf("%d",n++);}

A、3,3

标准答案:

知识点解析:本题在while(n++V=l)语句后,直接加了分号,说明如果while。的

条件为真时,该循环什么都不做:n++是先取n的当前值和1做比较,然后再将n

加1。第一次循环,n=0时,循环条件n++=0V=l成立,执行循环,然后得到

n=l。第二次循环,n=l时,循环条件n++=lV=l成立,执行循环,然后得到

n=2o第三次循环,n=2时,循环条件n++=2V=l不成立,不执行循环,但在判断

循环条件时仍将n加1,得到产3。退出循环后执行printf语句,第二个printf语句

输出n++,是先输出n的当前值3

48fwrite函数的一般调用形式是

A、fwrite(buffer,count,size>fp);

B>fwrite(fp,size,count,buffer);

C^fwrite(fp,count,size,buffer);

D、fwrite(buffer,size,count,fp);

标准答案:D

知识点解析:暂无解析

49、对数据元素之间的逻辑关系的描述是()。

标准答案:数据的逻辑结构

知识点解析:数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个

数据元素的集合和定义在此集合中的若干关系来表示。

50、若变量a,b已定义为血类型并赋值21和55,要求用print?函数以a=21,b=55的

形式输出,请写出完整的的输出语句【】。

标准答案:printfC4a=%d,b=%d,,,a,b);

知识点解析:printf是格式化输出函数。

51以下程序的输出结果是[]o#include<stdio.h>voidfun(){staticint

a=0;a+=2;printf(n%d',a);)main(){intcc;for(cc=l;cc<4;cc++)fun();

printfCAn,1);}

标准答案:246

知识点解析:本题考查静态(static)局部变量的使用,fun函数中的静态局部变量a

所占用的存储单元在程序运行过程中始终不释放,即当下一次调用该函数时,该变

量仍然保留上一次函数调用结束时已有的值,3次调用fun函数分别得到2,4.

6。

52、设函数Gndbig已定义为求3个数中的最大值。以下程序将利用函数指针调用

findbig函数。请填空。main(){intfindbig(int,int,int);int(*f)(),x,y,z,big;f=;

scanf("%d%d%d",&x,&y,&z}:big=(*f)(x,y,Z);printf("big=%d\nM,big);}

标准答案:findbig

知识点解析:本题考核的知识点是指向函数的指针变量的使用。本题首先定义了一

个指向函数的指针变量f,如果希望让它指向某个凶数,只需把函数名赋给该指针

变量即可。所以说本题的空格处应该填入函数名findbigo

53、若输入21、23、34、11、2、6,则以下程序的运行结果[]。main(){inti;

char+p,num[6];for(i=0;i<5;i++)scanf("%d,",&num[i]);scanf("%d",

&num|5|);p=&num|0];sort(p,6);for(i=0;i<5;i++)printf("%d,”,

num[i]);printf("%d\n",num[5]);}sort(p,m)char*p;intm;{inti;char

change,*pl,*p2;for(i=0:i<m/2:i++){pl=p-i:p2=p+(m-l-i);

change=*pl;*pl=*p2;*p2=change;))

标准答案:6,2,11,34,23,21

知识点解析:暂无解析

54、已有定义:doubleup;,请写出完整的语句,利用malloc函数使p指向一个

双精度型的动态存储单元【】。

标准答案:p=(double*)inalloc(sizeof(double))

知识点解析:本题重点考查对申请动态存储单元函数malloc的调用,malloc函数

的形参为申请动态存储单元的大小,调用此函数时需耍进行强制类型转换,所以本

题需要将返回类型强制为double型指针。

55、若有如下程序:voidsub(){staticintx=8;x/=2;printf("%d'\x);}main(){in(m;

for(m=0;m<2;m++)sub();)则程序运行后的输出结臬是【】.

标准答案:42

知识点解析:主函数中的for循环循环两次,即函数sub。被调用两次。在sub()中x

被定义为静态整型变量,当调用函数sub()完毕返回主函数,x中的值仍然保留,

下次调用函数sub。时,x不再被赋初值。第1次调用x/=2相当于x=x/2=8/2=4,第

2次调用x=x/2=4/2=2,因此输出42。

56^有以下程序:#inckide<stclio.h>main(){chare;

whilc((c=gctchar())!=,?,)putchar(-c);)程序运行时,如果从键盘输入:Y?N?V回

车,,则输出结果为【】0

标准答案:X

知识点解析:主函数中首先定义了一个字符型变量c,接着执行下面while语句,

在while循环中,首先从键盘上读入一个字符Y并给赋给字符变量c,赋值表达式

的值不为'?',执行输出语句,输出字符X。接着判断while中的循环条件,读入一

个字符,?,并赋值给c,赋值表达式的值为?循环条件不再满足,退出循环。

57、有以下程序#inculdemain(){inia=l,B=2,c=3,d=0;iF(a==l)iF(B!=2)iF(c==3)

d=l;elsed=2;elseiF(c!=3)d=3;elsed=4;elsed=5;printF("%d\n",d);}程序远行后的

输出结果是【】。

标准答案:4

知识点解析:暂无解析

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

一、公共基础选择题(本题共io题,每题1.0分,共

10分。)

1、下列特征中不是面向对象方法的主要特征的是()。

A、多态性

B、继承

C、封装性

D、模块化

标准答案:D

知识点解析:面向对象设计方法与面向过程设计方法有本质的不同,其基本原理

是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:分类

性、多态性、封装性、模块独立性、继承和多态性等。模块化是结构化程序设计的

特点。

2、C语言的基本单位是()。

A、函数

B、过程

C、子程序

D、子函数

标准答案:A

知识点解析:C语言是函数式的语言。它的基本组成单位是函数,在C语言中任何

程序都是由一个或者多个函数组。

3、面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是

()o

A、模拟现实世界中不同事物之间的联系

B、强调模拟现实世界中的算法而不强调概念

C、使用现实世界的概念抽象地思考问题,从而自然地解决问题

D、鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考

标准答案:4

知识点解析:面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本

原理是,使用现实世界的概念抽象地思考问题,从而自然地解决问题。它强调模拟

现实世界中的概念,而不强调算法,鼓励开发者在软件开发的绝大部分中都用应用

领域的概念去思考。

4、若x和y都是血型变量,x=100,y=200,且有程序片段:printf(,,%du,

(x,y));,则输出结果是_____o

A、200

B、100

C、100200

D、输出格式符不够,输出不确定的值

标准答案:1

知识点解析:暂无解析

5、在计算机中,算法是指o

A、查询方法

B、加工方法

C、解题方案的准确而完整的描述

D、排序方法

标准答案:4

知识点解析:计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特

征:可行性、确定性、有穷性和拥有足够的情报。

6、栈通常采用的两种存储结构是

A、顺序存储结构和链式存储结构

B、散列方式和索引方式

C、链表存储结构和数组

D、线性存储结构和非线性存储结构

标准答案:1

知识点解析:和线性表类似,栈也有两种存储方法,一是顺序栈,二是链式栈。栈

的顺序存储结构是利用一组地址连续的存储单元一次存储自栈底到栈顶的数据元

素,同时附设指针top指示栈顶元素的位置,由于栈的操作是线性表操作的特例,

相对而言,链式栈的操作更易于实现。注意:这3种运算方法在各种存储结构中的

应用。

7、在微机中,bit的中文含义是()

A、二进制位

B、字节

C、字

D、双字

标准答案:1

知识点解析:暂无解析

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

A、一种数据的逻辑结构可以有多种存储结构

B、数据的存储结构与数据的处理效率无关

C、数据的存储结构与数据的处理效率密切相关

D、数据的存储结构在计算机中所占的空间不一定是连续的

标准答案:2

知识点解析:数据的存储结构分为顺序结构和链式结构,一个数据的逻辑结构可以

有多种存储结构。顺序结构中数据元素所占的存储空间是连续的,而链式存储结构

中,数据元素所占的存储空间不一定是连续的。数据的存储结构与数据的处理效率

密切相关。

9、下列描述中,不是线性表顺序存储结构特征的是()。

A、不便于插入和删除

B、需要连续的存储空间

C、可随机访问

D、需另外开辟空间来保存元素之间的关系

标准答案:8

知识点解析:线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻

辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在

物理位置的相邻元素之中,因此,不需要另外开辟空间来保存元素之间的关系。

10、下列不属于软件工程的3个要素的是()。

A、工具

B、过程

C、方法

D、环境

标准答案:8

知识点解析:软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程

项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各

个环节的控制、管理。

二、选择题(1分)(本题共〃题,每题7.0分,共〃

分。)

11、下列选项中不合法的十六进制数是()。

A、Oxff

B、0X11

C、Oxlg

D、OXabc

标准答案:C

知识点解析:十六进制是以“Ox”或“OX”开头的字符串,字符串中只能含有0〜9这

10个数字和a、b、c、d、e、f这6个字母。

12、数据管理技术发展的三个阶段中,()没有专门的软件对数据进行管理。

I.人工管理阶段H.文件系统阶段HI.数据库阶段

A、仅I

B、仅III

c、I和n

D、H和III

标准答案:A

知识点解析:数据管理技术发展的三个阶段中,只有人工管理阶段,没有操作系

统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中

已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一

管理数据的专门软件系统,即数据库管理系统。

13、下列合法的声明语句是()。

A、int_abc=50;

B、doubleint=3+5e2.5;

CNlongdo=lL;

D、float3_asd=3e-3;

标准答案:A

知识点解析:标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字

母或者下划线。B选项E不是表达变量类型的标识符,它不能再用做变量名和函

数名。C选项do是C语言的…个关键字。D选项标识符只能以字母或下划线开

始。

14、有以下程序#includcmain(){inta=l,b=0it(!a)b++;elseit(a==O)it(a)b+=2else

b+=3printf("%d\n",b);}程序运行后的输出结果是()。

A、0

B、1

C、2

D、3

标准答案:A

知识点解析:a=l所以!a表达式为假,不执行b++。又a=l所以a=0为假,所以跳

过语句后面的if和else语句(因为else和最近的if语句组成一条复合语句),直接输

出,所以结果为0。

15、若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);

printf("%d,%d\n",m,i);}执行后的输出结果是

A、8,6

B、8,3

C、6,4

D、7,4

标准答案:4

知识点解析:本题考查的知谡点是运算符的优先级.在复合赋值语句中,应该由右

向左依次赋值,在表达式中,右端由i*=k得i=2*2为4,k=k+i,即k值为6,m=k

故m=6.所以4个选项44c正确。

16、变量a已被定义为整型,下列表达式有错的是

A、a='A'+20

B、a-='a'

C、a=c+d

D、a='c'+'d'

标准答案:4

知识点解析:暂无解析

17、已知字母A的ASCH参政值是65,字母a的ASCH码值是97,以下程序列

omain(){chara='A';intb=20;printf(n%d,%o',,(a=a+a,a+b,b),a+,a'+,A,,b);}

A、表达式非法,输出零或不确定值

B、因输出项过多,无输出或输出不确定值

C、输出结果为20,141

D、输出结果为20,141,20

标准答案:4

知识点解析:本题中首先输出逗号表达式“a=a+a,a+b,b”的值,即20。然后以八进

制的形式输出a+匕的值为97对应的八进制数141,由于最后一个表达式b没

7j对应输出格式的输出项表列就不会输出。

18、IEEE802.3的物理层协议10BASE-T规定从网卡到集线器的最大距离为()

A、100m

B、185m

C、360m

D、500m

标准答案:1

知识点解析:暂无解析

19、在函数scanf的格式控制中,格式说明的类型与输入项的类型应该对应匹配。

如果类型不匹配,系统将()。

A、不予接收

B、并不给出出错信息,但不能得到正确的数据

C、能接收到正确输入

D、给出出错信息,不予接收输入

标准答案:2

知识点解析:在scanf函数的格式控制中,格式说明的类型与输入项的类型必须一

一对应匹配,如不匹配将导致数据输入出现错误,但是系统并不报错。

20、若有以下程序段intm=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果

A、0X0

B、0x0

C、0

D、0XABC

标准答案:c

知识点常析:格式字符x或x是以十六进制无符号形式输出整型数(不带前导Ox或

OX)o对于x用abc输出,X用ABC输出。

21、以下能正确定义且赋初值的语句是。

A、intnl=n2=10:

B、charc=32;

C、floatf=f+l.l;

D、doublex=12.3E2.5;

标准答案:B

知识点解析:语句“intnl=n2=10;”中,由于变量n2未定义,所以此赋值语句错

误:由于赋值语句中不能存在运算表达式,所以选项C中的赋值语句错误;选项

D中指数表示错误,C语言规定,e后面的指数必须为整数;选项B中的“32”是

ASCII码的表示形式,这是C语言中字符型数据和整型数据通用的表现,即一个字

符数据可以以字符形式出现,也可以以整数形式出现。

三、选择题(2分)(本题共20题,每题1.0分,共20

分。)

22、若运行以下程序时,从键盘输入ADescriptorVCR>(VCR>表示回车),则下

面程序的运行结果是()c#include<stdio.h>main(){chare;intv0=l,vl=0,v2=0;

do{switch(c=gctchar()){casc,a,:casc,A,:casc,c\case,E,:casc'i':cascT:

case,o,:case,O,:case'u':case'U':vl+=l:default:v0+=1;v2+=1;}}while(c!=,\n,);

printf(HvO=%d,vl=%d,v2=%d\n",v0,vI,v2);}

A^v0=7,vl=4,v2=7

B、v0=8,vl=4,v2=8

C、v0=ll,vl=4,v2=ll

D、v0-13,vl-4,v2=12

标准答案:D

知识点解析:本题考查的是switch语句的应用。分析程序,do-while语句是先执行

do后面的语句再判断是否符合while的条件。V2+=l;语句无论读入的是什么字母

(包括回车符),此语句都要执行,语句default:v()+=l;亦是如此;而语句

case,U,:vl+=l;只有在读入的字母

是匕'、Q、E、T、T、4、'O'、3、P'时才会执行。

23、以下关于C语言数据类型的叙述中正确的是()。

A、C基本数据类型包括:分为整型、实型、浮点型、字符型四种

B、实型常量的表达方式包括十进制形式、十六进制形式、二进制形式、八进制形

式、指数形式

C、若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

D、若只处理“真”和“假”两种逻辑值,应使用逻辑类型

标准答案:C

知识点。析:C基本数据类型包括:分为整型、实型、枚举型、字符型四种,实型

就是浮点型,实型数据只有十进制,没有2,8,16进制表达,在C语言中没有定

义逻辑类型,而是一般用0代表假,用非零代表真。

24、有下列程序:#include<stdio.h>main(){charcl,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&cl,&c2,&c3,&c4);c5=getchar();c6=getchar();

putchar(cl);putchar(c2);printf("%c%c\n",c5,c6);}程序运行后,若从键盘输入(从

第1列开始):123<CR>45678<CR>则输出结果是(

A、1267

B、1256

C、1278

D、1245

标准答案:D

知识点解析:当用scanf函数从键盘输入数据时,每行数据的末尾按下回车键

(Enter键)之前,可以任意修改。但按下回车键putchar(cl)(Enter键)之后,scanf函

数即接受了这一行数据,不能再回去修改。所以本题中,当输入I23VCR〉时,

变量cl、c2、c3的值分别为1、2、3,当输入45678VCR〉时,变量c5、c6的值

4和5。所以用输出函数putchar(cl)输出1,putchar(c2)输出2,

primf("%c%c\n”,c5,c6)输出45。所以选项D)为正确答案。

25、已知大写字母A的ASCH码是65,小写字母a的ASCII码是97。下列不能将

变量c中的大写字母转换为对应小写字母的语句是()。

A、c=(c-'A')%26+'a'

c=c+32

C、c=c・'A'+'a'

D、c=('A'+C)%26-'a,

标准答案:D

知识点解析:由题意可知,小写字符a和大写字符A的ASCH代码相差为32,所

以选项C)能将大写字符c的ASCII代码转换为小写字符c的ASCII代码;选项A)

和C)左侧的表达式都是大写字符c与大写字符A的差与3的ASCII代码的和就是

小写字符c的ASCH代码。而选项D)中应该是加上而不是减去匕\

26、下列选项中错误的说明语句是

A、chara[]={,t,/oVy7oVu7\0,};

B、charaU={"toyou\0"};

C、chara[]="toyou\0";

D、chara[]='toyou\0';

标准答案:D

知识点解析:通过赋初值的方式给一维数组赋字符串,可以用给一般数组赋初值的

相同方式给一维字符数组赋字符串,也可以在赋值时直接赋字符串常量。选项B)和

C)后面的、(T是多余的,在C语言中,系统会自动在字符串的结尾处加上一个字符、(T

作为串的结束标记。

27、需求分析阶段的任务是确定_____o

A、软件开发方法

B、软件开发工具

C、软件开发费用

D、软件系统功能

标准答案:D

知识点解析:暂无解析

28、有以下程序:#include<stdio.h>main(){unsignedinta;intb=-l;a=b;

printf("%u”,a);程序运行后的输出结果是()。

A、-1

B、65535

C、32767

D、-32768

标准答案:2

知识点0析:不同类型的对象进行混合运算时,需要进行数据的类型转换,其转换

方向为int—>unsigned—>long—>doublc<,本题程序中的变量b为int型,需要转换为

unsigned型。ini型变量的数值范围为・32768〜32767,最高位为符号位,而

unsigned所表示的数的范围为0~65535,它的最高位为数值位。由于内存中是以

补码形式存储数据的,所以整型数-1在内存中表示为16个1,最高位的1表示符

号为负,将它转换为unsigned类型,即将原符号位的1看成数值,所以得到16个

数值1,即65535。

29、在int(*prt)[3];定义中,标识符prt().

A、定义不合法

B、是一个指针数组名,每个元素都是一个指向整型变量的指针

C、是一个指针,它指向一个具有三个元素的一维数组

D、是一个指向整型变量的指针

标准答案:4

知识点解析:此题的关键是要分清指针数组与指向一维数组指针之间的不同,题中

的说明语句定义了一个由针变量prl,它指向包含三个整数元素的一维数组。要注

意:*prt两侧的圆括号不能缺少,如果写成*ptr[3],则ptr与⑶先结合,是数组,

然后再与前面的。号结合,则*ptr[3]将是一个指针数组。

30、有以下程序:main(){char*p[]={"3697","2584"};inti,j;longnum=0;for(i=0;i<

2;i++){j=0;while(p[i][j]!=,\0,){if((p[il[j]-,0,)%2)num=10*num+p[i][j]->0*;j+=2;}

printf("%d\n",num);}程序执行启鬲输出结果是()0

A、35

B、37

C、39

D、3975

标准答案:4

知识点解析:本题首先定义了一个字符指针数组p,然后使用一个两重循环遍历数

组p.因为内循环的循环变量j每次会加2,所以只能遍历到数组p每行中列下标

为偶数的字符,它们是‘3,,夕、然后,将它们通过表达式转换

为对应的整数3、9、2、8,并用%2来判断该整数是否为奇数。所以最终能执行到

num=10*num+语句的只有,3,和,歹两个字符。此时已不难算出,运行后

num中的值为39。故应该选择C。

31、若输入000051,卜列程序的运行结果为omain(){unsignedinta;

scanf("%o",&a);printf(H%o\n",getbits(a));}getbits(value)unsignedintvalue:

{inti,j,m,n;unsignedintz,a,q;z=0;for(i=1;i<=15;i+=2){q=l;

for(j=I;j<=(16-i-l)/2;j++)q=q*2;a=value>>(l6-i);a=a<<15;a=a>>

15;z=z+a*q;}return(z);}

A、6

B、51

C、51

D、10

标准答案:1

知识点解析:暂无解析

32、下列说法中,不正确的是。

A、主函数main中定义的变量在整个文件或程序中有效

B、不同函数中,可以使用相同名字的变量

C、形式参数是局部变量

D、在函数内部,可在复合语句中定义变量,这些变量只在本复合语句中有效

标准答案:1

知识点解析:暂无解析

33、若i和j已定义为int类型,则以下程序段中内循环体总的执行次数是o

for(i=5;i;i—)for(j=0;j<5;j++){...}

A、20

B、25

C、24

D、30

标准答案:2

知识点解析:对于第一个for语句.i从5至1,且对于第二个for语句.在i取5

至1的某个值时,j又从0变化至5。

34、有以下程序main。{char*s="abcde";s+=2;printf("%ld\nn,s);}程序运行

后的输出结果是()

A、cde

B、字符c的ASCII码值

C、字符c的地址

D、出错

标准答案:4

知识点解析:暂无解析

35、若有下面的说明和定义,则sizeof(structaa)的值是structaa{intredouble

r2;floatr3;unionuu{charul[5];longu2[2])ua;)mya;

A、30

B、29

C、24

D、22

标准答案:8

知识点解析:结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别

占有自己的内存单元;共用体变量所占的内存长度等于最长的成员的长度。结构体

变量aa中,成员rl占2个字节,「2占8个字节,「3占4个字节,共用体ua占8个

字节,所以共占用2+8+4+8=22个字节。

36、若有以下说明和定义:typcdetint1EGER;IN1EGERp,*q:以下叙述正确的

是()。

A、p是整型变量

B、p是基类型为整型的指针变量

C、q是基类型为整型的指针变量

D、程序中可用INTEGER代替int类型名

标准答案:2

知识点解析:本题中INTEGER被定义为im*的别名,故直接由它定义的类型基类

型为整型的指针变量。因此,p是基类型为int的指针变量,q是int型指针的指针

变显。故4个选项中B正确。

37、若已定义的函数有返回值,则以下关于该函数调用叙述中错误的是

A、函数调用可以作为独立的语句存在

B、函数调用可以作为一个函数的实参

C、函数调用可以出现在表达式中

D、函数调用可以作为一个函数的形参

标准答案:8

知识点解析:在c语言中规定,无返回值的函数调用,可以作为表达式或表达式的

一部分.也可以作为一条语句:而有返回值的函数调用只能作为一个函数的实参

(即将其返回值传给相应的形参),而不能作为形参(因为形参是在函数定义时说明

的)。

38、以下程序运行后的输出结果是ointd=l:fun(intp){staticintd=5:

d+=p;printf(M%d">D);returnd;)main()(inta=3;printf("%d\n,fun(a+fun(D)));|

A、699

B、669

C、61515

D、6615

标准答案:4

知识点解析:静态局部变量在编译时赋初值,即只赋初值一次,在程序运行时它已

有初值。以后每次调用时不再重新赋初值而只是保留上次函数调用结束时的值,而

对自动变量赋初值,不是在编译时进行的,而在函数调用时进行,每调用一次函数

重新给一次初值,相当于执行一次赋值语句。本题在程序开头定义了全局变量d并

赋初值1,在被调函数fun()中,定义了静态局部变量d,初值为5。在第一次调用

函数fun时,d初值为5,p由主函数传递过来的值为1,则d=d+p=5+l=6,由于d

是静态局部变量,在函数调用结束后,它仍保留d=6。再次调用fun函数,d的初

值为6,而由主函数传递的p的值为9,则此时d=d

温馨提示

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

评论

0/150

提交评论