2021年安徽省蚌埠市全国计算机等级考试C语言程序设计真题(含答案)_第1页
2021年安徽省蚌埠市全国计算机等级考试C语言程序设计真题(含答案)_第2页
2021年安徽省蚌埠市全国计算机等级考试C语言程序设计真题(含答案)_第3页
2021年安徽省蚌埠市全国计算机等级考试C语言程序设计真题(含答案)_第4页
2021年安徽省蚌埠市全国计算机等级考试C语言程序设计真题(含答案)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

2021年安徽省蚌埠市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下面是有关C语言字符数组的描述,其中错误的是()。

A.不可以用赋值语句给字符数组名赋字符串

B.可以用输入语句把字符串整体输入给字符数组

C.字符数组中的内容不一定是字符串

D.字符数组只能存放字符串

2.设一棵二叉树共有50个叶子结点(终端结点),则共有___个度为2的结点。

A.25B.49C.50D.51

3.

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

A.循环队列是队列的一种链式存储结构

B.循环队列是队列的一种顺序存储结构

C.循环队列是非线性结构

D.循环队列是一种逻辑结构

5.一个无向连连通图的生成树是含有该连通图的全部项点的_______。

A.极小连通子图B.极小子图C.极大连通子图D.极大子图

6.数据流图中带有箭头的线段表示的是()。

A.控制流B.事件驱动C.模块调用D.数据流

7.下列选项中,能够满足“若字符串sl等于字符串s2,则执行ST”要求的是()。

A.if(stremp(s2,s1)==0)ST;

B.if(s1==s2)ST;

C.if(strcpy(sl,s2)==l)ST;

D.if(sl,s2==O)ST;

8.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()

A.a<>0B.!aC.a=0D.a

9.有以下程序

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-′a′+′A′;

s++;}}

main()

{charstr1[100]="abcddfefdbd",c=′d′;

ss(str1,c);printf("%s\n",str1);}

程序运行后的输出结果是

A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

10.链表不具有的特点是()。A.A.不必事先估计存储空间

B.可随机访问任意元素

C.插入、删除不需要移动元素

D.所需空间与线性表长度成正比

11.在位运算中,操作数每右移一位,其结果相当于()

A.操作数乘以2B.操作数除以2C.操作数除以16D.操作数乘以16

12.以下不合法的数值常量是()。

A.8.0E0.5B.1e1C.011D.0xabcd

13.已知10个元素(54,28,16,34,,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序树,查找值为62的结点所需比较次数为()

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

14.有以下程序:#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

15.若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是()。

A.switch(a+9){casecl:y=a-b;casec2:y=a+b;}

B.switcha*b{casel0:x=a+b;default:y=a-b;}

C.switch(a+b){casel:case3:y=a+b;break;case0:case4:y=a-b;}

D.switch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a-b;break;}

16.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储()。

A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法

17.语句int(*ptr)()的含义是()。

A.ptr是一个返回值是int的函数

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是一个函数名,该函数的返回值是指向血型数据的指针

18.下面关于B树和B+树的叙述中,不正确的结论是()。

A.B树和B+树都能有效的支持顺序查找

B.B树和B+树都能有效的支持随机查找

C.B树和B+树都是平衡的多叉树

D.B树和B+树都可用于文件索引结构

19.若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下面程序的运行结果是

#include<stdio.h>

main()

{charc;

intv0=1,v1=0,v2=0;

do{switch(c=getchar())

{case′a′:case′A′:

case′e′:case′E′:

case′i′:case′I′:

case′o′:case′O′:

case′u′:case′U′:v1+=1;

default:v0+=1;v2+=1;}}while(c!='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}

A.v0=7,v1=4,v2=7

B.v0=8,v1=4,v2=8

C.v0=11,v1=4,v2=11

D.v0=13,v1=4,v2=12

20.现在有16枚外形相同的硬币,其中一枚是假币,且已知假币比真币重量轻。先给定一架没有砝码的天平,问至少需要多少次称量才能找到这枚假币?

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

二、2.填空题(20题)21.以下程序的输出结果是【】。

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}

22.下面的程序实现字符串的复制。

voidcopy_string(from,to)

【】;

{for(;*from;from++,to++)

*to=*from;

【】;

}

main()

{char*a="Iamwang",*b="youareLi";

printf("%s\n%s\n",a,b);

【】;

printf("%s\n%s\n\n",a,b);

}

23.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。

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

#include<stdio.h>

main()

{inti;

for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);

printf("\n");

}

25.数据库系统中实现各种数据管理功能的核心软件称为【】。

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

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

}

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

charstr口="ABCD",*p=str;

printf("%d\n",*(p+3));

28.数据流图有两种典型的结构形式,它们分别是变换型和【】。

29.以下程序用来统计文件中字符个数。请填空。

#include"stdio.h"

main()

{FILE*fp;longnum=OL;

if((fp=fopen("fname.dat","r")==NULL)

{Pirntf("Openerror\n");exit(0);}

while(【】)

{fgetc(fp);num++;}

printf("num=%1d\n",num-1);

fclose(fp);

}

30.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。

31.算法的复杂度主要包括【】复杂度和空间复杂度。

32.对下列二叉树进行中序遍历的结果为【】。

33.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。

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

35.数据库三级模式体系结构的划分,有利于保持数据库的【】。

36.语句"int(*ptr)();"的含义是______是指向函数的指针,该函数返回一个int型数据。

37.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控制。

38.以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次放到该文

件中,用井作为结束输入的标志。请填空。

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenameoffile\n");

gets(fname);

if((fp=【】)==NULL)

{printf("Cannotope\n");exit(O);}

printf("Enterdata\n");

while((ch=getchar())!='#')

fputc(【】,fp);

fclose(fp);

}

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

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

40.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于【】。

三、1.选择题(20题)41.已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是A.A.堆排序B.直接插入排序C.快速排序D.B和C

42.以下程序的输出结果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

43.在int(*prt)[3];定义中,标识符prt()。

A.定义不合法

B.是一个指针数组名,每个元素都是一个指向整型变量的指针

C.是一个指针,它指向一个具有三个元素的一维数组

D.是一个指向整型变量的指针

44.下列选项中错误的说明语句是

A.chara[]={'t''o','y','o','u','\0'};

B.chara[]={"toyou\0"};

C.chara[]="toyou\O";

D.chara[]='toyou\0';

45.下列程序的输出结果是()。#include<stdio.h>voidmain(){intb[6]={2,4,6,8,10,12};int*p--b,**q=&p;printf("%d",*(p++));printf("%d",**q);}

A.*p=&a;scanf("%1f",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%1f",*p);

D.p=&a;scanf("%1f",p);

46.下面程序的输出结果是#include<stdio.h>#include<string.h>main(){char*pl="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}

A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC

47.下面程序的运行结果是

#include<stdio.h>

main()

{staticchara[]="Languagef",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));}

A.gaeB.gaC.LanguageD.有语法错

48.下面程序的输出结果是()maint(){char*s="121";intk=0,a=0,b=0;do{k++;if(k%2==0){a=a+s[k]-'0';continue;}b=b+s[k]-'0';a=a+s[k]-'0'}wnile(s[k+1]);printf("k=%da=%db=%d\n",k,a,b);}

A.k=3a=2b=3B.k=3a=3b=2C.k=2a=3b=3D.k=2a=2b=3

49.下列叙述中,正确的是

A.线性表是线性结构B.栈和队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构

50.设有定义:intn1=0,n2,*p=&n2,*q=&n1;,下列赋值语句中与n2=n1;语句等价的是()。

A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

51.结构化程序设计的主要特点是()。

A.每个控制结构要模块化B.每个控制结构具有封装性C.每个控制结构具有独立性D.每个控制结构只有一个入口和一个出口

52.有以下程序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.程序进入死循环

53.在下列给出的表达式中,与while(E)中的(E)不等价的表达式是()。A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)

54.分析下面的程序main(){int*p1,*p2,*p;intx=4,y=6;p1=&x;p2=&y;if(x<y){p=p1;p1=p2;p2=p;}printf("%d,%d,",*p1,*p2);printf("%d,%d\n",x,y);}程序的输出结果为_______。

A.6,4,4,6B.4,6,6,4C.4,6,4,6D.6,4,6,4

55.以下各选项均为说明一种新的类型名,其中正确的是()。

A.typedefv1int;

B.typedefv1=int;

C.typedefintv1;

D.typedefv1=int;

56.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是______。

A.c=b=a;B.(a=c)||(b=c):C.(a=c)&&(b=c);D.a=c=b;

57.若要定义a为3×4的二维数组,正确的定义语句是()

A.floata(3,4);

B.floata[3][4];

C.floata(3)(4);

D.floata[3,4];

58.若定义了以下函数;voidsub(……){……*t=(int*)malloc(10*sizeof(int));……}其中t是该函数的形参,要求通过t把动态分配存储单元的地址传回主调函数,则形参t的正确定义应该是()

A.int*tB.int**tC.long**tD.long*t

59.下列函数定义中,会出现编译错误的是()。

A.max(intx,inty,int*z){*z=x>y?x:y;}

B.intmax(intx,y){intz;z=x>y?x:y;returnz;}

C.max(intx,inty){intz;z=x>y?x:y;return(z);}

D.intmax(intx,inty){return(x>y?x:y);}

60.有以下程序:main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是______。

A.m=123n=456p=789

B.m=123n=456p=789

C.m=123,n=456,p=789

D.123456789

四、选择题(20题)61.以下关于C语言的叙述中,不正确的是

A.C语言中的注释可以夹在变量名或关键字的中间

B.C语言中使用变量必须是先定义后使用

C.C语言表达式运算符两侧的运算数类型必须一致

D.C语言的数值常量中夹带空格不影响常量值的正确表示

62.下列程序的输出结果是()。#includeintfun(inta){intb=0;staticintc=4;a=c++;b++;return(a);}main{inta=2,i,c;for(i=0:i<2;i++)c=f(a+1);printf("%d\n",c);}A.4B.7C.6D.5

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

A.软件结构定义

B.模块独立性

C.模块类型划分

D.模拟耦合度

64.以下不能输出字符A的语句是()。(注:字符A的ASCIl码值为65,字符a的ASCIl码值为97)

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

A.在C程序中,逗号运算符的优先级最低

B.在C程序中,APH和aph是两个不同的变量

C.若a和b类型相同,在计算赋值表达式a=b后,b的值将放入a中,而b的值不变

D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

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

A.软件结构定义B.模块独立性C.模块类型划分D.模块耦合度

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

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

68.有以下程序:

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

A.10B.16C.6D.12

69.函数调用strcat(strcpy(str1,str2),str3)的功能是()。

A.将字符串str1复制到字符串str2中后再连接到字符串str3之后

B.将字符串str1连接到字符串str2之后再复制到字符串str3之后

C.将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后

D.将字符串str2连接到字符串str1之后再将字符串strl复制到字符串str3中

70.有以下程序:

voidmain()

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

p=s;

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

}

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

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

71.有以下程序:

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

A.9,18B.8,11C.7,11D.10,14

72.

73.

74.

75.以下定义语句中正确的是()。

A.inta=b=0;

B.charA=65+1,b=’b’;

C.floata=1,*b=*a,*C=&b;

D.doublea=0.0;b=1.1;

76.在黑盒测试方法中,设计测试用例的主要根据是()。

A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图

77.

78.

有以下程序:

fun(intx)

{intP;

if(x==0||x==l)return(3);

p=x-fun(x-2);

returnp;

}

main

{printf("%d\n",fun(7));}

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

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

79.

80.

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:先将字符串s中的字符按顺序存放到t中,然后把S中的字符按正序连接到t的后面。例如,当s中的字符串为WXYZ时,则t中的字符串应为WXYZWXYZ。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>voidproc(char*s,char*t){inti,s1;s1=strlen(s);for(i=0;i<s1;i++)//****found****t[i]=s[s1];for(i=0;i<s1;i++)t[s1+i]一s[i];t[2*s1]=\O0;}voidmain{chars[100],t[100];system("CLS");print{("\nPleaseenterstrings:");scanf("%s",s);proc(s,t);printf("Theresultis:%s\n",t);}

六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放人结构体数组stu中。请编写函数proc(),它的功能是:函数返回指定成绩的学生数据,指定的成绩在主函数中输入。若没找到指定的成绩,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:

参考答案

1.D\n用来存放字符量的数组称为字符数组。字符数组也可以是二维或多维数组,对一个字符数组,如果不作初始化赋值,则必须说明数组长度,还可用printf函数和scarlf函数一次性输出/输入一个字符数组中的字符串,而不必使用循环语句逐个地输入/输出每个字符。通常用一个字符数组来存放一个字符串。所以D选项不正确。

\n

2.B难易程度:易

3.C

4.B本题主要考查循环队列的概念,循环队列作为队列的一种也应该是线性结构。队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列。

5.A

6.D解析:数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要的图形元素与说明如下:

加工(转换):输入数据经加工变换产生输出。

数据流:沿箭头方向传送数据的通道,一般在旁边标注数据流名。

存储文件(数据源):表示处理过程中存放各种数据的文件。

源,潭:表示系统和环境的接口,属系统之外的实体。

7.Astrcmp(char*,char*),函数strcmp用于比较两个字符串的长度,长者为大,若字符个数也一样,则从左至右依次比较相同位上的字符,字符大小按ASCIl表值计算,直到最后一个字符,若还相同,则两个字符串相等,返回值0。选项A中if(strcmp(s2,sl)==0)ST,若s2等于sl,则返回值0,0等于0,所以逻辑表达式strcmp(s2,sl)==0为真,执行ST。

8.D

9.B解析:在内存中,字符数据以ASCII码存储,它的存储形式与整数的存储形式类似。C语言中,字符型数据和整型数据之间可以通用,也可以对字符型数据进行算术运算,此时相当于对它们的ASCII码进行算术运算,在本题中,s++相当于s=s+1,即让s指向数组中的下一个元素。

10.B链表采用的是链式存储结构,它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,插入、删除不需要移动数据元素。但是链式存储结构也有不足之处:每个结点中的指针域需额外占用存储空间,它是一种非随机存储结构。

11.B

12.AA选项中E后面的指数必须为整数,所以不合法。C选项中的011表示的是八进制常量,D选项中的0xabcd表示的是十六进制常量。故本题答案为A选项。

13.B

14.D程序首先将数组a中的元素1、2、3分别写入了d1.dat文件中,再将d1.dat文件中的数据“123”整体写到变量n的空间中,所以输出的数据为123。故本题答案为D选项。

15.D选项A,当cl和c2相等时,不成立;选项B,a*b要用括号括起来;选项C,case与后面的数字用空格隔开。

16.C

17.C解析:本题考查的是指向函数的指针.函数指针定义的基本格式为:类型标识符(*指针变量名)()。“类型标识符”为函数返回值的类型。

18.A

19.D解析:本题考查switch语句的掌握。必须撑握以下内容:首先应该明白switch语句的语法格式:

switch语句的语法格式为:

switch(表达式)

{

case常量表达式1:语句组1;

case常量表达式2:语句组2;

case常量表达式n:语句组n;

default:语句组n+1;

}

另外,以下几点关于switch语句的重点:

①系统在执行时计算开关表达式的值;②根据所得的值在各个case标号表达式中寻找匹配,直到发现与表达式匹配的标号(本例中匹配的是case\'B\':);\ue008③找\ue009到匹配后执行后面相应的语句表,顺序往下执行;④如果无相匹配的标号,若存在default标号,则执行该语句标号后面的语句表n+1;当不存在default标号时,不执行switch中的任何一个语句表。

一般而言,在多分支结构中总会出现'意外'的情况,这时均可归入default程序段,作统一的处理。default标号是可选性的,不必每次都有,视需要而定。switch语句中还可以包含switch语句,形成switch的嵌套。

20.A

21.99解析:本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符,将一个表达式转换成所需类型。如:(double)a是将a转换成double类型;(int)(x+y)是将x+y的值转换成整型。

本题可按部就班地逐步运算:

fun((int)fun(a+c,b),a-c)

fun((int)fun(10,5),2-8)

fun((int)15.000000,-6)

fun(15,-6)

9

22.char*from*to*to='\0'copy_string(ab)char*from,*to\r\n*to='\\0'\r\ncopy_string(a,b)解析:函数copy_string()用到了形参from,to是指针变量,实参a、b是字符串指针,第一个空格应填形参说明语句“char*from,*to”。当from所指的字符串全部复制给to所指的字符串时,有可能to所指原字符串长度大于from所指字符串长度,即可能to所指串的后面字符仍留在复制后的to所指串中。为避免这种情况,必须在from所指串复制完后,马上给to所指串加上串结束符。因此,第二个空格应填*to='\\0'。main()函数应调用copy_string()函数,第三个空格应填copy_string(a,b)。

23.关系关系解析:关系模型用;维表表示,则每个;维表代表一种关系。

24.ACEACE解析:在本题中,for循环体每执行完一次,变量i的值自加两次。i的初值为\'a\',执行一次循环后变为\'c\',之后再变成\'e\',当其变为\'g\'时,循环条件若不满足,循环终止,故本题共输出3个字符。表达式'i-\'a\'+\ue008\'A\'\ue009'即表示输出i对应的大写字母,结果为ACE。

25.数据库管理系统数据库管理系统(DBMS)

26.11解析:因为在条件表达式(a<b)?a:b中,比较表达式a<b为真,所以x的值等于a的值等于1,后面两个条件表达式中的比较表达式都为真,所以最终x的值等于1。

27.6868解析:本题考查如何用指针引用数组元素。本题先定义了一个指向字符型数组str的指针p,指针p指向数组str的首地址,p+3将指针指向str[3],*(p+3)指的是字符“D”,输出时是以“%d,格式输出的,即输出其相应ASCII码值68。

28.事务型事务型解析:数据流图中有众多的加工,但必有一个加工是起核心作用的,即中心加工。由数据流图导出结构图的关键是找出中心加工。一般来说,中心加工有两种存在形态,即数据流图的两种典型结构形式:变换型和事务型。

29.!feof(fp)!feof(fp)解析:本题中统计文件中字符个数的算法可描述为;首先判断文件位置指针是否指向了文件尾,如果不是则读出一个字符,同时字符的个数加1,再判断文件位置指针是否位于文件尾,如此循环,直到文件位置指针位于文件尾为止。本题首先以读文件的方式打开了文件“fname.dat”,如果打开成功则把返回的文件型指针赋值给fp,然后通过循环求文件中的字符数。首先判断文件位置指针是否位于文件尾,如果不是则循环读取字符,每次字符数加l。所以下划处应填循环条件,文件位置指针不是指向文件尾,即“!feof(fp)”。

30.模块化模块化

31.时间时间解析:算法的复杂度主要指时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。

32.ACBDFEHGPACBDFEHGP解析:中序遍历方法的递归定义;当二叉树的根不为空时,依次执行如下3个操作:①按中序遍历左子树。②访问根结点。③技中序遍历右子树。根据遍历规则来遍历本题中的二叉树。首先遍历F的左子树,同样按中序遍历。先遍历C的左子树,即结点A,然后访问C,接着访问C的右子树,同样按中序遍历C的右子树,先访问结点B,然后访问结点D,因为结点D没有右子树,因此遍历完C的右子树,以上就遍历完根结点F的左子树。然后访问根结点F,接下来遍历F的右子树,同样按中序遍历。首先访问E的左子树,E的左子树为空,则访问结点E,然后访问结点E的右子树,同样按中序遍历。首先访问G的左子树,即H,然后访问结点G,最后访问G的右子树P。以上就把整个二叉树遍历一遍,中序遍历的结果为ACBDFEHGP。因此,划线处应填入“ACBDFEHGP”。

33.E-R图E-R图解析:数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将E-R图转换成关系模式。

34.有效性测试有效性测试

35.数据独立性数据独立性解析:数据库的三级模式体系结构把数据的组织管理工作进行了划分,把数据的具体组织留给DBMS管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式,保证了数据的独立性。

36.ptrptr解析:本题考查函数指针的概念。函数指针的定义格式是:类型标识符(*旨针变量名)()。注:“类型标识符”为函数返回值的类型。

37.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。

38.fopen(fname:"w")

39.246

40.一对多一对多解析:由于一个项目主管可以管理多个项目,而一个项目只能有一个项目主管,“项目主管”这个实体与“项目”这个实体的管理关系属于一对多。

41.B解析:堆排序的比较次数为nlog2n;直接插入排序的比较次数为n(n-1)/2;快速排序的比较次数为nlog2n。当数据表A中每个元素

42.C解析:本题考查按位与“&”。因为1&1=1,0&0=0,所以任何数与自身按位与,结果仍为此数,不发生变化。

43.C解析:此题的关键是要分清指针数组与指向一维数组指针之间的不同,题中的说明语句定义了一个指针变量prt,它指向包含三个整数元素的一维数组。要注意:*prt两侧的圆括号不能缺少,如果写成*ptr[3],则ptr与[3]先结合,是数组,然后再与前面的。号结合,则*ptr[3]将是一个指针数组。

44.D解析:通过赋初值的方式给一维数组赋字符串,可以用给一般数组赋初值的相同方式给一维字符数组赋字符串,也可以在赋值时直接赋字符串常量。选项B)和C)后面的'\\0'是多余的,在C语言中,系统会自动在字符串的结尾处加上一个字符'\\0'作为串的结束标记。

45.D解析:double*p,a;语句表示定义了一个指向双精度型的指针变量p和双精度型变量a,而语句p=&a表示将变量a的地址赋给指针变量p;scanf('%1f',p)表示用键盘输入的数赋给指针变量p所指向的地址单元中。scanf()函数要求在输入double型数据,格式控制符必须用%1f(或%1e)。否则,数据不能正确输入。所以选项D)为正确答案。

46.C解析:本题考查的重点是拷贝字符串——使用strcpy()函数,该函数的调用方式是:strcpy(字符数组,字符串),其中”字符串”可以是字符串常量,也可以是字符数组。函数的功能是:将“字符串”完整地复制到“字符数组”中,字符数组中原有的内容被覆盖。

使用该函数时注意:①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志'\\0'一起复制;②不能用赋值运算符“:”将一个字符串直接赋值给一个字符数组,只能用strcpy()函数处理。

另外,本题还考查连接字符串的strcat()函数,其调用方

47.A解析:考查用指针来引用字符数组元素的方法。指针p1+k相当于指针p1向后移动了k个字符的位置,指针p2同理。

48.C

49.A解析:所谓的线性结构是指:如果一个非空的数据结构满足下列两个条件:

1)有且只有一个根结点;

2)每一个结点最多有一个前件,也最多有一个后件。所以同时满足两个条件的有队列、线性表、栈,而二叉树的结点可能存在两个后件,不是线性结构。

50.A解析:在定义指针变量p和q时,分别把变量n2和n1的地址赋给了指针变量p和q,所以*p和*q中内容就分别是变量n2和n1的值,所以语句*p=*q与语句n2=n1等价。因此选项A)正确。

51.D解析:结构化程序设计要求把程序的结构限制为顺序、选择和循环三种基本结构,以便提高程序的可读性。这种结构化程序具有以下两个特点:首先,以控制结构为单位,只有一个入口和一个出口,使各单位之间的接口比较简单,每个单位也容易被人们所理解;其次,缩小了程序的静态结构与动态执行之间的差异,使人们能方便、正确地理解程序的功能。本题的正确答案是D。

52.D解析:本题程序中的for循环省略了for语句的3个表达式,如果循环体中没有break语句的话则为死循环。循环中每次i被增1,当i到6时才能执行到break语句跳出循环,但是当i自增到3的时候会执行continue语句重新循环,此时后面的“i++;”语句执行不到,i的值为3一直没有改变,所以continue语句始终要执行,因此for循环将一直循环下去,所以,4个选项中选项D符合题意。

53.B在while(E)中,表达式E可以是C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项8中表达式E>0||E<0是一个逻辑表达式。

54.A解析:if语句执行前,指针变量p1指向变量x,指针变量p2指向变量y。由于x<y成立,p1、p2分别指向变量y和变量x,因此,程序输出结果是6,4,4,6。

55.C解析:使用typedef定义新类型名的一般格式是:typedef<旧类型名><新类型名>。选项A,int是C语言中已经有的类型名,不能再被定义成其他类型名,故不正确:选项B的格式不正确;选项C是将v1定义成int型,正确;选项D格式不正确。所以,应该选择C。

56.C

57.B

58.B

59.B解析:本题考核的知识点是函数的定义方法。选项B中在说明形参时,省略了第二个参数的类型,故选项B编译不能通过。

60.A解析:正确输入各变量的值,输入的格式应该和输入语句中的“格式控制”字符串的格式对应一致。

61.CA选项指出“C语言中的注释可以夹在变量名或关键字的中间”,该选项是正确的。通常采用/*.....*/作为C语言里的注释符,注释符之间的内容是方便他人理解程序而写的,对编译和运行不起作用。注释可以在程序的任何位置。

B选项“C语言中使用变量必须是先定义后使用”,该选项是正确的。变量先定义后使用是编程语言的语法规则。这样可以让编译器首先知道该定义变量的类型,可以事先为该变量安排好存储空间,不至于最后编译失败。如果预先没有定义,编译器会因为不清楚该变量的类型而导致随意分配内存空间,这样可能导致空间分配过大了浪费或因为空间过小无法存储数据。

C选项“C语言表达式运算符两侧的运算数类型必须一致”,该选项是错误的。C语言允许整型、实型、字符型数据间进行混合运算。

温馨提示

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

评论

0/150

提交评论