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

下载本文档

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

文档简介

2022年安徽省安庆市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序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

2.有下列程序:程序执行后的输出结果是()。

A.hAppychristmAs

B.happychristmas

C.HAppyCHrIstmAs

D.HAPPYCHRISTMAS

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

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

4.在一个C程序中

A.main函数必须出现在所有函数之前

B.main函数可以在任何地方出现

C.main函数必须出现在所有函数之后

D.main函数必须出现在固定位置

5.直接选择排序的时间复杂度为()。(n为元素个数)

A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)

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

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

7.有以下程序:main{inta[]=(2,4,6,8,10},y=0,x,*P;p=&a[1];for(x=1;x<3;x++)y+=p[x];printf("%d\n,y");}程序运行后的输出结果是()。A.10B.11C.14D.15

8.下面描述中,不属于软件危机表现的是()A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高

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

#include<stdio.h>

main()

{iuta=2,b=3,p;

p=f(a,B)

printf("%d",p);

}

intf(a,b)

{intc;

if(a>B)c=1;

e1Seif(a==B)c=0;

else(3=-1;

return(C);

}

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

10.

11.设有定义“inta;floatb;”,执行“scanf(“%2d%f”,&a,&b);”语句时,若从键盘输入876543.0并按<Enter>键,则a和b的值分别是()。

A.87和6.0B.876和543.0C.87和543.0D.76和543.0

12.设有定义“Charp[]={‘1’,‘2’,‘3’},*q=p;”,以下不能计算出一个char型数据所占字节数的表达式是()。A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

13.单链表中,增加一个头结点的目的是为了()。

A.使单链表至少有一个结点B.标识表结点中首结点的位置C.方面运算的实现D.说明单链表是线性表的链式存储

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

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

15.某二叉树结点的中序序列为A、B、C、D、E、F、G,后序序列为B、D、C、A、F、G、E,该二叉树对应的层次遍历序列为()

A.E、G、F、A、C、D、B

B.E、A、C、B、D、G、F

C.E、A、G、C、F、B、D

D.E、G、A、C、D、F、B

16.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf('%d,%d\n",m,i);}执行后的输出结果是()。

A.8,6B.8,3C.6,4D.7,4

17.设有以下程序段:structbook{floatprice;charlanguage;chartitle[20];}rec,*ptr;ptr=&rec;要求输入字符串给结构体变量rec的title成员,错误的输入语句是()。

A.scanf(“%s”,ptr.title);

B.scanf(“%s”,rec.title);

C.scanf(“%s”,(*ptr).title);

D.scanf(“%s”,ptr->title);

18.串的长度是______。A.A.串中不同字符的个数

B.串中不同字母的个数

C.串中所含字符的个数且字符个数大于零

D.串中所含字符的个数

19.对含有16个元素的有序表进行二分查找,关键字比较次数最多是()

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

20.

二、2.填空题(20题)21.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。

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

23.将代数式转换成程序设计中的表达式为【】。

24.若变量x、y已定义为int类型且X的值为33,y的值为3,请将输出语句printf((),x/y);补充完整,使其输出的计算结果形式为:x/y=11。

25.一般来说,算法可以用顺序、选择和______三种基本控制结构组合而成。

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

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

main()

{imti,sum;

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

sum+=i;

printf("%d",sum);

}

28.设一棵二叉树的中序遍历结果为ABCDEFG,前序遍历结果为DBACFEG,则后序遍历结果为【】。

29.深度为5的满二叉树中,叶子结点的个数为______。

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

31.如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体“工人”与实体“设备”之间存在______联系。

32.栈的3种基本运算是:入栈、退栈和______。

33.下列程序的运行结果是______。

#defineP(A)printf("%d",A)

main()

{intj,a[]={1,2,3,4,5,6,7},i=5;

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

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

34.以下程序用业统计文件十字符个数。请填空。

#include"stdio.h"

main()

{FTLE*fp;longnum=OL;

if((fp=fopen("fname.dat","r"))==NUlL)

{pirntf("Openerror\n");exit(0);}

while()

{fgetc(fp);num++;}

printf("num=%1d\n",num-1);

fclose(fp);

}

35.以下程序的运行结果是______。

intx;

main()

{inta=5,b=8;

swap(a,b);

printf("a=%d,b=%d,x=%d\n",a,b,x);

}

swap(inta,intb)

{inttemp;

temp=a;a=b;

b=temp;x=a/b;

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

}

36.数据库系统中实现各种数据管理功能的核心软件称为【】。

37.在树形结构中,树根结点没有______。

38.函数mycmp(char*s,char*t)的功能是比较字符串s和t的大小,当s等于t时返回0,当s>t时返回正值,当s<t时返回负值。请填空。

mycmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}

return(【】);

}

39.常用的黑箱测试有等价类划分法、【】和错误推测法3种。

40.若变量n的值为24,则print函数共输出【】行,最后一行有【】个数。

voidprint(intn,intaa[])

{inti;

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

{printf("%6d",aa[i]);

if(!(i%5))printf("\n");

}

printf("\n");

}

三、1.选择题(20题)41.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指()

A.数据与程序独立存放

B.不同的数据被存放在不同的文件中

C.不同的数据只能被对应的应用程序所使用

D.以上三种说法都不对

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

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

43.X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是______。

A.INPUTX,Y,Z;

B.scanf("%d%d%d",&X,&Y,&Z);

C.scanf("%d%d%d",X,Y,Z);

D.read("%d%d%d",&X,&Y,&Z);

44.当运行以下程序时,从键盘输入AhaMA(空格)Aha<CR>,则下面程序的运行结果是#include<stdio.h>main(){chars[80],c='a';inti=0;scanf("%s",s);while(s[i]!='\n\){if(s[i]]==c)s[i]-32;elseif(s[i]==c-32)s[i]=s[i]+32;i++;}puts(s);}

A.ahaMaB.AbAMaC.A11AMa[空格]ahaD.ahAMa[空格]ahA

45.有以下程序:main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);}程序运行后的输出结果是()。

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

46.索引属于()。

A.模式B.内模式C.外模式D.概念模式

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

A.PADB.PFDC.N—SD.DFD

48.有以下说明和定义语句structstudent{intage;charnum[8];structstudentstu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};structstudent*p=stu;};以下选项中引用结构体变量成员的表达式错误的是

A.(p++)->numB.p->numC.(*p).numD.stu[3].age

49.下列选项中,不能用作标识符的是A._1234_B._1_2C.int_2_D.2_int_

50.已知p为指针变量,a为数组名,i为整型变量,下列语句中,不正确的是______。

A.p=&i;B.p=a;C.p=&a[i];D.p=10;

51.下列循环体的执行次数是()。#include<stdio.h>main(){inti,j;for(i=0j=1;i<j+1;i+=1,j--)printf("%d\n",j);}

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

52.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表

53.在C语言中,函数返回值的类型最终取决于()。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

54.已知i、j、k为血型变量,若要从键盘输入2、3、4<CR>,使i、j、k的值分别为2、3、4,下列正确的输入语句是()。

A.scanf("%3d,%3d,%3d",&i,&j,&k);

B.scan("%d,%d,%d",&i,&j,&k);

C.scan("%do/od%d",&i,及j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

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

56.下面程序输出的结果是

main()

{inti;

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

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

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

A.159B.753C.357D.591

57.C语言中,文件组成的基本单位为()。

A.记录B.数据行C.数据块D.字符序列

58.若一个名部变量的定义形式为staticintx;,那么,其中static的作用应该是______。

A.将变量存储在静态存储区B.使变量X可以由系统自动初始化C.使x只能在本文件内引用D.使x的值可以永久保留

59.下面概念中,不属于面向对象方法的是()。A.对象B.继承C.类D.过程调用

60.请读程序:#include<stdio.h>f(intb[],intn){inti,r;r=l;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intxa[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}上面程序的输出结果是()

A.720B.120C.24D.6

四、选择题(20题)61.下面程序运行后的输出结果是()。

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

62.有以下程序:

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

A.y=一1B.Y=0C.y=1D.while构成无限循环

63.有以下程序:#include<stdio.h>main(){inta[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;for(i=o;i<5;i++)s=s+a[b[i]];printf(”%d\n”,s);}程序运行后的输出结果是()。A.6B.10C.11D.15

64.有以下程序:

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

A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

65.以下关于retllm语句的叙述中正确的是()。

A.一个自定义函数中必须有一条return语句

B.一个自定义函数中可以根据不同情况设置多条retum语句

C.定义成void类型的函数中可以有带返回值的return语句

D.没有return语句的自定义函数在执行结束时不能返回到调用处

66.

67.Internet使用的网络协议是()。

A.3CP协议B.TCP/IP协议C.UDP协议D.IP协议

68.

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

char*point(char*pt):

main

{charb[4]={a,c,s,f),*pt=b;

pt=point(pt);

printf("%c\n",*pt);

}

point(char*p)

{p+=3;

returnp;

}

A.sB.cC.fD.a

69.面向对象方法中,不属于对象基本特点的是()。

A.标识唯一性B.分类性C.封装性D.一致性

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

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

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

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

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

71.有两个关系R,S如下:

由关系R通过运算得到关系s,则所使用的运算为()。

A.选择B.插入C.投影D.连接

72.以下程序的输出结果是______。#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);}

A.9B.6C.36D.18

73.关系数据库管理系统能实现的专门关系运算包括()。

A.选择、投影、连接B.排序、查找、统计C.关联、更新、排序D.显示、打印、制表

74.有以下程序

structSTU

{

charname[10];

intnum;

intScore;

};

main()

{

structSTUs[5]={{"YangSan",20041,703},

{"LiSiGuo",20042,580},

{"WangYin",20043,680},

{"SunDan",20044,550},

{"Penghua",20045,537}},*p[5],*t;

inti,j;

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

p[i]=&s[i];

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

for(j=i+1;j<5;j++)

if(p[i]->Score>p[j]->Score)

{

t=p[i];

p[i]=p[j];

p[j]=t;

}

printf("%d%d\n",s[1].Score,p[1]->Score);

}

程序运行后的输出结果是

A.550550B.580550

C.680680D.580680

75.软件设计中模块划分应遵循的准则是()。A.低内聚低耦合

B.高内聚低耦合

C.低内聚高耦合

D.高内聚高耦合

76.

有以下程序

#include<stdio.h>

inta=1;

intf(intc)

{staticinta=2:

c=c+1:

return(a++)+C;

}

main

(inti,k=0;

for(i=0;i<2;i++){inta=3;k+=f(a);}

k+=a:

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

}

程序运行结果是()。

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

77.有三个关系R,S和T如下:

其中关系T由关系R和s通过某种操作得到,该操作为()。

A.选择B.交C.投影D.并

78.以下关于简单程序设计的步骤和顺序的说法中正确的是()。

A.确定算法后,整理并写出文档,最后进行编码和上机调试

B.首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档

C.先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档

D.先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构

79.

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

A.有一个以上根结点的数据结构不一定是非线性结构

B.只有一个根结点的数据结构不一定是线性结构

C.循环链表是非线性结构

D.双向链表是非线性结构

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:依次取出字符串中所有的字母字符,形成新的字符串,并取代原字符串。例如,若输入的字符串是:“ab232bd34bkw”,则输出结果是:“abbdbkw”。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写函数proc(),该函数的功能是:实现B=A+A',即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main()函数中输出。

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

请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。

试题程序:

参考答案

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

2.C程序定义一个字符数组b和一个字符变量k。for循环通过循环变量k,遍历数组b中的各个字符,通过if语句判断当前下标为k的字符的ASCII值与字符'm'的ASCII值的大小,ASCII值小于‘m’的ASCII值的字符改成大写字母(b[k]=b[k]-'a'+'A'),然后输出b[k]。在字符串“happychristmas”中,ASCII值小于'm'的字符有h,a,c,h,i,a,所以程序输出:HAppyCHrIstmAs。本题答案为C选项。

3.AA。【解析】C语言源程序不能表示八进制,在C语言中,所有的数值型常量都带有符号,所以整型数量只区别整型和长整型两种形式,整型常量和长整型常量均可用十进制、二进制、十六进制3种形式表示,故A不正确。

4.B解析:一个完整的C语言程序有且仅有一个主函数(main()函数)。程序总从main()函数的第一条语句开始执行,到main()函数的最后一条语句结束,其他函数都是在执行main()函数时,通过函数调用或嵌套调用而得以执行的。C语言规定,main()函数在程序中的位置是任意的,故选项A、选项C和选项D均不正确。所以,B选项为所选。

5.D

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

7.C由题目的语句P=&a[1]可知,P指向a数组中下标为1的元素“4”,又因为P为指针变量,所以P[x]与*(p+x)等价,因而在for循环语句中,第一次循环P[1]指向a数组中下标为2的元素“6”,第二次循环p[2]指向a数组中下标为3的元素“8”,所以y=6+8=14,因而选项C为正确答案。

8.A软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。所以选择A。

9.A解析:本题考查ifelse语句。在intf(a,B)中:第一个if语句,先判断条件,发现a>b条件不成立,则执行与其配对的else语句:第二个if语句,先判断条件,发现a==b条件不成立,则执行与其配对的else语句,c=-1。

10.C

11.Ascanf函数中,在格式字符前加入一个整数可以指定输入数据所占的宽度,所以赋值时会将87赋给变量a,把6.0赋给float型变量b。故本题答案为A选项。

12.A根据题目中的定义可知,“sizeof(p)”计算的是数组p中所有元素所占用的字节数,而不是char型数据所占的字节数。故本题答案为A选项。

13.C

14.A

15.C

16.C解析:本题考查的知识点是运算符的优先级.在复合赋值语句中,应该由右向左依次赋值,在表达式中,右端由i*=k得i=2*2为4,k=k+i,即k值为6,m=k故m=6.所以4个选项中C正确。

17.A运算符“->”适用指针访问成员变量,运算符“.”适用普通变量访问成员变量。ptr是指针,只能用“->”,因此选项A错误。选项B中,rec.title代表数组title,选项B正确,同理选项C正确。“*ptr”是结构体变量rec,可以使用运算,因此选项D正确。故本题答案为A选项。

18.D解析:串的长度指的是串中字符的个数,且其字符个数可以为零。选项D正确。

19.C

20.B

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

22.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));

23.SQRT(x2+y2)/(a+b)

24.x/y=%dx/y=%d解析:本题考查prinff语句的输出格式。printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:printf('<格式化字符串>”,<参最表>)其中,格式化字符串包括两部分内容。一部分足正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以“%”开始,后跟一个或几个规定字符,用来确定输出内容格式。参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用“,”分开,且顺序一一

25.循环循环解析:算法一般由顺序,选择和循环三种基本控制结构组合而成。

26.BCDCDDBCD\r\nCD\r\nD解析:本题考查指向字符串的指针的运算方法。指针变量p首先指向字符串中的第一个字符A,执行p=s+1后,p指向字符串中的第二个字符B,然后输出值'BCD'并换行,依次执行循环语句。

27.无定值无定值解析:for(i=1;i<7;i++)决定了循环次数为6次,每次执行的操作是Sum+=i,但由于sum没有初始化,并不知道sum的初值是多少,所以结果无定值.

28.ACBEGFDACBEGFD解析:①确定根节点。在前序遍历中,首先防问根结点,因此可以确定前序序列DBACFEG中的第一个结点D为二叉树的根结点。

②划分左子树和右子树。在中序遍历中,访问根结点的次序为居中,首先访问访问左子树上的结点,最后访问右子树上的结点,可知,在中序序列ABCDEFG中,以根结点D为分界线,子序列ABC在左子树中,子序列EFG在右子树中。如下图所示。

③确定左子树的结构。对于左子树ABC,位于前序序列最前面的一个结点为了树的根结点,根据前序遍历结果,B为该了树的根结点,中序序列中位于该根结点前面的结点构成左子树上的结点子序列,位于该根结点后面的结点构成右子树上的结点子序列,所以A为该左子树的左结点,C为右结点。现在可确定左子树结构如下:

④确定右子树的结构。同理,可知右子树的结构。

本二叉树恢复的结果如图所示。

根据后序遍历的原则,该二叉树后序遍历的结果为ACBEGFD。

29.1616解析:满二叉树的叶子结点都在最后一层,即第4层,且第4层的结点达到最大数,即25-1=16。

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

31.一对多(或1:N)一对多(或1:N)

32.读栈顶元素读栈顶元素解析:栈的基本运算有3种:入栈、退栈和读取栈顶元素。其中,入栈是指在栈顶插入一个新的元素;退栈是指取出栈顶元素并赋值给一个变量;读栈顶元素是将栈顶元素赋值给一个指定的变量,不删除栈顶元素。

33.5555解析:分析程序执行过程,第一次循环时,i=3,i=5,因为switch(3),所以执行case3,调用P(a[--i])=P(a[4])=P(5),输出5:第二次循环时,j=2,i=4,因为switch(2),所以执行case2,调用P(a[i++]):P(a[4])=P(5),输出5,之后i自加等于5。

34.!feof(fp)!feof(fp)解析:本题中统计文件中字符个数的算法可描述如下:首先判断文件位置指针是否指向了文件尾,如果不是则读出一个字符,同时字符的个数加1,再判断文件位置指针是否位于文件尾,如此循环,直到文件位置指针位于文件尾为止。本题首先以读文件的方式打开了文件“fname.daf”,如果打开成功则把返回的文件型指针赋值给fp,然后通过循环求文件中的字符数。首先判断文件位置指针是否位于文件尾,如果不是则循环读取字符,每次字符数加1。所以下划处应填循环条件,文件位置指针不是指向文件尾,即“!feof(fp)”。

35.a=5b=8x=1。a=5,b=8,x=1。解析:本题考查形参变量值的改变并不能传回给实参。因此主函数中最后输出的a和b仍为原来的初值5和8。

36.数据库管理系统数据库管理系统(DBMS)

37.前件前件

38.*s-*t*s-*t解析:本题考查比较字符串的大小。函数的两个形参是两个字符指针变量,指针变量的值是字符串的首地址,*s和*t表示s和t指向的第一个字符,在while循环中,通过s和t指针的移动,不断改变所指字符,通过返回s和t的第一个不同字符的ASCII码的差值*s-*t得到结果。

39.边界值分析法边界值分析法解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价类划分、边界值分析法和错误推测法3种。

40.5454解析:语句if(!(i%5))printf('\\n');实现每5个数输出一行,因为n的值为24,所以共输出5行,最后一行有4个数。

41.D解析:在数据库系统中,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性。即由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。二是逻辑独立性。即由于数据的局部逻辑结构(它是总体逻辑结构的一个子集,由具体的应用程序所确定,并且根据具体的需要可以作一定的修改)与总体逻辑结构之间也由系统提供映象,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。由此可知,选项A.B与C中的说法都是错误的。

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

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

43.B解析:scanf()函数要求将输入的数据存入变量所在的地址。选项A不是C语言中的输入语句,故选项A不正确;选项C中输入的是变量字符串而不是地址字符串,不满足scanf()函数要求将输入的数据存入变量所在的地址,故选项C不正确;选项D不是C语言中的输入语句,故选项D不正确:所以,4个选项中选项B符合题意。

44.A解析:本题主要考查的知识点是大写字母比它对应的小写字母ASCII码值小32,并且字符可以看作整数进行算术运算等操作。

45.D解析:位与运算符“&”,按二进位进行“与”运算,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0;取反运算符“~”,用来对一个二进制按位取反,即将0变1,1变0。在prinf()函数的表达式中,“&”前面表达式的值为1(3/2=1)表示为二进制为00000001,而按位取反运算符“~”的优先级高于按位与运算符“&”,先计算“&”后面的取反运算符“~”。z的二进制表示为00000001,取反后为11111110,最后进行“&”,即“00000001&11111110”可知结果为00000000,故最后的值为0。

46.B解析:内模式(InternalSchemA)又称物理模式(PhysicalSchemA),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径。数据库系统的数据具有高共享性和低冗余性,但不能完全避免数据冗余;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。

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

48.D解析:结构体变量也有地址,因此可以把它的地址赋值给一个指针变量,然后通过该指针变量来引用结构体的成员,选项A和选项B就是通过指针变量来引用结构体的成员,也可以通过结构体数组元素的成员引用,而在选项D中stu[3].age不正确,因为结构体数组stu共有三个元素,其下标应该为0,1,2。

49.D解析:本题考核的知识点是用户的标识符。在C语言中,合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或者下划线,如:acd,d_ad、_adf124,_124等都是合法的标识符号.而2asdf、_sd/=都不是合法的标识符.在C语言中大写字母和小写字母被认为是两个不同的字符,如:ACD和acd是两个不同的标识符号。选项D中用下划线作为第一个字符,这是不合法的,故选项D不正确,所以,4个选项中选项D符合题意。

50.D解析:不能把一个整数赋给指针变量,只能将变量已分配的地址赋给指针变量。

51.C解析:本题考查for循环。第一次循环前先判断循环条件,此时i=0,j=1,i<j+1成立,循环第一次;第二次循环前先判断循环条件,此时i=1,j=0,(j--是先使用j的值再减1),i<j+1不成立,结束循环。

52.C队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项A和选项B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则,选项C正确,选项D错误。

53.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。

54.B解析:函数scan()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符:“输入项地址表”是要输入的变量的地址。若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符,其中的逗号也必须输入。

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

56.B解析:本题用循环的方法考查对数组概念的掌握。首先,当i=0时,数组中的位置是a[2][0]=7,当然,如果用排除法,就不用考虑后面的循环,因为在4个选项中,第1个数为7的选项只有B)。本题执行第2次循环时,i的值为1,则printf函数中的数组指向为a[1][1]=5,依次循环,可求出答案。

57.D解析:C语言处理文件的方法是将文件以数据流的形式处理,不是将文件作为一个结构集合来处理,所以,C语言中文件的组织方式是无结构的字符序列方式。

58.C解析:事实上,无论有无Static修饰,外部变量都具有A、B和C三种特性。作为—种修饰,static仅是限制此类型外部变量的引用范围C只能在定义它的文件范围内使用。

59.D[答案]D

[考点]软件工程基础

[评析]

面向对象=对象+类+继承+通过消息的通信

对象:一组属性及其上的操作的封装体

类:一组有相同属性和操作的对象的集合

继承:一个类为另一个类上的扩充的方式,子类继承父类,主要目的是代码复用

消息:对象间通信的手段

D是结构化程序设计或过程式(函数式)语言中的,一般的面向对象程序设计语言兼容这种方式,但不是其特征,故最佳选项为D

60.B

61.B结构体成员的引用;s[0].a=1,s[1].b=5,所以结果为6

62.Ay一一表示Y使用后再自减l。所以最后一次Y的值为0,条件不成立但仍要执行自减操作,Y的值为一1,跳出循环。打印Y的值一1。

63.C本题考查数组的使用。本题定义了两个数组,注意数组的下标是从0开始的,进行第1次for循环:当i=0时,b[0]为数组b中第l个元素,结果为0,那么a[0]也是数组a中第l个元素,结果为1,所以S的值为1。第2次循环:i此时自加为l,b[1]为数组的第2个元素,值为2,所以可求出a[2](数组中的第3个元素)的值为3,s=s+3,所以S的值为4。进入第3次for循环,依此类推,第3次for循环结束时s的值为6。第4次for循环,s的值变为l0。第5次for循环时,此时i的值为4,s的值变为ll,i=5不符合题意,所以跳出循环,输出结果,所以本题答案为C。

64.A本题重点考察函数的调用,首先要了解字母对应的

温馨提示

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

评论

0/150

提交评论