版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年辽宁省朝阳市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若有定义语句“doublea,*p=&a;”,下列叙述中错误的是()。
A.定义语句中的“*”是一个间址运算符
B.定义语句中的“*”是一个说明符
C.定义语句中的“p”只能存放double类型变量的地址
D.定义语句中*p=&a”把变量a的地址作为初值赋给指针变量p
2.有以下程序
intfun1(doublea){returna*=a;}
intfun2(doublex,doubley)
{doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);……}
程序执行后变量w中的值是A.5.21B.5C.5.0D.0.0
3.
4.以下说法错误的是()。
A.散列法存储的思想是由关键字值决定数据的存储地址
B.散列表的结点中只包含数据元素自身的信息,不包含指针
C.负载因子是散列表的一个重要参数,它反映了散列表的饱满程度
D.散列表的查找效率主要取决于散列表构造时选取的散列函数和处理冲突的方法
5.设一棵二叉树共有50个叶子结点(终端结点),则共有___个度为2的结点。
A.25B.49C.50D.51
6.
7.
8.
9.软件工程的出现是由于()。A.A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展
10.设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树的结点个数为n,森林F中第一棵树的结点的个数是()。
A.m-nB.m-n-1C.n+1D.不能确定
11.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
12.下列叙述中正确的是()。
A.只能在循环体内和switch语句体内使用break语句
B.eotinue语句的作用是结束整个循环的执行
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用got0语句
13.索引属于()。
A.模式B.内模式C.外模式D.概念模式
14.已定义以下函数“intfun(int*p){return*p;}”,fun函数的返回值是()。
A.—个整数B.不确定的值C.形参p中存放的值D.形参p的地址值
15.
16.以下叙述中正确的是()。
A.C语言函数可以嵌套调用,例如:fim(fun(X))
B.C语言程序是由过程和函数组成的
C.C语言函数不可以单独编译
D.C语言中除了main函数外,其他函数不可作为单独文件形式存在
17.若有定义语句:“intyear=2009,*p=&year;”,以下不能使变量year中的值增至2010的语句是()。
A.*p+=1;B.(*p)++;C.++(*p);D.*++P
18.若一棵二叉树具有10个出度为2的结点,则在该二叉树中,出度为0的结点个数是()
A.9B.11C.12D.不确定
19.最小堆[0,3,2,5,7,4,6,8],在删除堆顶元素0之后,其结果是()
A.[3,2,5,7,4,6,8]
B.[2,3,5,7,4,6,8]
C.[2,3,4,5,7,8,6]
D.[2,3,4,5,6,7,8]
20.有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序运行后的输出结果是()。A.2.3.3B.2.3.2C.2.3.1D.2.2.1
二、2.填空题(20题)21.若有以下程序:
main()
{int,p,a=5;
if(P=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是【】。
22.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】(要求形参名为b)。main(){doubles[10][22];intn;……fun(s);……}
23.以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i{i=x[m];p0=m;}
elseif(x[m]<j{j=x[m];p1:m;}
}
t=x[p0];x[p0]=x
24.数据库系统的主要特点为数据集成性、数据的高______和低冗余性、数据独立性和数据统一管理和控制。
25.设有下面的程序段:chars[]="china";char*p;p=S;则下列叙述正确的是
26.以下程序通过函数SunFun求这里f(x)=x2+1,由F函数实现。请填空。
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{return(【】);}
27.设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为【】。
28.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是【】。
structnode
{chardata;
structnode*next;}a,b
29.以下程序的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。请填空。#include<stdio.h>main(){longs,t,s1=10;pfintf("\n.Pleaseenters:");scanf("%1d",&s);t=s%10;while(s>0){s=s/100;t=();s1=s1*10;}printf("Theresultis:%1d\n",t);}
30.在面向对象方法中,类之间共享属性和方法的机制称为______。
31.若线性表的长度经常发生变化,那么该线性表应采用的存储结构是【】。
32.汇编程序和编译程序翻译的目标程序需经【】连接成可执行的程序。
33.以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。
structnode
{intinfo;
【】link;};
34.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
______(double,double);
main()
{doublex,y;
scanf("%lf%lf",&x.&y);
printf("%lf\n…,max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a=B);}
35.若有如下程序:
#include"stdio.h"
main()
{chars[30];
Strcpy(&S[0],"adc");
Strcpy(&S[1],"def");
strcpy(&S[2],"gh");;
printf("%S\n",s);
则程序运行后的输出结果是【】。
36.关系模型的3类完整性指的是【】、参照完整性、用户定义的完整性。
37.以下程序的输出结果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
38.下列函数从字符数组s[]中删除和c一样的字符,请在下面横线处填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!='c')s[j++]=s[i];s[j]="\0";}
39.在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是【】函数。
40.以下程序的功能是输入任意整数给n后,输出n行从大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:
ABCDE
FCHI
JKL
MN
O
请填空完成该程序。
#include<stdio.h>
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);
【】;
}
【】;
}
elseprintf("nistoolarge!\n");
prinff("\n");
}
三、1.选择题(20题)41.对于一个正常运行的C语言程序,以下叙述中正确的是()。
A.程序的执行总是从main函数开始,在main函数结束
B.程序的执行总是从程序的第一个函数开始,在main函数结束
C.程序的执行总是从main函数开始,在程序的最后一个函数中结束
D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
42.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码
43.下列选项中合法的赋值语句是()。
A.a=b=34B.a=34,b=34C.i-1;D.m=(int)(x+y);
44.以下选项中合法的用户标识符是A.longB._2TestC.3DmaxD.A.dat
45.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。
A.12B.11C.10D.编译出错
46.对于长度为n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是()。
A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2
47.若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为()。ch='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
48.有如下定义structperson{charname[9];intage;};structpersonclass[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};根据上述定义,能输出字母M的语句是
A.printf("%c\n",class[3].name);
B.printf("%c\n",class[3].name[1]);
C.printf("%c\n",class[2].name[1]);
D.printf("%c\n",class[2].name[0));
49.为了使模块尽可能独立,要求
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽最强
50.有以下程序:#include<stdio.h>main()inta=3,b=4,c=5,d=2;if(a>b)if(b>c)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",d);程序运行后的输出结果是()。
A.2B.3C.43D.44
51.下列选项中,不属于数据管理员(DBA.职责的是()。
A.数据库维护B.数据库设计C.改善系统性能,提高系统效率D.数据类型转换
52.若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]
53.以下不正确的定义语句是()。
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5]={O,1,3,5,7,9};
C.charc1[]={'1','2','3','4','5'};
D.charc2[]={'\x10','\xa','\x8'};
54.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"},*p=str;printf("%d\n",strlen(p+20));}程序运行后的输出结果是______。
A.0B.5C.7D.20
55.C语言结构体类型变量在程序运行期间
A.TC环境在内存中仅仅开辟一个存放结构体变量地址的单元
B.所有的成员一直驻留在内存中
C.只有最开始的成员驻留在内存中
D.部分成员驻留在内存中
56.有以下程序
#include<string.h>
main()
{charp[20]={′a′,′b′,′c′,′d′},q[]="abc",r[]="abcde";
strcat(p,r);strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
}
程序运行后的输出结果是
A.9B.6C.11D.7
57.阅读下面程序段,则执行后的结果为#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
58.下面程序的输出结果是()。#include<stdio.h>main(){intx=7,y=3;printf("%d",y=x/y);}
A.0B.2C.3D.不确定的值
59.程序设计方法要求在程序设计过程中()。
A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图
B.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释
C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释
D.以上三种说法都不对
60.有下列程序:fun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}执行后的输出结果是()。
A.7B.3C.2D.0
四、选择题(20题)61.
62.有以下程序该程序试图通过指针p为变量rl读人数据并输出,但程序有多处错误,以下语句正确的是()。
63.在E—R图中,用来表示实体联系的图形是()。
A.椭圆形B.矩形C.菱形D.三角形
64.有以下程序:
程序输出结果是()。
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错
65.
66.有以下程序:main{inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j=0;j<=3;j++)x++;}x++;}printf("x=%d\n",x);}程序执行后的输出结果是()。A.x=4B.x=8C.x=6D.x=12
67.
68.#define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为()。
A.#definef(x)5*x*x+5*x+5
B.#definef5*X*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)f(x)
69.下列关于栈的叙述正确的是()。
A.栈按“先进先出”组织数据,B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据
70.以下选项中不属于c语言的类型的是()。
A.unsignedlongint
B.longshort
C.unsignedint
D.signedshortint
71.下列叙述中正确的是()。A.算法的效率只与问题的规模有关,而与数据的存储结构无关
B.算法的时间复杂度是指执行算法所需要的计算工作量
C.数据的逻辑结构与存储结构是一一对应的
D.算法的时间复杂度与空间复杂度一定相关
72.若有定义语句:“charsE10]="1234567\0\0";”,则strlen(s)的值是()。
A.7B.8C.9D.10
73.
74.有以下说明和定义语句
structstudent
{
intage;charnum[8];
};
structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};
structstudent*p=stu;
以下选项中引用结构体变量成员的表达式错误的是
A.(p++)->numB.p->numC.(*p).numD.stu[3].age
75.
76.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。
A.函数调用可以嵌套和递归
B.函数调用可以作为一个函数的实参
C.函数调用可以出现在表达式中
D.函数调用可以作为一个函数的形参
77.在关系数据库中,用来表示实体之间联系的是()。
A.二维表B.E—R图C.元组D.文件
78.
有下列程序:
main
{intx=5;
do
{printf("%d",X-=4);)
while(!(--x));
}
程序的输出结果是()。
A.1B.20C.1-4D.死循环
79.有以下程序
main()
{inta[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{ptr=a+i;scanf("%d",ptr);ptr++;}
for(i=0;i<3;i++)
{for(j=0;j<2;j++)printf("%2d",a[i][j]);
printf("\n");
}
}
若运行时输入123<回车>,则输出结果为
80.面向对象方法中,继承是指()。
A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编一个函数fun(ohlr*str),该函数的功能是把字符串中的内容逆置。
例如,字符串中原有的字符串为asdf9,则调用该函数后,串中的内容为9fdsa。
请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。
试题程序:
#include<string.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidfun(char*str)
{
}
voidmain
{
chara[N];
FILE*out:
printf("Enterastring:");
gets(a);
printf("Theorigiralstringis:");
puts(a);
fun(a):
printf("Thestringaftermodified:");
puts(a);
strcpy(a,"Welcome!");
fun(a);
ut=fopen("outfile.dat","w");
fprintf(out,"%s".a);
fclose(out);
}
参考答案
1.A变量定义语句“doublea,*p=&a;”,“*”是一个指针运算符,而非间址运算符。故本题答案为A选项。
2.C(33)C)解析:题中变量w的定义为double型,函数fun2()的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。
3.D
4.B
5.B难易程度:易
6.C
7.A
8.B
9.C解析:软件工程的基本概念。软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。
10.A
11.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。
12.A本题考查循环跳出的知识点:①break语句可以出现在switch循环体内及语句体内,它的作用是跳出循环体,不能用于其他的语句;②continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而接着判定循环条件是否成立,确定下一次循环是否继续执行,执行contiune语句不会使整介循环终止;③循环体内使用break语句会使循环提前终止;④从多层循环嵌套中退出时,可以使用90t0语句或者break语句。
13.B解析:内模式(InternalSchemA)又称物理模式(PhysicalSchemA),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径。数据库系统的数据具有高共享性和低冗余性,但不能完全避免数据冗余;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。
14.A函数返回值为指针变量指向的数据,该数据已被定义为整型。故本题答案为A选项。
15.D
16.AC语言程序是由函数组成的,所以B选项错误。C语言函数可以单独进行编译,所以C选项错误。每个C语言程序必须包含一个main函数,但不是每个C语言程序文件都必须有一个main函数,用户单独编写的某个函数也可以存储为一个C语言程序文件,所以D选项错误。故本题答案为A选项。
17.D
18.B
19.C
20.C整型变量x、y的初值都为1,“x++,y++,++y”是一个逗号表达式,程序执行“z=x++,y++,++y”之后,x的值为2,y的值为3,z取逗号表达式中的第二个表达式的值,为1。因此本题的答案为选项C。
21.11解析:首先计算if语句后面的表达式,根据运算符的优先级可知,先算“a!=0”,该值为1,再把1赋值给p,结果为1(真),执行其后的printf语句,输出的值为1。
22.
23.函数f()通过for循环逐个比较数组x中的元素,循环结束后,p0和p1分别表示最大值和最小值在数组中的下标位置,然后按照题意将最大值x[p0]和数组的最后一个元素x[n-1)交换位置,再将最小值x[p1]和第一个元素(x[0])进行交换,所以空白处应该填入x[0]。\r\n\r\n
24.共享性共享性解析:数据库系统中的数据能被不同的应用程序使用,实现了数据的高度共享,从而降低了数据的冗余,这也是数据库的主要目的。
25.D
26.xx*x+1或1+x*xx\r\nx*x+1或1+x*x解析:题目中要求从x=0开始将f(x)的值累加起来,直到x=10。在SunFun()函数中用了一个for循环,每循环一次将f(x)累加到s中,所以在本题的第一个空格处我们应该填x,然后x+1,共循环10次。F()函数的功能应该是求数学表达式f(x)的值,所以其返回值应该为x*x+1。
27.DEBFCA
28.a.next=aba.next=ab解析:选项A)中,指针变量q保存的就是变量b的地址,选项B)中的p是指针变量,应该是p->next=&b;在选项D)中,用*运算符取出结构体变量,并且保存的就是b的地址。
29.s%10*s1+t
30.继承继承解析:在面向对象的程序设计方法中,某些属性和方法是可以共享的,由于类从父类中继承而来,这样提高了软件的可重用性。
31.链式存储结构链式存储结构
32.装配程序装配程序
33.structnode*structnode*解析:本题中的结构类型名为structnode,所以空白处应填:structnode*。即定义一个指向自身的结构体指针。
34.doublemax或externdoublemaxdoublemax或externdoublemax解析:函数声明是对所用到的函数的特征进行必要的声明,编译系统以函数声明中给出的信息为依据,对调用表达式进行检测,以保证调用表达式与函数之间的参数正确传递.函数声明的一般格式为:类型标识符函数名(类型标识符形参,…);这些信息就是函数定义中的第一行的内容。本题中main()函数需要调用max()函数,在main()之前就需要声明函数max(),并且可以用extern说明符使变量的作用域扩充到需要用到它的函数,所以,填写doublemax(或externdoublemax)。
35.adghadgh解析:函数strcpy是字符串复制函数。第一次将'adc'复制到以&s[0]为起始地址的存储空间中,第二次将'def'复制到以&s[1]为起始地址的存储空间中,“dc”将被覆盖,变为“adef”,第三次将“gh”复制到以&s[2]为起始地址的存储空间中,“ef”将被覆盖,变为“adgh”。
36.实体完整性实体完整性解析:关系模型中的完整性是指数据库中数据的正确性和一致性。为了维护数据库中数据与现实世界的一致性,关系数据库的插入、删除、修改操作必须遵循3类完整性规则。关系模型的3类完整性指的是实体完整性、参照完整性和用户定义的完整性。
37.3131解析:在函数调用时,形参值和改变,不会改变实参的值。
38.s[i]!='\0's[i]!='\\0'解析:本题是要删除字符数组中和c一样的字符,for循环实现的功能是逐个读出字符数组s中的元素,并和字符c做比较,直到遇到字符串结束标志'\\0',结束循环,所以横线上应该填s[i]!='\\0'。
39.rewind()或fseek()rewind()或fseek()
40.ch++或ch=ch+1或++chprintf("\n")或prinff("\015")ch++或ch=ch+1或++ch,\r\nprintf('\\n')或prinff('\\015')解析:程序中使用了两层for循环,外循环的作用是控制行数,内循环的作用是控制每行的列数,在内循环中首先输出当前字符(从\'A\'开始),[6]中应填ch++,使ch中的字符变为要输出的下一个字符。每输出一行就需换一次行,所以[7]处应填pfintf('\\n')。
41.A解析:在C语言中,所有函数的定义,包括主函数main在内,都是平行的。也就是说,在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。但是函数之间允许互相调用.也允许嵌套调用,习惯上把调用者称为主函数。调用函数还可以调用自己,称为递归调用。main函数是主函数,它可以调用其他函数,而不允许被其他函数调用。因此,C程序的执行总是从main函数开始.完成对其他函数的调用后返回到main函数,最后由main函数结束整个程序。一个C源程序必须有也只能有一个main函数。
42.A解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。
43.D解析:选项A)是一个合法的赋值表达式,但结尾没加分号,所以它不是一个赋值语句;选项B)是一个逗号表达式,也因为结尾没有加分号而不是合法的赋值语句,选项C)是一个算术表达式,虽然有分号,但这个表达式没有赋值操作,因此,也不是一条赋值语句。
44.B解析:本题考查C语言标识符的命名.在C语言中,合法的标识符由字母,数字和下划线组成,并且第一个字符必须为字母或者下划线,long为C语言的保留字,不能作为用户标识符,故选顷A错误.3Draax开头的第一个为数字,而C语言规定,第一个字符必须为字母或者下划线,故选项C错误;A.dat中的字符“.”不符合C语言中用户标识符只能由字母、数字和下划线组成的规定,故选项D错误.只有迭项B正确。
45.B解析:执行p=&a;后,p指向整数a,*p即p的目标变量,也就是a;所以a=*p+b等价于a=a+b,可知a的值最终为11。
46.D在最坏情况下,冒泡排序和快速排序的比较次数都是n(n一1)/2。【知识拓展】所谓冒泡排序,就是将相邻的两个数据比较,如前面的数据大于后面的,则位置互换。这样不停地比较、互换,其实就是把大的数往后排,小的数往前排(就像冒泡一样冒出来了)。
47.C解析:第1个printf函数,格式说明的个数是2,而输出项的个数是3,所以对于多余的输出项k不予输出;第2个pfintf函数,有两个%说明,第1个%后面的字符要原样输出。注意:本题考查printf函数的格式。①“%x”和“%o”分别表示以十六进制和八进制无符号型输出整型数据(不带前导Ox或O):②printf函数中格式说明符之前插入的任何字符都原样输出:⑧格式说明与输出项的个数也要相等,如果格式说明的个数少于输出项的个数,则对于多余的输出项不予输出。
48.D解析:这是一个给结构体数组赋初值的问题。它的赋初值过程与上述二维数组赋初值很相似。只是这里的大括号中的初始值没有按行给出(也即没有用大括号分开来),在这种情况下,初始值将按数组的各个元素在内存中的存放次序逐个逐个地赋给各元素。现在结构体数组的各个元素在内存中的存放次序是这样的:class[0].name,class[0].age,class[1].name,class[1].age…,由此可以知道,包含字母‘M’的字符串'Mary'赋值给了元素class[2].name,则与字符‘M’先相对应的表达式是class[2].name[0]。
49.B解析:系统设计的质量主要反映在模块的独立性上.评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚.一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。综上所述,选项B的答案正确。
50.AC语言规定:else总是与离自己前面最近的if配对,程序中if(a>b)不成立,因此执行prinff("%d\\n",d);,输出结果为2。
51.DD)【解析】数据库管理员(DataBaseAdministrator,DBA)是指对数据库的规划、设计、维护、监视等的人员,其主要工作如下:数据库设计。DBA的主要任务之一是数据库设计,具体地说是进行数据模式的设计;数据库维护。DBA必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与维护;改善系统性能,提高系统效率。DBA必须随时监视数据库的运行状态,不断调整内部结构,使系统保持最佳状态与效率。
52.D解析:a是一个2行3列的二维数组,行下标和列下标都是从0开始的,数组中的元素为a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下标最大值为1,列下标最大值为2,因此选项A、B、C都是错误的引用。计算选项D中数组元素的下标后得a[0][0],为正确的引用。
53.B解析:选项B中初值列表中的初值个数超过了数组包含的元素的个数。
54.C解析:二维数组的初始化及库函数strlen()的应用,主函数中定义了一个二维字符数组并初始化,初始化后的结果为str[0]=“Hello”、str[1]=“Beijing”,然后定义一个字符指针变量p并让它指向数组的首地址,即指向str[0],而在C语言中无论是一维还是多维数组,其元素在内存中都是顺序存放的,故p+20后指针指向str[1],所以strlen(p+20);返回的是str[1]中的字符串的长度,即Beijing的长度为7,所以最后输出的值为7。
55.B解析:结构体类型的变量在程序运行期间要作为一个整体占用连续的内存单元。
56.B解析:strcpy()函数的功能是将字符串q复制到从p[3]位置开始的存储单元,同时复制字符串结束标志'\\0'到p[6]中。函数strlen()返回的是字符串中不包括'\\0'在内的实际长度,故本题答案为B)
57.C解析:如果没有指明函数值类型,则默认函数返回值的类型为int型。注意:顺序程序结构的执行过程。
58.B解析:程序运行初始时,x被赋值7,y被赋值3,因为y为整型变量,因此表达式:y=x/y=7/3=2。
59.D解析:在程序设计过程中,一个很重要的环节是首先确定实现各种功能的算法,并且用某种工具将它精确地表达出来。流程图是其中的工具之一。因此,程序设计的过程应是先画出流程图,然后根据流程图编制出程序。因此,选项A中的说法是错误的。程序中的注释是为了提高程序的可读性,使程序易于理解、易于维护,注释必须在编制程序的同时加入。因此,选项B和C中的说法也都是错误的。
60.C解析:因为在函数fun(intx)中,如果参数x等于0或1时,返回值3。否则p=x-fun(x-2)这是一个递归函数,所以在主函数调用fun(7)时,其过程为:fun(7)=7-fun(5)=7-(5-fun(3))-7-(5-(3-fun(1)))=7-(5-(3-3))=7-5=2,所以最后的输出结果为2。
61.B
62.A选项B)的正确写法应为p=&n;,选项c)的正确写法应为seanf(”%d”,p);,选项D)的正确写法应为prinff(”%dXn”,*p);。故本题答案为A)。
63.CC。【解析】E—R图也即实体~联系图(EntityRelationshipDiagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型,构成E—R图的基本要素是实体型、属性和联系,其表示方法为:实体型(Entity):用矩形表示,矩形框内写明实体名;属性(Attribute):用椭圆形表示,并用无向边将其与相应的实体连接起来;联系(Relationship):用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。
64.Dif中的语句组包含两条语句,但是没有花括号,所以编译有错。如果这个时候没有else,就理解成语句组只有一条语句,编译将是正确的。
65.C
66.B当i=0时,i<2成立,执行第一个for循环x自加为1,接着执行第二个for循环;j=0时j<=3成立,此时if不成立,执行x++后,x为2;接着j=1时,i<=3成立,继续循环,此时if成立,continue是跳出本次循环,继续下一次循环,不再执行x++了;接着j=2时,j<=3成立,此时if不成立,执行其后的语句;当j=4时,退出第二个循环,接着执行循环外部的x++,x为4;当i=1时,i<2成立,执行第一个循环,x=5,此时接着执行循环外部的语句,即第二个循环;j=0时j<3成立,此时if不成立,x++后,x为6,接着j为1时,j<=3成立,继续循环,此时if成立,不再执行x++了;接着J=2时,j<=3成立,此时if不成立,执行其后的x++,x为7;i=3时,j<=3成立,此时if成立,不再执行其后的语句了;当j=4时,退出第二个循环,执行循环外部的语句,最终x为8,故选B选项。
67.D
68.C解析:带参数宏的格式为:#define标识符(形参表)形参表达式。其功能是:在预处理程序中将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。
69.B栈是按“先进后出”的原则组织数据的,数据的插入和删除都在栈顶进行操作。
70.Bc语言中整型变量分为4种,基本型int,短整型shortint,长整型longint和无符号型(unsignedint、un-signedshort、unsignedlong)。因此B)选项不属于c语言的类型。
71.B解析:本题考查数据结构中有关算法的基本知识和概念。数据的结构,直接影响算法的选择和效率。而数据结构包括两方面,即数据的逻辑结构和数据的存储结构。因此,数据的逻辑结构和存储结构都影响算法的效率。选项A的说法是错误的。算法的时间复杂度是指算法在计算机内执行时所需时间的度量;与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。因此,选项B的说法是正确的。
数据之间的相互关系称为逻辑结构。通常分为四类基本逻辑结构,即集合、线性结构、树型结构、图状结构或网状结构。存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机中有两种,即顺序存储结构和链式存储结构。可见,逻辑结构和存储结构不是一一对应的。因此,选项C的说法是错误的。
有时人们为了提高算法的时间复杂度,而以牺牲空间复杂度为代价。但是,这两者之间没有必然的联系。因此,选项D的说法是错误的。
72.A"\0"表示空字符,strlen函数求得的是不包括字符串结束符\0的长度。故选A。
73.A
74.D引用形式有以下三种:①结构体变量.成员名;②(*p).成员名;③p→成员名。所以A、B、C答案都是正确的。故本题答案为D。
75.A
76.DC语言中有规定,函数定义不能再有其他函数,因为函数有返回值,那么函数调用可以嵌套和递归,也可以作为一个函数的实参,但是不能作为一个函数的形参,这是在对一个函数的定义。
77.A\n关系数据库系统采用关系模型作为数据的组织形式。在关系模型中用二维表来表示实体及实体问的联系。
\n
78.C
\n本题考查do-while循环。先执行do的内容,也就是printf语句,x=x-4=1,输出1,判断while循环的控制条件,--x=0,则!(--x)为非零,循环条件成立,执行下一次循环;x=x-4=-4,输出-4,判断while循环的条件,--X=-5,则!(--x)为零,循环条件不成立,结束循环。
79.B主函数中首先定义了一个3行2列的数组a,初始时各元素的值为0。定义了一个指向数组的指针ptr[2],并用该指针指向数组a,因为该指针为指向有2个元素的数组的指针,故只能指向数组a的前2行,虽然在第一个for语句中有语句ptr=a+2,指向数组a的第3行,并对该指针所指的数组赋值,实际上这条语句是无效的,超过了指针ptr的定义范围。对指针输入1,2,3时,只有1和2有效,通过指针ptr只能更改数组的前2行元素的数据。ptr=a指向a[0],即第1行的起始地址。ptr=a+1指向a[1],即第2行的起始地址。
后面的2个for循环是将数组a进行输出,最后结果为
10
20
00
80.D继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。
81.
【解析】由主函数的调用可知,函数proc()没有返回值。因此,“proc(char*pstr[6])”应改为“voidproe(char*pstr[6])”。题目中要求按字符串由小到大的顺序进行排序,需要比较每一个字符串的大小,因此,“if(strcmp(*(pstr+i),pstr+j)>0)”应改为“if(strcmp(*(pstr+i),*(pstr+j))>O)”。顺序不对的2个字符串要互换其指针所指向的地址,赋值的两个变量其类型应该相同,因此,“*(pstr+i)=pstr+j;”应改为“*(pstr+i)=*(pstr+j);”。
82.\n\tcharch;
\ninti,m,n;
\ni=0:
\nm=n=strlen(str)-1;//求字符串str长度
\nwhile(i<(n+1)/2)//循环逆置交换
\n{
\nch=str[i];
\nstr[i]=str[m];
\nstr[m]=ch:
\ni++;
\nm--;
\n}
\n【解析】在fun函数中,首先求行字符串的长度,然后通过循环进行字符交换。要注意的是,如果字符串长度是奇数,则最中间的元素在逆置前后的位置是没有改变的。\n2021-2022年辽宁省朝阳市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若有定义语句“doublea,*p=&a;”,下列叙述中错误的是()。
A.定义语句中的“*”是一个间址运算符
B.定义语句中的“*”是一个说明符
C.定义语句中的“p”只能存放double类型变量的地址
D.定义语句中*p=&a”把变量a的地址作为初值赋给指针变量p
2.有以下程序
intfun1(doublea){returna*=a;}
intfun2(doublex,doubley)
{doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);……}
程序执行后变量w中的值是A.5.21B.5C.5.0D.0.0
3.
4.以下说法错误的是()。
A.散列法存储的思想是由关键字值决定数据的存储地址
B.散列表的结点中只包含数据元素自身的信息,不包含指针
C.负载因子是散列表的一个重要参数,它反映了散列表的饱满程度
D.散列表的查找效率主要取决于散列表构造时选取的散列函数和处理冲突的方法
5.设一棵二叉树共有50个叶子结点(终端结点),则共有___个度为2的结点。
A.25B.49C.50D.51
6.
7.
8.
9.软件工程的出现是由于()。A.A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展
10.设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树的结点个数为n,森林F中第一棵树的结点的个数是()。
A.m-nB.m-n-1C.n+1D.不能确定
11.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
12.下列叙述中正确的是()。
A.只能在循环体内和switch语句体内使用break语句
B.eotinue语句的作用是结束整个循环的执行
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用got0语句
13.索引属于()。
A.模式B.内模式C.外模式D.概念模式
14.已定义以下函数“intfun(int*p){return*p;}”,fun函数的返回值是()。
A.—个整数B.不确定的值C.形参p中存放的值D.形参p的地址值
15.
16.以下叙述中正确的是()。
A.C语言函数可以嵌套调用,例如:fim(fun(X))
B.C语言程序是由过程和函数组成的
C.C语言函数不可以单独编译
D.C语言中除了main函数外,其他函数不可作为单独文件形式存在
17.若有定义语句:“intyear=2009,*p=&year;”,以下不能使变量year中的值增至2010的语句是()。
A.*p+=1;B.(*p)++;C.++(*p);D.*++P
18.若一棵二叉树具有10个出度为2的结点,则在该二叉树中,出度为0的结点个数是()
A.9B.11C.12D.不确定
19.最小堆[0,3,2,5,7,4,6,8],在删除堆顶元素0之后,其结果是()
A.[3,2,5,7,4,6,8]
B.[2,3,5,7,4,6,8]
C.[2,3,4,5,7,8,6]
D.[2,3,4,5,6,7,8]
20.有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序运行后的输出结果是()。A.2.3.3B.2.3.2C.2.3.1D.2.2.1
二、2.填空题(20题)21.若有以下程序:
main()
{int,p,a=5;
if(P=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是【】。
22.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】(要求形参名为b)。main(){doubles[10][22];intn;……fun(s);……}
23.以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i{i=x[m];p0=m;}
elseif(x[m]<j{j=x[m];p1:m;}
}
t=x[p0];x[p0]=x
24.数据库系统的主要特点为数据集成性、数据的高______和低冗余性、数据独立性和数据统一管理和控制。
25.设有下面的程序段:chars[]="china";char*p;p=S;则下列叙述正确的是
26.以下程序通过函数SunFun求这里f(x)=x2+1,由F函数实现。请填空。
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{return(【】);}
27.设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为【】。
28.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是【】。
structnode
{chardata;
structnode*next;}a,b
29.以下程序的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。请填空。#include<stdio.h>main(){longs,t,s1=10;pfintf("\n.Pleaseenters:");scanf("%1d",&s);t=s%10;while(s>0){s=s/100;t=();s1=s1*10;}printf("Theresultis:%1d\n",t);}
30.在面向对象方法中,类之间共享属性和方法的机制称为______。
31.若线性表的长度经常发生变化,那么该线性表应采用的存储结构是【】。
32.汇编程序和编译程序翻译的目标程序需经【】连接成可执行的程序。
33.以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。
structnode
{intinfo;
【】link;};
34.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
______(double,double);
main()
{doublex,y;
scanf("%lf%lf",&x.&y);
printf("%lf\n…,max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a=B);}
35.若有如下程序:
#include"stdio.h"
main()
{chars[30];
Strcpy(&S[0],"adc");
Strcpy(&S[1],"def");
strcpy(&S[2],"gh");;
printf("%S\n",s);
则程序运行后的输出结果是【】。
36.关系模型的3类完整性指的是【】、参照完整性、用户定义的完整性。
37.以下程序的输出结果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
38.下列函数从字符数组s[]中删除和c一样的字符,请在下面横线处填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!='c')s[j++]=s[i];s[j]="\0";}
39.在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是【】函数。
40.以下程序的功能是输入任意整数给n后,输出n行从大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:
ABCDE
FCHI
JKL
MN
O
请填空完成该程序。
#include<stdio.h>
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);
【】;
}
【】;
}
elseprintf("nistoolarge!\n");
prinff("\n");
}
三、1.选择题(20题)41.对于一个正常运行的C语言程序,以下叙述中正确的是()。
A.程序的执行总是从main函数开始,在main函数结束
B.程序的执行总是从程序的第一个函数开始,在main函数结束
C.程序的执行总是从main函数开始,在程序的最后一个函数中结束
D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
42.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码
43.下列选项中合法的赋值语句是()。
A.a=b=34B.a=34,b=34C.i-1;D.m=(int)(x+y);
44.以下选项中合法的用户标识符是A.longB._2TestC.3DmaxD.A.dat
45.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。
A.12B.11C.10D.编译出错
46.对于长度为n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是()。
A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2
47.若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为()。ch='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
48.有如下定义structperson{charname[9];intage;};structpersonclass[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};根据上述定义,能输出字母M的语句是
A.printf("%c\n",class[3].name);
B.printf("%c\n",class[3].name[1]);
C.printf("%c\n",class[2].name[1]);
D.printf("%c\n",class[2].name[0));
49.为了使模块尽可能独立,要求
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽最强
50.有以下程序:#include<stdio.h>main()inta=3,b=4,c=5,d=2;if(a>b)if(b>c)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",d);程序运行后的输出结果是()。
A.2B.3C.43D.44
51.下列选项中,不属于数据管理员(DBA.职责的是()。
A.数据库维护B.数据库设计C.改善系统性能,提高系统效率D.数据类型转换
52.若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]
53.以下不正确的定义语句是()。
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5]={O,1,3,5,7,9};
C.charc1[]={'1','2','3','4','5'};
D.charc2[]={'\x10','\xa','\x8'};
54.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"},*p=str;printf("%d\n",strlen(p+20));}程序运行后的输出结果是______。
A.0B.5C.7D.20
55.C语言结构体类型变量在程序运行期间
A.TC环境在内存中仅仅开辟一个存放结构体变量地址的单元
B.所有的成员一直驻留在内存中
C.只有最开始的成员驻留在内存中
D.部分成员驻留在内存中
56.有以下程序
#include<string.h>
main()
{charp[20]={′a′,′b′,′c′,′d′},q[]="abc",r[]="abcde";
strcat(p,r);strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
}
程序运行后的输出结果是
A.9B.6C.11D.7
57.阅读下面程序段,则执行后的结果为#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
58.下面程序的输出结果是()。#include<stdio.h>main(){intx=7,y=3;printf("%d",y=x/y);}
A.0B.2C.3D.不确定的值
59.程序设计方法要求在程序设计过程中()。
A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图
B.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释
C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释
D.以上三种说法都不对
60.有下列程序:fun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}执行后的输出结果是()。
A.7B.3C.2D.0
四、选择题(20题)61.
62.有以下程序该程序试图通过指针p为变量rl读人数据并输出,但程序有多处错误,以下语句正确的是()。
63.在E—R图中,用来表示实体联系的图形是()。
A.椭圆形B.矩形C.菱形D.三角形
64.有以下程序:
程序输出结果是()。
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错
65.
66.有以下程序:main{inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j=0;j<=3;j++)x++;}x++;}printf("x=%d\n",x);}程序执行后的输出结果是()。A.x=4B.x=8C.x=6D.x=12
67.
68.#define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为()。
A.#definef(x)5*x*x+5*x+5
B.#definef5*X*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)f(x)
69.下列关于栈的叙述正确的是()。
A.栈按“先进先出”组织数据,B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据
70.以下选项中不属于c语言的类型的是()。
A.unsignedlongint
B.longshort
C.unsignedint
D.signedshortint
71.下列叙述中正确的是()。A.算法的效率只与问题的规模有关,而与数据的存储结构无关
B.算法的时间复杂度是指执行算法所需要的计算工作量
C.数据的逻辑结构与存储结构是一一对应的
D.算法的时间复杂度与空间复杂度一定相关
72.若有定义语句:“charsE10]="1234567\0\0";”,则strlen(s)的值是()。
A.7B.8C.9D.10
73.
74.有以下说明和定义语句
structstudent
{
intage;charnum[8];
};
structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};
structstudent*p=stu;
以下选项中引用结构体变量成员的表达式错误的是
A.(p++)->numB.p->numC.(*p).numD.stu[3].age
75.
76.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。
A.函数调用可以嵌套和递归
B.函数调用可以作为一个函数的实参
C.函数调用可以出现在表达式中
D.函数调用可以作为一个函数的形参
77.在关系数据库中,用来表示实体之间联系的是()。
A.二维表B.E—R图C.元组D.文件
78.
有下列程序:
main
{intx=5;
do
{printf("%d",X-=4);)
while(!(--x));
}
程序的输出结果是()。
A.1B.20C.1-4D.死循环
79.有以下程序
main()
{inta[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{ptr=a+i;scanf("%d",ptr);ptr++;}
for(i=0;i<3;i++)
{for(j=0;j<2;j++)printf("%2d",a[i][j]);
printf("\n");
}
}
若运行时输入123<回车>,则输出结果为
80.面向对象方法中,继承是指()。
A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编一个函数fun(ohlr*str),该函数的功能是把字符串中的内容逆置。
例如,字符串中原有的字符串为asdf9,则调用该函数后,串中的内容为9fdsa。
请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。
试题程序:
#include<string.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidfun(char*str)
{
}
voidmain
{
chara[N];
FILE*out:
printf("Enterastring:");
gets(a);
printf("Theorigiralstringis:");
puts(a);
fun(a):
printf("Thestringaftermodified:");
puts(a);
strcpy(a,"Welcome!");
fun(a);
ut=fopen("outfile.dat","w");
fprintf(out,"%s".a);
fclose(out);
}
参考答案
1.A变量定义语句“doublea,*p=&a;”,“*”是一个指针运算符,而非间址运算符。故本题答案为A选项。
2.C(33)C)解析:题中变量w的定义为double型,函数fun2()的定义为int型,按照各类数值型数据间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 园林道路铺设与景观美化技术方案
- 装修施工现场天然石材检测方案
- 渔区防雷及接地方案
- 2026年上世纪建筑照明的演变与趋势
- 2026年适应性材料的前沿研究与应用
- 2026年过程控制技术的发展趋势与展望
- 2026年定制化交通服务与规划方案
- 2026年微生物培育中的常见问题及解决方案
- 2026浙江深泓水利工程有限公司招聘第一批项目制用工人员6人备考题库带答案详解(研优卷)
- 2026新疆克州柔性引进紧缺人才招募82人备考题库及参考答案详解(突破训练)
- 大学美育(上海电机学院)知到智慧树网课答案
- 2025年西安市事业单位招聘考试教师招聘考试语文学科专业知识试卷(初中语文教师)
- 行车工考试题库及答案
- 2025内蒙古能源集团智慧运维公司运维人员社会招聘105人笔试参考题库附带答案详解
- 2026年中考数学压轴题专项练习-阿基米德折弦定理(学生版+名师详解版)
- 电影欣赏社团课件
- 2025年辽宁省交通高等专科学校单招职业技能考试试题及答案解析
- 2025年凉山州中考语文试题答案解析卷
- 《智慧物流概论》试卷及答案 共2套
- 税务讲解社保费课件
- T/CI 467-2024复合集流体(铜箔)
评论
0/150
提交评论