版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年山西省运城市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)当执行程序时,输出的结果是()。A.-1B.1C.4D.0
2.
3.有以下程序:#include<stdio.h>main(){inti,s=0,t[]=(1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(“%d\n”,s);}程序的运行结果是()。
A.20B.25C.45D.36
4.设有以下函数:voidfun(intn,char*s){…}则下面对函数指针的定义和赋值均正确的是()。
A.void(*pf)();pf=fun;
B.void*pf();pf=fun
C.void*pf();*pf=fun;
D.void(*pf)(int,char);pf=&fun;
5.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。
A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统
6.设已包含头文件<string.h>,下列程序段的运行结果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
7.设变量已正确定义并赋值,下列表达式中正确的是()。
A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0
8.
9.数字字符0的ASCII值为48,运行下列程序的输出结果是()。main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-A);}
A.3,2B.50,2C.2,2D.2,50
10.语句int(*ptr)()的含义是()。
A.ptr是一个返回值是int的函数
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指向血型数据的指针
11.有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序的运行结果是
A.987654321B.4321098765C.5678901234D.987651234
12.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。
A.O(n)O(n)B.O(n)O(1)C.O(1)O(n)D.O(1)O(1)
13.
14.一个顺序栈一旦声明,其占用空间的大小()。
A.已固定B.可以变动C.不能固定D.动态变化
15.下列关于线性链表的描述中正确的是()。
A.存储空间不一定连续,且各元素的存储顺序是任意的
B.存储空间不一定连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且各前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
16.第
2
题
现有如下程序段
#include"stdio.h"
main()
{intk[30]={12,324,45,6,768,98,21,34,453,456};
intcount=0,i=0;
while(k[i])
{if(k[i]%2==0‖k[i]%5==0)count++;
i++;}
printf("%d,%d\n",count,i);}
则程序段的输出结果为
A.7,8B.8,8C.7,10D.8,10
17.在一个C语言源程序文件中所定义的全局变量,其作用域为()。
A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和extern说明来决定范围
18.
19.
20.以下叙述中正确的是()A.当对文件的读(写操作完成之后,必须将它关闭,否则可能导致数据丢失
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D.语言中的文件是流式文件,因此只能顺序存取数据
二、2.填空题(20题)21.下面的程序实现的是从指针p所指向的地址的n个数中,找出最大的和最小的数据,请填空。
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
22.以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:
ABCDE
FGHI
JKL
MN
O
请填空完成该程序。
main()
{inti,j,n;charch='A';
scanf("%d",&n);
if(n<11)
{for(i=1;i<=n;i++)
{for(j=1;j<n-i+1;j++)
{printf("%2c",ch);
[10];
}
[11];
}
23.下列程序的输出结果是【】。
#definePR(a)printf("%d\t",(int)(a))
#definePRINT(a)PR(a);printf("ok!")
main()
{inti,a=1;
for(i=0;i<3;i++)
PRINT(a+i);
printf("\n");}
24.以下程序的输出结果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\N,*p,*q))
}
25.软件工程研究的内容主要包括:【】技术和软件工程管理。
26.顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。
27.对于软件测试,从是否需要执行被测软件的角度,可以分为静态测试和动态测试。代码检查属于______测试。
28.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。
29.以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。
intisprime(inta)
for(i=2;i<=a/2;i++)
if(a%i==0)[8];
[9];
30.以下程序的输出是【】。
main()
{
charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"esshe");
printf("%s\n",p1);
}
31.表达式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的数据类型为______。
32.以下定义的结构体类型包含两个成员,其中成员变量info用来存放整型数据;成员变量link是指向自身结构体的指针。请将定义补充完整。
structnode
{intinfo;
【】Link;
};
33.以下程序运行后的输出结果是______。
main
{
inna=b=c=5:
if(c=a+b)
printf("yes\n);
else
printf("no\n);
}
34.下面程序的功能是:计算1~10之间的奇数之和与偶数之和,请填空。
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);}
35.以下程序的输出结果是【】。
main()
{
intp[7]=(11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
36.以下程序运行后的输出结果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}
37.下列程序的运行结果是______。
#include<stdio.h>
func(a,b)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=5,m=3,p;
p=func(k,m);
printf("%d",p);
p=func(k,m);
printf("%d、n",p);
}
38.语句“int(*ptr)();”的含义是______是指向函数的指针,该函数返回一个血型数据。
39.将以下程序段写成三目运算表达式:【】。
if(a>b)max=a;
elsemax=b;
40.在E-R图中,矩形表示【】。
三、1.选择题(20题)41.以下程序输出的结果是
#include<stdio.h>
#include<string.h>
main()
{charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;
for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}
A.ABCDFGHKLB.ABCEFGIJMC.EFGJK0D.FGHKL
42.若程序中定义了以下函数doublemyadd(doublea,doubleb){return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A.doublemyadd(doublea,b);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doublea);
D.doublemyadd(doublex,doubley);
43.以下程序错误的是()。
A.main(){intx,y,z;x=0;y=x-1;z=x+y;}
B.main(){intx,y,z;x=0,y=x+1;z=x+y;}
C.main(){intx;inty;intz;x=0,y=x+1;z=x+y;}
D.main(){intx,y,z;x=0;y=x+1;z=x+y,}
44.以下正确的程序段是
A.cgarstr[20];scanf("%s",&str);
B.char*p;scanf("%s",p);
C.charstr[20];scanf("%s",&str[2])
D.charstr[20],*p=str;scanf("%s",p[2]);
45.下面的程序段运行后,输出结果是inti,j,x=0;staticinta[8][8];for(i=0;<3;++)for(j=0;<3;j++)a[i][j]=2*i+j;for(i=0;<8;++)x+=a[i][j];printf("%d",x);
A.9B.不确定值C.0D.18
46.程序运行结果为______。#defineR3.0#definePI3.1415926#defineL2*PI*R#defineSPI*R*Rmain(){printf("L=%fS=%f\n",L,S);}
A.L=18.849556S=28.274333
B.18.849556=18.84955628.274333=28.274333
C.L=18.84955628.274333=28.274333
D.18.849556=18.849556S=28.274333
47.在多媒体计算机系统中,不能存储多媒体信息的是()
A.光盘B.磁盘C.磁带D.光缆
48.假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROGABCDEFGHIJKL<回车>则输出结果是()。#include<stdio.h>main(intargc,char*argv[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}
A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH
49.简单的交换排序方法是()。
A.快速排序B.选择排序C.堆排序D.冒泡排序
50.若有如下程序:voida(char*p,charc){while(*p){if(*p==c)*p=c-'b'+'B';;p++;}}main(){chars[50]="abcdeeffgee",b='e';a(s,b);printf("%s\n",s);}则程序运行后的输出结果是()。
A.AbcdeeffgeeB.ABCDeeFFGeeC.abcdEEffgEED.ABCDEEFFGEE
51.算法的空间复杂度是指()。
A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行算法需要的内存空间
52.设有如下定义structss{charname[10];intage;charsex;}std[3],*p=std;下面各输入语句中错误的是
A.scanf("%d",&(*p).age);
B.scant("%s",&);
C.scanf("%c",&std[0].sex);
D.scanf("%c",&(p->sex));
53.下列能正确定义一维数组的选项是()。
A.inta[5]={0,1,2,3,4,5}
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
54.数据的存储结构是指()。
A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示
55.编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在书写功能性注释时应考虑
A.仅为整个程序作注释B.仅为每个模块作注释C.为程序段作注释D.为每个语句作注释
56.栈和队列的共同点是()。
A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点
57.若有如下定义:structstu{charname[9];intage;floatscore;);structstuclass[10]={{"Li",17,67},{"Song",19,80},{"guo",18,79},{"Zhao",16,69}};根据上面的定义,若执行“printf("%s:%d%f",class[3].name,class[3].age,class[3].score);"则输出的正确结果是()。
A.Song:19,80.000000
B.Zhao:16,69.000000
C.Li:17,67Song;19,80
D.guo:18,79Zhao;16,69
58.以下对C语言中共用体类型数据的正确叙述是______。
A.可以对共用体变量名直接赋值
B.一个共用体变量中可以同时存放其所有成员
C.一个共用体变量中不能同时存放其所有成员
D.共用体类型定义中不能出现结构体类型的成员
59.现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为
A.21B.78C.23D.28
60.在16位C编译系统上,若定义longa;,则能给变量a赋值40000的正确语句是______。
A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*1OL;
四、选择题(20题)61.有定义如下:
structsk
{inta;
floatb;
}data,*p;
如果p=&data;则对于结构变量data的成员a的正确引用时()
A)(*).data.aB)(*p).a
C)p->data.aD)p.data.a
62.
有以下程序:
main
{inta=0,b=0;
a=10;/*给a赋值
b=20;给b赋值*/
printf("a+b=%d\n",a+b);//输出计算机结果
}
程序运行后的输出结果是()。
A.a+b=10B.a+b=30C.30D.出错
63.下列程序的输出结果是()。#include<stdio.h>main{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[o][1]+a[1][1]+a[1][2]);}A.8B.7C.12D.9
64.以下程序段中的变量已正确定义:
程序段的输出结果是()。
A.********B.****C.**D.*
65.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系
66.(25)下面对对象概念描述错误的是()
A.任何对象都必须有继承性
B.对象是属性和方法的封装体
C.对象间的通讯靠消息传递
D.操作是对象的动态性属性
67.下列程序执行后的输出结果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}
A.5B.6C.7D.8
68.
69.
70.
有以下程序段
intj;floaty;charname[50]:
scanf("%2d%f%s",&i,&.y,name):
当执行上述程序段,从键盘上输入555667777abc后,y的值为()。
A.55566.0B.566.0C.7777.0D.566777.0
71.有以下程序:
程序运行后的输出结果是()。
A.0B.一12C.一20D.10
72.
73.if语句基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是()。
A.必须是逻辑值B.必须是整数值C.必须是正数D.可以是任意合法的数值
74.下列叙述中正确的是()。
A.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
B.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
C.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
D.顺序存储结构能存储有序表,链式存储结构不能存储有序表
75.
76.有两个关系R和T如下:
则由关系R得到关系T的操作是()。A.选择B.投影C.交D.并
77.
78.有以下程序:
程序运行后的输出结果是()。
A.11,12B.12,13C.13,14D.14,11
79.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。
A.一对一B.一对多C.多对一D.多对多
80.有以下程序:
程序运行后的输出结果是()。
A.02356B.0235C.235D.2356
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:计算整数n的阶乘。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为“****A*BC*DEF*G****”,删除后,字符串中的内容应当是“ABCDEFG”。
注意:部分源程序给出如下。
请勿改动maini)函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
voidfun(chara)
{
voidmain
{
chars[81];
print{("Enterastring:\n");
gets(s):
fun(S);
printf("Thestringafterdeleted:\n");
puts(s);
}
参考答案
1.A本题考查do-while循环。当--y是0(即y是o)时结束循环,输出--y,先将y的值减1再输出Y的值。
2.D
3.B程序的功能为统计1~9这9个数中的奇数和。C语言中规定数组名代表数组的首地址,也就是第1个元素的地址,因此“*(t+i)”代表数组的第i+1个元素。程序的运行结果是1+3+5+7+9=25。故本题答案为B选项。
4.A函数指针的定义格式为函数类型(*指针变量名)(形参列表);函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。所以选项A正确。
5.A
6.A解析:头文件<string.h>是字符串处理函数对应的头文件,要想调用C语言的库函数时,都要在程序中嵌入该函数对应的头文件,否则无法使用库函数。
strcpy(s1,s2)把s2中的字符串复制到s1中,所以结果就为s2的长度。
7.A运算符“%”的左右两个操作数均应为整数,所以B选项与D选项错误。C选项中不能将“x+z”的值赋给表达式“y*5”,所以C选项错误。故本题答案为A选项。
8.C
9.C解析:自增运算符“++”,出现在变量之前,表示先使变量的值加1,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,冉使变量的值加1。例如题中的“b++”,题中第一条语句先输出字符b的值,此时变量b='2',因此输出值为2;再使b的值加1,b='3',因此第二条语句输出:b-a='3'-'1'=2。
10.C解析:本题考查的是指向函数的指针.函数指针定义的基本格式为:类型标识符(*指针变量名)()。“类型标识符”为函数返回值的类型。
11.C解析:函数fun(int*s,intn1,intn2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5.6,7,8,9,01;再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。
12.C
13.A
14.A
15.A解析:线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。
16.D
17.D
\n全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全局变量进行说明,以便通知编译程序该变量是一个已在外部定义了的全局变量,这时全局变量的作用域从extern说明处起,延伸到该函数末尾。
\n
18.C
19.B
20.AB)选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C)选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D)选项中,C语言中的文件可以进行随机读写。
21.q<p+nq<p+n解析:考查对于函数的地址传递的掌握情况。通过地址传递可以在被调函数中对调用函数中的变量进行引用。
22.C语言允许字符数据与整数进行直接的算术运算,故输出大写字母A开始的连续字符,可通过白加运算ch++完成。三角形字符阵列第i行的字符个数为n-i+1,在每行结尾以回车字符‘\\n’换行。\r\n\r\n
23.123ok!123ok!解析:本题主要考查了printf函数用在了宏替换中。宏替换不是函数调用,只是一种简单的字符替代。所以本题中PRINT(a+i)展开为:printf(“%d\\t”,(int)(a+i)),当i=0时,输出1;当i=1时,输出2;当i=2时;输出3;for循环结束后输出ok!。
24.3535解析:函数swap(int*a,int*b)的功能是实现*a和*b中两个数据的交换,在主函数中调用swap(p,q)后,形参指针变量a和b分别指向i和j,在swap(int*a,int*b)执行完后,指针变量a和b分别指向j和i,而指针变量p,q所指向变量的值没有发生变化,所以输出结果为35。
25.软件开发
26.相邻相邻
27.静态静态解析:静态测试包括代码检查、静态结构分析,代码质量度量等。静态测试不实际运行软件。
28.完整性控制完整性控制
29.如果a能被i整除,则a是素数,返回值为0。如果a不能被i整除,则a不是素数,返回值为1。
30.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷贝函数,作用是将字符串s1拷贝到字符数组strl中去。strlen(str):测试字符串str的长度,函数的值为字符串中实际长度,不包括\'\\0\'在内。本题中strlen(str1)的值为13,则strcpy(strl+strlen(strl)/2,'esshe');相当于strcpy(strl+6,'esshe');,因此可得答案为Howdoesshe
31.整型整型解析:上面的表达式中,通过强制类型转换把最后参与运算的数据都转换成了int型,所以最后得到的结果也是int类型。
32.structnode*structnode*解析:link是指向结构体自身的指针,因此link是指针,指向strictnode类型的数据,可定义成“stmctnode*link”。
33.yesyes解析:if...else构造了一种二路分支选择,是一种最基本的选择结构。本题中,if后面括号里的表达式为c=a+b为真(即c=1+3=4为真);所以,执行s1,即执行prinff('yes\\'),最后输出yes。
34.b=i+1b=i+1解析:本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2之后和累加至a,所以a的值就是1~10之间的偶数之后;b的值是1~11之间的奇数和,但在输出b值时c去掉多加的11,即为1~10之间的奇数之和。
35.2424解析:本题程序定义了一维数组p,有七个数组元素,整型变量i,j初值分别为0,当while的条件表达式(i<7&&p[i]%2=1)的值为真时,执行语句j+=p[i++];,如:当i=0时,i<7为真,p[i]%2=11%2=1,表达式(p[i]%2=1)的值为真,所以接个表达式(i<7&&p[i]%2=1的值为真,执行j=j+p[i++]=0+11=11,i=1;,依此类推可以得出答案24。
36.6262解析:本题考查的是宏定义。带参数的宏定义是按#indefine命令行中指定的字符串从左到右进行转换。本题中替换的式子为:6+8*6+8,代入i,j的值得到62。
37.11231123解析:在主函数中第一次调用func子函数时,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因为在子函数中将m和i定义成了static类型,所以在子函数中对m和i进行的改变在下一次调用子函数时能进行保存,所以第二次调用子函数时,m=11,i=3,则i=i+m+1=15,m=i+a+b=15+5+3=23。
38.ptrptr解析:本题考查函数指针的概念。函数指针的定义格式是:类型标识符(叶旨针变量名)()。注:“类型标识符”为函数返回值的类型。
39.max=(a>b)?a:bmax=(a>b)?a:b解析:本题考查三目运算符的用法,条件表达式的一般形式为:
表达式1?表达式2:表达式3
所以,本题可以写成(a>b)?a:b,它是一个条件表达式,执行顺序是:如果条件(a>b)为真,则条件表达式取值a,否则取值b。
40.实体实体解析:E-R模型中,有3个基本的抽象概念:实体、联系和属性。在E-R图中,用矩形框表示实体,菱形框表示联系,椭圆形框表示属性。
41.D解析:考查二维数组的定义及其元素引用的方法。当k=1时,引用的是二维数组元素w[1][1],值为字符串'FGH';当k=2时,引用的是数组元素w[2][2],即字符串'KL';当k=3时,结束程序的执行。
42.A解析:本题考核的知识点是函数声明的应用。函数声明是对所用到的函数的特征进行必要的声明,编译系统以函数声明中给出的信息为依据,对调用表达式进行检测,以保证调用表达式与函数之间的参数正确传递。函数声明的一般格式为:
类型标识符函数名(类型标识符形参…);
这些信息就是函数定义中的第一行的内容。这里形参的名字是不重要的,重要的是类型标识符,函数声明中也可以不写形参名只写该形参的声明类型,但不能只写形参名而不写该形参的类型。本题中,选项A中doublemyadd(doublea,b),没写出形参b的类型,故选项A不正确。所以,4个选项中选项A符合题意。
43.D解析:选项A)、B)、C)都没有错误。选项D)中的最后一条语句是以逗号结束的,而C语言中不能用逗号作为一条语句的结束标志,应该用分号,所以选项D)的程序是错误的。
44.C解析:scanf输入字符串有一点要注意的是,格式控制串必须用%s。注意:gets函数和puts函数的作用。
45.C解析:本题主要考查的是用二维数组首地址和下标来引用二维数组元素的方法。通过分析可知,程序中的双重循环定义了一个如下的二维数组:[*]
由于数组的下标是从0开始的,所以二维数组元素a[i][j]表示的是二维数组a的第i+1行、第j+1列对应位置的元素。
46.A
47.D解析:光缆是多媒体信息的传输通道,不能存储多媒体信息。
48.D解析:本题中,arge表示参数的个数,应为3。argv是一个指向字符串的指针数组,指针数组argv中的元素argv[0]指向字符串“PROG”,元素argv[1]指向字符串“ABCDEFGH”,argv[2]指向字符串“IJKL”。在while循环条件中,先进行自减运算,再执行相应的printf语句。
49.D解析:所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。
50.C解析:函数a的功能是将字符数组s中的小写字母e变为大写字母,其余字符不变,4个选项中只有C符合题意。
51.D解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。
52.B解析:选项A中“&(*p).age”代表的是etd[0].age的地址,是正确的,选项C也是正确的,选项D先用指针变量引用结构型的成员sex,然后取它的地址,也是正确的,选项B中的“std.name”是错误的引用,因为std是数组名,代表的是数组的首地址,地址没有成员“name”。
53.B解析:在定义数组时,如果赋给的初始值个数大于数值的长度,这样就会越界,因此选项A)错误;选项C)中定义的是一个字符变量C;选项D)中整型数组,中只能存储整型数据,而不能存储字符串常量“0123”。
54.D数据的逻辑结构是指数据元素之间的逻辑关系的数据结构。数据的存储结构则是数据的逻辑结构在计算机中的物理实现,有时也称作数据的物理结构。两者的区别是数据的逻辑结构只涉及到数据之间抽象的数学关系。存储结构则涉及到如何在计算机中通过对数据的物理存储进行组织来表达数据元素之间的逻辑关系。比如在线性表的顺序存储中是利用物理存储空间上的连续性来表达线性表中数据的前后件关系;在线性表的链式存储中是通过指针域构成的逻辑链条来表达数据的前后件关系。一般的,一种数据的逻辑结构对应的物理实现,即数据的存储结构不止一种。因此选项D正确。
55.C解析:功能性注释是嵌在源程序体中的,用以描述其后的语句或程序段是在做什么工作,或者执行了下面的语句会怎么样。所以它描述的是一段程序,是为程序段做注释,而不是每条语句。
56.C栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表:本题答案为C)。
57.B解析:class[10]是结构体型的数组,class[3]为{'Zhao',16,69}。
58.C解析:共用体变量中的所有成员共享一段公共存储区,并非同时存放于共用体变量中,如共用体变量中有两个成员,int型成员占两个字节,float型成员占4个字节,则该共用体变量占4个字节,并非2+4=6个字节。
59.A解析:通过地址来引用二维数组,若有以下定义:inta[3][4],i,j;且当0≤i≤3,0≤j<4则可以有以下几种方式来引用数组中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表达式&a[0][0]+2*i+j-2相当于是地址&a[0][0]加上多少偏移量。
60.D解析:本题中a是长整型变量,故应将一个长整型常量赋值给a,选项A、B、C中的数值的末尾都没有加L或1,所以不正确。
61.B结构体变量的引用。
62.A\n本题中/*……*/为多行注释,所以可知b=20为注释语句,在程序运行时不起作用,b仍为0,所以本题中A正确。
\n
63.B本题考查for循环及if…else语句嵌套,第1次执行for循环,p[1][0]=p[1][0]=p[1][0]-1=3;第2次执行for循环,p[1][1]=p[1][1]-1=4;第3次执行for循环,p[1][2]=l,最后输出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。
64.D本题考察for循环语句,注意第二个for语句的后面有一个分号,即printf函数不属于循环体,无论循环执行多少次,printf(”*”)语句只执行一次。因此,本题正确答案为D)。
65.C(10)C)解析:DB即数据库(Database),是统一管理的相关数据的集合;DBMS即数据库管理系统(DatabaseManagementSystem),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法;DBS即数据库系统(DatabaseSystem)由如下5部分组成,数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。
66.A
67.D解析:本题中的宏调用MA(1+a+b)展开后的结果是1+a+b*(1+a+b-1)=1+1+2*(1+1+2-1)=2+2*3=8。所以输出的结果是8,选项D正确。
68.A
69.D
70.B
\n变量J只接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到浮点型变量Y中。
\n
71.C本题考在宏定义,宏定义只是做简单的替换,所以本题中SUB(a+b)·c=(a+b)一(a+b)·e=一20,所以答案为C选项。
72.B
73.D考查if循环语句。if(表达式),其中表达式是一个条件,条件中可以是任意的合法的数值。
74.C\n线性表的顺序存储结构是把线性表中相邻的元素存放在相邻的内存单元中,而链式存储结构是用一组任意存储单元来存放表中的数据元素,为了表示出每个元素与其直接后继元素之间的关系,除了存储元素本身的信息外,还需存储一个指示其直接后继的存储位置信息。故线性表的链式存储结构所需的存储空间一般要多于顺序存储结构。
\n
75.D\r\n
76.A
77.C
78.B本题中定义了一个结构体数组dt[2],其中dt[0].x=11,dt[O].y=12,dt[1].x=13,dt[1].y=14。在main函数中指针P指向了结构体数组的第一个元素,因此P一>x值为ll,P_>y值为l2,自加运算的结果分别为12和13。
79.B解析:两个实体间的联系可以归纳为3种类型:一对一联系:一对一的联系表现为主表中的每一条记录只与相关表中的一条记录相关联。一对多联系或多对一:一对多的联系表现为主表中的每一条记录与相关表中的多条记录相关联。多对多联系:多对多的联系表现为一个表中的多个记录在相关表中同样有多个记录与其匹配。一间宿舍可以住多个学生,但每个学生只能住一个宿舍,所以实体宿舍和学生之间的联系为一对多的联系。
80.Ck的值为5,逐个对caBe语句进行匹配,均不匹配,执行default下的语句n=0;k一一。再执行case2:ca804:后面的语句n+=2;k一一;。执行break语句跳出switch判断,打印n的值,即2。经过第一次循环后,k的值为3,然后进行k>0&&ll<5条件判断为真。第二次执行循环体,执行case3:后面的语句n+=1;k一一;。再执行break语句跳出循环,此时打印n的值3,此时k的值为2。第三次执行循环体k的值为2,满足条件,执行case2:case4:后面的语句n+=2;k一一;。执行break语句跳出循环体。打印n的值5。此时n不满足条件k>0&&n<5,所以结束循环。整个程序的打印结果为235。
81.
82.\n\tvoidfun(char*a)
\n{
\ninti,j=0;
\nfor(i=0;a[i]!=\0;i++)
\nif(a[i]!=*)
\na[j++]=a[i];//若不是要删除的字符*则保留
\na[j]=\0;//最后加上字符串结束符\0
\n}
\n【解析】此题是删除字符串中的星号。思路是通过for循环完成对字符串的遍历,通过if判断,找到不是“*”的字符,将其赋值到数组a中星号前的位置,“if(a[i]!=*)”“a[i++]=a[i]”,最后返回主函数将删除*后的字符串输出即可。\n2021年山西省运城市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)当执行程序时,输出的结果是()。A.-1B.1C.4D.0
2.
3.有以下程序:#include<stdio.h>main(){inti,s=0,t[]=(1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(“%d\n”,s);}程序的运行结果是()。
A.20B.25C.45D.36
4.设有以下函数:voidfun(intn,char*s){…}则下面对函数指针的定义和赋值均正确的是()。
A.void(*pf)();pf=fun;
B.void*pf();pf=fun
C.void*pf();*pf=fun;
D.void(*pf)(int,char);pf=&fun;
5.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。
A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统
6.设已包含头文件<string.h>,下列程序段的运行结果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
7.设变量已正确定义并赋值,下列表达式中正确的是()。
A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0
8.
9.数字字符0的ASCII值为48,运行下列程序的输出结果是()。main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-A);}
A.3,2B.50,2C.2,2D.2,50
10.语句int(*ptr)()的含义是()。
A.ptr是一个返回值是int的函数
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指向血型数据的指针
11.有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序的运行结果是
A.987654321B.4321098765C.5678901234D.987651234
12.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。
A.O(n)O(n)B.O(n)O(1)C.O(1)O(n)D.O(1)O(1)
13.
14.一个顺序栈一旦声明,其占用空间的大小()。
A.已固定B.可以变动C.不能固定D.动态变化
15.下列关于线性链表的描述中正确的是()。
A.存储空间不一定连续,且各元素的存储顺序是任意的
B.存储空间不一定连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且各前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
16.第
2
题
现有如下程序段
#include"stdio.h"
main()
{intk[30]={12,324,45,6,768,98,21,34,453,456};
intcount=0,i=0;
while(k[i])
{if(k[i]%2==0‖k[i]%5==0)count++;
i++;}
printf("%d,%d\n",count,i);}
则程序段的输出结果为
A.7,8B.8,8C.7,10D.8,10
17.在一个C语言源程序文件中所定义的全局变量,其作用域为()。
A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和extern说明来决定范围
18.
19.
20.以下叙述中正确的是()A.当对文件的读(写操作完成之后,必须将它关闭,否则可能导致数据丢失
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D.语言中的文件是流式文件,因此只能顺序存取数据
二、2.填空题(20题)21.下面的程序实现的是从指针p所指向的地址的n个数中,找出最大的和最小的数据,请填空。
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
22.以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:
ABCDE
FGHI
JKL
MN
O
请填空完成该程序。
main()
{inti,j,n;charch='A';
scanf("%d",&n);
if(n<11)
{for(i=1;i<=n;i++)
{for(j=1;j<n-i+1;j++)
{printf("%2c",ch);
[10];
}
[11];
}
23.下列程序的输出结果是【】。
#definePR(a)printf("%d\t",(int)(a))
#definePRINT(a)PR(a);printf("ok!")
main()
{inti,a=1;
for(i=0;i<3;i++)
PRINT(a+i);
printf("\n");}
24.以下程序的输出结果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\N,*p,*q))
}
25.软件工程研究的内容主要包括:【】技术和软件工程管理。
26.顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。
27.对于软件测试,从是否需要执行被测软件的角度,可以分为静态测试和动态测试。代码检查属于______测试。
28.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。
29.以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。
intisprime(inta)
for(i=2;i<=a/2;i++)
if(a%i==0)[8];
[9];
30.以下程序的输出是【】。
main()
{
charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"esshe");
printf("%s\n",p1);
}
31.表达式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的数据类型为______。
32.以下定义的结构体类型包含两个成员,其中成员变量info用来存放整型数据;成员变量link是指向自身结构体的指针。请将定义补充完整。
structnode
{intinfo;
【】Link;
};
33.以下程序运行后的输出结果是______。
main
{
inna=b=c=5:
if(c=a+b)
printf("yes\n);
else
printf("no\n);
}
34.下面程序的功能是:计算1~10之间的奇数之和与偶数之和,请填空。
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);}
35.以下程序的输出结果是【】。
main()
{
intp[7]=(11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
36.以下程序运行后的输出结果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}
37.下列程序的运行结果是______。
#include<stdio.h>
func(a,b)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=5,m=3,p;
p=func(k,m);
printf("%d",p);
p=func(k,m);
printf("%d、n",p);
}
38.语句“int(*ptr)();”的含义是______是指向函数的指针,该函数返回一个血型数据。
39.将以下程序段写成三目运算表达式:【】。
if(a>b)max=a;
elsemax=b;
40.在E-R图中,矩形表示【】。
三、1.选择题(20题)41.以下程序输出的结果是
#include<stdio.h>
#include<string.h>
main()
{charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;
for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}
A.ABCDFGHKLB.ABCEFGIJMC.EFGJK0D.FGHKL
42.若程序中定义了以下函数doublemyadd(doublea,doubleb){return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A.doublemyadd(doublea,b);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doublea);
D.doublemyadd(doublex,doubley);
43.以下程序错误的是()。
A.main(){intx,y,z;x=0;y=x-1;z=x+y;}
B.main(){intx,y,z;x=0,y=x+1;z=x+y;}
C.main(){intx;inty;intz;x=0,y=x+1;z=x+y;}
D.main(){intx,y,z;x=0;y=x+1;z=x+y,}
44.以下正确的程序段是
A.cgarstr[20];scanf("%s",&str);
B.char*p;scanf("%s",p);
C.charstr[20];scanf("%s",&str[2])
D.charstr[20],*p=str;scanf("%s",p[2]);
45.下面的程序段运行后,输出结果是inti,j,x=0;staticinta[8][8];for(i=0;<3;++)for(j=0;<3;j++)a[i][j]=2*i+j;for(i=0;<8;++)x+=a[i][j];printf("%d",x);
A.9B.不确定值C.0D.18
46.程序运行结果为______。#defineR3.0#definePI3.1415926#defineL2*PI*R#defineSPI*R*Rmain(){printf("L=%fS=%f\n",L,S);}
A.L=18.849556S=28.274333
B.18.849556=18.84955628.274333=28.274333
C.L=18.84955628.274333=28.274333
D.18.849556=18.849556S=28.274333
47.在多媒体计算机系统中,不能存储多媒体信息的是()
A.光盘B.磁盘C.磁带D.光缆
48.假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROGABCDEFGHIJKL<回车>则输出结果是()。#include<stdio.h>main(intargc,char*argv[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}
A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH
49.简单的交换排序方法是()。
A.快速排序B.选择排序C.堆排序D.冒泡排序
50.若有如下程序:voida(char*p,charc){while(*p){if(*p==c)*p=c-'b'+'B';;p++;}}main(){chars[50]="abcdeeffgee",b='e';a(s,b);printf("%s\n",s);}则程序运行后的输出结果是()。
A.AbcdeeffgeeB.ABCDeeFFGeeC.abcdEEffgEED.ABCDEEFFGEE
51.算法的空间复杂度是指()。
A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行算法需要的内存空间
52.设有如下定义structss{charname[10];intage;charsex;}std[3],*p=std;下面各输入语句中错误的是
A.scanf("%d",&(*p).age);
B.scant("%s",&);
C.scanf("%c",&std[0].sex);
D.scanf("%c",&(p->sex));
53.下列能正确定义一维数组的选项是()。
A.inta[5]={0,1,2,3,4,5}
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
54.数据的存储结构是指()。
A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示
55.编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在书写功能性注释时应考虑
A.仅为整个程序作注释B.仅为每个模块作注释C.为程序段作注释D.为每个语句作注释
56.栈和队列的共同点是()。
A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点
57.若有如下定义:structstu{charname[9];intage;floatscore;);structstuclass[10]={{"Li",17,67},{"Song",19,80},{"guo",18,79},{"Zhao",16,69}};根据上面的定义,若执行“printf("%s:%d%f",class[3].name,class[3].age,class[3].score);"则输出的正确结果是()。
A.Song:19,80.000000
B.Zhao:16,69.000000
C.Li:17,67Song;19,80
D.guo:18,79Zhao;16,69
58.以下对C语言中共用体类型数据的正确叙述是______。
A.可以对共用体变量名直接赋值
B.一个共用体变量中可以同时存放其所有成员
C.一个共用体变量中不能同时存放其所有成员
D.共用体类型定义中不能出现结构体类型的成员
59.现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为
A.21B.78C.23D.28
60.在16位C编译系统上,若定义longa;,则能给变量a赋值40000的正确语句是______。
A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*1OL;
四、选择题(20题)61.有定义如下:
structsk
{inta;
floatb;
}data,*p;
如果p=&data;则对于结构变量data的成员a的正确引用时()
A)(*).data.aB)(*p).a
C)p->data.aD)p.data.a
62.
有以下程序:
main
{inta=0,b=0;
a=10;/*给a赋值
b=20;给b赋值*/
printf("a+b=%d\n",a+b);//输出计算机结果
}
程序运行后的输出结果是()。
A.a+b=10B.a+b=30C.30D.出错
63.下列程序的输出结果是()。#include<stdio.h>main{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[o][1]+a[1][1]+a[1][2]);}A.8B.7C.12D.9
64.以下程序段中的变量已正确定义:
程序段的输出结果是()。
A.********B.****C.**D.*
65.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系
66.(25)下面对对象概念描述错误的是()
A.任何对象都必须有继承性
B.对象是属性和方法的封装体
C.对象间的通讯靠消息传递
D.操作是对象的动态性属性
67.下列程序执行后的输出结果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}
A.5B.6C.7D.8
68.
69.
70.
有以下程序段
intj;floaty;charname[50]:
scanf("%2d%f%s",&i,&.y,name):
当执行上述程序段,从键盘上输入555667777abc后,y的值为()。
A.55566.0B.566.0C.7777.0D.566777.0
71.有以下程序:
程序运行后的输出结果是()。
A.0B.一12C.一20D.10
72.
73.if语句基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是()。
A.必须是逻辑值B.必须是整数值C.必须是正数D.可以是任意合法的数值
74.下列叙述中正确的是()。
A.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
B.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
C.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
D.顺序存储结构能存储有序表,链式存储结构不能存储有序表
75.
76.有两个关系R和T如下:
则由关系R得到关系T的操作是()。A.选择B.投影C.交D.并
77.
78.有以下程序:
程序运行后的输出结果是()。
A.11,12B.12,13C.13,14D.14,11
79.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。
A.一对一B.一对多C.多对一D.多对多
80.有以下程序:
程序运行后的输出结果是()。
A.02356B.0235C.235D.2356
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:计算整数n的阶乘。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为“****A*BC*DEF*G****”,删除后,字符串中的内容应当是“ABCDEFG”。
注意:部分源程序给出如下。
请勿改动maini)函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
voidfun(chara)
{
voidmain
{
chars[81];
print{("Enterastring:\n");
gets(s):
fun(S);
printf("Thestringafterdeleted:\n");
puts(s);
}
参考答案
1.A本题考查do-while循环。当--y是0(即y是o)时结束循环,输出--y,先将y的值减1再输出Y的值。
2.D
3.B程序的功能为统计1~9这9个数中的奇数和。C语言中规定数组名代表数组的首地址,也就是第1个元素的地址,因此“*(t+i)”代表数组的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江苏南通仲裁委员会秘书处招聘(非事业编制)10人考前冲刺试卷带答案详解(能力提升)
- 2026秋季福建泉州师范学院附属鹏峰中学合同教师招聘(二)备考题库附参考答案详解(突破训练)
- 2026年西咸新区第二初级中学招聘教师(10人)备考题库及答案详解【有一套】
- 2026浙江杭州武林洲际酒店招聘2人 (2026年第4期)笔试题库带答案详解(完整版)
- 2026西藏自治区第二人民医院招聘7人备考题库含完整答案详解(各地真题)
- 2026江西吉安市中医院面向社会招聘聘用制医师3人备考题库附完整答案详解【有一套】
- 2026年甘肃省残联信息中心招聘兼职会计模拟试卷附参考答案详解【突破训练】
- 2026财达证券股份有限公司河北分公司招聘6人模拟试卷含答案详解【研优卷】
- 2026福建莆田涵江区人民检察院诚聘编外(劳务派遣)工作人员1名考前冲刺密卷附答案详解AB卷
- 2026陕西西咸新区第二初级中学招聘10人备考题库含答案详解(轻巧夺冠)
- 2026湖北黄石市阳新县事业单位统一招聘107人笔试参考题库及答案详解
- 2026福建厦门市市政园林局补充非在编工作人员招聘1人笔试参考题库及答案详解
- 心血管系统超说明书用药总结2026
- GA/T 1999.3-2025道路交通事故车辆速度鉴定方法第3部分:基于视频图像
- 2026年浙江省大学生乡村医生专项计划招聘考试历年参考题库含答案详解
- 修订一单一库质量手册和程序文件参考文件
- 2026年卫健系统公开遴选公务员笔试试题及答案解析(卫健类)
- 2026年氧化钇行业分析报告及未来发展趋势报告
- 2026年山西省运城市重点学校小升初语文考试真题试卷(+答案)
- 2025年江苏省南京市雨花台区小升初数学试卷
- 重性精神病应急处置流程
评论
0/150
提交评论