2022-2023年安徽省合肥市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页
2022-2023年安徽省合肥市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页
2022-2023年安徽省合肥市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页
2022-2023年安徽省合肥市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页
2022-2023年安徽省合肥市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年安徽省合肥市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.若x,y,z均被定义为整数,则下列表达式能正确表达代数式1/(x*y*z)的是()。A.1/x*y*zB.1.0/(x*y*z)C.1/(x*y*z)D.1/x/y/(float)z

2.有以下定义语句,编译时会出现编译错误的是()。

A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:

3.下面关于线性表的叙述中,错误的是()。

A.线性表采用顺序存储,必须占用一片连续的存储单元

B.线性表采用顺序存储,便于进行插入和删除操作

C.线性表采用链接存储,不必占用一片连续的存储单元

D.线性表采用链接存储,便于插入和删除操作

4.以下选项中不能用做C程序合法常量的是()。

A.1,234B.‘\123’C.123D.“\x7G”

5.下列数据结构中,按先进后出原则组织数据的是

A.线性链表B.栈C.循环链表D.顺序表

6.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;其中0≤i≤9,则对a数组元素不正确的引用是()

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

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

A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值

B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容

C.在C语言中,外部变量的隐含类型是自动存储类别

D.在C语言中,函数形参的存储类型是自动(auto)类型的变量

8.有以下程序:#include<stdio.h>main(){charx,a=‘A’,b=‘B’,c=‘C’,d=‘D’;x=(a<b)?a:b;x=(x>c)?c:x;x=(d>x)?x:d;printf(“%c\n”,x);}程序运行后的输出结果是()。

A.DB.BC.CD.A

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

10.有以下程序#include<stdio.h>main{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是()。A.741B.963C.852D.875421

11.数据的存储结构是指()。

A.数据所占的存储空间

B.数据的逻辑结构在计算机中的存放形式

C.数据在计算机中的顺序存储方式

D.存储在计算机外存中的数据

12.在堆栈中存取数据的原则是。A.先进先出B.后进先出C.先进后出D.随意进出

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

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

14.若变量已正确定义,下列正确的程序段是()。

A.while(ch=getchar()=='\N')putchar(ch);

B.while((ch=getchar())=='\n')putchar(ch);

C.while((ch=getchar())!='\N')putchar(ch);

D.while((ch=getchar())!='\n')putchar(ch);

15.若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入3个整数分别赋给变量a、b、c的语句是______。

A.scanf("%d%d%d",&a,&b,d);

B.scanf("%d%d%d",&a,&b,&d);

C.scanf("%d%d%d",a,b,d);

D.scanf("%d%d%d",a,b,*d);

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

A.文件指针是一种特殊的指针类型变量

B.文件指针的值等于文件当前读写位置,以字节为单位

C.文件指针的值等于文件在计算机硬盘中的存储位置

D.调用fscanf函数只能向文本文件中写入任意字符

17.设计一个判别表达式中左、右括号是否配对出现的算法,采用()数据结构最佳。A.线性表的顺序存储结构B.队列C.线性表的链式存储结构D.栈

18.

19.若有定义“doublea;floatb;shortc;”,若想把1.2赋给变量a,3.4赋给变量b,5678赋给变量c,程序运行时键盘输入:1.23.45678<回车>则以下正确的读入语句是()。A.scanf("%If%If%d",&a,&b,&c);

B.scanf("%If%If%hd",&a,&b,&c);

C.scanf("%If%f%hd",&a,&b,&c);

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

20.结构化程序设计方法的3种基本控制结构中不包括

A.循环结构B.递归结构C.顺序结构D.选择结构

二、2.填空题(20题)21.以下程序运行后的输出结果是______。

main()

{inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

inti=0,j=0,s=0;

while(i++<4)

{if(i==2||i==4)continue;

j=0;

do{s+=a[i][j];j++;}while(j<4);

}

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

}

22.数据结构分为线性结构和非线性结构,线性表、栈和队列都属于【】。

23.阅读程序,填空补充程序。

#define【】30

main()

{【】;

num=10;

total=num*PRICE;

printf("total=%d,num=%d\n",【】);

}

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

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

26.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

fo(i=0;str[i]!=【】;i++)

if(【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

27.本程序用改进冒泡法对数组a[n]的元素从小到大排序,请在程序空白处填空。

voidbubble(inta[],intn)

{intj,k,jmax,temp;

jmax=【】;

do{

k=0;

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

if(a[j]>a[j+1])

{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;

jmax=k;

}while(jmax>0);}

28.程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

29.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。

#defineN4

voidrotade(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=[9];[10]:a[N-1][i];}}

30.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。

#include<stdio.h>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

______;

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

{if(i%4=0)printf("\n");

printf("%3d",b[i]);

}

}

31.以下程序运行后的输出结果是______。

intf(inta[],intn)

{

if(n>=l)

returnf(a,n-1)+a[n-1];

else

return0;

}

main{)

{

intaa[5]={1,2,3,4,5},s;

s=f(aa,5);

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

}

32.数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。

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

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

35.顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。

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

37.以下函数的功能是求x的y次方,请填空。

doublefun(doublex,inty)

{inti;

doublez;

for(i=1,z=x;i<y;i++)z=z*【】;

returnz;

}

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

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

main()

{charb[]="Hello,you";

b[5]=0;

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

}

40.在最坏情况下,冒泡排序的时间复杂度为【】。

三、1.选择题(20题)41.以下选项中不能正确把c1定义成结构体变量的是

A.typedefstruct{intred:intgreen:intblue;}COLOR;COLORc1;

B.structcolorc1{intredintgreen:intblue;};

C.structcolor{intred,intgreen:intblue:)cl;

D.struct{intred;intgreen;intblue}c1;

42.以下程序的输出结果是______。main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}}

D.1111222334

43.用树形结构来表示实体之间联系的模型称为()。

A.关系模型B.层次模型C.网状模型D.数据模型

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

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

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

B.高内聚低耦合

C.低内聚高耦合

D.高内聚高耦合

46.运行下面程序时,从键盘输入字母H,则输出结果是#include<stdio.h>main(){charch;ch=getchar();switch(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n");}}

A.Hello!

B.Hello!GoodMoring!

C.Hello!Goodmorning!Bye_Bye!

D.Hello!Bye_Bye!

47.数据的存储结构是指______。

A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据

48.若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

49.下列程序的输出结果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}

A.-8B.14C.0D.-24

50.下列描述中正确的是()。

A.软件工程只是解决软件项目的管理问题

B.软件工程主要解决软件产品的生产率问题

C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则

D.软件工程只是解决软件开发中的技术问题

51.设有下列二叉树:

对此二叉树先序遍历的结果是

A.ABCDEFB.BDAECFC.ABDCEFD.DBEFCA

52.已知小写字母a的ASCII码为97,大写字母A的ASCII码为65,以下程序的结果是______。main(){unsignedinta=32,b=66;printf("%c\n",a|b);}

A.66B.98C.bD.B

53.下列能正确定义一维数组的选项是()。

A.inta[5]={0,1,2,3,4,5}

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

54.有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序执行后的输出结果是______。

A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

55.在下列方法中,不用查找表中数据元素的关系进行查找的方法是______。

A.有序表查找B.二叉排序树查找C.平衡二叉树D.散列查找

56.有以下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];则b中的值是()。

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

57.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的输出结果是()。

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

58.数据管理技术随着计算机技术的发展而发展。数据库阶段具有许多特点,但下面列出的特点中,______不是数据库阶段的特点。

A.数据结构化B.数据面向应用程序C.数据共享性高D.数据具有较高的独立性

59.下面函数的功能是()。sss(s,t)char*s,*t;{while((*s)&&(*t)&&(*t++==*s++));return(*s-*t):}

A.将字符串s复制到字符串t中B.比较两个字符串的火小C.求字符串的长度D.将字符书s接续到字符串t中

60.下述程序的输出结果是()。#include<stdio.h>intfun(inta){intb=0;staticintc=3;b++,c++;returna+b+c;}voidmain(){intx=2,i;for(i=1;i<3;i++)printf("%d",fun(x));}

A.56B.67C.78D.89

四、选择题(20题)61.已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断e中的字符是否为大写字母的表达式是()。

A.isupper(c)

B.A<=c<=Z

C.A<=cc<=Z

D.c<=(z-32)(a-32)<=c

62.下列叙述中正确的是()。A.A.只能在循环体内和switch语句体内使用break语句B.cotinue语句的作用是结束整个循环的执行

C.在循环体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出时,只能使用got0语句

63.有以下程序:

程序的运行结果是()。

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

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

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

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

64.若要说明一个类型名STP,使得定义语句STPs;等价于Char*s;,以下选项中正确的是()。

A.typedefChar*s;

B.typedefChar*STP;

C.typedefSTP*Char;

D.typedef*CharSTP;

65.已知inta=15,执行语句a=a<<2以后,变量a的值是()。

A)20B)40

C)60D)80

66.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法

A.对象B.数据结构C.数据流D.目标

67.有以下程序

#defineP(a)a+a

voidF(intx)

{return(P(2)*x*x);}

main()

{printf("%d\n",F(1+3));}

程序的运行结果是

A.10B.34

C.64D.编译出错

68.

69.最简单的交换排序方法是()。A.快速排序B.选择排序C.堆排序D.冒泡排序

70.以下程序的输出结果是()。

main()

{inta=1;

charc=’a’;

floatf=2.0;

Printf("%d\n",(!(a==0),f1=0&&c==’A’));

}

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

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

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

72.

73.有以下程序:

#include<stdio.h>

voidexch(intt[])

{t[0]=t[s];}

main()

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

while(i<=4){exch(&x[i]);i++;}

for(i=0;i<5;i++)printf("%dl"x[i]);

printf("\n");

}

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

A.246810

B.13579

C.12345

D.678910

74.有以下程序:

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

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

75.

76.软件详细设计产生的图如图所示。该图是()。A.N—S图B.PAD图C.程序流程图D.E—R图

77.有如下程序段:inta=14,b=15,x;charc=A;x=(a&&b)&&(c<B):执行该程序后,x的值为()。A.trueB.falseC.0D.1

78.在以下选项中,不正确的赋值语句是()。

A.i++;B.nl=(n2=(n3=0..;C.m+n=1;D.i=k==j;

79.若有定义语句:“charsE10]="1234567\0\0";”,则strlen(s)的值是()。A.A.7B.8C.9D.10

80.若有以下定义:floatx;inta,b,c=2;,则正确的switch语句是

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.编写一个函数,输入n个字符串,串与串之间以Enter键分隔,找出最短字符串中第一个字符串,传回该串地址(用一个新串“*”作为结束输入的标志)。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.B

2.DD选项中将字符串常量…aa赋给字符变量a是错误的。

3.B

4.AA选项中逗号是一个操作符。

5.B解析:栈是限定在二端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照“先进后出”或“后进先出”的原则组织数据的。注意:队列组织数据的原则是“先进先出”或“后进后出”。注意:数据结构中,栈和队列组织数据的原则。

6.D解析:通常,引用一个数组元素可以用下标法,如a[P-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。

7.C解析:外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。

8.D题干中,字符变量a、b、c、d都是大写字母字符。C语言中,大写字母的ASCII值是按照字母顺序连续递增的,所以a小于b,b小于c,c小于d。则表达式“x=(a<b)?a:b”等价于“x=a”;“x=(x>c)?c:x”等价于“x=(a>c)?c:a”,等价于“x=a”;“x=(d>x)?x:d”等价于“x=(d>a)?a:d”,等价于“x=a”;所以程序输出x的值为A。故本题答案为D选项。

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

10.C在for循环中,当y的值为9、6或3时,执行输出语句,输出表达式--Y的值。Y先自减l,然后再输出y的值。

11.B解析:数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式,数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。

12.C

13.A解析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。

14.D解析:本题考查两个知识点:①C语言用'\\n'这个字符常量表示换行;②函数getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。

15.A解析:选项B中d已经为地址,不应在加上求地址符号“&”,故选项B不正确;选项C中,a和b都为变量不是地址,应该在a和b之前加上求地址符号“&”,故选项C不正确:选项D中指针d所指向的存储空间的位置为变量c的值,不为地址,故选项D不正确,所以,4个选项中A为所选。

16.A文件指针实际上是指向一个结构体类型的指针。这个结构体中包含缓冲区的地址、在缓冲区中当前存取字符的位置、对文件是“读”还是“写”、是否出错、是否已经遇到文件结束标识等信息。选项A正确,选项B、C错误;fscanf函数只能从文本文件中输入数据到内存,选项D错误。故本题答案为A选项。

17.D

18.D

19.Cscanf函数用于输入数据。第1个参数表示输入格式控制。本题变量a是double类型,使用格式控制符%If;变量b是float类型,使用%If;变量c是short类型,使用%hd,选项C正确。本题答案为C选项。

20.B解析:本题考查了程序的基本结构。程序由一些基本结构组成。任何一个大型的程序都由3种基本结构组成,由这些基本结构顺序的构成了一个结构化的程序。这3种基本结构为:顺序结构、选择结构和循环结构。

21.92

22.线性结构线性结构解析:本题考查了数据结构的基本概念。与栈类似,队列也是线性表,可以采用链式存储结构,所以带链的队列属于线性结构。

23.PRICEintnumtotaltotalnumPRICE\r\nintnum,total\r\ntotal,num解析:程序中出现了变量num,total以及宏PRICE,因此应在相应位置说明它们。

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

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

26.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:观察题目要求,可以知道以下几点:

①for循环的结束条件应当是:str[i]已是字符串的最后—个字符;

②str[i]代表字符串str中的第i+1个字符;

③整型变量num的值是要记录的单词的个数。

C语言中规定字符串的最后一个字符是一个隐含的字符串结束符“\\0”,所以在题中第—个空中应填写“\\0”;题中第二个空应填写“str[i]”,以判断当前位置的字符是否为空格;题中第三个空中应当填写“num++”,通过变量num的加1累加得到字符串中的单词个数。

27.n-1jn-1\r\nj解析:此题采用了do…while循环内嵌for循环的双层循环结构来实现了数组元素的排序。数组元素通过首地址和数组下标的方式来引用的。

28.静态分析静态分析解析:程序测试分为静态分析和动态测试。其中,静态分析是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

29.b[i][N-1];s[0][i]实现把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b[i][0]=a[N-1][i]门实现将a所指N行N列的二维数组中的最后一行放到b所指二维数组中的第0列。\r\n\r\n

30.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:将数组a中元素a[i]与a[j+1]值相加后的值赋予数组b中元素b[i],即可实现将一个数组的前项和后项之和存入另一数组。

31.1515解析:在函数f()中只有一条if语句,如果n不小于1,则返回f(a,n-1)+a[n-1);,否则返回0。所以f(aa,5)返回f(aa,4)+aa[4],而f(aa,4)返回f(aa,3)+aa[3]……直到f(aa,0)返回0.故f(aa,5)实际返回值是0+aa[1]+aa[2]+aa[3]+aa[4]+aa[5],所以本题最终输出15。

32.数据存储数据存储

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

34.白盒白盒解析:软件测试的方法分为白盒测试方法和黑盒测试方法。

35.相邻相邻

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

37.xx解析:函数的定义形式为;

函数类型函数名(形参表)

{

类型说明语句;

执行语句;

}

本题中函数的功能是:累积变量以求得变量的Y次方。

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

39.HelloHello解析:字符串中,数值0或符号'/0'表示字符串的结束。本题中,b[5]被赋了0值,表明字符串b的第六个字符就是结束标志。因此,只输出前五个字符,即Hello。

40.

解析:冒泡排序法是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏的情况下,冒泡排序需要经过遍的从前往后的扫描和遍的从后往前的扫描,需要的比较次数为。

41.B解析:本题考核的知识点是结构体类型定义。结构体类型的定义格式为:

strcut结构体名

{成虽说明列表};

结构体变量的定义有3种形式:第一种,定义结构体型的同时定义结构体变量,如:strcut结构体名{成员说明列表}变量;选项C属于这种情况,故选项C正确:第二种,先定义一个结构体类型,然后使用该类型来定义结构体变量,如:strcutstudent{成员说明列表}:student变量;选项A属于这种情况,故选项A正确;第三种,定义一个无名称的结构体类型的同时定义结构体变量,如:strcutstudent{成员说明列表}变量;选项D属于这种情况,故选项D正确.所以,4个选项中选项B符合题意。

42.2解析:while的执行过程是:先计算条件表达式的值,若成立则执行循环体,重复上述过程,直到条件表达式的值为“假”(值为零)时,退出循环,并转下一语句去执行。本题在输出num的值为3之后,再判断while的循环条件3<=2,不成立,所以不再输出num的值,故本题的答案选B。

43.B解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有3种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。所以,本题的正确答案是B。

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

45.B解析:耦合性和内聚性足模块独立性的两个定性标准。内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量,作为软件结构设计的设计原则,要求每个模块的内部都具有很强的内聚性;耦合性是指模块间相互连接的紧密程度的度量,一个模块与其他模块的耦合性越强则该模块的独立性越弱。一般优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

46.C解析:本题主要对switch语句进行了考查。switch语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时则执行default后面的语句。本题中ch为字符'H',所以case'H'条件中的语句将被执行,由于没有break语句,所以case'C'后的语句也被执行,由于同样的缺少break语句,所以default后的语句也被执行了。

47.B解析:数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般不可能相同。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。

48.B解析:本题主要考查结构指针:p=&st,访问结构体的成员,可以通过结构变量访问,即st.i,也可以用等价的指针形式,即(*p).i和p->i。

49.D解析:表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式(a-=a*a)=(a=a-a*a=-12);②第二个表达式(a+=a-=a*a)=(a=a+a=-24)。

50.C\r\n软件工程是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。软件工程的主要思想是强调在软件开发工程中需要应用工程化的原则。软件工程用来解决以下问题:软件需求的增长得不到满足、软件开发成本和进度无法控制、软件质量难以保证、软件不可维护或维护程度低、软件得成本不断提高、软件开发生产率的提高赶不上硬件的发展和应用需求的增长。软件项目的管理、软件产品的生产率、软件开发中的技术都是软件工程需要解决的部分问题。因此选项C正确。

51.C解析:二叉树的遍历分为先序、中序、后序三种不同方式。本题要求先序遍历,遍历顺序应该为:访问根结点->先序遍历左子树->先序遍历右子树。按照定义,先序遍历序列是ABDCEF。

52.C解析:位运算符“|”的作用是按位或,即两个二进制数的相应位中只要有一个为1,该位的结果值为1。最后以字符型输出,98对应的字符“b”。

53.B解析:在定义数组时,如果赋给的初始值个数大于数值的长度,这样就会越界,因此选项A)错误;选项C)中定义的是一个字符变量C;选项D)中整型数组,中只能存储整型数据,而不能存储字符串常量“0123”。

54.B解析:第一次执行while语句时,z=3>0,然后执行z--得z=2,执行++x得x=1<5,条件成立,执行y=y-1=5

-1=4;第二次执行while语句时,z=2>0,然后执行z--得z=1,执行++x得x=2<5,条件成立,执行y=y-1=4-1=3;第三次执行while语句时,z=1>0,然后执行z--得x=0,执行++x得x=3<5,条件成立,执行y=y-1=3-1=2;第四次执行while语句时因z=0,z<0条件不成立,同时执行c--得z=-1。即执行完while循环后x=3、y=2、z=-1。

55.D解析:线性表查找和树型查找都是利用了数据元素之间的关系进行查找,只有散列查找是利用关键词值与存储位置来进行查找。

56.D解析:p为指向整型数据的指针变量,存放的是a[3]的地址,即p指向数组{4,5,6,7,8,9,10},b=p[5],因此,b中的值是9。

57.A解析:本题考查了continue和break语句用在循环语句中的作用。break语句的作用是结束本层循环,而continue语句的作用是结束本次循环直接进入到下次循环。

58.B解析:数据的结构化是数据库阶段的重要特征之一。在数据库阶段,数据不再面向应用,而是面向整个系统,数据的共享性高、冗余小、易于扩展。由于数据库三级模式间的两级映像,所以数据具有较高的独立性。

59.B

60.C解析:本题主函数中的for循环会循环两次,即输出连续两次调用fun(2)的返回值。在fun()函数中定义了一个静态变量c,第一次调用fun()时c被初始化为3,然后自增为4,最后输出a+b+c为2+1+4=7。由于静态变量的生存周期为整个程序执行周期,所以第二次调用fun()时c的值为4,然后自增为5,故最后输出a+b+c为2+1+5=8。所以程序的输出结果是78,应该选择C。

61.B解析:在本题中,选项B,实际是先计算关系表达式“‘A<=c’”的值是0还是1,再比较该值与字符‘Z’之间的大小关系,显然不能实现题目所要求的功能,而选项A,C,D都可以。

62.A本题考查循环跳出的知识点:①break语句可以出现在switch循环体内及语句体内,它的作用是跳出循环体,不能用于其他的语句;②continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而接着判定循环条件是否成立,确定下一次循环是否继续执行,执行contiune语句不会使整介循环终止;③循环体内使用break语句会使循环提前终止;④从多层循环嵌套中退出时,可以使用90t0语句或者break语句。

63.A在c语言中函数参数的传递是”传值”的,即形参和实参是两个没有关系的变量,函数fun虽然看似交换了参数值,但是只交换了形参的值,其结果不会传递给实参,因此数组c没有变化。主函数中给数组c元素赋值l,2,…,9,0。第一个for循环语句中调用fun函数,该函数功能是交换变量的数值,注意循环变量i的增量。第二个for循环语句将数组c中元素的值进行输出。

64.B用关键字typedef声明一种新的类型的形式为typedef类型名标识符。本题中的类型为char*。

65.C对a进行右移两位的操作,原来为1111,右移两位后变成111100等于60.

66.CC。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

67.DC语言中,函数返回一个值通常使用return语句返回函数的值,如果函数中没有return语句,则函数会返回一个没有用的值。为了明确表示函数不返回值,可以用void定义函数为无返回类型,这样系统就能够保证不使函数带回任何值,即禁止在调用函数中使用被调用函数的返回值。题目中函数F定义为void型,函数中有return语句,编译时系统会给出警告。但是在main函数中要输

温馨提示

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

评论

0/150

提交评论