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

下载本文档

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

文档简介

2021年河北省衡水市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.设有说明:charw;intx;f1oaty;doublez;则表达式w*x+z-y值的数据类型为()。

A.floatB.charC.intD.double

2.有以下程序:#include<stdio.h>typedefstruct{intnum;charname[10];intscore;}PER;voidfun(PERx[]){intt;if(x[0].score>x[1].score){t=x[0].score;x[0].score=x[1].score;x[1].score=t;}}main(){PERs[2]={{1001,“zhang”,621},{1002,“wang”,585}};inti;fun(s);for(i=0;i<2;i++)printf(“%d,%s,%d,”,s[i].num,s[i].name,s[i].score);}程序的运行结果是()。A.1001,zhang,585,1002,wang,621,

B.1001,zhang,621,1002,wang,585,

C.1002,wang,585,1001,zhang,621,

D.1002,wang,621,1001,zhang,585,

3.下列合法的声明语句是()。

A.int_abc=50;

B.doubleint=3+5e2.5;

C.longdo=1L:

D.float3_asd=3e-3;

4.下列关于信息系统的叙述中,错误的是()。

A.广播电视是一种双向的、点到多点的信息交互系自

B.网络聊天是一种双向的,以信息交互为主要目的系统

C.电话是一种双向的、点对点的、以信息交互为主要的的系统

D.雷达是一种以感测和识别为主要目的的系统

5.栈这种数据结构一般应用在()。

A.递归调用B.子程序调用C.表达式求值D.A,B,C

6.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位编译系统上,程序执行后的输出结果是______。A.21,43B.43,21C.43,00D.21,00

7.有如下定义:structperson{charname[9];intage;}structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};能输出字母M的是()

A.printf("%c\n",class[3].name);

B.printf("%c\n",class[3].name[1]);

C.printf("%c\n",class[2].name[1]);

D.printf("%c\n",class[2].name[0]);

8.以下()不是队列的基本运算

A.从队尾插入一个新元素B.从队列中删除第i个元素C.判断一个队列是否为空D.读取队头元素的值

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

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

10.算法的时间复杂度取决于()

A.问题的规模B.待处理数据的初态C.A和B

11.以下程序的输出结果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}

A.650B.1470C.5430D.输出值不定

12.数据管理技术发展的三个阶段中,()没有专门的软件对数据进行管理。

I.人工管理阶段

II.文件系统阶段

Ⅲ.数据库阶段A.A.仅IB.仅ⅢC.I和IID.II和Ⅲ

13.若有以下定义,则能使值为3的表达式是intk=7,x=12;

A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)

14.设x和y均为bool量,则x&&y为真的条件是()。

A.它们均为真B.其中一个为真C.它们均为假D.其中一个

15.以下不完整的程序拟实现调用getmax函数,找出4个变量中最大的一个:#include<stdio.h>intgetmax(intx,inty){returnx>yx:y;}voidmain(){inta,b,c,d,mx;scanf(“%d%d%d%d”,&a,&b,&c,&d);printf(“max=%d\n”,________);}以下选项若填入下划线处,不能实现上述功能的是()。

A.getmax(getmax(getmax(a,b),c),d)

B.getmax(getmax(a,b),getmax(c,d))

C.getmax(a,getmax(b,getmax(c,d)))

D.mx=(getmax(a,b),getmax(c,d))

16.若有定义:“inta=4,b=5;floatx=3.4,y=2.1;”,则下列表达式的值为()。(float)(a+b)/2+(int)x%(int)y;

A.5.5B.55C.5.500000D.55.00000

17.关于指针,以下说法正确的是()。A.可以直接向指针中写入数据

B.若指针指向变量,则可以向指针所指内存单元写入数据

C.指针可以指向内存中任何位置,并写入数据

D.两个指针可以通过加运算求和,形成一个功能更强大的指针

18.对于长度为n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是(

A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2

19.按照标识符的要求,()符号不能组成标识符。

A.连接符B下划线B.大小写字母C.数字字符

20.执行下列程序后,输出的结果是()。#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

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

main()

{charc=′z′;

printf("%c",c-25);}

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

#defineMCRA(m)2*m

#defineMCRB(n,m)2*MCRA(n)+m

main()

{

inti=2,j=3;

printf("%d\n",MCRB(j,MCRA(i)));

}

23.将以下程序段写成三目运算表达式:【】。

if(a>b)max=a;

elsemax=b;

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

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

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

27.若有如下程序:

voidsub()

{staticintx=8;

x/=2;printf("%d",x);

}

main()

{intm;

for(m=0;m<2;m++)sub();}

则程序运行后的输出结果是【】.

28.设在主函数中有以下定义和函数调用语句,且fun函数为void类型,请写出fun函数的首部【】。要求形参名为b。

main()

{doubles[10][22];

intn;

fun(s);

}

29.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。

30.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。

31.软件是程序、数据和【】的集合。

32.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。

33.成本估算模型中,Putnam估算模型是一种【】模型。

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

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6},*k[3],i=1;

while(i<4)

{k[i-1]=&a[2*i-1];

printf("%d",*k[i-1]);

i++;

}

}

35.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。

36.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

37.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;

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

#include<stdio.h>

main()

{inta=1,b=3,c=5;

if(c=a+b)printf("yes\n");

elseprintf("no\n");

}

39.为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。

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

三、1.选择题(20题)41.下列不属于软件工程的3个要素的是______。

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

42.在计算机内部,一切信息存取、处理和传送的形式是()

A.ASCⅡ码B.BCD码C.二进制D.十六进制

43.设有定义:intk=1,m=2;floatf=7;则以下选项中错误的表达式是()。

A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m

44.下列程序的输出结果是()。#include<stdio.h>main(){chara[]={'a','b','c','d','e','f,'\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d",i,j);}

A.7,7B.7,6C.6,6D.6,7

45.下列字符数组初始化语句中,不正确的是()。

A.charc[]='goodmoming';

B.charc[20]="goodmorning";

C.charc[]={'a','b','c','d'};

D.charc[]={"goodmoming"};

46.以下选项中,与k==n++完全等价的表达式是()。

A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1

47.下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是

A.选择B.连接C.投影D.并

48.下列不合法的main函数命令行参数的表示形式是______。

A.main(inta,char*c[]);

B.main(ac,av)intarc;char**av;

C.main(c,v)intc;char*v[];

D.main(argc,argv)intargc;charargv[];

49.在结构化方法中,用数据流图(DFD)作为描述工具的软件开发阶段是()。

A.可行性分析B.需求分析C.详细设计D.程序编码

50.下面不属于软件设计原则的是()。

A.抽象B.模块化C.自底向上D.信息隐蔽

51.设变量已正确定义并赋值,以下正确的表达式是()。

A.x=y*5=x+z

B.int(15.8%5.

C.x=y+z+5,++y

D.x=25%5.0

52.设定义下列结构体,结构体变量p的出生年份赋值正确的语句是()。structst{intx;inty;intz;}structworker{charname[20];charsex;structstbirth;}p;

A.x=1987B.birth.x=1987;C.p.birth.x=1987;D.p.x=1987;

53.对于下列字符串,说明表达式strlen(s)值的是()。chars[10]={'a','\n','a','b','\t','c'};

A.10B.1C.6D.7

54.以下叙述中错误的是______。A.用户所定义的标识符允许使用关键字

B.用户所定义的标识符应尽量做到“见名知意”

C.用户所定义的标识符必须以字母或下划线开头

D.用户定义的标识符中,大、小写字母代表不同标识

55.C语言中,组成数据文件的成分是()。A.A.记录

B.数据行

C.数据块

D.字符(字节)序列

56.以下各选项企图说明一种新的类型名,其中正确的是______。

A.typedefv1int;

B.typedefv2=int;

C.typedefintv3;

D.typedefv4:int

57.以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。#include<stdio.h>main(){FILE*fout;charch;four=fopen('abc.txt','w');ch=fgetc(stdin);while(ch!='#'){fputc(ch,fout);ch=fgetc(stdin);}felose(fout);}出错的原因是

A.函数fopen调用形式错误B.输入文件没有关闭C.函数fsetc调用形式错误D.文件指针stdin没有定义

58.下列程序的输出结果是()。voidf(int*x,int*y){intt;t=*x,*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i+)printf("%d,",a[i]);}

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

B.5,6,7,8,1,2,3,4

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

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

59.下列程序的输出结果是()main(){charch[2][5]={"6934","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.6385B.69825C.63825D.693825

60.设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是______。

A.'a'&&'b'

B.a<=b

C.a||+c&&b-c

D.!((a<b)&&!c||1)

四、选择题(20题)61.

62.整型变量X和Y的值相等,且为非0值,则以下选项中结果为0的表达式是()。

A.X‖YB.X|YC.X&YD.X^Y

63.

64.

65.下列说法中,不属于数据模型所描述的内容的是()

A.数据结构B.数据操作C.数据查询D.数据约束

66.

67.

68.

69.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。

A.大写字母B.连接符C.数字字符D.下划线

70.

71.设有宏定义:

72.

73.以下结构体类型说明和变量定义中正确的是()。

74.在C语言中,要求运算数必须是整型的运算符是()。

A)%B)/

C)<D)!

75.设有以下语句:typedefstructTY{charC;inta{41;}CIN;

则下面叙述中正确的是()。

A.CIN是structTr类型的变量

B.TT是struct类型的变量

C.可以用,lr定义结构体变量

D.可以用CIN定义结构体变量

76.C语言中,组成数据文件的成分是()。A.A.记录

B.数据行

C.数据块

D.字符(字节)序列

77.有以下程序程序运行后的输出结果是()。

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

78.若有以下语句

79.若有说明语句:double*p,a;则通过scanf语句正确给输入项读入数据的程序段是()。A.A.*p=&a;scanf("%1f”,p);

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

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

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

80.有以下程序:

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

A.OB.2C.3D.5

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCIl码升序排序后输出。例如,输入opdye,则应输出deopy。请修改程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include%string.h>#include%stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charC;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j4-+)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=C;}}voidmain{charst/[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\nknBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%S",str);}

六、程序设计题(1题)82.假定输人的字符串中只包含字母和*号。请编写函数proc,它的功能是:将字符串中

的前导*号全部删除,中间和后面的*号不删除。

例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则

应当是a*bc*def*g****。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编

写的若干语句。

试题程序:

#include<stdio.h>

#include<conio.h>

voidproc(char*str)

{

}

voidmain

{

charstr[81];

printf("Enterastring:kn");

gets(str);

proc(str);

printf("Thestringafterdeleted:kn");

puts(str);}

参考答案

1.D

2.A程序首先使用typedef定义一种新的类型名PER,它包含3种数据成员:整数num,字符数组name,整数score。main函数使用PER定义结构体数组s,s包含两个PER类型的元素。然后调用函数fun将数组s传入。fun函数的功能是比较形参数组x的两个元素的score值的大小。若第1个元素的score值大于第2个元素的score值,就使用临时变量t将两个元素的score值交换。由于621大于585且x等价于实参s的指针,因此实参s的两个元素的score也会进行交换,执行完fun函数之后,for循环将两个元素输出。故本题答案为A选项。

3.A解析:C语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。另外C语言规定了一些专用的标识符,它们有着固定的含义,不能更改。int就是表达变量类型的标识符,它不能再用做变量名和函数名,所以选项B)不正确。do是C语言的一个关键字,也不能再用做变量名和函数名,所以选项C)不正确。

4.A广播/电视是一种单向的、点对多点(面)的以信息传递为主要目的的系统。

5.D

6.A结构体和共用体;在“联合”中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度。应该说明的是,这里所谓的共享不是指把多个成员同时装入一个联合变量内,而是指该联合变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧值

7.D

8.B

9.A

10.C

11.A解析:对未给出初始值的整数数组元素,被默认初始化为零。

12.A数据管理技术发展的兰个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。

13.D解析:运算符“%”的两侧都应该是整型数。另外,本题需要掌握的知识点是:x%=k,等价于x=x%k。注意:强制类型转换表达式。

14.A

15.Dgetmax函数接收两个整型变量x、y,使用条件运算符返回x和y中的较大值。main函数首先输入a、b、c、d4个整数值,然后通过调用getmax函数,输出它们的最大值。假设x、y是整数,选项A中,首先执行“getmax(a,b)”,返回a、b中的较大值X,再执行“getmax(x,c)”,返回x、c中的较大值y,最后执行“getmax(y,d)”,返回y、d中的较大值,满足题意,正确;选项B中,首先执行“getmax(a,b)”,返回a、b的较大值X,再执行“getmax(c,d)”,返回c、d中的较大值y,最后执行“getmax(x,y)”,返回x、y中的较大值,正确;选项C中,首先执行“getmax(c,d)”,返回c、d的较大值X,再执行“getmax(b,x)”,返回b、x中的较大值y,最后执行“getmax(a,y)”,返回a、y中的较大值,正确;选项D中,首先执行“getmax(a,b)”,返回a、b的较大值X,再执行“getmax(c,d)”,返回c、d中的较大值y,最后执行逗号表达式“(x,y)”,返回值为7,不满足题意。故本题答案为D选项。

16.C在计算(float)(a4-b)/2时,由于通过强制类型转换将(a+b)转换成了float型,所以应先将2转换成float型,再进行计算,得4.500000。在计算(int)x%(int)y时,先将x和y通过强制类型转换成int型,再进行求余运算,结果为1。又因为4.500000是float型,所以将1和它相加时,先将1换成float型,再计算,得到5.500000。类型转换的一般规则是:低级类型从高级类型,并进行相应的转换。数据类型的级别由低到高的排序表示为:char→int→unsigned→log→float→double。

17.BC语言中指针就是变量的地址,它必须有确定的基类型。当指针指向某个变量时,才能向其中写入数据,选项A错误,选项B正确;指针除了指向变量外,还可以赋值为NULL,表示未指向任何地址,此时不能写入数据,另外指针必须有基类型,只能指向基类型相同的变量,选项C错误;指针只能与一个整数进行运算,即移动指针,两个指针不能运算,选项D错误。本题答案为B选项。

18.D在最坏情况下,冒泡排序和快速排序的比较次数都是n(n一1)/2。【知识拓展】所谓冒泡排序,就是将相邻的两个数据比较,如前面的数据大于后面的,则位置互换。这样不停地比较、互换,其实就是把大的数往后排,小的数往前排(就像冒泡一样冒出来了)。

19.A

20.D本题主要考查带参数的宏定义,过程如下:由于定义为define(x)x*x没有括号优先级,所以:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

21.aa解析:'z'的ASCII码值为122,经过c-25运算后,得97,以字符形式输出是a。

22.1616解析:首先用j和MCRA(i)替换MCRB(n,m)中的参数n和m,变成2*MCRA(j)+MCRA(i),再用j和i替换MCRA(m)中的参数m,变成2*2*j+2*i=2*2*3+2*2=16。

23.max=(a>b)?a:bmax=(a>b)?a:b解析:本题考查三目运算符的用法,条件表达式的一般形式为:

表达式1?表达式2:表达式3

所以,本题可以写成(a>b)?a:b,它是一个条件表达式,执行顺序是:如果条件(a>b)为真,则条件表达式取值a,否则取值b。

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

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

26.3232解析:while(表达式)的功能是:首先计算表达式的值,若为真,则执行循环体语句,执行完毕,再计算表达式的值,若仍为真,则重复执行循环体语句,直到表达式的值为假时,结束while语句的执行,继续执行while语句后面的语句:i=0时满足循环条件,也满足if的条件,执行语句得i=11,a=11,第2次循环不满足if的条件,执行i--,i=10,执行i+=11;a+=i后,得i=21,a=32,不满足i<20,循环结束。

27.4242解析:主函数中的for循环循环两次,即函数sub()被调用两次。在sub()中x被定义为静态整型变量,当调用函数sub()完毕返回主函数,x中的值仍然保留,下次调用函数sub()时,x不再被赋初值。第1次调用x/=2相当于x=x/2=8/2=4,第2次调用x=x/2=4/2=2,因此输出42。

28.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中为了表示函数调用“不带回值”,可以用“void”定义函数为“无类型”(或称“空类型”),这样系统就保证不使函数带回任何值。当二维数组作为形参时,二维数组的第一维可以省略。

29.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。

30.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。

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

32.概念(或概念级)概念(或概念级)

33.动态多变量动态多变量

34.246

35.封装封装

36.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本题要求将字符串str中的字符用冒泡排序算法从大到小排列,其实现过程是将相邻两个字符进行比较,如果当前字符小于下—个字符,则通过中间变量temp将字符两两交换,所以第一空应填:str[i],第二空应填:str[i+1]。最终打印输出得到的字符串str,所以第三空应填:'%s',str。

37.malloc(11)malloc函数的格式是void*(或char*)malloc(size),size表示应分配的存储区,此题要分配11字节的单元,把11代入即可。

38.yesyes解析:程序if语句中是赋值表达式,而不是相等“==”运算。因为c=a+b中a+b的值为4,赋给c,c=4,表达式为真,输出yes。

39.输出结果输出结果解析:注意:测试的基本方法和步骤。

40.一对多或1:N一对多或1:N解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有三种,即一对一(1:1)的联系、一对多(1:N)或多对一(N:1)的联系和多对多(N:N)的联系。

41.D解析:本题考查了软件工程的基本概念。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理。

42.D

43.C解析:A、D选项是关系运算表达式,在C语言中,只要关系运算符两边是合法的表达式就可以了。C选项中,%只能对整型进行运算,其中对f进行了强制类型转换,但是转换的表达式错了,应为:(int)(f)。

44.B解析:sizeof()函数的功能是返回字符串所占的字节数,strlen()函数的功能是返回字符串的长度,其中'\\0'是一个转义字符,它占存储空间,但不计入串的长度。

45.A解析:本题考查两个概念:①用单引号括起来的一个字符常量只能存放一个字符;②C语言中没有字符串变量,只能用字符数组来存储字符串。

选项A)中一个单引号内放了若干个字符是错误的:选项B)和选项D)选项中将一个字符串赋值给一个字符数组是允许的。

46.A解析:在本题中k=n++,为后缀运算。根据其运算规则,首先n先加一,但n++表达式的值依然为n原来的值,即k的值变为n加1之前的值。选项A中先给k赋值为n,然后n再加1,k值没有变化,所以这个表达式和本题中表达式等价;选项B中先n加1,然后将n加1后的值赋给k,所以这个表达式和本题中表达式不等价:选项C中先计算表达式++n的值,执行++n后,k变为n加1后的值,所以这个表达式和题目中的表达式不等价;选项D中表达式展开为k=k=(n+1),k被累加,所以这个表达式和题目中的表达式不等价。所以4个选项中A正确。

47.B解析:本题主要考查关系模型中几种运算的特征。经过选择或投影运算得到的新关系的属性个数最多不会超过原关系中的属性个数。经过连接运算得到的新关系最多不少于原关系中属性的个数。故选项B正确。

48.D解析:main函数的参数通常有两个,前者为整型,后者为字符型指针数组。参数的名字可以是任意合法的标识符。而且,形如**av与*av[]等价,所以选项A、B、C均正确,选项D是错误的。

49.B解析:软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。

50.C解析:软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念。①抽象是一种思维工具,就是把事物本质的共同特性抽出来而不考虑其他细节。②模块是指可以单独命名且可编址的元素。如高级语言中的过程、函数、子程序等。③信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。④模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。因此,本题的正确答案是C。

51.C解析:求余运算符'%'两边的运算对象必须是整型,而选项B)和D)中'%'两边的运算对象有浮点整数据,所以选项B)和D)是错误的表达式。在选项A)中赋值表达式的两边出现相同的变量x,也是错误的。选项C)是一个逗号表达式,所以正确答案为C)。

52.C解析:本题主要考查怎样为嵌套定义的结构中的成员赋值:由于worker中的birth是一个st型的结构,在给birth赋值时,不能将birth作为一个整体,要用“.”运算再深入一层访问到最基本的成员x、y、z。

53.C解析:strlen(s)返回s字符串中字符的个数,若s是个数组,则返回数组元素的个数。

54.A解析:C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。大写字母和小写字母被认为是两个不同的字符,用户在定义标识符时应尽量做到“见名知意”,且不允许使用关键字作标识符。

55.D解析:C语言中的文件是流式文件。流式文件是一种无结构文件,即整个文件是一串字符流或二进制流。文件的存取以字符或字节为单位。

56.C解析:C语言中可以使用typedef来重新定义已有的数据类型,相当于为数据类型取个别名。

57.A解析:stdin是标准输入设备的文件指针,不需定义直接可以使用,它随系统的启动而打开,随系统的关闭而关闭,fgetc()函数的作用是从某个文件中读取一个数据,其参数为要读取文件的文件指针。fopen()函数有两个参数,第一个参数是打开的文件名,第二个参数是文件打开模式,两个参数都是字符串,本例中“four=fopen('abc.txt','w');”语句的fopen()函数参数是错误的,应该用双引号“w”,正确的应改为fout=fopen(“abc.tx”,“w”);。

58.D解析:函数f()的功能是对两个数据互换。在主函数中指针变量p和q分别指向数组a[8)的首和尾,在while循环中实现从首尾开始数组元素的互换操作。

59.A

60.D解析:选项A:'a'&&'b'是字符a与b的相与,不为0:选项B:a<=b,由题中变量赋值可知,结果为1。选项C:a||+c&&b-c,结果为1;选项D:!((a<B)&&!c||1),运算结果为0。

61.D

62.DX||Y是将X和Y作逻辑或运算,因为都是非0,所以结果为1,X|Y是做位或运算,即相同位置的数字只要有一个为1,结果为1,其结果也为非0,X&Y是为与运算,相同位置的数字都为1的时候才为1,其结果为非0,X^Y做位异或运算,即同0异1,因为X与Y的值相等,所以相同位置的数字一定相同。

63.D

64.B

65.C通俗地讲,数据模型就是现实世界的模拟和抽象。数据模型是把现实生活中的具体事务转换成计算机能够处理的数据工具。任何一种数据库系统都必须建立在一定的数据模型之上。由于现实世界的复杂性,不可能直接从现实世界中建立数据模型,所以,人们通常采用如下的处理过程。

现实世界抽象至信息世界,再转化为机器世界

把整个过程划分成三个世界和两个阶段。首先要把现实世界抽象为信息世界,并建立信息世界中的数据模型,即概念模型,然后进一步把概念模型转化为可以在计算机中实现的且最终支持数据库系统的数据模型。现实世界,简单地说,就是人们赖以生存的生活环境,它是具体事物和抽象概念的总和。信息世界也称为概念世界,现实世界在人们头脑中的反映就是信息世界,信息世界不是现实世界的录像,必须从具体事务出发抽象其概念。当信息世界进入计算机后,就成为了机器世界。

一般地讲,任何一种数据模型都是严格定义的概念的集合。这些概念必须能够精确地描

温馨提示

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

评论

0/150

提交评论