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

付费下载

下载本文档

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

文档简介

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

一、单选题(20题)1.以下选项中,合法的一组C语言数值常量是()。

A.12.0Xa234.5e0

B.028.5e-3-0xf

C..1774e1.50abc

D.0x8A10,0003.e5

2.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为()。

A.求子串B.联接C.匹配D.求串长

3.以下选项中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

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

A.在switch语句中,不一定使用break语句

B.break语句只能用于switch语句

C.break语句必须与switch语句中的case配对使用

D.在switch语句中必须使用default

5.

6.已知一个大小为n的整型数组,现求该数组的全部连续子数组的元素之和的最大值,最优算法的时间复杂度是()如:a[4]={2,-1,3,-4},它的全部连续子数组为{2,-1,3,-4,[2,-1],[-1,3],[3,-4],[2,-1,3],[-1,3,-4],[2,-1,3,-4]},它们的元素之和为{2,-1,3,-4,1,2,-1,4,-2,0},其中的最大值为4。

A.O(logN)B.O(N)C.O(N*logN)D.O(N^2)

7.设abcdef以所给的次序进栈,若在进栈操作时,允许退栈操作,则下面得不到的序列为()。

A.fedcbaB.bcafedC.dcefbaD.cabdef

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

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";

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

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

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

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

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

10.结构化程序的3种基本控制结构是()。

A.递归、堆栈和队列B.过程、子程序和函数C.顺序、选择和重复D.调用、返回和转移

11.下列4项说法中,不正确的是______。

A.数据库减少了数据冗余B.数据库中的数据可以共享C.数据库避免了一切数据的重复D.数据库具有较高的数据独立性

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

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

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

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

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

13.若有定义int?x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是()。A.(x-y<0|x-y>0)B.(x-y<0)C.(x-y>0).D.(x-y==0)

14.下列选项中合法的赋值语句是()。

A.a=b=34B.a=34,b=34C.i-1;D.m=(int)(x+y);

15.以下程序的输出结果是

longfun(intn)

{longs;

if(n==1||n==2)s=2;

elses=n-fun(n-1);

returns;}

main()

{printf("%ld\n",fun(3));}

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

16.二维数组A的每个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。若A按行先存储,元素A[8][5]的起始地址与当A按列先存储时的元素()的起始地址相同。设每个字符占一个字节。

A.A[8][5]B.A[3][10]C.A[5][8]D.A[0][9]

17.是哈希查找的冲突处理方法()。

A.求余法B.平均取中法C.二分法D.开放地址法

18.

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

A.21B.11C.20D.10

20.若有定义:typedefint*INTEGER;INTEGERp,*q;则以下叙述正确的是()。

A.q是基类型为int的指针变量

B.p是int型变量

C.p是基类型为int的指针变量

D.程序中可用INTEGER代替类型名int

二、2.填空题(20题)21.有以下程序

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();

n1=ch1-'()';n2=n1*10+(ch2-'()');

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

}

程序运行时输入:12<回车>,执行后输出结果是【】。

22.在数据结构中,顺序存储结构的数据元素所占的存储空间是______的。

23.函数fun的功能是:根据以下公式求p的值,结果由函数值返回。m与n为两个正数,且要求m>n。

例如:m=12,n=8时,运行结果应该是495.000000。请在题目的空白处填写适当的程序语句,将该程序补充完整。

#include<stdio.h>

floatfun(intm,intn)

{inti;

doublep=1.0;

for(i=1;i<=m;i++)【】;

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

for(i=1;i<=m-n;i++)p=p/i;

returnp;

}

main()

{printf("p=%f\n",fun(12,8));

}

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

#include<stdio.h>

main()

{charc;intn=100;

floatf=10:doublex:

x=f*=n/=(c=50);

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

}

25.下面程序执行后输出的结果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

printf("%d\n",fun(a,b)/m);

}

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

如:dp=x*-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,D);

printf("%d%d\n",c,D);

}

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

intf(inta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

}

main()

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

s=f(aa,5);printf("%d\n",s);

}

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

29.阅读下列程序,则程序的输出结果为______。

#include"stdio.h"

struetty

{intdata;

charc;};

main()

{streettya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

30.下面程序的功能是两个整数进行交换,请填空。

sub(int*x,int*y)

{【】

z=*x;*x=*y;*y=z;

return;}

main()

{intm,n,*t1,*t2;

scanf("%d,%d",&m,&n);

t1=&m;t2=&n;

【】

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

31.语句“int(*ptr)();”的含义是______是指向函数的指针,该函数返回一个血型数据。

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

33.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【】和选择排序等。

34.下面程序把从终端读入的文本(用#作为文本结束标志)复制到一个名为file.txt的新文件中。补足所缺语句。

main()

{charch;

FILE*fp;

if((fp=fopen(______))=NULL)exit(0);

while((ch=getchar())!='#')

fputc(ch,fp);

______;

}

35.关系操作的特点是______操作。

36.下列程序运行后的输出结果是______。

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

运行程序,输入HOWAREYOU。

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

main()

{

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

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

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

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

#include<stdio.h>

main()

{inta=2,b=-1,c=2;

if(a<b)

if(b<0)c=0;

elsec++;

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

}

40.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。

三、1.选择题(20题)41.在计算机中,算法是指()。

A.查询方法B.加工方法C.解题方案的准确而完整的描述D.排序方法

42.有以下程序:voidfun(char*c,intd){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){chara='A',b='a';fun(&b,a);printf("%c,%c\n",a,b);}程序运行后的输出结果是()。

A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b

43.有以下程序:#inelude<stdio.h>main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){fi(j%2)continue;x++;x++;}pfinff("x=%d\n",x);}程序执行后的输出结果是()。

A.x=4B.x=8C.x=6D.x=12

44.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","beijing"},*p=str;ptintf("%\n",strlen(p+20));}程序运行后的输出结果是()。

A.0B.5C.7D.20

45.下面程序的输出结果是()maint(){char*s="121";intk=0,a=0,b=0;do{k++;if(k%2==0){a=a+s[k]-'0';continue;}b=b+s[k]-'0';a=a+s[k]-'0'}wnile(s[k+1]);printf("k=%da=%db=%d\n",k,a,b);}

A.k=3a=2b=3B.k=3a=3b=2C.k=2a=3b=3D.k=2a=2b=3

46.有以下程序#include<stdio.h>main(){printf("%d\n",NULL);}

A.0B.1C.-1D.NULL没定义,出错

47.在深度为5的满二叉树中,叶子结点的个数为A.32B.31C.16D.15

48.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。

A.4B.16C.32D.52

49.以下程序中函数sort的功能是对数组a中的数据进行由大到小的排序:#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[]={1,2,3,4,5,6,7,8,9,10},i;son(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是()。

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

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

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

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

50.若整型变量a、b、c、d中的值依次为1、4、3、2。则条件表达式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4

51.下列叙述中正确的是______。

A.程序设计就是编制程序

B.程序测试必须由程序员自己去做

C.程序经调试改错后还应进行再测试

D.程序经调度改错后不必进行再测试

52.有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是______。

A.3B.4C.5D.有语法错误

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

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

54.以下能正确表示x在-5到-1或5到1范围(含5和1)内,值为“真”的表达式是()

A.(x>=-5)||(x<=-1)&&(x<=5)&&(x>=1)

B.!(x>=-5||x<=-1&&x<=5||x>=1)

C.x<-5&&x>-1||x<1&&x>5

D.(x<-5)||(x>-1&&x<1)||(x>5)

55.在以下各标识符中,合法的用户标识符是()

A.1B.table__1C.0__tD.k%

56.设有语句:if(a==1)b=2;c=3;,以下语句中与之等价的是()。

A.if(a==1){b=2;c=3;}

B.if(a!=1){;}else{b=2;c=3;}

C.if(a=1)c=3;b=2;

D.(a==1)?b=2:a:=a;c=3;

57.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A.63B.64C.6D.7

58.在下列语句中,正确的是()

A.staticcharstr[]="China";

B.staticcharstr[];str="China";

C.staticcharstr1[5],str2[]={"China"};str1=str2;

D.staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);

59.语句int(*ptr)()的含义是()。

A.ptr是一个返回值是血的函数

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个血型数据

D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

60.在数据库设计的四个阶段中,为关系模式选择存取方法应该是在______阶段。

A.需求分析B.概念设计C.逻辑设计D.物理设计

四、选择题(20题)61.在数据库设计中,用E-R图来描述信息结构,但不涉及信息在计算机中的表示,它是数据库设计的()阶段。

A.需求分析B.概念设计C.逻辑设计D.物理设计

62.若有以下定义和语句:“doubler=99,*p=&r;*P=r;”,则以下正确的叙述是()。

A.两个*p含义相同,都说明给指针变量p赋值

B.在“doubler=99,*p=&r;”中,把r的地址赋值给了P所指的存储单元

C.语句“*p=r;”把变量r的值赋给指针变量P

D.语句“*p=r;”取变量r的值放回r中

63.有以下程序:

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

A.7,4.2,B.8,7,5,2,C.9,7,6,4,D.8,5,4,2,

64.有如下程序:main(){intn[5]={0,0,0},i,k=2;for(i=0;i&printf("%d\n",n[k]););}该程序的输出结果是()。A.不确定的值B.2C.1D.0

65.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。

A.-3B.9C.-12D.6

66.

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

A.isupper(c)

B.A<=c<=Z

C.A<=c&&c<=Z

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

67.以下数据结构中不属于线性数据结构的是______。

A.队列B.线性表C.二叉树D.栈

68.以下符合C语言语法的实型常量是

A.1.2E0.7B.3.33.145EC.E23D..4E-2

69.

70.

71.以下不正确的叙述是

A.在C程序中,逗号运算符的优先级最低

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

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

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

72.若有说明“chars1[30]="abc",s2[]="defghi";",则在使用函数stoat(s1,s2)后,结果是()。A.A.s1的内容更新为abcdefghiB.s1的内容更新为defghi\0

C.s1的内容更新勾defghiabc\0

D.s1的内容更新为abcdefghi\0

73.

74.

75.有以下程序:

main

{

unsignedchara=2,b=4,c=5,d;

d=a|b;d&=c;printf("%d\n",d);

}

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

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

76.设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。

A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1

77.

78.

79.有以下程序:

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

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

80.main()

{intn;(n=6*4,n+6),n*2;printf(“n=%d\n”,n);}

此程序的输出结果是______________.

A.30B.24C.60D.48

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用递归算法计算斐波拉契级数列中第n项的值。从第一项起,斐波拉契级数序列为1,1,2,3,5,8,13,21,…例如,若给n输入8,该项的斐波拉契级数值为21。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组s中,请编写函数proc(),它的功能是:函数返回指定学号的学生数据,指定的序号在主函数中输入。若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp)。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.AC语言中,八进制整型常量以0开头,十六进制整型常量以0x或0X开头。C语言中的实型常量有两种表示形式:小数形式和指数形式。小数形式,表示的实型常量必须要有小数点;指数形式,在e或E后加一个整数来表示以10为底数的幂数,且规定字母e或E之前必须要有数字,且e或E后面的指数必须为整数。B选项中“028”不合法,八进制中没有数字8。C选项中,e后面的指数不是整数。D选项中“10,000”数字之间不能有逗号。故本题答案为A选项。

2.C

3.C解析:C语言中字符常量是以单引号括起来的单个字符,或为以“\\”与三位八进制数值或两位十六进制数值代替单个字符。

4.Aswitch语句中不一定使用break语句,选项A正确;break语句除了用于switch语句,还可以用于循环语句中,选项B、C错误;switch语句不一定需要使用default语句,选项D错误。本题答案为A选项。

5.C

6.B

7.D

8.B数组1标从0开始,A选项中所赋值的个数超过了数组的长度;C选项中定义a为字符型变量,而不是数组,赋值错误;D选项中,整型数组不能赋字符串。

9.CC。【解析】软件工程是指将工程化的思想应用于软件的开发、应用和维护的过程,包括软件开发技术和软件工程管理。

10.C1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复3种基本控制结构就足以表达出各种其他形式结构的程序设计方法。本题答案为C选项。

11.C解析:数据库系统具有以下4个特点:数据的集成性、数据的高共享性与低冗余性、数据的独立性、数据统一管理与控制。

12.C\n面向对象的设计方法的基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。它虽强调模拟现实世界中的概念而不强调算法,但是它鼓励开发者在软件开发的过程中从应用领域的概念角度去思考。

\n

13.A条件表达式:x=表达式1:表达式2:表达式3的含义是:先求解表达式1.若为非0(真),则求解表达式2.将表达式2的值赋给x。若表达式1的值为0(假),则求解表达式3.将表达式3的值赋给x。在本题中与表达式1:(x-y)等价的是(x-y<0|x-y>0)。

14.D解析:选项A)是一个合法的赋值表达式,但结尾没加分号,所以它不是一个赋值语句;选项B)是一个逗号表达式,也因为结尾没有加分号而不是合法的赋值语句,选项C)是一个算术表达式,虽然有分号,但这个表达式没有赋值操作,因此,也不是一条赋值语句。

15.A解析:该题考查的是递归函数的调用,题中读fun函数进行了递归调用,第1次调用:fun(3)n=3s=3-fun(2);第二次调用时:fun(2)n=2s=2返回第一次调用后,s=3-2=1。

16.A

17.D

18.B

19.A声明data是结构S的数组。初始化时data[0].a=10;data[0].b:104);data[1].a=20;data[1].b=200。主函数中p=data[1];即p.a=data[1].a;p.b=data[11.b;执行语句prinff(”%dkn”,++(p.A));打印输出时p.a先增l再打印。即p.a=data[1].a=20,先增1等于21,因此程序运行结果是21。

20.C题干中使用typedef定义新类型名INTEGER,它代表int*类型。使用INTEGER定义p,相当于int*p。使用INTEGER定义*q,相当于int**q。所以p是基类型为int的指针变量,q是基类型为int*的指针变量,选项A、B、D错误。故本题答案为C选项。

21.1212解析:字符类型的数据在内存中以相应的ASCII码存放,在C语言中,字符数据可以等价为与其相应的ASCII码的整数,还可以作为整数参加运算。在本题中,n1=h1-0'=1-0=49-48=1,n2=n1*10+(ch2-'0')=1*10+(2-0)=10+2=12。

22.连续连续解析:顺序存储结构具有两个特点:1)数据元素所占空间是连续的;2)数据元素在存储空间中是按逻辑顺序依次存放的。

23.p=p*ip=p/ip=p*ip=p/i解析:本题中,欲求p的值,需要先求m!,n!,(m-n)!,可分别用循环语句实现。

24.220220解析:根据赋值运算符“自右至左”的结合顺序,程序中赋值表达式x=f*=n/=(c=50)的求解步骤为:首先计算n/=(c=50),即n=n/c=100/50=2;然后计算f*=n,即f=f*n=10*2=20.000000,由此得到x的值为20.000000。

25.22解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m应取外部变量的值13,因此输出2。

26.7979解析:因为在调用子函数时进行的是数值传递,调用子函数并不能改变实参的值,所以经过调用子函数,c、d的值并没有发生变化还是原来的值。

27.1515解析:通过递归调用f函数实现了数组各元素之和,即a[4]+a[2]+a[1]+a[0]=15。

28.n+1n+1解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为0的结点多一个。

29.30x30x解析:本题的参数传递属于值传递,所以被调用函数内不能改变调用函数中的数据。

30.intz;sub(t1t2);

31.ptrptr解析:本题考查函数指针的概念。函数指针的定义格式是:类型标识符(叶旨针变量名)()。注:“类型标识符”为函数返回值的类型。

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

33.交换排序交换排序解析:常见的排序方法有插入排序(包括简单插入排序法和希尔排序法等)、交换排序(包括冒泡排序和快速排序法等)和选择排序(包括简单选择排序和堆排序等)。注意:常见的排序方法及其作用机制和区别。

34.file.txt"w"fclose(fp)。file.txt,'w'fclose(fp)。解析:向文件中写数据,并且该文件是新文件,应当使用文件打开方式'w',文件操作结束时要用函数fclose关闭文件,以防数据丢失。

35.集合集合

36.HOWHOW解析:在scanf()函数中,使用空格作为分隔符,如果输入含有空格的字符中,则不能使用scanf()数,所以本题中输入空格就返回了'\\0\\,s数组也就确定了,后面的输入就不再读入数组s中。

37.2424解析:本题程序定义了一维数组p,有七个数组元素,整型变量i,j初值分别为0,当while的条件表达式(i<7&&p[i]%2==1)的值为真时,执行语句j+=p[i++];,如:当i=0时,i<7为真,p[i]%2=11%2=1,表达式(p[i]%2==1)的值为真,所以整个表达式(i<7&&p[i]%2==1)的值为真,执行j=j+p[i++]=0+11=11,i=1;,依此类推可以得出答案24。

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

39.22解析:分析程序,a=2,b=-1,c=2时,if语句的表达式a<b不成立,不再往下判断,直接退出if语句,执行后面的输出语句,程序结束。在这个程序中a、b、c的值没做任何改变。

40.E-R图E-R图解析:数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将E-R图转换成关系模式。

41.CC。【解析】计算机算法是指解题方案的准确而完整的描述,它的基本特征分别是:可行性、确定性、有穷性和拥有足够的情报。

42.D解析:程序中定义了两个字符型变量'a'和'b',并分别赋初值为'A'和'a',然后调用函数fun(),将b的地址和a值作为实参。在函数fun()中第一个参数是传递地址,故在调用函数fun()中对参数做的修改(即将b值加一)将影响字符型变量的值(变为b),函数fun()第二个参数是传值的,故在调用函数fun()对第二个参数做的修改不影响字符型变量a(即'a'的值仍为'A'),所以在fun()函数中输出的d为b,B,接着在主函数中,输出a,b,然后退出fun()函数,接着执行后面的语句,输出A,b。所以最后输出为b,B,A,b。4个选项中D正确。

43.B解析:本问题要求给出程序执行后输出的x的值。x的初值为0,程序中出现了3次x++,其中外层循环中出现了两次,共自增了4次;在内层循环中,当循环变量为。和2时,x自增,因此共自增了4次,这样x共自增了8次,所以结果为8。

44.C解析:主函数中定义了一个二维字符数组并初始化,初始化后的结果为str[0]='Hello'、str[1]='Beijing',然后定义一个字符指针变量p并让它指向数组的首地址,即指向str[0],而在C语言中无论是一维还是多维数组,其元素在内存中都是顺序存放的,故p+20后指针指向str[1],所以strlen(p+20);返回的是str[1]中的字符串的长度,即Beijing的长度为7,所以最后输出的值为7,所以,4个选项中选项C符合题意。

45.C

46.A解析:在C语言中NULL的ASCII码值为0,而输出函数要求以整形格式输出,故最后的输出数为0。所以,4个选项中选项A符合题意。

47.C2(n-1)

=2(5-1)=16

48.C本题主要考查逗号表达式。逗号是一个特殊的运算符,它具有所有运算符中最低的优先级。在C语言中,用它可以将两个表达式连接起来,逗号表达式的一般表现形式为:

表达式1,表达式2,…,表达式n

逗号表达式的求解过程是:先求解表达式1,再求解表达式2,依次往后计算,整个逗号表达式的值是最后一个表达式的值,如“3+5,5+6”的值是11。

在本题中,逗号表达式为i=4,j=16,k=32,根据上面的分析,计算逗号表达式得到的结果为k=32,最后将逗号表达式的结果赋值给变量x,那么变量x的值为32。因此,本题的正确答案选C。

49.C解析:在main函数中调用sort函数时,实参&aa[3]把数组元素aa[3]的首地址传给形参数组a,使aa[3]与a[0]相对应。sort函数将从aa[3]开始的连续5个数进行了从大到小的排序,其他数组元素不变。

50.A解析:条件表达式的形式如下:表达式1?表达式2:表达式3,所以本题条件表达式a<b?a:c<d?c:d应该理解为a<b?a:(c<d?c:d),首先求出条件表达式c<d?c:d的值等于2,再求条件表达式a<b?a:2的值,由于a-1<b-4成立,所以上述条件表达式的值等于1。

51.C解析:软件测试包括需求分析、结构功能模块设计、编制程序等阶段。程序的测试可以由专门的测试人员来完成。程序经调试改错后还应进行再测试。

52.A解析:(rec4,rec5)是逗号表达式,它的值是rec5的值。所以该函数调用语句含有的实参个数是3。

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

54.A

55.B

56.D

57.B解析:在长度为64的有序线性表中,其中的64个数据元素是按照从大到小或从小到大的顺序排列有序的。在这样的线性表中进行顺序查找,最坏的情况就是查找的数据元素不性表中或位于线性表的最后。按照线性表的顺序查找算法,首先用被查找的数据和线性表的第一个数据元素进行比较,若相等,则查找成功,否则,继续进行比较,即和线性表的第二个数据元素进行比较。同样,若相等,则查找成功,否则,继续进行比较。依次类推,直到性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。因此,在长度为64的有序线性表十进行顺序查找,最坏的情况下需要比较64次。因此,本题的正确答案为选项B。

58.A

59.C解析:本题考查的是指向函数的指针。函数指针定义的基本格式为:类型标识符(指针变量名)()。“类型标识符”为函数返回值的类型。

60.D解析:需求分析阶段是分析用户的需求,显然不属于这个阶段,由此可以排除选项A.概念设计是将需求分析得到的用户需求抽象为信息结构及概念模型的过程,涉及不到数据的存取,所以选项D错误。逻辑设计是在概念设计的基础上将E-R图转换成数据库管理系统的逻辑数据模型表示的逻辑模式,也不涉及存取问题,选项C也不对。答案为D。

61.B本题考查数据库设计不同阶段的任务。

数据库设计过程可分为需求分析、概念设计、逻辑设计、物理设计四个阶段。其中用E-R图来描述信息结构,但不涉及信息在计算机中的表示是概念设计阶段。

62.B在定义*p=&r时,是表示r的地址赋给了p所指的存储单元,因此选项B正确。

63.DCou血ue的作用是跳出循环体中剩余的语句而进行下一次循环。第一次循环x的值为8,循环体中if条件成立,打印x的值8后将x减1,再执行continue语句,跳出本次循环。第二次判断循环条件时,x的值变为6,不满足循环体内if条件,执行打印一一x的操作,即打印5后跳出循环。第三次判断循环条件时x的值为4,满足循环体中if条件,执行打印x一一的操作,即打印4,后将x值减一,执行continue语句,跳出本次循环。第四次判断循环条件时x的为2,满足循环体中if条件,打印x一一,即打印2后将x减一,执行continue语句,跳出本次循环。在进行for条件表达式中第三个表达式x一一的操作后x的值为0,不满足条件结束循环。所以打印结果为8,5,4,2,。

64.D本题for循环中,当i=0时,判断条件i&printf("%d\n",n[k]),此时i的值是0,输出n[k]的值也为0,0&0结果还是0,条件不成立,退出循环。所以最后输出结果为0。

65.C解析:本题中首先定义一个整型变量a并给它赋初值为3,在表达式中,从右开始执行,即先执行“a-=a*a;”等价于a=a-a*a即a=3-3*3=-6,此时a的值为-6,接着执行“a+=a-;”相当于执行a=a+a即a=-6+(-6)=-12,此时a的值为-12。所以,4个选项中选项C符合题意。

66.B

\n选项B先计算关系表达式“A<=c”的值是0还是l,再比较该值与字符z之间的大小关系,不能实

温馨提示

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

最新文档

评论

0/150

提交评论