2021-2022年内蒙古自治区巴彦淖尔市全国计算机等级考试C语言程序设计预测试题(含答案)_第1页
2021-2022年内蒙古自治区巴彦淖尔市全国计算机等级考试C语言程序设计预测试题(含答案)_第2页
2021-2022年内蒙古自治区巴彦淖尔市全国计算机等级考试C语言程序设计预测试题(含答案)_第3页
2021-2022年内蒙古自治区巴彦淖尔市全国计算机等级考试C语言程序设计预测试题(含答案)_第4页
2021-2022年内蒙古自治区巴彦淖尔市全国计算机等级考试C语言程序设计预测试题(含答案)_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年内蒙古自治区巴彦淖尔市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,可以采用下列哪一种查找方法()

A.分块B.顺序C.折半D.哈希

2.下列选项中,不能用作标识符的是A._1234_B._1_2C.int_2_D.2_int_

3.判断一个顺序存储的队列sp为空的条件是()。

A.sp->front=sp->rear

B.sp->front=sp->rear+1

C.sp->front=sp->rear-1

D.sp->front=NULL

4.

5.有以下程序

#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

6.

7.给定数列(541,132,984,746,518,181,946,314,205,827)按照从小到大的顺序排列,采用直接选择大值开始排序时,第一趟扫描结果是()

A.(541,132,827,746,518,181,946,314,205,984)

B.(205,132,314,181,518,746,946,984,541,827)

C.(132,541,746,984,181,518,314,946,205,827)

D.(132,541,746,518,181,946,314,205,827,984)

8.二维数组A的每个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。若A按行先存储,元素A[8][5]的起始地址与当A按列先存储时的元素()的起始地址相同。设每个字符占一个字节。

A.A[8][5]B.A[3][10]C.A[5][8]D.A[0][9]

9.

10.有以下程序执行程序时,给变量X输入l0,程序的输出结果是()。

A.55B.54C.65D.45

11.设有以下函数:

voidfun(intn,char*$s){……}

则下面对函数指针的定义和赋值均正确的是A.void(*pf)();pf=fun;

B.void*Pf();pf=fun;

C.void*pf();*pf=fun;

D.void(*pf)(int,char);nf=&fun;

12.一个算法应当具有5个特性,以下叙述中正确的是()。

A.有穷性、确定性、复杂性、有零个或多个输入、有一个或多个输出

B.有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出

C.有穷性、确定性、可行性、必须要有一个以上的输入、有一个或多个输出

D.有穷性、确定性、复杂性、有零个或多个输入、必须要有多个输出

13.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置()(脚注(10)表示用10进制表示)。

A.688B.678C.692D.696

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

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

15.

16.若有定义“intx[10],*pt=x;”,则对x数组元素的引用正确的是()。

A.pt+3B.*&x[10]C.*(pt+10)D.*(x+3)

17.有三个关系R、S和T如下:由关系R和S得到关系T的操作是()。A.自然连接B.交C.除D.并

18.在一个无向图中,所有顶点的度数之和等于所有边数的()倍。

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

19.设有以下函数:voidfun(intn,char*s){…}则下面对函数指针的定义和赋值均正确的是()。

A.void(*pf)();pf=fun;

B.void*pf();pf=fun

C.void*pf();*pf=fun;

D.void(*pf)(int,char);pf=&fun;

20.下列关于AOE网的叙述中,不正确的是()。

A.关键活动不按期完成就会影响整个工程的完成时间

B.任何一个关键活动提前完成,那么整个工程将会提前完成

C.所有的关键活动提前完成,那么整个工程将会提前完成

D.某些关键活动提前完成,那么整个工程将会提前完成

二、2.填空题(20题)21.以下程序的定义语句中,x[1]的初值是【】,程序运行后输出的内容是【】。

#include<stdio.h>

main()

{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,161},*p[4],i;

for(i=0;i<4;i++)

{p[i]=&x[2*i+1];

printf("%d",p[i][0]);

}

printf("\n");

}

22.【】是指一个数据对象中的各个数据元素之间存在的联系。

23.若有如下定义,则该数组的第一维大小为【】。

intb[][4]={1,2,3,4,5,6,7,8,9}

24.有以下程序

intsub(intn){retnrn(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若运行时输入:1234<回车>,程序的输出结果是______。

25.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下:

1

11

121

1331

14641

其构成规律是:

①第0列元素和主对角线元素均为1;

②其余元素为其左上方和正上方元素之和;

③数据的个数每行递增1。

请将程序补充完整。

#defineN6

voidYangHui(intx[N][N])

{inti,j;x[0][0]=1;

for(i=1;i<N;i++)

{x[i][0]=x[i][i]=1;

for(j=1;j<i;j++)

x[i][j]=【】;

}

}

26.若输入5、9,以下程序的运行结果为【】。

main()

{inta,b,*pt1,*pt2;

printf("inputa,b:");

scanf("%d%d",&a,&b);

pt1=&a;

pt2=&b;

if(a<b)swap(pt1,pt2);

printf("\n%d,%d\n",*pt1,*pt2);

}

swap(p1,p2)

int*p1,*p2;

{int*p;

p=p1;

p1=p2;

p2=p;

}

27.有以下定义和语句,则sizeof(a.share)的值是()。

structdate

{unsignedintday;

unsignedintmouth;

unsignedintyear;

union{intshare1;

floatshare2;

}share;

}a;

28.函数fun的返回值是【】

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!='\0')mm++;

while(b[n]){*(a+num)=b[n];num++;n++;}

returnnum;

}

29.软件开发环境是全面支持软件开发全过程的______的集合。

30.在面向对象方法中,类的实例称为______。

31.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。

#include<stdio.h>

main()

{inta[10],b[10],i;

for(i=0;i<10;i++)

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

for(i=0;i<9;i++)

______;

for(i=0;i<9;i++)

{if(i%4=0)printf("\n");

printf("%3d",b[i]);

}

}

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

intfun(int*x,int*y)

{staticintm=4;

m=*X+*y;*x-=m;*y+=m;

returnm;

}

main()

{inta=2,b=6,n;

n=fun(&a,&B);printf("%d,",n);

n=fun(&a,&B);printf("%d\n",n);

}

33.函数sstrcmp的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp)。请填空。

#include<stdio.h>

intsstrcmp(char*s,char*t)

{while(*s&&*t&&*s==【】)

{s++;t++;}

return【】;

}

34.以下程序运行后的输出结果是______。

main()

{

inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i/10)

{

case0:m++;n++;break;

case10:n++;;break;

default:k++;n++;

}

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

}

35.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【】。

36.数据结构分为逻辑结构和存储结构,循环队列属于______结构。

37.执行下面程序段后,k值是【】。

k=1;n=263;

do

{k*=n%10;n/=10;

}while(n);

38.语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【】。

39.数据元素之间______的整体称为逻辑结构。

40.在数据库理论中,数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要相应修改应用程序,称为______。

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

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

42.树是结点的集合,它的根结点数目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

43.在数据流图(DFD)中,带有名字的箭头表示______。

A.控制程序的执行顺序B.模块之间的调用关系C.数据的流向D.程序的组成成分

44.栈和队列的共同特点是()。

A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点

45.下列说法不正确的是()。

A.调用函数时,实参可以是表达式

B.调用函数时,实参与形参可以共用内存单元

C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等

D.调用函数时,实参与形参的类型必须一致

46.下列函数值的类型是()。fun(doublex){floaty;y=3*x-4;returny;}

A.intB.不确定C.voidD.float

47.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法

A.对象B.数据结构C.数据流D.目标

48.若变量已正确定义,要求程序段完成求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);

49.在软件开发过程中,软件结构设计是描述______。

A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程

50.若有说明:int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是()。

A.p1=&n;p2=&p1;

B.p1=n;

C.p1=&n;*p2=p1;

D.p1=&n;p2=p1;

51.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A.63B.64C.6D.7

52.下列程序的运行结果是()。#include<stdio.h>#include<string.h>main(){char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}

A.正数B.负数C.零D.不确定的值

53.以下概念中,不属于面向对象方法的是_______。

A.对象、消息B.继承、多态C.类、封装D.过程调用

54.若变量已正确定义,以下while循环不断输出读入的字符,当读入回车换行符时结束循环。正确的程序段是

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

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

C.whle((ch=getchar())!='\N')putchaf(ch);

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

55.设有以下语句,其中不是对a数组元素的正确引用的是:______(其中0≤i≤0)inta[10]={O,12,3,4,5,6,7,8,9},*p=a;

A.a[p-a}B.*(&a[i])C.p[i]D.*(*(a+i)

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

A.黑箱(盒)测试方法完全不考虑程序的内部结构和内部特征

B.黑箱(盒)测试方法主要考虑程序的内部结构和内部特征

C.白箱(盒)测试不考虑程序内部的逻辑结构

D.上述三种说法都不对

57.若有如下定义:ints[3][4];则下面表达式中能代表数组元素s[1][0]的值的是()

A.*(s+1)B.s[1]C.s+1D.*(s[1])

58.读程序:#include<stdio.h>f(intb[],intn){inti,r;r=1;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}上面程序的输出结果是()。

A.720B.120C.24D.6

59.下面一组中都是C语言关键字的是______。

A.doubleIntfor

B.mainwhilegoto

C.volatilebreakstatic

D.mallocsizeofnew

60.开发大型软件时,产生困难的根本原因是()。

A.大型系统的复杂性B.人员知识不足C.客观世界千变万化D.时间紧、任务重

四、选择题(20题)61.有以下程序程序的运行结果是()。

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

62.

程序运行后的输出结果是()。A.1002,ZhangDa,1202.0

B.1002,ChangRon9。1202.0

C.1001,ChangRon9,1098.0

D.1001,ZhangDa,1098.0

63.(45)信息隐蔽的概念与下述哪一种概念直接相关()

A.软件结构定义

B.模块独立性

C.模块类型划分

D.模拟耦合度

64.若有下面说明和定义:

structtest

{intm1;charm2;floatm3;

unionuu(charu1[5];intu2[2];)ua;

}myaa;

则sizeof(structtest)的值是()。

A)20B)16

C)14D)9

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

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

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

A.log2nB.n2C.nD.n+1

67.某系统总体结构图如下图所示:

该系统总体结构图的深度是()。

A.7B.6C.3D.2

68.

69.

70.C语言中char类型数据占字节数为()。

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

71.若有以下程序段输出结果:是()。

A.4B.8C.16D.2

72.层次型、网状型和关系型数据库划分原则是()。

A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式

73.有两个关系R和T如下:

则由关系R得到关系T的操作是()。A.选择B.投影C.交D.并

74.若有定义语句:intm[]={1,2,3,4,5},i=4;,则下面对m数组元素的引用中错误的是

A.m[++i]B.m[1*2]

C.m[m[0]]D.m[m[--i]]

75.下述程序的运行结果是()。

#includedstdio.h>

#includedstrin9.h>

main

{char*s1="abDuj";

char*s2="ABdUG";

intt;

t=strcmp(s1,s2);

printf("%d",t);

}

A.正数B.负数C.零D.不确定的值

76.有以下程序:

voidmain()

{chars[]="159",*p;

p=s;

printf("%c",*p++);printf("%c",*p++);

}

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

A.15B.16C.12D.59

77.有如下程序段

#include"stdio.h"

typedefunion

{longx[2];

inty[4];

charz[8];

}atx;

typedefstructaa

{longx[2];

inty[4];

charz[8];

}stx;

main()

{printf("union=%d,structaa=%d\n",sizeof(atx),sizeof(stx));}

则程序执行后输出的结果是

A.union=8,structaa=8

B.union=8,structaa=24

C.union=24,structaa=8

D.union=24,structaa=24

78.若有以下定义:

chara;intb;

floatc;doubled;

则表达式a*b+d-c值的类型为()。A.A.floatB.intC.charD.double

79.以下程序中,函数sort的功能是对a数组中的数据进行由大到小的排序。

voidsort(inta[],intn)

{inti,j,t;

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

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[3],5);

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.1,2,3,8,7,6,5,4,9,10

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

80.数据的存储结构是指()。

A.存储在外存中的数据

B.数据所占的存储空间

C.数据在计算机中的顺序存储方式

D.数据的逻辑结构在计算机中的表示

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCIl码升序排序后输出。

例如,输入opdye,则应输出deopy。

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

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include%string.h>

#include%stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charC;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j4-+)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=C;

}

}

voidmain

{

charst/[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

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

proc(str);

printf("\nAftersortingdecendingly:\n

%S",str);

}

六、程序设计题(1题)82.m个人的成绩存放在score数组中,请编写函数proc(),它的功能是:将高于平均分的人数作为函数值返回,将高于平均分的分数放在up所指的数组中。例如,当score数组中的数据为100,80,76,60,59,48,43,35,59时,函数返回的人数应该是4,up中的数据应为100,80,76,95。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.D

2.D解析:本题考核的知识点是用户的标识符。在C语言中,合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或者下划线,如:acd,d_ad、_adf124,_124等都是合法的标识符号.而2asdf、_sd/=都不是合法的标识符.在C语言中大写字母和小写字母被认为是两个不同的字符,如:ACD和acd是两个不同的标识符号。选项D中用下划线作为第一个字符,这是不合法的,故选项D不正确,所以,4个选项中选项D符合题意。

3.A

4.D

5.C解析:本题中第一行代码对指针P进行了初始化,其指向数组a的第6个元素,在其后的操作中p的值也没有改变过,所以最后输出*p=*\u3000\u3000(p+0)\u3000\u3000=a\u3000[5]\u3000=6,而第二行代码中对q指向的值进行赋值,等价于*q=a[10]=11,所以输出结果*q为11。

6.B

7.A

8.A

9.C

10.A本题考查的是递归算法的分析。一个直接或间接地调用自身的算法称为递归算法。在一个递归算法中,至少要包含一个初始值和一个递归关系。本题的fun()函数在n等于l时返回1,而在其余情况下返[fi]n+fun(n一1),所以本题的递归算法可以这样来表示:fun(n)=1(n=1)(初始值)fun(n)=n+fun(n一1)(n≠1)(递归关系)此时不难看出,该递归算法实现的是计算l+2+3+…+n,而且n必须大于0,否则会陷入死循环。故题目输出的结果是l+2+3+..+10=55.应该选择A)。

11.A解析:函数指针的定义形式是:数据类型标识符(*指针变量名)()。void(*pf)()定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。所以给pf赋值时,只把函数名fun赋给pf即可。所以正确答案为选项A)。

12.B算法是指为解决某个特定问题而采取的确定且有限的步骤,一个算法应当具有5个特征:有穷性、确定性、可行性、有雩个或多个输入、有一个或多个输出。本题答案为B选项。

13.C

14.B解析:p本身就是一个字符型指针变量,返回p也就是返回变量p中存放的地址值。

15.D

16.D选项A中,“pt+3”使指针变量Pt移动3个单元,指向第4个元素,不能正确引用。运算符“*”与“&”放在一起,其作用相互抵消,且下标10超出了数组下标范围,所以B选项错误。“*(pt+i)”表示引用指针pt所指元素后的第i个元素,引用数组第11个元素,C选项错误。故本题答案为D选项。

17.C由图所知,其中,C中只有一个属性,是除操作。

18.C

19.A函数指针的定义格式为函数类型(*指针变量名)(形参列表);函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。所以选项A正确。

20.B

21.224682\r\n2468解析:在主函数中根据整型数组x[]的定义可知,x[1]的初值等于2。在for循环语句中,当i=0时,p[0]=&x[1],p[0][0]=2;当i=1时,p[1==&x[3],p[1][0]=4;当i=2时,p[2]=&x[5],p[2][0]=6;当i=3时,p[3]=&x[7],p[3][0]=8,所以程序输出的结果为2、4、6、8。

22.数据结构数据结构

23.3

24.1010解析:本题程序中定义了一个函数sub(),用来计算一个整数整除10的商和余数的和。在主函数中,首先用scanf()函数读入一个十进制整数1234,然后对1234三次嵌套调用函数svb()。首先看最里层的调用,应该返回的值是123+4=127;然后中间一层调用应该返回的是12+7=19;所以最外层调用返回1+9=10。故最后输出10。

25.x[i-1][j-1]+x[i-1][j]x[i-1][j-1]+x[i-1][j]解析:在程序外层i循环中先将数组的第0列元素和主对角线元素置1,内层j循环的功能是给其余元素赋值,根据题意,空格内应填入x[i-1][j-1)+x[i-1][j]。

26.59

27.4

28.字符串a和b的长度之和字符串a和b的长度之和解析:本题首先通过第一个while循环计算字符串a的长度,再通过第二个循环,将字符串a和b相连,最后返回连接后的总长度。

29.软件工具软件工具解析:软件开发环境是各类软件开发工具的集合体。

30.对象对象解析:类描述的是具有相似性质的一组对象。例如,每本具体的书是一个对象,而这些具体的书都有共同的性质,它们都属于更一般的概念“书”这一类对象。一个具体对象称为类的实例。

31.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:将数组a中元素a[i]与a[j+1]值相加后的值赋予数组b中元素b[i],即可实现将一个数组的前项和后项之和存入另一数组。

32.88。8,8。解析:本题考查静态局部变量值的特点,请参考第10章有关习题的解析。

33.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:函数sstrcmp()有两个字符型指针变量,用来指向两个字符串。比较两个字符串的大小方法是:从第一个字符开始依次向后比较,若对应的字符相等则接着比较下一个字符,一直到两个字符串中对应字符不等,或者有一个为\\0,此时字符的ASCII码大的字符串就大。故循环条件是*s和*t不为\\0,且*s和*t相同,第一处应填“*t”或其他等价形式。根据题意可知第二处应填*s-*t或其等价形式。

34.132132解析:本题考核的知识点是for循环与switch语句的综合运用。主函数中用了一个for循环,for循环里嵌套了一个switch语句,for循环了三次,当i=9时,i/10=0,执行switch语句中case0分支,m和n的值各加1,变为1和1,然后遇到breake语句,退出switch语句;当i=10,i/10=1,执行switch语句中default分支,使k和n的值各加1,变为1和1,退出switch语句:当i=11时,i/10=1,执行switch语句中default分支,k和n的值各加1变,为2和3,退出switch语句,循环结束。故该空格处应该填132。

35.物理独立性物理独立性

36.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。

37.3636解析:本题循环体共执行了3次。第一次:k=3,n=26:第二次:k=18,n=2;第三次:k=36,n=0。

38.x+=1;

39.逻辑关系逻辑关系

40.逻辑独立性逻辑独立性解析:数据库总体逻辑结构改变,而不需要相应修改应用程序叫做逻辑独立性。

41.D

42.A树形结构是一类重要的非线性数据结构。树是n(n≥0)个结点的集合,对应任意一棵非空树,它具有以下几点重要的性质。

①有且仅有一个特定的称为根的结点。

②当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,TM,其中每一个集合本身又是一棵树,称为子树。

因此,本题的正确答案有且只有一个。

43.C解析:数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。

44.C解析:考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种'后进先出'的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种'先进先出'的线性表。模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。

45.B

\n本题考查函数调用的基本概念。调用函数时,实参的形式可以是具体的数值,也可以是表达式。实参将数值或表达式的值传递给形参,因而两者的类型必须保持一致;形参在运算过程中会发生改变,但不一定会影响到实参值,所以可知两者不共用内存单元。

\n

46.A解析:本题考查默认函数的函数值的类型。在函数调用时,尽管y的类型是float,x的类型是double,但是因为函数定义时省去类型说明,系统默认函数值的类型为int型,所以计算后的y的类型是int型。

47.CC。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

48.B解析:选项B中for循环了5次,而每次循环的时候,都将p的值重新赋值为1后,再乘以当前数字i,所以最后的结果为5,显然不是5!的值,同样的分析可知选项A、选项C和选项D计算的都是5!。所以,4个选项中选项B符合题意。

49.B解析:从工程管理解度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。

50.D解析:本题考查指针变量的赋值。

选项A)中,p1、p2本身都是地址变量,不能再将p1取地址赋给p2:选项B)中,不能将整型数据直接赋值给指针型数据;选项C)中,*p2代表了一个整型变量,而*p2=p1这个语句试图把一个地址值放入一个整犁变量中是错误的;选项D)中指针问的赋值是正确的。

51.B解析:在长度为64的有序线性表中,其中的64个数据元素是按照从大到小或从小到大的顺序排列有序的。在这样的线性表中进行顺序查找,最坏的情况就是查找的数据元素不性表中或位于线性表的最后。按照线性表的顺序查找算法,首先用被查找的数据和线性表的第一个数据元素进行比较,若相等,则查找成功,否则,继续进行比较,即和线性表的第二个数据元素进行比较。同样,若相等,则查找成功,否则,继续进行比较。依次类推,直到性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。因此,在长度为64的有序线性表十进行顺序查找,最坏的情况下需要比较64次。因此,本题的正确答案为选项B。

52.A解析:本题考查字符串比较函数和两个字符串比较的原则两个知识点,①原则是依次比较两个字符串同一位置的对字符,若它们的ASCII码值相同,则继续比较下一对字符,若它们的ASCII码值不同,则ASCII码值较大的字符所在的字符串较大;若所有字符相同,则两个字符串相等;若一个字符串全部i个字符与另一个字符串的前i个字符相同,则字符串较长的较大。②strcmp(s1,s2)的返回值,当str1<str2时,返回值<0;当str1=str2时,返回值为0;当str1>str2,返回值>0。

53.D解析:面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象、类、消息、继承等概念。

54.D解析:换行符是一个转义字符,应该是‘\\n’,而不是‘\\N’。选项B)中,因为关系运算符“==”的优先级高于赋值运算符“=”,所以ch得到的值是关系运算getchar()=='\\n'的结果而不是从键盘输入的字符,因而不正确,故正确答案为选项D)。

55.D解析:观察程序可知,a实际上就是数组a的首地址,所以“*(a+i)”表示的就是数组a中的第i个元素的值,进而,我们可以知道*(*(a+i))必然不是对a数组元素的正确引用。

56.A解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例,选项A是正确的,选项B错误。白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,选项C错误。正确答案为A。

57.D

58.B解析:本题考查函数的调用。函数f的功能是将b[]小的第1到n+1个数组元素的值进行相乘运算,然后返回其结果。由于实参3传给形参n,所以f的返回值为x=2*3*4=5=120。

59.C解析:C语言中的关键字有32个关键字(参见C语言教程),本题中只有C符合题意。

60.AA)【解析】随着计算机软件规模的扩大,软件本身的复杂性不断增加,研制周期显著变长,正确性难以保证,软件开发费用上涨,生产效率急剧下降,从而出现了人们难以控制软件发展的局面,即所谓的“软中#危机”。

61.Acase常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的case语句,就从该case-子句执行下去,不再进行判断。直到碰到break竞语句结束为止。因此执行内层switch(y)时只执行了a++,此时a的值为l。然后执行外层case2语句的a++;b++.a为2,b为l。所以结果为A)。

62.B本题考查结构体变量的引用以及作为函数参数,题目虽然看似复杂,其实比较容易,f函数的参数是结构体变量,然后对参数重新赋值并返回,所以该题目的答案为B选项。

63.B

64.Asizeof求在存储单元中所占字节数。

65.A软件需求规格说明书是需求分析阶段最后的成果,它是作为需求分析的一部分而制定的可交付文档。概要设计说明书、数据库说明书、集成测试计划都是概要设计阶段需要编写的文档。

66.C对线性表进行顺序查找,最坏的情况是待查数据在表中不存在,所以比较的次数与表中的元素个数一样多。

67.C根据总体结构图可以看出该树的深度为3,比如:XY系统——功能2——功能2.1,就是最深的度数的一个表现。

68.D

69.A

70.CChar类型数据占1个字节。

71.Ar右移1位,结果为4,所以选择A。

72.D层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。

73.A

74.A本题考查一维数组的引用。一维数组表示为数组名[下标],下标可以是整型常量或整型表达式,题目中给出的四个选项,在格式上都是正确的。A选项中,首先进行++i运算,运算的结果为5,而该数组初始化后有效取值范围为m[0]~m[4],m[5]不存在,引用错误。B选项引用的是m[2]中的数值3。C选项先计算m[0]中的数据,得到1,随后计算m[1]中的数值,可得2。D选项先计算m[--i

温馨提示

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

评论

0/150

提交评论