2021年河南省平顶山市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第1页
2021年河南省平顶山市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第2页
2021年河南省平顶山市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第3页
2021年河南省平顶山市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第4页
2021年河南省平顶山市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

2021年河南省平顶山市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.在供应关系中,实体供应商和实体零件之间的联系是()。

A.多对多B.一对一C.多对一D.一对多

2.设有定义的语句:“charc1=92,c2=92;”,则以下表达式中的值为零的是()。

A.c1^c2B.c1&c2C.~c2D.c1|c2

3.以下叙述中错误的是()。

A.c语言是一种结构化程序设计语言

B.使用三种基本结构构成的程序只能解决简单问题

C.结构化程序设计提倡模块化的设计方法

D.结构化程序由顺序、分支、循环三种基本结构组成

4.若有以下定义和语句

chars1[10]="abcd!",*s2="\n123\\";

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

则输出结果是A.A.55B.105C.107D.58

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

#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

6.

7.根据二叉树的定义可知道二叉树共有种不同形态的二叉树()。

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

8.

9.对线性表进行二分法检索,其前提条件是()。

A.线性表以顺序方式存储,并按关键码值排好序

B.线性表以顺序方式存储,并按关键码的检索频率排好序

C.线性表以链式方式存储,并按关键码值排好序

D.线性表以链式方式存储,并按关键码的检索频率排好序

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

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

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

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

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

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

A.字符型数组中可能存放字符串。

B.可以对字符型数组进行整体输入、输出。

C.可以对整型数组进行整体输入、输出。

D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

12.待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第()个位置。

A.3B.5C.7D.9

13.下列判断正确的是()。

A.chara="ABCD":等价于char*a;*a="ABCD":

B.charstr[10]={"ABCD"}:等价于charstr[10];str[]={"ABCD"};

C.char*s="ABCD":等价于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD":等价于charc[5]-d[5]="ABCD";

14.第

17

若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是

A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)

15.有以下程序:#include<stdio.h>structS{inta,b;}data[2]=110,100,20,200};main(){structSp=data[1];printf(“%d\n”,++(p.a));}程序的运行结果是()。

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

16.若x和y都是int型变量,x=100,y=200,且有程序片段:printf("%d",(x,y));上面程序片段的输出结果()

A.200B.100C.100200D.输出格式符不够,输出不确定的值

17.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的输出结果是()。A.xyyxB.yyyyC.yyxxD.yxyx

18.设有以下语句

charx=3,y=6,z;

z=x^y<<2;

则z的二进制值是

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

19.

20.下述程序的输出结果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if(i*i>=20)(i*i<=lOO))break;}printf("%d\n",i*i);}A.49B.36C.25D.64

二、2.填空题(20题)21.以下程序的运行结果是【】。

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wb");

fwtite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

for(i=0;i<10;i++)printf("%d",a[i]);

}

22.在E-R图中,矩形表示【】。

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

#include<stdio.h>

fun()

{inta=0;

a+=3;

printf("%d",A);

}

main()

{intcc;

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

fun();

printf("\n");

}

24.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。

25.当运行以下程序时,输入abcd,程序的输出结果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

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

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

}

main()

{charstr[40];

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

}

26.一名学生只能住一间宿舍,一间宿舍可住多名学生,则实体“宿舍”与实体“学生”的联系属于()的联系。

27.媒体在计算机领域中的含义,是指存储信息的实体和【】。

28.子程序通常分为两类:【】和函数,前者是命令的抽象,后者是为了求值。

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

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

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

【】t[20]

30.以下程序的功能是从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。请填空。

main()

{charstr[81],*sptr;

inti;

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

{str[i]=getchar();

if(str[i]=='\n')break;

}

str[i]=【】;

sptr=str1

while(*sptr)putchar(*sptr【】);

}

31.软件的【】设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。

32.以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。

#include<stdio.h>

voidf(intx[],intn)

{intp0,p1,i,j,t,m;

i=j=x[0];p0=p1=0;

for(m=0;m<n;m++)

{if(x[m]>i){i=x[m];p0=m;}

elseif(x[m]<j){j=x[m];p1=m;}

}

t=x[p0];x[p0]=x[n-1];x[n-1]=t;

t=x[p1];x[p1]=【】;【】=t;

}

main()

{inta[10],u;

for(u=0;u<10;u++)scanf("%d",&a[u]);

f(a,10);

for(u=0;u<10;u++)printf("%d",a[u]);

printf("\n");

}

33.以下程序给指针p分配三个double型动态内存单元,请填空。

#include<stdio.h>

#include<stdlib.h>

main()

{double*p;

p=(double*)malloc(【】);

p[0]=1.5;p[1]=2.5;P[2]=3.5;

printf("%f%f%f\n",p[0],p[1],p[2]);

}

34.在一棵二叉树上第6层的结点个数最多是【】。

35.在运算过程中,能够使空表与非空表的运算统一的结构是【】。

36.下列程序的输出结果是16.00,请填空:

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

37.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

38.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2

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

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

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

}

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

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

main()

{intX=10,y=20,t=0;

if(X==y)t=x;x=y;y=t;

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

}

40.对于长度为n的顺序存储的线性表,当随机插入和删除一个元素时,需平均移动元素的个数为【】。

三、1.选择题(20题)41.下列条件语句中,功能与其他语句不同的是

A.if(a)printf("%d\n",x);elseprinff("%d\n",y);

B.if(a==0)printf("%d\n",y);elseprintf("%d\n",x);

C.fi(a!=0)prinff("%d\n"x);elseprintf("%d\n",y);

D.if(a==0)prinff("%d\n",x);elseprintf("%d\n",y);

42.以下不是面向对象思想中的主要特征的是

A.多态B.继承C.封装D.垃圾回收

43.下列程序段的输出结果为()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}

A.languageB.lnugC.有语法错误D.lang

44.下列程序的输出结果是_____。main(){inti;for(i='A';i<'I';i++)printf("%c",i+32);printf("\n");}

A.编译不通过,无输出B.acegC.acegiD.abcdefghi

45.为了提高测试的效率,应该()。

A.随机选取测试数据

B.取一切可能的输入数据作为测试数据

C.在完成编码以后制定软件的测试计划

D.集中对付那些错误群集的程序

46.请选择以下语句的输出结果()。printf("%d\n",strlen("\t\"\065\xff\n"));

A.5B.14C.8D.输出项不合法,无正常输出

47.在结构化方法中,软件功能分解属于软件开发中的______阶段。

A.详细设计B.需求分析C.总体设计D.编程调试

48.设有以下定义和语句:inta[3][2]={1,2,3,4,5,6},*p[3];p[0]=a[1];则.(P[0]+1)所代表的数组元素是()。

A.a[0][1]B.a[1][0]C.s[1][1]D.a[1][2]

49.下列程序的运行结果为______。#defineMSDOS#ifdefMSDOS#defineINTEGERSIZE32#else#defineINTEGERSIZE16#endifmain(){printf("integer_size=%d\n",INTEGER_SIZE);}

A.integersize=32

B.integer_size=16

C.integersize=32,integer_size=16

D.错误

50.有以下程序段

charch;intk;

ch=′a′;k=12;

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

已知字符a的ASCII码值为97,则执行上述程序段后输出结果是

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

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

C.a,97,12k=12

D.a,97,k=12

51.下面不属于软件设计原则的是()。

A.抽象B.模块化C.自底向上D.信息隐蔽

52.下面这个程序段的时间复杂度是()。for(i=1;i<n;i++){y=y+3;for(j=0;j<=(2*n);j++)x++;}

A.O(log2n)

B.O(n)

C.O(nlog2n)

D.O(n2)

53.设变量a、b、c、d和y都已正确定义并赋值。若有下列if语句

if(a<B)

if(c==D)y=0;

elsey=1;

该语句所表示的含义是()。

A.

B.

C.

D.

54.在执行完下列的C语句段之后,则B的值是()。chara='A';intb;B=((34&&56)&&(a<'b'));

A.0B.1C.真D.假

55.以下正确的程序段是

A.cgarstr[20];scanf("%s",&str);

B.char*p;scanf("%s",p);

C.charstr[20];scanf("%s",&str[2])

D.charstr[20],*p=str;scanf("%s",p[2]);

56.设有如下说明typedefstruct{intn;charc;doubleX;}STD;则以下选项中,能正确定义结构体数组并赋初值的语句是

A.STDtt[2]={{1,'A',62},{2,'B',75}};

B.STDtt[2]={1,"A",62,2,"B",75};

C.structtt[2]={{1,'A'),{2,'B'}};

D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};

57.下列程序执行后的输出结果是

voidfunc1(inti);

voidfunc2(inti);

charst[]="hello,friend!";

voidfunc1(inti)

{printf("%c",st[i]);

if(i<3){i+=2;func2(i);}}

voidfunc2(inti)

{printf("%c",st[i]);

if(i<3){i+=2;func1(i);}}

main()

{inti=0;func1(i);printf("\n");}

A.helloB.helC.hloD.m

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

A.函数名是属于用户标识符,需符合C语言对标识符的规定

B.形参只能是变最

C.为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名

D.函数中定义的变量可以与其他函数中的变量同名

59.在16位编译系统上,若有定义inta[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是A.p向高地址移了一个字节B.p向高地址移了一个存储单元C.p向高地址移了两个字节D.p与a+1等价

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

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

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

voidmain()

{

inti=10,j=1;

printf("%d,%d\n",2*i--,++j*2);

}

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

A)20,4B)10,2

C)20,1D)10,4

62.

63.C语言源程序名的后缀是()。A.CB.exeC.obiD.ep

64.以下程序的输出结果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}

A.11B.12C.13D.15

65.

66.设有charstr[10],下列语句正确的是

A.scanf("%s",&str);B.printf("%c",str);

C.printf("%s",str[0]);D.printf("%s",str);

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

A.c语言程序将从源程序中第一个函数开始执行

B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

C.c语言规定必须用main作为主函数名,程序从此开始执行,在此结束

D.main作为用户标识符,用以命名任意一个函数作为主函数

68.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A.10B.8C.6D.4

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

main()

{inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;

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

for(j=0;j<=i;j++)s+=a[i][j];

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

}

A.18

B.19

C.20

D.21

70.不能实现函数之间数据传递的是()。

A.全局变量B.局部变量C.函数接口D.函数返回值

71.有以下程序

72.

73.

74.有以下程序

main()

{chara[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’\0’};

inti,j;

i=sizeof(a);

j=strlen(a);

printf("%d,%d\b",i,j);

}

程序运行后的输出结果是

A.9,9B.8,9C.1,8D.9,8

75.有以下程序:

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

A.1127B.1212C.1111D.117

76.(58)在数据流图(DFD)中,带有名字的箭头表示______。

A.制程序的执行顺序

B.模块之间的调用关系

C.数据的流向

D.程序的组成成分

77.

有以下程序段

intj;floaty;charname[50]:

scanf("%2d%f%s",&i,&.y,name):

当执行上述程序段,从键盘上输入555667777abc后,y的值为()。

A.55566.0B.566.0C.7777.0D.566777.0

78.有以下程序:

#include<stdio.h>,

main()

{intS;

scanf("%d",&s);

while(s>O)

{switch(s)

{casel:printf("%d",s+5);

case2:printf("%d",s+4);break;

case3:printf("%d",s+3);

default:("%d",s+1);break;

}

scanf("%d",&s);

}

}

运行时,若输入123450<回车>,由输出结果是()。

A.6566456B.66656C.66666D.6666656

79.(75)下列不属于结构化分析的常用工具的是()

A.数据流图

B.数据字典

C.判定树

D.PAD图

80.有以下程序#include<stdi0.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));printf(”%d\n”,m);}intf(intx){returnx*2;}程序运行后的输出结果是()A.8B.2C.4D.1

五、程序改错题(1题)81.在主函数中从键盘输入若干个数放人数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数proc()的功能是计算数组元素中值为负数的平均值(不包括0)。例如,数组中元素的值为78、-65、-15、35、-45、0,则程序的运行结果为-41.666667。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写fun()函数,其功能是:计算并输出3~m所有素数的平方根之和。例如,若主函数从键盘给m输入50后,则输出为s=63.665791。注意:m的值要大于2但不大于l00。部分源程序给出如下。请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.A一家供应商可提供多种零件,一种零件也可被多家供应商提供。所以实体供应商和实体零件之间的联系是多对多。本题答案为A选项。

2.A当值相同时按位异或,则为0,按位或与按位与时仍不变,负数也为非0。

3.BC语言是一种结构化程序设计语言。结构化程序设计是以模块化设计为中心的,有三种基本结构:顺序、选择和循环结构。各模块相互独立,因而可将原来较为复杂的问题化简为一系列简单模块并充分利用现有模块搭建新系统,提高程序的重用性和可维护性。

4.A

5.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)。

6.D

7.B

8.B

9.A解析:对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。

10.B\n选项C和D可直接排除,程序是数据结构和算法的组合体,所以是先选择数据结构,然后继而选择相对应的算法,编码并上机调试,最后整理文档。

\n

11.C

12.BB.【解析】快速排序的基本思想是:从表中选取一个元素(如本题中的33),将表中小于此元素的移到前面,大于此元素的移到后面,结果把线性表分割成两部分(两个子表),此元素插入到其分界线的位置处。然后分别对两个子表再次分割……本题中33作为分割的中界线,第一趟排序后排在比它小的18、9、25、12后面。

13.Da=“ABCD”书写错误,因为“=”左边不能出现常量;数组名S是代表S数组首地址常量,而不是变量;字符串只有在定义时维数可以省略。

14.B解析:条件运算符要求有3个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式17表达式2:表达式3其求解顺序是:先求解表达式1,若为非O(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。并且注意++、--的用法。

15.D声明data是结构体S的数组,初始化data[0].a=10,data[0].b=100,data[l].a=20,data[1].b=200。主函数中“p=data[1];”,即p.a=data[1].a,p.b=data[1].b,执行语句“printf(“%d\\n”,++(p.a));”。输出时,p.a先增1再输出,p.a=data[1].a=20,先增1等于21。故本题答案为D选项。

16.A

17.B本题考查do-while语句和if…else语句。do-while语句的功能是先执行循环体再判断条件,所以,先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=3,条件不成立,执行下面的else语句,输出Y,然后将X的值减1,x=2,满足while循环条件,继续循环。第三次循环:先判断if语句的条件,y=2,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将X的值减1,x=l,满足while循环条件,继续循环。第四次循环:先判断if语句的条件,y=-1,!y为逻辑0,条件不成立,执行下面的else语句,输出Y,然后将x的值减1,x=0,不满足while循环条件,结束循环。所以B正确。

18.B本题主要考查位运算。“按位异或”运算(^)是双目运算符,其功能是把参与运算的两数各对应的二进制位相异或,它在操作时,两对应位相同结果为0,不同则为1。“左移”运算(<<)的功能是把“<<”左边的运算数的各二进制位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。左移时,若左端移出的部分不包含有效二进制数1,则每左移一位,相当于移位对象乘以2。

本题中,有三个字符型的变量x,y,z,其中x和y的值分别为3和6。先转换为二进制数分别为00000011和00000110。本题中需要注意的是逻辑左移运算符的优先级比按位异或运算符的优先级高,因此,先将y进行运算逻辑左移2位操作,得到的结果为00011000,然后进行按位异或运算,得到最后的结果是00011011。本题正确的答案选B。

19.C

20.C当if执行到第一个满足(i*i>=20)(i*i<=100)这个条件的i出现时,通过break语句跳出循环,执行下面的prinlf语句。

21.12300123001,2,3,0,0,1,2,3,0,0,解析:本题考查文件读写函数fread和fwrite的用法。fwrite函数将数组a的前5个元素输出到文件fp中两次,共10个字节,再调用fread函数从文件fp中读取这10个字节的数据到数组a中,此时数组a的内容就变为{1,2,3,0,0,1,2,3,0,0},最后的输出结果为'1,2,3,0,0,1,2,3,0,0,'。

22.实体实体解析:E-R模型中,有3个基本的抽象概念:实体、联系和属性。在E-R图中,用矩形框表示实体,菱形框表示联系,椭圆形框表示属性。

23.33333333解析:本题考查for循环,for(cc=1;cc<=4;cc++)表示循环4次,a+=3表示每次a的值增加3,但是子函数中没有将变量a定义为static类型,所以每次调用完子函数之后,变量a所做的改变都不能保存,这样在下一次调用子函数时,a的初值仍是0,所以不管调用多少次,子函数输出始终是3。

24.模块化模块化

25.a*b*c*d*a*b*c*d*解析:字符处理函数strlen()测试字符串常量的长度,不包括‘\\0’在内。因此,函数insert()实现了将字符数组中每个非‘\\0’的字符后插入字符‘*’的功能。故输出结果是a*b*c*d*。

26.一对多一对多解析:在现实世界中事物间的关联称为联系。在概念世界中联系反映了实体集间的一定关系。两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,分别是一对一,一对多和多对多,依据题意,一名学生只能住一间宿舍,一间宿舍可住多名学生,所以实体“宿舍”与实体“学生”的联系属于一对多的联系。

27.载体载体

28.过程过程

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

结构体类型的定义:

struct结构体类型名

{

成员项表;

};

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

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

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

30.\0'++

31.概要概要

32.x[0]x[0]x[0],x[0]解析:函数f()通过for循环逐个比较数组x中的元素,循环结束后,p0和p1分别表示最大值和最小值在数组中的下标位置,然后按照题意将最大值x[p0]和数组的最后一个元素x[n-1]交换位置,再将最小值x[p1]和第一个元素(x[0])进行交换,所以空白处应该填入x[0]。

33.3*sizeof(double)或243*sizeof(double)或24解析:观察程序可知,本题要求用malloc函数分配三个double型的动态内存单元。

34.3232解析:根据二叉树的性质,在二叉树的第k层上,最多有2的k-1次方个结点。所以,第6层的结点数最多为32。

35.循环链表循环链表解析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:①在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。②循环链表中最后一个结点的指针不是空,而是指向表头结点。

解析:本题,已知结果z=16.00,即16.0=a/2+b*x/y+1/2,分别把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因为a=9,a是整型,所以9/2的值在没有进行类型转换时,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。

37.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)

38.1212解析:本题中n1='1'-'0'=1,n2=1×10+('2'-'0')=10+2=12。

39.20020,0解析:在主函数中首先定义了3个整型变量x、y、t,并分别给它们赋初值为10、20、0,接着执行汀语句,在if后面括号内的条件表达式中,条件x==y即10==20不成立,则不执行其后的语句t=x,然后退出if语句,顺序执行语句x=y;y=t;。执行完这两条语句后x的值变为20,y的值变为0,所以最后输出x、y的值为20和0。

40.n/2n/2解析:删除一个元素,平均移动的元素个数为(n-1+n-2+…+0)/n=(n-1)/2;插入一个元素,平均移动元素个数为(n+n-1+n-2+…+1)/n=(n+1)/2;所以总体平均移动元素个数为n/2。

41.D解析:本题考核的知识点是if语句的用法。选项A、选项B和选项C都是在a的值为。的时候输出y,a不为。的时候输出x,而选项D是在a为0的时候输出x,a不为0的时候输出y,所以,4个选项中选项D符合题意。

42.D解析:面向对象思想中的三个主要特征是:封装性、继承性和多态性。

43.B解析:本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址。

第1次for循环,p=a,p指向数组的第1个元素,*p是取指针p所指地址的内容,输出1;第2次for循环,p=p+2,则p指向数组的第3个元素,*p是取指针p所指地址的内容,输出n;第3次for循环,p=p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出u;第4次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出g,结束循环。

44.B

45.D本题主要考查软件的测试。软件测试的主要目的体现在下面几个方面。

(1)软件测试是为了发现错误而执行程序的过程。

(2)一个好的测试用例能够发现至今尚未发现的错误。

(3)一个成功的测试是发现了至今尚未发现的错误的测试。

软件测试的效率是指利用更少的成本创造更多的价值,提供软件测试效率的方法有很多,如制定一个合理的详细的测试计划,了解测试项目的业务需求,集中对付那些错误群集的程序等。而选项A所描述的随机选取测试数据是不能保证提高测试效率的,选项B描述的取一切可能的输入数据作为测试数据显然不能提高测试效率,反而使工作量加大,降低测试效率。

46.A解析:本题考查用strlen函数计算字符串长度的方法。该字符串中包含的字符是:'\\t'(跳格符)、'\\''(双引号)、'\\065'(ASCII值为八进制065,也即十进制为53的字符)、'\\xff'(ASCII值为十六进制ff,也即十进制为255的字符)、'\\n'(换行符)。

47.C解析:总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件,结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。

48.C解析:*p[3]是指针数组,它由3个指向整型数据的指针元素组成,p[0]=a[1]是将a数组第一行的首地址赋给第0个指针元素,p[0]+1表示a[1]+1即a[1][1]的地址,所以*(p[0]+1)表示a[1][1]。

49.A

50.D解析:考查printf函数的相关知识。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开,因此选项A)和C)错误。在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b,所以正确答案为B)。输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。所以选项D)为正确答案。

51.C解析:软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念。①抽象是一种思维工具,就是把事物本质的共同特性抽出来而不考虑其他细节。②模块是指可以单独命名且可编址的元素。如高级语言中的过程、函数、子程序等。③信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。④模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。因此,本题的正确答案是C。

52.D解析:语句的频度指的是该语句重复执行的次数。一个算法中所有语句的频度之和构成了该算法的运行时间。在本例算法中,语句①的频度是n-1,语句②的频度是(n-1)(2n+1)-2n2-n-1。则该程序段的时间复杂度是T(n)=n-1+2n2-n-1=O(n2)。

53.C解析:语句if(c==d)y=0;elsey=1;是if(a<b)语句的一个子句。所以整个C语句表达式的意思是:在a<b的情况下,如果c=d则y=0,否则y=1。所以,选项C)为正确答案。

54.B解析:本题考查C语言3个知识点:①将一个字符赋给一个字符变量时,并不是将该字符本身存储到内存中,而是将该字符对应的ASCII码存储到内存单元中:②大写字母的ASCII码值小于其对应小写字母的ASCII码值:⑧只要逻辑与运算符&&的两个运算对象都为非零,返回值就是1。

55.C解析:scanf输入字符串有一点要注意的是,格式控制串必须用%s。注意:gets函数和puts函数的作用。

56.A解析:本题定义了一个结构体类型并自定义类型名为STD,用户自定义类型后,就可以利用它进行变量与数组的定义。定义的方法,与c语言中其他类型的定义完全一样,定义结构型数组并赋初值时,每个元素用一对“{”和“}”括起来,字符型元素用“'”括起来,选项A,B、C、D中只有选项A符合条件。所以,A选项为所选。

57.C解析:考查函数的调用。函数调用的一般形式为:

函数名(实参列表)

首先调用函数func1(0),输出st[0]=h。i值变为2,并调用函数func2(2),输出st[2]=l。i值此时变为4,又调用函数func1(4),输出st[4]=0。此时i值大于等于3,执行完毕,因此,输出结果为hlo。函数调用的一般格式以及函数的返回值。

58.C解析:本题考查函数调用时参数的作用域。在函数调用时,函数体内定义的变量的作用域连函数体内,因而在不同函数体内定义的变量可以相同,不影响各个变量的使用。

59.A解析:在16位编译系统下,一个int型变量是用16位来存储的,其占用两个字节,当执行p++之后,相当于p向高位移动了一个存储单元,也就是两个字节。因此,本题的答案为选项A)。

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

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

温馨提示

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

评论

0/150

提交评论