




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年湖南省张家界市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列定义中,不正确的有______。
A.#definePI3.141592
B.#defineS345;
C.intmax(x,y);
D.staticcharc;intx,y;{...}
2.以下选项中能用作数据常量的是()。
A.115LB.0118C.1.5e1.5D.o115
3.十六进制数BB转换成十进制数是()
A.192B.256C.187D.121
4.
5.
6.同一个关系模型的任意两个元组值()。
A.可以全相同B.不能全相同C.必须全相同D.以上都不对
7.一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A.219B.221C.229D.231
8.数据处理的最小单位是()。
A.数据B.数据元素C.数据项D.数据结构
9.从一个长度为100的顺序表中删除第30个元素时需向前移动()个元素
A.70B.71C.69D.30
10.如下函数调用语句func(rec1,rec2+rec3,rec4,rec5);该函数调用语句中,含的实参个数是().
A.3B.4C.5D.有语法错误
11.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。
A.auto和register
B.extern和register
C.auto和static
D.static和register
12.假设把整数关键码K散列到有N个槽的散列表,以下哪些散列函数是好的散列函数()
A.h(K)=KmodN
B.h(K)=1
C.h(K)=K/N
D.h(K)=(K+rand(N))modN,rand(N)返回一个0到N-1的整数
13.指针可以用来表示数组元素,若已知语句:inta[3][7];则下列表示中正确的是()。
A.*(a+1)[5]B.*(*a+3)C.*(*(a+1))D.*(&a[0][0]+2)
14.串是一种特殊的线性表,其特殊性体现在()。
A.可以顺序存储B.数据元素是一个字符C.可以链接存储D.数据元素可以是多个字符
15.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是()。
A.10,01B.02,12C.102,10D.02,10
16.
17.具有20个结点的二叉树,其深度最多为_______。
A.4B.5C.6D.20
18.在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行____。
A.q一>next=p一>next;p一>next=q;
B.q一>next=p一>next;p一>next=q;
C.p一>next=q一>next;q=p;
D.p一>next=q一>next;q一>next=p;
19.
20.若定义了函数double*function(),则函数function的返回值为()。
A.实数型B.实数的地址C.指向函数的指针D.函数的地址
二、2.填空题(20题)21.下列程序执行后输出的结果是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
22.若变量n中的值为24,则prnt函数共输出【】行。
voidprnt(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if!(i%5))printf("\n");
}
printf("\n");
}
23.阅读下面语句,则程序的执行结果是【】。
#include"stdio.h"
main()
{inta=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\",a,b);
elseprintf("%d,%d\n",b,a);}
24.有以下程序:
floatf1(floatn)
{returnn*n;}
floatf2(floatn)
{return2*n;}
main()
{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;
p1=f1;p2=f2;
y1=p2(p1(2.0));
t=P1;p1=p2;p2=t;
y2=p2(p1(2.0));
printf("%3.0f,%3.0f\n",y1,y2);
}
程序运行后的输出结果是【】。
25.若有以下程序:
intf(intx,inty)
{
return(y-x)*x;
}
main()
{
inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
执行后输出的结果是【】。
26.十进制数111用八位二进制数表示为【】。
27.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
28.问题处理方案的正确而完整的描述称为______。
29.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用删函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE*myf;longfl;
myf=【】("test.t","rb");
fseek(myf,(),SEEK_END);fl+ftell(myf);
fclose(myf);
printf("%d\n",fl);
30.以下程序的输出结果是【】。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=A);
}
31.下面程序的功能是【】。
doublesub(doublex,inty)
{intn;doublez;
for(n=1,z=x;n<y;n++)z=z*x;
returnz;}
main()
{doublea=2.0,b=4.0,c;
c=sub(a,b);printf("%f",c);}
32.以下程序的功能是:从键盘输入一字符串,要求将每个单词中的第一个字母改成小写(如果原来已是小写字母,则不变),然后输出转换结果,补足所缺语句。
main()
{charstr[200];inti=0;
while((______=getchar())!='\n');
str[i-1)='\0';
for(i=0;str[i]!='\0';i++)
if((str[i-1]==''‖i==0)&&str[i]>='A'&&str[i]<='Z')
str[i]+=______;
printf("%s\n",str);
}
33.数据结构分为线性结构和非线性结构,带链的队列属于[]。
34.在两种基本测试方法中,【】测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。
35.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。
36.对于长度为n的顺序存储的线性表,当随机插入和删除一个元素时,需平均移动元素的个数为【】。
37.写出下列程序的输出结果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
38.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。
39.在树形结构中,树根结点没有______。
40.设有下列的程序段:
charstr[]="Hello";
char*ptr;
ptr=-str;
执行上面的程序段后,*(ptr+5)的值为______。
三、1.选择题(20题)41.下列程序的运行结果是()。main(){inta=-5,b=1,c=1;intx=0,y=2,z=0;if(c>0)x=x+y;if(a<=0){if(b>O)if(c<=0)y=x-y;}elseif(c>0)y=x-y;elsez=y;printf("%d,%d,%d\n",x,y,z);}
A.2,2,0B.2,2,2C.0,2,0D.2,0,2
42.有以下程序:main(){chara='a',b;printf("%c,",++a);printf("%c\n",b=a++);程序运行后的输出结果是______。
A.b,bB.a,bC.b,cD.a,c
43.以下选项中,能定义s为合法的结构件变量的是_______。
A.typedefstructabc{doublea;charb[10];}s;
B.struct{doublea;charb[10];}s
C.structABC{doublea;charb[10];}ABCs;
D.typedefABC{doublea;charb[10];}ABCs;
44.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A.函数调用可以作为独立的语句存在
B.函数调用可以作为一个函数的实参
C.函数调用可以出现在表达式中
D.函数调用可以作为一个函数的形参
45.若有说明:int*p,m=5,n;以下正确的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=n;
D.p=&n;*p=m;
46.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以哪种方式打开文件()。
A.wbB.wb+C.rb+D.rb
47.有以下程序
#include<stdio.h>
main()
{FILE*fp;inti=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);
fclose(fp);}
程序运行后的输出结果是
A.2030B.2050C.3050D.3020
48.以下程序的输出结果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}
A.200100B.100100C.100200D.200200
49.有以下函数:intfun(char*s){char*t=s;while(*t++);return(t-s);}该函数的功能是()
A.比较两个字符串的大小
B.计算s所指字符串占用内存字节个数
C.计算s所指字符串的长度
D.将s所指字符串自制到字符串t中
50.以下选项中非法的表达式是()。
A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1
51.有程序段:intal,a2;Charcl,c2;scanf("%d%c%d%c",&a1,&cl,&a2,&c2);若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入()
A.10A20B<CR>B.10A20B<CR>C.10A20B<CR>D.10A20B<CR>
52.数据库系统的核心是()
A.数据库B.数据库管理系统C.模拟模型D.软件工程
53.下列叙述中正确的是A.C语言中既有逻辑类型也有集合类型
B.C语言中没有逻辑类型但有集合类型
C.C语言中有逻辑类型但没有集合类型
D.C语言中既没有逻辑类型也没有集合类型
54.下列可作为C语言赋值语句的是______。
A.x=3,y=5;B.a=b=6;C.i--;D.y=int(x);
55.下列工具中为需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
56.下述语句中,在字符串s1和s2相等时显示"theyareEqual"的是()。
A.if(*s1=*s2)puts("theyareEqual");
B.if(!strcmp(s1,s2))puts("theyareEqual");
C.if(s1==s2)puts("theyareEqual");
D.if(strcmp(s1,s2))puts("theyareEqual");
57.若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;
A.2B.3C.5D.4
58.下列关于栈的描述中错误的是()。A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针
59.有以下程序voidfun(int*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;i++;j--;fun(a,i,j);})main(){intx[]={2,6,1,8},i;fun(x,0,3);for(i=0;i<4;i++)printf("%2d",x[i]);printf("\"n);}程序运行后的输出结果是
A.1268B.8621C.8162D.8612
60.以下选项中,非法的字符常量是______。
A.'\t'B.'\17'C.\nD.'\xaa'
四、选择题(20题)61.有以下程序:
程序运行后的输出结果是()。
A.9B.8C.7D.10
62.
63.
64.设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
65.有下列程序
voidfunc1(inti);
voidfunc2(inti);
charst[]="hello,friend!";
voidfunc1(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func2(i);}
}
voidfunc2(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{inti=0;func1(i);
printf("\n");
}
执行后的输出结果是
A.helloB.hel
C.hloD.hlm
66.HTTP协议是运行于()协议之上的应用层协议。
A.FTPB.SMTPC.TCPD.UDP
67.
68.
有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+l;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main
{intc[10]={1,2,3,4,5,6,7,8,9,0),i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序运行的结果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
69.下列C语言用户标识符中,不属于合法标识符的是
A._1B.d3_7C._a7D.m—n
70.下列程序的输出结果是()。
A.a=4,b=4
B.a=4,b=5
C.a=5,b=4
D.a=5,b=5
71.设变量已正确定义并赋值,以下正确的表达式是()。
A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0
72.若有以下说明和定义,以下叙述中错误的是(
)。uniondt{
int
a;char
b;double
c;}data;A.两个共用体变量之间可以相互赋值B.变量data所占内存字节数与成员c所占字节数相等C.程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000D.共用体在初始化时只能用第一个成员的类型进行初始化
73.有以下程序
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d",(++p)[i]);
}
程序运行后的输出结果是()。
A.012B.135C.234D.345
74.(38)索引属于()
A.模式
B.内模式
C.外模式
D.概念模式
75.以下程序的输出结果是______。intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf("%d",x);}
A.33B.22C.26D.25
76.设有如下三个关系表
下列操作中正确的是()。
A.T=RnSB.T=RUSC.T=R×SD.T=R/S
77.面向对象方法中,继承是指()。
A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制
78.假定所有变量均已正确说明,下列程序段运行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3
79.
80.
五、程序改错题(1题)81.以下程序可把输入的十进制数以十六进制数的形式输出。请在横线上填上适当的内容并把横线删除,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写一个函数,用来删除字符串中的所有空格。例如,输入abcdefgh,则输出为abcdefgh。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.C
2.AA选项中“115L”表示长整型数据。B选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B选项错误。C选项中e后面应该是整数,而不能是小数1.5,所以C选项错误。D选项中八进制常量应该是以数字“0”开始,而不是以字母“o”开始。故本题答案为A选项。
3.C
4.A
5.C
6.B关系具有以下7个性质。①元组个数有限性:二维表中元组的个数是有限的。②元组的唯一性:二维表中任意两个元组不能完全相同。③元组的次序无关性:二维表中元组的次序,即行的次序可以任意交换。④元组分量的原子性:二维表中元组的分量是不可分割的基本数据项。⑤属性名唯一性:二维表中不同的属性要有不同的属性名。⑥属性的次序无关性.二维表中属性的次序可以任意交换。⑦分量值域的同一性:二维表属性的分量具有与该属性相同的值域,或者说列是同质的。满足以上7个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型。本题答案为B选项。
7.A本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为n2,则n0=n2+l。根据这条性质可知,若二叉树中有70个叶子结点,则其度为2的结点数为70-1,即69个。二叉树的总结点数是度为2、度为1和叶子结点的总和,因此,题目中的二叉树总结点数为69+80+70,即219。因此,本题的正确答案是选项A。
8.C解析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项C)。
9.A
10.B
11.A解析:在C语言中,动态存储区域中存放的变量在使用时才分配内存空间,函数调用时返回的地址和自动类局部变量等存放在动态存储区域中。auto变量和register变量都属于自动类局部变量,因此选项A正确。static说明的变量为静态变量,静态变量在内存的静态存储中占据着永久的存储单元,直至程序运行结束。extern说明的变量为外部变量,属于全局变量,全局变量在整个程序运行期间都占用内存空间。
12.A
13.D
14.B
15.C解析:本题中,“printf('%2d,%2d\\n',x,y)”表示以逗号隔开输出两个十进制整数,每个整数域宽是2。而在C语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出,因此最后的输出值为102和10(y的初值012表示八进制整数12,等于十进制的10)。所以,4个选项中选项C符合题意。
16.A
17.D
18.D
19.B
20.B
21.1212解析:本题的第—个for循环用于绐数组arr赋初值,第二个for循环用于求和运算。由于第二个for循环初始值为1,而循环条件为i<4,所以求的是arr[1]到arr[3]及i的和,所以输出结果为12。
22.55解析:本题的关键在于if(!(i%5))printf('\\n),这句,即如果i可被5整除时,则换行。i值为24,可以被5整除4次,并余4,因此,prnt函数共输出5行,最后一行有4个数。
23.101,0解析:与运算两边的语句必须同时为真时,结果才为真。当执行完if((++a<0)&&!(b--<=0))时,a,b的值已经发生了变化。
24.8168,16解析:float(*p1)(float)是定义p1为指向函数的float型的指针变量。因此p1=f1;p2=f2;表示p1指向函数f1,p2指向函数f2,故所有y1=p2(p1(2.0))=f2(f1(2.0))=8;后面将p1与p2互换,y2=f1(f2(2.0))=16。
25.99解析:在主函数中函数f(f(3,4),f(3,5))的返回值赋给do函数的第一个参数为f(3,4)的返回值,函数f(3,4)返回值为(4-3)*3=3,f(3,5)返回值为(5-3)*3=6,那么函数f(f(3,4),f(3,5))等价于函数f(3,6)其返回值为(6-3)*3=9。因此d被赋值为9,所以输出9。
26.11011111101111解析:本题通过除2取余法即可求出十进制数111所对应的二进制数1101111。
27.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)
28.算法或程序或流程图算法或程序或流程图解析:算法是问题处理方案正确而完整的描述。
29.fopenfopen解析:C语言中的文件分为:ASCII文件与二进制文件。文件在使用前打开,使用后要关闭。
打开文件的函数为:fopen(),调用形式为:fp=fopen(“文件名”,“使用文件方式”);
关闭文件的函数为:fclose(),调用形式为:fclose(fp);其中fp为文件指针。
30.00解析:对于一个unsignedshort来说,它能取的最大值是65535。这里给a赋值65536,已经超出了它的取值范围,这样它的高位将被截掉,只把低位赋给它(全零)。所以a的值实际为0。
31.本程序的功能是求a的b次方本程序的功能是求a的b次方
32.str[i++]32。str[i++]32。解析:while语句的循环控制条件既要将相应元素赋予从键盘输入的字符,又要改变元素的下标值,以便接受下一个字符,可用下标变量的后置加实现;小写字母的ASCII码值比相对应的大写形式大32。
33.线性结构线性结构解析:与栈类似,队列也是线性表,也町以采用链式存储结构。
34.白盒或白箱或白盒子或WhiteBox白盒或白箱或白盒子或WhiteBox解析:本题考查软件工程的测试。测试一般有两种方法:黑盒测试和白盒测试。黑盒测试不考虑程序的内部逻辑结构和处理过程,只着眼于程序的外部特性。用黑盒测试来发现程序中的错误,必须用所有可能的输入数据来检查程序能否都能产生正确的输出。白盒测试是在了解程序内部结构和处理过程的基础上,对程序的所有路径进行测试,检查路径是否都能按预定要求正确工作。因此,划线处应填入“白盒(箱)”或“WhiteBox”。
35.加工加工解析:数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。其中的每一个加工对应一个处理模块。
36.n/2n/2解析:删除一个元素,平均移动的元素个数为(n-1+n-2+…+0)/n=(n-1)/2;插入一个元素,平均移动元素个数为(n+n-1+n-2+…+1)/n=(n+1)/2;所以总体平均移动元素个数为n/2。
37.333,3解析:本题在while(n++<=1)语句后,直接加了分号,说明如果while()的条件为真时,该循环什么都不做:n++是先取n的当前值和1做比较,然后再将n加1。第一次循环,n=0时,循环条件n++=<1成立,执行循环,然后得到n=1。第二次循环,n=1时,循环条件n++=1<=1成立,执行循环,然后得到n=2。第三次循环,n=2时,循环条件n++=2<=1不成立,不执行循环,但在判断循环条件时仍将n加1,得到n=3.退出循环后执行printf语句,第二个printf语句输出n++,是先输出n的当前值3,然后再将n加l,即程序结束后得到n=4,但输出的是3。
38.类类解析:在面向对象方法中,类描述的是具有相似属性与操作的一组对象。
39.前件前件
40.'\0''\\0'解析:本题涉及字符数组和指针的两个知识点:①在c语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符'\\0',所以题中数组str有6个元素。②ptr指向数组s仕的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
41.A解析:本题考查ifelse语句的使用。先判断第1个if语句,因为c=1>0,所以x=x+y=0+2=2。第1个if语句,因为a=-5<0,所以进入下列的复合语句。经判断发现,复合语句中第2个if语句的条件均不满足,不执行任何语句退出,在这个过程中y和z的值没有发生变化。
42.A解析:本题同样考查++运算的执行次序。第一个prantf输出的是'b',并且变量a='b';第二个printf输出的是赋值语句b=a++最终的结果,该语句首先将a的值赋给b,然后a++,因此第二个printf输出也是'b'。
43.B解析:定义一个结构体类型的变量,可采用三种方法:①先定义结构体类型,再定义变量名;②在定义类型的同时定义变量;③直接定义结构类型变量,即不出现结构体名;选项B符合第三种定义方法。
44.D解析:本题考查函数的调用。在有参函数调用中,是将主调函数的实参值传给被调函数的形参。按函数在程序中出现的位置来分,有以下三种函数调用形式:
①函数调用作为一条语句。例如:fun();这时不要求函数带回值,只要求函数完成一定的操作。故选项A)正确。
②函数出现在表达式中,这种表达式称为函数表达式。这时要求函数带回一个确定的值以参加表达式的运算。例如:c=5*max(a,b);函数max是表达式的一部分,将其值乘以5后赋给c。故选项C)正确。
③函数调用作为一个函数的实参,例如:m=max(a,max(b,c));其中max(b,c)是一次函数调用,它的值作为max另一次调用的实参。故选项B)正确。
函数调用不可作为一个函数的形参,因为函数调用参数的数据传递是单向传递,即实参传给形参,不能由形参传给实参。故选项D)错误。
45.D解析:“&”是求址运算符,“*”是指变量说明符。选项A)、B)应改为scanf('%d',p);选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。
46.B解析:本题考查文件使用方式标识符。方式“wb”为输出打开一个二进制文件;方式“wb+”为读写建立一个新的二进制文件;方式“rb+”为读写打开一个二进制文件:方式“rb”为输入打开一个二进制文件。
47.A解析:本题中,最主要的是掌握几个有关文件函数的应用。
函数名:fopen
功能:打开一个文件
调用方式FILE*fp;
fp=fopen(文件名,使用文件方式);
函数名:fprintf
功能:传送格式化输出到一个文件中
调用方式:fprintf(文件指针,格式字符串,输出表列);
函数名:fclose
功能:关闭一个文件
调用方式:fclose(文件指针);
函数名:fscanf
功能:从磁盘文件执行格式化输入
调用方式:fscanf(文件指针,格式字符串,输入列表)。
48.C解析:#define宏名的有效范围为定义命令之后到本源文件结束,可以在程序中使用#undef命令终止宏定义的作用域。本题由于#undef的作用,使a的作用范围在#definea100到#undefa之间,故答案为C。
49.B解析:本题中,首先让t指向形参s,然后通过一个循环体为空的while循环,将t逐次后移,直到其所指的内容为0(字符串结束标志)。注意,此时t仍然会被增1,所以从循环中出来,t指向的是s所指字符串的结束标志的后一个字节。由此可见,返回的t-s是s所指字符串占用内存字节的个数,故本题应该选择B。注意,选项C和选项B是不同的,选项C所说的长度并不包括字符串结束标志位,而选项B所说的个数则包括。即选项B所说个数始终比选项C所说长度大1。
50.D解析:选项A)在C语言中是一个合法的关系表达式,但它并不代表数学式o<=x<100。计算0<=x<100时,从左到右结合,先计算0<=x,其结果只能是0或1,然后再比较0<100或1<100。根据运算符的优先级,选项B)先判断j==0是否成立,其结果只能是0或1,然后再将0或1赋给i。选项C)中,(char)(65+3)为类型强制转换,将整数型数据转换为字符型。选项D)是将一个数据赋给一个表达式,等号左边不合要求,所以错误。
51.A
52.B解析:数据库管理系统(DataBaseManagementSystem,简称DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。
53.D解析:在C语言中没有逻辑类型,逻辑类型用整型来表示,故选项A和选项C不正确,C语言中没有集合类型,故选项B不正确。所以,D选项为所选。
54.C
55.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。
56.B
57.A解析:条件表达式“a?b:c”的含义是:当a为真时,其值等于表达式b的值;当a为假时,其值等于表达式c的值。
表达式运算过程:第1个表达式:w=2<x=3为真,所以返回w的值,即m=w=2;第2个表达式:m=2<z=5为真,所以返回m的值,即m=2;第3个表达式:w=2<y=4为真,所以返回m的值,即m=2。
58.B栈是限定只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,它们的操作特点是先进后出,因此具有记忆作用。栈可以采用顺序存储,也可以采用链式存储。
59.C解析:本题考核的知识点是倘单程序的分析。函数fun()中用了一个if语句,当数组下标i小于数组下标j时,交换数组元素a[i]和a[j]的值,并使i值加1,j值减1。其功能就是把数组a中从下标i到j的元素首尾互换。主函数中定义一个数组,在定义该数组的时候缺省了定义长度,定义的同时将其初始化赋值,所以该数组的长度为初始化该数组时的元素的个数即4,接着调用fun(a,0,3),其中将a数组的第一个元素的下标0和最后一个元素的下标3传给了函数fun(),故执行完该函数后,数组a中的元素首尾互换,因此最后依次输出的数组a中值为8,1,6和2,所以,4个选项中选项C符合题意。
60.C解析:C语言中字符常量是以单引号括起来的单个字符,或为以“\\”与三位八进制数值或两位十六进制数值代替单个字符。
61.A题目中静态局部变量a,在静态存储区内分配存储单元,在程序整个运行期间都不释放。所以第-次调用函数执行n+=a++;时a先与n相加在再进行自增。n的值为4,a的值为2,且a变量执行完后空间没有释放。再执行s:。+f(a)时,s的值为4,调用f(a)函数时n的返回值为n=3+2=5,且此时a的值为3了。所以s的值为9。
62.A
63.B
64.B解析:条件表达式的形式为:“表达式1?表达式2:表达式3”。其含义为:当“表达式1”的值为非零时,求出“表达式2”的值,此时“表达式2”的值就是整个条件表达式的值;当“表达式1”的值为零时,求出“表达式3”的值,此时“表达式3”的值就是整个条件表达式的值。对于本题来说,当表达式EXP为非0值时条件成立,即执行语句i++;当EXP等于0时,执行语句j--;这等同于条件表达式“(EXP!=0)?i++:i++;”。
65.C根据变量作用域与其定义语句在程序中出现位置之间的关系,可把变量分为局部变量和全局变量两种。其中,在函数外部定义的变量叫做全局变量,又称为外部变量;在函数体内定义的变量是局部变量,又称为内部变量。全局变量的作用域是整个程序,而局部变量的作用域是定义它的函数或者程序段。
在本题中,程序首先声明两个无返回值函数func1和func2,然后定义一个全局数组st。做这类除主函数外,有其他函数的试题时,首先需要分析其他函数来得知函数的作用,然后再看主函数。
func1函数带有一个整型变量的形参,在函数体中,首先输出以形参作为下标的数组元素值,然后执行if条件判断语句,其条件为形参变量i<3。如果结果为真,则将变量i加2后保存,然后调用func2函数;如果条件结果为假,则结束该函数。
从程序中不难看出,func2函数与func1函数基本类似,只是最后它对函数func1进行调用,与前者不同,两个函数是互相调用的。
在主函数中定义一个变量i并赋值为0,然后调用函数func1,根据我们对函数func1的分析可知,输出st[0]即字符‘h’,而此时if语句的结果为真,执行i加2并调用func2函数操作。此时变量i的值为2,因此,输出st[2]即字符‘l’,此时函数func2中的if条件语句结果为真,同样执行i加2,并调用func1函数操作,然后通过func1函数输出st[4]即字符‘o’,此时由于变量i的值等于4,是大于3的,函数结束。程序运行到出口,最后输出换行。因此,本程序最终的输出结果是hlo。
66.C
67.A
68.D
\nfun函数的功能是对数组a[]的元素从大到小进行排序。
\n
69.D所谓标识符,是指常量、变量、语句标号以及用户自定义函数的名称。C语言规定标识符只能由字母、数字、下画线组成,并且只能以字母、下画线开头。一些标识符被赋予特定的含义就叫做保留字(或称为关键字)。
选项D“m—n”中含有非法字符“—”。
70.Bcontinue语句的作用是跳过本次循环体中余下尚未执行的语句,接着再一次进行循环条件的判定。当能被2整除时,a就会增1,之后执行continue语句,直接执行到for循环体的结尾,进行i++,判断循环条件。
71.A?B)与D)选项中取模运算符%的左右两个操作数均应为整数,所以B)、D)错误。C)选项中不能将x+z的值赋给表达式y*5,所以C)错误。
72.C浮点型占8个字节,整型占4个字节,当把整型数据用浮点型格式输出时,结果为0.000000
73.B第一个for循环的结果是p[9]={0,1,2,3,4,,5,6,7,8},第二个for循环:i=0,++p,使得p指向了1,所以输出的结果是1,然后i++,i=1,++p,p指向了3……
74.B
75.C解析:C语言规定如果全局变量与局部变量同名,则在局部变量的作用域内全局变量不起作用。程序开头定义的变量x为全局变量,函数incre中定义的变量x是局部静态变量,存放在静态存储区,incre调用结束后不释放x占据的存储单元。main函数中使用的x是全局变量x=3,所以main函数中调用函数incre两次。调用过程如下。第1次调用:x=x*(x+1)=1×(1+1)=2,printf函数输出2;第2次调用:x=x*(x+1)=2×(2+1)=6,printf函数输出6。
76.C\n对于两个关系的合并操作可以用笛卡尔积表示。设有n元关系R和in元关系s,它们分别有P和q个元组,则R与S的笛卡儿积记为R×S它是一个m+n元关系,元组个数是P×q由题意可得,关系T是由关系R与关系s进行笛卡尔积运算得到的。
\n
77.D继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。
78.B解析:本题考查ifelse语句。第一个if语句,先判断条件,发现a=0,则!a成立,执行下列的语句,x--,得x=11:第二个if语句,判断条件,发现c=o,则条件不成立,执行下列的else语句,得x=4。
79.C
80.C
81.(1)错误:缺少语句
正确:应填人num%base
(2)错误:缺少语句
正确:应填人[d]
【解析】按题目中的要求把输入的十进制数以十六进制数的形式输出,首先要对十进制数对16求余,得出十六进制每一位上的数字。因此,c[i]__________处填num%base。数组b为十进制数0~15所对应的十六进制数,数组c中存放的是十六进制数每一位上的数字。因此,b__________处填Ed2。
82.
【解析】根据题目中要求删除字符串中所有的空格,需要检查字符串中的每一个字符。将不是空格的字符放入原来的字符串中,形成新的字符串。在新的字符串的末尾加上结束符。
2022-2023年湖南省张家界市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列定义中,不正确的有______。
A.#definePI3.141592
B.#defineS345;
C.intmax(x,y);
D.staticcharc;intx,y;{...}
2.以下选项中能用作数据常量的是()。
A.115LB.0118C.1.5e1.5D.o115
3.十六进制数BB转换成十进制数是()
A.192B.256C.187D.121
4.
5.
6.同一个关系模型的任意两个元组值()。
A.可以全相同B.不能全相同C.必须全相同D.以上都不对
7.一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A.219B.221C.229D.231
8.数据处理的最小单位是()。
A.数据B.数据元素C.数据项D.数据结构
9.从一个长度为100的顺序表中删除第30个元素时需向前移动()个元素
A.70B.71C.69D.30
10.如下函数调用语句func(rec1,rec2+rec3,rec4,rec5);该函数调用语句中,含的实参个数是().
A.3B.4C.5D.有语法错误
11.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。
A.auto和register
B.extern和register
C.auto和static
D.static和register
12.假设把整数关键码K散列到有N个槽的散列表,以下哪些散列函数是好的散列函数()
A.h(K)=KmodN
B.h(K)=1
C.h(K)=K/N
D.h(K)=(K+rand(N))modN,rand(N)返回一个0到N-1的整数
13.指针可以用来表示数组元素,若已知语句:inta[3][7];则下列表示中正确的是()。
A.*(a+1)[5]B.*(*a+3)C.*(*(a+1))D.*(&a[0][0]+2)
14.串是一种特殊的线性表,其特殊性体现在()。
A.可以顺序存储B.数据元素是一个字符C.可以链接存储D.数据元素可以是多个字符
15.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是()。
A.10,01B.02,12C.102,10D.02,10
16.
17.具有20个结点的二叉树,其深度最多为_______。
A.4B.5C.6D.20
18.在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行____。
A.q一>next=p一>next;p一>next=q;
B.q一>next=p一>next;p一>next=q;
C.p一>next=q一>next;q=p;
D.p一>next=q一>next;q一>next=p;
19.
20.若定义了函数double*function(),则函数function的返回值为()。
A.实数型B.实数的地址C.指向函数的指针D.函数的地址
二、2.填空题(20题)21.下列程序执行后输出的结果是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
22.若变量n中的值为24,则prnt函数共输出【】行。
voidprnt(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if!(i%5))printf("\n");
}
printf("\n");
}
23.阅读下面语句,则程序的执行结果是【】。
#include"stdio.h"
main()
{inta=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\",a,b);
elseprintf("%d,%d\n",b,a);}
24.有以下程序:
floatf1(floatn)
{returnn*n;}
floatf2(floatn)
{return2*n;}
main()
{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;
p1=f1;p2=f2;
y1=p2(p1(2.0));
t=P1;p1=p2;p2=t;
y2=p2(p1(2.0));
printf("%3.0f,%3.0f\n",y1,y2);
}
程序运行后的输出结果是【】。
25.若有以下程序:
intf(intx,inty)
{
return(y-x)*x;
}
main()
{
inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
执行后输出的结果是【】。
26.十进制数111用八位二进制数表示为【】。
27.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
28.问题处理方案的正确而完整的描述称为______。
29.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用删函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE*myf;longfl;
myf=【】("test.t","rb");
fseek(myf,(),SEEK_END);fl+ftell(myf);
fclose(myf);
printf("%d\n",fl);
30.以下程序的输出结果是【】。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=A);
}
31.下面程序的功能是【】。
doublesub(doublex,inty)
{intn;doublez;
for(n=1,z=x;n<y;n++)z=z*x;
returnz;}
main()
{doublea=2.0,b=4.0,c;
c=sub(a,b);printf("%f",c);}
32.以下程序的功能是:从键盘输入一字符串,要求将每个单词中的第一个字母改成小写(如果原来已是小写字母,则不变),然后输出转换结果,补足所缺语句。
main()
{charstr[200];inti=0;
while((______=getchar())!='\n');
str[i-1)='\0';
for(i=0;str[i]!='\0';i++)
if((str[i-1]==''‖i==0)&&str[i]>='A'&&str[i]<='Z')
str[i]+=______;
printf("%s\n",str);
}
33.数据结构分为线性结构和非线性结构,带链的队列属于[]。
34.在两种基本测试方法中,【】测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。
35.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。
36.对于长度为n的顺序存储的线性表,当随机插入和删除一个元素时,需平均移动元素的个数为【】。
37.写出下列程序的输出结果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
38.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。
39.在树形结构中,树根结点没有______。
40.设有下列的程序段:
charstr[]="Hello";
char*ptr;
ptr=-str;
执行上面的程序段后,*(ptr+5)的值为______。
三、1.选择题(20题)41.下列程序的运行结果是()。main(){inta=-5,b=1,c=1;intx=0,y=2,z=0;if(c>0)x=x+y;if(a<=0){if(b>O)if(c<=0)y=x-y;}elseif(c>0)y=x-y;elsez=y;printf("%d,%d,%d\n",x,y,z);}
A.2,2,0B.2,2,2C.0,2,0D.2,0,2
42.有以下程序:main(){chara='a',b;printf("%c,",++a);printf("%c\n",b=a++);程序运行后的输出结果是______。
A.b,bB.a,bC.b,cD.a,c
43.以下选项中,能定义s为合法的结构件变量的是_______。
A.typedefstructabc{doublea;charb[10];}s;
B.struct{doublea;charb[10];}s
C.structABC{doublea;charb[10];}ABCs;
D.typedefABC{doublea;charb[10];}ABCs;
44.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A.函数调用可以作为独立的语句存在
B.函数调用可以作为一个函数的实参
C.函数调用可以出现在表达式中
D.函数调用可以作为一个函数的形参
45.若有说明:int*p,m=5,n;以下正确的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=n;
D.p=&n;*p=m;
46.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以哪种方式打开文件()。
A.wbB.wb+C.rb+D.rb
47.有以下程序
#include<stdio.h>
main()
{FILE*fp;inti=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);
fclose(fp);}
程序运行后的输出结果是
A.2030B.2050C.3050D.3020
48.以下程序的输出结果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}
A.200100B.100100C.100200D.200200
49.有以下函数:intfun(char*s){char*t=s;while(*t++);return(t-s);}该函数的功能是()
A.比较两个字符串的大小
B.计算s所指字符串占用内存字节个数
C.计算s所指字符串的长度
D.将s所指字符串自制到字符串t中
50.以下选项中非法的表达式是()。
A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1
51.有程序段:intal,a2;Charcl,c2;scanf("%d%c%d%c",&a1,&cl,&a2,&c2);若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入()
A.10A20B<CR>B.10A20B<CR>C.10A20B<CR>D.10A20B<CR>
52.数据库系统的核心是()
A.数据库B.数据库管理系统C.模拟模型D.软件工程
53.下列叙述中正确的是A.C语言中既有逻辑类型也有集合类型
B.C语言中没有逻辑类型但有集合类型
C.C语言中有逻辑类型但没有集合类型
D.C语言中既没有逻辑类型也没有集合类型
54.下列可作为C语言赋值语句的是______。
A.x=3,y=5;B.a=b=6;C.i--;D.y=int(x);
55.下列工具中为需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
56.下述语句中,在字符串s1和s2相等时显示"theyareEqual"的是()。
A.if(*s1=*s2)puts("theyareEqual");
B.if(!strcmp(s1,s2))puts("theyareEqual");
C.if(s1==s2)puts("theyareEqual");
D.if(strcmp(s1,s2))puts("theyareEqual");
57.若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;
A.2B.3C.5D.4
58.下列关于栈的描述中错误的是()。A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针
59.有以下程序voidfun(int*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;i++;j--;fun(a,i,j);})main(){intx[]={2,6,1,8},i;fun(x,0,3);for(i=0;i<4;i++)printf("%2d",x[i]);printf("\"n);}程序运行后的输出结果是
A.1268B.8621C.8162D.8612
60.以下选项中,非法的字符常量是______。
A.'\t'B.'\17'C.\nD.'\xaa'
四、选择题(20题)61.有以下程序:
程序运行后的输出结果是()。
A.9B.8C.7D.10
62.
63.
64.设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
65.有下列程序
voidfunc1(inti);
voidfunc2(inti);
charst[]="hello,friend!";
voidfunc1(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func2(i);}
}
voidfunc2(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{inti=0;func1(i);
printf("\n");
}
执行后的输出结果是
A.helloB.hel
C.hloD.hlm
66.HTTP协议是运行于()协议之上的应用层协议。
A.FTPB.SMTPC.TCPD.UDP
67.
68.
有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+l;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main
{intc[10]={1,2,3,4,5,6,7,8,9,0),i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序运行的结果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
69.下列C语言用户标识符中,不属于合法标识符的是
A._1B.d3_7C._a7D.m—n
70.下列程序的输出结果是()。
A.a=4,b=4
B.a=4,b=5
C.a=5,b=4
D.a=5,b=5
71.设变量已正确定义并赋值,以下正确的表达式是()。
A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0
72.若有以下说明和定义,以下叙述中错误的是(
)。uniondt{
int
a;char
b;double
c;}data;A.两个共用体变量之间可以相互赋值B.变量data所占内存字节数与成员c所占字节数相等C.程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000D.共用体在初始化时只能用第一个成员的类型进行初始化
73.有以下程序
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d",(++p)[i]);
}
程序运行后的输出结果是()。
A.012B.135C.234D.345
74.(38)索引属于()
A.模式
B.内模式
C.外模式
D.概念模式
75.以下程序的输出结果是______。intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf("%d",x);}
A.33B.22C.26D.25
76.设有如下三个关系表
下列操作中正确的是()。
A.T=RnSB.T=RUSC.T=R×SD.T=R/S
77.面向对象方法中,继承是指()。
A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制
78.假定所有变量均已正确说明,下列程序段运行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3
79.
80.
五、程序改错题(1题)81.以下程序可把输入的十进制数以十六进制数的形式输出。请在横线上填上适当的内容并把横线删除,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写一个函数,用来删除字符串中的所有空格。例如,输入abcdefgh,则输出为abcdefgh。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.C
2.AA选项中“115L”表示长整型数据。B选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B选项错误。C选项中e后面应该是整数,而不能是小数1.5,所以C选项错误。D选项中八进制常量应该是以数字“0”开始,而不是以字母“o”开始。故本题答案为A选项。
3.C
4.A
5.C
6.B关系具有以下7个性质。①元组个数有限性:二维表中元组的个数是有限的。②元组的唯一性:二维表中任意两个元组不能完全相同。③元组的次序无关性:二维表中元组的次序,即行的次序可以任意交换。④元组分量的原子性:二维表中元组的分量是不可分割的基本数据项。⑤属性名唯一性:二维表中不同的属性要有不同的属性名。⑥属性的次序无关性.二维表中属性的次序可以任意交换。⑦分量值域的同一性:二维表属性的分量具有与该属性相同的值域,或者说列是同质的。满足以上7个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型。本题答案为B选项。
7.A本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为n2,则n0=n2+l。根据这条性质可知,若二叉树中有70个叶子结点,则其度为2的结点数为70-1,即69个。二叉树的总结点数是度为2、度为1和叶子结点的总和,因此,题目中的二叉树总结点数为69+80+70,即219。因此,本题的正确答案是选项A。
8.C解析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项C)。
9.A
10.B
11.A解析:在C语言中,动态存储区域中存放的变量在使用时才分配内存空间,函数调用时返回的地址和自动类局部变量等存放在动态存储区域中。auto变量和register变量都属于自动类局部变量,因此选项A正确。static说明的变量为静态变量,静态变量在内存的静态存储中占据着永久的存储单元,直至程序运行结束。extern说明的变量为外部变量,属于全局变量,全局变量在整个程序运行期间都占用内存空间。
12.A
13.D
14.B
15.C解析:本题中,“printf('%2d,%2d\\n',x,y)”表示以逗号隔开输出两个十进制整数,每个整数域宽是2。而在C语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出,因此最后的输出值为102和10(y的初值012表示八进制整数12,等于十进制的10)。所以,4个选项中选项C符合题意。
16.A
17.D
18.D
19.B
20.B
21.1212解析:本题的第—个for循环用于绐数组arr赋初值,第二个for循环用于求和运算。由于第二个for循环初始值为1,而循环条件为i<4,所以求的是arr[1]到arr[3]及i的和,所以输出结果为12。
22.55解析:本题的关键在于if(!(i%5))printf('\\n),这句,即如果i可被5整除时,则换行。i值为24,可以被5整除4次,并余4,因此,prnt函数共输出5行,最后一行有4个数。
23.101,0解析:与运算两边的语句必须同时为真时,结果才为真。当执行完if((++a<0)&&!(b--<=0))时,a,b的值已经发生了变化。
24.8168,16解析:float(*p1)(float)是定义p1为指向函数的float型的指针变量。因此p1=f1;p2=f2;表示p1指向函数f1,p2指向函数f2,故所有y1=p2(p1(2.0))=f2(f1(2.0))=8;后面将p1与p2互换,y2=f1(f2(2.0))=16。
25.99解析:在主函数中函数f(f(3,4),f(3,5))的返回值赋给do函数的第一个参数为f(3,4)的返回值,函数f(3,4)返回值为(4-3)*3=3,f(3,5)返回值为(5-3)*3=6,那么函数f(f(3,4),f(3,5))等价于函数f(3,6)其返回值为(6-3)*3=9。因此d被赋值为9,所以输出9。
26.11011111101111解析:本题通过除2取余法即可求出十进制数111所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无锡南洋职业技术学院《第二外语英语》2023-2024学年第二学期期末试卷
- 中国科学技术大学《结构方程模型》2023-2024学年第二学期期末试卷
- 石家庄市正定县2025届数学三下期末达标检测模拟试题含解析
- 泰山护理职业学院《复利数学》2023-2024学年第一学期期末试卷
- 肇庆学院《动植物检验检疫》2023-2024学年第二学期期末试卷
- 江苏省南通等六市2025届高三入学调研物理试题(3)试卷含解析
- 湖北省恩施市巴东县2025年初三下学期第三次诊断考试语文试题试卷含解析
- 内蒙古巴彦淖尔市重点中学2025年高三4月考历史试题理试卷含解析
- 张家口职业技术学院《计算机专业英语阅读》2023-2024学年第二学期期末试卷
- 浙江杭州余杭区2025年初三下学期第四次调考(4月)英语试题含答案
- 第6节 有机磷农药中毒病人的护理
- 小学生安全教育校本教材(中年级版)
- 中职语文 大国工匠——彭祥华
- 数字化语音存储与回放系统(毕业设计)
- 喜达屋明星服务
- 烟草企业安全生产标准化规范-第3部分-考核评价准则和方法
- 武汉市控制性详细规划编制技术规程610
- 电子显微分析试题集1
- ANCA相关性小血管炎
- 服装面料采购合同
- 斯伦贝谢定向钻井和旋转导向
评论
0/150
提交评论