2021-2022年甘肃省庆阳市全国计算机等级考试C语言程序设计真题二卷(含答案)_第1页
2021-2022年甘肃省庆阳市全国计算机等级考试C语言程序设计真题二卷(含答案)_第2页
2021-2022年甘肃省庆阳市全国计算机等级考试C语言程序设计真题二卷(含答案)_第3页
2021-2022年甘肃省庆阳市全国计算机等级考试C语言程序设计真题二卷(含答案)_第4页
2021-2022年甘肃省庆阳市全国计算机等级考试C语言程序设计真题二卷(含答案)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年甘肃省庆阳市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.设变量已正确定义,则以下能正确计算f=n!的程序是()。A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=1;i<2n;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:

2.在一个带头结点的单链表HL中,若要在第一个元素之前插入一个由指针p指向的结点,应该使用的语句为()

A.HL=p;p->next=HL;

B.p->next=HL;HL=p;

C.p->next=HL->next;HL->next=p;

D.p->next=HL;p=HL;

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

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

4.有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

5.

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

A.||B.!=C.<;=D.十

7.下列不属于过程设计工具中图形工具的是()。

A.N—SB.PADC.程序流程图D.PDL

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

A.测试工作必须由程序编制者自己完成

B.测试用例和调试用例必须一致

C.一个程序经调试改正错误后,一般不必再进行测试

D.上述三种说法都不对

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

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

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

C.若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变

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

10.若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是()。

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

11.以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

12.有以下程序:

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

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

13.如果树的的结点A有4个兄弟,而且B为A的双亲,则B的度为()。

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

14.

15.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。

A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)

16.每次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做()排序。

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

17.已知有结构体:structsk{inta;floatb;}data,*p;若有p=&data,则对data的成员a的正确引用是()。

A.struct是结构体类型的关键字

B.st是结构体类型名

C.x、y、z都是结构体成员名

D.structstr是结构体类型名

18.指针可以用来表示数组元素,若已知语句:inta[3][7];则下列表示中正确的是()。

A.*(a+1)[5]B.*(*a+3)C.*(*(a+1))D.*(&a[0][0]+2)

19.

20.下列程序的运行结果是()。#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.填空题(20题)21.问题处理方案的正确而完整的描述称为______。

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

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

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

【】t[20]

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

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{inti;

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

24.若按功能划分,软件测试的方法通常分为白盒测试方法和【】测试方法。

25.以下程序运行后输入3,abcde<回车>,则输出结果是【】。

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(S);

for(i=1;i<=n;i++)move(s,z);

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

}

26.以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

【】

if(s[*k]<s[i])*k=i;

return【】;}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);}

27.下列软件系统结构图的宽度为[]。

28.阅读下列程序,则程序的输出结果为【】。

#include"stdio.h"

structty

{intdata;

charc;};

main()

{structtya={30,′x′};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c=′y′;}

29.函数fun的返回值是【】。

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!='\0')num++;

while(b[n]){*(a+num)=b[n];num++;n++;}

returnnum;

}

30.设x、y、z均为int型变量,请写出描述“x或y中至少有一个小于z”的表达式______。

31.下列执行后输出的结果是【】。

main()

{intarr[10],i,k=0

for(i=0;i<10;i++)atr[i]=i

for(i=1,i<4;i++)k+=arr[i]+i;

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

}

32.注释一般分为序言性注释和______注释。

33.一个模块直接调用的其他模块的模块个数称为______。

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

voidfun()

{staticinta=0;

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

}

main()

{intcc;

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

printf("\n");

}

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

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,e+d)*10;

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

}

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

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

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

37.程序如下:

main()

{inti=4;

printf("%d",-++i);

}

该程序执行后的输出结果以及i的值分别是______、_______。

38.以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。

请填空。

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if(【】)printf("YES\n");/*a、b、c能构成三角形*/

elseprintf("NO\n");/*a、b、c不能构成三角形*/

}

39.下面程序的输出结果是【】。

#include<stdio.h>

main()

{staiccharb[]="Goodbye";

char*chp=&b[7];

while(--chp>=&b[0])putchar(*chp);

printf("\n");

}

40.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间。

st=(char*)【】;

三、1.选择题(20题)41.以下程序运行后的输出结果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

42.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()

A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程

43.有以下程序:main(){inta=0,b=0,C=0,d=0;if(a=1)b=1;c=2;elsed=3;printf("%d,%d,%d,%d\n",a,b,c,D);}程序输出()。

A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错

44.设有如下三个关系表:

下列操作中正确的是()。

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

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

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

46.以下程序运行后,输出结果是

#definePT5.5

#defineS(x)PT*x*x

#include<stdio.h>

main()

{inta=1,b=2;

printf("%4.1f\n",S(a+b));}

A.49.5B.9.5C.22D.45

47.当执行下面程序且输入aboy时,输出的结果是______。#include<stdio.h>#include<string.h>main(){charss[81]="ABOY",hh[81],*pt;scanf("%s",hh);pt=strcat(ss,hh);puts(pt);printf("%s\n",hh);}

A.ABOYaa

B.ABOYaboyaboy

C.ABOYaboya

D.ABOYaboyaboy

48.以下程序运行后,输出结果是______。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

49.若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是

A.EOFB.-1C.1D.NULL

50.下列描述中,正确的是______。

A.a[2*3+5]可以是一个数组元素

B.可以对结构体类型和结构类型变量赋值、存取或运算

C.结构一经定义,系统就给它分配了所需的内存单元

D.结构体变量和共用体变量所占的内存长度是各成员占的内存长度之和

51.下列函数的运行结果是

main()

{inti=2,p;

intj,k;

j=i;k=++i;p=f(j,k);

printf("%d",p);}

intf(inta,intb)

{intc;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

return(c);}

A.-1B.1C.2D.编译出错,无法运行

52.以下程序的输出结果是()。mam(){charcf[3][5]={"AAAA","BBB","CC");printf("\"%s\"n",cf[1]);}

A.AAAAB.BBBC.BBBCCD.CC

53.在ASCII代码表中每一个大写字母比它相应的小写字母的ASCII码()。

A.小32B.小64C.大32D.大1

54.以下程序的输出结果是()main(){inta=2,k;for(k=0;k<3;k++)printf("%4d",f1(a));}f1(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}

A.777B.71013C.7911D.789

55.以下程序的输出结果是_________。#include<stdio.h#defineFUDGE(y)2.84+y#definePR(A)printf("%d",(int)(A))#definePRINT1(A)PR(A);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*X);}

A.11B.12C.13D.15

56.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()

A.控制流B.加工C.数据存储D.源和潭

57.以下数组定义中错误的是()。

A.intx[][3]={0};

B.intx[2][3]={{1,2},{3,4},{5,6}};

C.intx[][3]={{1,2,3},{4,5,6}};

D.intx[2][3]={1,2,3,4,5,6};

58.下列叙述中错误的是()。

A.一种数据的逻辑结构可以有多种存储结构

B.数据的存储结构与数据处理的效率无关

C.数据的存储结构与数据处理的效率密切相关

D.数据的存储结构在计算机中所占的空间不一定是连续的

59.数据库管理系统的基础是______。

A.操作系统B.数据库C.数据库系统D.系统软件

60.软件详细设计的主要仟务是确定每个模块的

A.算法和使用的数据结构B.外部接口C.功能D.编程

四、选择题(20题)61.有以下程序:

若运行时输入:246<;回车>;,则输出结果为()。

A.204B.200C.240D.246

62.

63.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是():

A.学生成绩管理系统B.ERP系统C.办公自动化系统D.UNIX系统

64.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。

65.以下选项中,不合法的C语言用户标识符是()。A.a-一bB.AaBeC.a_bD.一1

66.算法的有穷性是指A.算法程序的运行时间是有限的

B.算法程序所处理的数据量是有限的

C.算法程序的长度是有限的

D.算法只能被有限的用户使用

67.

68.设有如下函数定义:

若执行调用语句“ll=fm(3);”,则函数tim总共被调用的次数是()。

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

69.

有下列程序段:

intn,t=1,S=0;

scanf("%d",&n);

do{s=s+t;t=t-2;while(t!=n);

为使此程序段不陷入循环,从键盘输入的数据应该是()。

A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数

70.有以下程序:

程序的运行结果是()。

A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC

71.

72.以下关于字符串的叙述中正确的是()。

A.空串比空格打头的字符串小

B.两个字符串中的字符个数相同时才能进行字符串大小的比较

C.可以用关系运算符对字符串的大小进行比较

D.C语言中有字符串类型的常量和变量

73.下面四个选项中,均是不合法的用户标识符的选项是()。

A.

B.

C.

D.

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

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

75.下列程序的输出结果是()。

char*p1="abcd",*p2="ABCD",str[50]="xyz";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

A.xyabcABB.abcABzC.ABabczD.xycdBCD

76.有以下函数:

以下关于aaa函数功能叙述正确的是()。

A.将串s复制到串tB.比较两个串的大小C.求字符串s的长度D.求字符串s所占字节数

77.以下程序的输出结果是()。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

78.以下程序的输出结果为

main()

{

char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};

char**p;

inti;

p=alpha;

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

printf("%s",p[i]);

printf("\n");

}

A.ABCDEFGHIJKLB.ABCD

C.ABCDEFGHIJKLMNOPD.AEIM

79.

有如下程序:

#include<stdio.h>

main

{FILE*fp1;

fp1=fopen("f1.txt","w");

fprintf(fp1,"abe");

fclose(fp1);

}

若文本文件f1.txt中原有内容为:good。则运行以上程序后文件f1.txt中的内容为()。

A.goodabcB.abcdC.abcD.abcgood

80.c源程序中不能表示的数制是()。

A.二进制B.八进制C.十进制D.十六进制

五、程序改错题(1题)81.下列给定程序中,proc()函数的功能是:根据形参n。计算下列公式的值:t=1-1/2+1/3-1/4+…+(-1)(n+1)/n例如,若输入6,则应输出0.616667。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是根据以下公式计算S,并将计算结果作为函数值返回,通过形参传入。例如,若n的值为11时,函数的值为1.833333。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>floatfun(intn){}voidmain(){ intn; floats; system(“CLS”); printf(“\nPleaseenterN:”); scanf(“%d”,&n); s=fun(n); printf(“Theresultis:%f\n”,s);}

参考答案

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

2.C

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

4.B解析:在C语言的数组元素的引用方法,我们在前面已经讲过了,比如数组元素a[0],可以用表达式*(p+0),即*p来引用,对于数组元素a[1],可以用表达式*(p+1)来引用,在这里,p+1的值就是数组元素a[1]的地址,对此地址使用“间接访问运算符”:*(p+1)就代表存储单元a[1],注意:一对圆括号不可少。同样,对于数组元素a[2],则可以用表达式。(p+2)来引用…,对于数组元素a[9],可以用表达式,(p+9)来引用。因此,当指针变量p指向a数组的起始地址时,若0≤i<10,则数组元素a[i]可以用*(p+i)来表示。

5.A

6.AC语言中规定运算符的优先顺序:一元算术运算符一>二元算术运算符一>关系运算符一>逻辑运算符一>赋值运算符,A项中为逻辑运算符,B项和c项都为关系运算符,D项为一元运算符。因此最低的是A项。

7.D\n常用的过程设计工具有图形工具(程序流程图、N-S图、PAD图、HIPO)、表格工具(判定表)、语言工具(PDL)。

\n

8.D解析:测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷,一般应当避免由开发者测试自己的程序,因此,选项A错误;测试是为了发现程序错误,不能证明程序的正确性,调试主要是推断错误的原因,从而进一步改正错误,调试用例与测试用例可以一致,也可以不一致,选项B错误;测试发现错误后,可进行调试并改正错误:经过调试后的程序还需进行回归测试,以检查调试的效果,同时也可防止在调试过程中引进新的错误,选项C错误。

9.D

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

11.D解析:本题考查的是文件操作函数.题目中fseek(fp,0L,SEEK_SET)的作用将文件指针定位到文件开始。feof(fp)的作用是判断文件指针是否已到文件结尾,因此选项A不对。ftell(fp)的作用是获取当前文件指针的位置,因此选项B不对。fgetc(fp)的作用是从文件中读取一个字节,因此选项C不对。rewind(中)的作用是将文件指针重定位到文件开头,所以应该选择D。

12.B第一次执行外循环i的值为1,满足条件,判断第一次内循环,j的值为3,不满足条件,跳出内循环。第二次执行外循环i的值为2,同理也不满足内循环条件,跳出内循环。第三次执行外循环i的值为3,此时进入内循环判断条件时,条件成立,执行m=m%j,m的值为1,跳出内循环,跳出外循环打印m的值。

13.C

14.C

15.A

16.B

17.B解析:本题主要考查结构类型的定义:struct是结构体类型的关键字;structstr是结构体类型名;x、y、z都是结构体成员名;st是结构变量名。

18.D

19.B

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

21.算法或程序或流程图算法或程序或流程图解析:算法是问题处理方案正确而完整的描述。

22.strudctSTRUstrudctSTRU解析:结构件类型是构造数据类型,是用户自己定义的一种类型。

结构体类型的定义:

struct结构体类型名

{

成员项表;

};

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

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

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

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

24.黑盒软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方法一般有两类:黑盒测试法和白盒测试法。在使用黑盒法设计测试实例时,测试人员将程序看成一个“黑盒”,即不关心程序内部是如何实现的,只是检查程序是否符合它的“功能说明”,所以使用黑盒法设计的测试用例完全是根据程序的功能说明来设计的。

25.cdeabcdeab解析:本题move()函数的作用,是将形参s仕所指地址的连续n位循环右移1位,即让str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函数中用了一个for循环调用move()函数,共循环3次,所以数组s被循环右移了3位,故最后输出的值为cdeab。

26.for(I=0;I<t;I++)0for(I=0;I<t;I++),0解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应使*k的值为数组中的某一下标值,即*k=0。

27.33解析:软件系统结构图的宽度:整体控制跨度(最大模块数的层)的表示。

28.30x30x解析:本题的参数传递属于值传递,所以被调用函数内不能改变调用函数中的数据。

29.字符串a和b的长度之和字符串a和b的长度之和解析:本题首先通过第一个while循环计算字符串a的长度,再通过第二个循环,将字符串a和b相连,最后返回连接后的总长度。

30.x<z‖y<zx<z‖y<z解析:本题考查逻辑运算符和逻辑表达式。x或y中至少有一个小于z,即x<z或y<z,是“或”的关系。

31.1212解析:本题的第—个for循环用于始数组arr赋初值,第二个for循环用于求和运算。由于第二个for循环初始值为1,而循环条件为i<4,所以求的是arr[1]到arr[3]及i的和,所以输出结果为12。

32.功能性功能性解析:注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,给出程序的整体说明;功能性注释一般嵌在源程序体之中,主要描述其后的语句或程序做什么,

33.扇出扇出解析:在结构图中,调用一个给定模块的模块个数称为扇入,一个模块直接调用的其他模块个数称为扇出。

34.246

35.77解析:在C语言中,宏定义是直接替换的,所以在对表达式MAX(a+b,c+d)*l0进行替换后,表达式变为(a+b)>(c+d)?(a+b):(c+d)*10。在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+9d)*10)的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。

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

37.-55。

38.a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a解析:在逻辑表达式中,如果要同时满足几个条件可以使用逻辑与运算符“&&”,故本题的答案应该为:a+b>c&&a+c>b&&b+c>a或其他等价形式。

39.eybdooG

40.malloc(11)或malloc(sizeof(char*)11)malloc(11)或malloc(sizeof(char*)11)解析:该题主要考查malloc函数的使用。一个字符在内存中占一个字节,因此malloc的参数为11。也可按指向字符指针的大小来分配。

41.C解析:静态局部变量在编译时赋初值,即只赋初值一次,在程序运行时它已有初值。以后每次调用时不再重新赋初值而只是保留上次函数调用结束时的值,而对自动变量赋初值,不是在编译时进行的,而在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。本题在程序开头定义了全局变量d并赋初值1,在被调函数fun()中,定义了静态局部变量d,初值为5。在第一次调用函数fun时,d初值为5,p由主函数传递过来的值为1,则d=d+p=5+1=6,由于d是静态局部变量,在函数调用结束后,它仍保留d=6。再次调用fun函数,d的初值为6,而由主函数传递的p的值为9,则此时d=d+p=6+9=15,最后打印输出d的值并返回主函数。

42.B软件设计包括软件的结构设计、数据接口设计和过程设计。其中软件结构设计主要包括系统由哪些子系统构成,以及这些子系统之间的关系是怎样的,并将这些内容编写成文档;数据接口设计的任务是为每个子系统设计其与其他子系统间的接口,并编写成文档,这个接口要是一个无二义的接口,不需要子系统的操作知识就可以使用;过程设计是指系统结构部件转换成软件的过程描述。

43.D解析:C语言规定最左边变量所得到的新值就是赋值表达式的值,故“if(a=1)”条件表达式为真,b=1;else总是与上面最近的没有被使用的if配对,导致不合法的if-else结构,if语句后面的两条语句应用“{)”括起来。

44.C解析:本题考查数据库的关系代数运算。R表中只有一个域名A,有两个记录(也叫元组),分别是m和n;S表中有两个域名,分别是B和C,其所对应的记录分别为1和3。注意观察表T,它是由R的第一个记录依次与S的所有记录组合,然后再由R的第二个记录与S的所有记录组合,形成的一个新表。上述运算恰恰符合关系代数的笛卡儿积运算规则。关系代数中,笛卡儿积运算用“×”来表示。因此,上述运算可以表示为T=R×S。因此,本题的正确答案为C。

45.B解析:所谓二叉树的前序遍历(DLR)是指在访问根结点、遍历左子树与遍历右子树这3者中,首先访问根结点,然后遍历左子树,最后遍历右子树,并且,在遍历左右子树时,上述规则同样适用,即“根-左-右”。故该二叉树的前序遍历结果为“ATBZXCYP”。对于本题,若使用后序遍历和中序遍历的结果分别为“ZBTYCPXA”和“TZBACYXP”。

46.A解析:考查宏替换的使用。宏替换用'#define宏名宏体'的形式来定义。在进行编译预处理时,将把程序中宏定义之后的所有宏名用宏体替换。宏虽然可以带参数,但宏替换过程中不像函数那样要进行参数值的计算、传递及结果返回等操作;宏替换只是简单的字符替换,不进行计算,因而本题中的S(a+b)进行宏替换后为PT*1+2*1+2=5.5*1+2*1+2=9.5。

47.A解析:对于函数strcat(ss,hh),把字符串hh(若遇空格,舍去后面的部分,并重新赋给hh)连至字符串ss的后面。

48.C

49.C解析:EOF是指向文本文件的结束标志,NULL是打开文件错误时的返回值。feof(fp)用来判断文件是否在文件末尾,文本文件和二进制文件均可以使用此函数,如果遇到文件结束就返回1,否则返回0。

50.A

51.A解析:函数调用相当于f(2,3),程序运算应得结果为'-1'。

52.B解析:二维字符数组可以看成由若干个一维字符数组组成,每行是一个一维字符数组。本题首先定义了一个数组ch[3][5],并给它们按行赋初值,即相当于给eh[0]赋值“AAAA”,给ch[1]赋值“BBB”,给eh[2]赋值“BBB”,最后输出转义字符“叮”、ch[1]和转义字符“\\”,因此输出为“BBB”。所以,4个选项中B为所选。

53.A解析:本题考查大小写字母的ASCII码值的关系。大写字母比它相应的小写字母的ASCII码小32。

54.D解析:程序中使用一个for循环,3次输出函数f1(2)的返回值。f1()函数中存在一个静态局部变量c,第1次调用f1()函数返回a+b+c=2+1+4=7,c变为4,第2次调用返回2+1+5=8,c变为5,第3次返回2+1+6=9。所以正确答案是D。

55.B解析:在程序中如果有带实参的宏,则按#define命令行中指定的字符串从左到右进行置换,如果串中包含宏中的形参,则将程序语句中相应的实参代替形参。将实参带入已经定义的宏中,可以得出答案为“12”。

56.A解析:数据流图包括4个方面,即加工(转换)(输入数据经加工变换产生输出)、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体)。不包括选项中的控制流。

57.B解析:二维数组的初始化有以下几种形式:①分行进行初始化;②不分行进行初始化;③部分数组元素进行初始化;④省略第一维的定义,不省略第二维的定义。选顷B)等号右边分了3行,大于等号左边数组的行数2。

58.B解析:一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等,选项A和选项D正确。采用不同的存储结构,其数据处理的效率不同,因此,在进行数据处理时,选择合适的存储结构是很重要的,选项C正确,选项B错误,应为本题正确答案。

59.A解析:数据库管理系统的基础是操作系统。操作系统是DBMS的基础,它处理的对象是数据文件的物理块,执行物理文件的读写操作,保证DBMS对数据逻辑上的读写真实地映射到物理文件上。操作系统提供的存取原语和基本存取方法通常是作为和DBMS的接口。数据库管理系统是数据库系统的核心。数据库系统包含数据库和数据库管理系统。

60.A解析:从软件开发的工程化观点来看,在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。详细设计的任务就是要决定各个模块的实现算法,并精确表达出这些算法。

61.A本题中输入的3个数据2,4,6分别赋值给了x[0[0],x[1][0],x[2][0]。x[o][1]仍为初始时的0,所以打印输出时的结果为A选项。

62.C

63.D系统软件是管理计算机的资源,提高计算机的使用效率,为用户提供各种服务的软件。应用软件是为了应用于特定的领域而开发的软件。选项D属于系统软件。选项A、B、C属于应用软件。故选D选项。

64.AB选项中switch((int)x);语句中不应该有最后的分号。switch(exprl),中的exprl不能用浮点类型或10n9类型,也不能为一个字符串,所以c错误。ca”后面常量表达式的类型必须与switch后面表达式的类型一致,所以D错误。

65.A用户标识符命名规则为:由数字、字母或下划线组成,且首字母不能是数字.不能和关键字重复,所以A)错误.

66.A算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。

67.A

68.B首先n=fun(3),3被当作参数传递进去,这就进行了-次调用,3被当做参数传进去后,程序会执行这句deerctlu"nfun(k-1)+1;这就调用了第二次,而参数是3—1也就是2。2被当做参数传进去后,程序会执行这句elseremmfun(k—I)+1;这就调用了第三次,而参数是2-1也就是1。1被当做参数传进去后,程序会执行这句elseif(k==1)return1:不再递归调用,所以最终结果为3次。

69.D

\n本题主要考查do—while循环,因为变量t的初始值等于1,经过第一次do-while循环后,执行t=t-1这条语句一次,所以变量t的值为-1,判断关系表达式t!=n是否成立,如果关系表达式成立,则执行第二次循环,如果关系表达式不成立,退出循环。由此可见,只要输入变量n的值为负奇数,则一定会使t==n成立,故退出do-while循环。

\n

70.A函数fun(char*s[],intn)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执行fun(ss,5)语句后,*ss[]={“xy”,“bcc”,“bbcc”,“aabcc”,“aa

温馨提示

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

评论

0/150

提交评论