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

下载本文档

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

文档简介

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

(共9套)

(共507题)

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

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

10分。)

1、线性表L=(al,a2,a3,...ai,...an),下列说法正确的是()

A、每个元素都有一个直接前件和直接后件

B、线性表中至少要有一个元素

C、表中诸元素的排列顺序必须是由小到大或由大到小

D、除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件

和直接后件

标准答案:8

知识点解析:暂无解析

2、设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,K则T

中的叶子结点数为()

A、8

B、7

C、5

D、5

标准答案:1

知识点解析:暂无解析

3、设有下列二叉树:对此二叉树前序遍历的结果为()

A、ZBTYCPXA

B、ATBZXCYP

C、ZBTACYXP

D、ATBZXCPY

标准答案:2

知识点解析:暂无解析

4、结构化程序设计的一种基本方法是()

A、筛选法

B、递归法

C、归纳法

D、逐步求精法

标准答案:8

知识点解析:暂无解析

5、软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()

A、模块间的关系

B、系统结构部件转换成软件的过程描述

C、软件层次结构

D、软件开发过程

标准答案:2

知识点解析:暂无解析

6、完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的

测试方法是()

A、黑箱测试法

B、白箱测试法

C、错误推测法

D、安装测试法

标准答案:1

知识点解析:暂无解析

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

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

A、控制流

B、加工

C、数据存储

D、源和潭

标准答案:1

知识点解析:暂无解析

8、在数据管理技术的发展过程中,可实现数据共享的是()

A、人工管理阶段

B、文件系统阶段

C、数据库系统阶段

D、系统管理阶段

标准答案:4

知识点解析:暂无解析

9、按条件f对关系R进行选择,其关系代数表达式是()

A、R|x|R

B、KRR

C、of((R)

D、兀f(R)

标准答案:4

知识点解析:暂无解析

10、公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有

多名职员,从职员到部门的联系类型是()

A、多对多

B、一对一

C、多对一

D、一对多

标推答案:4

知识点解析:暂无解析

二、选择题(1分)(本题共10题,每题,.0分,共10

分。)

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

A、C程序由函数和过程组成

B、C程序由主函数组成

C、C程序由函数组成

D、C程序中,主函数必须放在其他函数之前

标准答案:4

知识点解析:暂无解析

12、下列运算符中,不属于关系运算符的是()

A、<

B、>=

C、==

D、!

标准答案:8

知识点解析:暂无解析

13、下列属于合法的C语言无符号短整型常数的选项是()

A、-2

B、65536

C、123L

D、50000

标准答案:8

知识点解析:暂无解析

14、设a,b均为float型变量,则以下非法的赋值语句是()

A、b=(a/5)/8;

B、++a

C、a=1.0,b=2.0,

D、a+=3;

标准答案:4

知识点解析:暂无解析

15、设有如下变量定义:doublea=3.500000;floatb=2.5;intm=2,n=3;则表

达式”(float)(m+n)/2+(int)a%(int)b”的值是()

A、2.5

B、3.5

C、4.5

D^表达式不正确

标准答案:2

知识点解析:暂无解析

16、先用以下语句定义字符型变量:chare;然后要将字符a赋给变量c,则下列

语句中正确的是()

A^c='a';

B、c="a";

C、c="97”;

D、c='97'

标准答案:1

知识点解析:暂无解析

17、设有语句chara=''72';,则变量a()

A、包含1个字符

B、包含2个字符

C、包含3个字符

D、说明不合法

标准答案:1

知识点解析:暂无解析

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

A、C程序中,赋值运算符的优先级最低

B、若a是实型变量,C程序中允许进行以下赋值:a=IO,因此,实型变量中允许

存放整型数

C、若a和b类型相同,在执行了赋值a=b后b中的值将放入a中,b中的值将丢

D、在C程序中,除号运算符“尸两边的类型相同时才能进行相除运算

标准答案:8

知识点解析:暂无解析

19、已有定义:doublex;inti:,能正确给x赋70000.0的表达式是()

A、x=7000*10

B、x=70000

C、x=35OOO+35OOO

D、i=700,x=i*100

标准答案:2

知识点解析:暂无解析

20、若要求在if后一对圆括号中表示a不等于。的关系,则能正确表示这一关系的

表达式为()

A、a<>0

B、!a

C、a=0

D、a

标准答案:8

知识点解析:暂无解析

三、选择题(2分)(本题共30题,每题7.0分,共30

分。)

21、下列定义正确的是()

A、staticinta[]={1,2,3,4,5)

B、intb|]={2,5)

C、inta(10)

D^int4e[4]

标准答案:1

知识点解析:暂无解析

22、下述程序段的执行结果是()#include<stdio.h>voidmain(){intx;for(x=l;x

<=100;x++)if(++x%3==0)if(++x%4==0)if(++x%7==0)printf("%d",x);}

A、75

B、76

C、77

D、84

标准答案:4

知识点解析:暂无解析

23、有以卜程序#inc1ude<stdio.h>main(){int.i=0,a=0;while(i<20){for(;;)

{if((i%10)==0)break;elsei-;)i+=l1;a+=i;}printf("%d\n'*,a);)程序运行后的

输出结果是()

A、21

B、32

C、33

D、11

标准答案:2

知识点解析:暂无解析

24、有以下程序main。{inly=10;do(y-;)while(-y);printf("%d\n",y--);}程

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

A、-1

B、1

C、8

D、0

标准答案:8

知识点解析:暂无解析

25、若有如下说明:inta,b=5,九=&a;则能完成a二b赋值功能的语句是()

A、&a=&b;

B、*t=b;

C、%=&b;

D、*a=*t;

标准答案:2

知识点解析:暂无解析

26、若变量已正确定义并赋值,对库函数错误调用的是()

A、k=scanf(u%d%d",&i,&j);

B、printfCAWdWn",k);

C^getchar(ch);

D、putchar(ch);

标准答案:4

知识点解析:暂无解析

27、若有如下程序:sub(inta,intb,int*z){*z=a-b;return;)main(){inta=1,

b=2,c=3,d,e;sub(a,b,&D);sub©d,&e);printf("%d",e);}则程序运

行后的输出结果是

A、3

B、4

C、5

D、6

标准答案:8

知识点解析:暂无解析

28、若有如下程序;main(){char*p="china,';p+=1;printf("%d\nH,p);}则程序

运行后的输出结果是()

A^china

B、字符h的地址

C、hina

D、字符h的ASCII码值

标准答案:2

知识点解析:暂无解析

29、一个C程序由函数A、B、C和函数P构成,在函数A中分别调用了函数B和

函数C,在函数B中调用了函数A,且在函数P中也调用了函数A,则可以说()

A、函数B中调用的函数A是函数A的间接递归调用

B、函数A被函数B调用是函数A间接递归调用

C、函数P直接递归调用了函数A

D、函数P中调用的函数A是函数P的嵌套

标准答案:8

知识点解析:暂无解析

30、下列程序的输出结果是()structabc{inta,b,c;}:main(){structabc

s[2]={{L2,3},{4,5,6)};intt;t=s[0].a+s[l].b;printf(H%d\nn,t);}

A、3

B、4

C、5

D、6

标准答案:8

知识点解析:暂无解析

31、若以下对fun函数的调用是正确的:x=fun(fun(a,b,c),(a+b,a+c),

a+b+c);则fun函数的形参个数为()

A、3

B、4

C、5

D、6

标准答案:1

知识点解析:暂无解析

32、若有说明:ini*p,m=51;n;,以下正确的程序段是()

A、p=&m;scanf("%d",&p)

B、p=&n;scanf("%d",&P)

C、scanf("%d",&p)p=&n;

D^p=&n;p=&m;

标准答案:8

知识点解析:暂无解析

33、以下程序调用findmax函数返回数组中的最大值findmax(int*a,intn){int

*p,*s;for(p=a,s=a;p-a<n;p++)if()s=p;rcturn(*s);)main(){int

x[5]={12,21,13,6,18};primf("%d\n”,findmax(x,5));}在下划线处应填入

的是()

A、p>s

B、*p>*s

C>a[p]>a[s]

D、p-a>p-s

标准答案.2

知识点露斤:暂无解析

34、若指针p已正确定义,要使p指向两个连续的整型动态存储单元,则正确语句

是()

A、p=2*(int*)malloc(sizeof(int));

p=(int*)calloc(2*sizeof(int));

C、p=(int*)malloc(2*sizeof(int));

D^p=2*(int*)calloc(sizeof(int));

标准答案:4

知识点解析:暂无解析

35、下列程序的输出结果是()main。{char*pl,*p2,str[50]="xyz";p^^abcd";

p2="ABCD";strcpy(str4-2,strcat(pl+2,p2+l));printf("%s",str);}

A、xyabcAB

B>abcABz

C^Ababcz

D、XycdBCD

标准答案:8

知识点解析:暂无解析

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

A、一个变量的作用域完全取决于变量定义语句的位置

B、全局变量可以在函数以外的任何部位进行定义

C、局部变量的、'生存期.'只限于本次函数调用,因此不可能将局部变量的运算结果

保存至下一次调用

D:一个变量说明为sialic存储类是为了限制其他编译单位的引用

标准答案:2

知识点解析:暂无解析

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

A、〜

B、&

C、A

D、|

标准答案:4

知识点解析:暂无解析

38、下面的说法不正确的是()

A、函数调用时,先求出实参表达式,然后带入形参。而使用带参的宏只是进行简

单的字符替换

B、函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译

时进行的,在展开时也要分配内存单元,进行值传递

C、对于函数中的实参和形参都要定义类型,二者的类型要求一致,而宏不存在类

型问题,宏名有类型

D、调用函数只可得到一个返回值,而用宏可以设法得到几个结果

标准答案:2

知识点解析:暂无解析

39、fscanf函数的正确调用形式是()

A、fscanf(fp,格式字符串,输出表列);

B、fscanf隔式字符串,输出表列,fp);

C、fscanf(格式字符串,文件指针,输出表列),

D、fscanf(文件指针,格式字符串,输入表列);

标准答案:8

知识点解析:暂无解析

40、以下程序的运行结果是()#defineMAX10inta[MAX],i;main()

{printf("\n");subl();sub3(A),sub2(),sub3(A);)sub2(){inta[MAX],i,max;

max=5;for(i=0;iVmax;i++)a[i]=i;)sub1(){for(i=0;i<MAX;i++)a[i]=i+i;}

sub3(inta[]){inti;for(i=0;i<MAX,i++)prinlf("%d",a|i));prinlf("\n");}

A、02468101214161801234

B、01234024681012141618

C、012345678901234

D、024681012141618024681012141618

标准答案:8

知识点解析:暂无解析

41、有以下结构体说明和变量的定义,且如下图所示指针p指向变量a,指针q指

向变量bo则不能把结点b连接到结点a之后的语句是()structnode{chardata;

structnoe*next;)a,b,*p=&a,*q=&b;

dmnext*乃

,5iiq;।\oj

A、a,next=q;

B、p.next=&b;

C、p->ncxt=&b;

D^(*p).next=q;

标准答案:2

知识点解析:暂无解析

42、若有如下定义:inl(*p)(),*q();则下列说法正确的是()

A、p是一个函数名,q是一个指针变量

B、p是一个指向整型变量的指针变量,q是一个指向一维数组的指针变量

C、p和q是等价的,都是指针变量

D、p是指向函数的指针变量,函数的返回值是整型数据;q是带回指针值的函数

标准答案:8

知识点解析:暂无解析

43有以下程序#ineludeVstdio.h>main。{floatx,y;scan{C'%f',&x);if(x<

0.0)y=0.0;elseif((x<5.0)&&(x!=2.0))y=1.0/(x+2.0);elseif(x<IO.O)y=1.0/x;

elsey=10.0;y);}若运行时从键盘上输入2.0<CR>(VCR>表示

回车),则上面程序的输出结果是()

A、0

B、0.25

C、0.5

D、1

标准答案:4

知识点解析:暂无解析

44、以下.程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个

合法的整型单元的是

A、main()|int*p;fun(p);...}intfun(int*p){ints;p=&s;}

B>main{int*p;fun(&p);...}intfun(int**p){ints;*p=&s;}

C、#include<stdlib.h>main(){int*p;fun(&p);...}intfun(int**p)

{*p=(int*)malloc(2);}

D^#includc<stdlib.h>main(){int*p;fun(p);...}intfun(int*p)

{p=(int*)malloc(sizeof(int));}

标准答案:4

知识点解析:暂无解析

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

main(){chars[100]intc,i;scanf("%c",&C);scanf(H%d",&i);scanf(n%s",s);

printf("%c,%d,%s\n'\c,i,s);)

A、1,456,789

B、1,23,456

C、1,23,456,789

D、123,456,789

标准答案;2

知识点解析:暂无解析

46、有以下程序#includ2<stdio.h>#include<string.h>main(){char

bl[8]=',abcdefg,\b2[8],*pb=bl+3,while(-pb>bl)strcpy(b2,pB);

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

A、8

B、3

C、1

D、6

标准答案:8

知识点解析:暂无解析

47、设有如下定义和声明:struct3{inta;structs*next);structsx[4]={1,

&x[l],3,&x[2],5,&x[3],7,\(F),*t;t=&x[0];则下列表达式值为2的是

()

A、++l->a

B、(*t).a++

C、t->a++

D、t++->a

标准答案:1

知识点解析:暂无解析

48、若有如下程序:main(){inta=6;charch=c;printf(',%d\n,\(a&2)&&(ch

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

A、0

B、1

C、2

D、3

标准答案:1

知识点解析:暂无解析

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

A、下列结构体定义时,占据了5个字节的空间slructs{intnum;intage;char

sex;}

B、结构体的成员名可以与程序中的变量名相同

C、对结构体中的成员可以单独使用,它的作用相当于普通变量

D、结构体的成员可以是一个结构体变量

标准答案:1

知识点解析:暂无解析

50,若要打开A盘中user子目录下名为aaa.txt的文本文件进行读、写操作,下

面符合此要求的函数调用是()

A、fopen("A:\user\aaa.txt",T')

B、fopen(,'A:\\user\\aaa.txt","r+")

C>fopcn(nA:\uscr\aaa.txt","rb")

D、fopen(nA:\\user\\aaa.txt",nw")

标准答案:2

知识点解析:暂无解析

四、公共基础填空题(本题共5题,每题7.0分,共5

分。)

51、实现算法所需的存储单元多少和算法的工作量大小分别称为算法的【】。

标准答案:空间复杂度和时间复杂度

知识点解析:算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小

的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间

复杂性。

52、数据结构包括数据的逻辑结构、数据的【】以及对数据的操作运算。

标准答案:存储结构

知识点解析:数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数

据的操作运算。

53、一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了

软件的【】。

标准答案:可重用性

知识点解析:继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减

少了程序中的冗余,提高软件的可重用性。

54、面向刑象的模型中,最基本的概念是对象和【】。

标准答案:类

知识点解析:面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体

的模型化;将属性集和方法集相同的所有对象组合在一起,可以构成一个类。

55、软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性

维护。

标准答案:完善性

知识点。析:软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护

和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需

要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件

的可维护性。

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

56、下列程序的运行结果为[]o#include<math.h>#include<stdio.h>

main(){ints=l;floatn=1,pi=0;doublet=l;while(fabs(t)>=2e-6){pi+=t;

n+=2;s=-s;t=s/n;)pi*=4;printf('rpi=%.6f\n'\pi);}

标准答案:3.141592

知识点解析:暂无解析

57、下列程序中,字符串中各单词之间有一个空格,则程序的输出结果是【】。

#includemain(){charstrl[]=HHowdoyoudo",*pl=strl;strcpy(strl+strlen(strl)/2,

"esshe");printf("%s\n",pl);}

标准答案:Howdoesshe

知识点解析:暂无解析

58、设在主函数中有以下定义和函数调用语句,且fun函数为void类型:请写出

fun函数的首部【】(要求形参名为b)。main(){doubles[I0][22];intn;.......fun

标准答案:voidfun(doubleb[10][22])

知识点解析:暂无解析

59、下列程序的功能是计算机一元二次方程的根。include[]include<stdio.h

>main(){floata,b,c,disc,x1,x2,realpart,imagpart;scanf("%f^)f%f',&a,&b,&c);

printf("Theequation");if([]<=lc-6)printf(nisnotquadratic\n");elsedisc=b*b-

4*a*c;if(fabs(disc)<=le-6)printf("hastwoequalroots:%-8.4f\n,|,-b/(2*a));else

if([]){xl=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf(Hhasdistinctreal

roots:%8.4fand%.4f\n",xl,x2);)else{realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);

printf("hascomplexroots:\nM);printf(H%8.4f+%.4fi\n",realpart,imagpart);printf

("%8.4f-%.40^'*,realpart,imagpart);))

标准答案:Vmalh.h>fabs(a)fabs(disc)=le-6

知识点解析:暂无解析

60、下列程序的功能是计算机平均成绩并统计90分以上的人数。main(){intn,m;

floatgrade,average;average-n-m-[];while([]){scanf("%「',&grade);if(grade

<0)break;m++;average+=grade;if(grade<90)[];m++;)if(n)

printf("%.2f%d\n",average/n,m);)

标准答案:0Icontinue

知识点解析:暂无解析

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

一、选择题(1分)(本题共70题,每题1.0分,共70

分。)

1、对长度为n的线性表进行顺序查找,在最坏的情况下所需要的比较次数为()。

A、log2n

B、n/2

C、n

D、n+1

标准答案:c

知识点0析:在平均情况下,利用顺序查找法在线性表中查找一个元素,大约要与

线性表中一半的元素进行比较,最坏情况下需要比较n次。

2、对如下二叉树:ABDECF进行后序遍历的结果为()。

A、ABCDEF

B、DBEAFC

C、ABDECF

D、DEBFCA

标准答案:D

知识点解析:暂无解析

3、冒泡排序在最坏情况下的比较次数是()。

A、n(n+l)/2

B、nlog2n

C、n(n-I)/2

D、n/2

标准答案:C

知识点解析:在最坏情况下冒泡排序法需要比较的次数为n(n-l)/20

4、两个或两个以上模块之间关联的紧密程度称为()。

A、耦合度

B、内聚度

c营久后

D:数冠传输特性

标准答案:A

知识点解析:耦合度是模块间互相连接的紧密程度。

5、在软件开发中,需求分析阶段产生的主要文档是()。

A、可行性分析报告

B、软件需求规格说明书

C、概要设计说明书

D、集成测试计划

标准答案:B

知识点解析:软件需求规格说明书是需求分析阶段最后的成果,它是作为需求解析

的一部分而制定的可交时文档。在概要设计阶段,需要编写的文档有:概要设计说

明书、数据库说明书、集成测试计划等。

6、下列选项中不属于结构化程序设计方法的是()。

A、自顶向下

B、逐步求精

C、模块化

D、可复用

标准答案:D

知识点解析:结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,

模块化,限制使用gol。语句。

7、程序流程图中有箭头的线段表示的是()。

A、图元关系

B、数据流

C、控制流

D、调用关系

标准答案:C

知识点解析:程序流程图是软件过程设计中常用的图形描述工具之一。构成程序流

程图的最基本符号有:-或1,表示控制流;□表示加工步骤;◊表示逻辑条件。

8、在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是()。

A、并

B、交

C、投影

D、笛卡儿乘积

标准答案:B

知识点解析:并运算会增加元组个数,投影运算会减少表中属性个数,笛卡儿积既

会增加属性个数,又会增加元组个数。

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

A、数据库系统是一个独立的系统,不需要操作系统的支持

B、数据库系统的根本目标是要解决数据的共享问题

C、数据库管理系统就是数据库系统

D、以上三种说法都不对

标准答案:B

知识点解析:数据库系统(DBS)是由数据库(数据)、数据库管理系统(软件)、数据库

管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成的运行实体。数据库

技术的根本目标是解决数据的共享问题。

10、设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),

课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为

()o

A、课号,成绩

B、学号,成绩

C、学号,课号

D、学号,姓名,成绩

标准答案:c

知识点。析:在二维表中凡能唯一标识元组的最小属性集称为关键字,关键字具有

标识元组、建立元组间联系等重要作用。此题中,(学号,课号)是表SC的主键,

学号、课号分别为外键,学号是表S的关键字,课号是表C的关键字。

二、填空题(本题共10题,每题1.0分,共10分。)

II、执行以下程序后的输出结果是()。main(){inta=10;a=(3*5,a+4);

printf("a=%d\n',>A);

标准答案:a=14

知识点解析:在“逗号表达式(表达式1,表达式21中,其运算方法是先求表达式1

的值,然后求表达式2的值,整个逗号表达式的值是表达式2的值。首先

3*5=15,a=10,a+4=14,最后输出的运算结果为14。

12、以卜程序运行后的输出结果是()。main(){charc;intn=100;loatf=10;

doublex;x=f*=n/=(c=50);printf("%d%^nu,n,x);}

标准答案:0

知识点解析:暂无解析

13、以下程序运行后的输出结果是()。main(){inta=l,b=2,c=3;

if(c=A)printf(',%d\nM,C);elseprintf(,,%d\nH,B);)

标准答案:1

知识点解析:程序中的if条件是赋值语句,a的值1赋给了变量c,表达式的

值也为1,条件为真,输出C的值为1。

14、执行以下程序的输出结果是()。#include<stdio.h>#defineM5#defineN

M+Mmain(){intk;k=N*N*5;printff'%d\n",k);}

标准答案:55

知识点解析:本题考查的重点是对宏定义的理解。#deflne指令定义一个标识符和

一个串,编译程序在对C源程序处理时.发现该标识符都用该串替换,因此,在

语句k=N*N*5将替换成1<=乂+乂*1^+^1*5后,M被替换成5,从而

k=5+5*5+5*5=55。

15、以下程序中函数fun的功能是:统计person所指结构体数组中所有性别(sex)为

M的记录的个数,存入变量n中,并作为函数值返回。请填空:#include<stdio.h

>#defineN3typedefstruct{intmum,charname|IO];charsex;)SS;intfun(SS

person[]){inti,n=0;for(i=0;i<N;i+4-)if(()==,M,)n—1-;returnn;)main(){SS

W[N]={{1/AA\F},{2,intn;n=fun(W);

printf("n=%d\n",n);}

标准答案:person[i].scx

知识点解析:暂无解析

16、以「程序运行后的输出结果是()。#includechar*ss(char*s){char*p,t;

P=s+l;t=*s;while(*p){*(P-1)=*P;P++;}*(P-l)=t;returns;}main()

{char*p,str[10]="abcdcfgh";p=ss(str);printf("%s\n",p);}

标准答案:bcdefgha

知识点解析:暂无解析

17、人员基本信息一般包括:身份证号、姓名、性别、年龄等。其中可以作为主关

键字的是()。

标准答案:身份证号

知识点解析:主关键字是表中区别不同记录的标识,在该表中只有身份证号能具有

这个作用,所以用其作为主关键字。

18、若有定义语句:inla=5;,则表达式a++的值是1)。

标准答案:5

知识点解析:表达式的值是5,而变量a的值为6。这里要注意区分表达式的

值和变量a的值。

19、若有语句doublex=17;inty;,当执行y=(int)(x/5)%2;之后y的值为()。

标准答案:1

知识点解析:(inl)(x/5)=3,3%2=lo

20、以下程序运行后的输出结果是()。#include<stdio.h>main(){intx=20;

printf("%d",0<x<20);printf("%d\n",0<x&&x<20);}

标准答案:10

知识点解析:表达式0<xV20,首先计算OVx,其值为1,再计算1V20,其值为

1,输出1;表达式0Vx&&xV20,OVx为1,xV20为0,再计算1&&0,其值

为0,输出0。所以输出结果为10。

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

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

分。)

1、c语言的基本单位是()。

A、函数

B、过程

C、子程序

D、子函数

标准答案:A

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

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

2、设有如下三个关系表下列操作中正确的是

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进行笛卡尔积运算

得到的。

3、串的长度是()。

A、串中不同字符的个数

13、串中不同字母的个数

C、串中所含字符的个数且字符个数大于0

D、串中所含字符的个数

标准答案:8

知识点解析:串的长度是指串中字符的个数,且其字符个数可以为0。

4、若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序

列是。

A、1,4,3,2

B、2,3,4,1

C、3,1,4,2

D、3,4,2,1

标准答案:4

知识点解析:栈是一种后进先出表,选项C中,先出栈的是3,说明此时栈内必然

有1,2,由于I先于2进栈,所以1不可能在2之前出栈,故选项C这种出栈序

列是不可能的。

5、在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。与程序的

效率相比,人们更重视程序的

A、安全性

B、一致性

C、可理解性

D、合理性

标准答案:4

知识点解析:结构化程序设计方法设计出的程序具有明显的优点。其一,程序易于

理解、使用和维护;其二,提交了编程工作的效率,降低了软件开发成本。其中,

人们更重视前者。

6、对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为o

A、n-I

n

C、n+1

D、2n

标准答案:4

知识点解析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元

(即指针域),加上头指针,至少需要n+1个指针单元。

7、两个或两个以上的模块之间关联的紧密程度称为。

A、耦合度

B、内聚度

c箕型庶

D:数加传输特性

标准答案:A

知识点解析:耦合度是模块间互相连接的紧密程度的度量;内聚度是一个模块内部

各个元素间彼此结合的紧密程度的度量。

8、下列对队列的叙述正确的是

A、队列属于非线性表

B、队列按“先进后出”原则组织数据

C、队列在队尾删除数据

D、队列按“先进先出”原则组织数据

标准答案.D

知识苫3析:队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操

作,另一端进行删除操作。其中,允许插入的一端称为队尾(rear),允许删除的一

端称为队首(front)。队列具有先进先出的特点,它是按“先进先出”的原则组织数据

的,故本题答案为D)。

9、设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课

程C(课号,课名),Q选课SC(学号,课号,成绩),则表SC的关键字(键或码)为

()。

A、课号,成绩

B、学号,成绩

C、学号,课号

D、学号,姓名,成绩

标准答案:C

知识点解析:关键字是由属性或属性的组合,其值能够唯一地标识一个元组,而在

SC中学号和课号的组合可以对元组进行唯一的标识。

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

分。)

10、两次运行下列的程序,如果从键盘上分别输入3和1,则输出结果是()。

main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf(M%d\n",x—);}

A、4和2

B、4和1

C、4和0

D、3和1

标准答案:A

知识点解析:本题考查ifelse语句。首先scanf函数通过键盘读入x的值。当x=3

时,第一个if语句,先判断条件,取x的值3和2比较,然后将x的值加1,发现

条件成立,执行下列的prinlf语句,输出x的值4。当x=l时,第一个if语句,先

判断条件,取x的值1和2比较,然后将x的值加l(x的值变为2),发现条件不成

立,执行下列的else语句,先输出x的值2,再将x的值减1。

11、在数据流图中,带有箭头的线段表示的是()。

A、控制流

B、数据流

C、模块调用

D、事件驱动

标准答案:B

知识点解析:数据流图中带箭头的线段表示数据流,沿箭头方向传递数据的通道,

一般在旁边标注数据流名。

12、有以下程序//includemain(){inta;scanf("%d”,&a);if(a++<9)printf(44%d\n,\a);

elseprintf("%d\n”,a--);)程序运行时从键盘输入9〈回车〉,则输出结果是

A、11

B、10

C、9

D、8

标准答案:B

知识点解析:本题考查的是if…else选择结构和变量自加?自减运算。从键盘输入9

问车后方的值为9,if语句中,先判断a<9,再执行a自加i(a为10)运算,此时if语句值

为假,执行else语句;在else语句中,同样先执行输入a的值,再执行a自减运算,故输

出结果为10o

13、若要求从键盘读人含有空格字符的字符串,应该使用函数()。

A、getc()

B、gets()

C^getchar()

D、scanf()

标准答案:2

知识点新斤:gete()函数是从文件指针指定的文件中读入一个字符,并把它作为函

数值返回;getchar。函数是从终端(或系统隐含指定的输入设备)输入一个字符,

gelc()和getehar。都不能读字符串(可以与循环语句结合输入一个字符串):seanf(涵

数不能输入带空格的字符串;gets。函数可以从键盘读入空格字符。

14、下列程序的运行结果为omain(){intn;for(n=l;n<=10;n++)

{if(n%3==0)continue;printf("%d",n);))

A、12457810

B、369

C、12

D、12345678910

标准答案:1

知识点解析:暂无解析

15、C语言中各种基本数据类型的存储空间长度排列为()

A、char<long<int<float<double

B、double<float<long<int<char

C>char<int<long<float<doublc

D、float<int<long<chai<double

标准答案:4

知识点解析:暂无解析

16、以下合法的赋值语句是。

A、X=Y=100

B、D-;

C、X+Y;

D、C=int(A+B)

标准答案:2

知识点解析:本题中的答案A与D都缺少“广,而答案C中,表达式是不能独立成

为语句的,答案B使用了C语言的自减运算符它就相当于口=»1,所以答案B为

一赋值语句。

17、设x为int型变量,执行以下语句,x=10;x+=x=x・x;x的值为。

A、10

B、20

C、30

D、40

标准答案:2

知识点解析:本题x=10,表达式"x+=x=x・x;”的求解步骤如下:先进行x・=x・x的

运算,相当于x=x-(x-x)=x=10;再进行x+=x的运算,HPx=x+x=20o

18、下列能正确定义一维数组的选项是()。

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

chara口二{0,1,2,3,4,5};

C、char

Dsinta[5]="0123";

标准答案:2

知识点解析:在定义数组时,如果赋给的初始值个数大于数值的长度,这样就会越

界,因此选项A)错误;选项C)中定义的是一个字符变量C:选项D)中整型数组a

中只能存储整型数据,而不能存储字符串常量“0123”。

19、已知i、j、k为ini型变量,若要从键盘输入2、3、4<CR>,使i、j、k的值

分别为2、3、4下列正确的输入语句是()。

A、scanf("%3d,%3d,%3d“,&i,&j,&k);

B、scanR"%d,%d,%d",&i,&j,&k);

C、scanfT%d%do/od“,&i,&j,&k);

D、scaaf(''i=%d,j=%d,k=%d",&i,&j,&k);

标准答案:2

知识点解析:函数scanf()的调用形式是:scanf(格式字符串,输入项地址表)。其

中,“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地

址。若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这

些字符,其中的逗号也必须输入。

20、设有定义:longx=-123456L;,则以下能够正确输出变量x值的语句是

A、printf("x=%d\n",x);

B、printf(nx=%ld\n'\x);

C、printf(nx=%8dL\n",x);

D、printf("x=%LD\n",x);

标准答案:B

知识点解析:在语言环境下,输出long型数时,在%和~之间必须加1(L的小

写);输出double型数时,在%和f(e)之间也必须加1。

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

分。)

21、以下能正确定义二维数组的是o

A、inta口[3];

B.inta[][3]={2*3);

C>inta[][3]={};

D.inta[2][3]=((l),{2},{3,4}}:

标准答案:B

知识点解析:(1)二维数组的定义二维数组的定义方式为:类型说明符数组名[常量

表达式][常量表达式二维数组在内存中是按行优先的顺序存放的,即先存放第

一行的元素,再存放第二行的元素,依次类推。(2)二维数组元素的引用二维数组

元素的表示形式为:数组名[下标][下标],下标可以是整型常量或整型表达式其范

围为:0〜(常量表达式-1)。(3)二维数组的初始化可以用以下方法对二维数组元素

初始化:①分行给二维数组赋初值例如:inta⑵⑵={{1,2},{3,4}};这种赋值方

式比较直观,把第1个大括号内的数据赋给第1行的元素,第2个大括号内的数据

赋给第2行的元素,即按行赋值。②可以将所有数据写在一个大括号内,按数组

排列的顺序对各个元素赋初值。③可以对部分元素赋初值,没有初始化的元素值

为0。④如果对全部数组元素赋初值,则定义数组时对第一维的长度可以不指

定,但第二维的长度不能省略。

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

A、inta=b=0;

B>charA=65+l,b='b';

C、floata=1,*b=&a,*c=&b;

D、doublea=0.0;b=1.1;

标准答案:B

知识点解析:暂无解析

23、以下叙述中错误的是

A、sets函数用于从终端读入字符串

getchar函数用于从磁盘文件读入字符

C、fputs函数用于把字符串输出到文件

D、fwflle函数用于以二进制形式输出数据到文件

标准答案:B

知识点解析:gctchar函数的作用是从终端读入一个字符。

24、下列字符数组初始叱语句中,不正确的是()。

A^charc[]=,goodmoming,;

B、charc[20]"goodmoming";

C、charc[]={,a\,b\,c\,d,};

D^charc[]={"goodmorning");

标准答案:A

知识点角》析:本题考查两个概念:①用单引号括起来的一个字符常量只能存放一

个字符;②C语言中没有字符串变量,只能用字符数组来存储字符串。选项A)中

一个单引号内放了若干个字符是错误的;选项B)和选项D)选项中将一个字符串赋

值给一个字符数组是允许的。

25、设变量a、b、c、d和y都己正确定义并赋值。若有下列if语句if(aVb)if(c=

=d)y=0;elsey=l;该语句所表示的含义是()。

*

»=1Ia>b

A、

fo旦I

y=〈]"油口ed

B、

0且

/=1l且/

C、

0a<J)flc^d

y=<Ictd

D、

标准答案:C

知识点解析:语句if(c==D)y=O;elsey=l;是if(a〈B)语句的一个子句。所以整

个C语句表达式的意思是:在、aVb的情况下,如果c=d则y=0,否则y==

lo所以,选项C)为止确答案。

26、下列程序的输出结果是()。#includemain(){inta=0,i;for(i=l;i<5;i++)

{switch(i){case0;case3:a+=l;case1:case2:a=2;default:a+=3;))

printf("%d",a);)

A、19

B、18

C、6

D、8

标准答案;A

知识点解析:本题考查swilchcase开关语句.default退出继续循环。当时.执

行easel,因为没有break语句,所以依次往下运行,a=a+2=2,a=a+3=5;当i=2

时,执行case2,没有break语句,所以依次往下运行,a=a+2=7,a=a+3=10;当

i=3时,执行case3,当/@+1=11,没有break语句,所以依次往下运行,

a=a+2=13,a=a+3=16;当i=4时。没有case语句,则执行default,a=a+3=19,i=5

不成立,循环结束。表达式的右边出现变量本身,选项D中字母E后面的数应该

为整数,所以不对。

27、以下程序的输出结果是______o

A、54321

B、12345

C、12345

D、543210niain(){intw=5;fun(w);printf("\nH);}fun(int

k){if(k>0)fun(k-I);printf(“%d"”,k);}

标准答案:B

知识点解析:暂无解析

28、C语言规定,简单变量作实参时,它和对应形参之间的数据传递方式是

A、由实参传给形参,再由形参传回给实参

B、地址传递

C、单向值传递

D、由用户指定传递方式

标准答案:C

知识点解析:暂无解析

29>有以下程序:#include<stdio.h>main(){FILE*fp;inti,k,n;

fp=fopen("data.dar'Vw+');for(i=l;i<6;i++){fprintf(fp,"%d",i);if(i%3==0)

fprintf(fp,"\n");}rewind(fp);fscanf(fp,"%d%d",&k,&n);printf(H%d%d\n",k,n);

fclose(fp);}程序运行后的输出结果是()。

A、00

B、12345

C、14

D、12

标准答案:8

知识点解析:程序首先定义了一个文件指针fp,并使用fopen()函数以“w+”方式新

建一个可读写文件“datadat”。然后使用一个for循环,循环变量i从1递增到5,

在循环体中每次写入循环变量i的值和4个空格,当i能被3整除的时候写入一个

换行符。所以循环结束时,文件中的内容应该为:12345接下来程序使用

rewind。函数,将文件的读写指针调回起始位也。并调用fscanf()函数从文件中读取

两个整数到变量k和n。所以最终输出应该为:12。故本题选D。

30、有如下程序:main(){inta[3][3]={{1,2},{3,4),{5,6}),i,j,s=O;for(i=l;i<3;i++)

for(j=0;j<=i;j++)s+=a[i]|j];printf("%d\n",s);}该程序的输出结果是。

A、18

B、19

C、20

D、21

标准答案:1

知识点解析:题中的外循环只执行了2次:第1次:a[l][0]=3,a[l][l]=4,所以

s=7;第2次:af21[01=5,a⑵口]=6,a⑵⑵=0,所以s=7+5+6+0=18。

31、下列程序的运行结果为o#defineMSDOS#ifdefMSDOS#define

INTEGERSIZE32#clse#deflneINTEGERSIZE16#endifmain(){printf

C,intcger_size=%d\n",INTEGER_SIZE);}

A、integersize=32

B、integer_size=16

C、integersize=32,integer_size=16

D、错误

标准答案:1

知识点解析:暂无解析

32、己知字母A的ASCH码值是65,字母a的ASCII码值是97,以下程序

omaini(){chara='A';intb=20;printh("%d,%on,(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。然后以八进

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

有对应输出格式的输出预表列就不会输出。

33、运行下面程序时,从键盘输入字母H,则输出结果是#include<stdio.h>

main(){charch;ch=gctchar();switch(ch){caseH':printt("Hcllo!\n");

case'G':printf("Goodmoming!\n");default:printf("Bye_Bye!\n");)}

A、Hello!

B、Hello!GoodMoring!

C、Hello!Goodmoming:Bye_Bye!

D^Hello!Bye_Bye!

标准答案:4

知识点解析:本题主要对swilch语句进行了考查。swiich语句的执行过程为:进入

switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配

的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,

则跳出switch语句,如果各case都不匹配时则执行default后面的语句。本题中ch

为字符'HL所以case、H,条件中的语句将被执行,由于没有break语句,所以

case'C'后的语句也被执行,由于同样的缺少break语句,所以default后的语句也

被执行了。

34、以下说法正确的是()

A、宏定义是C语句,所以要在行末加分号

B、可以使用#undef命令来终止宏定义的作用域

「、在进行宏定义时,宏定义不能层层置换

D、对程序中用双引号括起来的字符串内的字符,与宏名相同的要进行置换

标准答案:2

知识点解析:暂无解析

35、若有说明:int*p,m=5,n;,以下正确的程序段是()。

A、p=&m;scanf(H%d",&p)

p=&n;scanf("%dn,&p)

C、scsnf("%d",&p)p=&n;

D、p=&n;p=&m;

标准答案:8

知识点解析:p为指针型变量,在输入函数的地址列表中不用&,当给指针变量赋

值时是取变量的地址赋给指针变量,&为取地址运算符,因此只有选项D正确。

36、有以卜.程序main。{chars[]="159",*p;p=s;

printf("%c",*p++);printf("%c",*p++);)程序运行后的输出结果是

A、15

B、16

C、12

D、59

标准答案:1

知识点解析:自增运算符放在变量之前表示在使用变量之前,先使变量的值

加1;放在变量之后表示在使用变量之后,再使变量的值加1。语句p=s;使指针p

指向字符串s的首地址,第一次输出语句先输出字符"',指针p再往后移一位,指

向字符5的地址,第二个输出语句,同样先输出字符,5二指针p再往后移一位,

指向字符‘少的地址。

37、若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组

元素的地址为()o

A、334H

B、30DH

C、352H

D、31AH

标准答案:4

知识点解析:解答本题,首先要明白在对指针进行加,减运算的时候,数字“1”不

是十进制的数“1”,而是指“1”个存储单元长度,而1个存储单元长度占多少存储空

间,应该视具体情况而定。如果基本类型是ini型,移动1个存储单元的长度就是

位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个

字节。所以p+13所指向的数组元素的地址为:300H+(13*4)H=352H。

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

A、在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实

B、在C的函数中,最好使用全局变量

C、外部变量可以在函数之间传递数据

D、自动变量实质上是一个函数内部的局部变量

标准答案:2

知识点解析:编译时,编译系统不为局部变量分配内存单元,而是在程序运行中,

当局部变量所在的函数被调用时,编译系统根据需要要临时分配内存,调用结束空

间释放:全局变量一经定义,编译系统为其分配固定的内存单元,在程序运行的自

始至终都占用固定的单元。在内存不确定的情况下,

温馨提示

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

评论

0/150

提交评论