2022-2023年山东省莱芜市全国计算机等级考试C语言程序设计_第1页
2022-2023年山东省莱芜市全国计算机等级考试C语言程序设计_第2页
2022-2023年山东省莱芜市全国计算机等级考试C语言程序设计_第3页
2022-2023年山东省莱芜市全国计算机等级考试C语言程序设计_第4页
2022-2023年山东省莱芜市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年山东省莱芜市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列程序的运行结果是()。#include<stdio.h>voidfun(int*S,int*p){staticintt=3:*p=s[t];t--;}voidmain{inta[]={2,3,4,5),k;intx;for(k=0,k<4,k++){fun(a,&x);printf("%d,",x);}}A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5

2.当一个函数无返回值时,定义它的函数类型应是()。

A.voidB.intC.任意D.无

3.若有语句“typedefstructS{intg;charh;}T;”,则下列叙述中正确的是()。

A.可用S定义结构体变量B.可用T定义结构体变量C.S是struct类型的变量D.T是structS类型的变量

4.采用邻接表存储的图的深度优先遍历算法类似于二叉树的()。

A.先序遍历B.中序遍历C.后序遍历D.按层遍历

5.数据结构主要研究的是数据的逻辑结构、数据的运算和()。A.数据的方法B.数据的存储结构C.数据的对象D.数据的逻辑存储

6.

7.判断一个单向链表中是否存在环的最佳方法是()

A.两重遍历B.快慢指针C.路径记录D.哈希表辅助

8.下列数据结构中,能够按照“先进后出”原则存取数据的是()。

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

9.具有n个顶点的完全有向图的弧数为()。

A.n(n-1)/2B.n(n-1)C.n2D.n2-1

10.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}执行后的输出结果是()。

A.5,5B.5,11C.11,11D.11,5

11.数据字典(DD)所定义的对象都包含于()。

A.软件结构图B.方框图C.数据流图(DFD图)D.程序流程图

12.需求分析最终结果是产生

A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告

13.下列关于栈叙述正确的是A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.上述三种说法都不对

14.

15.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序运行后的输出结果是()。A.12345B.23445C.34756D.35745

16.在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。A.A.冒泡排序B.选择排序C.快速排序D.归并排序

17.以下叙述正确的是()。

A.C语言程序是由过程和函数组成的

B.C语言函数可以嵌套调用,例如:fun(fun(x))

C.C语言函数不可以单独编译

D.C语言中除了main函数,其他函数不可作为单独文件形式存在

18.二维数组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]

19.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];

D.intn=10,a[n];

20.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是

abs(intx)

{if(x>=0)returnx;

elsereturn-x;}

main()

{inty,z,(*p)(intx)=abs;

scanf("%d",&y);

z=(*p)(y);

;}

A.printf("%d%d\n",&p,z)

B.printf("%d%d\n",p,z)

C.printf("%d%d\n",*p,z)

D.printf("%d%d\n",p,*z)

二、2.填空题(20题)21.以下程序通过函数指针p调用函数fun,请在填空栏内写出定义变量p的语句。

voidfun(int*x,int*y)

{……}

main()

{inta=10,b=20;

【】:

p=fun;p(&a,&b);

……

}

22.以下程序中,for循环体执行的次数是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{inti;

for(i=1;i<K;i++){......}

23.下面程序的功能是输出数组中最大的数,由a指针指向该元素。请填空。

main()

{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11},*a,*b;

for(b=s,a=s;b-s<13;b++)

if(【】)a=b;

printf("%d",*a);}

24.设有定义“stmct{inta;floatb;charc}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc______。

25.【】是数据库设计的核心。

26.输出指针数组各元素所指的整数值和它存放的地址值。

#include<stdio.h>

main()

{inti;

inta[5]={1,3,5,7,9};

int*num[5];

int【】;

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

num[i]=【】;

p=num+0;

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

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

p++;

}

}

27.下列程序的运行结果是______。

#include<stdio.h>

main()

{intfun();

fun();

}

fun()

{staticinta[4]={1,2,3,4};

inti;

for(i=0;i<4;i++)a[i]+=a[i];

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

printf"\n");

}

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

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

}

29.以下程序运行时若从键盘输入:102030<回车>。输出结果是()。

#include<stdio.h>

main()

{inti=0,j=0,k=0;

scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);

}

30.以下程序的输出结果为【】。

#defineJFT(x)x*x

main()

{inta,k=3;

a=++JFT(k+1);

printf("%d",a);

}

31.若输入21、23、34、11、2、6,则以下程序的运行结果【】。

main()

{inti;

char+p,num[6];

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

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

scanf("%d",&num[5]);

p=&num[0];

sort(p,6);

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

printf("%d\n",num[5]);

}

sort(p,m)

char*p;

intm;

{inti;

charchange,*p1,*p2;

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

{p1=p+i;

p2=p+(m-1-i);

change=*p1;

*p1=*p2;

*p2=change;

}

}

32.以下程序调用随机函数得到N个20以内的整数放在s数组中。函数fun的功能是找出s数组中的最大数(不止一个)所在下标传回主函数进行输出,并把最大值作为函数值返回,请填空。

#defineN30

man()

{ints[N],d[N],i,k,m;

for(i=0,i<N;i++){s[i]=rand()%20;printf("%3d",s[i]);}

m=fun(【】);

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

printf(”Theindex;\n");

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

printf("\n\n");

}

fun(int*w,int*d,int*k)

{inti,j,m=0,v;

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

if(w[i]>w[m])【】;

v=w[m];

for(i=0,j=0;i<N;i++)

if(w[i]==v)【】;

*k=【】;

return【】;

}

33.下述程序的输出结果是【】。

#include<stdio.h>

voidmain()

{

charc1[20]="1234";

charc2[20]="5678";

char*p1,*p2;

p1=c1;

p2=c2;

while(*p1++)

while(*p1++=*p2++);

printf("%s,c1);

}

34.下述函数统计—个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】='')flag=0;

elseif(【】){flag=1;num++}

}

return【】;}

35.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。

36.函数pi的功能是根据以下近似公式求π值:

(π*π)/6=1+1/(2*2)+1/(3*3)+…+1(n*n)

现在请你在下面的函数中填空,完成求π的功能。

#include"math.h"

{doubles=0.0;longi;

for(i=1;i<=n;i++)s=s+【】;

return(sqrt(6*3));

}

37.软件开发过程中所使用的资源一般包括:【】、软件资源和硬件资源。

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

#include<stdio.h>

intf(ihta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

main()

intaa[5]={1,2,3,4,5},s;

s=f(aa,5);prinff("%d\n",s);

}

39.在运算过程中,能够使空表与非空表的运算统一的结构是【】。

40.下列二维数组初始化语句中,正确且与语句floata[][3]={0,3,8,0,9};等价的是

三、1.选择题(20题)41.一颗二叉树中共有70个叶子节点与80个度为1的节点,则二叉树的总节点数为()。

A.219B.221C.229D.231

42.若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;

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

43.现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为

A.21B.78C.23D.28

44.设函数fun的定义形式为voidfun(charch,floatx){…}则以下对函数fun的调用语句中,正确的是

A.fun("abc",3.0);

B.t=fun('D',16.5);

C.fun('65',2.8);

D.fun(32,32);

45.有以下程序: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);}程序运行后的输出结果是()。

A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

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

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

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

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

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

47.在E-R图中,用来表示实体之间联系的图形是()

A.矩形B.椭圆形C.菱形D.平行四边形

48.有以下程序:structSTU{charname[10];intnum;intscore;};main(){structSTUs[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},{"WangYin",20043,680},{"SunDan",20044,550),{'Penghua",20045,537}},*p[5],*t;inti,j;for(i=0;i<5;i++)p[i]=&s[i];for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(p[i]->Score>p[j]->Score){t=p[i];p[i]=p[j];p[i]=t;}printf("%d%d\n",s[1].Score,p[1]->Score);}执行后输出结果是()。

A.550550B.680680C.580550D.580680

49.若有定义:inta=4,b=5;floatx=3.4,y=2.1;,则下列表达式的值为()。(float)(a+B)/2+(int)x%(int)y

A.5.5B.55C.5.5D.55

50.设有定义语句int(*f)(int);,则以下叙述正确的是()。

A.f是基类型为int的指针变量

B.f是指向函数的指针变量,该函数具有一个int类型的形参

C.f是指向int类型一维数组的指针变量

D.f是函数名,该函数的返回值是基类型为int类型的地址

51.以下程序的结果是______。inta,b;voidfun(){a=100;b=200;}main(){inta=5;b=7fun();printf("%d%d\n",a,b);}

A.100200B.57C.200100D.75

52.若变量已正确定义,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其输出结果是()。

A.0,0B.0,1C.1,1D.程序进入无限循环

53.下列关于栈的描述正确的是()。

A.在栈中只能插入元素而不能删除元素

B.在栈中只能删除元素而不能插入元素

C.栈是特殊的线性表,只能在一端插入或删除元素

D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素

54.在数据管理技术的发展过程中,可实现数据共享的是()

A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.系统管理阶段

55.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的输出是______。

A.23B.26C.33D.36

56.有下列程序:

fun(intx,inty){retum(x+y);}

main()

{inta=1,b=2,c=3,sum;

stun=fun((a++,b++,a+b),c++);

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

}执行后的输出结果是()。

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

57.算法的空间复杂度是指()。

A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间

58.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

59.下列对于软件测试的描述中正确的是()。

A.软件测试的目的是证明程序是否正确

B.软件测试的目的是使程序运行结果正确

C.软件测试的目的是尽可能多地发现程序中的错误

D.软件测试的目的是使程序符合结构化原则

60.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码

四、选择题(20题)61.

62.

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

A.4332B.2344C.1234D.1123

64.

65.以下程序的输出结果是________。main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(inta,intB){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}

A.8,17B.8,16C.8,20D.8,8

66.

67.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。

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

68.以下选项中叙述错误的是()。

A.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

B.在同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内

C.C程序函数中定义的自动变量,系统不自动赋确定的初值

D.C程序函数的性能不可以说明为static型变量

69.有以下程序段:

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

A.a=10b=50C=30

B.a=10b=50c=10

C.a=10b=30c=10

D.a=50b=30c:50

70.

71.用链表表示线性表的优点是()。

A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同

72.

73.某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)()。

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

74.若有定义:能把整数3赋给变量a,5赋给变量b的输入数据是()

A.3:5B.3,5C.35D.35

75.

76.

77.设变量已正确定义,则以下能正确计算f=n!的程序是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

78.下面程序输出的是()。

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.A.1,2,3,1,5,9,B.1,3,5,1,3,j,

C.1,3,5,0,4,8,

D.1,3。5,-1,3,7,

79.有以下程序段:

当执行上述程序段,从键盘上输入555667777abc后,y的值为()。

A.566.0B.55566.0C.7777.0D.566777.0

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

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

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:对M名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

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

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

试题程序:

六、程序设计题(1题)82.请编一个函数floatproe(doubleh),函数的功能是对变量h中的值保留2位小数,并对第3位进行四舍五人(规定h中的值为正数)。例如,若h值为7.32596,则函数返回7.33;若h值为7.32496,则函数返回7.32。注意:部分源程序给出如下。.请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.A依据fun函数,可知其要实现的功能是将S中第(t+1)个元素以前的元素逆置赋给数组P。由于fun中函数定义了静态变量t=3,因此,main函数中调用函数fun(a,&x)时,就是要将数组a中前4个元素逆置赋给数x,最后输出x数组。

2.A

3.BT为结构体类型名,可以用来定义结构体变量。故本题答案为B选项。

4.A

5.B详细解答:

数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科,它包含3个方面的内容,即数据的逻辑结构、存储结构和数据的运算。

6.C

7.B

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

9.B

10.B解析:子函数fun(intx,inty),将变量m和i声明为局部静态变量,因此第1次调用主函数后,局部静态变量m和i的值为5和3,第1次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m+1”时,i的值为9,因此最终m的值为11。

11.C数据字典(DD)是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。

12.B解析:本题考核软件工程中的需求分析环节。需求分析应交付的主要文档就是需求规格说明书。

13.A解析:在栈中,允许插人与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。故本题选A。

14.B

15.D本题考查静态变量,静态变量有储存已经操作过的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案选择D。

16.A解析:以下几种算法的时间复杂度分别为:冒泡排序(n2);选择排序(n2);快速排序(nlog2n);归并排序(nlog2n)。当排序元素序列基本有序的情况下,冒泡排序的交换次数为0,只是顺序扫描数据而已,所以其效率是最高的。

17.B解析:C语言中只有函数没有过程,故选项A错误;C语言可以嵌套调用,故选项B正确;C语言函数可以单独编译成.dll文件,故选项C错误;C语言中除main函数以外,其他函数可作为单独文件形式存在,故选项D也错误。

18.A

19.D答案D

解析:在选项D中,n是一个整型的变量。C语言规定,在一维数组的定义中,其下标只能是常量表达式,不能包含变量。

20.B解析:考查函数指针的使用方法。可以使用函数指针来调用函数。调用形式为:(*指针变量)(实参表列)。

21.void(*p)();void(*p)();解析:要定义p为指向函数的指针变量,需写成void(*p)();,注意*p两侧的括弧不可以省略,表示P先与*结合,是指针变量,再与后面的()结合,表示此指针变量指向函数,这个函数无返回值(同fun()函数)。

22.44解析:本题考查宏定义。预编译时,首先将M的宏定义带入K,得到N+1+1*N+1/2;再将N的宏定义带人,得到2+1+1*2+1/2=3+2+0=5,所以循环4次。

23.*b>*a

24.若结构体变量abc有成员a,并有指针p_abc指向结构变量abe,则引用变量abe成员s的标记形式有abe.a和p_abc->a。

25.数据模型数据模型

26.**pa+I**p*p

27.24682,4,6,8解析:子函数fun()的功能是将数组a中的元素都自加一遍,然后仍然将结果存在原数组中,其实就是将数组a的每个元素都变为原来的2倍,然后输出。在主程序中首先通过intfun()定义了子函数fun(),然后再调用fun()。

28.3535解析:考查swap()函数。函数swap(int*a,int*b)的功能是实现*a和*b中两个数据的交换,在主函数中调用swap(p,q)后,参形指针变量a和b分别指向i和j,在swap(int*a,int*b)执行完后,指针变量a和b分别指向j和i,而指针变量p,q所指向变量的值没有发生变化,所以输出结果为35。

29.1030010300解析:本题的考点是C语言的scanf的“%*d”。“%*d”是在输入流中跳过一个整数,而读入下一个整数。因此语句“scanf('%d%*d%d',&i,&j,&k);”在读入10、20、30时,将10读入到i中,将20跳过,将30读入到j中,而k没有读入数,仍是初值的0。

30.99解析:本题中首先将宏替换掉,则表达式为a=++k+1*k+1=4+1*4+1=9,故最后输出a的值为9。

31.6211342321

32.sd&km=id[j++]=ijv

33.1567815678解析:本题使用了双重while循环,外循环的循环条件是*p1++,即每次循环时让p1指向其后面的一个元素,而p1自增之前所指内容为0时循环结束。内循环的循环条件是*p1++=*p2++,即每次循环时让p1和p2指向其后面的一个元素,而将p2自增之前所指的元素复制到p1自增之前所指的地址中去,直到p2自增之前所指内容为0时循环结束。p1本来一开始是指向c1[0],由于外循环判断条件时让p1自增了,所以进入内循环时p1指向c1[1],而内循环将p2所指字符串复制到p1所指位置,所以内循环的结果是c1[1]、c1[2]、c1[3]、c1[4]、c1[5]分别被c2[0]、c2[1]、c2[2]、c2[3]、c2[4]改写成'5'、'6'、'7'、'8'、'\\0'。故程序输出的结果为15678。

34.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在统计字符串单词个数的算法中,本题的flag是为了记录—个单词是否结束。第18空应填*s++;如果某个字符不是空格,则必须判断它是否是单词,如是,则使得flag的标志为1,num的值加1。本题判断方法是:先判断s所指向的字符是否为空格,如果是则使得flag=0,否则判断前—个字符是否是空格,如果是则说明这个字符是—个单词的开始,将flag标志为1,num的值加1,如果不是,则不必记录。故第19空应填flag=0或*(s-1)='';最后—个空格需填写的是返回的单词的个数,即num。

35.floatfloat解析:在此表达式中x是float类型的变量,经过开方所得到的结果仍是float类型,再和2.8进行运算时,应该先将2.8转换成float类型再运算,最后结果仍是float型。

36.1.0/(i*i)或(double)1/(i*i)1.0/(i*i)或(double)1/(i*i)解析:表达式1+1/(2*2)+1/(3*3)+…+1(n*n)可写为1/(1*1)+1/(2*2)+1/(3*3)+…+1(n*n)

n

即;∑1÷(i×i)

i=1

对应的C语言的表达式s=s+1.0/(i*i)。注:必须要写成1.0的形式,否则1/(i*i)返回值为其值截尾取整,即恒为0。

37.人员资源人员资源

38.1515解析:程序通过递归调用实现求数组aa各元素之和,即a[4]+a[3]+a[2]+a[1]+a[0]=15。

39.循环链表循环链表解析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:①在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。②循环链表中最后一个结点的指针不是空,而是指向表头结点。

40.B

41.A解析:树的结点数等于所有结点的度与对应的结点个数乘积之和加1。对任何一棵二叉树T,如果其叶子结点数为n0,度为2的结点数为n2,则n0=n2+1,即叶子结点数总是比度为2的结点数多1。由于叶子结点个数为70,则度为2的结点数为70-1=69,所以总结点个数为69×2+80×1十1=219。

42.A解析:条件表达式“a?b:c”的含义是:当a为真时,其值等于表达式b的值;当a为假时,其值等于表达式c的值。

表达式运算过程:第1个表达式:w=2<x=3为真,所以返回w的值,即m=w=2;第2个表达式:m=2<z=5为真,所以返回m的值,即m=2;第3个表达式:w=2<y=4为真,所以返回m的值,即m=2。

43.A解析:通过地址来引用二维数组,若有以下定义:inta[3][4],i,j;且当0≤i≤3,0≤j<4则可以有以下几种方式来引用数组中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表达式&a[0][0]+2*i+j-2相当于是地址&a[0][0]加上多少偏移量。

44.D解析:题目中定义的函数fun()有两个参数,一个是字符型变量ch,另一个是浮点型变景x,函数类型是void即无返回值。选项A调用fun的第1个参数是字符串常量与字符变量不匹配,所以不正确。选项B是有返回值函数的调用形式,不正确。选项C的第1个参数是错误的字符常量,字符常量是用单引号括起来的—个字符(是转义字符可能有多个字符),故也不正确。选项D使用两个整型常量调用fun这在C语言中是允许的。因为整型到字符型可以自动转换,整型到浮点型也可以自动转换。故应该选择D。

45.C解析:程序中定义了两个变量a和b,并分别赋初值为7和8,定义了3个指针变量p、q、r,并让指针p指向变量a,让q指向变量b,然后通过一个中间指针变量r,使指针变量p和q互换,互换后p指向b,q指向a,因此最后输出的*p、*q的值为8、7、a、b的值没有改变仍为7、8。所以,4个选项中选项C符合题意。

46.B

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

\n

47.C解析:E-R模型可用E-R图来表示,它具有3个要素:①实体(型)用矩形框表示,框内为实体名称。②属性用椭圆型来表示,并用线与实体连接。属性较多时也可以将实体及其属性单独列表。③实体间的联系用菱形框表示。用线将菱形框与实体相连,并上标注联系的类型。

48.C解析:本题中首先定义了结构体类型STU,该结构体由一个长度为10的字符数组、两个整型变量num和Score组成。在主函数中,定义了一个长度为5的结构体数组s并赋初值,一个指针数组p和一个指针变量t,接着将数组s中各元素的地址依次赋给指针数组p中的各成员。然后通过两个for循环将数组p按Score的值从小到大的顺序排列。因此最后输出的p[1]->Score的值为550,而数组s[1].Score的值为580,所以,4个选项中选项C符合题意。

49.C解析:在计算(float)(a+b)/2时,由于通过强制类型转换将(a+b)转换成了float型,所以应先将2转换成float型,再进行计算,得4.500000。

在计算(int)x%(int)y时,先将x和y通过强制类型转换成int型,再进行求余运算,得1。

又因为4.500000是float型,所以将1和它相加时,先将1换成float型,再计算,得到5.500000。

注意:类型转换的一般规则是:低级类型服从高级类型,并进行相应的转换。数据类型的级别由低到高的排序表示为:char→int→unsigned→long→float→double。

50.B本题考查的是指向函数的指针。语句“int(*f)(int);”是对一个函数的声明,其中f是指向该函数的指针,该函数有一个整型的参数,函数返回值类型为整型。故答案选B)。

51.B解析:全程变量是可以在子函数中对其值作改变,且它也可作为函数间的值传递。但当函数或子函数中定义了与全程变量名称相同的局部变量,则全程变量将被屏蔽。

52.B解析:对于do…while循环,程序先执行一次循环体,再判断循环是否继续。本题先输出一次i的值“0,”,再接着判断表达式i++的值,其值为0,所以循环结束。此时变量i的值经过自加已经变为1,程序再次输出i的值“1”。

53.C解析:根据数据结构对栈的定义及其特点可知:栈是限定只在表尾进行插入或删除操作的线性表,因此栈是先进后出的线性表,对栈的插入与删除操作,不需要改变栈底元素。栈是限定只在表尾进行插入或删除操作的线性表。

54.C解析:本题考查了考生对数据库基础知识的记忆。数据库技术的主要目的是有效地管理和存取数据资源,包括提供数据的共享性,使多个用户能够同时访问数据库中的数据;减少数据的冗余度,以提交数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。数据库的人工管理阶段和文件系统阶段,数据都不能实现共享,出现数据冗余现象。选项D)的说法是错误的。

55.A解析:观察题目,可以发现,*p=&aa[0][0]语句实际是将数组aa的首地址赋给了指针变量p,将i的值带入for循环中,i=0时,aa[0][1]=3,*p=2;*p输出的是指针所指向的数组值,此时p所指向的是aa[O][0],输出2,而i=1时执行了++p操作使指针向后移动指向了aa[0][1],所以在输出*p时应为3。

56.C解析:函数fun(intx,inty)的功能是返回两个整型数据的和。在主函数中,变量a,b,c的初始值分别为1,2,3。因此逗号表达式“a++,b++,ab”的值等于5,表达式c++的值为3,调用子函数的表达式为“fun(5,3);”,其返回值等8。所以变量sam的值等于8。

57.D【解析】算法的空间复杂度是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。

58.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。

59.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。

60.A解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。

61.B

62.D

63.As[i]元素作为c数组的下标,使C数组元素自增,执行完毕后,c数组元素为04332。按题目要求输出,4332,所以答案选择A)。

64.C

65.A解析:将k和m的值带入函数func中,第—次调用完func()后,其中m和i的值要保留,并在第二次调用时使用,这是因为两者都是局部静态变量。所以最后的结果是8和17。

66.D

67.B解析:两个实体间的联系可以归纳为3种类型:一对一联系:一对一的联系表现为主表中的每一条记录只与相关表中的一条记录相关联。一对多联系或多对一:一对多的联系表现为主表中的每一条记录与相关表中的多条记录相关联。多对多联系:多对多的联系表现为一个表中的多个记录在相关表中同样有多个记录与其匹配。一间宿舍可以住多个学生,但每个学生只能住一个宿舍,所以实体宿舍和学生之间的联系为一对多的联系。

68.A静态变量不是每调用一次就赋一次初值,而是将需要定义许多相同的具有相同属性的值时,使用静态变量来节省空间,所以A选项错误。

69.B本题中a>b的条件不满足,所以不执行逗号表达式a=b,b=c;的操作,而是执行c=a操作,即c的值勾10。

70.C

71.CC。【解析】数据结构是相互之间存在一种或多种特定关系的数据元素的集合。”关系”描述的是数据元素之间的逻辑关系,因此又称数据的逻辑结构。数据的存储结构是指数据结构(数据的逻辑结构)在计算机中的表示,又称物理结构。数据的存储结构有顺序存储结构和链式存储结构两种。不同存储结构的数据处理效率不同。由于链表采用链式存储结构,元素的物理顺序并不连续,对于插入和删除无需移动元素,很方便,当查找元素时就需要逐个元素查找,因此查找的时间相对更长。

72.A

73.D根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总比度为2的结点多一个,因此本题中度为2的结点为l一1=0个,据此可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即深度为7,选择D)。

74.AsCanf中格式控制符里必须原样输入,所以分号也必须输入,A)正确。

75.C

76.D

77.D\n由n!的数字定义可知n!=n*(n-1)*(n-2)*…*1。在选项A中,由于f的初值为0,在for循环语句中,f依次乘以l,2,3,…,n,最后计算得到f=n!=0,所以选项A不正确。在选项B中,f的初值为1,在for循环语句中,f依次乘以l,2,3,…,(n-1),最后计算得到f=(n-1)!,所以选项B不正确。在选项C中,f的初值为l,在for循环语句中,f依次乘以n,n+1,n+2,……,所以选项C不正确。在选项D中,f的初值为l,在for循环语句中,f依次乘以n,n-1,n-2,…,2,最后计算得到f=n!,所以选项D正确。

\n

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

79.A它是格式输人函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。其中的格式命令可以说明最大域宽。在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。所以j的值为55,Y的值为566.0,字符数组llame为7777abc。

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

81.

【解析】因为t是指向一个动态存储空间,因此其是指针,而不是其中的内容,故把“*t=calloc(m,sizeof(STU))”改为“t=(structss*)calloc(m,sizeof(STU));”,而题目要求把学生的全部内容互换,因此即整个结构体,故把“t[k].num=b[j].hum;”改为“t[k]=b[j];”。

82.

【解析】要实现对变量的值保留2位小数。并对第3位小数进行四舍五入,可以通过先将其小数点后3位变为正数后加5,所得到的数除10,最后再除100来实现。

2022-2023年山东省莱芜市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列程序的运行结果是()。#include<stdio.h>voidfun(int*S,int*p){staticintt=3:*p=s[t];t--;}voidmain{inta[]={2,3,4,5),k;intx;for(k=0,k<4,k++){fun(a,&x);printf("%d,",x);}}A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5

2.当一个函数无返回值时,定义它的函数类型应是()。

A.voidB.intC.任意D.无

3.若有语句“typedefstructS{intg;charh;}T;”,则下列叙述中正确的是()。

A.可用S定义结构体变量B.可用T定义结构体变量C.S是struct类型的变量D.T是structS类型的变量

4.采用邻接表存储的图的深度优先遍历算法类似于二叉树的()。

A.先序遍历B.中序遍历C.后序遍历D.按层遍历

5.数据结构主要研究的是数据的逻辑结构、数据的运算和()。A.数据的方法B.数据的存储结构C.数据的对象D.数据的逻辑存储

6.

7.判断一个单向链表中是否存在环的最佳方法是()

A.两重遍历B.快慢指针C.路径记录D.哈希表辅助

8.下列数据结构中,能够按照“先进后出”原则存取数据的是()。

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

9.具有n个顶点的完全有向图的弧数为()。

A.n(n-1)/2B.n(n-1)C.n2D.n2-1

10.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}执行后的输出结果是()。

A.5,5B.5,11C.11,11D.11,5

11.数据字典(DD)所定义的对象都包含于()。

A.软件结构图B.方框图C.数据流图(DFD图)D.程序流程图

12.需求分析最终结果是产生

A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告

13.下列关于栈叙述正确的是A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.上述三种说法都不对

14.

15.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序运行后的输出结果是()。A.12345B.23445C.34756D.35745

16.在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。A.A.冒泡排序B.选择排序C.快速排序D.归并排序

17.以下叙述正确的是()。

A.C语言程序是由过程和函数组成的

B.C语言函数可以嵌套调用,例如:fun(fun(x))

C.C语言函数不可以单独编译

D.C语言中除了main函数,其他函数不可作为单独文件形式存在

18.二维数组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]

19.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];

D.intn=10,a[n];

20.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是

abs(intx)

{if(x>=0)returnx;

elsereturn-x;}

main()

{inty,z,(*p)(intx)=abs;

scanf("%d",&y);

z=(*p)(y);

;}

A.printf("%d%d\n",&p,z)

B.printf("%d%d\n",p,z)

C.printf("%d%d\n",*p,z)

D.printf("%d%d\n",p,*z)

二、2.填空题(20题)21.以下程序通过函数指针p调用函数fun,请在填空栏内写出定义变量p的语句。

voidfun(int*x,int*y)

{……}

main()

{inta=10,b=20;

【】:

p=fun;p(&a,&b);

……

}

22.以下程序中,for循环体执行的次数是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{inti;

for(i=1;i<K;i++){......}

23.下面程序的功能是输出数组中最大的数,由a指针指向该元素。请填空。

main()

{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11},*a,*b;

for(b=s,a=s;b-s<13;b++)

if(【】)a=b;

printf("%d",*a);}

24.设有定义“stmct{inta;floatb;charc}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc______。

25.【】是数据库设计的核心。

26.输出指针数组各元素所指的整数值和它存放的地址值。

#include<stdio.h>

main()

{inti;

inta[5]={1,3,5,7,9};

int*num[5];

int【】;

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

num[i]=【】;

p=num+0;

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

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

p++;

}

}

27.下列程序的运行结果是______。

#include<stdio.h>

main()

{intfun();

fun();

}

fun()

{staticinta[4]={1,2,3,4};

inti;

for(i=0;i<4;i++)a[i]+=a[i];

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

printf"\n");

}

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

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

}

29.以下程序运行时若从键盘输入:102030<回车>。输出结果是()。

#include<stdio.h>

main()

{inti=0,j=0,k=0;

scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);

}

30.以下程序的输出结果为【】。

#defineJFT(x)x*x

main()

{inta,k=3;

a=++JFT(k+1);

printf("%d",a);

}

31.若输入21、23、34、11、2、6,则以下程序的运行结果【】。

main()

{inti;

char+p,num[6];

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

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

scanf("%d",&num[5]);

p=&num[0];

sort(p,6);

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

printf("%d\n",num[5]);

}

sort(p,m)

char*p;

intm;

{inti;

charchange,*p1,*p2;

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

{p1=p+i;

p2=p+(m-1-i);

change=*p1;

*p1=*p2;

*p2=change;

}

}

32.以下程序调用随机函数得到N个20以内的整数放在s数组中。函数fun的功能是找出s数组中的最大数(不止一个)所在下标传回主函数进行输出,并把最大值作为函数值返回,请填空。

#defineN30

man()

{ints[N],d[N],i,k,m;

for(i=0,i<N;i++){s[i]=rand()%20;printf("%3d",s[i]);}

m=fun(【】);

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

printf(”Theindex;\n");

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

printf("\n\n");

}

fun(int*w,int*d,int*k)

{inti,j,m=0,v;

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

if(w[i]>w[m])【】;

v=w[m];

for(i=0,j=0;i<N;i++)

if(w[i]==v)【】;

*k=【】;

return【】;

}

33.下述程序的输出结果是【】。

#include<stdio.h>

voidmain()

{

charc1[20]="1234";

charc2[20]="5678";

char*p1,*p2;

p1=c1;

p2=c2;

while(*p1++)

while(*p1++=*p2++);

printf("%s,c1);

}

34.下述函数统计—个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】='')flag=0;

elseif(【】){flag=1;num++}

}

return【】;}

35.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。

36.函数pi的功能是根据以下近似公式求π值:

(π*π)/6=1+1/(2*2)+1/(3*3)+…+1(n*n)

现在请你在下面的函数中填空,完成求π的功能。

#include"math.h"

{doubles=0.0;longi;

for(i=1;i<=n;i++)s=s+【】;

return(sqrt(6*3));

}

37.软件开发过程中所使用的资源一般包括:【】、软件资源和硬件资源。

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

#include<stdio.h>

intf(ihta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

main()

intaa[5]={1,2,3,4,5},s;

s=f(aa,5);prinff("%d\n",s);

}

39.在运算过程中,能够使空表与非空表的运算统一的结构是【】。

40.下列二维数组初始化语句中,正确且与语句floata[][3]={0,3,8,0,9};等价的是

三、1.选择题(20题)41.一颗二叉树中共有70个叶子节点与80个度为1的节点,则二叉树的总节点数为()。

A.219B.221C.229D.231

42.若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;

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

43.现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为

A.21B.78C.23D.28

44.设函数fun的定义形式为voidfun(charch,floatx){…}则以下对函数fun的调用语句中,正确的是

A.fun("abc",3.0);

B.t=fun('D',16.5);

C.fun('65',2.8);

D.fun(32,32);

45.有以下程序: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);}程序运行后的输出结果是()。

A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

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

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

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

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

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

47.在E-R图中,用来表示实体之间联系的图形是()

A.矩形B.椭圆形C.菱形D.平行四边形

48.有以下程序:structSTU{charname[10];intnum;intscore;};main(){structSTUs[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},{"WangYin",20043,680},{"SunDan",20044,550),{'Penghua",20045,537}},*p[5],*t;inti,j;for(i=0;i<5;i++)p[i]=&s[i];for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(p[i]->Score>p[j]->Score){t=p[i];p[i]=p[j];p[i]=t;}printf("%d%d\n",s[1].Score,p[1]->Score);}执行后输出结果是()。

A.550550B.680680C.580550D.580680

49.若有定义:inta=4,b=5;floatx=3.4,y=2.1;,则下列表达式的值为()。(float)(a+B)/2+(int)x%(int)y

A.5.5B.55C.5.5D.55

50.设有定义语句int(*f)(int);,则以下叙述正确的是()。

A.f是基类型为int的指针变量

B.f是指向函数的指针变量,该函数具有一个int类型的形参

C.f是指向int类型一维数组的指针变量

D.f是函数名,该函数的返回值是基类型为int类型的地址

51.以下程序的结果是______。inta,b;voidfun(){a=100;b=200;}main(){inta=5;b=7fun();printf("%d%d\n",a,b);}

A.100200B.57C.200100D.75

52.若变量已正确定义,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其输出结果是()。

A.0,0B.0,1C.1,1D.程序进入无限循环

53.下列关于栈的描述正确的是()。

A.在栈中只能插入元素而不能删除元素

B.在栈中只能删除元素而不能插入元素

C.栈是特殊的线性表,只能在一端插入或删除元素

D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素

54.在数据管理技术的发展过程中,可实现数据共享的是()

A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.系统管理阶段

55.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的输出是______。

A.23B.26C.33D.36

56.有下列程序:

fun(intx,inty){retum(x+y);}

main()

{inta=1,b=2,c=3,sum;

stun=fun((a++,b++,a+b),c++);

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

}执行后的输出结果是()。

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

57.算法的空间复杂度是指()。

A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间

58.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

59.下列对于软件测试的描述中正确的是()。

A.软件测试的目的是证明程序是否正确

B.软件测试的目的是使程序运行结果正确

C.软件测试的目的是尽可能多地发现程序中的错误

D.软件测试的目的是使程序符合结构化原则

60.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码

四、选择题(20题)61.

62.

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

A.4332B.2344C.1234D.1123

64.

65.以下程序的输出结果是________。main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(inta,intB){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}

A.8,17B.8,16C.8,20D.8,8

66.

67.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。

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

68.以下选项中叙述错误的是()。

A.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

B.在同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内

C.C程序函数中定义的自动变量,系统不自动赋确定的初值

D.C程序函数的性能不可以说明为static型变量

69.有以下程序段:

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

A.a=10b=50C=30

B.a=10b=50c=10

C.a=10b=30c=10

D.a=50b=30c:50

70.

71.用链表表示线性表的优点是()。

A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同

72.

73.某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)()。

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

74.若有定义:能把整数3赋给变量a,5赋给变量b的输入数据是()

A.3:5B.3,5C.35D.35

75.

76.

77.设变量已正确定义,则以下能正确计算f=n!的程序是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

78.下面程序输出的是()。

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.A.1,2,3,1,5,9,B.1,3,5,1,3,j,

C.1,3,5

温馨提示

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

评论

0/150

提交评论