版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年黑龙江省绥化市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.数据流图(DFD)的作用是()。
A.描述软件系统的控制流B.支持软件系统的功能建模C.支持软件系统的面向对象分析D.描述软件系统的数据结构
2.有下列程序:
程序执行后的输出结果是()。
A.3,7,8,9,10,6,5,4,2,1,
B.10,9,8,7,3,1,2,4,5,6,
C.10,9,8,7,6,1,2,3,4,5,
D.1,2,3,4,5,10,9,8,7,6,
3.以下叙述中正确的是______。
A.C语言比其他语言高级
B.C语言可以刁;用编译就能被计算机识别执行
C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D.C语言出现的最晚,具有其他语言的一切优点
4.以下叙述中正确的是()。
A.在C语言程序中,main函数必须放在其他函数的最前面
B.每个后缀为C的C语言源程序都可以单独进行编译
C.在C语言程序中,只有main函数才可单独进行编译
D.每个后缀为.C的C语言源程序都应该包含一个main函数
5.关于数组和指针,以下说法错误的是()。
A.数组名本身就是一个指针,指向数组内存的起始位置
B.既可以读入数据到数组中,也可以读入数据到未賦初值的指针中
C.可以将指针指向一个同类型的数组
D.指针可以指向同类型的数组中的任意一个元素
6.在结构化程序设计中,模块划分的原则是()。
A.各模块应包括尽量多的功能
B.各模块的规模应尽量大
C.各模块之间的联系应尽量紧密
D.模块内具有高内聚度,模块间具有低耦合度
7.若在线性表中采用折半查找法查找元素,该线性表应该()A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存储结构D.元素按值有序且采用链式存储结构
8.下面不属于需求分析阶段任务的是()。
A.确定软件系统的功能需求B.确定软件系统的性能需求C.制定软件集成测试计划D.需求规格说明书评审
9.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是().
A.地址传递B.单向值传递C.由实参传给形参,再由形参传回实参D.传递方式由用户指定
10.在下列几种排序方法中,要求内存量最大的是______。
A.插入排序B.选择排序C.快速排序D.归并排序
11.有以下程序:#include〈stdio.h〉voidfun(int*s){staticintj=0;do{s[j]=s[j]+s[j+1];}while(++j<2);}main(){inti.a[10]={1,2,3,4,5};for(i=1;i<3;i++)fun(a);for(i=0;i<5;i++)pfintf(“%d”,a[i]);printf(“\n”);}程序运行后的输出结果是()。A.12345B.23445C.34756D.35745
12.查找效率最高的二叉排序树是()。
A.所有结点的左子树都为空的二叉排序树
B.所有结点的右子树都为空的二叉排序树
C.平衡二叉排序树
D.没有左子树的二叉排序树
13.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}执行后输出的结果是A.11122B.12C.12020D.120
14.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。
A.scanfB.getcharC.getsD.getc
15.以下涉及字符串数组、字符指针的程序段中,没有编译错误的是()。A.char*str,name[1];str=“Hello”;
B.char*str,name[1];name=“Hello”;
C.charstrl[10]=“ex1.c”,str2[6];str2=str1;
D.charhead_line[];head_line=“\\0”;
16.
17.设散列表长m=14,散列函数H(K)=K%11,已知表中已有4个结点:r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址为空,如用二次探测再散列处理冲突,关键字为49的结点地址是_____。
A.8B.3C.5D.9
18.以下选项中合法的C语言常量是()。
A.2.0KbB.”C++’C.”\2.0D.1.01
19.以下选项中关于C语言常量的叙述错误的是()。
A.所谓常量,是指在程序运行过程中,其值不能被改变的量
B.常量分为整型常量、实型常量、字符常量和字符串常量
C.常量可分为数值型常量和非数值常量
D.经常被使用的变量可以定义成常量
20.下面程序的输出结果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}
A.SOB.SPC.SPOPKD.SHOB
二、2.填空题(20题)21.下面程序的输出是【】。
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA"m,"BB","CC:,"DD"};
printf("%s%s%s\n,aa[em1],aa[em2],aa[em3]);
}
22.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。
#defineN4
voidrotade(inta[][N],intb[][N])
{intI,j;
for(I=0;I<N;I++)
{b[I][N-1]=【】;【】=a[N-1][I];}}
23.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。
24.数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。
25.若a是int型变量,则表达式(a=2*3,a*2),a+6的值为______。
26.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。
27.数据结构分为逻辑结构与存储结构,线性链表属于【】。
28.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,______是用户的数据视图,也就是用户所见到的数据模式。
29.下列程序的功能是计算数的阶乘。
main()
{ihti,n;
nlongnp;
scanf("%d",&n);
np=【】;
for(i=2;i<=n;i++)
【】;
printf("n=%dn!=%ld\n",n,np);
}
30.以下程序的运行结果是【】。
#include<stdio.h>
main()
{inta=1,b=2,c;
c=max(a,b);
printf("maxis%d\n",c);}
max(intx,inty)
{intz;
z=(x>y)?x:y;
return(z);}
31.函数viodfun(float*sn,intn)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。
s=1-1/3+1/5-1/7+…1/(2n+1)
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti=0;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2i+1);
s++=w;
}
【】=s;
}
32.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序运行时输入:12<回车>,执行后的输出结果是【】。
33.下面的程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。
#include<stdio.h>
#include<stdlib.h>
FILE*fp;
main()
{charch;
if((fp=fopen(【】))==NULL)exit(0);
while((ch=getchar())!='@')fputc(ch,fp);
fclose(fp);
}
34.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。
35.下列程序的运行结果是______。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==0||x==1)
return(1);
p=x*func(x-1);
return(p);
}
main()
{printf("%d\n",func(4));
}
36.以下程序的运行结果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
37.在面向对象方法中,属性与操作相似的一组对象称为【】。
38.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块),其中【】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
39.以下程序的输出结果是【】。
#include<stdio.h>
#defineMAX(x,y)(x),(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
40.函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*S));
}
三、1.选择题(20题)41.第
13
题
设有程序段
intk=10;
while(k=0)k=k-1;
则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次
42.有以下程序:#include<stdio,h>#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);
A.64,28B.4,4C.4,3D.64,64
43.在C语言中,函数中变量的隐含存储类别是______。
A.autoB.staticC.externD.无存储类别
44.以下程序的输出结果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(1+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}
A.20B.21C.22D.23
45.下列选项中,不能用作标识符的是A._1234_B._1_2C.int_2_D.2_int_
46.阅读下列程序段,则程序的输出结果为#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}
A.3B.5C.6D.8
47.下列叙述中错误的是()。
A.线性表是由n个元素组成的一个有限序列
B.线性表是一种线性结构
C.线性表的所有结点有且仅有一个前件和后件
D.线性表可以是空表
48.设有下列二叉树:
对此二叉树先序遍历的结果是
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
49.若有如下程序:#include"stdio.h"voidmain(){FILE*fp;fp=fopen("test","wb")fprintf(fp,"%d%.1f,%c%c",5,238.41,'B','h');fclose(fp);}则程序运行后向文件输出的结果是()
A.5238.41BhB.5238.4,BhC.5,238.4,B,hD.5238.41Bh
50.若变量已正确定义,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其输出结果是()。
A.0,0B.0,1C.1,1D.程序进入无限循环
51.下列程序的输出结果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printh("OK";}}
A.0B.3C.OKD.没有任何输出
52.X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是______。
A.INPUTX,Y,Z;
B.scanf("%d%d%d",&X,&Y,&Z);
C.scanf("%d%d%d",X,Y,Z);
D.read("%d%d%d",&X,&Y,&Z);
53.对线性表进行二分法检索,其前提条件是()。
A.线性表以顺序方式存储,并按关键码值排好序
B.线性表以顺序方式存储,并按关键码的检索频率排好序
C.线性表以链式方式存储,并按关键码值排好序
D.线性表以链式方式存储,并按关键码的检索频率排好序
54.有以下程序
#include<stdio.h>
intf(intx)
{inty;
if(x==0||x==1)return(3);
y=x*x-f(x-2);
returny;
}
main()
{intz;
z=f(3);printf("%d\n",z);
}
程序的运行结果是
A.0B.9C.6D.8
55.微型计算机中使用的鼠标器连接在()
A.并行接口上B.串行接口上C.显示器接口上D.键盘接口上
56.以下选项中不能作为合法常量的是_____。A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0
57.以下程序输出的结果为______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0,i<4;i++)prntf("%s",p[i]);}
A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM
58.有下列二叉树,对此二叉树中序遍历的结果为()。
A.ABCDEFB.BDAECFC.ABDCEFD.ABCDFE
59.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码
60.下列叙述中正确的是()。
A.在模块化程序设计中,一个模块应该尽量多的包括与其他模块联系的信息
B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节
C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则
D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法
四、选择题(20题)61.
62.
63.以下叙述中正确的是()。
A.用C语言编写的程序只能放在一个程序文件中
B.C程序书写格式严格,要求一行内只能写一个语句
C.C程序中的注释只能出现在程序的开始位置和语句的后面
D.C程序书写格式自由,一个语句可以写在多行上
64.有以下程序:
程序运行后的输出结果是()。
A.197B.143C.33D.28
65.
66.有如下程序段
int*p,a=10,b=1;
p=&a;a=*p+b;
执行该程序段后,a的值为
A.12B.10C.11D.编译出错
67.以下叙述中错误的是(
)。A.预处理命令行必须位于源文件的开头B.宏替换可以出现在任何一行的开始部位C.宏替换的作用一直持续到源文件结尾D.宏替换不占有程序的运行时间
68.下列叙述中正确的是()。A.在switch语句中,不一宗使用break语句
B.在switch语句中,必须使用default
C.break语句必须与swifth语句中的case配对使用
D.break语句只能用于swifth着句
69.
70.下列选项中不属于结构化程序设计原则的是()。
A.可封装B.自顶向下C.模块化D.逐步求精
71.
72.下列说法中,不属于数据模型所描述的内容的是()
A.数据结构B.数据操作C.数据查询D.数据约束
73.
74.一间工厂可有多个工人,则实体工厂和工人之间的联系是
A.一对一B.一对多C.多对一D.多对多
75.设有如下定义:intx=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是()。
A.1B.0C.4D.3
76.有以下程序:
#include<stdiO.h>
main()
{inta=1,b=0;
printf("%d,",b=a+b);
printf("%d\n",a=2+b);‘’
}
程序运行后的输出结果是()。
A.0,0B.1,3C.3,2D.1,2
77.在关系数据库系统中,当关系的模型改变时,用户程序可以不变,这是
A.数据的物理独立性B.数据的逻辑独立性C.数据的位置独立性D.数据的存储独立性
78.有以下程序程序运行后的输出结果是()。
A.3B.5C.7D.9
79.
80.假定int类型变量占用两个字节,其有定义intx[10]={0,2,4};,则数组x在内存中所占字节数是
A.3B.6C.10D.20
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:根据输入的3个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回1;若不能,则返回0。例如,输入3个边长为3,4,5,实际输入时,数与数之间以Enter键分隔而不是逗号。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#include<math.h>intproc(inta,intb,intc){if(a+b>c&&b+c>aa+c>b){if(a==b&&b==c)//****found****return1;elseif(a==b||b==c||a==c)return2;//****found****elsereturn3;}elsereturn0;}voidmain{inta,b,C,shape;printf("\nlnputa,b,C:");scanf("%d%d%d",&a,&b,&c);printf("\na=%d,b=%d,c=%d\n",a,b,c);shape=proc(a,b,c);printf("\n\nTheshape:%d\n",shape);}
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),其功能是将形参s所指字符串放入形参a所指的字符数组中,使a中存放同样的字符串。说明:不得使用系统提供的字符串函数。注意:部分源程序存放在文件prog1.c中,请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()指定的部位填入所编写的若干语句。试题程序:
参考答案
1.B数据流图是系统逻辑模型的图形表示,从数据传递和加工的角度,来刻画数据流从输入到输出的移动变化过程,它直接支持系统的功能建模。本题答案为B选项。
2.B程序中函数fun的功能是将数组a的n个元素,按照flag的值进行排序:当flag为0时,升序排列;当flag为1时,降序排列。main函数中定义数组c,初始化10个元素的值。第1次调用函数fun,\nflag为1,即将c的下标为0开始的5个元素降序排列。第2次调用函数fun\n,flag为0,将c的下标为5开始的5个元素升序排列。所以输出数组e的元素为10,9,8,7,3,1,2,4,5,6。本题答案为B选项。
3.C解析:计算机语言分为低级语言、汇编语言和高级语言,C语言属于高级语言,但并不是说C语言比其他语言高级,所以选项A错误;除了低级语言外,其他各种语言都必须译成能被计算机识别的二进制数才能执行,选项B错误;C语言出现从1972年到1973年间,并不是出现最晚的语言,所以选项D也是错误的。
4.BC语言是一种成功的系统描述语言,具有良好的移植性,每个后缀为.C的C语言源程序都可以单独进行编译。
5.BC语言中,数组名本身就是一个指针,指向数组内存的起始位置,选项A正确;已经定义的数组被分配了内存空间,所以可以读入数据到数组中,未赋初值的指针没有分配内存空间,不可以读入数据,选项B错误;可以将指针指向一个同类型的数组,选项C正确;指针指向一个数组后,可以通过移动指针,指向该数组中的任意一个元素,选项D正确。故本题答案为B选项。
6.D解析:本题考查软件工程中软件设计的概念和原理。人们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得到如下的启发式规则:
(1)改进软件结构,提高模块独立性;通过模块的分解或合并,力求降低耦合提高内聚。低耦合也就是降低不同模块间相互依赖的紧密程度,高内聚是提高一个模块内各元素彼此结合的紧密程度。
(2)模块的规模应适中。一个模块的规模不应过大,过大的模块往往是由于分解不够充分:过小的模块开销大于有益操作,而且模块过多将使系统接口复杂。因此过小的模块有时不值得单独存在。
(3)模块的功能应该可以预测,但也要防止模块功能过分局限。如果模块包含的功能太多,则不能体现模块化设计的特点:如果模块的功能过分的局限,使用范围就过分狭窄。
经过上述分析,本题的正确答案是选项D。
7.C
8.C【答案】:C
【知识点】:需求分析阶段的任务
【解析】:需求分析阶段的任务是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题。可分为需求提出、需求描述及需求评审三个阶段。从此可以看出需求分析的任务不包括制定软件集成测试计划,故选C。
9.B
10.D解析:快速排序的基本思想是,通过一趟排序将排序记录分割成独立的两部
分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继
续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依
次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整
个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩
下的于表采用同样的方法,直到表空为止;归并:排序是将两个或两个以上的有序表组合
成一个新的有序表。
注意:各种排序方法实现过程及实现机制。
11.D本题考查静态变量,静态变量有储存已经操作过的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案选择D。
12.C对于结点个数相同的二叉排序树,平衡二叉排序树的深度最小。而二叉排序树的查找效率取决于二叉排序树的深度。
13.A解析:当执行switch语句时,首先计算紧跟其后一对括号中的值,然后在语句体内寻找与该值吻合的case标号。若相等,则执行该标号后开始的各语句,包括在其后的所有case和default后的语句,直到switch语句体结束。
14.C解析:C语言提供了许多输入函数,其中有:getchar(输入字符)、scanf(格式输入)和gets\u3000(输入字符串)等。题目要求输入的是字符串,所以可以排除getchar,而且要求输入的字符串中包含空格,而scanf函数默认将输入的空格字符作为分割符,所以空格不会被输入,故可排除scanf。getc的作用是从文件中输入一个字符,故也不可取。gets函数可以输入一整行作为一个字符串,其中也包括空格字符,故应该选择C。
15.AC语言中,字符指针变量可以直接使用字符串赋值,而字符数组不能直接使用字符串或字符数组赋值,选项B、C、D错误,选项A正确。故本题答案为A选项。
16.D
17.D
18.DC语言中,常量有整型常量、实型常量、字符常量和字符串常量等。整型常量和实型常量又称为数值型常量。其中整型常量只能用数字表示,不带小数点。实型常量必须用带小数点的数表示,所以选项A错误,选项D正确;字符型常量是用单引号标注的单个字符,字符串常量是用双引号标注的若干个字符,选项B、C错误。故本题答案为D选项。
19.D此题考查的是常量和变量的定义,常量不是经常使用的变量,而是一个确定的数值,所以答案选择D。
20.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串的第—个字符。在for循环中,i的初值为3,那么输出的第—个字符为“S”,接着两次i--,则输出的值为*p[1],即字符“O”,所以本题的输出为SO。
21.DDBBCCDDBBCC解析:C语言对枚举的定义规定:在枚举中声明的各个枚举元素,如果没有明确指出某个枚举元素的值,它的上一个元素存在并有明确值的情况下,这个枚举元素的值为其上一个元素的值+1。在本题中,没有明确说明枚举元素em3的值,则em3=em2+1=1+1=2,进而可知,在printf()打印函数中,要打印的数组元素是aa[3]、aa[1]、aa[2],因此最后的打印结果应当为“DDBBCC”。
22.a[0][I]b[I][0]a[0][I],b[I][0]解析:b[i][N-1]=a[0][i]实现把a所指二维数组中的第0行放到b所指二维数组的最后一列中,\ue008b[I][0]=a[N-1][I]实现将a所指N行N列的二维数组中的最后一行放到b所指二维数组中的第0列。
23.参照完整性参照完整性
24.概念概念
25.1212解析:本题考查逗号表达式的运算规则。逗号表达式的基本格式为:“表达式1,表达式2,…”,其整个表达式的结果取最后一个子表达式的值。本题中首先计算逗号表达式中的第1个表达式a=2*3=6,然后计算第2个表达式a*2,这时整个表达式的值为12,但要注意,因为第2个表达式并没有给a赋值,因此a的值不变;接下来执行最后一个表达式a+6=12,所以整个表达式最后的值为12。
26.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。
27.存储结构
28.外模式外模式解析:外模式由概念模式推导而出,给出了每个用户的局部数据描述,即数据视图。
29.1np*=i或np=np*i1\r\nnp*=i或np=np*i
30.maxis2maxis2解析:函数通过参数来传递数据是单向的,只能由实参传给形参而不能由形参传给实参,但是可以通过函数的返回值将函数中的数据带回。注意:函数的两种调用方式及函数调用的语法要求。
31.-1或-1.0或-1*sn-1或-1.0或-1\r\n*sn
32.1212解析:本题中n1='1'-'0'=1,n2=1×10+('2'-'0')=10+2=12。
33.bi.dat"w"或"bi.dat""w+"bi.dat,'w'或'bi.dat','w+'解析:根据fopen函数的调用方式fopen(文件名,使用文件方式)和题意可得结果。
34.E-R图E-R图解析:数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将E-R图转换成关系模式。
35.2424解析:本题考查函数的循环调用。p=x*func(x-1),当x=4时,不满足if语句的条件,p=4*func(3),x=3也不满足条件,则func(3)=3*func(2),func(2)=2*func(1),x=1满足条件return(1),则输出结果为4*3*2*1=24。
36.a=2b=1a=2,b=1解析:本题考查了switch结构的内容。C语言中,程序执行完一个case标号的内容后,如果没有break语句,控制结构会转移到下一个case继续执行,因为case常量表达式只是起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内部switch结构后,继续执行了外部switch结构的case2分支,最后a和b的值分别为2和1。
37.类类解析:在面向对象方法中,类描述的是具有相似性质的一组对象。所以,属性与操作相似的一组对象称为类。
38.驱动模块驱动模块解析:在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中,驱动模块相当于被测试模块的主程序,它接收测试数据,并传给被测试模块,输出实际测试结果。承接模块通常用于代替被测试模块调用的其他模块,其作用仅做少量的数据操作,是一个模拟子程序,不必将子模块的所有功能带入。
39.77解析:本题综合考查带参数的宏以及三目运算符的计算方法。三目运算符的一般形式是:<表达式1>?<表达式2>:<表达式3>。“?:”运算符的含义是:先求表达式1的值,如果为真,则求表达式2的值,并把它作为整个表达式的值;如果表达式1的值为假,则求表达式3的值,并把它作为整个表达式的值。注意,在本题中宏替换时可采用逐步求解,最终为7>6?7:6*10,即t=7>6?7:60,其值为t=7。
40.0/(i*i)或(double)1/(i*i)0/(i*i)或(double)1/(i*i)解析:表达式1+1/(2*2)+1/(3*3)+...+1(n*n)可写为1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)
n
即:∑1÷(i×i)
i=1
对应的C语言的表达式s=s+1.0/(i*i)。注:必须要写成1.0的形式,否则1/(i,i)返回值为其值截尾取整,即恒为0。
41.C本题中,首先将0赋给k,表达式变为0,跳出循环,没有执行循环体语句。解答本题的关键是掌握while语句。
42.C解析:程序中i1=f(8)/f(4)宏替换后得到i1=(8*8)/(4*4),结果为4;i2=f(4+4)/f(2+2)宏替换后得到i2=(4+4*4+4)/(2+2*2+2),其结果为3。故本题输出的值为4,3。
43.A解析:函数中变量的存储类别包括auto,static,extern,其中auto为隐含存储类别,static为静态存储类别,register是寄存器存储类别。
44.B解析:按程序的流程走一遍,可以得到p[0]=0,p[1]=2,p[3]=6;执行三次k+=p[i]*2,相当于k=5+0*2+2*2+6*2=21。
45.D解析:本题考核的知识点是用户的标识符。在C语言中,合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或者下划线,如:acd,d_ad、_adf124,_124等都是合法的标识符号.而2asdf、_sd/=都不是合法的标识符.在C语言中大写字母和小写字母被认为是两个不同的字符,如:ACD和acd是两个不同的标识符号。选项D中用下划线作为第一个字符,这是不合法的,故选项D不正确,所以,4个选项中选项D符合题意。
46.A解析:带参数的宏定义命令行形式如下:#define宏名(形参表)替换文本。首先进行M的宏替换,之后再进行N的宏替换,替换后的表达式为(a)*(b)/(C)。
47.CC.【解析】线性表是一种线性结构,由n(n≥0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项C.是错误的。
48.C解析:二叉树的遍历分为先序、中序、后序三种不同方式。本题要求先序遍历遍历顺序应该为:访问根结点->先序遍历左子树->先序遍历右子树。按照定义,先序遍历序列是ABDECF。
49.B解析:本题对文件test输出4个数据,第一个5原样输出,第二个238.41只保留小数点后1位,然后输出一个‘,’,再连续输出两个字符‘B’和‘h’。所以最终的输出结果是5238.4,Bh。应该选择B。
50.B解析:对于do…while循环,程序先执行一次循环体,再判断循环是否继续。本题先输出一次i的值“0,”,再接着判断表达式i++的值,其值为0,所以循环结束。此时变量i的值经过自加已经变为1,程序再次输出i的值“1”。
51.D解析:在题中,i的值为3,由于“case3:”后面没有break语句,所以继续向下执行“case4:”后面的语句,由于“case4:”后面的语句为break强行退出switch语句,所以,本题没有任何输出。
52.B解析:scanf()函数要求将输入的数据存入变量所在的地址。选项A不是C语言中的输入语句,故选项A不正确;选项C中输入的是变量字符串而不是地址字符串,不满足scanf()函数要求将输入的数据存入变量所在的地址,故选项C不正确;选项D不是C语言中的输入语句,故选项D不正确:所以,4个选项中选项B符合题意。
53.A解析:对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。
54.C解析:函数intf(intx)是一个递归函数调用,当x的值等于0或1时,函数值等于3,其他情况下y=x2-f(x-2),所以在主函数中执行语句z=f(3)时,y=3*3-f(3-2)=9-f(1)=9-3=6。
55.B
56.B解析:本题考查的是C语言中实型常量的指数表示法。实型常量的指数表示法是用字母e(或E)将一个实数的小数部分和指数部分分隔开。字母e(或E)之前是小数部分,之后是指数部分,这两部分都不能省略,且指数部分必须为整数。故选项B不正确。所以,4个选项中选项B符合题意。
57.C解析:alpha[0]指向“ABCD'’的首地址;alpha[1]指向“EFGH'’的首地址;alpha[2]指向“IJKL”的首地址,依此类推。当初行p=alpha后,p指向指针数组alpha的首地址。for循环中输出了4个字符串。
58.B解析:对二又树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左,右子树时,注意依旧按照“左子树—根结点—右于树”的顺序。
59.A解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。
60.CC。【解析】在模块化程序设计中,模块之间的联系可以通过程序的控制结构来实现,在自顶向下、逐步细化的设计过程中,首先要考虑全局目标,而不是细节。在程序设计中模块化和结构化可以同时使用,一个模块的内部结构也要符合结构化设计原则。
61.C
62.A
63.DC语言编写的程序可以放置于多个程序文件中,所以A错误。C程序中的一行可以有多条语句,所以B错误。C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C错误。
64.B宏定义又称为宏代换,格式为”#define标识符字符串”,其中的标识符就是所谓的符号常量,也称为”宏名”,宏的预处理工作也叫做宏展开,即将宏名替换为字符串。本题中把S(k+j)替换成4*(k+j)*k+j+1,计算结果为l43。
65.B
66.Cp=&a表达式的含义是将变量a的地址赋给指针变量p;a=*p+b表达式的含义是将指针变量p所存地址对应的值与b的和赋给a。
67.AC语言中对于预处理命令行的位置没有明确的规定。通常,预处理命令位于源文件的开头,也可以写在函数与函数之间;不能在一行上写多条预处理命令:宏名一般习惯用大写字母表示,以便与变量名相区别,但这并非规
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省南京市2027届高三上学期9月学情调研化学试卷(含答案)
- 2026-2027学年人教版四年级数学上册第六单元条形统计图培优验收综合卷(含答案)
- 2026九年一贯制学校名班主任工作室专题培训课件:班主任的情绪管理与自我调节
- 尖锐湿疣的护理与预防
- 2026新学期小学生心理健康教育课件
- 2026新学期社区居民加强灾害预警守护生命安全课件
- 2025-2026年生物多样性保护与生态保护法律法规模拟试卷
- 2025-2026年计算机网络基础与安全知识巩固习题
- 2026年浙江省部编版初中数学下册第3单元同步练习题
- 2025-2026年江苏省湘教版九年级化学第5课有机化学基础测试题
- 保山电力股份有限公司招聘笔试题库
- 风电场施工材料采购与管理方案
- 医学计算机应用
- 童年第九章题目和答案
- 中风偏瘫中医护理查房
- 供货计划安排方案(3篇)
- 2024年贵州省粮食储备集团有限公司招聘真题
- 航天器轨道课件
- 新12S8室外给水管道附属构筑物标准图集
- 部编高教版2023·职业模块 中职语文 2.《宁夏闽宁镇:昔日干沙滩今日金沙滩》 课件
- 2025届高三化学一轮复习策略讲座
评论
0/150
提交评论