




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
家二级(C语言)笔试模拟试卷24
(共9套)
(共606题)
国家二级(C语言)笔试模拟试卷第1
套
一、公共基础选择题(本题共10题,每题7.0分,共
70分。)
1、计算机硬件组成中,CPU包含o
A、控制器和存储器
B、控制器和运算器
C、控制器、运算器和存储器
D、内存储器和外存储器
标准答案:2
知识点解析:暂无解析
2、与十六进制数CD相等的十进制数是______o
A、205
B、206
C、207
D、208
标准答案:1
知识点解析:CD=12*16+13=192+13=205。
3、软盘处于写保护状态时,其中记录的信息。
A、不可能丢失
B、不能被擦除,但能追加新的信息
C、不能通过写磁盘操作被更新
D、不能以常规方式擦除,但可以通过操作系统的格式化功能擦除
标准答案:4
知识点解析:暂无解析
4、将二进制数10100101转换为十六进制数应该是o
A、245
B、A5
C、B5
D、165
标准答案:2
知识点解析:(100010)2=(165)10=(A5)16。
5、一个采用顺序存储方式的线性表中,若线性表的第一个元素的存储地址是
200,每一个元素的长度是2,则第6个元素的地址是。
A、208
B、210
C、211
D、212
标准答案:2
知识点解析:顺序结构中,第n个元素的地址为An=A0+(n-l)*L(A为地址,L为
元素长度).
6、二分查找一个具有n个元素的有序表,其时间复杂度为。
A、O(n)
B、O(n2)
C、O(log2n)
D、(nlog2n)
标准答案:C
知识点解析:二分法中查找时间t与查找次数m呈比例关系,2m=n(n为极限查找
个数),m=log2n,所以查找时间免杂度与log2n相关。
7、在下列方法中,不用查找表中数据元素的关系进行查找的方法是_____o
A、有序表查找
B、二叉排序树查找
C、平衡二叉树
D、散列查找
标准答案:8
知识点解析:线性表查找和树型查找都是利用了数据元素之间的关系进行查找,只
有散列查找是利用关键词值与存储位置来进行查找。
8、软件系统生命周期的第一个阶段是。
A、软件分析阶段
B、软件设计阶段
C、软件运行阶段
D、软件维护阶段
标准答案:1
知识点解析:软件工程的第一个阶段是软件分析阶段。软件分析阶段的工作是由软
件分析员和用户一起来做的。软件分析的结果是分析人员写出的分析报告,该分析
报告实际上就是软件系统的系统总体设计方案。
9、数据字典是对数据定义信息的集合,它所定义的对象都包含于o
A、程序框图
B、软件结构
C、数据流图
D、方框图
标准答案:4
知识点解析•:数据字典是对数据定义的信息的集合,是对数据流图中包含的所有元
素定义的集合。数据流图和数据字典共同构成系统的逻辑模型,没有数据流图则数
据字典难以发挥作用,没有数据字典则数据流图就不严格。
10、在关系型的数据库管理系统中,3种基本关系运算是o
A、选择、投影和连接
B、选择、删除和复制
C、创建、修改和合并
D、统计、连接和分类
标准答案:1
知识点解析:在关系型数据库管理系统中,基本的关系运算有选择、投影和联接3
种操作。选择,指的是从二维关系表的全部记录中,把那些符合指定条件的记录挑
选出来。对于投影,是指从所有字段中选取一部分字段及其值进行操作,它是一种
纵向操作。投影操作可以改变关系的结构。而联接运算则通常是对两个关系进行投
影操作来连接生成一个新的关系。当然,这个新的关系可以反映出原来两个关系之
间的联系c
二、选择题(1分)(本题共10题,每题1.0分,共10
分。)
11、以下运算符中优先级最低的算符是_____O
A、&&
B、&
C、+=
D、?:
标准答案:4
知识点解析:本题中运算符优先级顺序从高到低依次是:&、&&、?:、+=。
12、以下能正确定义整型变量a,b和c,并为其赋初值1的语句是o
A、inta=b=c=1;
inta,b,c=l;
C>a=b=c=1;
D、inta=l,b=l,c=l;
标准答案:8
知识点解析:选项A中,变量b、c未定义;选项B中,a、b未赋值;选项C中
a、c均未定义。
13、设cl,c2均是char类型变量,则不正确的函数调用为。
A、printf("%c,%c,",cl,c2)
B、getchar(cI)
C、putchar(,\,)
D、putchar(c1)
标准答案:2
知识点解析:暂无解析
14、若m,y,z均为int型变量,则执行下面语句后m值是。
m=l;x=2;y=3;z=4;m=(m<x)?m:x;m=(n<y)?m:y;m=(m<z)?m;z;
A、1
B、2
C、3
D、4
标准答案:1
知识点解析:暂无解析
15、以下关于switch语句和break语句的描述中,正确的是______。
A、在switch语句中必须使用break语句
B、在switch语句中,可以根据需要使用或不使用break语句
C^break语句只能用于switch语句中
D、break语句是switch语句的一部分
标准答案:2
知识点解析:break语句可以根据需要,使用在循环体和switch语句体内,因此B
是可选项。
16、属于C语言中合法的常量是______o
A、1.52e
B、±100
C、'X,
D、xt'y'
标准答案:4
知识点解析:实数的指数形式中,e后面必须有一个整数,所以A错;B项错在无
~13这种形式的数;字符串常量是用双引号括起来的字符序列,所以D项错误。
17、若已知a=10,b=20,则表达式!a〈b的值为。
A、10
B、1
C、20
D、30
标准答案:2
知识点解析:!的优先级高于V,!a的值为0,OVb显然成立,该表达式的值为
lo
18、设a为整型变量,不能正确表达数学关系“lU<aV15”的C语言表达式是
A、10<a<15
B、a==1l||a==12||a==13||a==14
C、a>10&&a<15
D、!(a<=10)&&!(a>=15)
标准答案:1
知识点解析:选项A中10<a的结果是逻辑值0或1,再与15比较大小没有意
义,因此错误。
19、已知a的ASCII码为97,执行下面两个语句后,输出的结果为ochar
c1=97;c2=98;printf(,'%d%c',,cl,c2);
A、9798
B、97b
C、a98
D、ab
标准答案:2
知识点解析:整型数据和字符数据可以通用,变量cl和c2被定义为字符型,语句
cl=97和c2=98的作用相当于执行cl='a,和c2=,b'两语句。在输出语句中,%d%c
是输出格式符,要求在相应位置上分别输出一个整数和一个字符。
20己知x=3,y=2,则表达式x*=y+8的值为。
A、3
B、2
C、30
D、10
标准答案:4
知识点解析:表达式x*=y+8即x=x*(y+8),所以其值为3*(2+8)=30。
三、选择题(2分)(本题共30题,每题7.0分,共30
分。)
21、在C语言中,引用数组元素时,其数组下标的数据类型允许是
A、整型常量
B、整型表达式
C、整型常量或整型表达式
D、任何类型的表达式
标准答案:4
知识点解析:在引用数组元素时,下标表达式(包括常量)的值必须为整数。
22>以下的for循环ofor(x=0,y=0;(y!=123)||(x<4);x++)
A、是无限循环
B、循环次数不定
C、执行4次
D、执行3次
标准答案:1
知识点解析•:本题考查for循环的结束条件。注意虽然x的值在增加,但y的值不
增加,表达式(y!=123)||(xV4)的值永远是1,所以会成为无限循环。
23、若已定义x和y为double类型,则表达式x=l,y=x+5/2的值是______。
A、3
B、4
C、3
D、3.5
标准答案:4
知识点解析:本题注意数据类型的转换以及“尸的使用方法。
24、若运行时输入12,则以下程序的输出结果是_____omain(){intx,y;
scanf(”%d”,&x);y=x>12?x+l:x-l;printf("%d\n”,y);}
A、10
B、11
C、12
D、13
标准答案:2
知识点解析:本题考查"?:“运算的规则:若条件成立,取":'’前的值;否则,取"'后
面的值。
25、C语言中while循环和do-while循环的主要区别是______。
A、do-while的循环体至少无条件执行一次
B、while的循环控制条件比do-while的循环捽制条件严格
C、do-while允许从外部转到循环体内
D、do-while的循环体不能是复合语句
标准答案:1
知识点解析:暂无解析
26、执行下面的语句后,表达式*(p[0]+l)+**(q+2)的值为oint
a[]={5,4,321},*p[]={a+3,a+2,a+l,a},**q=p;
A、8
B、7
C、6
D、5
标准答案:8
知识点解析:p为指针数组,其元素分别为指向数组a的4个元素的指针。q为指
向指针的指针变量,其初值为指针数组p的首地址。所以:表达式
*(p|0]+1)+**(q+2)=*(a+3+1)+**(p+2)即是*(a+4)+*(a+l)=a|5]+a|2]=1+4=5。
27、设有如下定义,则以下叙述中正确的是_____。int(*ptr)();
A、ptr是指向一维数组的指针变量
B、pir是指向int型数据的指针变量
C、ptr是指向函数的指针,该函数返回一个int型数据
D、ptr是一个函数名,该函数的返回值是指向int型数据的指针
标准答案:4
知识点解析:"int(*ptr)();”说明ptr是一个指向函数的指针,返回值是整型。*pu•两
边的括号非常关键,表示求和ptr组合成一个指针变量,然后再和后边的圃括号结
合,表示该指针变量*plr是一个指向函数的指针变量。如果没有*pir两边的括号,
丁表示ptr是个函数,该函数返回指向整型数据的指针。
28、下列程序的输出结果是_____omain(){char
a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*-p);}
A、非法
B、a⑷的地址
C、5
D、3
标准答案:4
知识点解析:p是一个指向字符的指针,在定义时,指向a[5]。执行--p时,p就指
向了a[4],那么*・・p就是5。
29、若有以下定义:inta[]={1,234,5,6,7};charcl=b,c2=T;则数值不为1的表达
式是O
A、a[0]
B、'c'-cl
C、a[T-c2]
D、cl-0
标准答案:8
知识点解析:字符在进行数学运算时取其ASCH因值,“b”的ASCH码为98,则
D项中表达式的值不为lo
30、若有说明:ints[2][3]={0};,则下面正确的叙述是。
A、只有元素s[0]⑼可得到初值0
B、此说明语句不正确
C、数组s中各元素都瓦得到初值,但其值不一定为0
D、数组s中每个元素均可得到初值0
标准答案:8
知识点解析:给二维数组赋初值时,若所赋初值不足,则给后面的元素自动补初值
0o
31、以下程序的输出结果是omain(){inta=-l,b=l,k;if((++a<O)&&!(b--<
=0))printf("%d%d\nn,a,b);elseprintf("%d%d\n",b,a);}
A、-11
B、01
C、I0
D、00
标准答案:4
知识点解析:C语言中如果逻辑与运算符左边的表法式为假,右边的表达式就不再
运算了,(++aV0)=(0V0)=0,所以逻辑与右边的表达式就不参与运算,没有改变b
的值。因此输山b=l,a=0o
32、以下所列的各函数首部中,正确的是o
A、voidp!ay(Var:Integer,varb:Integer)
B、voidplay(inta,b)
C、voidplay(intajntb)
D、Subplay(aasinteger,basinteger)
标准答案:4
知识点解析:C语言中函数首部中的各参数必须分开单独定义,因此选项C才是正
确的。而选项A和D是其他语言的函数定义方式。
33、以下程序的输出结果是ointd=l;fun(intp){staticintd=5;d+=p;
printf("%d",d);return(d);}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A、699
B、669
C、61515
D、6615
标准答案:4
知识点解析:本题要注意静态变量d。第I次执行fun(d),即fun(l),在函数fun里
对静态变量赋初值5,得到d=d+p=5+l=6并输出,返回6;第2次执行
fun(a+fun(d)),即fun(3+6)=fun(9),在函数fun中直接执行d=d+p=6+9=I5并输出,
然后返回15再一次输出。
34、以下程序的输出是ostructst{intx;int*y;}*p;intdt[4]={10,20,30,40);
structstaa[4]={50,&dt[0],60,&dt[1],60,&dt[2],60,&dt3]};main(){p=aa;
printf("%d\n",++(p->X));}
A、51
B、11
C、50
D、60
标准答案:1
知识点解析:p是指向结构aa的结构指针,++(p->x)是对p的x成员的值进行加
lop=aa使得p指向aaB勺首地址,p->x的值为50,那么++(p->X)就等于51。
35、有如下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是
A、*p+9
B、*(p+8)
C、*p+=9
D、p+8
标准答案:2
知识点解析:p是指向整型变量的指针,井赋初值指向了数组a的首地址,*p=I,
选项A中*p+9=10,选项C的“*p+=9”的值为10。而p+8是指向数组a的第9个元
素的地址,只有*(p+8)才是数组a的第9个元素。
36、设下面程序的可执行文件名为prg.exe,在该程序所在子目录下输入以下命令
行:prghellogood<回车,则程序6勺输出结果是。main()(int
argc,char*argv[]){inti;if(argc<=O)return;for(i=1;i<argc;i++)printf("%c",*argv[i]);)
A、hellogood
B、hg
C、hel
D、hcllogood
标准答案:2
知识点解析:argc=3,argv[l]='hello,,argv[2]=,good\注意:printf格式串中
是%和因此输出argv川和argv⑵的第一个季符,即,hg\
37、在C语言中,函数的隐含存储类别是o
A、auto
B、static
C、extern
D、无存储类别
标准答案:4
知识点解析:C语言中如无特别说明,函数的隐含存储类别为外部extern类别。
38、以下程序的输出结果是omain(){inti,k,a[IO],p[31;k=5;for(i=0;i<
10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+l)];for(i=0;i<3;i++)k+=p[i]*2;
printf("%d\n",k);}
A、20
B、21
C>22
D、23
标准答案:2
知识点解析:第1个循环对数组a进行赋值:第2个循环对数组p进行赋值;第3
个循环对k进行累加,k的初值等于5,第1次循环,k=k+p|0]*2=5+0*2=5,第2
次循环,k=k+p[l]*2=54-2*2=9,第3次循环,k=k+p⑵*2=9+6*2=21并输出。
39、若有以下定义和语句:char*sl=',12345,,,*s2="1234n;
primf("%d\n",strlen(strcpy(sl,s2)));则输出结果是。
A、4
B、5
C、9
D、10
标准答案;1
知识点解析:函数slrcpy(sl,s2)的返回结果是指针si的新值“1234”,因此求串长函
数的结果为4。
40、下面程序的输出结果是______omain(){inta[]={1,2,3A5,6,7,8,9,0),*p;
p=a;ptintf("%d\n",*p+9);}
A、0
B、1
C、10
D、9
标准答案:4
知识点解析:p是一个指向整型数据的指针,执行p=a后,p指向指针运算
比算术运算的级别高,先运算*p,得到1,然后执行加9,结果等于10。
41、下列程序的输出结果是______o#include<stdio.h>main()(char
*p1,*p2,str[50]=,,xyz";p1=,,abcd";p2="ABCD";strcpy(str+2,strcat(p1+2,p2+1));
ptintf(n%s';str);}
A、xyabcAB
B、abcABz
C、ABabcz
D、xycdBCD
标准答案:8
知识点解析:本题考查对•字符串进行处理的函数strcal()和strcpyO,其中
strcat(Pl,p2)是把字符串p2连至pl后面,strcpy(pl,p2)是把p2指向的串复制到pl
指向的空间。
42、当执行下面程序且输入aboy时,输出的结果是。#include<stdio.h>
#include<string.h>main(){charss[81]=HABOY",hh[81],*pt;scanf("%sH,hh);
pt=strcat(ss,hh);puts(pt);printf("%s\n",hh);)
A、ABOYaa
B、ABOYaboyaboy
C^ABOYaboya
D、ABOYaboyaboy
标准答案:1''
知识点解析:对于函数strcat(ss,hh),把字符串hh(若遇空格,舍去后面的部分,并
重新赋给hh)连至字符串ss的后面。
43、以下程序的输出结果是_____。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
R、19
C、20
D、21
标准答案:1
120
340
知识点解析:本题首先定义了一个数组并附初值b6然后通过两个for循环计
算3、4、5、6的累加值,并用s保存。
44,字符6的ASCII四的十进制数为48,且数组的第0个元素在低位,则以下程
序的输出结果是_____o#include<stdio.h>main(){union{inti[2];longk;char
Hn
C[4];}r,*s=&r;s->i[0]=0x39;s->i[l]=0x38;printf(%c\n,s->c[O]);}
A、39
B、9
C、38
D、8
标准答案:2
知识点解析:本题考查的是共用体变量的引用。
45、以卜对C语言中共用体类型数据的正确叙述是o
A、可以对共用体变量名直接赋值
B、一个共用体变量中可以同时存放其所有成员
C、一个共用体变量中不能同时存放其所有成员
D、共用体类型定义中不能出现结构体类型的成员
标准答案:4
知识点解析♦:共用体变量中的所有成员共享一段公共存储区,并非同时存放于共用
体变量中,如共用体变量中有两个成员,int型成员占两个字节,float型成员占4
个字节,则该共用体变量占4个字节,并非2+4=6个字节。
46、在宏定义#(^自起口3.14159中,用宏名PI代替一个o
A、单精度数
B、双精度数
C、常量
D、字符串
标准答案:8
知识点解析:程序中用#(^行院定义后,PI代表一串字符。
47、若有宏定义如下:#defincX5#defincYX+1#加fineZY*X/2以下程序段的输
出结果是。inta;a=Y;printf("%d\nM,Z);printf("%d\n",-a);
A、76
B、126
C、125
D、75
标准答案:8
知识点解析:根据宏定义知:X=5,Y=X+1=6,Z=Y*X/2=X+l*X/2=7,a=Y=6,-
a=5o
48、设有以下语句:chara=3,b=6,c;c=ab〈V2;则c的二进制值是<>
A、11011
B、10100
C、11100
D、11000
标准答案:1
知识点解析:本题考查的知识点:①异或运算:参与运算的两个运算数中相对应
的二进制位上,若数相同,则为0;否则为1。即“同0异1”;②左移运算:左移
时,右端补0,左端移H的部分舍弃。
49、以下正确的说法是。
A、实参和与其对应的形参各占用独立的存储单元
B、实参和与其对应的形参共用一个存储单元
C、只有当实参和与其对应的形参同名时才共用存储单元
D、型参是虚拟的,函数在没有被调用时,不占用存储单兀
标准答案:8
知识点解析:形参在个数和类型上要与实参匹配,形参在未被调用之前,不占用存
储单元。
50、以下正确的叙述是。
A、C语言允许main函数带形参,且形参个数和形参名均可由用户指定
B、C语言允许main函数带形参,形参名只能是argc和argv
C、当main函数带有形参时,传给形参的值只能从命令行中得到
D、若有说明:main(intargc,char*argv),则形参argc的值必须大于1
标准答案:4
知识点解析:C语言通常允许main。函数带有两个参数,可由用户自己命令,但类
型是固定的。第一个参数是整型,第二个参数是一个指向字符型指针数组的指针或
一个基本类型为字符型的指针数组,此时传给形参的值只能从命令行中得到。
四、公共基础填空题(本题共5题,每题7.0分,共5
分。)
51、实现算法所需的存储单元多少和算法的工作量大小分别称为算法的【】。
标准答案:空间复杂度和时间复杂度
知识点解析:算法的复杂性是捐对一个在有限步骤内终止算法和所需存储空间大小
的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间
复杂性。
52、数据结构包括数据的逻辑结构、数据的【】以及对数据的操作运算。
标准答案:存储结构
知识点解析:数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数
据的操作运算。
53、一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了
软件的【】。
标准答案:可重用性
知识点解析:继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减
少了程序中的冗余,提高软件的可重用性。
54、面向对象的模型中,最基本的概念是对象和【】。
标准答案:类
知识点解析:面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体
的模型化:将属性集和方法集相同的所有对象组合在一起,可以构成一个类。
55、软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性
维拉。
标准答案:完善性
知识点脑析:软件维护活动包括以下几类;改正性维护、适应性维护、完善性维护
和预防性维护。完善性维护是指为了满足用户对软件提出的新功能与性能要求,需
要修改或再开发软件,以扩充软件功能、增强软件睦能、改进加工效率、提高软件
的可维护性。
五、填空题(本题共10题,每题1.0分,共10分。)
56、下面程序的输出是[]omain(){intarr[10],i,k=0;for(i=0;i<10;i++)arr[i]=i;
fov(i=l;i<4;i++)k+=arr|i]+i;printf(H%d\n",k);)
标准答案:12
知识点解析:本题通过第一个for循环将数组arr[0]=arr[9]分别赋值为0-9,通过第
二个for循环的三次循环累加,求出结果为12,具体分析如下:i=l:k=0+arr[l]+l
即k=2;i=2:k=2+arr[2]4-2即k=6;i=3:k=6+arr[3]+3即k=12:
57、若a=10,b=20,则表达式!(aVb)的值是[]。
标准答案:0
知识点解析:已知a=10,b=20,所以逻辑表达式aVb的值为irue,即为1,在这
个表达式前面有一个逻辑运算符!,表示反操作,所以整个语句的值应当为false,
即为0。
58、有以卜程序intfa(intx){returnx*x;}intfb(inlx){returnx*x*x;}int
f(int(*fl)(),int(*f2)(),intx){returnf2(x)-fl(x);}main(){int
i;i=f(fa,fb,2);printf("%d\iT,i);)程序运行后,输出结果是[]。
标准答案:4
知识点解析:在主函数中调用函数f,函数f有三个参数,形参fl与物分别是两个
指向函数的指针。在f中执行f2(x)・fl(x),实际上是执行了fb(2)-fa(2),故执行
i=(fa,fb,2)后i的值为23-22=4O
59、下面程序的输出是1]。main(){enumem{eml=3,em2=l,em3};char
*aa[]={;printf("%s%s%s\n",aa[em11,aa[em2],aa[em3]);}
标准答案:DDBBCC
知识点解析:c语言对枚举的定义规定定:在枚举中声明的各个枚举元素,如果没
有明确指出某个枚举元素的值,它的上一个元素存在并有明确值的情况下,这个枚
举元素的值为其上一个元素的值+1。在本题中,没有明确说明枚举元素cm3的
值,WJem3=em2+l=l+l=2,进而可知,在printf()打印函数中,要打印的数组元素
是aa[3]、aa[l]>aa[2],因此最后的打印结果应当为“DDBBCC”。
60、若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是【】。
intb,c;floata;scanf("%f,%d,c=%d'\&a,&b,&c)
标准答案:5.0,4,c=3
知识点解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式说
明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。所以此题中
输入数据的形式是5.04,c=3。
61、F列程序的输出结果是[]ointt(intx,inty,intcpjntdp){cp=x*x+y*y;
dp=x*x-y*y;)main(){inta=4,b=3,c=5,d=6;t(a,b,c,d);printf("%d%d\n",c,d);}
标准答案:56
知识点解析:本题中a,b,c,d是实参,x,y,cp,dp是形参。C语言规定,实
参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不
能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函
数时.,绐形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单
元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。
62、下面程序的输出结果是[]ocharb[]="ABCD";main(){charb[30];
strcpy(&b[O],"GH");strcpy(&b[l],"GHH);strcpy(&b⑵JGH");printf("%s\n",b);}
标准答案:GGGH
知识点解析:由于在函数main中定义了数组变量b,其将屏蔽全局变量b。对于一
维数纽变量,其值为一常数,等于数组首元素地址。strcpy(&b[O],”GH"),是将字
符串“GH”复制到数组b中从首元数开始的空间中,此是b中的字符串为“叫“:
strcpy(&b[l],"GH"),是将字符串“GH”复制到数组b中从第二个元素开始的空间
中,此是b中的字符串为“GH”。执行第三次strcpy函数后,b中的字符串为
“GGGH”。
63、有以下定义和语句:则sizeof(a)的值是【】,而sizeof(a.share)的值是
[]ostructdate{intday;intmouth;intyear;union(intshare1;float
share2;[share;}a;
标准答案:104
知识点解析:结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别
占有其自己的内存单元。int占2个字节,float占4个字节,共用体变量所占的内
存长度等于最长的成员的长度。所以,sizeof(a.share)的值是4,sizeof(a)的值是
2+2+2+4=10。
64、下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。
word_num(str)charstr[];{inti,num=0,word=0;fo(i=0;str[i]!=[];i++)if(【]
==,,)word=0;elseif(word==0){word=1;[];}return(num);}
标准答案:\0'或0或NULLstr[i]num++或num=num+l或num+=l
知识点解析:观察题目要求,可以知道以下几点:①for循环的结束条件应生
是:str[i]已是字符串的最后一个字符;②str[i]代表字符串str中的第i+1个字符;
③整型变量num的值是要记录的单词的个数。C语言中规定字符串的最后一个字
符是一个隐含的字符串结束符“\0”,所以在题中第一个空中应填写“\0”;题中第二
个空应填写“前巾厂,以判断当前位置的字符是否为空格;题中第三个空中应当填写
“nuniH”,通过变量mmi的加1累加得到字符申中的单词个数。
65、有一个已排好序的数组,今输入一个数,要求按原来的顺序规律将它插入到数
组中。算法是:假设排序顺序是从小到大,对输入的数,检查它在数组中哪个数之
后,然后将比这个数大的数顺序后移一个位置,在空出的位置上将该数插入。请在
程序中的空白处填上一条语句或一个表达式。#defineN100main(){floata|N+l|,x;
inti,p;for(i=0;i<N;i++)scanf("%f'&a[i]);scanf("%f;&x);for(i=0,p=N;i<N;i++)if(x
<a[i]){[];break;}for(i=N-l;[];i-)a[i+l]=a[i];a[p]=x;for(i=0;[】;i++)
(printf("%8.2f',a[i]);if(i%5=0)printf(n\nH);}}
标准答案:p=i;i>=pi<=N
知识点解析:本题主要考查了插入排序。由于程序中的数组在开始己经按从小到大
顺序排序排好。在插入时,首先要查到第一个大于恃插入数的数组下标,即当待插
入元素小于数组中当前元素时,记下数组的当前下标p,并结束循环,故第一空目
的是为了记下数组下标,应填p=i;插入排序的第二部是将大于待插入元素的所有元
素都向后移动一位,故在循环时,要从最后一个元素到第p个元素都要后移一位,
因此第二空应填>i=p。最后一个循环是将N+1个元素都输出,故最后一空应为i
<=No(注:本题有多种答案,以上仅提供一种)
国家二级(C语言)笔试模拟试卷第2
套
一、公共基础选择题(本题共10题,每题1.0分,共
10分。)
1、在下列选项中,不是一个算法一般应该具有的基本特征。
A、确定性
B、可行性
C、无穷性
D、拥有足够的情报
标准答案:4
知识点解析:一个算法,一般应具有以下儿个基本特征:①可行性②确定性③有
穷性④拥有足够的情报。
2、希尔排序法属于类型的排序法。
A、交换类排序法
B、插入类排序法
C、选择类排序法
D、建堆排序法
标准答案:2
知识点3析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分
别进行插入排序。所以希尔排序法属于插入类排序,但它对简单插入排序做了很大
的改进。
3、下列关于队列的叙述中正确的是o
A、在队列中只能插入数据
B、在队列中只能删除数据
C、队列是先进先出的线性表
D、队列是先进后出的线性表
标准答案:4
知识点解析:队列是指允许在一端进行插入、而在另一端进行删除的线性表。它又
称为“先进先出”或“后进后出”的线性表,体现了“先来先服务”的原则。
4、对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为
A、N+1
B、N
C、(N+l)/2
D、N/2
标准答案:2
知识点解析:在进行顺序查找过程中,如果被查的元素是线性表中的最后一个,或
者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中所有元素进行
比较,这是顺序查找最坏的情况。
5、信息隐蔽的概念与下述_____概念直接相关。
A、软件结构定义
B、模块独立性
C、模块类型划分
D、模拟耦合度
标准答案:2
知识点解析:信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这
叱信息的其他模块来说是不能访问的.模块独立件是指每个模块只完成系统要求的
独立的子功能,并且与其他模块的联系最少且接口简单。衡量软件模块独立性的度
量标准是耦合性和内聚性。一个模块的内聚性越强,则该模块的模块独立性越强。
而内聚性是信息隐蔽和局部化概念的自然扩长。
6、面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是
A、模拟现实世界中不同事物之间的联系
B、强调模拟现实世界中的算法而不强调概念
C、使用现实世界的概念抽象地思考问题从而自然地解决问题
D、鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考
标准答案:4
知识点解析:面向对象的设计方法基本原理:使用现实世界的概念抽象地思考问题
从而自然地解决问题。强凋模拟现实世界中的概念而不强调算法,鼓励开发者在软
件开发的绝大部分中都用应用领域的概念去思考。
7、在结构化方法中,软件功能分解属于软件开发中的阶段。
A、详细设计
B、需求分析
C、总体设计
D、编程调试
标准答案:4
知识点解析:总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体
实现方案;结构设计,确定软件结构。为确定软件结构,首先需要从实现角度把复
杂的功能进一步分解。
8、软件调试的目的是o
A、发现错误
B、改正错误
C、改善软件的性能
D、挖掘软件的潜能
标准答案:2
知识点解析:由程序调试的概念可知:程序调试活动由两部分组成,其一是根据错
误的迹象确定程序中错误的确切性质、原因和位置。其二,对程序进行修改,排除
这个错误。所以程序调试的目的就是诊断和改正程序中的错误。
9、按条件f对关系R进行选择,其关系代数表达式为o
A、RooR
B、
C、6f(R)
D、nf(R)
标准答案:4
知识点解析:选择运算是一个一元运算,关系R通过选择运算(并由该运算给出所
选择的逻辑条件)后仍为一个关系。这个关系是由R中那些满足逻辑条件的元组所
组成;如果关系的逻辑条件为f,则R满足f的选择运算可以写成6f(R)o
10、数据库的物理设计是为一个给定的逻辑结构选取一个适合应用环境的的
过程,包括确定数据库在物理设备上的存储结构和存取方法。
A、逻辑结构
B、物理结构
C、概念结构
D、层次结构
标准答案:2
知识点解析:根据数据库物理设计的概念可知:为一个给定的逻辑数据模型选取一
个最合适应用要求的物理结构的过程,就是数据库的物理设计。数据库的物理结构
就是指数据库在物理设备上的存储结构与存取方法。
二、选择题(1分)(本题共10题,每题1.0分,共10
分。)
11、表示关系xNyNz应使用C语言表达式()
A、(x>=y)&&(y>=z)
B、(x>y)AND(y>z)
C^x>=y>=z
D、(x>=y)&(y>=2)
标准答案:1
知识点解析:暂无解析
12、C语言可执行程序的开始执行点是()
A、程序中第一条可执行语言
B、程序中第一个函数
C、程序中的main函数
D、包含文件中的第一个函数
标准答案:4
知识点解析:哲无解析
13、以下if语句书写正确的是()
A、if(x=0:)printf("%f,x);elseprintf("%r,-x);
B、if(x>0){x=x+l;printf(H%f*»x);Jelsepnntf("%r>-x);
C、if(x>0);{x=x+l;printf("%f,x);}elseprintf("%f,-x);
D、if(x>0){x=x+l;printf(,r%f',x))elseprintf("%f,-x);
标准答案:2
知识点解析:暂无解析
14、以下叙述中正确的是()
A、在C程序中,语句之间必须要用分号(;)分隔
B、在C程序中#include行和#define行不是C语句
C、程序中的注释部分可有可无,通常可以省略
D、当输入数值数据时、对于整型变量只能输入整型值:对于实型变量只能输入实
型值
标准答案:2
知识点解析:暂无解析
15、以下语句的输出结果是()prinif("%d,%d,%u\n",016,16,-16);
A、16,16,65420
B、14,16,6542
C、16,16,-16
D、14,16,-16
标准答案:2
知识点解析:暂无解析
16、以下选项中,与k=n++完全等价的表达式是()
A、k=n,n=n+l
n=n+l,k=n
C、k=++n
D、k+=n+l
标准答案:1
知识点解析:暂无解析
17、以下合法的赋值语句是()
A、x=y=100
B、d—;
C、x+y;
D、c=int(a+b);
标准答案:2
知识点解析:暂无解析
18、设a、b,c为int型变量,若从键盘给a、b,c输入数据,则正确的输入语句
是()
A、scanf(,'%d%d%dM,a,b,c);
B、put("%d%d%dM,a,b,c);
C、input("%d%d%d”,a,b,c);
D、scanf("%d%d%dM,&a,&b,&c);
标准答案:8
知识点解析:暂无解析
19、以卜止确的数组定义语句是()
A.inty[l][4]={l,2,3,4,5,}
B、floatX[3][]={{1},(2),{3})
C.longs[2][3]={{l},(1,2){1,2,3,)}
D、doublet[][3]=(0)
标准答案:8
知识点解析:暂无解析
20、设有如下的变量定义;inti=8,k,a,b;unsingedlongw=5;doublex=1.42,
y=5.2则以下符合C语言语法的表达式是()
A、a+=a-=(b=4)*(a=3)
B、x%(-3);
C、a=a*3=2
D、y=float(i)
标准答案:1
知识点解析:暂无解析
三、选择题(2分)(本题共30题,每题1.0分,共30
分。)
21、能正确表示逻辑关系””a*0或的C语言表达式是____。
A、a>=10ora<=0
B、a>=0|a<=10
C、a>=10&&a<=0
D、a>=10||a<=10
标准答案:8
知识点解析:C语言中的“或”关系用“||”表示,其他相关逻辑运算符“与”用侬&”表
示;运算符"非''用“!"来表示。
22、已经定义ch为字符型变量,以下赋值表达式中错误的是o
A、ch='\'
B、ch=62+3
C、ch=NULL
D、ch=>\xaa,
标准答案:1
知识点解析:反斜杠字符献给字符,应该写成ch=3,所以A是错误的。
23、有如下程序main。{intx=l,a=0,b=0;switch(x){case0:b++;case1:a++;
case2:a++;b++;}printf("a=%d,b=%d\n",a,B);)该程序的输出结果是。
A、a=2,b=l
B、a=1.b=1
C、a=1,b=0
D、a=2,b=2
标准答案:1
知识点解析:在这个switch语句中,因为x的值为1,所以执行easel:后面的
a++,这样a=l。但又由于其下没有break语句,所以其后面的语句“a+十,b+十”也
将被执行,这样一来,a=2,b=lo
24>有如下程序main。{floatx=2Qy;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;
elsey=1.0;primf("%An”,y);}该程序输出结果是。
A、0
B、0.25
C、0.5
D、1
标准答案:4
知识点解析:本题考查的是if……else语句的使用。x=2.0,符合第二个IF语句的
条件xVlO.O,所以执行y=l.O/x语句,K[Jy=l.0/2,0=0.500000o
25>有以下函数定义:voidfun(intn,doublex){....}若以下选项中的变量都已正
确定义并赋值,则对函数fun正确调用语句是
A、fun(inty,doublem);
B、k=fun(10,12.5);
C、fun(x,n);
D^voidfun(n,x);
标准答案:4
知识点解析:函数调用的一般形式为:函数名(实参表列);,实参与形参的个数应相
等,类型应一致,在调用函数时,不要指定其返回类型,对于返回类型为void的
函数,不能作为赋值表达式的组成部分,所以选C,
26、有如下程序main。{inii,sum;for(i=l;i<=3;sum++)sum+=i;
printf("%d\n",sum);}该程序的执行结果是____。
A、6
B、3
C、死循环
D、0
标准答案:4
知识点解析:在循环过程中,i的值一直没有被改变,所以这是一个死循环。
27、下列函数定义中,会出现编译错误的是o
A、max(intx,inty,int*z){*z=x>y?x:y;)z=x>y?x:y;returnz;}
B、intmax(intx,y){intz;
C、max(intx,inty){intz;z=x>y?x:y;rctum(z);}
D、intmax(intx,inty){returnx>y?x:y;}
标准答案:2'
知识点解析:在C语言中,不可以在函数的参数声明列表中用一个类型名指定多
个参数。故选项B是错误的。其正确的表示方式应为:intmax(intx,inty){....}
或intmax(x,y)intx,y;{....}
28、有如下程序main(){intx=3;do{prinff(,'%d,,.x—);)while(!x);}该程序的
执行结果是_____o
A、321
B、3
C、不输出任何内容
D、陷入死循环
标准答案:2
知识点解析:本题X赋初值为3,当执行primiT%d”,x-);时,由于x-的作用是先
运算x,再将x的值减1,所以,printf输出的x值为3,等输出后,x的值减1变
为2,继续执行,判断条件!x为假,循环只被执行一次。
29、设有声明语句chara='\72';,则变量a。
A、包含1个字符
B、包含2个字符
C、包含3个字符
D、声明不合法
标准答案:1
知识点解析:转义字符常量”\xx,可以把二后面的数字转换为对应的ASCII字符。
30、有以下程序段:main(){inta=5,*b,**c;c=&b:b=&a:}程序在执行了
c=&b;b=&a;语句后,表达式**c的值是o
A、变量a的地址
B、变量b中的地址
C、变量a中的值
D、变量b的地址
标准答案:4
知识点解析:指针变量是用来存放地址的。&:取地址运算符。指针运算符。
**c为指针变量*c所指向的存储单元,气为指针指针变量c所指向的存储单元,而
c=&b表示c为变量b的地址,b=&a表示b为变量a的地址。表达式**c的值就是
变量a中的值。
31、有如下函数调用语句func(recl,rec2+rec3,(rec4,rec5));该函数调用语句中,含
有的实参个数是o
A、3
B、4
C、5
D、有语法错误
标准答案:1
知识点解析:(rec4,rec5)是逗号表达式,它的值是rec5的值。所以该函数调用语句
含有的实参个数是3。
32、有如下程序main(){chars[][5]={“abc","de","fgh"};printf("%c”,s[2][6]);)
其输出为o
A^不确定
B、编译错误
C、g
D、输出null字符
标准答案:1
知识点解析:由于s[2]⑹表示字符串已超出了数组s的表示范围,在C中不会对数
组越界进行检查,当数组越界时,会得到一个不确定的值。
33、有如下程序intfunc(inta,intB){return(a+B);)main()(intx=2,y=5,z=8,r;
r=func(func(x,y),z);printf("%d\n",r);}该程序的输出结果是。
A、12
B、13
C、14
D、15
标准答案:8
知识点解析:调用函数func(x,y),返回x+y,即7;再调用函数func(7,z),返回
7+z,即15。
34、有如下程序段int*p,a=10,b=l;p=&a;a=*p+b;执行该程序段后,a的值为
A、12
B、Il
C、10
D、编译出错
标准答案:2
知识点解析:执行p=&a;后,p指向整数a,*p即p的目标变量,也就是a;所以
a=*p+b等价于a=a+b,可知a的值最终为11。
35、有以下程序:int*f(int*x,int*y){if(*x<*y)retumx;elsereturny;)main()
{inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\nu,*p,*q,
*r);}程序运行后输出结果是____o
A、7,8,8
B、7,8,7
C、8,7,7
D、8,7,8
标准答案:2
知识点解析:f函数的功能是返回地址为x,y的两个数中值较的数的地址,本题输
出结果是7,8,7。
36、有如下程序:longfib(intn){if(n>2)return(fib(n-l)+fib(n-2));elseretum(2);)
main(){printf("%ld\n",fib(3));J该程序的输出结果是____。
A、2
B、4
C>6
D、8
标准答案:2
知识点解析:函数fib内部有两个递归调用,当n=3时,fib(n-l)返回2,6b(n-2)也
返回2,所以fib(n-l)+fib(n-2)的值为4。
37、下面程序的输出结果是_____omain()[charstr[10],c='a';inti=0:for(;i<
5;i++)str[i]=c++;printf(,,%s,',str);}
A、abcde
B、a
C、不确定
D、bcdef
标准答案:4
知识点解析:字符串少一个结束标志,所以输出的结果不确定。
38、在C语言中,函数中变量的隐含存储类别是____o
A、auto
B、static
C^extern
D、无存储类别
标准答案:1
知识点解析:函数中变量的存储类别包括auto,static,extern,其中auto为隐含存
储类别,static为静态存储类别,register是寄存器存储类别。
39、有如下程序:#definen2#definemN+l#defineNUM2*m+lmain(){inti;
for(i=l;i<=NUM:i++)printf("%d\n",i);}该程序中的for循环执行的次数是
A、5
B、6
C、7
D、8
标准答案:2
知识点解析:在C语言中,宏定义在编译时将被直接替换,所以NUM最后会被替
换成2*N+1+1,即成2+1+1,值为6。因此,for循环执行的次数为6。
40假设在turboc2.0采用small模式编译如下程序main(){chara[4]={,a,,'b');
char*b="abc";printf(n%d,%d",sizeof(A),sizeof(B));}其输出结果为。
A、4,2
B、4,4
C、4,3
D、2,2
标准答案:1
知识点解析:用small模式编译,指针变量占2个字节。sizeof(array):数组名array
代表数组本身,sizeof函数测出的是整个数组的大小。a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 特许另类投资分析师考试与会计知识联系分析试题及答案
- 会议管理总结幼儿园
- 加强内部审计与合规管理的计划
- 2018年秋九年级上(部编版)历史教学设计:第4课 希腊城邦和亚历山大帝国
- 教材选择与使用建议计划
- 制订有效的任职资格标准计划
- 事业目标与愿景的统沟通计划
- 生产执行中的关键绩效指标计划
- 幼儿园探究式学习的实施策略计划
- 人类基因组的进化研究试题及答案
- 【工商管理专业毕业综合训练报告2600字(论文)】
- 2022湖南省郴州市中考物理真题试卷和答案
- 救护车使用培训课件
- 经典成语故事郑人买履
- 人血白蛋白介绍演示培训课件
- 大学军事理论课教程第三章军事思想第四节当代中国军事思想
- 建筑企业法律服务方案
- 空调维保服务投标方案(技术标)
- 幼儿园户外自主游戏
- 22S803 圆形钢筋混凝土蓄水池
- 烟供.火供.火施仪轨
评论
0/150
提交评论