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

下载本文档

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

文档简介

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

一、单选题(20题)1.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}该程序的输出结果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

2.

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

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

4.有以下程序:#include<stdio.h>intfun(){staticintx=1;x*=2;returnx;}main(){inti,s=1;for(i=1;i<=3;i++)s*=fun();printf(“%d\n”,s);}程序的运行结果是()。

A.10B.30C.0D.64

5.在带头结点的单链表head为空的判定条件是()。

A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL

6.当输入为"hello?"时,下面程序的执行结果是()。#include<stdio.h>main{charc;c=getchar;while(c!=?){putehar(e);break;}}A.RvfsuB.hC.?D.hello

7.若有定义“charc=“hello!”;”,则以下说法正确的是()。

A.c占用7字节内存B.c是一个字符串变量C.定义中有语法错误D.c的有效字符个数是6

8.设有以下函数:

voidfun(intn,char*$s){……}

则下面对函数指针的定义和赋值均正确的是A.void(*pf)();pf=fun;

B.void*Pf();pf=fun;

C.void*pf();*pf=fun;

D.void(*pf)(int,char);nf=&fun;

9.下列对于线性链表的描述中正确的是()。

A.存储空间不一定连续,且各元素的存储顺序是任意的

B.存储空间不一定连续,且前件元素一定存储在后件元素的前面

C.存储空间必须连续,且前件元素一定存储在后件元素的前面

D.存储空间必须连续,且各元素的存储顺序是任意的

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

A.'a'&&'b

B.a<=b

C.ab+c&&b-c

D.!((a<b)&&!c1)

11.

12.函数原形中,下列()是不必要的。

A.函数的类型B.形式参数名C.函数名D.形式参数类型

13.快速排序在已经有序的情况下效率最差,复杂度为()

A.O(nlogn)B.O(n^2logn)C.O(n^1.5)D.O(n^2)

14.有下列程序:程序执行后的输出结果是()。A.1,0B.1,1C.1,4D.4,4

15.C程序的基本模块为()。

A.表达式B.标识符C.语句D.函数

16.有以下程序:

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

A.1,3

B.2,3

C.1,4

D.1,2

17.表达式9!=10的值为()。

A.非零值B.trueC.0D.1

18.则以下函数调用语句错误的是()。#include<stdio.h>intadd(inta,intb){return(a+b)}main(){intk,(*f)(),a=5,b=10;f=add;...}A.k=f(a,b);B.k=add(a,b);C.k=(*f(a,b);D.k=*f(a,b);

19.有以下程序:#includc<stdio.h>voidfun(int*p){printf("%d\n",p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序运行后的输出结果是()。A.5B.6C.8D.9

20.下列程序段的时间复杂度为()。A.O(n)B.O(n-1)C.O(n2)D.O(log2n)

二、2.填空题(20题)21.以下程序段的运行结果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}

22.【】是从二维表列的方向进行的运算。

23.若有以下定义和语句:

intw[10]={23,54,10,33,47,98,72,80,61},*p;

p=w;

则通过指针p引用值为98的数组元素的表达式是【】。

24.函数pi的功能是根据以下近似公式求π值:

请在下面的函数中填空,完成求π的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0;

longi;

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

return(sqrt(6*s));

}

25.设有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

执行上面的程序段后,*(ptr+5)的值为______。

26.数据的基本单位是______。

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

#include<stdio.h>

msin()

{inti,n[]={0,0,0,0,0};

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

{n[i]=n[i-1]*2+1;

printf("%d",n[i]);

}

}

28.以下程序用于判断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不能构成三角形*/

}

29.以下程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时用字符作为输入结束标志。请填空。#include<stdio.h>long();/*函数说明语句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}

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

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i);

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

}

31.数据库系统的三级模式分别为【】模式、内部级模式与外部级模拭。

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

#include<string.h>

cbar*ss(char*s)

{char*p,t;

p=s+1;t=*s;

while(-p){*(p-1)=*p;p++;}

*(p-1)=t;

returns;

}

main()

{char*p,str[10]="abcdefgh";

p=ss(str);

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

}

33.已有文本文件test.txt,其中的内容为:Hello,everyone!。以下程序中,文件test.txt已正确为“读”而打开,由此文件指针fr指向文件,则程序的输出结果是______。

#include<stdio.h>main(){FILE*fr;charstr[40];

fgets(str,5,fr);

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

fclose(fr);}

34.表示“整数x的绝对值大于5”时值为“假”的C语言表达式是______。

35.若有下列定义和语句:

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

则输出结果为______。

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

37.某二叉树中度为2的节点有18个,则该二叉树中有()个叶子节点。

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

39.在一个容量为25的循环队列中,若头指针front=16,尾指针rear=9,则该循环队列中共有【】个元素。

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

main()

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

for(p=s;p<s+2;p++)printf("%s\n",p);

}

三、1.选择题(20题)41.设栈S初始状态为空。元素a、b、c、d、e、f依次通过栈S,若出栈的顺序为c、f、e、d、b、a,则栈S的容量至少应该为()。

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

42.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是

A.abs(x-y)<10

B.x-y>-10&&x-y<10

C.!(x-y)<-10‖!(y-x)>10

D.(x-y)*(x-y)<100

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

A.在面向对象的程序设计中,各个对象之间具有密切的联系

B.在面向对象的程序设计中,各个对象都是公用的

C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小

D.上述三种说法都不对

44.线性表若采用链式存储结构时,要求内存中可用存储单元的地址()

A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以

45.下列程序段的输出结果是______。staticinta[3]={1,2,3};int**ptr,*p;p=a;ptr=&p;(ptr[0]++)[1]+=3;printf("%d,%d,%d\n",**ptr,*p,a[0]);

A.5,5,10B.1,5,5C.5,5,1D.输出结果不确定

46.第

13

设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次

47.若有以下定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为3的表达式是()

A.p+=2,*(pd++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p

48.在软件设计中,不属于过程设计工具的是()。

A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图

49.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()。

A.模拟现实世界中不同事物之间的联系

B.强调模拟现实世界中的算法而不强调概念

C.使用现实世界的概念抽象地思考问题从而自然地解决问题

D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考

50.有以下函数:charfun(char*p){returnP;}该函数的返回值是()。

A.无确切的值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值

51.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

52.算法的空间复杂度是指()。

A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行算法需要的内存空间

53.若主函数中有以下定义和语句:main(){doublea[3][4];……fun(a);}则正确的fun函数的首部是()

A.voidfun(double*s)

B.fun(double*s[4])

C.fun(double(*s)[3])

D.voidfun(double(*s)[4])

54.简单的交换排序方法是()。

A.快速排序B.选择排序C.堆排序D.冒泡排序

55.下面关于数据库三级模式结构的叙述中,正确的是()

A.内模式可以有多个,外模式和模式只有一个

B.外模式可以有多个,内模式和模式只有一个

C.内模式只有一个,模式和外模式可以有多个

D.模式只有一个,外模式和内模式可以有多个

56.有以下程序#include<stdio.h>voidmain(){inta=1,b=0;printf("%d,",b=(a++)+(a++));pfintf("%d\n",a+B);}程序运行后的输出结果是()。

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

57.下列选项中不符合良好程序设计风格的是A.源程序要文档化B.数据说明的次序要规范化C.避免滥用goto语句D.模块设计要保证高耦合、高内聚

58.结构化程序设计主要强调的是

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性

59.若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的—个出栈序列是______。

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

60.下列司用于C语言用户标识符的一组是______。

A.voiddefineWORD

B.a3_b3_123Car

C.For_abcIFCase

D.2aDOsizeof

四、选择题(20题)61.

62.下列定义变量的语句中错误的是()。

A.intjnt;B.doubleint_;C.charFor;D.floatUS$;

63.

64.

65.

66.下列数据结构中,属于非线性结构的是()。

A.带链队列B.循环队列C.带链栈D.二叉树

67.

68.下列关于二叉树的叙述中,正确的是()。

A.叶子结点总是比度为2的结点少一个

B.叶子结点总是比度为2的结点多一个

C.叶子结点数是度为2的结点数的两倍

D.度为2的结点数是度为1的结点数的两倍

69.对下列二叉树

进行中序遍历的结果是()。

A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG

70.已知i、j、k为int型变量,若要从键盘输入2、3、4<CR>,使i、j、k的值分别为2、3、4,下列正确的输入语句是()。A.A.scanf("%3d,‰3d,%3d",&i,&j,%k);

B.scanf("%d,%d,%d",&i,8Lj,&k);

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

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

71.为了避免在嵌套的条件语句ifelse中产生二义性,C语言规定,else子句总是与()配对。

A.缩排位置相同ifB.其前面最近的ifC.其后面最近的ifD.同一行上的if

72.

73.

74.有以下程序

75.

76.有以下程序:

若运行时输入:123<回车>,则输出结果是()。

A.编译错误2000B.102000C.122030D.10

77.有以下程序

#defineN15

fun(inta[],intn,intm)

{inti,j;

for(i=m;i>=n;i--)

a[i+1]=a[i];

}

main()

{inti,a[N]={1,2,3,4,5,6,7,8,9,10};

fun(a,3,7);

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

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

}

程序的运行结果是A.A.45678

B.44567

C.45567

D.45677

78.在数据库管理系统的层次结构中,处于最上层的是()。

A.应用层B.语言翻译处理层C.数据存取层D.数据存储层

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

A.排序、索引、统计

B.选择、投影、连接

C.关联、更新、排序

D.显示、打印、制表

80.已知字符'A'的ASCⅡ代码值是65,字符变量c1的直是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。

A.A.A,BB.A,68C.65,66D.65,68

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

六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc,其功能是:按分数的高低排列学生的记录,高分在前。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#defineMl6typedefstruct{charnum[l0];intS;}STREC:voidproc(STRECa[]){inti,j;STRECt;for(i=1;i<M;i++)/*用冒泡法来按从高到低排序*/for(j=0;j<M-1;j++)。if(a[j].s<a[j+1].s)//*按分数的高低排列学生的记录,高分在前*/{t=a[j];a[j]=a[j+1];a[j+1]=t;)}voidmain{STRECstu[M]={{"GA005",85),{"GA003",76},{"GA002",69},{"GA004",85),{"GA001",91),{"GA007",72),{"GA008",64),{"GA006",87),{"GA015",85),{"GA013",91),{"GA012",64),{¨GA014",91),{"GA011",66),{"GA017",64},{"GA018",64),{"GA016",72}};inti;proc(stu);printf("Thedataaftersorted:\n");for(i=0;i<M;i++){if(i%4==0)//每行输出4个学生记录printf("n");printf("%s%4d",stu[i],num,stu[i].s);}printf("\n");}

参考答案

1.D解析:本题考查指向字符串指针的运算方法。执行p=s+1后,指针变量p就指向字符串中的第二个字符“B”,然后输出字符串“BCD”并换行;下面继续执行循环语句,指针变量p指向下一个字符“C”,输出字符串“CD”,最后一次循环,p指向字符“D”,输出字符串“D”。

2.D

3.D

4.D本题中静态局部变量X,在静态存储区内分配存储单元,在程序整个运行期间都不释放。在main函数中,执行for循环,第1次循环,变量s的值为2;第2次循环,函数的返回值为4,所以变量s的值为8;第3次循环,函数的返回值为8,所以s的值为64。故本题答案为D选项。

5.B

6.A本题考查getchar函数与putchar函数,通过9etchar函数读入字符,并通过putchar函数将字符逐个输出,当用户输入“?”时停止输出,且c是一个字符变量只占一个字节。

7.Cc是字符变量,“hello!”是字符串。字符串不能赋给字符变量,定义中有语法错误。本题答案为C选项。

8.A解析:函数指针的定义形式是:数据类型标识符(*指针变量名)()。void(*pf)()定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。所以给pf赋值时,只把函数名fun赋给pf即可。所以正确答案为选项A)。

9.A解析:在链式存储结构中,存储数据的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系,是由指针域来确定的。由此可见,选项A的描述正确。因此,本题的正确答案为A。

10.D

11.D

12.A

13.D

14.A&&是逻辑与运算符,x、y的取值为4、2,两个都是非零值,所以x&&y的结果为真,值为1;&是位运算符,x的二进制为0100,y的二进制为0010,0100&0010的结果为0。本题答案为A选项。

15.D

16.Af函数功能使第二个指针指向的元素增1,第一个指针指向的元素不变,所以答案选择A)。

17.D

18.DD选项中*f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,所以不能将其赋值给整形变量k。

19.B由题可知,fun(&a[3])是将&a[3]作为参数,而fun(int*p)后执行的语句为p[5],由数组a可知输出的为6。

20.B

21.x=2

22.投影投影解析:在关系模型的数据语言中,一般除了运用常规的集合运算,(并、交,差、笛卡尔积等)外,还定义了一些专门的关系运算,如投影、选择、连接等。投影是从二维表的列方向上进行的运算。

23.*(p+5)

24.(double)1/(i*i)或10/(i*i)(double)1/(i*i)或1,0/(i*i)解析:本题考查数据类型的转换。由题意s=1+1/(2*2)/1/(3*3)+…+1/(n*n),它的循环体为s=s+1/(i*i),由于s为double型数据,所以要将1/(i*i)的值转换为double类型。

25.'\0''\\0'解析:本题涉及字符数组和指针的两个知识点:①在C语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符'\\0'所以题中数组str有6个元素。②ptr指向数组str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

26.数据元素。数据元素。

27.1371513715解析:程序中n是一个有5个元素,且元素值全为0的数组。在for循环中,当i=1时,n[1]=n[0]*2+1,此时n[1]=1;i=2时,n[2]=n[1]*2+1,此时n[2]=3;i=3时,n[3]=n[2]*2+1,此时n[3]=7;i=4时,n[4]=n[3]*2+1,此时n[4]=15,循环结束。输出函数中%d后有空格,因此输出结果为13715。

28.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或其他等价形式。

29.tunc()m++tunc()m++解析:第一空白处,在C语言中如果子函数在主函数之后定义,就要对其进行说明,说明的形式为:“函数类型名函数名”。所以此处填写func()。第二空白处,整型变量m表示输入字符的个数,所以每输入一个字符,变量m的值就加1。所以此处填写m++。

30.55解析:此程序中,for循环语句后面直接跟了一个“;”,表明循环体为空.输出语句不在for循环体内,所以在循环执行完毕后才输出s的值.s、i的初值分别为0和1,判断循环条件,表达式“1<3”成立,执行“i++,s+=i”后,i和s的值分别为2和1,继续判断循环条件,表达式“2<3”成立,执行“i++,s+=i”后,i和s的值分别为3,再次判断循环条件,表达式“3<3”不成立,循环结束。

31.概念或概念级概念或概念级解析:数据库系统在其内部具有三级模式及二级映射,三级模式分别是概念级模式、内部级模式和外部级模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户(应用)公共数据视图。

内模式式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如磁盘及磁盘操作)。

外模式也称子模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出。

32.bcdefghabcdefgha解析:while循环的功能把字符从第二个元素开始左移一位,并将原第一个元素赋给最后一个元素。

33.HellHell解析:该函数有3个参数,第三个参数是文件指针指向要读取数据的文件,第二个参数是一个整数(假设为n),表示从文件中读n-1个字符并在其后加一个'\\0',第一个参数为存放读取的字符串的内存区的起始地址,读取得数据保存在其中。可见本题的输出结果为:Hell。

34.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本题考查基本逻辑表达,“整数x的绝对值大于5”时值为“假”,即整数x的绝对值小于等于5,也就是整数x要大于等于-5且要小于等于5。这里“且”用“与(&&)”表示,所以C语言表达式为:(x>-5)&&(x<5)。

35.44解析:strcpy(s1,s2)函数的作用是将字符串s2中的内容拷贝到字符串s1中的内容覆盖。strlen()函数是求字符串的长度。本题实际上是要求s2字符串的长度,即是4。

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

37.19

38.数据库系统数据库系统解析:数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。(1)人工管理阶段。这一阶段的计算机主要用于科技计算。外存只有磁带、卡片和纸带等,软件只有汇编语言,尚无数据管理方面的软件。数据处理方式是批处理。(2)文件系统阶段。文件系统是数据库系统发展的初级阶段,它提供了简单的数据共享与数据管理能力,但是它无法提供完整的、统一的管理和数据共享的能力。由于它的功能简单,因此它附属于操作系统而不能成为独立的软件,目前一般将其看成仅是数据库系统的雏形,而不是真正的数据库系统。(3)数据库系统阶段。数据库阶段用数据模型表示复杂的数据模型,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户可使用查询语言或终端命令操作数据库,也可以用程序方式(用COBOL、C一类高级语言和数据库语言编制的程序)操作数据库。数据库管理系统提供了数据控制功能。

39.1818解析:设循环队列的容量为n。若rear>front,则循环队列中的元素个数为rear-front;若rear<front,则循环队列中的元素个数为n+(rear-front)。题中,front=16,rear=9,即rear<front,所以,循环队列中的元素个数为m+(rear-front)=25+(9-16)=18。

40.98768769876\r\n876解析:指针是一种数据类型,这种数据类型的变量用来存放内存中分配的存储单元的首地址。指针的定义:

类型说明符*指针变量名;

41.B解析:根据题中给定的条件,可做如下模拟操作:

①元素a、b、c进栈,栈中有3个元素,分别为a、b、c;

②元素c出栈后,元素d、e、f进栈,栈中有5个元素,分别为a、b、d、e、f;

③元素f、e、d、a、b出栈,栈为空。可以看出,进栈的顺序为a、b、c、d、e、f,出栈的顺序为c、f、e、d、b、a,满足题中所提出的要求。

在每一次进栈操作后,栈中最多有3个元素,因此,为了顺利完成这些操作,栈的容量应至少为5。本题答案为B。

42.C解析:选项A用了一个绝对值函数abs();选项B中用了一个“&&”逻辑与;选项C中,“||”左边的式子如为真,将不再判断其后的表达式的值;选项D为本题中数学关系式的一个等价命题。

43.C解析:在面向对象的程序设计中,对象是面向对象的软件的基本模块,它是由数据及可以对这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作。从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性强。由于完成对象功能所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自然就比较少,所以,对象之间的耦合通常比较松。所以,选项A与B错误,选项C正确。

44.D解析:在链式存储结构中,存储数据结构的存储空间可以不连续,各数据接点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。

45.C解析:ptr指向指针变量p,p指向数组a的首地址,(ptr[0]++)[1]+=3;的意思是将p指向数组元素a[1],并将它的值增3变为5,此时,ptr指向p,p指向a[1]。

46.C本题中,首先将0赋给k,表达式变为0,跳出循环,没有执行循环体语句。解答本题的关键是掌握while语句。

47.A

48.D解析:PDL一种设计性语言,用于书写软件设计规约。它是软件设计中广泛使用的语言之一。N-S图是无线的流程图,是算法描述工具;PAD图是问题分析图,它用二维树状结构的图表示程序的控制流,将这种图转换为程序代码比较容易。此3类均是过程设计工具,数据流图(DataFunctionDiagram):又名数据功能图表,简称DFD,是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

49.C解析:面向对象的设计方法与传统的面向过程的方法有本质不同。它的基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题。它强调模拟现实世界中的概念而不强调算法,它鼓励开发者在软件开发的绝大部分中都用应用领域的概念去思考。

50.B

51.D各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序0(n1.5)、简单选择排序n(n-1)/2、堆排序O(nlog2n)

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

53.D

54.D解析:所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。

55.BB)【解析】数据库的三级模式结构是指数据库系统

\n的外模式、模式和内模式。一个数据库可以有多个外模式,但只有一个模式和一个内模式。

56.B

57.D解析:编程风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维护性。更直接地说,风格就是意味着要按照规则进行编程。这些规则包括:(1)程序文档化。就是程序文档包含恰当的标识符、适当的注解和程序的视觉组织等。(2)数据说明。出于阅读理解和维护的需要,最好使模块前的说明语句次序规范化。此外,为方便查找,在每个说明语句的说明符后,数据名应按照字典顺序排列。(3)功能模块化。即把源程序代码按照功能划分为低耦合、高内聚的模块。(4)注意goto语句的使用。合理使用goto语句可以提高代码的运行效率,但goto语句的使用会破坏程序的结构特性。因此,除非确实需要,否则最好不使用goto语句。因此,本题的正确答案是D。

58.D结构化程序设计由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主张“清晰第一,效率第二”,以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,为设计一些较大的软件打下了良好的基础。

由于模块相互独立,因此,在设计其中一个模块时,不会受到其他模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为可以充分利用现有的模块作为积木式的扩展。

结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。自顶向下、逐步求精的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;“单入口单出口”的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。据此就很容易编写出结构良好、易于调试的程序。

59.C解析:栈是—种后进先出表,选项C中,先出栈的是3,说明此时栈内必然有1,2,由于1先于2进栈,所以1不可能在2之前出栈,故选项C这种出栈序列是不可能的。

60.B解析:C语言规

温馨提示

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

评论

0/150

提交评论