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

下载本文档

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

文档简介

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

一、单选题(20题)1.下列方法中,属于白盒法设计测试用例的方法的是()。

A.错误推测B.因果图C.基本路径测试D.边界值分析

2.设二叉树的中序序列为BCDA,前序序列为ABCD,则后序序列为()。

A.CBDAB.DCBAC.BCDAD.ACDB

3.以下叙述中正确的是_____。A.用C程序实现的算法必须要有输入和输出操作

B.用C程序实现的算法可以没有输出但必须要输入

C.用C程序实现的算法可以没有输入但必须要有输出

D.用C程序实现的算法可以既没有输入也没有输出

4.有以下程序:#include<stdio.h>main(){intx=072;printf(“>%d<\n”,x+1);}程序运行后的输出结果是()。

A.>073<B.>73<C.>142<D.>59<

5.在m叉树中,都为0的结点称为()。

A.兄弟B.树叶C.树根D.分支结点

6.为了使模块尽可能独立,要求_____。A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

7.判断一包含n个整数的数组a[]中是否存在i、j、k满足a[i]+a[j]+a[k]=0的时间复杂度需要()

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

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

A.'a'&&'b'

B.a<=b

C.a||+c&&b-c

D.!((a<b)&&!c||1)

9.同一个关系模型的任意两个元组值()。

A.可以全相同B.不能全相同C.必须全相同D.以上都不对

10.有如下程序:main(){intx=1,a=0,b=0;switch(x){case0:b++;casel:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是()。A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

11.有以下程序:#include<stdio.h>main(){intx=10,y=11,z=12;if(y<z)x=y;y=z;z=x;printf(“x=%dy=%dz=%d\n”,x,y,z);}程序运行后的输出结果是()。

A.x=11y=12z=11

B.x=10y=10z=10

C.x=11y=11z=10

D.x=10y=10z=12

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

其中关系T由关系R和S通过某种操作得到,该操作为()。A.选择B.投影C.交D.并

13.合法的数组初始化语句是()。

A.chara="string";

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

C.inta[]="string"

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

14.有以下程序:#include<stdio.h>voidfunl(char*p){char*q;q=p;while(*q!='\0')}(*q)++;q++;}mains(){chara[]={"Program"},*p;p=&a[3];fun1(p);printf("%s\n",a);}程序执行后的输出结果是()。

A.ProhsbnB.PrphsbnC.ProgsbnD.Program

15.若有定义语句“doublea,*p=&a;”,下列叙述中错误的是()。

A.定义语句中的“*”是一个间址运算符

B.定义语句中的“*”是一个说明符

C.定义语句中的“p”只能存放double类型变量的地址

D.定义语句中*p=&a”把变量a的地址作为初值赋给指针变量p

16.有以下程序:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下选项中表达式值为11的是()。

A.++p->xB.pt->xC.*pt->yD.(pt++)->x

17.数据处理的最小单位是()。

A.数据B.数据元素C.数据项D.数据结构

18.以下能正确定义一维数组的选项是______。

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

19.以下是一个对数组A(含有n个数值元素)进行排序的算法伪代码,请问它的平均时间复杂度是多少()

A.O(n)B.O(n^2)C.O(1)D.O(log(n))

20.视图设计一般有3种设计次序,下列不属于视图设计次序的是()。

A.自顶而下B.由内向外C.由外向内D.自底向上

二、2.填空题(20题)21.在程序设计阶段应该采取______和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。

22.下面的if语句与y=(x>=10)?3*x-11:(x<1)?x:2*x-1;的功能相同,请补充完整。

if(______)

if(______)y=2*x-1;

elsey=x;

elsey=3*x-11;

23.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。

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

#include<stdio.h>

sb(ints[],intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8};

inti,x=0;

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

{x=sb(s,x);

printf("%d",x);

}

printf("\n");

}

25.下面程序的运行结果是【】。

#include<stdio.h>

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{inti1,i2;

i1=1000/s(N);i2=1000/f(N);

printf("%d%d\n",i1,i2);

}

26.下列程序的运行结果是【】。

main()

{unionEXAMPLE

{struct

{intx;inty;}in;

inta;

intb;

}e:

e.a=1;e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

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

}

27.以下说明语句中,【】是结构体类型名。

typedefstruct

{intn;

charch[8];

}PER;

28.若已知a=10,b=20,则表达式!a<b的值为【】。

29.数据的逻辑结构有线性结构和______两大类。

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

main()

{chara[]="Language",b[]="Programe";

char*p1,*p2;

intk;

p1=a;p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k))printf("%c,*(p1+k));

}

31.计算机指令是由【】和地址码组成的。

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

33.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。

【】(double,double);

main()

{doublex,y;

scanf("%lf%lf",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleb)

{return(a>b?a:b);}

34.以下程序的输出结果为【】。

#defineJFT(x)x*x

main()

{inta,k=3;

a=++JFT(k+1);

printf("%d",a);

}

35.下列程序的运行结果是【】。

#include<stdio.h>

main

{intk=4,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

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

func(a,b)

inta,b;

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);}

36.以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输人数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next=NULL).

#include<stdio.h>

structlist{intdatd;structlist*next;};

【】creatlist()

{structlist*p,*q,*ph;

inta;

ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;

printf("Inputanintegernumber,enter-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{

p=(structlist*)malloc(sizeof(structlist));

p->data=a;

q->next=p;

【】=p;

scanf("%d",&a);

}

p->next='\0';

return(ph);

}

main()

{

structlisthead;

head=creatlist();

}

37.面向对象的模型中,最基本的概念是对象和______。

38.设有下面的程序段:chars[]="china";char*p;p=S;则下列叙述正确的是

39.下面函数用来求出两个整数之和,并通过形参传回两数相加之和值。请填空。

intadd(intx,inty,【】,)

{【】=x+y;}

40.以下程序段的功能是统计链表中结点的个数,其中first为指向第一个结点的指针(链表带头结点)。请在下划线内填入正确内容。

structlink

{chardata;

structlink*next;};

structlink*p,*first;

intc=0;

p=first;

while(【】)

{c++;

p=【】;}

三、1.选择题(20题)41.若有说明chars1[30]="abc",s2[]="defghi";,则在使用函数strcat(s1,s2)后,结果是()。

A.s1的内容更新为abcdefgi

B.s1的内容更新为defghi\0

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

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

42.下面程序的输m结果是()。typedefunion{doublex[3];inty[4];charz[10];}M;Mt;main(){Printf("%d\n",sizeof(t));}

A.32B.26C.24D.4

43.以下有4组用户标识符,其中合法的一组是______。

A.FOR

B.4d

C.f2G3

D.WORD-subDOIFvoidCaseSizeabcdefine

44.下列叙述中正确的是A.软件测试的主要目的是发现程序中的错误

B.软件测试的主要目的是确定程序中错误的位置

C.为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作

D.软件测试是证明软件没有错误

45.有以下程序:voidfun1(char*p){char*q;q=p;while(*q!='\0'){(*q)++;q++;}}main(){chara[]={"Program"),*p;p=&a[3];fun1(p)printf("%s\n",A);}程序执行后的输出结果是()。

A.ProhsbnB.PrphsbnC.ProgsbnD.Program

46.16位二进制补码表示的数据范围是()

A.0~(216-1)B.0~215C.-215~(215-1)D.-215~215

47.以下程序段的输出结果是chars[]=“\\141\141abc\t”;printf(“%d\n”,strlen(s));

A.9B.12C.13D.14

48.下列变量声明合法的是()。

A.short.a=1.4e-1;

B.doubleb=l+3e2.8;

C.longdo=0xfdaL;

D.float2_aaa=1e-3;

49.下列程序段中,不能正确赋值的是()。

A.char*p,ch;p=&ch;scanf("%c",&p);

B.char*p;p=(char*)malloc(1);scabf("%c",p);

C.char*p;*p=getchar();

D.char*p,ch;p=&ch;*p=getchar();

50.下列程序的执行结果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}

A.266B.11C.265D.138

51.下列二维数组初始化语句中,不正确的是()。

A.intb[][2]={1,2,3,4,5,6,7};

B.intb[3][5]={0,0,0};

C.intb[][4]={{1,2},{3,4,5},{6}};

D.intb[3][2]={(1,2),(3,4),(5,6)};

52.不能与do…while(exp)语句中的(exp)等价的表达式是()。

A.(!exp==0)B.(exp>0‖exp<0)C.(exp==0)D.(exp!=0)

53.下列选项中,不属于数据模型所描述的内容的是()

A.数据类型B.数据操作C.数据结构D.数据约束

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

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

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

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

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

55.以下选项中非法的字符串常量是()

B.\X0\011

C.\\\t"

D.\n\007\n

56.数据库系统的核心是()。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员

57.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;则与上述程序段功能等价的赋值语句是()。

A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;

58.下列对队列的叙述正确的是A.队列属于非线性表B.队列按“先进后出”原则组织数据C.队列在队尾删除数据D.队列按“先进先出”原则组织数据

59.有以下程序:main(){inty=1,x=2,z=3;printf("%d,%d\n",(++x,y++),z+2);}执行后的输出结果是()。

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

60.若输入173253,则以下程序的运行结果为______。main(){unsigneda;intn1,n2;scanf("%o",&a);printf("%o",getbits(a,4,8));}getbits(value,n1,n2)unsignedvalue;intn1,n2;{unsignedz;z=~0;z=(z>>n1)&(z<<(16-n2));z=value&z;z=z>>(16-n2);return(z);}

A.173253B.6C.8D.173

四、选择题(20题)61.将E—R图转换为关系模式时,实体和联系都可以表示为()。

A.属性B.键C.关系D.域

62.

63.在一个C程序中

A.main函数必须出现在所有的函数之前B.main函数可以在任何地方出现

C.main函数必须出现在所有的函数之后D.main函数必须出现在固定位置

64.

有以下程序段

intj;floaty;charname[50]:

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

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

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

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

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

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

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

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

66.

67.有以下程序:

main

{chara='a',b;

printf("%c,",++a);

printf("%c\n",b=a++):

)

程序运行后的输出结果是()。A.A.b,bB.b,cC.a,bD.a,c

68.执行以下程序时输人1234567<CR>,则输出结果是()。

#include<stdio.h>

main

{

inta=1,b;

scanf("%3d%2d",&a,&b);

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

}

A.12367B.12346C.12312D.12345

69.以下选项中正确的定义语句是()。

A.double,a,b;B.doublea=b=7;C.doublea;b;D.doublea=7,b=7;

70.下列定义变量的语句中正确的是()。

A)int_int;B)double3int_;

C)charfor;D)floatUS&;

71.

72.已知字符‘A’的ASCII代码值是65,字符变量cl的值是‘A’,c2的值是‘D’。则执行语句printf(”%d,%d”,cl,c2—2);的输出结果是()。

A.65,68B.A,68C.A,BD.65,66

73.

74.结构化程序设计所规定的三种基本控制结构是()。

A.for、while、switchB.输入、输出、处理C.顺序结构、选择结构、循环结构D.主程序、子程序、函数

75.

76.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

当运行程序时,输入asdafaaz67<回车>,则输出是A.A.asdafaaz67

B.asdafaaz67

C.asd

D.z67

77.以下选项中与“if(a==l)a=b;elsea++;”语句功能不同的switch语句是()。

A.switch(a){casel:a=b;break;default:a++;}

B.switch(a==l){case0:a=b;break;casel:a++;}

C.switch(a){default:a++;break;casel:a=b;}

D.switch(a==l){casel:a=b;break;case0:a++;}

78.

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

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

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是l5。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。

请修改程序中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

六、程序设计题(1题)82.请编写函数proc(),函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。

则函数值为59。

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

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

试题程序:

参考答案

1.CC)【解析】白盒测试方法也称为结构测试或逻辑测试,主要方法有逻辑覆盖测试、基本路径测试等。

2.B二叉树的前序序列为ABCD,由于前序遍历首先访问根节点,可以确定该二叉树的根节点是A。再由中序序列为BCDA,可知以A为根节点的该二叉树只存在左子树,不存在右子树,故后序序列为DCBA。本题答案为B选项。

3.C解析:算法的特性中包括“有零个或多个输入”及“有一个或多个输出”这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一千算法必须至少有一个输出。

4.D题干中x是一个整型变量,赋值为072。以0开头的整数是八进制的表示形式。printf函数中,格式字符%d表示以十进制形式输出“x+1”,所以需要将072转换成十进制数,即7×8+2=58,输出“x+1”为59。故本题答案为D选项。

5.B

6.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。

7.A

8.D解析:选项A:'a'&&'b'是字符a与b的相与,不为0:选项B:a<=b,由题中变量赋值可知,结果为1。选项C:a||+c&&b-c,结果为1;选项D:!((a<B)&&!c||1),运算结果为0。

9.B关系具有以下7个性质。①元组个数有限性:二维表中元组的个数是有限的。②元组的唯一性:二维表中任意两个元组不能完全相同。③元组的次序无关性:二维表中元组的次序,即行的次序可以任意交换。④元组分量的原子性:二维表中元组的分量是不可分割的基本数据项。⑤属性名唯一性:二维表中不同的属性要有不同的属性名。⑥属性的次序无关性.二维表中属性的次序可以任意交换。⑦分量值域的同一性:二维表属性的分量具有与该属性相同的值域,或者说列是同质的。满足以上7个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型。本题答案为B选项。

10.A当X为1时,执行case1,a自加等于1,因为case1后没有break,接着执行case2,此时a的值为2,b自加为1,故选择A选项。

11.Aif条件为真,执行“x=y;”,此时x=11,y=11,z=12;再执行“y=z;z=x;”,此时y=12,z=11,即x=11,y=12,z=11。故本题答案为A选项。

12.D

13.D

14.A解析:在main函数中,p=&a[3]说明指针p指向a数组的第4个字符(即字符\'g\');fun1中的q=p意味着指针q也指向了a数组的第4个字符。执行while语句,表达式(*q)++使\'g\'+1,使\'g\'变成了\'h\';表达式q++使q指向a[4]的起始地址。继续执行while语句,直到遇到\'\\0\'结束循环,返回形参。最终得到的结果是从字符串'Program\'的第4个字符开始,每个字符加1。

15.A变量定义语句“doublea,*p=&a;”,“*”是一个指针运算符,而非间址运算符。故本题答案为A选项。

16.A题目中定义了一个结构体数组c并初始化,指针pt指向c的第1个元素。则“++pt->x”为11,“pt->x”为10,“*pt->y”为1,“(pt++)->x”为20。故本题答案为A选项。

17.C解析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项C)。

18.B解析:选项A)定义的是长度为5的数组元素,但初值有6个元素,所以错误;选项C)不符合数组定义形式,数组名后应加上“[];选项D)的类型说明符错误,应改为char;选项B)中的0,1,2,3,4,5分别表示对应字符的ASCII码,所以正确。

19.B

20.C视图设计的设计次序分3种:自顶向下、自底向上和由内向外。它们为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握。

21.自顶向下自顶向下解析:在程序设计时,应先考虑总体,后考虑细节,逐步使问题具体化,对复杂的问题,应该设计一些子目标作为过渡,上述方法概括为:自顶向下,逐步细化。

22.x<10x>=1

23.上溢上溢解析:入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当rear=m+1时置rear=1;然后将新元素插入队尾指针指向的位置。当循环队列非空(s=1)时且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。

24.86518651解析:主程序中,第一次循环时,i=0,调用sb(s,x)子函数,此时n=3,x=s[n]=s[3]=8,然后将n减1变为2;第二次循环时,i=1,调用sb(s,x)子函数,因为将n定义为了静态变量,所以此时n=2,返回x=s[n]=s[2]=6;第三次循环时,i=2,调用sb(s,x)子函数,此时n=1,返回x=s[n]=s[1]=5;第四次循环时,i=3,调用sb(s,x)子函数,此时n=0,返回x=s[n]=s[0]=1。此程序实际上是将数组s逆序输出。

25.100010100010解析:对于define宏定义语句,系统在编译前进行如下替换:

i1=1000/s(N)i1=1000/s(10)i1=1000/10*10

i2=1000/f(N))i2=1000/f(10)i2=1000/(10*10)

26.484,8解析:C语言规定,共用体中各个成员变量在内存中占用同一段内存单元,即e.in.x和e.a、e.b占用同一段内存单元,由于e.in.x和e.a、e.b占用的是同、段内存单元,所以程序最后的打印结果为“4,8”。

27.PERPER解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

28.11解析:计算表达式!a<b,先计算!a,因a的值为10,!a的值为0,而关系表达式0<20为真,所以表达式!a<b的值为1。

29.非线性结构非线性结构

30.gae

31.操作码操作码

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

33.doublemaxdoublemax解析:本题考查函数的声明。C语言中函数声明的一般形式为:

(1)函数类型函数名(参数类型1,参数类型2,…)

(2)函数类型函数名(参数类型1参数名1,参数类型2参数名2,…)

题目中函数类型是double。函数名是max。故答案是doublemax。

34.99解析:本题中首先将宏替换掉,则表达式为a=++k+1*k+1=4+1*4+1=9,故最后输出a的值为9。

35.10211021解析:此题主要考查了变量和函数的存储类别。函数的存储范围是从定义它的位置到文件结束为止,如果想在函数定义之前使用函数,需要先对函数进行声明。静态局部变量的生存期为整个程序的运行期间,作用域却为定义它的函数或局部范围内。

36.structlist*q

37.类类

38.D

39.int*p*p或p[0]int*p\r\n*p或p[0]

40.p!=NULLp->nextp!=NULL\r\np->next解析:结构体变量构成链表需要每个节点中都有一个指向下一个结点的指针,就像本题中的next指针一样。注意:掌握可以对链表进行的操作。

41.D解析:streat(s1,s2)是把s2字符串连接到s1字符串的末尾,要保证s1能容纳下连接后的字符串。

42.C解析:本题考查的是联合所占的存储空间。sizeof(t)=sizeof(double)*3=8*3=24。联合体所占的存储空间墩决于所占空间最大的成员所占的空间。

43.C解析:C语言的标识符的定义为:以字母或下划线开头的由字母、数字字符、下戈峨组成的字符串。而且标识符不能与关键字相同。

44.A解析:本题考查软件工程中测试的目的和方法。仅就软件测试而言,它的目的是发现软件的中的错误,但是,发现错误并不是最终目的,最终目的是通过测试发现错误之后还必须诊断并改正错误,这就是调试的目的。

由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的。因此,在软件测试阶段通常由其他人员组成测试小组来完成测试工作。因此,经过上述分析可知选项A的说法是正确的,而选项B、C、D的说法是错误的。

45.A解析:在函数fun1()中,首先将形参p的内容存入临时指针q中,然后使用—个while循环,当q所指内容不是字符串结束标志'\\0\'时,让q所指内容增1,然后将指针q增1指向下一个位置。所以函数fun1()实现的功能是:将传入字符串的所有字符自增1。主函数,指针p在被传入fun1()函数之前,初始化指向的是宁符数组a的第4个元素\'g\',所以最终输出的结果应该是Prohsbn。故应该选择A。

46.C

47.A解析:字符数组中可以存放字符串,但字符数组的长度并不是字符串的长度,字符串的长度是指字符数组中存放的有效字符个数,即\'\\0\',之前的字符数。字符数组s中依次存放的字符是:\'\\\\'1'4'1'\\141'a'b'c'\\t\',和最后一个字符串结束标记\'\\0\',故字符串的长度是9。

48.A解析:解答本题需了解3个知识点:①标识符是由字母、数字或下画线组成,并且它的第一个字符必须是字母或者下画线;②do是C语言中的一个关键字,不能再用做变量名和函数名:③C语言规定指数形式的实型常量e或E后面的指数必须是整数。

49.C解析:地址变量p指向的存储空间一定要明确,否则可能影响程序的正确性。

50.A解析:由于本题定义的是共用体,所以成员表列中的整型变量x与字符数组c共占用同一个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,c[1]位于高字节,所以x.i的值为266。

51.D解析:在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0;C语言规定,对于二维数组,只可以省略第1个方括号中的常量表达式,而不能省略第2个方括号中的常量表达式;赋的初值不能多于事先定义好的数组元素个数。

在选项D)赋值表达式中,对每一维的元素赋初值应用{},而不是()。

52.C解析:本题考查.do…while循环。在do…while循环中,当表达式的值为非零(真)时,执行循环,不能与其等价的是为零的表达式,即(exp==0)。

53.AA)【解析】数据模型描述的内容包含数据结构、数据操作和数据约束。

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

55.4

56.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。

57.B解析:本题考核的知识点是for循环次数的计算.本程序中for循环的次数为c-1+1共循环了c次,而每循环一次s的值加1,所以s的值为s+c.而最开始s的值为a,故4个选项中选项B符合题意.

58.D解析:本题考查数据结构中队列的基本知识。队列是一种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有先进先出的特性。在队列中,允许插入元素的一端叫做队尾,允许删除的一端则称为队头。这与日常生活中的排队是一致的,最早进入队列的人最早离开,新来的人总是加入到队尾。因此,本题中只有选项D的说法是正确的。

59.D解析:本题考查逗号表达式。逗号表达武的求解步骤是先求解表达式1,然后依次求解表达式2,直到表达式N的值。整个逗号表达式的值就足最后一个表达式N的值。(++x,y++)这个表达式的返回值是y++,先使用y的债,然后将y加1,所以输出第一个值为1。第二个输出的值为z+2=3+2=5。

60.B

61.C解析:数据库逻辑设计的主要工作是将E—R图转换成指定RDBMS中的关系模式。从E—R图到关系模式的转换是比较直接的。实体与联系都可以表示成关系,E—R图中属性也可以转

温馨提示

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

评论

0/150

提交评论