2021年福建省龙岩市全国计算机等级考试C语言程序设计真题二卷(含答案)_第1页
2021年福建省龙岩市全国计算机等级考试C语言程序设计真题二卷(含答案)_第2页
2021年福建省龙岩市全国计算机等级考试C语言程序设计真题二卷(含答案)_第3页
2021年福建省龙岩市全国计算机等级考试C语言程序设计真题二卷(含答案)_第4页
2021年福建省龙岩市全国计算机等级考试C语言程序设计真题二卷(含答案)_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

2021年福建省龙岩市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下正确的字符常量是()。A.'\089'B.'\012'C.'\0XAB'D.'\0xab'

2.

3.判定一个循环队列qu(最多元素为MaxSize)为空的条件是()。

A.QU->rear-QU->front==MaxSize

B.QU->rear-QU->front-1==MaxSize

C.QU->front==QU->rear

D.QU->front==QU->rear+1

4.下面哪种排序的平均比较次数最少()

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

5.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序运行的结果是()。A.1,2,3,4,5,6,7,8,9,0,

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

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

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

6.有以下程序:#include<stdio.h>intf1(inta){returna*3;}intf2(int*b){return*b*5;}main(){intx=3,y=5;printf(“%d,%d\n”,f1(x),f2(&y));}程序的运行结果是()。

A.9,125B.9,25C.3,15D.3,45

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

A.C程序由函数和过程组成B.C程序由主函数组成C.C程序由函数组成D.C程序中,主函数必须放在其他函数之前

8.

9.下列选项中,当X为大于1的奇数时,值为0的表达式是()。

A.x%2==0B.x/2C.x%2!=0D.x%2==1

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

A.表达式“sizeof(FILE*)==sizeof(int*)”的值为真

B.文件指针的值是一个整数,它的值一定小于文件字节数

C.文件指针的值是所指文件的当前读取位置

D.使用fscanf函数可以向任意类型的文件中写入任意数量的字符

11.恢复系统默认菜单的命令是()。

A.SETMENUTODEFAULT

B.SETSYSMENUTODEFAULT

C.SETSYSTEMMENUTODEFAULT

D.SETSYSTEMTODEFAULT

12.已知有double型变量x=2.5,y=4.7,整型变量a=7,则表达式x+a%3*(int)(x+y)%2/4的值是()。

A.2.4B.2.5C.2.75D.0

13.任何一个无向图的最小生成树()。

A.只有一棵B.有一棵或多棵C.一定有多棵D.可能不存在

14.

15.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系

16.若有下面的说明和定义

structtest

{intml;charm2;floatm3;

unionuu{charul[5];intu2[2];}ua;

}myaa;

则sizeof(structtest)的值是A.A.12B.16C.14D.9

17.要求当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,以下不满足要求的表达式是()。A.A%2==1B.!(A%2==0)C.A%2D.!(A%2)

18.下列程序的输出结果是

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{inta[M][N];

inti,j;

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

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

a[i][j]=i+j-(i-j);

fun(a);}

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

19.有以下程序:#include<stdio.h>voidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]=“acc”,aa[10]=“bbxxyy”;fun(ss,aa);printf(“%s,%s\n”,ss,aa);}程序的运行结果是()。

A.acc,bbxxyy

B.accbbxxyy,bbxxyy

C.accxxyy,bbxxyy

D.accxyy,bbxxyy

20.软件设计中划分模块的一个准则是()。A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合

二、2.填空题(20题)21.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为______。

22.下面程序的运行结果是()。#include<stdio.h>main(){inta,b,c,n;a=2;b=0;c=1;n=1;while(n<=3){c=c*a;b=_b+c;++n;}printf("b=%d",B);}

23.下面程序

main()

{intx,y,m,n;

x=5;y=8;

m=++x,x;

n=y+y++;

printf("%d,%d,%d,%d",x,y,m,n);

}

运行后,x,y,m,n的值是______。

24.在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【】。

25.当运行以下程序时,输入abed,程序的输出结果是:【】。

insert(charstr[])

{inti

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*-1]='*';i--;}

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

}

main()

{charstr[40];

scanf("%s",sB);insert(str);

}

26.以下程序的输出结果是()。#include<stdio.h>voidmain(){intf,f1,f2,i;f1=0;f2=1;printf("%d%d",f1,f2);for(i=3;i<=5;i++){f=-f1+f2,printf("%d",f);f2=f1;f1=f;}printf("\n");}

27.以下函数用来求出2个整数之和,并通过形参将结果传回。

voidfunc(intx,inty,【】z)

{*z=x+y;}

28.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。

29.以下程序的功能是计算。补足所缺语句。

longf(intn)

{inti;longs;

s=【】;

for(i=1;i<=n;i++)s=【】;

returns;

}

main()

{longs;intk,n;

scanf("%d",&n);

s=【】;

for(k=0;k<=n,k++)s=s+【】;

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

}

30.以下程序通过函数指针p调用函数fun,请在填空栏内写出定义变量p的语句。

voidfun(int*x,int*y)

{……}

main()

{inta=10,b=20;

【】:

p=fun;p(&a,&b);

……

}

31.测试用例包括输入值集和【】值集。

32.下面程序的功能是:计算1~10之间的奇数之和与偶数之和,请填空。

#include<stdio.h>

main()

{inta,b,c,i;

a=c=0;

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

{a+=i;

【】;

c+=b;}

printf("偶数之和=%d\n",a);

printf("奇数之和=%d\n",c-11);}

33.在C语言中,字符的比较就是对它们的【】码进行比较。

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

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

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

【】t[20]

35.诊断和改正程序中错误的工作通常称为【】。

36.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。

37.算法的复杂度主要包括时间复杂度和______复杂度。

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

39.数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是______。

40.若有以下程序:

main()

{intp,a=5;

if(p=a!=0)

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

else

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

执行后的输出结果是【】。

三、1.选择题(20题)41.以下不正确的叙述是A.A.在C程序中,逗号运算符的优先级最低

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

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

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

42.C语言中下列叙述正确的是_______。

A.不能使用do...while语句构成的循环

B.do...while语句构成的循环,必须用break语句才能退出

C.do...while语句构成的循环,当while语句中的表达式值为非零时结束循环

D.do...while语句构成的循环,当while语句中的表达式值为零时结束循环

43.已知大写字母A的ACSⅡ码为65,以下程序的运行结果是()#include<stdio.h>main(){charc1='A',c2='Y';printf("%d,%d\n",c1,c2);}A.65,89B.A,YC.65,88D.65,90

44.有以下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是

A.编译出错B.9C.21D.9

45.以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#defineN10voidartin(intx[N]){inti=0;while(i<N)scanf("%d",);}在下划线处应填入的是()。

A.x+iB.&x[i+1]C.x+(i++)D.&x[++i]

46.从工程管理角度,软件设计一般分为两步完成,它们是()。

A.概要设计与详细设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计

47.阅读下列程序,则运行结果为

#include"stdio.h"

fun()

{staticintx=5;

x++;

returnx;}

main()

{inti,x;

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

x=fun();

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

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

48.关系表中的每一横行称为—个______。

A.元组B.字段C.属性D.码

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

A.软件交付使用后还需要进行维护

B.软件一旦交付使用就不需要再进行维护

C.软件交付使用后其生命周期就结束

D.软件维护是指修复程序中被破坏的指令

50.下列工具中为需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

51.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。A.概要设计B.详细设计C.可行性分析D.需求分析

52.下列叙述中,不属于测试的特征的是

A.测试的挑剔性B.完全测试的不可能性C.测试的可靠性D.测试的经济性

53.在C语言中,while和do…while循环的主要区别是()。

A.do…while的循环体不能是复合语句

B.do…while允许从循环体外转到循环体内

C.whil8的循环体至少被执行一次

D.do…while的循环体至少被执行一次

54.在函数scanf的格式控制中,格式说明的类型与输入项的类型应该对应匹配。如果类型不匹配,系统将()。

A.不予接收B.并不给出出错信息,但不能得到正确的数据C.能接收到正确输入D.给出出错信息,不予接收输入

55.已定义下列函数:intfun(int*p){return*p;)fun函数返回值是()。

A.不确定的值B.一个整数C.形参p中存放的值D.形参p的地址值

56.有下列程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;执行该程序段后,k的值是()。

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

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

A.5.5B.55C.5.5D.55

58.程序中若有如下说明和定义语句:charfun(chat*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;}以下选项中对函数fun的正确调用语句是()。

A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);

59.下列选项中不属于结构化程序设计方法的是()。

A.自顶向下B.逐步求精C.模块化D.可复用

60.数据处理的最小单位是()。

A.数据B.数据元素C.数据项D.数据结构

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

main()

{intp[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2){k=k+p[i++];i++}

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

}

执行后输出的结果是()。

A.57B.39C.24D.11

62.下列叙述中正确的是()。A.数据库系统可以解决数据冗余和数据独立性问题,而文件系统不能

B.数据库系统能够管理各种类型的文件,而文件系统只能管理程序文件

C.数据库系统可以管理庞大的数据量,而文件系统管理的数据量较少

D.数据库系统独立性较差,而文件系统独立性较好

63.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),

A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定

64.下列程序的输出结果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999

65.

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

A.intabc=50;

B.doubleint=3+5e2.5;

C.longdo=1L;

D.float3asd=3e一3;

67.若变量X、y已正确定义并赋值,以下符合c语言语法的表达式是()。

A.++x,y=x-一B.x+l=yC.x=x+10--x+yD.double(x)/lO

68.有以下程序:

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

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

69.以下选项中正确的语句组是()。

A.char*s;8={1.BOOK!”}i

B.char*s;8=”BOOK!”;

C.charS[10];S=”BOOK!”;

D.charS[];S=”BOOK!”;

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

A.y=-IB.y=oC.y=lD.while构成无限循环.

71.

72.以下选项中关于C语言常量的叙述错误的是()。

A.经常被使用的变量可以定义成常量

B.常量分为整型常量、实型常量、字符常量和字符串常量

C.常量可分为数值型常量和非数值型常量.

D.所谓常量,是指在程序运行过程中,其值不能被改变的量

73.表达式'5'-'1'的值是()。A.A.整数4B.字符4C.表达式不合法D.字符6

74.#define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

75.有以下程序

76.数据库管理系统中负责数据模式定义的语言是()。A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言

77.设有以下语句

charx=3,y=6,z;

z=x^y<<2;

则z的二进制值是

A.00010100B.00011011C.00011100D.00011000

78.

若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为()。

cb=b;

k=10;

printf("%X,%o,”,ch,ch,k);

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

A.因变量类型与格式描述符的类型不匹配,输出无定值

B.输出项与格式描述符个数不符,输出为0值或不定值

C.62,142,k=%d

D.62,142,k=%10

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

A.模块间的关系

B.系统结构部件转换成软件的过程描述

C.软件层次结构

D.软件开发过程

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量num1中的值原为2,num2中的值原为1,程序运行后,num1中的值为l,num2中的值为2。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.M名学生的成绩已在主函数中放人一个带头结点的链表结构中,h指向链表的头结点。请编写函数proc(),它的功能是:找出学生的最高分,由函数值返回。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.B题目中的选项都以转义字符“\\”开头,“\\ddd”表示3位八进制数代表的一个ASCII字符,“\\xhh”表示2位十六进制数代表的一个ASCII字符。选项A中“089”是不合法的八进制数,错误;选项C、D中“\\0X”或“\\0x”不合法,错误;选项B表示八进制数012代表的ASCII字符,正确。本题答案为B选项。

2.D

3.C

4.D

5.Dfun函数的功能是对数组a[]的元素从大到小进行排序。

6.Bf1函数接收整型数a,将a的值乘以3,结果作为函数返回值返回;f2接收整型变量的地址,将地址中的值取出后乘以5,结果作为返回值返回;main函数定义两个变量x、y,初值分别是3和5,所以调用f1(x)返回值为9,调用f2(&y)返回值为25。故本题答案为B选项。

7.C

8.B

9.A算术运算符的优先级高于关系运算符的优先级。所以当x为大于1的奇数时,A选项的值为假,即0。B选项的值为不定值,但绝对不是0。C选项的值为真,即1。0选项的值为真,即1。故本题答案为A选项。

10.A“sizeof(FILE*)=4”,因为“file*”为指针,指针变量占用字节数为4,所以“sizeof(int*)=4”,选项A正确。文件指针的值是地址,是一个十六进制数,它的值不一定小于文件字节数,因此选项B错误。文件指针是所指文件的当前读取位置,而不是文件指针的值,因此选项C错误。“intfscanf(FILE*Stream,constchar*format,[argument...]);”,fScanf函数可以向任意类型的文件写入任意数量的数据(不能超过系统的缓冲区),写文件先写入缓冲区,最后一起写入文件,因此选项D错误。故本题答案为A选项。

11.BB。【解析】考查菜单。在菜单中恢复系统菜单用的是SETSYSMENUTODEFAULT。所以答案选择B。

12.B

13.B

14.B

15.C(10)C)解析:DB即数据库(Database),是统一管理的相关数据的集合;DBMS即数据库管理系统(DatabaseManagementSystem),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法;DBS即数据库系统(DatabaseSystem)由如下5部分组成,数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。

16.A

17.D

18.B解析:若有以下定义:inta[3][4],i,j;且当0<=i<3,0<=j<4,则可以有以下几种方式来引用数组中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。

19.B在函数fun中,前一个while循环的作用是,如果形参指针t所指内容不为0,则让t增1,直到它指向0;后一个while循环的作用是,将s所指内容赋给t所指地址,然后两者同时增1,直到赋给t的内容为0。由此可见,函数fun的作用就是将形参s所指字符串连接到形参t所指字符串末尾,相当于库函数strcat。主函数中使用fun将数组aa中的字符串连接到数组ss中原有字符串之后,所以执行完后,ss中的字符串为“accbbxxyy”。程序最后输出的结果是accbbxxyy,bbxxyy。故本题答案为B选项。

20.B一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

21.物理独立性物理独立性解析:数据的独立性是指数据和应用程序相互独立,分为物理独立性和逻辑独立性。其中物理独立性是指数据的物理结构(包括存储结构、存取方式)改变时,不需要修改应用程序。而逻辑独立性是指当逻辑结构改变时,不需要修改应用程序。

22.BB解析:分析程序可知,n的初始值为1,因此。while(n<=3)循环3次。第1次:c=c*a=2;b=b+C=2;n=2。第2次:c=c*a=4;b=b+c=6;n=3。第3次:c=c*a=8;b=b+e=14。当n=4时,判断条件不满足,退出循环。

23.69616。6,9,6,16。解析:赋值语句m=++x,x;是将逗号表达式的值赋给m,x和m的值都是6,赋值语句n=y+y++;是将y+y的值16赋给n,再执行y的自加运算,y的值变为9。

24.log2n

25.a*b*c*da*b*c*d,解析:在insert()函数,因为题目要求输入的字符串为abed,所以执行完“i=strlen(str);”后,i中存放的是字符串abcd的长度值4。所以接F来的while循环会循环4次,每次让i减1,故4次循环中i的值依次为4、3、2、1。每次循环会执行两条语句str[2*i]=str[i];str[2*i-1]='*',当i=4时为:str[8]=str[4];str[7=='*';。执行结果是将字符串abed末尾的结束符'\\0'复制到其下标值2倍的位置,并在其前1位插入—个'*'哼符。接下来i=3,执行str[6]=str[3];str[5]='*'。执行后会将字符串abcd最后一个字符,d复制到其下标值2倍的位置,并在其前1位插入一个'*'字符。依次类推,直到i=1,执行str[2]=str[1];str[1]='*',将字符tb,往后移动了1位,并在原位置插入'*'字符。所以,循环结束后,字符串str会变为a*b*c*d*。这就是程序的输出结果。

26.0111201112解析:在主函数中定义了整型变量f1和f2,并把其值赋为0和1,在屏幕上输出。然后在第一次运行for循环语句时,变量f的值等于1,把其值输出,把变量f1的值0赋给变量f2,变量f的值1赋给n,在执行第二次for循环语句时,变量f的值等于1,把此值输出。然后再把变量f1的值1赋给变量f2,变量f的值1赋给f1,在执行第三次for循环语句时,变量f的值等于2,把此值输出。所以程序运行后的结果为01112。

27.int*

28.循环链表循环链表解析:在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。

29.1s*i0f(k)

30.void(*p)();void(*p)();解析:要定义p为指向函数的指针变量,需写成void(*p)();,注意*p两侧的括弧不可以省略,表示P先与*结合,是指针变量,再与后面的()结合,表示此指针变量指向函数,这个函数无返回值(同fun()函数)。

31.输出输出解析:测试用例曲测试输入数据(输入值集)和与之对应的预期输出结果(输出值集)两部分组成。

32.b=i+1b=i+1解析:本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2之后和累加至a,所以a的值就是1~10之间的偶数之后;b的值是1~11之间的奇数和,但在输出b值时c去掉多加的11,即为1~10之间的奇数之和。

33.ASCⅡ

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

结构体类型的定义:

struct结构体类型名

{

成员项表;

};

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

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

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

35.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。程序调试与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于调试工具找出软件错误的具体位置。软件测试贯穿整个软件生命期,而调试主要在开发阶段。

36.类类解析:在面向对象方法中,类描述的是具有相似属性与操作的一组对象。

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

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

39.数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段解析:在数据库系统管理阶段,数据是结构化的,是面向系统的,数据的冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性,同时提高了数据的可扩充性和数据应用的灵活性;数据具有独立性,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性,二是逻辑独立性;保证了数据的完整性、安全性和并发性-综上所述,数据独立性最高的阶段是数据库系统管理阶段。

40.11解析:本题考查C语言中的if-else语句。if语句中的条件表达式p=a!=0是一个赋值语句,将关系表达式a!=0的结果赋值给变量p。因a=5,所以a!=0的结果为1,即p=1,条件为真,所以执行if后面的语句printf('%d\\n',p),输出结果为1。

41.D解析:在C语言所有的运算符中,逗号运算符的优先级最低。C语言中区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值付给a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。

42.D解析:选项A是错误的,C语言支持do…while语句;选项B是错误的,do…while构成的循环,当while语句中的表达式值为零时结束循环,而不是非零;选项C也是错误的。

43.A

44.B解析:本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符将一个表达式转换成所需类型。如:(double)a是将a转换成double类型;(int)(x+y)是将x+y的值转换成整型。

本题可按部就班地逐步运算:

fun((int)fun(a+c,b),a-c)

fun((int)fun(10,5),2-8)

fun((int)15.000000,-6)

fun(15,-6)

9

45.C解析:根据scanf()的定义,应该在空白处填入一地址值,又因为要为数组中所有元素赋值,故空白处填入的表达式应使i每次增1,选项A和B不会使i增1,所以不正确。选项D在第一次执行时i先自增为1,所以输入的第一个数据被存到x[l]中,而第N次执行时会将数据输入到x[N],这个地址已经超过数组x的范围,属于越界行为,所以也不正确。故正确答案为C。

46.A解析:从工程管理的角度看,软件设计可分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架;详细设计是将其进一步精化成软件的算法或表示和数据结构。而在技术上,概要设计和详细设计又由若干活动组成,包括总体结构设计/数据设计和过程设计。因此,本题的正确答案是A。

47.D解析:在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久的存储单元,即使退出函数以后,下次再进入该函数时,静态局部变量仍使用原来的存储单元,静态局部变量的初值是在编译的时候赋予的,在程序执行期间不再赋予初值。本题由于连续三次调用函数fun(),三次对静态变量x进行操作,x的值应依次为6,7,8。

48.A解析:在关系数据库中,关系模型采用二维表来表示,简称“表”。二维表是由表框架及表元组组成。在表框架中,按行可以存放数据,每行数据称为元组。

49.A解析:维护是软件生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段。软件工程学的目的就在于提高软件的可维护性,同时也要设法降低维护的代价。

软件维护通常有以下四类;

①为纠正使用中出现的错误而进行的改正性维护;

②为适应环境变化而进行的适应性维护;

③为改进原有软件而进行的完善性维护;

④为将来的可维护和可靠而进行的预防性维护。

软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。由此可知,本题中选项B、C、D中的说法都是错误的。

50.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。

51.D通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说:软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。

软件生命周期的主要活动阶段为:

①可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成开发任务的实施计划。

②需求分析。对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件,规格说明书及初步的用户手册,提交评审。

③软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。

④软件实现。把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。

⑤软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。

⑥运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。

52.C解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中没有测试的可靠性这一说法。注意:软件测试与软件调试的概念,以及相应的方法。

53.D解析:本题考查while和do…while循环的区别。while循环的控制出现在循环体之前,只有当while后面的表达式的值为非零时,才可能执行循环体:在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值,因此无论表达式的值是否为零,循环体至少要被执行一次。

54.B解析:在scanf函数的格式控制中,格式说明的类型与输入项的类型必须一一对应匹配,如不匹配将导致数据输入出现错误,但是系统并不报错。

55.B解析:由函数intfun(int*p){return*p;}的定义可知,返回值为整型指针变量p所指向的数据。

56.B解析:因为a<b成立,所以条件表达式a<b?b:a的值等于b的值等于2,因此变量k的值等于2。又因为k=2>c=3不成立,所以条件表达式k>c?c:k的值等于k的值等于2。把条件表达式k>c?c:k的值赋给变量k,因而变量k的值等于2。因此,选项B)为正确答案。

57.C解析:在计算(float)(a+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→long→float→double。

58.A

59.D解析:20世纪70年代以来,提出了许多软件设计方法,主要有①逐步求精:对复杂的问题,应设计一些子目标作过渡,逐步细化;②自顶向下:程序设计时应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化;⑧模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块,而可复用是面向对象程序设计的一个优点。

60.C解析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项C)。

61.D循环的条件是i<7并且p[i]是奇数,当i=0时,i<7,p[i]=11,满足条件,所以k=0+11=11,然后i++,i++,所以i=2,p[2]=14,为偶数,退出循环,这时k还是11.

62.A数据管理技术的发展经历了3个阶段:

人工管理阶段、文件系统阶段和数据库系统阶段。三者各自的特点如下表所示。\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t特点\t\t\t\t\t\t\t人工管理阶段\t\t\t\t\t\t\t文件系统阶段\t\t\t\t\t\t\t数据库系统阶段\t\t\t\t\t\t\t管理者\t\t\t\t\t\t\t人\t\t\t\t\t\t\t文件系统\t\t\t\t\t\t\t数据库管理系统\t\t\t\t\t\t\t面向对象\t\t\t\t\t\t\t某个应用程序\t\t\t\t\t\t\t某个应用程序\t\t\t\t\t\t\t现实世界\t\t\t\t\t\t\t共享程度\t\t\t\t\t\t\t无共享,冗余度大\t\t\t\t\t\t\t共享性差,冗余度大\t\t\t\t\t\t\t共享性大,冗余度小\t\t\t\t\t\t\t独立性\t\t\t\t\t\t\t不独立,完全依赖于程序\t\t\t\t\t\t\t独立性差\t\t\t\t\t\t\t具有高度的物理独立性和一定的逻辑独立性\t\t\t\t\t\t\t结构化\t\t\t\t\t\t\t无结构\t\t\t\t\t\t\t记录内有结构,整体无结构\t\t\t\t\t\t\t整体结构化。用数据筷基誊述\t\t\t\t\t\t\t控制能力\t\t\t\t\t\t\t由应用程序控制\t\t\t\t\t\t\t由应用程序控制\t\t\t\t\t\t\t由DB蝰墨供数据安全性、完整性、并发控剖和恢复\t\t\t\t数据库系统可以解决数据冗余和数据独立性问题,面文件系统不能。数据库系统和文件系统的区别不仅在于管理的文件类型与数据量的多少。数据库系统具有高度的物理独立性和一定的逻辑独立性,而文件系统独立性较好。故本瑟答案为A选项。

63.D解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo\u3000C\u30002.0中,int占2个字节,但在VisualC++6.0(VC6可以用做C语言编译器)中占4个字节。故本题应该选择D。

64.C

温馨提示

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

评论

0/150

提交评论