2022-2023年湖南省永州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页
2022-2023年湖南省永州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页
2022-2023年湖南省永州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页
2022-2023年湖南省永州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页
2022-2023年湖南省永州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年湖南省永州市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.需求分析的主要任务是()。

A.确定软件系统的功能B.确定软件开发方法C.确定软件开发工具D.确定软件开发入员

2.若有以下程序段

intm=0xabc,n=0xabc;

m-=n;

printf("%x\n",m);

执行后的输出结果是A.A.0X0

B.0x0

C.0

D.0xABC

3.

4.在JavaScript语言中,要定义局部变量则可以()。

A.由关键字private在函数内定义

B.由关键字private在函数外定义

C.由var在函数内定义

D.由关键字var在函数外定义

5.有以下程序:程序运行后的输出结果是()。

A.5B.2C.3D.8

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

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

7.已知各变量的类型说明如下则以下符合C语言语法的表达式是()。A.a+=a-=(b=4)*(a=3)B.a=a*3=2C.x%(-3)D.y=f1oat(i)

8.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序的运行结果是()。

A.1,1,2,0B.0,0,0,3C.编译有错D.0,1,2,0

9.算法的效率的分析主要包括两个方面()。

A.时间复杂度和空间复杂度B.正确性和简单性C.可读性和文档性D.数据复杂性和程序复杂性

10.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()。

A.O(0)B.O(1)C.O(n)D.O(n2)

11.下列选项中,能正确定义数组的语句是()。

A.intnum[0..2008];

B.intnum[];

C.intN=2008;intnum[N];

D.#defineN2008;intnum[N];

12.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。

A.scanfB.getcharC.getsD.getc

13.数字字符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

14.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.没有任何关系

15.已知函数test定义为()。A.执行函数test后,函数没有返回值

B.执行函数test后,函数不再返回

C.执行函数test后,函数返回任意类型值

D.以上三个答案都是错误的

16.合法的常量是()。A.‘program’B.–e8C.03xD.0xfl

17.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。A.大写字母B.下划线C.数字字符D.连接符

18.折半查找的时间复杂性为()

A.O(n2)B.O(n)C.O(nlogn)D.O(logn)

19.

20.

二、2.填空题(20题)21.下列软件系统结构图的宽度为[]。

22.对软件是否能达到用户所期望的要求的测试称为【】。

23.【】(黑箱或白箱)测试方法完全不考虑程序的内部结构和内部特征。

24.一棵二叉树第6层(根结点为第一层)的结点最多为______个。

25.结构化程序设计的3种基本结构分别是顺序、选择和______。

26.在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。常见的数据模型有3种,它们分别是层次模型、网状模型和()。

27.数据管理技术发展过程经过人工管理、文件系统和数据库系统这3个阶段,其中数据独立性最高的阶段是【】。

28.以下程序运行后的输出结果是【】。

voidfun(intx,inty)

{x=x+y;Y=x-y;x=x-y;

printf(“%d,%d”,x,y);}

main()

{intx=2,y=3;

fun(x,y);

printf(“%d,%d\n”,x,y);

}

29.若s是int型变量,且s=8,则s%3+(s+1)%3表达式的值为()。

30.二叉树的遍历可以分为三种:前序遍历、()遍历和后序遍历。

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

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i);

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

}

32.按照逻辑结构分类,数据结构可分为线性结构和非线性结构,队列属于______。

33.在宏定义#definePI3.14159中,用宏名PI代替一个______。

34.有以下程序:

main()

{inta=7,b=8,*p,*q,*r;

p=&a;q=&b;

r=p;p=q;q=r;

printf("%d,%d,%d,%d\n",*p,*q,a,b);

}

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

35.下列语句能循环______次。

ints=12;

while(s);

--s;

36.以下说明语句中,【】是结构体类型名。

typedefstruct

{intn;

charch[8];

}PER;

37.以下程序的输出结果是【】。

intfun(int*x,intn)

{if(n==0)returnx[0];

elsereturnx[0]+fun(x+1,n-1);

}

main()

{inta[]={1,2,3,4,5,6,7};

printf("%d\n",fun(a,3));}

38.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。

39.类是一个支持集成的抽象数据类型,而对象是类的【】。

40.Jackson方法是一种面向【】的结构化方法。

三、1.选择题(20题)41.线性表的顺序存储结构和线性表的链式存储结构分别是______。

A.顺序存取的存储结构、顺序存取的存储结构

B.随机存取的存储结构、顺序存取的存储结构

C.随机存取的存储结构、随机存取的存储结构

D.任意存取的存储结构、任意存取的存储结构

42.已知函数定义如下,函数abed的功能是()。abcd(char*s1,char*s2){while(*s2++=*s1++);}

A.串复制B.求串长C.串比较D.串反向

43.阅读下列程序段,则程序的输出结果为#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}

A.3B.5C.6D.8

44.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序运行后的输出结果是______。

A.运行后报错B.66C.611D.510

45.以下scanf函数调用语句中对结构体变量成员的引用不正确的是

structpupil

{charname[20];

intage

intsex;

}pup[5],*p;

p=pup;

A.scanf("%s",pup[0].name);

B.scanf("%d",&pup[0].age);

C.scanf("%dT",&(p->sex));

D.scanf("%d",p->age);

46.简单的交换排序方法是()。

A.快速排序B.选择排序C.堆排序D.冒泡排序

47.有以下程序:#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%5)==0)break;elsei--;}i+=13,a+=i;}pfintf("%d\n",A);}程序的输出结果是()。

A.62B.63C.23D.36

48.有如下程序:main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}该程序的输出结果是______。

A.18B.19C.20D.21

49.一个关系中属性个数为1时,称此关系为()。

A.对应关系B.单一关系C.一元关系D.二元关系

50.下列程序执行后的输出结果是

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.随机数

51.在结构化设计方法中,生成的结构图(SC)中,带有箭头的连线表示______。A.A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序D.数据的流向

52.以下程序执行后sum的值是()main(){inti,sum;for(i;i<6;i++)sum+=i;printf("%d\n",sum);}

A.15B.14C.不确定D.0

53.有以下程序;main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}执行后的输出结果是()

A.34B.42C.43D.33

54.有以下结构体说明和变量定义,如下图所示,指针p、q、r分别指向一个链表中的3个连续结点。structnode{intdata;structnode*next;}*p,*q,*r;

现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是()。

A.r->next=q;q->next=r->next;p->next=r;

B.q->next=r->neaxt;p->next=r;r->next=q;

C.p->next=r;q->next=r->next;r->next=q;

D.q->next=r->next;r->next=q;p->next=r;

55.在软件设计中,不属于过程设计工具的是()。

A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图

56.设有定义:intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A.k++B.k+=1C.#NAME?D.k+1

57.有以下程序:voidsum(inta[]){a[0]=a[-1)+a[1];}main(){inta[10]=(1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序运行后的输出结果是______。

A.6B.7C.5D.8

58.有以下程序

main()

{intk=5,n=0;

do

{switch(k)

{case1:case3:n+=1;k--;break;

default:n=0;k--;

case2:case4:n+=2;k--;break;

}

printf("%d",n);

}while(k>0&&n<5);

}

程序运行后的输出结果是

A.235B.0235C.02356D.2356

59.下列能正确定义且赋初值的语句是()。

A.intn1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

60.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。

A.125B.n/2C.nD.n+1

四、选择题(20题)61.

62.有如下程序段:

其输出结果是()。

A.123.141593B.1,23.141593C.12,3.141593D.123.1415930

63.以三级模式为框架形成的3种数据库中,真实存在于计算机外存的数据库是()。

A.概念数据库B.用户数据库C.物理数据库D.逻辑数据库

64.

65.

66.整型变量X和Y的值相等,且为非0值,则以下选项中结果为0的表达式是()。

A.X‖YB.X|YC.X&YD.X^Y

67.若有定义语句:“intkl一10,k2=20;”,执行表达式(kl=kl>k2)(k2=k2>

k1)后,kl和k2的值分别为()。

A.0和1B.0和20C.10和1D.10和20

68.在软件开发中,需求分析阶段产生的主要文档是()。

A.软件需求规格说明书B.数据库说明书C.集成测试计划D.概要设计说明书

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

A.-3,-1,1,3,B.-12,一3,0,0C.0,1,2,3,D.一3,-3,一3,一3,

70.结构化程序所要求的基本结构不包括()。

A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构

71.下列排序方法中,最坏情况下比较次数最少的是()。

A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序

72.以下关于宏的叙述中正确的是()。

A.宏替换没有数据类型限制

B.宏定义必须位于源程序中所有语句之前

C.宏名必须用大写字母表示

D.宏调用比函数调用耗费时间

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

A.为了建立一个关系,首先要构造数据的逻辑关系

B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项

C.一个关系的属性名表称为关系模式

D.一个关系可以包括多个二维表

74.以下选项中值为1的表达式是()。

A.

B.

C.

D.

75.设有二元关系R和三元关系s,下列运算合法的是()。

A.R∩SB.R∪SC.R-SD.R×S

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

A.a=2,b=lB.a=2,b=2C.a=1,b=lD.a=1.b=0

77.

78.

79.

80.

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:从整数10到55之间,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中al放个位数,a2放十位数。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!

六、程序设计题(1题)82.编写函数fun(),其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。例如,分别输入下面两个字符串:“FirstString——”“SecondString”程序输出:“FirstString——SecondString”注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.A需求分析是软件开发之前必须要做的准备工作之一。需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。故需求分析的主要任务是确定软件系统的功能。本题答案为A选项。

2.C本题考查C语言中的数据输出格式。

题目中定义了两个整型变量m、n,对这两个变量赋值,输入的数值为十六进制整数,并且有m=n。进行m-n运算后,将减法所得到的值赋给m,并将m值输出。其中printf的格式字符选用的格式字符为x,即以十六进制形式输出整数。注意,0x是表示该数为十六进制的标志,输出数据时,数据前面不会自动加上进制的标志。

3.C

4.C

5.D题干中,函数fun的第2个参数通过指针作为函数返回值,它的功能是通过递归,求得fun(n)的值为fun(n-1)+fun(n-2)。由于当n取值为1和2时,值为1。所以可知整个数列如下:1,1,2,3,5,8,…,即某一项是前两项之和。所以当n取值为6时,fun(6,*s)返回s的值为3+5=8。本题答案为D选项。

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

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

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

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

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

7.A

8.C本题中“if(a=1)b=1”与“elsed=3;”之间多了语句“c=2;”,所以会出现else语句的位置错误的编译失败提示。故本题答案为C选项。

9.D

10.C

11.DC语言不允许定义动态数组,定义数组的大小必须为常量表达式。A选项错误,C语言中的数组没有此类型的定义方法;B选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定元素的个数;C选项错误,N为变量,不能用来定义数组大小。故本题答案为D选项。

12.C解析:C语言提供了许多输入函数,其中有:getchar(输入字符)、scanf(格式输入)和gets\u3000(输入字符串)等。题目要求输入的是字符串,所以可以排除getchar,而且要求输入的字符串中包含空格,而scanf函数默认将输入的空格字符作为分割符,所以空格不会被输入,故可排除scanf。getc的作用是从文件中输入一个字符,故也不可取。gets函数可以输入一整行作为一个字符串,其中也包括空格字符,故应该选择C。

13.C解析:自增运算符“++”,出现在变量之前,表示先使变量的值加1,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,冉使变量的值加1。例如题中的“b++”,题中第一条语句先输出字符b的值,此时变量b='2',因此输出值为2;再使b的值加1,b='3',因此第二条语句输出:b-a='3'-'1'=2。

14.CC。【解析】数据库系统(DBS)由数据库(DBS)、数据库管理系统(DBMS)、数据库管理员、硬件平台和软件平台五个部分组成,可见DB和DBMS都是DBS的组成部分。

15.A

16.D

17.D[解析]C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。所以D)选项中的连接符不合法。

18.D

19.A

20.B

21.33解析:软件系统结构图的宽度:整体控制跨度(最大模块数的层)的表示。

22.有效性测试有效性测试

23.黑箱黑箱解析:本题考查了软件测试中的黑箱测试。黑箱测试是根据程序规格说明所规定的功能来设计测试用例,它不考虑程序的内部结构和处理过程。常用的黑箱测试技术分为等价类划分、边界分析、错误猜测以及因果图等。

24.3232解析:二叉树第k层上,最多有2k-1(k≥1)个结点。第6层的结点数最多是26-1=32。注意区别“二叉树的结点最多数”和“某一层的结点最多数”。前者的计算是深度为m的二叉树最多有2m-1个结点。

25.重复(循环)重复(循环)解析:结构化程序设计包括3种基本的结构:顺序结构、选择结构和重复结构(循环结构),利用这3种结构就足以表达出各种其他形式结构的程序设计方法。其中利用循环结构,可以简化大量的程序执行。

26.关系模型关系模型解析:在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲,数据模型就是现实世界的反映,它分为两个阶段:把现实世界中的客观对象抽象为概念模型;把概念模型转换为某一DBMS支持的数据模型。常见的数据模型有3种,它们分别是层次模型、网状模型和关系模型。

27.数据库系统数据库系统解析:在数据库系统管理阶段,通过系统提供的映像功能,数据具有两方面的独立性:一是物理独立性,二是逻辑独立性。数据独立性最高的阶段是数据库系统阶段;

28.32233,2,2,3解析:主函数中首先定义了整型变量x和y,并分别给它们赋初值为2和3,接着调用fun()函数,fun()函数把实参x和y的值传给形式参数x和y,实参和形参不再有联系。在fun()函数中,通过运算使x和y的值交换过来,所以fun()函数中的输出结果是“3,2”。fun()函数调用返回输出x和y依然是原来的x和y,为“2,3”。原因是变量作为形参传值的,对形参的修改并不影响对应的实参。所以最后输出为3,2,2,3。

29.22解析:考查基本表达式的计算,“%”运算符的功能是取余。题中条件s=8,则s%3=2,(s+1)%3=9%3=0,所以表达式s%3+(s+1)%3=2+0=2。

30.中序中序解析:二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根

31.55解析:此程序中,for循环语句后面直接跟了一个“;”,表明循环体为空.输出语句不在for循环体内,所以在循环执行完毕后才输出s的值.s、i的初值分别为0和1,判断循环条件,表达式“1<3”成立,执行“i++,s+=i”后,i和s的值分别为2和1,继续判断循环条件,表达式“2<3”成立,执行“i++,s+=i”后,i和s的值分别为3,再次判断循环条件,表达式“3<3”不成立,循环结束。

32.线性结构线性结构解析:队列有且只有一个根结点,而且每一个结点最多有一个前件,也最多有一个后件,满足线性结构的条件,所以属于线性结构。

33.字符串字符串解析:本题考查字符替换格式:#define标识符字符串。

34.87788,7,7,8解析:本题中执行语句p=&a和q=&b后,*p=7,*q=8;执行完语句r=p,p=q,q=r后,*p=8,*q=7,故答案为8,7,7,8。

35.无限无限解析:分析程序“while(s)”语句后面有一个“;”不能执行后面的语句,只是执行空语句,所以s=12保持不变,因此,没有条件限制的能循环无限次(即死循环)。

36.PERPER解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

37.1010解析:题目中的fun()函数直接调用了自身,所以它是递归函数。函数中只有一条if语句,意思是:若n为0,则返回x所指内容(x[0]等价于*x),否则返回x所指内容加上fun(x+1,n-1)。即,当n>0时,fun(x,n)=x[0]+fun(x+1,n-1)=x[0]+x[1]+fun(x+2,n-2)=…=x[0]+x[1]+…+x[n];当n=0时,fun(x,n)=x[0];当n<0时,函数将无限循环递归调用下去,因为n-1下去永远也不会等于0。所以本题中fun(a,3)=a[0]+a[1]+a[2]+a[3]=12+3+4=10。故应该填10。

38.上溢上溢解析:入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当rear=m+1时置rear=1;然后将新元素插入队尾指针指向的位置。当循环队列非空(s=1)时且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。

39.实例将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,对象则是其对应类的一个实例。

40.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。

41.B【命题目的】考查有关线性表存储结构的基本知识。

【解题要点】顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式LOC(ai)=LOC(a1)+(I-1)L计算得到,从而实现了随机存取。对于链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。

【考点链接】顺序存储结构和链式存储结构的定义和性质,两种存储结构的操作方法。

42.A解析:函数abcd()中只有一个没有循环体的while循环,其循环条件是*s2++=*s1++,即只要s1所指内容不为0循环就会继续,并且每次执行循环条件时将s1所指内容赋给s2所指地址,然后两者同时增1,故该函数完成的是将s1所指字符串复制到s2所指地址中。应该选择A。

43.A解析:带参数的宏定义命令行形式如下:#define宏名(形参表)替换文本。首先进行M的宏替换,之后再进行N的宏替换,替换后的表达式为(a)*(b)/(C)。

44.A解析:本题考核的知识点是通过指针引用数组的元素的方法.本题中首先定义了一个一维数组a并初始化,由于定义该数组的时候省略了长度,因此该数组的长度为初始化时候赋初值的个数即为12。数组名a代表数组的首地址,所以*p=a+5语句使得p指向数组的第6个元素,而在程序中定义了一个指针q并让它指向空,实际上程序并没有在内存中为指针q开辟存储空间,这样给q赋值不允许的,故该程序运行后报错。所以,4个选项中选项A符合题意。

45.D解析:考查结构体成员变量的引用方法。可用结构体变量名.数据成员名或者结构体指针->数据成员名两种方法来引用。结构体类型的变量、数组和指针变量的定义。

46.D解析:所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。

47.D

48.A解析:题中的外循环只执行了2次:

第1次:a[1][0]=3,a[1][1]=4,所以s=7;

第2次:a[2][0]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。

49.C解析:在关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属性,一个具有N个属性的关系称为N元关系。注意:各种关系查询语言与过程性语言和非过程性语言的关系,过程性语言的特点。

50.B解析:本题中,a[1][2]是二维数组中的第6个元素,对应for循环中i的值为5,p[5]=5+1。

51.A解析:让考生对常用的软件结构设计工具要有较深入的了解。常用的软件结构设计工具是结构图(SC-structureChart),也称程序结构图。其中,矩形内用于注明模块的功能和名字;箭头表示模块间的调用关系,带实心圆的箭头表示传递的是控制信息,带空心圆的箭头表示传递的是数据。注意:根据结构图设计思想,了解结构图构成的基本形式。

52.C

53.D

54.A解析:题目中要求将q和r所指结点的先后位置交换,即要求p所指结点的指针域指向r所指向的结点,r所指向结点的指针域指向q所指向的结点,q所指向结点的指针域指向r所指向的结点。选项A首先让r所指向指针的指针域指向q所指向的结点,这样就将r所指向结点的指针域指向的结点丢失了,故选项A错误。选项B首先让q所指向结点的指针域指向r所指向结点的指针域所指向的结点,然后,让p所指向结点的指针域指向r所指向的结点,最后让r所指向结点的指针域指向q所指向的结点,满足要求,故选项B正确。选项C首先让p所指向结点的指针域指向r所指向的结点,然后让q所指向结点的指针域指向r所指向结点的指针域所指向的结点,最后让r所指向结点的指针域指向q所指向的结点,满足要求,故选项C正确。选项D首先让q所指向结点的指针域指向r所指向结点的指针域所指向的结点,然后,让r所指向结点的指针域指向q所指向的结点,最后让p所指向结点的指针域指向r所指向的结点,满足要求,故选项D正确。所以,4个选项中选项A符合题意。

55.D解析:PDL一种设计性语言,用于书写软件设计规约。它是软件设计中广泛使用的语言之一。N-S图是无线的流程图,是算法描述工具;PAD图是问题分析图,它用二维树状结构的图表示程序的控制流,将这种图转换为程序代码比较容易。此3类均是过程设计工具,数据流图(DataFunctionDiagram):又名数据功能图表,简称DFD,是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

56.A解析:凡是表达式都有一个值,即运算结果。k++的表达式值为0,k再进行增1运算;k+=1是赋值表达式,其作用是取k中的值加1后再放到k变量中,即表达式的值为1;++k是先进行k增1运算,表达式的值为1;k+1=0+1,其运算的结果为1。所以选项A中表达式的值与其他三个表达式不同。

57.A解析:调用sum(&a[2])时,a[0]=a[2]=3,a[-1]=a[1]=2,a[1)=a[3]=4,因此a[2]=6,可以看到sum函数的功能是将数组的一项的值改成其前一项的值与后一项的值之和。

58.A解析:因为变量的初始值分别为'k=5,n=0',所以程序第一次进入循环时,执行default语句,这时k=4,执行'case4:'这个分支,结果是'n=2,k=3',打印出2;程序然后进行第二次循环,这时'n=2,k=3',执行'case3:'这个分支,结果是'n=3,k=2',打印出3;程序进行第三次循环,这时'n=3,k=2',执行'case2:case4:'这两个分支,结果是\ue008'n=5,k=1'\ue009,打印出5,这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束,故输出结果为235。

59.B解析:C语言规定,可以在定义变量的同时给变量赋初值,称为变量初始化。在选项A)中在给n1和n2进行赋初值,但变量02没有定义;在选项C)中定义变量f时,不能在赋值表达式的右边出现变量f自身,所以选项C)错误:在选项D)用指数表达式的常量中,字母E后面的数应该为整数,而不应该为小数形式。因此,选项B)正确。

60.CC。【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。

61.B

62.Aprintf函数中格式字符“%8.6”的含义是:变量Y的输出宽度为8(包括小数点),小数点后面保留6位小数,且右对齐。所以选择A。

63.B

\n①以内模式为框架所组成的数据库,1物理数据库;②以概念模式为框架所组成的数据库叫概念数据库;③以外模式为框架所组成的数据库叫用户数据库。它是真实存在于计算机外存中的数据库。

\n

64.D

65.B

66.DX||Y是将X和Y作逻辑或运算,因为都是非0,所以结果为1,X|Y是做位或运算,即相

温馨提示

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

评论

0/150

提交评论