2021-2022年四川省资阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第1页
2021-2022年四川省资阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第2页
2021-2022年四川省资阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第3页
2021-2022年四川省资阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第4页
2021-2022年四川省资阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2021-2022年四川省资阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________一、单选题(20题)1.若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是()。

A.EOFB.-1C.非零值D.0

2.查找较快,且插入和删除操作也比较方便的查找方法是

A.分块查找B.二分查找C.顺序查找D.折半查找

3.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的()倍。A.A.1/2B.1C.2D.4

4.欧几里得的《几何原本》描述了解最大公约数的算法,针对两个整型a,b(a>b>0),其伪代码如下,请估算该算法的复杂度

A.O(lgb)B.O(a*b)C.O(a*a)D.O(b*b)

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

6.

7.具有10个叶子结点的二叉树中有()个度为2的结点。

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

8.执行下述程序后,输出的结果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf("%d",a);}A.1B.4C.9D.0

9.在关系数据模型中,通常可以把()称为属性,其值称为属性值。

A.记录B.基本表C.模式D.字段

10.函数filecopy的功能是,将fin所指文件中的内容输出到fout所指文件中,但函数不完整:voidfilecopy(FILE*fin,FILE*fout){charch;ch=getc(fin);while(_______){putc(ch,fout);ch=getc(fin);}}其中下划线处应填入的是()。A.!feof(fin)B.!feof(fout)C.feof(fin)==1D.feof(fout)==1

11.以下叙述中错误的是()。

A.向量属于线性结构B.二叉链表是二叉树的存储结构C.栈和队列是线性表D.循环链表是循环队列的链式存储结构

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

A.一个逻辑数据结构只能有一种存储结构

B.逻辑结构属于线性结构,存储结构属于非线性结构

C.一个逻辑数据结构可以有多种存储结构,且各种存诸结构不影响数据处理的效率

D.一个逻辑数据结构可以有多种存储结构,且各种存诸结构影响数据处理的效率

13.

有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

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

A.235B.0235C.02356D.2356

14.

15.串的长度是指()。

A.串中所含不同字母的个数B.串中所含字符的个数C.串中所含不同字符的个数D.串中所含非空格字符的个数

16.有以下程序#includevoidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序运行后,文件t1.dat中的内容是______。

A.startB.endC.startendD.endrt

17.下列程序的输出结果是______。#include<stdio.h>main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}

A.3B.3.2C.0D.3.07

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

19.下列运算符中优先级最高的是()。

A.!B.%C.-=D.&&

20.下列字符串是标识符的是()。

A.aaB.a-classC.intD.LINE1

二、2.填空题(20题)21.软件危机出现于60年代末,为了解决软件危机,人们提出了【】的原理来设计软件,这就是软件工程诞生的基础。

22.以下程序运行后的输出结果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}

23.函数delete(s,i,n)的作用是从字符串s中删除从第i个字符开始的n个字符,请填空。

voiddelete(chars[],inti,intn)

{intj,k,legth=0;

while(s[length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<length)

while(k<length)

s[j++]=s[k++];

s[j]='\0'

}

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

如:dp=x*-y*y;

}

main()

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

t(a,b,c,D);

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

}

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

26.若有定义inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[1][1]得到的初值是______。

27.在面向对象程序设计中,从外面看只能看到对象有外部特征,而不知道也无需知道数据的具体结构以及实现操作的算法,这称为对象的______。

28.若有定义:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[2][2]得到的初值是______。

29.在结构化分析使用的数据流图(DFD)中,利用【】对其中的图形元素进行确切解释。

30.树中度为零的结点称为______。

31.若有以下程序:

main()

{int,p,a=5;

if(P=a!=0)

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

else

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

}

执行后输出结果是【】。

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

33.以下程序输出矩阵中值为。的元素的行下标和列下标。行下标和列下标分别放在同一下标的r和c数组元素中。程序通过调用随机函数给矩阵赋值。

#defineN5

#include<stdlib.h>

main()

{inta[N][N],i,j,c[N*N],r[N*N],n;

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

for(j=0;j<N;j++)a[i][j]=rand()%5;

n=gindex(【】);

printf("\n\nTheresult:\nn=%d\n",n);

for(i=0;i<n;i++)printf("%4d%4d\n",r[i],c[i]);

}

intgindex(int(*p)[N],int*c,int*r)

{inti,j,k;

【】;

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

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

if(【】==0)

{r[k]=i;c[k]=j;【】;}

return【】;

}

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

#include<stdio.h>

main()

inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;

for(i=0;i<3;i++)s+=a[i][i]+a[i][3-i-1];

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

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

36.在关系数据库中把数据表示成二维表,每一个二维表称为【】。

37.下面程序的运行结果是【】。

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

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

break;}

s+=i;}}

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

#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);

}

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

#include<stdio.h>

fun()

{staticinta=0;

a+=3;printf("%d",A);

}

main()

{intcc;

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

printf("\n");

}

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

main()

{inti;

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

{if(i>4)

{printf("%d\n",i);

break;}

printf("%d\n",i++);}}

三、1.选择题(20题)41.在以下术语中,与数据的逻辑结构无关的是______。

A.线性结构B.链式结构C.树型结构D.网状结构

42.利用E-R模型进行数据库的概念设计,可以分成三步:首先设计局部E-R模型,然后把各个局部E-R模型综合成一个全局的模型,最后对全局E-R模型进行______,得到最终的E-R模型。

A.简化B.结构化C.最小化D.优化

43.有以下程序:#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstr[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf(~%s\n",str);}程序运行后的输出结果是______。

A.abcdefB.gfedcbaC.gbcdefaD.abedcfg

44.以下对枚举类型名的定义中正确的是______。

A.enuma={one,two,three};

B.enuma{one=9,two=1,three};

C.enuma={"one","two","three"};

D.enuma{"one","two","three"};

45.请读程序片段(字符串内没有空格字符):printf("%d\n",stlen("ATS\n012\1\\”));上面程序片段的输出结果是()

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

46.在设计程序时,应采纳的原则之一是______。

A.程序结构应有助于读者理解B.不限制goto语句的使用C.减少或取消注解行D.程序越短越好

47.下列一维数组说明中,不正确的是()。

A.intN;

B.floata[]={1,6,6,0,2};scanf("%d",&N);intb[N];

C.#defineS10

D.inta[S+5];

48.需求分析阶段的任务是()

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

49.若变量已正确定义,要求通过scanf("%c%d%c%d",&c1,&a,&c2,&B)语句给变量a和b分别赋32和45,给变量c1和c2分别赋字符A和B;下列选项中数据从第1列开始输入,正确的输入形式是()。

A.A32<CR>B45<CR>B.A45<CR>B32<CR>C.A32B45<CR>D.A32B45<CR>

50.下列程序的输出结果是()。#include<stdio.h>intb=2;intfune(int*a){b+=*a;returnb;}main(){inta=1,t=2;t+=func(&a);printf("%d\n",t);}

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

51.以下不合法的用户标识符是()。

A.804zhangB._hhC.yy614D.If

52.以下程序的输出结果是______。intf(){staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i<5;i++)a+=f():printf("%d\n",a);}

A.20B.24C.25D.15

53.可在C程序中用作用户标识符的一组标识符是A.and2007

B.Date_y-m-d

C.HiDr.Tom

D.caseBigl

54.有定义语句:“intx,y;”,若要通过“scanf("%d,%d",&x,&y);”语句使变量x得到数值11,变量y得到数值12,下面4组输入形式中错误的是()。

A.1112<回车>B.11,12<回车>C.11,12<回车>D.11,<回车>12<回车>

55.下列4组选项中,均不是C语言关键字的选项是______。

A.definesumtype

B.getccharprintf

C.includescanfcase

D.whilegopow

56.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A.函数调用可以作为独立的语句存在

B.函数调用可以作为一个函数的实参

C.函数调用可以出现在表达式中

D.函数调用可以作为一个函数的形参

57.下列不属于软件工程3个要素的是()

A.工具B.过程C.方法D.环境

58.下列程序的输出结果是______。main(){inta=2;do{printf("%d\n",a-=2);}while(!(--a));}

A.1B.1-2C.0D.是死循环

59.下列选项中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

60.

对两个数组a和b进行下列初始化:

charm[]="1234567";

charn[]={1,2,3,4,5,6,7};

则下列叙述正确的是()。

A.数组m与数组n完全相同B.数组m与数组n长度相同C.数组m比数组n长1D.数组m与数组n中都存放字符串

四、选择题(20题)61.下面关于完全二叉树的叙述中,错误的是______。A.A.除了最后一层外,每一层上的结点数均达到最大值

B.可能缺少若干个左右叶子结点

C.完全二叉树一般不是满二叉树

D.具有结点的完全二叉树的深度为[log2n]+1

62.设有以下语句执行后,c的值为()。

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

63.以下语句的执行结果是()。

intm=0,s=1;

do{

s+=m++;

}while(m<6);

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

A.17B.16C.15D.18

64.有以下程序:

程序的运行结果是()。

A.10,1B.20,1C.10,2D.20,2

65.在满足实体完整性约束的条件下()。

A.一个关系中应该有一个或多个候选关键字

B.一个关系中只能有一个候选关键字

C.一个关系中必须有多个候选关键字

D.一个关系中可以没有候选关键字

66.

67.下述程序执行的输出结果是()。

#include<stdio.h>

main()

{chara[2][4];,

strcpy(a。"are");strcpy(a[1],"you");

a[o][3]=&;

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

}

A.are&you

B.you

C.are

D.&

68.若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是

69.下面的函数调用语句中func函数的实参个数是

func(f2(A1,A2),(A3,A4,A5),(A6,max(A7,A8)));

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

70.软件需求规格说明书的作用不包括()。

A.软件设计的依据B.软件可行性研究的依据C.软件验收的依据D.用户与开发人员对软件要做什么的共同理解

71.在软件开发中,需求分析阶段产生的主要文档是()。A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书

72.下列关于单目运算符++,——的叙述中正确的是()。

A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量

73.以下叙述中错误的是()。A.用户定义的函数中可以有多个return语句,以便可以调用二次返回多个函数值

B.用户定义的函数中可以没有return语句

C.用户定义的函数中若没有retum语句,则应当定义函数为void类型

D.函数的return语句中可以没有表达式

74.

75.

76.

77.若输入“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"

78.对长度为n的线性表排序,在最坏情况下'比较次数不是n(n一1),2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

79.下面程序运行后的输出结果是()。

structabc

{

inta,b,c;

}

main()

{

structabcs[2]={{1,2,3},{4,5,6}};

intt;

t=s[0].a+s[1].b;

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

}

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

80.设j为Int型变量,则下面for循环语句的执行结果是()。

for(j=10;j>3;j--)

{if(j%3)j--;

--j;--j;

printf("%d",j);

}

A.63B.74C.62D.73

五、程序改错题(1题)81.在主函数中从键盘输入若干个数放人数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数proc()的功能是计算数组元素中值为负数的平均值(不包括0)。例如,数组中元素的值为78、-65、-15、35、-45、0,则程序的运行结果为-41.666667。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。

参考答案

1.D解析:文件状态检测函数feof(fp)的功能是:测试所指的文件的位置指针是否已达到文件尾,如果已到达文件尾,则函数返回非。值;否则返回0,表示文件尚未结束。

2.A分块查找是折半查找和顺序查找的一种改进方法,分块查找要求索引表是有序的,对块内节点没有排序要求,因此查找较快,且插入和删除操作也比较方便。

3.B

4.A

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

6.C

7.B

8.D本题j=要是考查带参数的宏的定义,过程如下:inta=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m)=9/(3十2*3十2/3十2*3十2)=0。

9.D解析:数据库表中字段转化为属性,把记录的类型转化为关系模式。

10.Afilecopy函数每次从fin文件指针调用getc函数读取一个字符存放到ch中,再通过while循环调用putc函数将ch写入fout,直到fin指向文件尾部为止。所以while的循环条件是判断fin是否到文件尾部。这里使用feof函数判断:feof返回值为真时,表示fin指向了文件尾部,否则表示fin未到文件尾部。所以while循环条件为!feof(fin)。故本题答案为A选项。

11.D循环链表是线性表的一种链式存储结构,循环队列是队列的一种顺序存储结构。因此D选项叙述错误。本题答案为D选项。

12.D数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,用的存储结构有顺序和链式结构。用不同的存储结构,其处理的效率是不同的。

13.B

\n本题考查分支语句用法加个句号因为变量的初始值分别为k一5、n一0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0、k=4,程序进行第2次循环,执行case4:这个分支,结果是n=2、k=3,打印出2;这时n=2、k=3,break跳出,程序进行第3次循环,执行case3:这个分支,结果是n=3、k=2,打印出3;这时n一3、k2,b¨ak跳出,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5、k=1,打印出5,break跳出,这时因为n=5不满足n<5的循环条件,因此循环结束。

\n

14.D

15.B解析::串的长度定义为串中字符的数目。所以B)为正确答案。C)答案不正确,因为串中可以含有相同的字符;A)答案不正确,因为串中可能含有相同的字母,而且也可能含有数字等其他非字母字符;D)答案不正确,因为空格也是一种字符,在计算长度时理应将其计算在内。

16.B

17.C

18.D

19.A

20.A

\nC语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。int就是表达整型变量类型的标识符,它不能用做变量名和函数名。

\n

21.软件工程学软件工程学

22.6262解析:本题考查的是宏定义。带参数的宏定义是按#indefine命令行中指定的字符串从左到右进行转换。本题中替换的式子为:6+8*6+8,代入i,j的值得到62。

23.length++i<lengthlength++\r\ni<length解析:第—个循环极有可能是计算串的长度,在i<=length时字符才被删除,被删除的是从第i个到第i+n或最后一个间的所有字符。删除前,应判断i<=length。由于已经进行了-i运算,故实际应填入i<length。

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

25.物理独立性数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。数据独立性一般分为物理独立性与逻辑独立性两级。

26.00解析:二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[0]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为a[0][0]、a[0][1]、a[0][2]、a[0][3]。

27.对象具有5个基本特点:①标识唯一性;②分类性;③多态性;④封装性;⑤模块独立性好。其中,封装性是指从外面看只能看到对象的外部特征,对象的内部特征即处理能力的实行和内部状态,对外是不可见的,对象的内部状态只能由其自身改变。\r\n\r\n

28.88解析:二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[0]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为ap[0][0]、a[0][1]、a[0][2]、a[0][3]。

29.数据字典或DD数据字典或DD解析:数据流图用来对系统的功能需求进行建模,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。数据词典(DataDictionary,DD)用于对数据流图中出现的所有成分给出定义,它使数据流图上的数据流名字、加工名字和数据存储名字具有确切的解释。

30.叶子结点叶子结点解析:树中度为零的结点,也就是没有后件的结点,称为叶子结点。

31.11解析:首先计算if语句后面的表达式,根据运算符的优先级可知,先算“a!=0”,该值为1,再把1赋值给p,结果为1(真),执行其后的printf语句,输出的值为1。

32.数据模型数据模型

33.acrk=0p[i][j]k++k

34.3030解析:当i=0时,s=0+a[0][0]+a[0][2]=10;i=1时,s=10+a[1][1]+a[1][1]=18;i=2时,s=18+a[2][2]+a[2][0]=30。

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

36.关系或一个关系关系或一个关系解析:在关系数据库中,把数据表示成二维表,而一个二维表就是一个关系。

37.3030解析:考查for循环的使用。题目中for(;;)表示:for循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行for循环和for循环的终止都没有限制。

38.3535解析:函数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。

39.3691236912解析:本题考查最基本的for循环:for(cc=1;cc<5;cc++)规定循环次数为4次,每次a+=3即每次a的值增3,但因为fun函数中变量a为static类型,所以每次调用完于函数之后,变量a所做的改变都要保存。

40.1351\r\n3\r\n5解析:本题考查了for循环语句的使用,break语句用在本题中是结束for循环直接跳出循环体外。当i=1时,因为if语句条件不满足,所以直接执行printf('%d\\n',i++);输出1,同时i自加1;执行第二次for循环时,i=3;同样的if语句条件不满足,所以直接执行printf('%d\\n',i++);输出3,同时i自加1;执行第三次for循环时,i=5,if语句条件满足,所以执行printf('%d\\n',i),输出5,然后break语句跳出了for循环。

41.B

42.D解析:在概念设计中,按照模块的划分画出各个模块的E-R图,然后把这些图合成一张E-R图作为全局模型,最后应该对全局E-R图进行优化,看是否有重复和不合理的地方。不能只进行简单的合并。

43.B解析:p=str+strlen(str)/2+1=str+4,f(p,p-2)的功能是将p[4]与p[2]互换,p[5]与p[1]互换,p[6]与p[0]互换,最后的结果为gfedcba。

44.B解析:声明枚举类型用enum开头。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);

说明:1、在C编译中,对枚举元素按常量处理,同时可以改变他们的值。2、枚举值可以用来做判断比较。3、一个整数不能直接赋给一个枚举变量。

45.C

46.A解析:程序设计的风格主要强调程序的简单、清晰和可理解性,以便读者理解。因此选项A是正确答案。程序滥用goto语句将使程序流程无规律,可读性差;添加的注解行有利于对程序的理解,不应减少或取消;程序的长短要依照实际需要而定,并不是越短越好。因此选项B、C、D都是错误的。

47.A

48.DD)【解析】需求分析是软件定义时期的最后一个阶

\n段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。

49.D解析:本题考查scanf函数的基本格式。当需要从键盘上输入数据时,输入的数值之间需要有间隔符(空格符号、制表符号、回车符号),间隔符号的使用数量不限。直到按下回车键,scanf函数才会接受从键盘输入的数据。

50.B解析:本题考查函数调用时的参数传递。在执行函数func时,由于全局定义了一个变量b,所以在函数体中执行时b-2+1-3,最终t=2+3=5。

51.A解析:C语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或下划线。

52.D解析:函数f中变量i为静态变量,函数f调用结束后变量i所占据的存储单元不会释放,而在主函数中f被调用5次,具体过程如下。

第1次调用f:s=s+i=1+0=1,i=i+1=1,主函数中a=a+f()=O+1=1

第2次调用f:s=s+1=1+1=2,i=i+1=2,丰函数中a=a+f()=1+2=3

第3次调用f:s=s+1=1+2=3,i=i+1=3,主函数中a=a+f()=3+3=6

第4次调用f:s=s+i=1+3=4,i=i+1=4,主函数中a=a+r()=6+4=10

第5次调用f:s=s+i=1+4=5,i=i+4=5,主函数中a=a+f()=10+5=15

所以printf语句的输出结果为15。

53.A解析:在C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线。C语言的标识符可以分为关键字、预定义标识符和用户标识符。选项B)和C)中的横线以及点都不合法,选项D)中的case为C语言关键字。

54.A解析:scanf()函数有两个参数,第一个参数为输入格式字符串,第二个参数为输入变量地址列表,在scanf()语句中非格式字符可以作为输入时数据的间隔,输入时必须原样输入,在本题中输入格式串为“%d,%d”其中“,”为非格式字符,所以输入时必须原样输入。所以,4个选项中选项A符合题意。

55.A解析:本题各选项中的关键字只有三个:char,case,while。

56.D解析:本题考查函数的调用。在有参函数调用中,是将主调函数的实参值传给被调函数的形参。按函数在程序中出现的位置来分,有以下三种函数调用形式:

①函数调用作为一条语句。例如:fun();这时不要求函数带回值,只要求函数完成一定的操作。故选项A)正确。

②函数出现在表达式中,这种表达式称为函数表达式。这时要求函数带回一个确定的值以参加表达式的运算。例如:c=5*max(a,b);函数max是表达式的一部分,将其值乘以5后赋给c。故选项C)正确。

③函数调用作为一个函数的实参,例如:m=max(a,max(b,c));其中max(b,c)是一次函数调用,它的值作为max另一次调用的实参。故选项B)正确。

函数调用不可作为一个函数的形参,因为函数调用参数的数据传递是单向传递,即实参传给形参,不能由形参传给实参。故选项D)错误。

57.DD)【解析】软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。

58.C解析:do-while语句是先执行后判断,第一次执行循环体,输出0,循环控制条件!(--A)的值为0,则结束循环。

59.B水平制表符中,'\t'表示的是横向跳若干格;选项B中,'\039'错误,'\039'是八进制形式表的字符,最大数为7,但其中出现'9',','是字符逗号;选项D中,'\n'表示的是换行。

60.C解析:本题考查字符数组和字符串赋值给数组的一些区别。语句“charm[]='1234567';”定义了一个字符型数组并进行了初始化,C语言规定,在字符串的末尾自动加上串结束标记\'\\0\',因此数组m的长度是8;而数组n是按照字符方式对数组进行初始化,系统不会自动加上串结束标记\'\\0\',因此数组n的长度是7。

61.B解析:这里考察完全二叉树与满二叉树的定义及二叉树的性质。满二叉树指除最后一层外每一层上所有结点都有两个子结点的二叉树。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干子结点(叶子结点)的二叉树。因此选项A是正确的,而选项B是错误的。由定义可知,满二叉树肯定是完全二叉树,而完全二叉树一般不是满二叉树,因此选项C是正确的叙述。选项D即二叉树性质(5),也是正确的。

62.Ab为2,二进制为00000010,执行左移两位操作后为00001000,然后与a00000001做异或操作,结果为00001001,即十进制的9,因此A)选项正确。

63.B

64.C数组名的值即为数组首地址,所以P->y可得第一个元素的y值,(++P)→x可得第二个元素的X值。

65.A【答案】:A

【知识点】:实体完整性与候选关键字

【解析】:在满足数据完整性约束的条件下,一个关系可以有一个或多个候选关键字,但至少有一个候选关键字,故选A。

66.D\r\n

67.A\nstrcpy实现的功能是复制,该操作把are复制到

温馨提示

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

最新文档

评论

0/150

提交评论