版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年山东省日照市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下能正确定义一维数组的选项是()。
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";
2.下列叙述中错误的是()。A.在数据库系统中,数据的物理结构必须与逻辑结构一致,
B.数据库技术的根本目标是要解决数据的共享问题
C.数据库设计是指在已有数据库管理系统的基础上建立数据库
D.数据库系统需要操作系统的支持
3.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序运行后的输出结果是(选项D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No
4.下列程序的输出结果是#include"stdio.h”"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
5.若要求从键盘读入含有空格字符的字符串,应该使用函数______。A.getc()B.gets()C.getchar()D.scanf()
6.下列程序的运行结果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}
A.2B.3C.5D.4
7.输入序列为ABC,输出为CBA时,经过的栈操作为()。
A.push,pop,push,pop,push,pop
B.push,push,push,pop,pop,pop
C.push,push,pop,pop,push,pop
D.push,pop,push,push,pop,pop
8.设R是一个2元关系,有3个元组,S是一个3元关系,有3个元组。如T=R×S,则T的元组的个数为()。A.6B.8C.9D.12
9.有定义语句intb;charc[10];,则正确的输入语句是______。A.scallf("%d%s",&b,&c);
B.scallf("%d%s",&b,c);
C.scanf("%d%s",b,c)
D.scanf("%d%s",b,&c);
10.有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是A.A.1267B.1256C.1278D.1245
11.一个长度为99的循环链表,指针A和指针B都指向了链表中的同一个节点,A以步长为1向前移动,B以步长为3向前移动,一共需要同时移动多少步A和B才能再次指向同一个节点()。
A.99B.100C.101D.49E.50F.51
12.有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen(“d1.dat”,“w”);for(i=0;i<3;i++)fprintf(fp,“%d”,a[i]);fprintf(fp,“\n”);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d”,&n);fclose(fp);printf(“%d\n”,n);}程序的运行结果是()。
A.321B.12300C.1D.123
13.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*j;}}printf(“m=%d\n”,m);}程序运行后的输出结果是()A.m=4B.m=2C.m=6D.m=5
14.若有定义“inta=1234,b=-5678;”,用语句“printf("%+-6d%+-6d",a,b);”输出,以下正确的输出结果是()。
A.+1234-5678(中间有一个空格,最后有一个空格)
B.+1234-5678(最前面有一个空格,中间有一个空格)
C.+-1234+-5678(最前面和最后均无空格)
D.1234-5678(中间有两个空格,最后有一个空格)
15.下列叙述中正确的是()。
A.一个逻辑数据结构只能有一种存储结构
B.逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存诸结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存诸结构影响数据处理的效率
16.有以下程序:#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa,10);for(i=0;i<10;i++)printf("%d.",aa[i]);printf("\n");}其输出结果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.9,2,7,4,5,6,3,8,1,10,
D.1,10,3,8,5,6,7,4,9,2,
17.链表不具有的特点是()。
A.插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比
18.有以下程序:
程序运行时,输入的值在哪个范围才会有输出结果()。
A.不等于10的整数
B.大于3且不等于l0的整数
C.大于3或等于l0的整数
D.小于3的整数
19.以下不完整的程序拟实现调用getmax函数,找出4个变量中最大的一个:#include<stdio.h>intgetmax(intx,inty){returnx>yx:y;}voidmain(){inta,b,c,d,mx;scanf(“%d%d%d%d”,&a,&b,&c,&d);printf(“max=%d\n”,________);}以下选项若填入下划线处,不能实现上述功能的是()。
A.getmax(getmax(getmax(a,b),c),d)
B.getmax(getmax(a,b),getmax(c,d))
C.getmax(a,getmax(b,getmax(c,d)))
D.mx=(getmax(a,b),getmax(c,d))
20.
二、2.填空题(20题)21.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,______是用户的数据视图,也就是用户所见到的数据模式。
22.下列程序的运行结果为【】。
main(){inti=lO,*p,*func();
p=&i;
printf("%d",*p);
p=func(p);
printf("%d\n",*p)
}
int*func(px);
int*px;
{inttemp=20;
px=&temp;
return(px);
}
23.以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。
strcen(chara[],charb[])
{intnum=0,n=0;
while(*(a+num)!=【】)num++;
while(b[n]){*(a+num)=b[n];num++;【】;
return(num);
}
24.设Y是int型变量,请写出判断Y为奇数的关系表达【】。
25.设有如下宏定义
#defineMYSWAP(z,x,y)
{z=x;x=y;y=z;}
以下程序段通过宏调用实现变量a,b内容交换,请填空。
floata=5,b=16,c;
MYSWAP(【】a,b);
26.下列语句能循环______次。
ints=12;
while(s);
--s;
27.测试的目的是暴露错误,评价程序的可靠性;而______得目的是发现错误的位置并改正错误。
28.数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。
29.计算机病毒除有破坏性、潜伏性和激发性外,还有一个最明显的特性是【】
30.以下函数的功能是删除字符串s中的所有数字字符。请填空。
vioddele(char*s)
{intn=0,i;
for(i=0;s[i];i++)
if(______)
s[n++];s[i];
s[n]=______;
}
31.以下程序中函数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[n-1];x[n-1]=t;
t=x[p1];x[p1]=【】;【】=t;
}
main()
{inta[10],u;
for(u=0;u<10;u++)scanf("%d",&a[u]);
f(a,10);
for(u=0;u<10;u++)printf("%d",a[u]);
printf("\n");
}
32.以下程序的输出结果是【】。
inta=1234;
printf("%2d\n",a);
33.下面程序的运行结果是______。
main()
{inti=0,j=10,k=2,s=0;
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
34.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于【】的联系。
35.无论对于顺序存储,还是链接存储的栈和队列来说,进行插入或删除运算的时间复杂性均相同,则为【】。
36.下列程序的输出结果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
37.以下程序的输出结果是______。
main()
{chars[]="abcdef";
s[3]='\0';
printf("%s\n",s);
}
38.瀑布模型将软件生存周期划分为【】、开发和运行3个阶段。
39.以下程序运行后的输出结果是______。
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));
}
40.以下程序的输出结果是______。
main()
{inta[10]={10,20,30,40,50,60,70,80,90,100},*p;
p=a+2;printf("%d\n',(p+2)[3]);
}
三、1.选择题(20题)41.关系数据库管理系统能实现的专门关系运算包括()。
A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表
42.字长为16位的计算机是指______。
A.该计算机能够处理的最大数不超过16
B.该计算机中的CPU可以同时处理16位的二进制信息
C.该计算机的内存量为16MB
D.该计算机每秒钟所能执行的指令条数为16MIPS
43.下列叙述中正确的是______。
A.数据库是一个独立的系统,不需要操作系统的支持
B.数据库设计是指设计数据库管理系统
C.数据库技术的根本目标是要解决数据共享的问题
D.数据库系统中,数据的物理结构必须与逻辑结构一致
44.执行下面的程序段intx=40;charz='B';intB;B=((x&0xff)&&(z>'a'));后,B的值为()
A.0B.1C.2D.3
45.以下程序的输出结果是()。#include<stdio.h>intm=13;intfun(intx,inty){intm=2;return(x*y-m);}main(){inta=7,b=6;printf("%d",fun(a,B)/m);}
A.1B.3C.7D.10
46.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
47.下面不属于软件设计原则的是()。
A.抽象B.模块化C.自底向上D.信息隐蔽
48.下列程序的输出结果是()。#include<stdio.h>f(intA){intb=0;staticintc=4;a=c++;b++;return(A);}main(){inta=2,i,c;for(i=0;i<2;i++)c=f(a++);printf("%d\n",C);}
A.4B.7C.6D.5
49.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系
50.设有如下定义:strucksk{inta;floatb;}data;int*p;若要使p指向data中的a域,正确的赋值语句是()。
A.p=&a;B.p=data.a;C.p=&data.a;D.*p=data.a;
51.有以下程序:#include<stdio.h>main(){inti=0.s=0;for(;;)if(i==3‖i==5)continue;if(i==6)break;i++;s+=i;}printf("%d\n",s);程序运行后的输出结果是()。
A.10B.13C.21D.程序进入列循环
52.有以下函数char*fun(char*p){returnp;}该函数的返回值是______。
A.无确切的值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值
53.软件开发的结构化生命周期方法将软件生命周期划分成()
A.定义、开发、运行维护
B.设计阶段、编程阶段、测试阶段
C.总体设计、详细设计、编程调试
D.需求分析、功能定义、系统设计
54.以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
55.下列有关数据库的描述,正确的是A.数据处理是将信息转化为数据的过程
B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变
C.关系中的每一列称为元组,一个元组就是一个字段
D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字
56.软件系统生命周期的第一个阶段是______。
A.软件分析阶段B.软件设计阶段C.软件运行阶段D.软件维护阶段
57.若有以下定义和语句structa{intn,m;};structast[3]={{1,20},{2,19},{3,21}};structa*p=st;则以下错误的引用是
A.(p++)->n;B.st[0].n;C.(*p).n;D.p=&st.m;
58.若有定义语句:floatx[6];则以下对x数组元素的正确引用形式是()。
A.x+2B.&x[6]C.*(x+2)D.*&x[6]
59.以下程序段的输出为()staticchara[]="language",b[]="progratne";char*ptr1,*ptr2;intk;ptr1=a;ptr2=b;for(k=0;k<7;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));
A.gaeB.gaC.languageD.有语法错误
60.以下程序段的执行结果为#definePLUS(X,Y)X+Ymain(){intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);printf("SUM=%d",sum);}
A.SUM=9B.SUM=12C.SUM=18D.SUM=28
四、选择题(20题)61.
62.最初的计算机编程语言是()。
A.机器语言B.汇编语言C.高级语言D.低级语言
63.以下程序的输出结果是______。#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);}
A.9B.6C.36D.18
64.下面程序的功能是输出以下形式的金字塔图案。
main()
{
inti,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)
printf("");
for(j=1;j<=______;j++)
printf("*");
printf("\n");
}
}
在下画线处应填入的是
A.iB.2*i-1C.2*i+1D.i+2
65.有以下函数定义:
voidfun(intn,doublex){……}
若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用的语句是
A.fun(inty,doublem);B.k=fun(10,12.5);
C.fun(x,n);D.voidfun(n,x);
66.(74)用链表表示线性表的优点是()
A.便于插入和删除操作
B.数据元素的物理顺序与逻辑顺序相同
C.花费的存储空间较顺序存储少
D.便于随机存取
67.有以下程序:
#include<stdio.h>
main()
{inta=0,b=0,c=0;
c=(a=a=5);(a=b,b+=4);
printf("%d,%d,%d\n",a,bc);
}
程序运行后的输出结果是()。
A.0,4,5B.4,4,5C.4,4,4D.0,0,0
68.下列叙述中正确的是()。
A.只能在循环体内和switch语句体内使用break语句
B.eotinue语句的作用是结束整个循环的执行
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用got0语句
69.有以下程序:
程序运行后的输出结果是()。
A.4,5,6,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,1,2,3,
D.6,5,4,3,2,1,
70.
71.有以下程序:
#include<stdi0.h>
main()
{inta=1,b=2;
for(;a<8;a++){b+=a;a+=2;)
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是()。
A.9,18
B.8,11
C.7,11
D.10,14
72.
73.已知数据表A中每个元素距其最终位置不远,为了节省时间,应采用的算法是()。
A.堆排序B.直接插入排序C.快速排序D.直接选择排序
74.
75.(20)数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计
B.模式设计和内模式设计
C.内模式设计和物理设计
D.结构特性设计和行为特性设计
76.下列特征中不是面向对象方法的主要特征的是()。
A.多态性B.继承C.封装性D.模块化
77.
78.
若有运算符:>、一、<<、%、sizeof,则它们按优先级(由高至低)的正确排列顺序为()。
A.%、sizeof、>、<<、=
B.sizeof、%、>、=、<<
C.sizeof、<<、>、%、=
D.sizeof、%、<<、>、=
79.(24)对建立良好的程序设计风格,下面描述正确的是()
A.程序应简单、清晰、可读性好
B.符号名的命名要符合语法
C.充分考虑程序的执行效率
D.程序的注释可有可无
80.
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是找出100~m(m不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值
返回。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#defineM1000
intproc(int*S.intn)
{
inti,j,k,a,b,c;
j=0;
for(i=100;i<n;i++)
{
//****found****
k=n:
a=k%10;
k/=10;
b=k%10;
c=k/10;
if(a==b+c)
//****found****
s[j]=i:
}
returnj;
}
voidmain
{
inta[M],m,num=0,i;
do
{
printf("\nEnterm(<=1000):");
scanf("%d",&m);
}
while(m>1000);
num=proc(a,m);
printf("\n\nTheresult:\n");
for(i=0;i<num;i++)
printf("%5d",a[i]);
printf("\n\n");
}
六、程序设计题(1题)82.请编一个函数voidproc(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每行中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
参考答案
1.B数组1标从0开始,A选项中所赋值的个数超过了数组的长度;C选项中定义a为字符型变量,而不是数组,赋值错误;D选项中,整型数组不能赋字符串。
2.A解析:本题考查数据库系统的基本概念和知识。数据的逻辑结构,是数据间关系的描述,它只抽象地反映数据元素之间的逻辑关系,而不管其在计算机中的存储方式。数据的存储结构,又叫物理结构,是逻辑结构在计算机存储器里的实现。这两者之间没有必然的联系。因此,选项A的说法是错误的。
数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B的说法是正确的。
数据库设计是在数据库管理系统的支持下,按照应用的要求,设计一个结构合理、使用方便、效率较高的数据库及其应用系统。数据库设计包含两方面的内容:一是结构设计,也就是设计数据库框架或数据库结构;二是行为设计,即设计基于数据库的各类应用程序、事务等。因此,选项C的说法是错误的。
数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项D的说法是正确的。因此,本题的正确答案是选项A。
3.B本题考核的知识点是puts()函数的应用。主函数中定义了一个字符数组s并赋初值,一个字符串指针变量ps并让它指向s。程序中p+4的地址为数组第5个元素的地址,而调用put(str_adr)函数时,将从str_adr这一地址开始,依次输出存储单元中的字符,遇到第一个“\\0”时结束输出,并自动输出一个换行符。所以put(p++4)将输出n/No,put(s)将从s第一个元素开始输出到第3个元素结束(因为执行*(p4)c0语句后s中的第5个元素的值为0,而s中的第4个元素为“\\”,puts将遇到“\\0”,结束输出),即输出yes。所以,4个选项中选项B符合题意。
4.B解析:continue语句的作用是跳过本次循环体中余下尚未执行的语句,接着再一次进行循环条件的判定。当能被2整除时,a就会增1,之后执行continue语句,直接执行到for循环体的结尾,进行i++,判断循环条件。
5.B解析:函数getchar()的作用是从终端(或系统隐含指定的输入设备)输入一个字符,且只能接受—个字符(回车符也算是—个字符),所以getchar()不能用宋读入字符串。scanf()函数要求按—定的格式来输入,若同时输入多个字符串,则以空格或回车分割,所以空格不能被识别为—个字符,也就无法读入空格字符。函数gets()的作用是从终端输入—个字符串\u3000(包括空格)至字符数组,直到遇到换行符为止,所以可以用来键盘读入空格字符。
6.C解析:本题考查ifelse语句。第一个if语句,先判断条件,发现a<b条件成立,执行下列的语句;第二个if语句,先判断条件,发现b<0条件不成立,则执行与其配对的else语句,c+=1,得c=5。
7.B
8.CC。R为n元关系,有P个元组S为m元关系,有q个元组。两个关系笛卡儿积是一个n+m元的关系,元组个数是q×p。所以T的元组的个数为9个。
9.B解析:scanf函数中的“格式控制”后面应当是地址,而不是变量名。对于变量,通过地址运算符“&”求出内存中的地址;对于数组c[10],数组名c即为数组在内存中的地址。
10.D解析:putchar(c1)输出1,putchar(c2)输出2,printf(“%c%c\\n”,c5,c6)输出45。
11.A
12.D程序首先将数组a中的元素1、2、3分别写入了d1.dat文件中,再将d1.dat文件中的数据“123”整体写到变量n的空间中,所以输出的数据为123。故本题答案为D选项。
13.C第一次外循环的值为1,第一次内循环j的值为3,不满足条件执行m*=i*j即m的值为3;第二次j的值为2。不满足条件执行m*=i*j,即的值为6;第三次j的值为1,不满足条件执行m*=i*j,即m的值仍为6。第二次外循环的值2,j的值为3,满足条件执行break语句跳出循环。
14.Aprintf函数参数包括格式控制字符串和输出参数,其中格式控制字符串中除了格式控制字符外,其他字符原样输出。本题中的printf(“%+-6d%+-6d”,a,b);”,在%和格式控制字符d之间,“+”号表示输出的数字带正负号号表示输出数据向左对齐,“6”表示输出宽度,如果输出数据的宽度不够6,那么左对齐,右边补空格。所以本题输出+1234-5678(中间有一个空格,最后有一个空格)。本题答案为A选项。
15.D数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,用的存储结构有顺序和链式结构。用不同的存储结构,其处理的效率是不同的。
16.C解析:sort函数的功能实际上是对数组中奇数位置上的数进行从大到小排序。排序后的结果应该为9,2,7,4,5,6,3,8,1,10。
17.BB选项的特点是顺序存储结构的特点,即数组的特点。
18.Bif-else控制结构中,else总是与最近的未配对的if匹配。本题的执行过程为:如果输入整数小于3则不进行任何操作,否则判断该整数是否不等于l0,若为真则进行输出。因此程序输出的数据为大于3且不等于l0的整数。
19.Dgetmax函数接收两个整型变量x、y,使用条件运算符返回x和y中的较大值。main函数首先输入a、b、c、d4个整数值,然后通过调用getmax函数,输出它们的最大值。假设x、y是整数,选项A中,首先执行“getmax(a,b)”,返回a、b中的较大值X,再执行“getmax(x,c)”,返回x、c中的较大值y,最后执行“getmax(y,d)”,返回y、d中的较大值,满足题意,正确;选项B中,首先执行“getmax(a,b)”,返回a、b的较大值X,再执行“getmax(c,d)”,返回c、d中的较大值y,最后执行“getmax(x,y)”,返回x、y中的较大值,正确;选项C中,首先执行“getmax(c,d)”,返回c、d的较大值X,再执行“getmax(b,x)”,返回b、x中的较大值y,最后执行“getmax(a,y)”,返回a、y中的较大值,正确;选项D中,首先执行“getmax(a,b)”,返回a、b的较大值X,再执行“getmax(c,d)”,返回c、d中的较大值y,最后执行逗号表达式“(x,y)”,返回值为7,不满足题意。故本题答案为D选项。
20.B
21.外模式外模式解析:外模式由概念模式推导而出,给出了每个用户的局部数据描述,即数据视图。
22.1020
23.\0'n++\\0'\r\nn++解析:第1个循环是求字符串a的长度,并存储在变量num中,循环条件要控制是否取到字符串末尾的'\\0'。第2个循环通过两个变量num和n的改变,将b字符串连接到a字符串后面,并将新的字符串长度记录到num中。
24.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或不为0。本题具体做法如下:Y%2=1或Y%2!=0。
25.cc解析:该题考查以下两个知识点:
(1)用一个指定的标识符(即名字)来代表一个字符串,它的一般形式为#define标识符字符串
(2)在MYSWAP宏定义中,利用中间变量z来交换x和y的值,所以要实现a和b的交换,只需通过中间变量即可,所以,此处应填c。
26.无限无限解析:分析程序“while(s)”语句后面有一个“;”不能执行后面的语句,只是执行空语句,所以s=12保持不变,因此,没有条件限制的能循环无限次(即死循环)。
27.软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定;调试也称排错,它是一个与测试有联系又有区别的概念。具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误的位置,并改正错误。\r\n\r\n
28.概念概念
29.传染性或传播性传染性或传播性
30.s[i]<'0'‖s[i]>9或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))isdigit(s[i])==0或s[i]>'9'‖s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'!(*(s+i)<='9'&&*(s+i)>='0'或iss[i]<'0'‖s[i]>9,或\r\n!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))\r\nisdigit(s[i])==0或s[i]>'9'‖s[i>'0'或\r\n!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或\r\n!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或\r\n*(s+i)>='9'&&*(s+i)<='0'\r\n!(*(s+i)<='9'&&*(s+i)>='0'或is解析:本题考核的知识点是字符指针变量作为函数的参数以及与字符串有关的算法。从一个字符串中删除某字符的方法是从字符串的第一个字符开始一一判断该字符是否是要删除的字符,若不是则把它放到结果字符串中,若是则不放入结果字符串中。本题的第一个空应判断a[i]是否为数字字符,只有在不是数字字符的情况下才存入结果字符串,所以应填入s[i]<'0'‖s[i]>'9'。最后应在结果字符串的末尾填上字符串结束标志“\\0”。
31.x[0]x[0]x[0],x[0]解析:函数f()通过for循环逐个比较数组x中的元素,循环结束后,p0和p1分别表示最大值和最小值在数组中的下标位置,然后按照题意将最大值x[p0]和数组的最后一个元素x[n-1]交换位置,再将最小值x[p1]和第一个元素(x[0])进行交换,所以空白处应该填入x[0]。
32.12341234解析:在%与格式符之间插入一个整形数来指这输出宽度,并不影响数据的完整性,当插入的宽度小于实际的宽度时,则实际的宽度输出。
33.
34.一对多(或1∶N)一对多(或1∶N)解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1∶1)的联系、一对多(1∶N)或多对一(N∶1)的联系和多对多(N∶N)的联系。
35.O(2)
36.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系表达式(*ptr+y)<x)?*(ptr+y):x的值,再赋给变量z。当y=0时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=2,所以z=2;当y-1时,*(ptr+y)=4,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=4,所以z=4;当y=2时,*(ptr+y)=6,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=6,所以z=6;循环结束。因此输出z的结果为6。
37.abcabc解析:字符串的结束标记'\\0',当输出一个存放在字符数组中的字符串时,只需输出到'\\0'为止,而不管其后有什么数据。本题给字符数组s的元素s[3]赋值为'\\0',故只能输出3个字符“abc”。
38.计划计划解析:瀑布模型是B.W.Boehm于1976年提出的。它将软件生存周期划分为计划、开发、运行3个时期,每个时期又分为若干个阶段。
39.gae
40.80。80。解析:p=a+2使指针p指向数组a的第三个元素,即a[2],(p+2)[3]使p再移动5个单位,则指向了数组元素a[7],它的值为80。
41.B解析:此题为数据库的基本概念,可以对照办工软件的电子表格进行如下理解:选择:我们根据某条件选择出一行或多行元组(一个元组即为二维表中的一行)。投影:按字段(也称属性,比如学生关系(学号,姓名,出生年月,性别),学号、姓名…都是属性)选取一列或多列(一个二维表中所有元组在某一列或几列上截取出来)。连接:2个或2个以上的表连接组成一张新的表,通常有条件连接。比如学生关系(学号,姓名,系号),又有一张系表(系号,系名,主任),2张表可以合并为一张这样的表(学号,姓名,系号,系名,主任)。
42.B解析:字长是指CPU可以同时处理二进制的位数,是由CPU的型号和类型决定的。
43.C解析:数据库不是一个独立的系统,它需要操作系统的支持,选项A错误;设计数据库的目的是设计出满足实际应用需求的实际关系模型,选项B错误;数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价,选项C正确。数据库系统中,数据的物理结构和逻辑结构可以相互独立,选项D错误。
44.A
45.B
46.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。
47.C解析:软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念。①抽象是一种思维工具,就是把事物本质的共同特性抽出来而不考虑其他细节。②模块是指可以单独命名且可编址的元素。如高级语言中的过程、函数、子程序等。③信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。④模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。因此,本题的正确答案是C。
48.D解析:本题考查静态变量的使用方法和for循环。在函数调用时,static变量在函数调用结束后所作的所有变化均不保持,所以当i=1时,第2次进入f函数时c=5,所以最终main函数中c的值为5。
49.C(10)C)解析:DB即数据库(Database),是统一管理的相关数据的集合;DBMS即数据库管理系统(DatabaseManagementSystem),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法;DBS即数据库系统(DatabaseSystem)由如下5部分组成,数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。
50.C解析:data是一结构体变量,a是它的成员,因此引用a域的正确方法是:data.a,取它的地址赋值给指针变量p的语句应该是:p=&data.a。选项A将a的地址直接赋给了p,而忽略了a为结构体内部的一个成员,不是一单独的变量,故选项A不正确;选项B在p=data.a表达式中右边为一个结构体变量的成员不是地址,而左边为一指针应该将一地址赋给它,故选项B不正确。选项D表达式*p=data.a是将结构体变量中的成员a的值赋给指针p所指向的变量值,而不是使指针p指向data中的a域,故选项D不正确。
51.D解析:程序第1次执行for循环时,i=0,两条if语句中的表达式都不成立,执行i++;s+=i;此时i为1,s为1第2次循环,两条if语句中的表达式也不成立,执行i++,s+=i,此时i为2,s为3;……;当i=3时,执行continue,结束本轮循环,不执行i++;继续执行下一轮循环,这样一来i值始终为3,继续continue,无终止条件,进入死循环。
52.B解析:p本身就是一个字符型指针变量,返回p也就是返回变量p中存放的地址值。
53.A解析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。它可以分为软件定义、软件开发及软件运行维护3个阶段。
54.D解析:本题考查的是文件操作函数.题目中fseek(fp,0L,SEEK_SET)的作用将文件指针定位到文件开始。feof(fp)的作用是判断文件指针是否已到文件结尾,因此选项A不对。ftell(fp)的作用是获取当前文件指针的位置,因此选项B不对。fgetc(fp)的作用是从文件中读取一个字节,因此选项C不对。rewind(中)的作用是将文件指针重定位到文件开头,所以应该选择D。
55.D数据处理是指将数据转换成信息的过程,故选项A叙述错误。数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项B叙述错误。关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项C叙述错误。所以本题选D。
56.A解析:软件工程的第一个阶段是软件分析阶段。软件分析阶段的工作是由软件分析员和用户一起来做的。软件分析的结果是分析人员写出的分析报告,该分析报告实际上就是软件系统的系统总体设计方案。
57.D解析:可以用以下三种形式来引用结构体变量中的成员:结构体变量名.成员名、指针变量名->成员名和(*指针变量名).成员名。选项D)中“&st.m”取的是结构体中成员的地址而不是结构的地址。
58.C解析:数组名x为该数组的首地址即第1个元素的地址,x+2表示数组第3个元素的值地址。x[6]表示数组中长度为6,数组元素的下标从0到5,没有x[6]。&为取地址符,取得的是元素的地址。*为间接访问运算符,其运算对象为地址或存放地址的指针变量。*(x+2)为取数组第3个元素的值,因此只有选项C正确引用了数据元素,选项C正确。
59.B
60.B解析:本题考查带参数的宏定义及应用方法,这种宏不只是进行字符串的替换,还要进行参数的替换。
格式为:#define宏名(参数表)字符串
我们先看一个简单的带参数的宏定义:#defineX(A,B)A*B*B并且在程序中有语句:y=X(4,3);经过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四年级数学(简便运算)计算题专项练习与答案
- 2024年期货船租赁协议条款汇编
- 2024年医生招聘协议样本下载
- 学习先进教师心得体会
- 2024年车辆信用担保服务正式协议
- 2024专项水稳层铺设项目协议样本
- 2024采购部常用商品买卖协议模板
- 2024年商铺租赁协议模板范例
- 常州2024年技术工人劳动协议模板
- 2024企业融资协议担保法规定细则
- 2024年车路云一体化系统建设与应用指南报告
- 2025届高考语文复习:鉴赏诗歌的语言(炼字、炼句、语言风格)+课件
- 2024年企业收购委托代理协议文件版
- 统编版(2024)七年级上册道德与法治第八课《认识生命》教学设计
- DL∕T 5210.6-2019 电力建设施工质量验收规程 第6部分:调整试验
- 一例登革热合并凝血功能障碍患者的个案护理20190-7
- 门诊病历书写模板全
- 《图形创意设计》PPT课件(完整版)
- 全国医疗服务价格项目规范(2012版)
- 二年级乘除法口算题大全500题(可直接打印)
- 江苏如东LNG接收站使用协议
评论
0/150
提交评论