2022年山东省滨州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页
2022年山东省滨州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页
2022年山东省滨州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页
2022年山东省滨州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页
2022年山东省滨州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

2022年山东省滨州市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是A.O(n)

B.O(n2)

C.O(log2n)

D.O(nlog2n)

2.最小堆[0,3,2,5,7,4,6,8],在删除堆顶元素0之后,其结果是()

A.[3,2,5,7,4,6,8]

B.[2,3,5,7,4,6,8]

C.[2,3,4,5,7,8,6]

D.[2,3,4,5,6,7,8]

3.若变量c为char类型,能正确判断出c为小写字母的表达式是A.A.′a′<=c<=′z′c="">=′a′)||(c<=′z′)

B.(′a′>=c)and(′z′>=c)

C.(′a′<=c)and(′z′>=c)

D.(c>=′a′)&&(c<=′z′)

4.若已包括头文件<string.h>且已有定义chars1[18],s2={"ABCDE"}和inti,现要将字符串"ABCDE"赋给s1,下列语句错误的是()。

A.strcpy(s1,s2)

B.strcpy(s1,"ABCDE");

C.s1="ABCDE";

D.for(i=0;i<6;i++)s1[i]=s2[i];

5.若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为()。

A.334HB.30DHC.352HD.31AH

6.

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

A.C程序中注释部分可以出现在程序中任意合适的地方

B.花括号"{"和"}"只能作为函数体的定界符

C.构成C程序的基本单位是函数,所有函数名都可以由用户命名

D.分号是C语句之间的分隔符,不是语句的一部分

8.

9.有以下程序:

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

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

10.若串S=,software,其子串的数目是()。

A.8B.37C.36D.9

11.以下叙述正确的是

A.continue语句的作用是结束整个循环的执行

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

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

D.从多层循环嵌套中退出时,只能使用goto语句

12.关系R和关系S的并运算是______。

A.由关系R和关系S的所有元组合并组成的集合,再删去重复的元组

B.由属于R而不属于S的所有元组组成的集合

C.由既属于R又属于S的元组组成的集合

D.由R和S的元组连接组成的集合

13.右两个关系R和S如下:

则由关系R得到关系S的操作是()。A.自然连接B.并C.选择D.投影

14.如果最常用的操作是取第i个结点及其前驱,则采用()存储方式最节省时间。A.单链表B.双链表C.单循环链表D.顺序表

15.任何一棵二叉树的叶子结点在前序、中序和后序遍历序列中的相对次序()。

A.不发生改变B.发生改变C.不能确定D.以上都不对

16.若输入“abcdef”“abdef”,下述程序的输出结果为()。#include<stdio.h>#include<string.h>main{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.-1B.0C."abcdef"D."abdef"

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

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

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

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

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

18.下列运算符中,运算对象必须是整型的是()。

A./B.%=C.=D.&

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

A.CB.BasicC.DDLD.DML

20.有以下程序:#include<stdio.h>main(){chars[]=“abcde”;s+=2;printf(“%d\n”,s[0]);}程序的运行结果是()。

A.输出字符c的ASCII值B.程序出错C.输出字符cD.输出字符a的ASCII值

二、2.填空题(20题)21.若下面程序的输出结果是4,请填空。

main()

{inti,j,k;

k=0;i=j=【】;

k+=-(i+j);printf("%d\n",k);

}

22.语句printf("%f\n",13.0*(1/5));的输出结果为【】。

23.下列程序的输出结果是【】。

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

24.若有如下结构体说明:

structSIRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。

【】t[20]

25.fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。

#include<stdio.h>

#defineN100

intfun(int(*a)[N])

{

introw,col,max,min;

for(row=0;row<N;row++

{

for(max=a[row][0],col=1;col<N;col++)

if(【】)max=a[row][col];

if(row==0)min=max;

elseif(【】)min=max;

}

returnmin;

}

26.若有定义语句chars[100],d[100];intj=0,i==0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)

while(s[i]=【】;j++;}

d[j]=0;

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

28.若a是血型变量,且a的初值为4,则计算a+=a-=a*a表达式后a的值为______。

29.如果输入'1'、'2'、'3'、'4',则以下程序的运行结果为【】。

#include<stdio.h>

main()

{charc;

inti,k;

k=0;

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

{while(1)

{c=getchar();

if(c>='0'&&c<='9')break;

}

k=k*10+c-'0';

}

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

}

30.下列语句的输出结果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

31.若i、j为int类型,则以下程序段内循环体的总执行次数是【】。

for(i=5;i;i--)

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

{

}

32.软什是程序、数据和______的集合。

33.已有定义:double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元______。

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

35.有以下程序:

#include<stdio.h>

main()

{charc;

while((c=getchar())!='?')putchar(--c);

}

程序运行时,如果从键盘输入Y?N?<回车>,则输出结果为【】。

36.x和y都是double型变量,x的初值为4.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为______。

37.以下程序的输出结果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}

38.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序运行时,如果从键盘输入:A,B,<CR>,则输出结果为______。

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,D);

primf("%d,%d%d\n",c,D);

}

40.以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。

请填空。

#defineN3

#defineM4

voidLineMax(intx[N][M])

{inti,j,P;

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

{p=0;

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

if(x[i][p]<x[i][j])【】;

printf("Themaxvalueinline%dis%d\n",i,【】);

}

main()

{intx[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};

【】;

}

三、1.选择题(20题)41.下列程序的输出结果是______。#include<stdio.h>main(){inta,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}

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

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

A.数据的逻辑结构与存储结构必定一一对应

B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构

C.程序设计语言小的数组.般是顺序存储结构,因此,利用数组只能处理线性结构

D.以上3种说法都不对

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

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

44.在数据库设计中,将E-R图转换成关系数据模型的过程属于()A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段

45.设intx=1,y=1;表达式(:x||y--)的值是______。

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

46.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()。A.软件矛盾B.软件危机C.软件藕合D.软件产生

47.有如下程序main(){intx=3;do{prinff("%d",x--);}while(!x);}该程序的执行结果是_____。

A.321B.3C.不输出任何内容D.陷入死循环

48.下列程序的输出结果是______。main(){floatx=3.6;inti;i=(int)x;printf("x=%f,i=%d",x,i);}

A.x=3.600000,i=4B.x=3i=3C.x=3.600000,i=3D.x=3i=3.600000

49.在下列几种排序方法中,要求内存量最大的是______。

A.插入排序B.选择排序C.快速排序D.归并排序

50.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是

A.c=(c-′A′)%26+′a′B.c=c+32C.c=c-′A′+′a′D.c=(′A′+c)%26-′a′

51.有以下程序

#inGlude<stdlib.h>

structNODE{

intnum;

structNODE*next;

}

main()

{structNODE*p,*q,*r;

intsum=0;

p=(structNODE*)malloc(sizeof(structNODE));

q=(structNODE*)malloc(sizeof(structNODE));

r=(stnlctNODE*)malloc(sizeof(structNODE));

p->num=1;q->num=2;r->num=3;

p->next=q;q->next;r;r->next=NULL;

sum+=q->next->Num,sum+=p->num;

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

}

执行后输出结果是

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

52.需求分析阶段的任务是确定()

A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能

53.设p1和p2是指向一个血型一维数组的指针变量,k为int型变量,则不能正确执行的语句是

A.k=*p1+*p2B.p2=k;C.p1=p2;D.k=*p1*(*p2);

54.以下程序的输出结果是______。#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&c);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,41

D.11,41,2112,42,22

55.若有如下程序:sub(intn){intt;if(n==1)returnt=5;elset=sub(n-1)+3;returnt;}main(){printf("%d\n",sub(5));}则程序运行后的输出结果是()

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

56.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

57.设已执行预编译命令#include<string.h>,以下程序段的输出结果是

chars[]="anapple";

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

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

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

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

59.若程序中定义了以下函数:doublemyadd(doublea,doubleb){return(a+b);}并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是()。

A.doublemyadd(doublea,b);

B.doublemyadd(double,double);

C.doublemyadd(doubleb,doublea);

D.doublemyadd(doublex,doubley);

60.设x和y均为int型变量,则以下语句:“x+=y;y=x-y;x-=y;”的功能是______。

A.把x和y按从大到小排列B.把x和y按从小到大排列C.无确定结果D.交换x和y中的值

四、选择题(20题)61.

62.在数据库设计中,将E—R图转换为关系模式的过程属于()。

A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段

63.有以下程序:

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

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

64.若输入“abcdef”“abdef”,下述程序的输出结果为()。#include#includemain{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.A.-1B.0C."abcdef"D."abdef"

65.在位运算中,操作数左移一位,其结果相当于A.A.操作数乘以2

B.操作数除以2

C.操作数除以4

D.操作数乘以4

66.若有定义:char*st=”howareyou”;,下列程序段中正确的是()。

A.

B.

C.

D.

67.如已定义X和Y为double类型,则表达式X=1,y=x+5/2的值是()。

A.2B.3.0C.3D.3.5

68.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句

if(a<b)

if(c==d)y=0;

Elsey=1;

该语句所表示的含义是()。

A.

B.

C.

D.

69.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。A.A.数据库系统B.文件系统C.人工管理D.数据项管理

70.有以下程序

voidfun(inta,intb,intc)

{

a=456,b=567,c=678;

}

main()

{

intx=10,y=20,z=30;

fun(x,y,z);

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

}

输出结果是

A.10,20,30B.30,20,10

C.456,567,678D.678,567,456

71.

72.设有下列二叉树:对此二叉树前序遍历的结果为()

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

73.

74.程序运行后的输出结果是()。A.7B.0C.3D.8

75.以下程序的功能是

#include<stdio.h>

main()

{FILE*fp1;*fp2;

fp1=fopen("file1","r");

fp2=fopen("file2","w");

while(!feof(fp1))

fputc(fgetc(fp1),fp2);

fclose(fp1);

fclose(fp2);

}

A.将磁盘文件的内容显示在屏幕上

B.将两个磁盘文件合为一个

C.将一个磁盘文件复制到另一个磁盘文件中

D.将两个磁盘文件合并后送屏幕

76.有以下程序

77.有以下程序

main()

{

inta[3][2]={0},(*ptr)[2],i,j;

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

{

ptr=a+i;

scanf("%d",ptr);

ptr++;

}

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

{

for(j=0;j<2;j++)

printf("%2d",a[i][j]);

printf("\n");

}

}

若运行时输入:123<回车>,则输出结果是

78.软件设计中衡量模块独立性的度量标准是()。

A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法

79.

80.设有charstr[10],下列语句正确的是

A.scanf("%s",&str);B.printf("%c",str);

C.printf("%s",str[0]);D.printf("%s",str);

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是计算并输出h以内的素数之和。h由主函数传给proc()函数。若h的值为80,则函数的值为791。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,函数fmi()的功能是将a、b中的两个正整数合并成一个新的整数存放在c中。合并的方式是将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。例如,a=45,b=12,调用该函数后,c=5241。注意:部分源程序在文件prog1.c中。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.C解析:二分查找法也称为折半查找法。它的基本思想是:将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2],则找到x,算法终止;如果x<a[n/2],则只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列);如果x>a[n/2],则只要在数组a的右半部继续搜索x。每次余下n/(2i)个元素待比较,当最后剩下一个时,即n/(2i)=1。故n=2i;所以i=log2n。

2.C

3.D

4.C解析:数组名s1是代表s1数组首地址的地址常量,而不是变量,因为“=”左边不能出现常量,因此sl='ABCDE'的方法是错误的。

5.C解析:解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是十进制的数“1”,而是指'1'个存储单元长度,而1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址:300H+(13*上标)4)H=352H。

6.D

7.A解析:/*与*/之间的信息称为注释信息,在C语言中,允许在任何能够插入空格符的位置插入注释,但C语言的注释不能进行嵌套,故选项A正确:在C语言中,函数体是从花括号{开始,到花括号}结束。但没有规定花括号{和}只能作为函数体定界符,故选项B错误;选项C中前半句是正确的,C程序由一个或多个函数所组成,但不是所有的函数都由用户自己命名,有些函数,比如主函数main()就不能由用户来命名,故选C不正确;在C语言中明确规定每条语句以分号;结束,分号是语句不可缺少的一部分,故选项D不正确。所以,4个选项中选项A符合题意。

8.A

9.D调用f(a,b)函数返回3,调用f(a,c)函数返回6,所以外层调用f(f(a,b),f(a,c));即调用f(3,6)函数返回9。

10.B

11.B解析:continue是结束本次循环,直接进入到下次循环中,break用于循环语句中的作用是直接跳出本层循环,能从多层循环中退出的语句除了goto语句,exit,return等语句也能直接跳出多层循环。注意:continue和break语句在while语句中的作用。

12.A

13.C选择:是在数据表中给予一定的条件进行筛选数据。投影:是把表中的某几个属性的数据选择出来。连接:有自然连接、外连接,内连接等,连接主要用于多表之间的数据查询。并:与数学中的并是一样的。两张表进行并操作,要求它们的属性个数相同并且需要相容。

14.D

15.A

16.D本题考查字符串比较函数strcmp(s1,s2),若s1>s2,则返回1;若s1=s2,则返回0;若s1<s2,则返回-1。字符串依次比较的是它们字符的ASCIl码值。

17.B

18.B

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

20.B在C语言中,数组名类似于一个指向数组首地址的指针常量,一旦定义就不能修改其内容。所以本题中的“s+=2;”语句让数组名S的内容加2是错误的,编译无法通过。故本题答案为B选项。

21.-2-2解析:题目中定义并初始化了变量k为0,最后输出k的值,要求为4,而在此期间只有k+=-(i+j);这条语句改变了k的值,即要求表达式-(i+j)的值为4。所以,答案应该为-2,因为只有i=j=-2时,表达式-(i+j)的值才为4。

22.00解析:/表示整除,1/5为0,0乘以任何数都得零,但是与浮点型相乘,要转化为浮点型,所以结果为0.000000。注意:在一个运算符的两边如果一个是字符型,一个是整型,则把字符型转换为整型之后再进行运算。

23.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。

24.structSTRUstructSTRU解析:结构体类型是构造数据类型,是用户自己定义的一种类型。

结构体类型的定义:

struct结构体类型名

{

成员项表;

定义结构休变量的的形式为:

struct结构体类型名变量1,变量2,....

其中变量包括:一般变量、指针变量、数组变量等。

25.a[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)max<min或min>max或max<=min或min>=maxa[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)\r\nmax<min或min>max或max<=min或min>=max解析:本题有两层for循环,主函数中定义了整型变量row、col、max和min,其中row用来存放外循环中的循环次数,col用来存放内循环中的次数,max记录每行中的最大值,min记录所有行中最大值中的最小值。在内循环中,首先给max赋初值为每行的第0列元素值,然后从第一列开始依次与max进行比较。如果大于max则将其值赋给max,当每一行循环结束,max记录了每一行的最大值。所以第一个空应该填a[row][col]>max或a[row][col]>=max。退出内循环,在第一次退出内循环时,将min赋初值为第0行的max,然后在每次退出内循环时,将min和每行的max比较,如果大于max,则将max值赋min,所以第二个空应该填max>min或mm>max,当退出外循环时,min为所有行中的最大值的最小值。

26.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。

27.数据模型数据模型

28.-24-24解析:本题考查赋值运算符a+=b等价于a=a+b;a-=a*a等价于a-a-a*a=4-4*4=-12:a+=a,即a=a+a=-24。

29.k=1234

30.aaaaAAAAAaaaaAAAAA解析:函数strcat(sp,'AAAAA')的作用是将字符中“AAAAA”连接到字符串sp的末尾,并自动覆盖字符数组sp末尾的\'\\0\'。

31.1515解析:执行二重循环时,外循环每执行一次,内循环将循环一遍。本题的程序段中外循环执行了5次,内循环执行了3次,所以程序段内循环体的总执行次数是15。

32.文档文档解析:计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。

33.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函数只有一个参数,该参数指定了需要分配多少字节的内存。然后将分配好的内存块的首地址作为void*(未知类型指针)返回.故标准的调用形式应该写成:

p(double*)malloc(sizeof(double));

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

35.XX解析:程序是从键盘缓冲区循环接收字符,并输出接收到的字符在ASCII码表中的前一个字符,直到接收到‘?’为止。

36.1616解析:函数运算不改变数据类型,所以结果也是double型,fabs(x)是对x取绝对值,pow(y,fabs(x))是y的labs(x)次幂,即2.04。0=16.000000(注意;结果为double型)。

37.JD

38.BB解析:因为c是字符类型变量,它只能接收一个字符,所以c=A,字符型变量在参与算术运算的时候是用其相应的ASCII码参与运算的,这样++c得到字母B的ASCII码,用putchar函数输出是输出其相应的字符,所以是B。

39.7979解析:因为在调用子函数时进行的是数值传递,调用子函数并不能改变实参的值,所以经过调用子函数,c、d的值并没有发生变化还是原来的值。

40.p=jx[i][p]LineMax(x)

41.A

42.D解析:一种数据的逻辑结构根据需要可以表示成多种存储结构,数据的逻辑结构与存储结构不一定一一对应,选项A错误。计算机的存储空间是向量式的存储结构,但一种数据的逻辑结构根据需要可以表示成多种存储结构,如线性链表是线性表的链式存储结构,数据的存储结构不一定是线性结构,因此选项B错误。数组一般是顺序存储结构,但利用利用数组也能处理非线性结构。选项C错误。由此可知,只有选项D的说法正确。

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

44.B数据库应用系统的逻辑设计包括数据库逻辑结构设计、数据库事务概要设计和应用程序概要设计三方面。数据库逻辑结构设计的主要步骤为:将E—R图转换为初始关系模式,对初始关系模式进行优化,检查关系表对数据库事务的支持性,确定关系模式完整性约束,设计基于关系模式的用户视图。

45.B

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

47.B解析:本题x赋初值为3,当执行printf('%d',x-);时,由于x-的作用是先运算x,再将x的值减1,所以,printf输出的x值为3,等输出后,x的值减1变为2,继续执行,判断条件!x为假,循环只被执行一次。

48.C

49.D解析:快速排序的基本思想是,通过一趟排序将排序记录分割成独立的两部

分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继

续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依

次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整

个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩

下的于表采用同样的方法,直到表空为止;归并:排序是将两个或两个以上的有序表组合

成一个新的有序表。

注意:各种排序方法实现过程及实现机制。

50.D解析:C语言中,字符数据参加运算时,实际上是其ASCII码参与运算。大写字母的ASCII码比其对应的小写字母的ASCII码小32。因此大写字母转化为小写字母只需将其加上32即可。所以选项B)、C)都符合条件,因为变量c中存储的是大写字母,所以'c-\'A\''的值一定小于26,故选项A)与选项C)的含义相同。

51.B解析:本题中定义了一个结点structNODE,在主函数中定义了三个结点变量指针p、q和r,接着通过malloc函数分配了三个结点并让p、q和r分别指向他们,再接着给p、q和r所指向的结点的num域赋值为1、2、3,然后让结点p指向q,让q指向r,r指向NULL。显然q->next->num的值为指针r所指向结点的num域的值为3,p->hum的值为指针P所指向结点的num域的值为1,故最后输出s的值为3+1=4。

52.D解析:结构化分析方法,数据流图,数据字典,软件需求规格说明书

评析,需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织,部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能.选项A)软件开发方法是在总体设计阶段完成的任务;选项B)软件开发工具是在实现阶段需完成的任务:选项C)软件开发费用是在可行性研究阶段需完成的任务。

53.B解析:本题主要考查了一维数组指针的赋值和用指针引用数组元素进行运算。选项B)中p2为指向int型变量的指针,而k为int型变量,不能将int型变量直接赋值给指向int型变量的指针,所以选项B)错误。

54.B解析:由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。

55.A

56.D解析:中序遍历的递归算法定义:①遍历左子树;②访问根结点;③遍历右子树。前序遍历的递归算法定义:①访问根结点;②遍历左子树;③遍历右子树。后序遍历的递归算法定义:①遍历左子树;②遍历右子树;③访问根结点。根据前序遍历的结果可知,a是根结点。由中序遍历的结果dgbaechf可知,d、g、b是左子树的结点,e、c、h、f是右子树的结点。再由前序遍历的结果bdg可知,b是a左边子树的根,由cefh可知,c是a右边子树的根。再由中序遍历的结果dgb可知,d、g是b左边子树的结点,b右边子树无结点。再由前序遍历结果dg可知,d为b左子树的根,g是以d为根的子树的右结点。至此,a的左子树已完全弄清楚了。同样的道理,可以弄清楚以c为根的子树的结点位置。所以可知后序遍历的结果是D。

57.B解析:考查了测字符串长度函数strlen。如果一个字符数组中存放一个字符串,则函数strlen的值为'\\0'之前的全部字符个数,也包括空格在内。

58.B

59.A解析:函数声明是对所用到的函数的特征进行必要的声明,编译系统以函数声明中给出的信息为依据,对调用表达式进行检测,以保证调用表达式与函数之间的参数正确传递。函数声明的一般格式为:

类型标识符函数名(类型标识符形参,…);

这些信息就是函数定义中的第一行的内容。这里形参的名字是不重要的,重要的是类型标识符,函数声明中也可以不写形参名只写该形参的声明类型,但不能只写形参名而不写该形参的类型。本题中,选项A中doublemyadd(doublea,b),没写出形参b的类型。

60.D解析:先将两个数的和赋给变量x,即x=x+y;再执行y=x-y,相当于y=(x+y)-y=x,x的值已经换给了y;最后执行x=x-y,相当于x=(x+y)-x=y,这样不通过第3个变量就可以将两个变量的值互换。

61.C

62.BB.【解析】数据库设计阶段主要包括需求分析、概念设计、逻辑设计和物理设计。其中逻辑设计的主要工作是将E-R图转换为关系模式。

63.B本程序考察的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,执行结果为l+2+3+4+5+6+7+8+9+10=55.

64.A本题考查字符串比较函数strcmp(s1,s2),若s1>s2,则返回1;若s1=s2,则返回0;若s1<s2,则返回-1。字符串依次比较的是它们字符的ASCIl码值。

65.A左移运算符“<<”是双目运算符,其功能是把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。例如,a<<4是把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。

66.A本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如

strcpy函数的结构是:strcpy(字符数组1,字符串2)其中,需要注意的是,字符数组l的长度不应小于字符串2的长度,”字符数组1”必须写成数组名形式,如(strl),”字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

67.B题目中定义变量x和y为双精度double类型,根据给定算数表达式的优先级应先计算5/2,结果为2,将值代入后,由x和y的数据类型得出y为3.0。整个逗号表达式的值为后面y=x+5/2的值,所以选择B)。

68.Cif-else语句时if语句的嵌套,也就是if-else语句在if语句的条件下执行,所以两个条件相同的地方都是a<b.

69.A数据库系统的一个重要目标就是使程序和数据真正分离,数据蚀立性包括数据的物理独立性和数据的逻辑独立性。相对文件系统人工管理和数据项管理,数据库系统的数据独立性大大增加。

70.A本题考查函数中变量的作用范围,在主函数中给变量x、y、z赋值,然后将其作为实参传递给了函数fun(),虽然在函数fun()中改变了这三个变量的值,但只是同名的局部变量,不影响函数中变量的值。所以,在调用函数fun()结束后,主函数三个变量的值未改变,即形参值的改变不能影响实参值。

71.C

72.B解析:

温馨提示

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

评论

0/150

提交评论