版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年山西省临汾市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。
A.a==lB.++iC.a=a++=5D.a=int(i)
2.依次读入数据元素序列{a,b,c,d,e,f,g}进栈,每进一个元素,机器可要求下一个元素进栈或弹栈,如此进行,则栈空时弹出的元素构成的序列是以下哪些序列?
A.{d,e,c,f,b,g,a}
B.{f,e,g,d,a,c,b}
C.{e,f,d,g,b,c,a}
D.{c,d,b,e,f,a,g}
3.在关系数据模型中,通常可以把()称为属性,其值称为属性值。
A.记录B.基本表C.模式D.字段
4.按照C语言规定的用户标识符命名规则,不能出现在用户标识符中的是()。
A.大写字母B.下划线C.数字D.连接符
5.下列叙述中正确的是()
A.一个算法的空间复杂度打,则其时间复杂度也必定大
B.一个算法的空间复杂度大,则其时间复杂度也必定小
C.一个算法的时间复杂度大,则其空间复杂度也必定小
D.算法的时间复杂度与空间复杂度没有直接相关
6.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}执行后输出结果是()。
A.77B.88C.810D.1010
7.设有以下语句:intx=10;x+=3+x%(3),则x的值是()。
A.14B.15C.11D.12
8.向堆中插入一个元素的时间复杂度为________。
A.O(log2n)B.O(n)C.O(1)D.O(nlog2n)
9.下列叙述中正确的是()。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
10.
11.
12.在长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n)时,需要从前向后依次前移____个元素。
A.n-iB.n-i+1C.n-i-1D.i
13.有以下函数:intfun(char*x,char*y){intn=0;}while((*x==*y)&&*x!=‘\0’){x++;y++;n++;}returnn;}函数的功能是()。
A.将y所指字符串赋给x所指存储空间
B.查找x和y所指字符串中是否有‘\0’
C.统计x和y所指字符串中最前面连续相同的字符个数
D.统计x和y所指字符串中相同的字符个数
14.以下选项中,合法的一组C语言数值常量是()。
A.12.0Xa234.5e0
B.028.5e-3-0xf
C..1774e1.50abc
D.0x8A10,0003.e5
15.若定义了函数double*function(),则函数function的返回值为()。
A.实数型B.实数的地址C.指向函数的指针D.函数的地址
16.数组A中,每个元素的长度为4个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址为()。
A.SA+292B.SA+296C.SA+300D.304
17.数据的存储结构是指()。
A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示
18.若变量已正确定义,要求程序段完成5!的计算,不能完成此操作的程序段是______。
A.for(i=1,p=1;i<=5;i++)p*=i;
B.for(i=1;i<=5;i++){p=1;p*=i;}
C.i=1;p=1;while(i<=5){p*=i;i++;}
D.i=1;p=1;do{p*=i;i++;}while(i<=5);
19.
20.
二、2.填空题(20题)21.以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。
#defineM2
#defineN4
voidSumColumMin(inta[M][N],int*sum)
{inti,j,k,s=0;
for(i=0;i<N;i++)
{k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+=a[k][i];
}
*sum=s;
}
main()
{intx[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin(【】);
printf("%d\n",s);
}
22.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。
23.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。
24.若有以下定义语句,则不移动指针p,并且通过指针p引用值为98的数组元素的表达式是【】。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
25.数据模型按不同应用层次分成3种类型,它们是概念数据模型、【】和物理数据模型。
26.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。
27.以下程序运行后的输出结果是【】。
#include<stdio.h>
#include<string.h>
char*ss(char*s)
char*p,t;
p=s+1:t=*s:
whilet*p){*(,p-1)=*p;p++;}
*(p-1)=t;
returns:}
main()
{char*p,str[10]="abedefgh";
p=ss(str);printf("%s\n".p):}
28.#define命令出现在程序中函数的外面,宏名的有效范围为______。
29.函数voidfun(float*sn,intn)的功能是:根据以下公式计算s,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti=0;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2*i+1);
s+=w;}
【】=s;}
30.函数调用语句:“fgets(buf,n,fp);”从中指向的文件中读入n个字符放到buf字符数组中,函数返回值为______。
31.在数据库的概念结构设计中,常用的描述工具是【】。
32.在面向对象方法中,类的实例称为______。
33.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。
34.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。
35.以下函数用以求x的y次方。补足所缺语句。
Doublefun(doublex,inty)
{inti;doublez=1;
for(i=1;i【】;i++)
z=【】;
returnz;
}
36.以下程序的功能是对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码值之差。请填空。
#include"stdio.h"
main()
{chara1[20],a2[20];intn=0,t;
scanf("%st",a1);scanf("%s",a2);
while(a1[n]!=a2[n]&&(a1[n]!=【】))
{t=【】;
printf("%d\n",t);n++;}}
37.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。
38.表示条件;10<x<100或x<0的C语言表达式是【】。
39.下面程序的运行结果是【】。
#include<stdio.h>
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
else
if(n>=2)|m:fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
40.下面程序的运行结果是______。
typedefunionstudent
{
charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{
STUa[5];
printf("%d\n",sizeof(A));
}
三、1.选择题(20题)41.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
42.下列程序的输出结果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}
A.0,1,2B.1,2,3C.1,1,3D.1,2,2
43.若要求从键盘读入含有空格字符的字符串,应使用函数A.getc()B.gets()C.getchar()D.scanf()
44.下列程序执行后的输出结果是main(){inta[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}
A.3B.6C.9D.随机数
45.以下能正确定义且赋初值的语句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1;
D.doublex=12.3E2.5;
46.下列能正确定义且赋初值的语句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
47.有以下语句,则对a数组元素的引用不正确的是inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
48.在16位IBM-PC机上使用C语言,若有如下定义structdata{inti;charch;doublef;}b;则结构变量b占用内存的字节数是
A.1B.2C.7D.11
49.下列描述中正确的是()。
A.程序就是软件
B.软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体
D.软件是程序、数据与相关文档的集合
50.有以下程序:intfun(intx[],intn){staticihtsum=O,i;for(i=O;i
A.45B.50C.60D.55
51.有以下程序:voidfun(int*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;}fun(a,++i,--j);}}main(){inta[]={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++)printf("%d",a[i]);}执行后的输出结果是______。
A.654321B.432156C.456123D.123456
52.设有下列二叉树:
对此二叉树后序遍历的结果为
A.ABCDEFB.BDAECFC.ABDCEFD.DBEFCA
53.以下叙述中正确的是()。
A.周部变量说明为static存储类,其生存期将碍到延长
B.全局变量说明为static存储类,其作用域将被扩大
C.任何存储类的变量在未赋初值时,其值都是不确定的
D.形参可以使用的存储类说明符与局部变量完全相同
54.以下程序的输出结果是unionmyun{struct{intx,y,z;}u;intk;}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf("%d\n",a.u.x);}
A.4B.5C.6D.0
55.当输入a1b2c3d4e时,下列程序的运行结果为______。main(){charstr[40];printf("请输入含有4个数字字符的字符串:\n");scanf("%s",&str);insert(str);}insert(str)charstr[];{inti;for(i=strlen(str);i>0;i--){str[2*i)=str[i];str[2*i-1)='';}printf("\n结果是:%s",str);}
A.a1b2c3d4eB.1234C.a1b2D.因输入错误,程序出错
56.下列程序的输出结果,是______。main(){inta=0,b=0,c=0;if(++a>0||++b>0)++c;printf("\na=%d,b=%d,c=%d",a,b,c);}
A.a=0,b=0,c=0B.a=1,b=1,c=1C.a=1,b=0,c=1D.a=0,b=1,c=1
57.有定义语句:"inta=1,b=2,c=3,x;",则以下选项中各程序段执行后,x的值不为3
A.if(c<a)x=1;elseif(b<a)x=2:elsex=3;
B.if(a<3)x=3:elseif(a<2)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<l)x=1;
D.if(a<b)x=b;if(b<c)x=cif(c<a)x=a;
58.下列正确的实型常量是()。
A.E3.4B.-12345C.2.2eO.8D.4
59.以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为
A.abcdB.adbaC.abcD.abca
60.以下程序的输出结果是()main(){inti;for(i='A;i<'l';i++,i++)printf("%c",i+32);printf("\n");}
A.编译不通过,无输出B.acegC.acegiD.abcdefghi
四、选择题(20题)61.
62.结构化程序设计的三种结构是()。
A.顺序结构、选择结构、转移结构
B.分支结构、等价结构、循环结构
C.多分支结构、赋值结构、等价结构
D.顺序结构、选择结构、循环结构
63.
64.数据库管理系统中负责数据模式定义和数据的物理存取构建的语言是()。
A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言
65.有以下程序:
注意:字母a的ASCIl码值为97,程序运行后的输出结果是()。
A.dB.goC.godD.good
66.按照C语言规定的用户标识符命名规则,不能出现在标识符中的字符是
A.大写字母B.连接符C.小写字母D.下画线
67.
68.有如下程序:
该程序的输出结果是()。
A.0.000000B.0.250000C.0.500000D.1.000000
69.有以下程序
70.有以下程序执行后的输出结果是()。
A.1B.2C.4D.死循环
71.有以下程序:
voidmain()
{
inti=10,j=1;
printf("%d,%d\n",2*i--,++j*2);
}
执行后输出的结果是()。
A)20,4B)10,2
C)20,1D)10,4
72.
73.
74.
75.若要求从键盘读人含有空格字符的字符串,应使用函数()。
A.getc()B.gets()C.getchar()D.scanf()
76.
77.以下选项中非法的表达式是()。
A.a+1=a+1
B.a=b==0
C.(Char.(100+100.
D.7<=X<60
78.下面叙述中,正确的是
A.C语言编译时不检查语法B.C语言的子程序有过程和函数两种
C.C语言的函数可以嵌套定义D.C语言的函数可以嵌套调用
79.有以下程序
#include<stdio.h>
voidprt(int*x,int*y,int*z)
{printf("%d,%d,%d\n",++*x,++*y,*z++);}
main()
{inta=10,b=40,c=20;
prt(&a,&b,&c);
prt(&a,&b,&c);
}
程序的输出结果是
80.(8)数据库系统的核心是()
A.数据模型
B.数据库管理系统
C.软件工具
D.数据库
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;’若未找到,则函数值为NULL。例如,当字符串中的内容为“123dabfl23dx”,t中内容为“ab”时,输出结果应是“l23dx”。当字符串中的内容为“l23dabfl23dx”,t中内容为“aim”时,则程序输出未找到信息“Notfound!”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),该函数的功能是统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0~9岁的人数存放在d[0]中,把10~19岁的人数存放在d[1]中,把20~29岁的人数存放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人数都存放在d[10]中。结果在主函数中输出。注意:部分源程序在文件prog1.c中。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:
参考答案
1.B选项A为表达式,因此不正确,选项C中a++本身就是表达式,无需再赋值,选项D中,在强制类型转换时,类型名应用括号括起来,故选择8选项。
2.A
3.D解析:数据库表中字段转化为属性,把记录的类型转化为关系模式。
4.DC语言只符由字母、数字、下划线组成,且第1个字符必须是字母或下划线,所以D选项中的连接符不合法。故本题答案为D选项。
5.D
6.C解析:本题考核的知识点是字符数组的定义、赋初值以及函数sizeof()的应用。本题中定义两个字符型数组,其中a省略了长度,定义了b的长度为10,并赋初值分别为“abcdefg”和“abcdfg”。所以a的长度为赋值给它的字符串的字符个数7加上一个结束转义字符,即a的长度为7+1为8.定义时b的长度定义为10,故b的长度为10,因此最后通过函数sizeof()求得的数组a和数组b的长度分别为8和10,所以,4个选项中选项C符合题意。
7.A
8.A
9.A解析:顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素,链式存储结构中各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,所以选项A是正确的。两者都可以存储线性的、有序的逻辑结构,所以选项B、C不正确。顺序结构使用的是连续物理空间,链式结构可以使用零散的物理空间存储,链式结构更灵活,不存在谁节约空间的说法,所以选项D不正确。
10.D
11.C
12.A
13.C本题中由循环条件可知,遇到‘\\0’或x与y所指的字符不相等时循环结束。所以函数的功能是统计x和y所指字符串中最前面连续相同的字符个数。故本题答案为C选项。
14.AC语言中,八进制整型常量以0开头,十六进制整型常量以0x或0X开头。C语言中的实型常量有两种表示形式:小数形式和指数形式。小数形式,表示的实型常量必须要有小数点;指数形式,在e或E后加一个整数来表示以10为底数的幂数,且规定字母e或E之前必须要有数字,且e或E后面的指数必须为整数。B选项中“028”不合法,八进制中没有数字8。C选项中,e后面的指数不是整数。D选项中“10,000”数字之间不能有逗号。故本题答案为A选项。
15.B
16.B
17.D数据的逻辑结构是指数据元素之间的逻辑关系的数据结构。数据的存储结构则是数据的逻辑结构在计算机中的物理实现,有时也称作数据的物理结构。两者的区别是数据的逻辑结构只涉及到数据之间抽象的数学关系。存储结构则涉及到如何在计算机中通过对数据的物理存储进行组织来表达数据元素之间的逻辑关系。比如在线性表的顺序存储中是利用物理存储空间上的连续性来表达线性表中数据的前后件关系;在线性表的链式存储中是通过指针域构成的逻辑链条来表达数据的前后件关系。一般的,一种数据的逻辑结构对应的物理实现,即数据的存储结构不止一种。因此选项D正确。
18.B解析:选项B中每次执行循环体都要执行p=1,无法保存上次的运算结果,执行完while循环后p=5。
19.C
20.C
21.x&sx,&s解析:函数SumColumMin中变量k存放一列数组元素中值最小的数组元素的行标,函数通过形参sum带回值,sum是指针变量,将s中的值赋给*sum。空为函数调用,函数SumColumMin有两个形参,二维数组和指针变量,故空中应填x,&s。
22.加工加工解析:数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。其中的每一个加工对应一个处理模块。
23.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。
24.*(p+5)
25.逻辑数据模型逻辑数据模型解析:数据是现实世界符号的抽象,而数据模型(datamodel)则是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束行为,为数据库系统的信息表示与操作提供一个抽象的框架。数据模型按不同的应用层次分成3种类型,它们是概念数据模型(conceptualdatamodel)、逻辑数据模型(logicdatamodel)、物理数据模型(physicaldatamodel)。
26.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
27.bedefghabedefgha解析:函数9,的作用是将指针变量。指向的字符串的首字符移到最后一个位置,其他字符依次前移。其方法是:首先将指针变量p指向字符串s的第2个字符b,然后将首字符保存在字符变量t中;从字符串的第2个字符开始,通过语句*(P-1)=*p;依次前移,直到字符串结束符;最后通过语句*(P-1)=t;将保存在t中的字符放到移动后的字符串末尾,返回main函数并输出,输出结果为bedefsh。
28.从定义到本源文件结束从定义到本源文件结束解析:C语言规定,宏名的有效范围为从定义宏到本源程序结束。
29.=-1*sn=-1\r\n*sn解析:C语言中实参变量和形参变量的数据传递是单向的“值传递”方式。指针变量作函数也要遵循这一规则。调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。
30.buf的首地址buf的首地址解析:考查fsets()函数的功能,f8ets()函数用来从文件中读入字符串。调用格式为:f8ets(buf,n,fp)。此处,fp是文件指针,buf是存放字符串的起始地址,n是一个int型变量。调用函数fsets()时,最多能读入n-1个字符,系统自动在最后加字符串结束标志,并以buf作为函数值返回。
31.E-R图E-R图解析:E-R图是设计概念模型的有力工具。
32.对象对象解析:类描述的是具有相似性质的一组对象。例如,每本具体的书是一个对象,而这些具体的书都有共同的性质,它们都属于更一般的概念“书”这一类对象。一个具体对象称为类的实例。
33.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。
34.顺序存储(顺序方式存储)顺序存储(顺序方式存储)解析:二分法查找对表的要求是有序的顺序表,即第一要求是数据元素有序,第二要求是按顺序方式存储。
35.<y+1z*x
36.\0'al[n]-a2[n]或s2[n]-al[n]\\0'\r\nal[n]-a2[n]或s2[n]-al[n]
37.完整性控制完整性控制
38.(x>10&&x<100)||x<0
39.1111解析:main函数调用fun函数时,将10赋给n,形参数组t与实参数组a共用一段内存空间。执行if-else语句时,n=10,所以执行else子句。由于n>=2成立,执行m=fun(t[0],9),递归调用fun函数,m=fun(t[0],8),m=fun(t[0],7),…,m=fun(t[0],2),m=fun(t[0],1),当n=1时满足if(n=1)的条件,执行return语句,返回数组首地址指向的值t[0],所以答案为11。
40.8080解析:本题考查的知识点是共用体数组变量所占内存的长度。数组a是共用体变量,共用体类型变量所占的内存长度为最大成员的长度,即单精度数组的长度,为4×4=16,因此,数组a所占的内存长度为5×16=80,所以最后输出的s的值为80。
41.AB选项中运算符“%”的运算对象为整数。C选项中不能将变量赋给表达式“x+n”。D选项中不能将表达式“4+1”赋给常量5。故本题答案为A选项。
42.C解析:本题考查if语句。先判断if语句的条件是否成立,++a=1>0,此条件成立,又因为是进行逻辑或运算,在已知其中一个运算对象为真的情况下,不必判断另外一个运算符的真假,即不进行++b操作,就可以直接得出整个表达式的值为逻辑1,执行下列的++c。
43.Bscanf(\u3000)语句中用“空格”间隔不同的字符串,空格将被全部忽略掉,所以用scanf(\u3000)函数不能输入空格;getehar(\u3000)函数用于输入字符,其调用形式为:ch=getelaar(\u3000),getehar(\u3000)函数从终端读入一个字符作为函数值,把读入的字符赋给变量ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入Enter键时,读入才开始执行。gets(\u3000)函数的凋用形式为:gets(str_adr),其中stradr是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。9ets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。getc(\u3000)函数的调用形式为:ch=getc(pf)其中pf是文件指针。函数的功能是从pf指定的文件中读入一个字符,并把它作为函数值返回。
44.B解析:本题中,a[1][2]是二维数组中的第6个元素,对应for循环中i的值为5,p[5]=5+1。
45.B解析:语句intn1=n2=10;中,由于变量n2未定义,所以此赋值语句错误;由于赋值语句中不能存在运算表达式,所以选项C)中的赋值语句错误;选项D)中指数表示错误,C语言规定,e后面的指数必须为整数;选项B)中的32是ASCII码的表示形式,这是c语言中字符型数据和整型数据通用的表现,即一个字符数据可以以字符形式出现,也可以以整数形式出现。
46.B解析:C语言规定,可以在定义变量的同时给变量赋初值,称为变量初始化。在选项A)中在给n1和n2进行赋初值,但变量02没有定义;在选项C)中定义变量f时,不能在赋值表达式的右边出现变量f自身,所以选项C)错误:在选项D)用指数表达式的常量中,字母E后面的数应该为整数,而不应该为小数形式。因此,选项B)正确。
47.D解析:本题考查数组指针的应用。选项D)第一层括号中为数组a中第i项元素的值,外面再加指针运算符没有意义。
48.D解析:结构体变量所占用内存的字节数是其所有成员所占用内存字节数之和。本题中整型变量i所占用的内存是2字节,字符型变量ch所占用的内存是1字节,双精度型变量f所占用的内存是8字节,三者相加即可。
49.D\r\n软件是与计算机操作相关的计算机程序、规程、规则,以及可能有的文件、文档及数据;软件开发要受到计算机系统的限制;软件是一个逻辑实体,不是物理实体,软件具有抽象性。因此选项D正确。
50.C解析:本题中fun()函数通过一个for循环来累计形参数组x的前n个元素之和。在主函数中,第1次调用fun(a,5)时,返回的值应该是数组a的前5个元素的和,而第2次调用fun(b,4)时,返回的值除了本次累计的数组b前4个元素的和外,还要加上上次累计的值。所以,最后输的s的值为数组a所有元素之和的两倍加上数组b所有元素之和,结果是60。故应该选择C。
51.A解析:本题考查指针变量作函数形参的问题。指针变量作函数的形参,实现的是地址传递,形参的改变可以影响实参。fun由数的功能是将a所指数组中的内容逆置。在main函数中调用fun函数后,实参数组s中元素的值变为:a[0]=6、a[1]=5、a[2]=4、a[3]=3、a[4]=2、a[5]=1。
52.D解析:二叉树的遍历分为先序、中序、后序三种不同方式。本题要求后序遍历,其遍历顺序应该为:后序遍历左子树→后序遍历右子树→访问根结点。按照定义,后序遍历序列是DBEFCA,故答案为D。
53.A解析:静态局部变量的生存期将一直延长到程序运行结束。故选项A正确;而全局变量的只有一种静态存储类别,故全局变量说明为static存储类,和没有说明为static存储类其生存期都是一直延长到程序运行结束,故选项B不正确;未赋初值的auto型变量的初值是随机的,未赋初值的static型变量的初值是0(故选项C和选项D不正确)。所以,4个选项中选项A符合题意。
54.D解析:本题考查共用体变量起作用的范围。共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用,在本题中,当对a.u.y成员赋值时,a.u.x的值就不存在了,当对a.u.2赋值时,a.u.y的值就不存在了。
55.A
56.C解析:“||”是或运算,它有个“短路”的特点需特别注意,当“||”运算符左边的表达式的值为真时,则程序就不再对“||”右边的表达式的值进行运算,而是使得整个表达式的值直接为真。
57.C解析:本题考核的知识点是if-else语句的程序分析。
选项A首先判断if语句条件中表达式的值“3<1”为假,然后执行最近的else后面的语句,该else后面又为if-else语句,在这个if-else语句中首先判断该if语句条件中表达式的值“2<1”为假,程序执行其最近的else后面的语句,将3赋值给x。
选项B中首先判断if语句条件中表达式的值“1<3”为真,然后执行最近的else后面的语句“x=3”,后面的else不再执行,最后x的值为3。
选项C中,首先选执行第一条if,由于“1<3”为真,执行此if后面的语句“x=3”,接着执行第二条if语句,由于“1<2”为真,执行此if后面的语句“x=2”,接着执行第三条语句,由于“1<1”为假,后面的语句不执行,所以最后的x值为2不为3。
选项D中,首先选执行第一条if语句,由于“a<b”为真,执行此if后面的语句“x=b”;接着执行第二条if语句,由于“b<c”,为真,执行此if后面的语句“x=c”,接着执行第三条if语句,由于“c<a”为假,后面的语句不执行,所以最后的x值为c即为3.所以,4个选项中选项c符合题意。
58.B解析:实型常量有两种书写形式:①小数形式,它由符号、整数部分、小数点及小数部分组成;②指数形式,由十进制小数形式加上指数部分组成,其形式为十进制小数e指数或十进制小数E指数。注:e或E后面的指数必须是整数,并且在e或E的前面必须有数字。本题中,选项A)中E的前面没有数字,因此错误。选项C)中0.8不是整数,因此错误。选项D)中4是整型常量而不是实型常量。
59.A解析:字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符ASCII码值较大时,该字符所在的字符串就是较大的字符串。主函数中调用了函数scmp(),分析不难知道该函数的作用是返回参加比较的两个字符串中的较小的字符串,它的主函数中定义了一个二维字符数组来存放三个字符串。接着通过for循环给每个字符串赋值,赋值后三个字符串分别为“abcd”、“abba”、“abc”,接着比较str[0]和str[1]的大小,根据字符串大小比较标准可知str[0]较小,然后通过函数strcpy()把str[0]中的字符串,拷贝到string中,然后比较string和str[2)的大小,比较结果是string较小,最后输出string的值为“abcd”。
60.B
61.D
62.D结构化程序设计以模块化设计为中心,采用自顶向下、逐步求精的程序设计方法。任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合:顺序结构、选择结构和循环结构来实现。
63.C
64.A\n数据定义语言负责数据模式定义和数据的物理存取构建;数据操纵语言负责数据的操纵;数据控制语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。无数据管理语言的说法。
\n
65.Afun函数的功能是输出字符串中ASCII码能被2整除的字符,g的ASCIl码为l03,0的ASCIl码为111,d的ASCIl码为l00,只有d满足。因此,本题答案为A)。
66.B标识符是用来表示变量名、符号常量名、函数名、数组名、类型名和文件名的有效字符序列。C语言的标识符可以分为三类:关键字、预定义标识符、用户标识符。
C语言中的标识符命名规则如下:
(1)C语言中规定,标识符只能由字母、数字和下画线三种字符构成,而且标识符的第一个字符必须是字母或下画线。
(2)标识符的长度有一定的限制,TC2.0规定标识符的前8个字符有效。
(3)标识符中大写字母和小写字母被认为是不同的字符。
根据前述的标识符命名规则第一条,我们不难看出,连接符不是组成标识符的字符。
67.A
68.D本题考查if语句的嵌套。if语句中的一
种表达方式,即:if…elseif…。
该表达式的语句是:
if(表达式1)
语句l
elseif(表达式2)
语句2
elseif(表达式3)
语句3
else
语句4
本题执行elsey=1.0,并且以”%f”输出。
69.A函数fun的功能是将第二个字符串链接到第一个字符串的末尾,第二个字符串不变。所以选择A)。
70.A判断循环条件一k,k值为4,条件为真,执行输出语句,其中k一=3执行后,k为1,即输出为1,然后判断循环条件一k,值为0,为假,循环结束。答案选择A)。
71.A有以下程序:\r\nvoidmain()\r\n{\r\ninti=10,j=1;\r\nprintf('%d,%d\\n',2*i--,++j*2);\r\n}\r\n执行后输出的结果是(([question]))。([answer])\r\nA)20,4
B)10,2\r\nC)20,1
D)10,4
72.D
73.A
74.D
75.Bscanf语句用”空格”区别不同的字符串,遇到空格结束,所以不能读人空格;getc与getchar语句不能用于字符串的读入。
76.A
77.A赋值运算符的左边只能是变量,而不能是常量或表达式。
78.D本题主要考查我们对C语言一些基础知识的掌握情况。下面分别分析本题的四个选项。
C语言程序在编译时的主要任务就是检查程序的语法是否符合规定,因此选项A的描述不正确。
一个程序一般都是从主函数开始运行,之后主程序调用的其他程序段叫子程序。由于C语言的程序段都是以函数形式存在的,所以除了主程序main()函数以外,其他程序中出现的子程序都是函数,而非过程。因此,选项B的描述不正确。
在C语言中,函数是不允许被定义在其他函数里面的,即嵌套定义的。因此,选项C的描述是错误的。
在C语言中,函数不能嵌套定义,但可以嵌套调用和递归调用。嵌套调用是指一个函数在执行过程中,调用了另一个函数,而被调函数在执行时,还可以调用其他函数。因此,本题正确的答案选D。
79.B在本题中,程序首先定义了一个prt函数,该函数带有三个整型指针变量,分别为x,y,z,程序体是一条输出语句,由于运算符*和++的优先级一样,且都是自右向左结合的运算符,因此,++*x等价于++(*x),这个操作可描述为:选取值,再加1,最后输出相加后的结果,并将相加后的结果修改到实参中;*z++等价于*(z++),这个操作可描述为:先调用值,然后对其进行自加,最后通过取值运算符*取其值输出,这里还要注意,由于值自加后,没有对其地址进行操作,采用的是传值方式,此次修改并不能改变实参的结果值。
在主函数中,首先定义三个整型变量a、b、c,并分别赋值为10、40和20,然后第一次调用prt函数,用这三个变量的地址值作为实参,即分别使指针变量指向整型变量的值。根据上面对prt函数的分析可知,第一次调用输出的结果分别为11、41和20,第一次调用后实参a,b,c的值分别为11、41和20。然后第二次调用prt函数,同理,输出的结果为12、42和20。因此,本题的正确答案是B。
80.B数据库管理系统是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,因此数据库管理系统是数据库系统的核心。
81.
82.1voidfun(int*a,int*b)2{3inti,j;4for(j=0;j<M;j++)5b[j]==0;/*_且b初始化为0*/6for(i=0;i<N;i++)7if(a[i]>=100)8b[10]++;/*如果年龄大于等于100,b[lo]自增1*/9else10b[a[i]/10]++;/*如果年龄小于100,则将其分别统计到b[a[i]/10]中*/11}<m;j++)<n;i++)本题是一个分段函数的问题,用两个循环来完成。第1个循环的作用是使数组b中的所有元素值都为0。这个循环不能省略,因为若未对数组b中的元素赋初值,则它们的值将是不可预测的。第2个循环的作用是分别统计数组a中各年龄段的人数。当a[i]>100时,按题意要将其统计到b[10]中。else的作用是如果年龄小于100,则将其分别统计到b[a[i]/10]中。由运算优先级可知先进行a[i]/10的运算,所得结果作为b的下标。若a[i]为0~9,a[i]/10的值为0,且0?9岁的人数正好存入b[0]中。若a[i]为10~19,a[i]/10的值为1,且10~19岁的人数正好存入b[1]中,依此类推。</n;i++)</m;j++)2022-2023年山西省临汾市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。
A.a==lB.++iC.a=a++=5D.a=int(i)
2.依次读入数据元素序列{a,b,c,d,e,f,g}进栈,每进一个元素,机器可要求下一个元素进栈或弹栈,如此进行,则栈空时弹出的元素构成的序列是以下哪些序列?
A.{d,e,c,f,b,g,a}
B.{f,e,g,d,a,c,b}
C.{e,f,d,g,b,c,a}
D.{c,d,b,e,f,a,g}
3.在关系数据模型中,通常可以把()称为属性,其值称为属性值。
A.记录B.基本表C.模式D.字段
4.按照C语言规定的用户标识符命名规则,不能出现在用户标识符中的是()。
A.大写字母B.下划线C.数字D.连接符
5.下列叙述中正确的是()
A.一个算法的空间复杂度打,则其时间复杂度也必定大
B.一个算法的空间复杂度大,则其时间复杂度也必定小
C.一个算法的时间复杂度大,则其空间复杂度也必定小
D.算法的时间复杂度与空间复杂度没有直接相关
6.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}执行后输出结果是()。
A.77B.88C.810D.1010
7.设有以下语句:intx=10;x+=3+x%(3),则x的值是()。
A.14B.15C.11D.12
8.向堆中插入一个元素的时间复杂度为________。
A.O(log2n)B.O(n)C.O(1)D.O(nlog2n)
9.下列叙述中正确的是()。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
10.
11.
12.在长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n)时,需要从前向后依次前移____个元素。
A.n-iB.n-i+1C.n-i-1D.i
13.有以下函数:intfun(char*x,char*y){intn=0;}while((*x==*y)&&*x!=‘\0’){x++;y++;n++;}returnn;}函数的功能是()。
A.将y所指字符串赋给x所指存储空间
B.查找x和y所指字符串中是否有‘\0’
C.统计x和y所指字符串中最前面连续相同的字符个数
D.统计x和y所指字符串中相同的字符个数
14.以下选项中,合法的一组C语言数值常量是()。
A.12.0Xa234.5e0
B.028.5e-3-0xf
C..1774e1.50abc
D.0x8A10,0003.e5
15.若定义了函数double*function(),则函数function的返回值为()。
A.实数型B.实数的地址C.指向函数的指针D.函数的地址
16.数组A中,每个元素的长度为4个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址为()。
A.SA+292B.SA+296C.SA+300D.304
17.数据的存储结构是指()。
A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示
18.若变量已正确定义,要求程序段完成5!的计算,不能完成此操作的程序段是______。
A.for(i=1,p=1;i<=5;i++)p*=i;
B.for(i=1;i<=5;i++){p=1;p*=i;}
C.i=1;p=1;while(i<=5){p*=i;i++;}
D.i=1;p=1;do{p*=i;i++;}while(i<=5);
19.
20.
二、2.填空题(20题)21.以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。
#defineM2
#defineN4
voidSumColumMin(inta[M][N],int*sum)
{inti,j,k,s=0;
for(i=0;i<N;i++)
{k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+=a[k][i];
}
*sum=s;
}
main()
{intx[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin(【】);
printf("%d\n",s);
}
22.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。
23.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。
24.若有以下定义语句,则不移动指针p,并且通过指针p引用值为98的数组元素的表达式是【】。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
25.数据模型按不同应用层次分成3种类型,它们是概念数据模型、【】和物理数据模型。
26.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。
27.以下程序运行后的输出结果是【】。
#include<stdio.h>
#include<string.h>
char*ss(char*s)
char*p,t;
p=s+1:t=*s:
whilet*p){*(,p-1)=*p;p++;}
*(p-1)=t;
returns:}
main()
{char*p,str[10]="abedefgh";
p=ss(str);printf("%s\n".p):}
28.#define命令出现在程序中函数的外面,宏名的有效范围为______。
29.函数voidfun(float*sn,intn)的功能是:根据以下公式计算s,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti=0;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2*i+1);
s+=w;}
【】=s;}
30.函数调用语句:“fgets(buf,n,fp);”从中指向的文件中读入n个字符放到buf字符数组中,函数返回值为______。
31.在数据库的概念结构设计中,常用的描述工具是【】。
32.在面向对象方法中,类的实例称为______。
33.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。
34.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。
35.以下函数用以求x的y次方。补足所缺语句。
Doublefun(doublex,inty)
{inti;doublez=1;
for(i=1;i【】;i++)
z=【】;
returnz;
}
36.以下程序的功能是对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码值之差。请填空。
#include"stdio.h"
main()
{chara1[20],a2[20];intn=0,t;
scanf("%st",a1);scanf("%s",a2);
while(a1[n]!=a2[n]&&(a1[n]!=【】))
{t=【】;
printf("%d\n",t);n++;}}
37.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。
38.表示条件;10<x<100或x<0的C语言表达式是【】。
39.下面程序的运行结果是【】。
#include<stdio.h>
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
else
if(n>=2)|m:fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
40.下面程序的运行结果是______。
typedefunionstudent
{
charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{
STUa[5];
printf("%d\n",sizeof(A));
}
三、1.选择题(20题)41.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
42.下列程序的输出结果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}
A.0,1,2B.1,2,3C.1,1,3D.1,2,2
43.若要求从键盘读入含有空格字符的字符串,应使用函数A.getc()B.gets()C.getchar()D.scanf()
44.下列程序执行后的输出结果是main(){inta[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}
A.3B.6C.9D.随机数
45.以下能正确定义且赋初值的语句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1;
D.doublex=12.3E2.5;
46.下列能正确定义且赋初值的语句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
47.有以下语句,则对a数组元素的引用不正确的是inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
48.在16位IBM-PC机上使用C语言,若有如下定义structdata{inti;charch;doublef;}b;则结构变量b占用内存的字节数是
A.1B.2C.7D.11
49.下列描述中正确的是()。
A.程序就是软件
B.软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体
D.软件是程序、数据与相关文档的集合
50.有以下程序:intfun(intx[],intn){staticihtsum=O,i;for(i=O;i
A.45B.50C.60D.55
51.有以下程序:voidfun(int*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;}fun(a,++i,--j);}}main(){inta[]={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++)printf("%d",a[i]);}执行后的输出结果是______。
A.654321B.432156C.456123D.123456
52.设有下列二叉树:
对此二叉树后序遍历的结果为
A.ABCDEFB.BDAECFC.ABDCEFD.DBEFCA
53.以下叙述中正确的是()。
A.周部变量说明为static存储类,其生存期将碍到延长
B.全局变量说明为static存储类,其作用域将被扩大
C.任何存储类的变量在未赋初值时,其值都是不确定的
D.形参可以使用的存储类说明符与局部变量完全相同
54.以下程序的输出结果是unionmyun{struct{intx,y,z;}u;intk;}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf("%d\n",a.u.x);}
A.4B.5C.6D.0
55.当输入a1b2c3d4e时,下列程序的运行结果为______。main(){charstr[40];printf("请输入含有4个数字字符的字符串:\n");scanf("%s",&str);insert(str);}insert(str)charstr[];{inti;for(i=strlen(str);i>0;i--){str[2*i)=str[i];str[2*i-1)='';}printf("\n结果是:%s",str);}
A.a1b2c3d4eB.1234C.a1b2D.因输入错误,程序出错
56.下列程序的输出结果,是______。main(){inta=0,b=0,c=0;if(++a>0||++b>0)++c;printf("\na=%d,b=%d,c=%d",a,b,c);}
A.a=0,b=0,c=0B.a=1,b=1,c=1C.a=1,b=0,c=1D.a=0,b=1,c=1
57.有定义语句:"inta=1,b=2,c=3,x;",则以下选项中各程序段执行后,x的值不为3
A.if(c<a)x=1;elseif(b<a)x=2:elsex=3;
B.if(a<3)x=3:elseif(a<2)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<l)x=1;
D.if(a<b)x=b;if(b<c)x=cif(c<a)x=a;
58.下列正确的实型常量是()。
A.E3.4B.-12345C.2.2eO.8D.4
59.以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为
A.abcdB.adbaC.abcD.abca
60.以下程序的输出结果是()main(){inti;for(i='A;i<'l';i++,i++)printf("%c",i+32);printf("\n");}
A.编译不通过,无输出B.acegC.acegiD.abcdefghi
四、选择题(20题)61.
62.结构化程序设计的三种结构是()。
A.顺序结构、选择结构、转移结构
B.分支结构、等价结构、循环结构
C.多分支结构、赋值结构、等价结构
D.顺序结构、选择结构、循环结构
63.
64.数据库管理系统中负责数据模式定义和数据的物理存取构建的语言是()。
A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言
65.有以下程序:
注意:字母a的ASCIl码值为97,程序运行后的输出结果是()。
A.dB.goC.godD.good
66.按照C语言规定的用户标识符命名规则,不能出现在标识符中的字符是
A.大写字母B.连接符C.小写字母D.下画线
67.
68.有如下程序:
该程序的输出结果是()。
A.0.000000B.0.250000C.0.500000D.1.000000
69.有以下程序
70.有以下程序执行后的输出结果是()。
A.1B.2C.4D.死循环
71.有以下程序:
voidmain()
{
inti=10,j=1;
printf("%d,%d\n",2*i--,++j*2);
}
执行后输出的结果是()。
A)20,4B)10,2
C)20,1D)10,4
72.
73.
74.
75.若要求从键盘读人含有空格字符的字符串,应使用函数()。
A.getc()B.gets()C.getchar()D.scanf()
76.
77.以下选项中非法的表达式是()。
A.a+1=a+1
B.a=b==0
C.(Char.(100+100.
D.7<=X<60
78.下面叙述中,正确的是
A.C语言编译时不检查语法B.C语言的子程序有过程和函数两种
C.C语言的函数可以嵌套定义D.C语言的函数可以嵌套调用
79.有以下程序
#include<stdio.h>
voidprt(int*x,int*y,int*z)
{printf("%d,%d,%d\n",++*x,++*y,*z++);}
main()
{inta=10,b=40,c=20;
prt(&a,&b,&c);
prt(&a,&b,&c);
}
程序的输出结果是
80.(8)数据库系统的核心是()
A.数据模型
B.数据库管理系统
C.软件工具
D.数据库
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;’若未找到,则函数值为NULL。例如,当字符串中的内容为“123dabfl23dx”,t中内容为“ab”时,输出结果应是“l23dx”。当字符串中的内容为“l23dabfl23dx”,t中内容为“aim”时,则程序输出未找到信息“Notfound!”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),该函数的功能是统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0~9岁的人数存放在d[0]中,把10~19岁的人数存放在d[1]中,把20~29岁的人数存放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人数都存放在d[10]中。结果在主函数中输出。注意:部分源程序在文件prog1.c中。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:
参考答案
1.B选项A为表达式,因此不正确,选项C中a++本身就是表达式,无需再赋值,选项D中,在强制类型转换时,类型名应用括号括起来,故选择8选项。
2.A
3.D解析:数据库表中字段转化为属性,把记录的类型转化为关系模式。
4.DC语言只符由字母、数字、下划线组成,且第1个字符必须是字母或下划线,所以D选项中的连接符不合法。故本题答案为D选项。
5.D
6.C解析:本题考核的知识点是字符数组的定义、赋初值以及函数sizeof()的应用。本题中定义两个字符型数组,其中a省略了长度,定义了b的长度为10,并赋初值分别为“abcdefg”和“abcdfg”。所以a的长度为赋值给它的字符串的字符个数7加上一个结束转义字符,即a的长度为7+1为8.定义时b的长度定义为10,故b的长度为10,因此最后通过函数sizeof()求得的数组a和数组b的长度分别为8和10,所以,4个选项中选项C符合题意。
7.A
8.A
9.A解析:顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素,链式存储结构中各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,所以选项A是正确的。两者都可以存储线性的、有序的逻辑结构,所以选项B、C不正确。顺序结构使用的是连续物理空间,链式结构可以使用零散的物理空间存储,链式结构更灵活,不存在谁节约空间的说法,所以选项D不正确。
10.D
11.C
12.A
13.C本题中由循环条件可知,遇到‘\\0’或x与y所指的字符不相等时循环结束。所以函数的功能是统计x和y所指字符串中最前面连续相同的字符个数。故本题答案为C选项。
14.AC语言中,八进制整型常量以0开头,十六进制整型常量以0x或0X开头。C语言中的实型常量有两种表示形式:小数形式和指数形式。小数形式,表示的实型常量必须要有小数点;指数形式,在e或E后加一个整数来表示以10为底数的幂数,且规定字母e或E之前必须要有数字,且e或E后面的指数必须为整数。B选项中“028”不合法,八进制中没有数字8。C选项中,e后面的指数不是整数。D选项中“10,000”数字之间不能有逗号。故本题答案为A选项。
15.B
16.B
17.D数据的逻辑结构是指数据元素之间的逻辑关系的数据结构。数据的存储结构则是数据的逻辑结构在计算机中的物理实现,有时也称作数据的物理结构。两者的区别是数据的逻辑结构只涉及到数据之间抽象的数学关系。存储结构则涉及到如何在计算机中通过对数据的物理存储进行组织来表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年成都银杏酒店管理学院高职单招职业适应性测试模拟试题及答案详细解析
- 2026贵州毕节大方县面向社会公开招聘事业单位工作人员210人参考考试试题及答案解析
- 2026年金华职业技术学院单招综合素质笔试参考题库含详细答案解析
- 2026福建水投集团平潭水务有限公司招聘7人考试参考题库及答案解析
- 2026年渤海船舶职业学院单招综合素质考试模拟试题含详细答案解析
- 2026年郑州澍青医学高等专科学校高职单招职业适应性测试备考试题及答案详细解析
- 2026年江阴职业技术学院单招综合素质考试模拟试题含详细答案解析
- 2026年江西青年职业学院单招职业技能考试备考题库含详细答案解析
- 2026年德州科技职业学院单招职业技能考试模拟试题含详细答案解析
- 2026年朔州职业技术学院单招综合素质笔试参考题库含详细答案解析
- 2025年党员民主评议个人总结2篇
- 果园合伙经营协议书
- 2026中国民营医院集团化发展过程中的人才梯队建设专题报告
- 物业管理经理培训课件
- 员工解除竞业协议通知书
- 【语文】太原市小学一年级上册期末试题(含答案)
- 储能电站员工转正述职报告
- 静脉炎处理方法
- 不锈钢护栏施工方案范文
- 商业地产物业管理运营手册
- 2025及未来5年中国天然植物粉市场调查、数据监测研究报告
评论
0/150
提交评论