2021年江西省宜春市全国计算机等级考试C语言程序设计测试卷(含答案)_第1页
2021年江西省宜春市全国计算机等级考试C语言程序设计测试卷(含答案)_第2页
2021年江西省宜春市全国计算机等级考试C语言程序设计测试卷(含答案)_第3页
2021年江西省宜春市全国计算机等级考试C语言程序设计测试卷(含答案)_第4页
2021年江西省宜春市全国计算机等级考试C语言程序设计测试卷(含答案)_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2021年江西省宜春市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列数据结构中,能够按照“先进后出”原则存取数据的是()。

A.循环队列B.栈C.队列D.二叉树

2.

下列程序的输出结果是()。

#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;

else

p[1][i]=1;

}

printf("%d\n",a[o][1]+a[1][1]+a[1][2]);

}

A.8B.7C.12D.9

3.有以下程序:

程序运行后的输出结果是()。

A.4321098765B.5678901234C.0987654321D.0987651234

4.算法的时间复杂度取决于()

A.问题的规模B.待处理数据的初态C.A和B

5.在C语言中,函数返回值的类型最终取决于()。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

6.计算机系统的组成是______。

A.主机、外设B.运算器、控制器C.硬件系统和软件系统D.CPU、内存储器

7.下面哪些使用的不是贪心算法()

A.单源最短路径中的Dijkstra算法

B.最小生成树的Prim算法

C.最小生成树的Kruskal算法

D.计算每对顶点最短路径的Floyd-Warshall算法

8.在软件开发中,需求分析阶段产生的主要文档是()。A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书

9.下面关于编译预处理的命令行中,正确的是()。

A.#defineintINT

B.##defineeps0.001

C.##DEFINETRUE

D.#defineE2.88

10.检查软件产品是否符合需求定义的过程称为______。

A.确认测试B.集成测试C.验证测试D.验收测试

11.下列关于信息系统的叙述中,错误的是()。

A.广播电视是一种双向的、点到多点的信息交互系自

B.网络聊天是一种双向的,以信息交互为主要目的系统

C.电话是一种双向的、点对点的、以信息交互为主要的的系统

D.雷达是一种以感测和识别为主要目的的系统

12.表达式a+=a-=a=9的值是()。

A.9B.-9C.18D.0

13.下面程序输出的是()。main{intt=l;fun(fun(t));}fun(inth){staticinta[3]={1.2.3};intk;for(k=0;k<3;k++)a[k]+=a[k]-h;for(k=0;k<3;k++)printf("%d",a[k]);printf("\n");return(a[h]);}A.1,2,3,1,5,9,B.1,3,5,1,3,7,C.1,3,5,0,4,8,D.1,3,5,-1,3,7,

14.以下符号中不能作为标识符的是()。

A._256B.r32C.intD.e231

15.以下符号中不能作为标识符的是()。A._256B.voidC.scanfD.Struct

16.

17.下列合法的声明语句是()。

A.int_abc=50;

B.doubleint=3+5e2.5;

C.longdo=1L:

D.float3_asd=3e-3;

18.下列定义数组的语句中正确的是______。

A.#definesize10charstr1[size],str2[size+2];

B.charstr[];

C.intnum['10'];

D.intn=5;inta[n][n+2];

19.已知8个数据元素为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树后,最后2层上的结点总数为______。

A.1B.2C.3D.4

20.对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为()

A.并运算B.交运算C.差运算D.除运算

二、2.填空题(20题)21.以下程序调用函数swap将指针s和t所指单元(a和B)中的内容交换,请填空。main(){inta=10,b=20,*s,*t;s=&a;t=&b;()printf("%d%d",a,B);}swap(int*ss,int*tt){intte;te=*ss;*ss=*tt;*tt=te;}

22.下列程序的输出结果是______。

#include<stdio.h>

int(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,d);

printf("%d%d\n",c,d);

}

23.设有定义:intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充家整。

seanf("%d",【】);

printf("%d\n",【】);

24.执行以下程序时,若输入end<回车>,则输出结果是【】。

main()

{charch[10]="Begin";

gets(&ch[1]);puts(ch);

}

25.当运行以下程序时,输入abcd,程序的输出结果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

printf("%s\n",str);

}

main()

{charstr[40];

scanf("%s",str);insert(str);

}

26.以下程序的输出结果是______。

voidreverse(inta[],intn)

{inti,t;

for(i=0;i<n/2;i++)

{t=a[i];a[i]=a[n+1+i];a[n-1-i]=t;}

}

main()

{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

reverse(b,8);

for(i=6;i<10;i++)s+=b[i];

printf("%d\n",s);

}

27.请在以下程序第一行的下划线处填写适当内容,使程序能正常运行。

#include<stdio.h>

【】(double,double);

main()

{doublex,y;

scanf("%If%If",&x,&y);

printf("%If\n",max(x,y));

}

doublemax(doublea,doubleb)

{return(a>b?a:b);}

28.数据结构分为逻辑结构与存储结构,线性链表属于【】。

29.以下程序的运行结果是【】。

#defineMAL(a,b)(a>b?a:b)+1

main()

{inti=6,j=8;

printf("%d\n",MAL(i,j));

}

30.在计算机软件系统的体系结构中,数据库管理系统位于用户和【】之间。

31.下述函数通过递归方法将字符串倒置,使用时需要指定字符数组的首地址、起始下标和终止下标。请填空:

#include<stdio.h>

voidfun(char*s,intlow,inthigh)

{if(【】)

return;

else

{chart;

fun(【】);

t=s[low];

s[low]=s[high];

s[high]=t;}}

32.现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();printf("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!=′\n′)s[n++]=c;

n--;

while(n>=0)printf("%c",s[n--]);

}

当编译连接通过后,运行程序T18时,输入Thank!,则输出结果是【】。

33.数据的逻辑结构有线性结构和______两大类。

34.数据库管理系统常见的数据模型有层次模型、网状模型和【】3种。

35.若有以下程序

intf(intx,inty)

{return(y-x)*x;}

main()

{inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

printf("%d\n",d);

}

执行后输出结果是【】。

36.当先后输入1、3、4、12、23时,屏幕上出现【】;再输入12时,则屏幕上出现【】。

#include<stdio.h>

#defineN5

main()

{inti,j,number,top,bott,min,loca,a[N],flag;

charc;

printf("Pleaseinput5numbers(a[i]>a[i-1])\n");

scanf("%d",&a[0]);

i=1;

while(i<N)

{scanf("%d",&a[i]);

if(a[i]>=a[i-1))i++;

}

printf("\n");

for(i=0;i<N;i++)printf("%d",a[i]);

printf("\n");

flag=1;

while(flag)

{scanf("%d",&number);

loca=0;

top=0;

bott=N-1;

if((number<a[0])||(number>a[N-1]))loca=-1;

while((loca==0)&&(top<=bott))

{min=(bott+top)/2;

if(number==a[min])

{loca=min;

printf("%disthe%dthnumber\n",number,loca+1);

}

elseif(number<a[min])bott=min-1;

elsetop=min+1;

}

if(loca==0||loca==-1)printf("%disnotinthelist.\n",number);

c=getchar();

if(c=='N'||c=='n')flag=0;

}

}

37.以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输人数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next=NULL).

#include<stdio.h>

structlist{intdatd;structlist*next;};

【】creatlist()

{structlist*p,*q,*ph;

inta;

ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;

printf("Inputanintegernumber,enter-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{

p=(structlist*)malloc(sizeof(structlist));

p->data=a;

q->next=p;

【】=p;

scanf("%d",&a);

}

p->next='\0';

return(ph);

}

main()

{

structlisthead;

head=creatlist();

}

38.若有如下程序:

#include"stdio.h"

main()

{chars[30];

Strcpy(&S[0],"adc");

Strcpy(&S[1],"def");

strcpy(&S[2],"gh");;

printf("%S\n",s);

则程序运行后的输出结果是【】。

39.在一个容量为15的循环队列中,若头指针front=6,尾指针Year=9,则该循环队列中共有【】个元素。

40.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。

三、1.选择题(20题)41.以下程序的输出结果是()main(){intn[3][3],i,j;for(i=0;i<3;i++)for(j=0;i<3;++)n[i][j]=i+j;for(i=0;i<2;i++)for(j=0,j<2;j++)n[i+1][j+1]+=[i][j];printf("%d\n",n[1][j]);}

A.14B.0C.6D.值不确定

42.若变量已正确定义,下列正确的程序段是()。

A.while(ch=getchar()=='\N')putchar(ch);

B.while((ch=getchar())=='\n')putchar(ch);

C.while((ch=getchar())!='\N')putchar(ch);

D.while((ch=getchar())!='\n')putchar(ch);

43.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是______。

A.if(a>B)&&(b>C))k=1;elsek=0;

B.if((a>B)||(b>C))k=1;elsek=0;

C.if(a<=B)k=0;elseif(b<=C)k=1;

D.if(a>B)k=1;elseif(b>C)k=1;elsek=0;

44.下述关于数据库系统的叙述中,正确的是()。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型一致

D.数据库系统比文件系统能管理更多的数据

45.在C语言中,下列关于文件操作的叙述正确的是()。

A.对文件操作必须先关闭文件B.对文件操作必须先打开文件C.对文件操作顺序没有统一规定D.以上三种说法全错

46.有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}执行后的输出结果是()。

A.1B.2C.4D.死循环

47.以下程序输出的结果为______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0,i<4;i++)prntf("%s",p[i]);}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

48.下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是______。

A.8B.23C.17D.6

49.有以下函数:fun(char*p){returnp;}该函数的返回值是()。

A.无确切值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值

50.下列程序的输出结果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}

A.5,6B.5,5C.6,6D.6,5

51.下面叙述正确的是______。A.算法的执行效率与数据的存储结构无关

B.算法的空间复杂度是指算法程序中指令(或语句)的条数

C.算法的有穷性是指算法必须能在执行有限个步骤之后终止

D.以上三种描述都不对

52.下列程序的运行结果为()。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=2,b=3,c=1,d=3,t;printf("%d\n",(MAX(a+b,c+d))*100);}

A.500B.5C.4D.400

53.设有定义:chars[10];inti=0;,以下不能将一行(不超过100个字符)带有空格的字符串正确读入的语句或语句组是()。

A.gets(s);

B.scanf("%s",s);

C.while((s[i++]=getchar())!='\n');s[i]='\0';

D.do{scanf("%c",&s[i]);}while(s[i++]!='\n');s[i]='\0';

54.下面程序的输出结果是______。main(){intx=0x48;printf("%d\n",--x);}

A.48B.47C.71D.72

55.下列属于C语言语句的是______。

A.printf("%d\n",a)

B.#include<stdio.h>

C.a=b;b=c;c=a;

D./*thisisaprogram*/

56.有以下程序voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p{f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序运行后的输出结果是______。

A.8,2,3,4,5,6,7,1,

B.5,6,7,8,1,2,3,4,

C.1,2,3,4,5,6,7,8,

D.8,7,6,5,4,3,2,1,

57.在深度为5的满二叉树中,结点的个数为

A.32B.31C.16D.15

58.在学校中,“班级”与“学生”两个实体集之间的联系属于()关系。

A.一对一B.一对多C.多对一D.多对多

59.利用E-R模型进行数据库的概念设计,可以分成3步:首先设计局部E-R模型,然后把各个局部E-R模型综合成一个全局的模型,最后对全局E-R模型进行(),得到最终的E-R模型。

A.简化B.结构化C.最小化D.优化

60.在设计程序时,应采纳的原则之一是()。

A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解

四、选择题(20题)61.有以下程序:

程序运行后的输出结果是()。

A.10,64B.10,10C.64,10D.64,64

62.

63.

64.

65.

66.(14)结构化程序设计主要强调的是()

A.程序的规模

B.程序的易读性

C.程序的执行效率

D.程序的可移植性

67.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。

A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统

68.(69)单个用户使用的数据视图的描述称为()

A.外模式

B.概念模式

C.内模式

D.存储模式

69.有以下程序程序的运行结果是()。

A.20B.10C.0D.出错

70.假设a和b为int型变量,则执行以下语句后b的值为()。a=1;b=10;do{b-=a;a++;}while(b--<0);A.9B.-2C.-lD.8

71.下列叙述中正确的是()。

A.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

B.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

C.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

D.顺序存储结构能存储有序表,链式存储结构不能存储有序表

72.

73.(43)下列关于队列的叙述中正确的是______。

A.在队列中只能插入数据

B.在队列中只能删除数据

C.队列是先进先出的线性表

D.队列是先进后出的线性表

74.以下函数实现按每行8个输出W所指数组中的数据:

在横线处应填人的语句是()。

A.if(i/8==0)printf(”\n”);

B.if(i/8==O)continue;

C.if(i%8==0)prinff(’’\n”);

D.if(i%8==0)continue;

75.(17)软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及()

A.阶段性报告

B.需求评审

C.总结

D.都不正确

76.以下结构体类型说明和变量定义中正确的是()。

A.

B.

C.

D.

77.有以下程序:

#include<stdio.h>

main()

{intx=1,y=0;

if(!x)y++;

elseif(x==0)

if(x)y+=2;

elsey+=3;

Drintf("%d\n"。v);

}

程序运行后的输出结果是()。

A.3B.2C.1D.0

78.下面叙述中,正确的是

A.C语言编译时不检查语法B.C语言的子程序有过程和函数两种

C.C语言的函数可以嵌套定义D.C语言的函数可以嵌套调用

79.在软件设计中不使用的工具是()。

A.系统结构图B.PAD图C.数据流图(DFD图)D.程序流程图

80.已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断e中的字符是否为大写字母的表达式是()。

A.isupper(c)

B.A<=c<=Z

C.A<=cc<=Z

D.c<=(z-32)(a-32)<=c

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:给一维数组arr输人任意4个整数,并按如下的规律输出。例如,若输入2345,则程序运行后输出以下矩阵:请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是将a中的十位数和个位数依次放在c的个位和百位上,b中的十位数和个位数依次放在c的十位和千位上。例如,当a=45,b=12时,调用该函数后c=2514。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}

参考答案

1.BB。【解析】在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的。

2.B

\n本题考查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。

\n

3.B该程序首先给一维数组赋值,然后三次调用fun函数,其中fun(a,0,3);功能是将一维数组中第1个元素和第4个元素互换,第2个元素和第3个元素互换;其中fun(a,4,9);功能是将一维数组中第5个元素和第10个元素互换,第6个和第9个元素互换,第7个元素和第8个元素互换;其中fun(a.O,9);功能是将将一维数组中第l个元素和第10个元素互换,第2个元素和第9个元素互换……依此类推。因此B选项正确。

4.C

5.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。

6.C

7.D

8.D需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D。

9.D选项A中,int是关键字,不能作为用户标识符;选项B中,两个“#”错误;选项C中两个“#”错误,另外DEFINE大写也是错误的。故本题答案为D选项。

10.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。

(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。

(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。

(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。

(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。

11.A广播/电视是一种单向的、点对多点(面)的以信息传递为主要目的的系统。

12.D解析:+=、-=、=等符号优先级相同结合性是由右至左,所以选D。

13.D本题考查双重函数调用及for循环使用,fun函数中第一个for循环语句的作用是给数组a赋值。当第一次调用fun函数时,把实参1传给形参,输出a数组的元素为1,3,5;第二次调用fun函数时,由于数组a为静态局部变量,故输出a数组的元素为一1,3,7。

14.C

15.B

16.D

17.A解析:C语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。另外C语言规定了一些专用的标识符,它们有着固定的含义,不能更改。int就是表达变量类型的标识符,它不能再用做变量名和函数名,所以选项B)不正确。do是C语言的一个关键字,也不能再用做变量名和函数名,所以选项C)不正确。

18.A

19.B

20.AA)【解析】关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。

21.swap(st);swap(s,t);解析:本题要在主函数中调用swap函数交换a、b的值,实现数据交换需要进行地址传递,所以函数的形参都应该是需要交换的数据的地址,程序中通过“s=&a;t=&b;”将指针变量s和t指向变量a、b的地址,因此,引用时直接引用指针变量s和t即可。

22.7979解析:因为在调用子函数时进行的是数值传递,调用于函数并不能改变实参的值,所以经过调用子函数,c、d的值并没有发生变化还是原来的值。

23.k[7]*kk[7]*k解析:scanf()函数有两个参数,第—个参数是格式控制部分(格式控制部分是字符串,主要由“%”号和格式字符组成)第二个参数是一地址列表(地址列表是由多个地址组成,可以是变量的地址,也可以是字符串的首地址)。而第一个空格处位于scanf()函数的第二个参数处,所以,第一个空应该填地址k。printf()函数有两个参数,第一个参数是输出格式字符串(输出格式字符串是由控制输出格式的字符和非格式字符组成的,通常是字符常量。非格式字符作为输出数据的间隔,输出时原样输出)第二个参数为一输出表达式表(输出表达式表是由若干个需要计算和输出的表达式组成的,表达式之间用逗号分隔开)。而第二个空位于printf()函数的第二个参数处,所以应该填*K。

24.Bend

25.a*b*c*d*a*b*c*d*解析:字符处理函数strlen()测试字符串常量的长度,不包括‘\\0’在内。因此,函数insert()实现了将字符数组中每个非‘\\0’的字符后插入字符‘*’的功能。故输出结果是a*b*c*d*。

26.在main函数中,调用reverse函数将b数组中的前8个成员进行互置,执行完毕后,b数组中的成员为{8,7,6,5,4,3,2,1,9,10},然后再执行for循环结构,将b[6],b[7]…b[9]的值相加,结果为盟。\r\n\r\n

27.doublemax或externdoublemaxdoublemax或externdoublemax解析:main函数中调用了一个max函数,而max函数是在调用之后定义的,所以要求填空的内容应该是对函数进行声明的语句。由max函数的定义可知此函数是double型的,因此空格处应该填doublemax或externdoublemax。

28.存储结构

29.99解析:用i和j替换宏MAL(a,b)小的参数a和b,(a>b?a:b)+1等价于(i>j?i:j)+1。因为6>8为假,则关系表达式i>j?i:j的值就是j的值,j=8,8+1=9,最后输出9。

30.操作系统或OS操作系统或OS解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务。位于用户和操作系统之间。

31.low>=highscow+1high-1low>=high\r\ns,cow+1,high-1解析:本题考查了用指针引用一维数组元素的方法。函数fun()通过递归调用的方式将字符串的首位和末位互换,第二位和倒数第二位互换……,从而实现了字符串倒置的功能。low和high是字符数组的下标。

32.!knahT!knahT解析:此程序是一道次序颠倒题,即输入'Thank!',则输出'!knahT'。

33.非线性结构非线性结构

34.关系模型关系模型解析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。

35.99解析:函数的嵌套调用是在主函数中函数f(f(3,4),f(3,5))的返回值赋给d。函数的第一个参数为f(3,4)的返回值,函数f(3,4)返回值为(4-3)*3=3,f(3,5)返回值为(5-3)*3=6,那么函数f(f(3,4),f(3,5))等价于函数f(3,6)其返回值为(6-3)*3=9。因此d被赋值为9,所以输出9。

36.134122312isthe4thnumber.

37.structlist*q

38.adghadgh解析:函数strcpy是字符串复制函数。第一次将'adc'复制到以&s[0]为起始地址的存储空间中,第二次将'def'复制到以&s[1]为起始地址的存储空间中,“dc”将被覆盖,变为“adef”,第三次将“gh”复制到以&s[2]为起始地址的存储空间中,“ef”将被覆盖,变为“adgh”。

39.3

40.循环链表循环链表解析:在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。

41.C

42.D解析:本题考查两个知识点:①C语言用'\\n'这个字符常量表示换行;②函数getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。

43.A解析:“a>b?(b>c?1:0):0”的求解顺序是:先判断a>b是否为真,如果为真,则执行b>c?1:0,如果b>c为真,则(b>c?1:0)的值为1,从而整个表达式返回1,否则整个表达式返回0;如果a仁b,则表达式返回0。因此功能等价的语句应为if((a>b)&&(b>c)k=1;elsek=0;。

44.A解析:数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项A正确,选项B错误。在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项C错误。数据库系统比文件系统能管理更多的数据,并非是数据库系统的特点,选项D错误。本题正确答案是A。

45.B解析:本题考查对文件的操作。文件打开后才可以对文件进行操作,使用结束后要关闭文件。对文件的操作都是顺序读写,即从文件的第一个数据开始,依次进行读写。

46.A解析:在程序语句中,k的初始值为5,进行第1次while循环后,k自减1为4,非0,执行循环体里的printf语句,输出1,此时k的值变为1。程序执行第2次循环时,k自减1变为0,为假,退出while循环语句。所以程序的最后结果为1。

47.C解析:alpha[0]指向“ABCD'’的首地址;alpha[1]指向“EFGH'’的首地址;alpha[2]指向“IJKL”的首地址,依此类推。当初行p=alpha后,p指向指针数组alpha的首地址。for循环中输出了4个字符串。

48.B

49.B解析:return中返回的是指针p的值,也就是形参p中存放的地址值。

50.A解析:转义字符'\\n'表示换行,'\\\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志('\\0'),函数sizeof()统计字符串所占的字节数。

51.C解析:算法的执行效率与数据的逻辑结构和存储结构都有很紧密的关系。算法的空间复杂度是指执行该算法需要的内存空间,并非算法程序中指令的条数。算法一般应该具有以下4个特征:可行性、确定性、有穷性和拥有足够情报。其中,有穷性是指算法必须能在执行有限个步骤之后终止,否则可能失去实际意义。

52.A解析:本题考查带参数的宏的定义及相关运算:(x)>(y)?(x):(y)是x>y时输出x,否则输出y,调用(MAX(a+b,c+d))*100时,(a+b=5)>(c+d=4),所以输出a+b=5,所以x=5*100。

53.B解析:本题考查标准输入输出函数和循环语句。gets(s)函数的作用是将输入的字符读入字符串s,直到遇到回车。而scanf()数接收字符串时的结束标志为回车或者空格。因此选巧

54.C解析:定义x时,初始值为十六进制数48,先执行前置自减,再以十进制数71输出。

55.C解析:在C语言中,一个完整的C语句必须在语句末尾出现分号,分号是C语句的必要组成部分。本题答案为C。

56.D解析:本题的函数f是将两个指针所指的两个单元中的数值对换。指针p指向数组a的第一个元素a[0]而指针q指向数组a的元素a[7]。调用f将p和q所指元素值对换,也就是将a[0]和a[7]的值对换,对换后结果分别是8、1。P++指向a[1],q-指向a[6J,继续循环,调用f将a[1]和a[6]交换,结果变成7、1。以此类推,直到p和q相遇循环站束。数组a的值由{1,2,3,4,5,6,7,8}变成了{8,7,6,5,4,3,2,1}。输出9结果应该是:8,7,6,5,4,3,2,1。

57.B解析:二叉树有如下性质:深度为m的二叉树最多有2的m次方再减1个结点,也就是2m-1=25-1=32-1=31。由此可知答案为B。

58.BB)【解析】一个班可以有多名学生,而一名学生只能属于一个班级,所以“班级”与“学生”两个实体集之间的联系属于一对多关系。

59.D解析:在概念设计中按照模块的划分画出每个模块的E-R图,然后把这些图合成一张E-R图作为全局模型,最后应该对全局E-R图进行优化,看看是否有重复和不合理的地方。不能只是进行简单的合并。

60.D解析:滥用goto语句将使程序流程无规律,可读性差,因此选项A)不选;注解行有利于对程序的理解,不应减少或取消,选项B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项C)也不选。

61.A本题考查宏定义的用法,宏定义只是做个简单的替换,所以本题中执行f(a+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论