版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年浙江省宁波市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列程序的运行结果为()。
#deflneMAX(x,y)(x)>(y)(x):(y)
main()
{inta=2,b=3,c=1,d=3,t;
printf("%d\n",(MAX(a+b,c+D))*100);
}A.A.500B.5C.4D.400
2.
3.在单链表中,增加头结点的目的是()。
A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性的链式存储实现
4.在排序方法中,元素比较次数与元素的初始排列无关的是()
A.Shell排序B.归并排序C.直接插入排序D.选择排序
5.若有以下说明:chars1[]={"tree"},s2[]={"flower"};,则以下对数组元素或数组的输出语句中,正确的是()。
A.printf("%s%s",s1[5],s2[7]);
B.printf("%c%c",s1,s2);
C.puts(s1);puts(s2);
D.puts(s1,s2);
6.程序运行后的输出结果是()。A.3B.4C.1D.9
7.已定义以下函数“intfun(int*p){return*p;}”,fun函数的返回值是()。
A.—个整数B.不确定的值C.形参p中存放的值D.形参p的地址值
8.
9.在一个C语言源程序文件中所定义的全局变量,其作用域为()。
A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和extern说明来决定范围
10.有下列程序:程序执行后的输出结果是()。A.efg,h,z,q,bcd
B.efg,d,zyz,wbbcd
C.efgabcdsnopqhijkIxyz,h,z,q,bcd
D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd
11.以下不能输出字符A的语句是(注:字符A的ASCII值为65,字符a的ASCII值为97)()。
A.printf(“%c\n”,‘a’-32);
B.printf(“%d\n”,‘A’);
C.printf(“%c\n”,65);
D.printf(“%c\n”,‘B’-1);
12.设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为____。
A.O(1)B.O(n)C.O(n2)D.O(log2n)
13.程序运行后的输出结果是()。A.3B.4C.5D.6
14.若有定义“charch;inta;doubled;”,当输入为12345678910.36时,以下选项中能给各个变量正确赋值的是()。
A.scanf(“%d%c%lf”,&a,&ch,&d);
B.scanf(“%5d%2c%7.2lf”,&a,&ch,&d);
C.scanf(“%d%c%lf”,a,ch,d);
D.scanf(“5d%2c%7.2lf%”,&a,&ch,&d);
15.数据的存储结构是指______。
A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据
16.若有说明语句:double*p,a;则通过scanf语句正确给输入项读人数据的程序段是()。
A.*p=&a;scanf("%1f”,p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%",*p);
D.p=&a;scanf("%1f",p);
17.给定数列(541,132,984,746,518,181,946,314,205,827)按照从小到大的顺序排列,采用冒泡排序时,第一趟扫描结果是()
A.(541,132,827,746,518,181,946,314,205,984)
B.(205,132,314,181,518,746,946,984,541,827)
C.(132,541,746,984,181,518,314,946,205,827)
D.(132,541,746,518,181,946,314,205,827,984)
18.设一棵满二叉树共有15个结点,则在该满二叉树中的叶子结点数为()
A.7B.8C.9D.10
19.软件生命周期中,花费最多的阶段是()。
A.详细设计B.软件编码C.软件测试D.软件维护
20.若变量已正确定义,下列正确的程序段是()。
A.while(ch=getchar()=='\N')putchar(ch);
B.while((ch=getchar())=='\n')putchar(ch);
C.while((ch=getchar())!='\N')putchar(ch);
D.while((ch=getchar())!='\n')putchar(ch);
二、2.填空题(20题)21.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、______和选择排序。
22.数据库恢复是将数据库从______状态恢复到某一已知的正确状态。
23.关系数据库的关系演算语言是以【】为基础的DML语言。
24.设有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序运行后,从键盘上输入(<CR>代表回车符):DEF<CR>BADEF<CR>QTHRG<CR>,则程
序的输出结果是______。
25.成本估算模型中,Putnam估算模型是一种【】模型。
26.设x和y均为int型变量,且x=1,y=2,则表达式2.0+x/y的值为_______。
27.当运行以下程序时,输入abcd,程序的输出结果是【】。
insert(charstr[])
{inti;
i=stolen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",sir);
}
main()
{charstr[40];
seanf("%s",str);insert(str);
}
28.设有以下结构体类型:
structst
{charname[8];
intnum;
floats[4];
}student[50];
并且结构体数组student中的元素都已有值。若要将这些元素写到硬盘文件fp中,请将以下fwrite语句补充完整:
fwrite(student,【】,1,fp);
29.软件工程研究的内容主要包括:【】技术和软件工程管理。
30.诊断和改正程序中错误的工作通常称为【】。
31.下列程序的运行结果是【】。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%\n",p);
}
32.在树形结构中,树根结点没有______。
33.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
34.下面程序中函数creat用于建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾,单向链表的头指针作为函数值返回。将程序补充完整。
#include<stdiao.h>
structlist
{chardata;structlist*next;};
structlist*creat()
{
structlist*h,*p,*q;charch;
h=【】malloc(sizeof(structlist));
p=q=h;ch=getchar();
while(ch!='?')
{
p=【】malloc(sizeof(structlist));
p->data=ch;q->next=p;q=p;ch=getchar();
}
p->next='\0';
【】;
}
35.以下程序的功能是计算。补足所缺语句。
longf(intn)
{inti;longs;
s=【】;
for(i=1;i<=n;i++)s=【】;
returns;
}
main()
{longs;intk,n;
scanf("%d",&n);
s=【】;
for(k=0;k<=n,k++)s=s+【】;
printf("%1d\n",s);
}
36.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。
37.开发软件所需要的高成本和产品的低质量之间有着尖锐的矛盾,这种现象被人们称之为【】。
38.下列程序的运行结果是______。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",-i);
}
39.设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。
40.以下程序运行后的输出结果是______。
main()
{chara[]="Language",b[]="Programe";
char*p1,*p2;
intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c,*(p1+k));
}
三、1.选择题(20题)41.若变量已正确定义,下列正确的程序段是()。
A.while(ch=getchar()=='\N')putchar(ch);
B.while((ch=getchar())=='\n')putchar(ch);
C.while((ch=getchar())!='\N')putchar(ch);
D.while((ch=getchar())!='\n')putchar(ch);
42.若已包括头文件<stdio.h>且已有定义staticcharstr[9];,现要使str从键盘获取字符串"Thelady",应使用
A.scanf("%s",str)
B.for(i=0;i<9;i++)gethchar(str[i]);
C.gets(str);
D.for(i=0;i<9;i++)scanf("%s",&str[i]);
43.对建立良好的程序设计风格,下面描述正确的是()
A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无
44.以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
45.有以下程序main(){ihta[]{2,4,6,9,10},y=0,x,*p;p=&a[1];for(x=1);X<3;x++)y+=p[x];printf("%d\n",y);程序运行后的输出结果是
A.10B.11C.14D.15
46.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填______。structlink{chardata;______;}node;
A.Structlinknext
B.link*next
C.structnextlink
D.Structlink*next
47.设有下列二叉树:
对此二叉树后序遍历的结果为
A.ABCDEFB.BDAECFC.ABDCEFD.DBEFCA
48.—个数据库系统一般由三级模式组成,其中的模式(也称逻辑模式或概念模式)指的是______。
A.用户使用的数据视图B.所有用户的公共数据视图C.对数据物理结构和存储结构的描述D.一种局部的逻辑数据视图
49.在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是
A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*1OL;
50.不能把字符串“Hello!”赋给数组b的语句是________。
A.charb[10]={'H','e','1','l','o','!'};
B.chsrb[10]={'h','e','1','1','o','!'};
C.charb[10];strcpy(b,"Hello!");
D.chgrb[10]="Hello!";
51.“商品”与“顾客”两个实体集之间的联系一般是
A.一对一B.一对多C.多对一D.多对多
52.下面程序的输出是______。chars[]="ABCD";main(){char*p;for(p=s;p<s+4;p++)printf("%s\n",p);}
A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA
53.算法的空间复杂度是指()。
A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间
54.下列叙述中正确的是()。
A.调用printf()函数时,必须要有输出项
B.使用putchar()函数时,必须在之前包含头文件stdio.h
C.在C语言中,整数可以以二进制、八进制或十六进制的形式输出
D.调节getchar()函数读入字符时,可以从键盘上输入字符所对应的ASCII码
55.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<5;i++)j+=f(i);printf("%d\n",j);}程序运行后的输出结果是()
A.15B.10C.6D.3
56.有下列程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4;n+=2;k--;break;}printf("%d",n);}while(k>O&&n<5);}程序运行后的输出结果是()。
A.235B.0235C.02356D.2356
57.下列说法不正确的是()。
A.调用函数时,实参可以是表达式
B.调用函数时,实参与形参可以共用内存单元
C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等
D.调用函数时,实参与形参的类型必须一致
58.下面程序的运行结果是#include<stdio.h>#include<string.h>main(){char*s1="AbDeG";char*s2="AbdEg";s1+=2;s2+=2;printf("%d\n",strcmp(s1,s2));}
A.正数B.负数C.零D.不确定的值
59.有以下程序
#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);
}
程序的运行结果是
A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1
60.有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}执行后的输出结果是()。
A.1B.2C.4D.死循环
四、选择题(20题)61.下列叙述中错误的是()。A.在数据库系统中,数据的物理结构必须与逻辑结构一致,
B.数据库技术的根本目标是要解决数据的共享问题
C.数据库设计是指在已有数据库管理系统的基础上建立数据库
D.数据库系统需要操作系统的支持
62.下列程序的输出结果是()。
main
{inta,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);}A.A.6,1B.2,1C.6,0D.2,0
63.
64.有以下程序:
程序运行后的输出结果是()。
A.1*1=11*2=21*3=32*1=22*2=43*1=3
B.1*1=11*2=21*3=32*2=42*3=63*3=9
C.1*1=11*2=22*2=41*3=32*3=63*3=9
D.1*1=12*l=22*2=43*1=33*2=63*3=9
65.
66.
67.以下选项中关于C语言常量的叙述错误的是()。
A.经常被陡用的变量可以定义成常量
B.常量分为整型常量、实型常量、字符常量和字符串常量
C.常量可分为数值型常量和非数值型常量
D.所谓常量,是指在程序运行过程中,其值不能被改变的量
68.?下列程序的输出结果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a=2default:a+=3;}}printf("%d",a);}A.19B.18C.6D.8
69.
70.
71.下列描述中不正确的是()。
A.字符型数组中可能存放字符串。
B.可以对字符型数组进行整体输入、输出。
C.可以对整型数组进行整体输入、输出。
D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
72.
73.已知函数的调用形式:fread(buf,size,count,fp),参数buf的含义是
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针,指向要读入数据的存放地址
D.一个存储区,存放要读的数据项
74.
75.以下选项中与
76.在数据库设计中,将E—R图转换为关系模式的过程属于()。
A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段
77.第
15
题
以下程序的输出结果是
main()
{inta=21,b=11;
printf("%d\n",--a+b,--b+a);
}
A.30B.31C.32D.33
78.在面向对象方法中,实现信息隐蔽是依靠()。
A.对象的继承B.对象的多态C.对象的封装D.对象的分类
79.
若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为()。
cb=b;
k=10;
printf("%X,%o,”,ch,ch,k);
printf("k=%%d\n",k);
A.因变量类型与格式描述符的类型不匹配,输出无定值
B.输出项与格式描述符个数不符,输出为0值或不定值
C.62,142,k=%d
D.62,142,k=%10
80.下列叙述中正确的是()。
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算str所指字符串中含有t所指字符串的数目,并作为函数值返回。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外的其余所有字符全部删除,字符串中剩余字符所形成的一个新字符串存放在t所指的数组中。例如,若s所指字符串的内容为“ABCDEFG12345”,其中字符A的ASCII值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCII值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指数组中的内容应为“135”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){ chars[100],t[100]; printf(“\nPleaseenterstrings:”); scanf(“%s”,s); fun(s,t); printf(“\nTheresultis:%s\n”,t);}
参考答案
1.A解析:本题考查带参数的宏的定义及相关运算:(x)>(y)(x):(y)是x>y时输出x,否则输出y,调用(MAX(a+b,c+d))*100时,(a+b=5)>(c+d=4),所以输出a+b=5,所以x=5*100。
2.D
3.A根据单位链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点的目的是为了便于运算的实现。
4.D
5.C
6.B[解析]每次内循环只循环一-次就结束,第一次外循环时t=t+b[][0][]=1+b[0][0]=1+0=1;第二次外循环时t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循环时t=t+b[][2][]=2+b[2][2]=2+2=40
7.A函数返回值为指针变量指向的数据,该数据已被定义为整型。故本题答案为A选项。
8.A
9.D
\n全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全局变量进行说明,以便通知编译程序该变量是一个已在外部定义了的全局变量,这时全局变量的作用域从extern说明处起,延伸到该函数末尾。
\n
10.A程序定义一个二维字符数组v,使用5个字符串对其初始化。对于表达式“*v”等价于“*(v+0)”,输出的是数组v的第1个元素efg;“**(v+3)”等价于“*(*(v+3)+0)”,输出的是数组v的第4个元素的第1个字符h;“v[4]”表示数组v的第5个元素,“v[4]+2”表示输出从下标2开始的所有字符,即z;“v[2]”表示数组v的第3个元素,“*(v[2]+4)”表示数组v的第3个元素的下标为4的字符q;“v[1]+1”表示数组v的第2个元素从下标1开始的子字符串,即bcd。所以程序输出:efg,h,z,q,bcd。本题答案为A选项。
11.BB选项输出的格式为%d,即整型格式,所以输出字符‘A’的ASCII值65,而不是字母A。因为大写字母比其对应的小写字母的ASCII值小32,所以A选项正确。字符‘A’的ASCII值是65,以%c格式输出可以输出字母A,所以C选项正确。因为字符‘A’的ASCII值比字符‘B’的小1,所以D选项正确。故本题答案为B选项。
12.D
13.B[解析]&按位与,如果两个相应的二进制位都为1.则该位的结果值为1.否则为0.按位或两个相应的二进制位中只要有一个为1.该位的结果值为1.2的二进制为0000010.4的二进制为000000所以做或运算结果为0000110.该数与5即00000101做与操作结果为0000100.即4.
14.Ascanf是格式输入函数,其中双引号之间的内容是格式控制字符串,后面是输入参数列表。输入参数列表中各项都必须是变量地址,所以选项C错误;在scanf函数的格式字符前,可以加入一个正整数指定输入数据所占的宽度,但不可以对实数指定小数位的宽度,所以选项B、D错误。选项A是正确的,按照A的输入格式,12345赋值给变量a,空格赋值给变量ch,678910.36赋值给变量d。故本题答案为A选项。
15.B解析:数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般不可能相同。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。
16.Ddouble*p,a定义了一个指向双精度型的指针变量P和双精度型变量a,p=&a表示将变量a的地址赋给指针变量p;scanf("%If",p)表示用键盘输入的数赋给指针变量P所指向的地址单元中,scanf函数要求在输入double型数据,格式控制符必须用%1f。否则,数据不能正确输入。所以选项D正确。
17.D
18.BB)【解析】在具有11个结点的满二叉树,其非叶子结点数为int(n/2),而叶子结点数等于总结点数减去叶子结点数。本题n=15,故非叶子结点数等于int(15/2)=7,叶子结点数等于15-7=8。
19.D本题考查对软件生命周期的理解,软件生命周期整体上可分为定义阶段、开发阶段和维护阶段。其中定义阶段包括可行性研究与计划制订和需求分析;开发阶段包括概要设计、详细设计、开发和测试;维护阶段是一个单独阶段,不包含在开发阶段内,它是所花费用最多的一个阶段。
20.D解析:本题考查两个知识点:①C语言用'\\n'这个字符常量表示换行;②函数getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。
21.交换排序交换排序解析:所谓排序是指将一个无序序列整理成按值非递减顺序排列成的有序序列,常用的排序方法有:交换排序、插入排序和选择排序。其中交换排序包括冒泡排序和快速排序,插入排序包括简单插入排序和希尔排序,选择排序包括直接选择排序和堆排序。
22.错误。错误。解析:数据库恢复是将数据库中的数据从错误状态中恢复到某种逻辑一致的状态。如果数据库中包含成功事务提交的结果,则称数据库处于一致性状态。
23.谓词演算谓词演算
24.QTHRGQTHRG解析:函数strcmp(t,s)用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0:若t<s,则函数值小于0。函数strcpy(t,s)的功能是,把字符数组s所指字符串的内容复制到字符数组t所指存储空间中。本题中,t[10]='CDEF'。第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环,s='QTHRG',if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指存储空间中,然后输出字符数组t。
25.动态多变量动态多变量
26.2.0。2.0。解析:x和y为整数,运算符“/”在这里是整型除,整除后值为0。
27.a*b*c*d*a*b*c*d*解析:程序中的变量i用于存放字符串str的长度,执行while语句,通过分析可知,字符串第2*i项的值可由第i项的值得到;第2*i-1项直接赋值为。号,i减1,如此反复直到不满足i>0的条件时,输出运行后的字符串。
28.sizeof(structst)*50sizeof(structst)*50解析:fwrite函数的一般调用形式为:fwrite(buffer,size,count,fp);其中:buffer是一个指针变量,是要输出数据的起始地址;size是要写的字节数;count是要写多少个size字节的数据项;fp是文件指针。
29.软件开发
30.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。程序调试与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于调试工具找出软件错误的具体位置。软件测试贯穿整个软件生命期,而调试主要在开发阶段。
31.efghefgh解析:函数ss的作用是让形参指针s指向该字符串的右半部分。主函数中首先定义了一个字符型指针变量p和字符型指针str,并初始化为“abcdefgh”,然后调用函数ss,将实参str传给形参s,因此可知该函数返回的指针,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后输出指针p(指针p的值为调用函数ss(str)的返回值)所指向的字符串为“efgh”。
32.前件前件
33.3!feof(f1)3\r\n!feof(f1)解析:要实现文件复制,需要指定源文件及目的文件,因此在命令行下执行程序时至少要指定两个参数,加上程序名本身,故argc的值至少为3,因此第一空应填3。while循环中语句fputc(fgetc(f1),f2);的目的是将f1中的字符依次读出并写入到f2对应的文件中去,直至文件f1结束为止,因此第二空为!feof(f1)。
34.(structlist*)(structlist*)return(h)
35.1s*i0f(k)
36.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。
37.软件危机软件危机
38.33解析:分析程序运行过程,第1次循环:s=s+i*i=0+1*1=1,i=2;第2次循环:s=s+i*i=1+2*2=5,i=3;第3次循环:s=s+i*i=5+3*3=14,i=4;循环条件不成立输出i,--i使i的值减1,轴出结果为3。
39.350350解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的结点。因此,设一棵完全二叉树具有n个结点,若n为偶数,则在该二叉树中有n/2个叶子结点以及n/2-1个度为2的结点,还有1个是度为1的结点:若n为奇数,则在该二叉树中有[n/2]+1个叶子结点以及[n/2]个度为2的结点,没有度为1的结点。本题中,完全二叉树共有700个结点,700是偶数,所以,在该二叉树中有350个叶子结点以及349个度为2的结点,还有1个是度为1的结点。所以,本题的正确答案为350。
40.gae
41.D解析:本题考查两个知识点:①C语言用'\\n'这个字符常量表示换行;②函数getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。
42.C解析:gets(str)是专门用来输入字符串的函数,可以包含空格,因此只有选项C)正确,其他选项都不正确。注意:通过scanf函数从键盘输入数据。
43.A解析:符号名的命名不仅要符合语法,而且符号名的命名应具有一定实际含义,以便于对程序功能的理解。所以,选项B错误。程序设计风格强调“清晰第一,效率第二”,而不是效率第一。所以,选项C错误。程序中的注释部分虽然不是程序的功能,计算机在执行程序时也不会执行它,但在程序中加入正确的注释能够帮助读者理解程序,注释是提高程序可读性的重要手段。所以,选项D错误。本题的正确答案为A。
44.D解析:本题考查的是文件操作函数.题目中fseek(fp,0L,SEEK_SET)的作用将文件指针定位到文件开始。feof(fp)的作用是判断文件指针是否已到文件结尾,因此选项A不对。ftell(fp)的作用是获取当前文件指针的位置,因此选项B不对。fgetc(fp)的作用是从文件中读取一个字节,因此选项C不对。rewind(中)的作用是将文件指针重定位到文件开头,所以应该选择D。
45.C解析:题目首先申请了一个整型数组a,并让一个指针变量p指向数组的元素arl)。然后使用一个for循环,循环变量x从1递增到2,即循环两次.在循环体中每次让y累加p[x]的值,而p[x)写成指针形式就是*(p+x)。所以两次y加的值分别是a[2]和a[3]的值,故最终输出6+8=14。应该选择C。
46.D解析:在单向链表中,由于每个结点需要存储下一个结点的地址,且下一个结点的数据类型与前一个结点的数据类型完全相同,故应为structlink*next。
47.D解析:二叉树的遍历分为先序、中序、后序三种不同方式。本题要求后序遍历,其遍历顺序应该为:后序遍历左子树→后序遍历右子树→访问根结点。按照定义,后序遍历序列是DBEFCA,故答案为D。
48.B
49.D解析:由于20000+20000、4000*10及30000+10000都是整型表达式,故运算的结果仍然是整型,表达式运算的结果超出了整型数据的范围,不正确.而D是长整型运算,不会超出长整型的范围。所以,4个选项中D为所选.
50.B解析:在C语言中,大写字母和小写字母被认为是两个不同的字符,因此,“hello!”和“Hello!”是两个不同的字符串。
51.D解析:两个实体间的联系可以归纳为3种类型:一对一联系:一对一的联系表现为主表中的每一条记录只与相关表中的一条记录相关联。一对多联系,一对多的联系表现为主表中的每一条记录与相关表中的多条记录相关联。多对多联系:多对多的联系表现为二个表中的多个记录在相关表中同样有多个记录其匹配。本题中一个顾客可以购买多种商品,同一种商品可以有多个顾客购买,所以商品和顾客之间是多对多的联系。
52.A解析:在第一次执行for循环时,字符数组的首地址赋给了指针变量p,使得指针变量p指向了s的首地址,输出p所指向的字符串;第二次执行for循环时,p值增加1,p指向了s的第二个元素输出BCD;第三次输出CD;第四次输出D;直到P指向字符串的结束字符“\\0”,for循环终止抽行。
53.D【解析】算法的空间复杂度是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。
54.B
55.B
56.B解析:因为变量的初始值分别为k=5,n=0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0,k=4,程序进行第2次循环,执行case4:这个分支,结果是n=2,k=3,打印出2;这时n=2,k=-3,程序进行第3次循环,执行case3:这个分支,结果是n=3,k=2,打印出3;这时n=3,k=2,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5,k=1,打印出5,这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束。所以在屏幕上打印
57.B
\n本题考查函数调用的基本概念。调用函数时,实参的形式可以是具体的数值,也可以是表达式。实参将数值或表达式的值传递给形参,因而两者的类型必须保持一致;形参在运算过程中会发生改变,但不一定会影响到实参值,所以可知两者不共用内存单元。
\n
58.B解析:本题考查了用指针处理字符串的方法。用指针处理字符串,首先要使指针指向该字符串。例如本题中的s1='AbDeG'就是使字符指针指向了字符串'AbDeG',而指针s1+=2则是指针向后移动了两个字符的位置,指向了字符‘D’。strcmp则是字符串比较函数。
59.D解析:本题考查switch语句,首先,x=1符合条件case1,执行switch(y)语句,y=0符合case0语句,执行a++并跳出switch(y)语句,此时a=1。因为case1语句后面没有break语句,所以向后执行case2语句,执行a++,b++,然后跳出switch(x),得a=2,b=1。
60.A解析:在程序语句中,k的初始值为5,进行第1次while循环后,k自减1为4,非0,执行循环体里的printf语句,输出1,此时k的值变为1。程序执行第2次循环时,k自减1变为0,为假,退出while循环语句。所以程序的最后结果为1。
61.A解析:本题考查数据库系统的基本概念和知识。数据的逻辑结构,是数据间关系的描述,它只抽象地反映数据元素之间的逻辑关系,而不管其在计算机中的存储方式。数据的存储结构,又叫物理结构,是逻辑结构在计算机存储器里的实现。这两者之间没有必然的联系。因此,选项A的说法是错误的。
数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B的说法是正确的。
数据库设计是在数据库管理系统的支持下,按照应用的要求,设计一个结构合理、使用方便、效率较高的数据库及其应用系统。数据库设计包含两方面的内容:一是结构设计,也就是设计数据库框架或数据库结构;二是行为设计,即设计基于数据库的各类应用程序、事务等。因此,选项C的说法是错误的。
数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项D的说法是正确的。因此,本题的正确答案是选项A。
62.B当逻辑运算符“&&”两边的值是非零时,逻辑表达式的值为真(即为1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。
63.D
64.B本题考查的是循环嵌套。在一个循环体内又完整地包含了另一个循环,称为循环嵌套。外循环i的值分别为1、2、3,当i=1,内循环J=1时,输出1*1=1;当内循环j=2时,输出l*2=2;当内循环j=3时,输出l*3=3,此时跳出内层for循环打印换行符”\n”;当i=2,内循环j=2时,输出2*2=4;当内循环j=3时,输出2*3=6,此时跳出内层for循环打印换行符”\n”.;当i=3,内循环j=3时,输出3*3=9。
65.B
66.D
67.A常量是在程序运行时,其值不能被改变的量,跟是否经常使用没关系.
68.A本题考查switchcase开关语句,default退出继续循环。当i=1时,执行case1,因为没有break语句,所以依次往下运行,a=a+2=2,a=a+3=5;当i=2时,执行CaSe2,没有break语句,所以依次往下运行,a=a+2=7,a=a+3=10;当i=3时,执行case3,当a=a+1=11,没有break语句,所以依次往下运行,a=a+2=13,a=a+3=16;当i=4时,没有case语句,则执行default,a=a+3=19,i=5不成立,循环结束。
69.C
70.D
71.C
72.D
73.C本题主要考查成块读函数fread。在C语言中,提供了一种成块的读写方式来操作文件,使其数组或结构体等类型可以进行一次性读写。成块读文件函数的调用形式为:
intfread(void*buf,intsize,intcount,FILE*stream)
fre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 压敏电阻器制造工岗中操作考核试卷含答案
- 安全生产周总结(共3)
- 2026年上海市沪教版小学语文六年级下册第12单元课后练习题及答案
- 2026下半年初中化学教资面试实验专项真题演练试卷
- 农业岗面试自测卷2026模拟练习含答案配套思路
- 六年级英语小升初专项训练:There be句型
- 中小学预防火灾安全教育主题班会课件
- 2026年科普知识竞赛卷材料科学与纳米技术应用课件
- 慢性阻塞性肺疾病 · 生物制剂分析报告 -COPD 生物制剂研发管线、竞争格局与商业潜力分析
- 辽宁省抚顺市2025-2026学年中考三模数学试题含解析
- 市政道路工程监理实施细则
- 2026 年妇科宫腔镜手术围手术期护理课件
- 2026年北京市中考英语试卷真题及答案详解(精校打印版)
- 2026年秋人美版(新教材)小学美术四年级上册(全册)教学设计(附目录p153)
- 重庆数字资源集团招聘笔试题库2026
- 2026年平安岗前培训测试题及答案
- 2026年广东省公需课《人工智能赋能高质量发展》试题及答案
- 电梯使用维护安全管理培训课件
- DB44-T 2749-2025 黄金奈李生产技术规程
- 青海昆仑墟文化产业有限公司招聘笔试题库2026
- JTT 1540-2025 低温改性沥青
评论
0/150
提交评论