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.有下列程序:main{charp[]={a,h,c},q[]="a";printf("%d%d\n".sizeof(P),sizeof(q));}程序运行后的输出结果是()。A.44B.33C.34D.43

3.运行下列程序,若从键盘输入字符“a”,则输出结果是()。

charc;

c=getchar;

if(c>=a&&c<=g)c=c+4:

elseif(c>=9&&c<=2)c=c-21:

elseprintf("inputerror!\n");

putchar(c);

A.fB.tC.eD.d

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

A.continue语句的作用是使程序的执行流程跳出包含它的所有循环

B.break语句只能用在循环体内和switch语句体内

C.在循环体内使用break语句和continue语句的作用相同

D.break语句只能用于switch语句体中

5.对序线性表23,29,34,55,60,70,78用二分法查找值为60的元素时,需要比较次数为()

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

6.衡量显示器的主要技术指标是()

A.波特率B.分辨率C.主频D.显示速度

7.C语言中最简单的数据类型包括()。

A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.字符型、实型、逻辑型

8.以下程序的输出结果是().A.A.2222B.2468C.222D.246

9.若有定义;intw[3][5];,则以下不能正确表示该数组元素的表达式是()。A.*(*w+3)B.*(w+1)[4]C.*(*(w+1))D.*(&w[0][0]+1)

10.用树形结构表示实体之间联系的模型的是

A.关系模型B.网状模型C.层次模型D.以上三个都是

11.有以下程序:#include<stdio.h>main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);}程序的运行结果是()。

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

12.有下面程序段#include"stdio.h"#include"string.h"main(){chara[3][20]={{"china"};{"isa"},{bigcountry!"}};chark[100]={0},*p=k;inti;for(j=0;j<3;i++){p=strcat(p,a[i]);}i=strlen(p);printf("%d\n",i);}则程序段的输出结果是

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

13.下列选项中合法的赋值语句是()。

A.a=b=34B.a=34,b=34C.i-1;D.m=(int)(x+y);

14.一个栈的入栈序列是a,b,c,d,e,f,则栈的不可能的输出序列为()

A.fedcbB.defbcC.defcbD.abcdef

15.有定义语句:inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是

A.if(c<a)x=1;elseif(b<a)x=1;elsex=3;

B.if(a<3)x=3;elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

16.若有定义“intx,y;”,并已正确给变量赋值,则以下选项中与表达式“(x-y)?(x++):(y++)”中的条件表达式“(x-y)”等价的是()。

A.(x-y<0||x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y==0)

17.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为()。

A.CB.BasicC.DDLD.DML

18.以下叙述中,不正确的是()。

A.使用staticfloata定义的外部变量存放在内存中的静态存储区

B.使用floatb定义的外部变量存放在内存中的动态存储区

C.使用staticfloatc定义的内部变量存放在内存中的静态存储区

D.使用floatd定义的内部变量存放在内存中的动态存储区

19.有如下程序:

main

{inta=2,b=-1.c=2;

if(a<b)if(b<0)c=0;

elsec++;

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

}

该程序的输出结果是()。A.A.0B.1C.2D.3

20.

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

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wb");

fwtite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

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

}

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

23.若输入thistestterminal,以下程序的输出结果为:terminaltestthis。请填空。

#defineMAXLINE20

【】

{inti;

char*pstr[3],str[3][MAXLINE];

for(i=0;i<3;++)pstr[i]=str[i];

for(i=0;i<3;i++)scanf("%s",pstr[1]);

sort(pstr);

for(i=0;i<3;i++)prntf("%s",pstr[i]);

}

sort(【】)

char*pstr[3];

{inti,j;

char*p;

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

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

if(strcmp(*(pstr+i,*(pstr+j)>0

{p=*(pstr+i);

*(pstr+i=【】;

*(pstr+j)=p;

}

24.若a是int型变量,则表达式(a=2*3,a*2),a+4的值为______。

25.

main()

{printf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(【】);

returns;

}

F(intx)

{return(【】);)

26.对长度为8的线性表进行冒泡排序,最坏情况下需要比较的次数为()。

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

28.设有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

执行上面的程序段后,*(ptr+5)的值为______。

29.下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

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

printf("%\n",p+9);

}

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

31.阅读下列程序,则在执行后,程序的运行结果为#include"stdio.h"#include"string.h"main(){chara[30]="nicetomeetyou!";strcpy(a+strlen(a)/2,"you");printf("%s\n",a);}

32.若有以下程序

main()

{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-21,32,-33,0}};

inti,j,s=0;

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

{for(j=0;j<4;j++)

{if(a[i][j]<0)continue;

if(a[i][j]==0)break;

s+=a[i][j];

}

}

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

}

执行后输出结果是【】。

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

main()

charc;intn=100;

floatf=10;doublex;

x=f*=n/=(c=50);

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

34.已定义charch=′$′;inti=1,j;,执行j!=ch&&i++以后,i的值为【】。

35.以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda,请填空。

#include<string.h>

char*huiwen(char*str)

{char*p1,*p2;inti,t=0;

p1=str;p2=();

for(i=0;i<=strlen(str)/2;i++)

if(*p1++!=*p2--){t=1;break;}

if(t==0)return("yes!");

elsereturn("no!");

}

main()

{charstr[50];

printf("Input:");scanf("%s",str);

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

}

36.______是数据库应用的核心。

37.下面程序的功能是将字符串a下标值为偶数的元素由小到大排序,其他元素不变,请填空。

#include<stdio.h>

main()

{

chara[]="labchmfye",t:

int1,j;

for(i=0;i<7;i+=2)

for(j=i+2;j<9;【】)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;j++;}

puts(a);printf("\n");

}

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

#include<stdio.h>

main()

{intn=12345,d;

while(n!=0){d=n%10;printf("%d",D);n/=10;}

}

39.与表达式a+=b等价的另一书写形式是______。

40.有以下程序,若运行时从键盘输入:18,11<回车>,则程序的输出结果是【】。

main()

{inta,b;

printf("Entera,b:");scanf("%d,%d",&a,&b);

while(a!=b)

{while(a>b)a-=b;

while(b>a)b-=a;

}

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

}

三、1.选择题(20题)41.以下程序运行后,输出结果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fur(&p,a);printf("%d\n",*p);}

A.1B.7C.9D.11

42.设有以下程序段:structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'),*p;p=&a[0];下面选项中,其值为6的表达式为______。

A.P++->nB.p->n++C.(*p).n++D.++p->n

43.以下选项中可作为C语言合法整数的是A.10110BB.386C.0XffaD.x2a2

44.请读程序段:charstr[]="ABCD",*p=strprint("%d\n",*(p+4));程序段的输出结果是______。

A.68B.OC.字符'D'的地址D.不确定的值

45.若有下面的说明和定义:unionun{chars[10];longd[3];}ua;struetstd{charc[10];doubled;inta;unionunvb;}a;则printf("%d\n",sizeof(structstd)+sizeof(unionun));输出的值为______。

A.34B.52C.54D.64

46.以下不属于对象的基本特点的是()

A.分类性B.多态性C.继承性D.封装性

47.以下不能正确定义二维数组的选项是()。

A.inta[2][12]={{1},{2}};

B.inta[][2]={1,2,3,4};

C.inta[2][2]={{1},2,3}:

D.inta[2][]={{1,2},{3,4}};

48.下列不属于数据库管理系统提供的数据语言的是

A.数据定义语言B.数据查询语言C.数据操纵语言D.数据控制语言

49.在以下各标识符中,合法的用户标识符是()

A.1B.table__1C.0__tD.k%

50.将E-R图转换到关系模式时,实体与联系都可以表示成________。

A.属性B.关系C.键D.域

51.有以下程序#include<stdio.h>main(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=1;i<5;i++)printf("%d",c[i]);printf("\n");}程序的运行结果是

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

52.下列数据结构中,按先进后出原则组织数据的是

A.线性链表B.栈C.循环链表D.顺序表

53.待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第()个位置。

A.3B.5C.7D.9

54.以下对结构体类型变量td的定义中,错误的是

A.typedefstructaa{intn;floatm;}AA;AAtd;

B.structaa{intn;floatm;}td;structaatd;

C.struct{intn;floatm;}aa;structaatd;

D.struct{intn;floatm;}td;

55.以下合法的字符型常量是

A.'\x13'B.'\081'C.'65'D.\n

56.对下述程序,正确的判断是()。main(){inta,b;scanf("%d",&a);scanf("%d",&b);if(a>b)a+=b;b++;elseb+=a;a++;printf("%d,%d",a,b);}

A.有语法错误,不能通过编译

B.若输入数据2和5,则输出3和7

C.若输入数据5和2,则输出7和3

D.若输入数据5和5,则输出6和10

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

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

58.为了合理组织数据,应遵循的设计原则是()

A.“一事一地”的原则,即一个表描述一个实体或实体之间的一种联系

B.用外部关键字保证有关联的表之间的联系

C.表中的字段必须是原始数据和基本数据元素,并避免在表之间出现重复字段

D.以上各原则都包括

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

A.局部变量说明为static存储类,其生存期将得到延长

B.全局变量说明为static存储类,其作用域将被扩大

C.任何存储类的变量在未赋初值时,其值都是不确定的

D.形参可以使用的存储类说明符与局部变量完全相同

60.以下数据结构中不属于线性数据结构的是______。

A.队列B.线性表C.二叉树D.栈

四、选择题(20题)61.

62.

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

main

{charstr[]1-10]={"china","beijing"),*p=str;

printf("%s\n",p+10);

}

A.ChinaB.BeijingC.ngD.ing

63.若有定义和语句:

int*(*pp),*P,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,**PP);

则输出结果是()。A.A.20,10B.20,20C.10,20D.10,10

64.以下程序的输出结果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

65.

66.

67.在结构化分析方法中,数据字典的作用是()。

A.存放所有需要处理的原始数据

B.存放所有处理的结果

C.存放所有程序文件

D.描述系统中所用到的全部数据和文件的有关信息

68.

69.

70.有以下程序:main{inta=0,b=0;a=10;/*给a赋值b=20;给b赋值*/printf(“a+b=%d\n”,a+b);/*输出计算机结果*/}程序运行后的输出结果是()。A.a+b=10B.a+b=30C.30D.出错

71.下列关于数据库设计的叙述中,正确的是()。

A.在需求分析阶段建立数据字典

B.在概念设计阶段建立数据字典

C.在逻辑设计阶段建立数据字典

D.在物理设计阶段建立数据字典

72.若x=5,y=3则y*=x+5;y的值为___________.

A.10B.20C.15D.30

73.

74.有以下程序:

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

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

B.10,9,8,7,6,5,4,3,2,l,

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

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

75.在数据管理技术的发展过程中,先后经历了人工管理阶段、文件系统阶段和数据库系统管理阶段。其中数据独立性最高的阶段是

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

76.

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

A.isupper(c)

B.A<=c<=Z

C.A<=c&&c<=Z

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

77.

78.

79.现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。

structnode

{hardata;

structnode*next;)*P,*q,*r;

现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是()。A.q-:>next=r->next;p--:>next=r;rm:>next=q;

B.q-:>next=r;q->next=r->next;r->next=q;

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

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

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从字符串str中,删除所有大写字母'F'。

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

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

试题程序:

六、程序设计题(1题)82.编写函数fun,其功能是:将所有大于1小于整数m的非素数存人xx所指数组中,非素数的个数通过k返回。

例如,若输入l7,则应输出:46891012141516。

注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填人你编写的若干语句。

参考答案

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

2.C语句charp[]={a,b,c);定义了一个一维字符数组p[],并用3个字符a,b,c进行了初始化;而语句q[]="abe"表示定义了一个一维字符数组,并用一个字符串常量"abc"进行了初始化。在C语言中,系统在每个字符串常量的最后自动加入一个字符\0作为字符串的结束符。所以函数sizeof(q)=4,而sizeof(p)=3,因而选项C为正确答案。

3.C

\ngetchar函数是读取键盘的输入函数,本题中输入字母“a”,则c=a,判断if条件,发现a>=a&&a<=g成立,则执行下列语句:C=C+4,C得到的字符的ASCII码值,退出if语句,通过putchar函数输出字符。

4.Bcontinue语句的作用是跳过循环体中剩余的语句而进行下一次循环,所以A选项错误。break语句的作用是终止正在执行的switch语句体,跳出switch语句体或者强制终止当前循环,从当前执行的循环中跳出,所以C、D选项错误。故本题答案为B选项。

5.Cc)【解析】根据二分法查找法需要两次:①首先将60与表中间的元素55进行比较,由于60大于55,所以性表的后半部分查找。②第二次比较的元素是后半部分的中间元素,将60与表中间的元素70进行比较,由于60小于70,所以性表的前半部分查找。③第三次比较的元素是前半部分的中间元素,即60,这时两者相等,即查找成功。

6.B

7.B解析:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等,所以a+7=c+b是错的。因此,正确答案是选项B),它相当于a=(b=c+2),可分解为两个表达式:b=c+2和a=b。

8.D

9.B通过—维数组名或指向维数组元素的指针来引用数组元素有两种写法:a[i]和*(a+i),它们是等价的。这是一种运算符之间的等价转换,就好像a-(b-C)等价于a-b+c一样。知道了这种转换,我们可以将之扩展到二维数组甚至任意维数组上来。因为[]运算符的结合性是从左至右的,所以w[i][j]等价于(w[i][j],此时可以先将任意一个[]运算符转换为指针形式为:(*(w+i)[j]或*(w[i]+j),或者同时转换:*(*(w+i)+j)。上述几种形式都完全等价于w[i][j]。选项A中,*(*w+3)可以看成*(*(w+0)+3),即w[0][3],是正确的。选项B小,因为[]运算符的优先级高于*运算符,所以*(w+1)[4]等价于*((w+1)[4]等价于*(*((w+1)+4)),即*(*(w+5)+0),它等价于w[5][0],很明显它超过数组的范围了,故不正确。选项C等价于w[1][0],是下确的。选项D中,&w[0][0]是数组w第1个元素的地址,它等价于&*(*(w+0)+0),外面的&和*可以抵消,就好像先乘以个数,然后再除以这个数一样。所以,&w[0][0]等价于*(w+0)+0。即*w。所以原式就变为*(*w+1)等价于w[0][1],这个也是合法的。综上所述,本题应该选择B。

10.C解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有三种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。因此,本题的正确答案是C。

11.B内循环只循环一次就结束,第1次外循环时,t=t+b[0][b[0][0]]=1+b[0][0]=1+0=1;第2次外循环时,t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第3次外循环时,1=1+b[2][b[2][2]]=2+b[2][2]=2+2=4。故本题答案为B选项。

12.B解析:字符串连接函数strcat的调用形式如下:strcat(s1,s2)。此函数用来把s2所指字符串的内容连接到s1所指的字符串后面,并自动覆盖s1串末尾的尾标,函数返回s1的地址值。

13.D解析:选项A)是一个合法的赋值表达式,但结尾没加分号,所以它不是一个赋值语句;选项B)是一个逗号表达式,也因为结尾没有加分号而不是合法的赋值语句,选项C)是一个算术表达式,虽然有分号,但这个表达式没有赋值操作,因此,也不是一条赋值语句。

14.B

15.C解析:选项A首先判断if语句条件中表达式的值“3<1”为假,然后执行最近的else后面的语句,该else后面又为if-else语句,在这个if-else语句中首先判断该if语句条件中表达式的值“2<1”为假,程序执行其最近的else后面的语句,将3赋值给x。

选项B中首先判断if语句条件中表达式的值“1<3”为真,然后执行最近的else后面的语句“x=3”,后面的else不再执行,最后x的值为3。

选项C中,首先执行第一条if语句,由于“1<3”为真,执行此if后面的语句“x=3”,接着执行第二条if语句,由于“1<2”为真,执行此if后面的语句“x=2”,接着执行第三条if语句,由于“1<1为假,后面的语句不执行,所以最后的x值为2不为3。

选项D中;首先执行第一条if语句,由于“a<b”为真,执行此if后面的语句“x=b”;接着执行第二条if语句,由于“b<c”,为真,执行此if后面的语句“x=c”,接着执行第三条if语句,由于“c<a”为假,后面的语句不执行,所以最后的x值为c即为3。

16.A条件表达式“x=表达式1?表达式2:表达式3”的含义是:先求解表达式1,若其值不为0(真),则求解表达式2,将表达式2的值赋给x;若表达式1的值为0(假),则求解表达式3,将表达式3的值赋给X。本题中与条件表达式“(x-y)”等价的是“(x-y<0||lx-y>0)”。故本题答案为A选项。

17.C解析:选项A)、选项B)显然不合题意。数据定义语言(DataDefinitionLanguage,简称DDL)负责数据的模式定义与数据的物理存取构建;数据操纵语言(DataManipulationLanguage,简称DML)负责数据的操纵,包括查询及增、删、改等操作。

18.B

19.Celse与离它最近的if构成if…else语句,而当a为2时,第一个if语句不成立,因此什么也不做,即c的值仍然为2,故选择C选项。

20.C

21.12300123001,2,3,0,0,1,2,3,0,0,解析:本题考查文件读写函数fread和fwrite的用法。fwrite函数将数组a的前5个元素输出到文件fp中两次,共10个字节,再调用fread函数从文件fp中读取这10个字节的数据到数组a中,此时数组a的内容就变为{1,2,3,0,0,1,2,3,0,0},最后的输出结果为'1,2,3,0,0,1,2,3,0,0,'。

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

23.main()pstr*(pstr+j)

24.此题考查逗号表达式。逗号表达式的值是最后一个表达式的值,所以本题的返回值是a+4。前面已经给a赋值6,所以返回值a+4=6+4=10。

25.xx*x+1或1+x*xx\r\nx*x+1或1+x*x解析:题目中要求从x=0开始将f(x)的值累加起来,直到x=10。在SunFun()函数中用了一个for循环,每循环一次将f(x)累加到s中,所以在本题的第一个空白处应该填x,然后x+1,共循环10次。F()函数的功能应该是求数学表达式f(x)的值,所以其返回值应该为x*x+1。

26.2828解析:在最坏情况下,冒泡排序所需要的比较次数为n(n-1)/2;简单插入排序所需要的比较次数为n(n-1)/2;希尔排序所需要的比较次数为O(n1.5);堆排序所需要的比较次数为O(nlog2n)。

27.3232解析:二叉树的一个性质是,在二叉树的第k层上,最多有2k-1(k≥1)个结点。由此,26-1=32.所以答案为32。

28.'\0''\\0'解析:本题涉及字符数组和指针的两个知识点:①在C语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符'\\0'所以题中数组str有6个元素。②ptr指向数组str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

29.1a61a6解析:对于指针变量的运算,就是对地址的运算。本题中由于指针指向的是整型变量,所以,使指针变量移动9个位置也就是移动18个字节。注意,本题是以十六进制输出的。

30.数据库管理系统或DBMS数据库管理系统或DBMS解析:数据库管理系统(DatabaseManagementSystem,DBMS)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。因此,数据库系统中,数据库管理系统是实现各种数据管理功能的核心软件。本题的答案是数据库管理系统或DBMS。

31.D

32.5858解析:本题中处理二维数组元素用了两重循环,外循环变量i表示数组的行,内层循环变量j表示数组的列。在第二重循环中首先判断数组元素的值是否小于0,若是则处理该行的下一个元素;若不是则判断a[i][j]的值是否等于0,若等于0则退出内层循环开始处理下一行;其他情况下,把a[i][j]的值加到变量s中。所以本程序段的功能是把每行值为0的元素前面的所有大于0的元素值加到变量s中。

33.220.0或220或220.或220.000000220.0或220或220.或220.000000解析:所有的赋值运算符的优先级都相同,它们的结合性为从右至左,它们返回的表达式值为赋给变量的值.所以,语句x=f*=n/=(c=50):→x=f*=n/=50;→x=f*=2;(n的值变成2)→x=20;。故最终输出的结果应该是:220.000000

34.11解析:在执行逻辑表达式'j=!ch&&i++'时,首先判断j=!ch的值,因为'ch=\'$\''不为0,所以'j=!ch=0',编译系统便不再计算表达式'i++'的值,i的值不变,仍为1。

35.str+strlen(str)-1str+strlen(str)-1解析:检查一个字符串是否是回文,函数huiwen中定义了两个字符指针,pl=str指向字符串头,p2应该指向字符串尾,因此该处应该填入:str+strlen(str)-1或&str[strlen(str)-1]。

36.数据库设计数据库设计

37.j++a[j]>a[j]

38.5432154321解析:在while循环中,d=n%10;语句每次求得的结果是n个位上的数值,例如12345÷10所得的余数就是个位上的5。接下来输出得到的个位数字d,然后执行n/=10;语句,该语句等价于n=n/10;。在C语言中,如果/运算的两个运算分量都是整数,那所得的结果也截尾取整,所以12345/10=1234,即n-=n/10;语句的作用是让n截去个位上的数字。由此可知,随着while循环的继续,n依次为12345、1234、123、12、1,而每次输出n的个位数字将为5、4、3、2、1。故本题应填543210。

39.a=a+ba=a+b解析:a+=b与a=a+b等价,作用是把变量a的值加b后再赋给变量a。

40.1111解析:首先,程序通过scanf()函数将18和11分别读入到变量a和b中。然后,因为a!=b为真,进入外层while循环。此时a>b为真,执行a-=b;,a的值变为18-11=7:接下来b>a也为真,执行b-=a;,b的值变为11-7=4。此时a!=b还是为真,第2次进入外层循环。a>b为真,执行a-=b;,a的值变为7-4=3。b>a为真,执行b-=a;,b的值变为4-3=1接下来a!=b为真第3次进入外层循环。a>b为真,执行a-=b,a的值变为3-1=2。b>a为假,不执行b-=a;;然后第4次进入外层循环,a>b为真,执行a-=b,a的值变为2-1=1。b>a为假,不执行b-=a;此时a和b均为1了,a!=b条件为假,外层循环结束。故本题输出的结果是11。

41.C

42.D

43.C解析:本题考核的知识点是整数及常数的表示方法。在C语言中,整数常量可以用十进制、八进制和十六进制来表示,选项A为二进制表示,故选项A不正确;选项B是八进制表示法,但在八进制数中,各个位数只能为数字。到7中的一个,而在选项B中,有一个数字8,故选项B不正确;选项C为十六进制表示法正确:选项D中也为十六进制表示法,但十六进制数以Ox开头,故选项D不正确,所以,4个选项中选项c符合题意。

44.B解析:在对字符数组赋字符串值时,系统会自动在字符串的末尾加上—个字符串结束标志'\\0',故指向字符数组的指针p的*(p+4)的值为'\\0'。由于'\\0'的编码值就是0,所以本题输出为0。

45.B解析:结构体中的每个成员分别占用独立的存储空间,因此它所占的内存字节数是其成员所占字节数的总和;共用体变量所占内存字节数与其成员中占字节数最多的那个成员相等。

46.C解析:对象的基本特点包括;标识惟一性、分类性、多态性、封装性和独立性等。继承性不属于对象的基本特点。

47.D解析:在定义中如果对所有元素赋初值,其第1维的长度可以省略,故选项B正确;二维数组初始化也可以只对每行或前若干个行的前若干个元素赋初值,故选项A和选项C正确:在二维数组定义时不能省略第二维的长度,故选项D错误。所以,4个选项中选项D符合题意。

48.B解析:通常数据库管理系统提供的数据语言有数据定义语言、数据操纵语言和数据控制语言。其中数据操纵语言负责数据的操纵,包括查询及增、删、改等操作。所以查询语言属于数据操纵语言的一部分。

49.B

50.B解析:关系数据库逻辑设计的主要工作是将\ue008E-R\ue009图转换成指定RDBMS中的关系模式。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性,实体集也可以转换成关系。

51.C解析:程序中定义了两个数组s和c,数组c中有5个元素,每个元素的初始值为0;数组s中有12个元素,包含4个“1”,3个“2”,3各“3”,2个“4”。第一个for语句中,用s[i]作为c数组的下标,用于统计s[i]中相同数字的个数,同时将统计的结果放在以该数字为下标的c数组中。第二个for语句用于将c数组中a[1]~a[4]4个元素输出。

52.B解析:栈是限定在二端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照“先进后出”或“后进先出”的原则组织数据的。注意:队列组织数据的原则是“先进先出”或“后进后出”。注意:数据结构中,栈和队列组织数据的原则。

53.BB.【解析】快速排序的基本思想是:从表中选取一个元素(如本题中的33),将表中小于此元素的移到前面,大于此元素的移到后面,结果把线性表分割成两部分(两个子表),此元素插入到其分界线的位置处。然后分别对两个子表再次分割……本题中33作为分割的中界线,第一趟排序后排在比它小的18、9、25、12后面。

54.C解析:选项t中,aa为结构体变量,而不是结构体名称,不能再用来定义td。

55.A解析:C语言的字符常量是用单引号(即撇号)括起来的一个字符。除此之外,在C语言中还允许用一个“\\”开头的字符序列来表示字符常量。其中,形式“\\ddd'表示1到3位8进制数所代表的字符;形式“\\xhh'表示1到2位16进制数所代表的字符。在本题中,\'\\x13\'表示回车符,是一个字符常量;\'\\081\'用8进制数所代表的字符,但形式不正确,因为8进制数所代表的字符中不会出现数字“8”;\'5\'不是一个字符,而是一个十进制数字;\'\\n\'是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。

56.A解析:本题中的else语句和if语句之间有两条语句,并且未用大括号括起来,故编译通不过。所以应该选择A。

57.C

58.D解析:为了合理的组织数据,应遵循的设计原则有:“一事一地”的原则,即一个表描述一个实体或实体之间的一种联系;用外部关键字保证有关联的表之间的联系;表中的字段必须是原始数据和基本数据元素,并避免在表之间出现重复字段。所以选择D。

59.A解析:局部变量在执行到它所在的程序块时产生,执行完时被摧毁,而静态局部变量的生存期将一直延长到程序运行结束,故选项A正确;全局变量的只有一种静态存储类别,故全局变量说明为static存储类,和没有说明为static存储类其生存期都是一直延长到程序运行结束,故选项B不正确:未赋初值的局部变量的初值是随机的,故选项C不正确;形参只能是一般局部变量,不能使用任何存储类说明符,故选项D不正确。所以,4个选项中选项A符合题意。

60.C解析:线性表、栈和队列所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,它只能在固定的一端进行插入和删除操作,又称后进先出表(LastInFirstOut);队列是插入在一端进行,删除在另一端进行的线性表,又称先进先出表(FirstInFirstOut)。

61.C

62.B

\n本题考查指针,由*p=str可知,指针P指向字符串数组的首地划。二维数组str为每个字符串分配的存储空间是10个字节,因此p+10指向str[1][0],输出的字符串就是数组中的第2个字符串。

\n

63.D本题考查指针变量的赋值。**PP是定义一个指针变量,语句pp=&p是将pp指向指针P,*P和**PP都是指针P所指的内存空间的内容,即b的值。

64.C在“r=P;p=q;q=r;”三个语句是表示P与q交换,经过交换后P指向b的地址,q指向a的地址,因此最后输出为8,7,7,8,故选择C选项。

65.B

66.B

67.D在c语言中.结构化分析方法中的数据字典的作用是描述系统中所用到的全部数据和文件的有关信息。

68.B

69.C

70.AC语言规定,注释语句可以换行写,并且一个“/*”和其后紧跟的第一个“*/”中间的部分是注释内容,并且注释部分的内容不参与程序的执行,因此本

温馨提示

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

评论

0/150

提交评论