2021年湖北省荆门市全国计算机等级考试C语言程序设计_第1页
2021年湖北省荆门市全国计算机等级考试C语言程序设计_第2页
2021年湖北省荆门市全国计算机等级考试C语言程序设计_第3页
2021年湖北省荆门市全国计算机等级考试C语言程序设计_第4页
2021年湖北省荆门市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

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

文档简介

2021年湖北省荆门市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.在下列定义语句中,编译时会出现编译错误的是()。

A.chara=‘\x2d’;B.chara=‘\n’;C.chara=‘a’;D.chara=“aa”;

2.

3.函数fread(buffer,size,count,fp)中buffer代表的是()。

A.—个存储区,存放要读的数据项

B.一个整数,代表要读入的数据项总数

C.一个文件指针,指向要读的文件

D.—个指针,指向读入数据要存放的地址

4.有以下程序:#include<stdio.h>main(){inta=-2,b=0;while(a++++b);printf("%d,%d\n",a,b);}程序运行后的输出结果是()。A.1,3B.0,2C.0,3D.1,2

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

#include<stdio.h>

main()

{iuta=2,b=3,p;

p=f(a,B)

printf("%d",p);

}

intf(a,b)

{intc;

if(a>B)c=1;

e1Seif(a==B)c=0;

else(3=-1;

return(C);

}

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

6.

7.

8.若i和k都是int类型变量,有以下for语句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面关于语句执行情况的叙述中正确的是()。

A.循环体执行两次B.循环体执行一次C.循环体一次也不执行D.构成无限循环

9.众所周知数据结构中非常基本的树结构包括二叉查找树(BST)。当我们把如下序列:10,5,19,4,13,7,6,3,1按顺序建立一棵BST时,树的最大深度是?(令根节点深度为0,不执行平衡二叉树操作)()

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

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

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

11.以下语句中,正确制作电子邮件链接的是()。

12.采用邻接表存储的图的广度优先遍历算法类似于二叉树的()。A.A.先序遍历B.中序遍历C.后序遍历D.按层遍历

13.

14.计算机硬件组成中,CPU包含______。

A.控制器和存储器B.控制器和运算器C.控制器、运算器和存储器D.内存储器和外存储器

15.有以下程序main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}执行后的结果是______。A.输出字符a的ASCⅡ码B.输出字符c的ASCⅡ码C.输出字符cD.程序出错

16.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),

A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定

17.C语言函数中未指定存储类的变量,其隐含类别是()

A.autoB.staticC.registerD.void

18.有以下程序:

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

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

19.执行下列程序段后的输出结果是()。A.3B.2C.1D.4

20.判断一个顺序存储的队列sp为空的条件是()。

A.sp->front=sp->rear

B.sp->front=sp->rear+1

C.sp->front=sp->rear-1

D.sp->front=NULL

二、2.填空题(20题)21.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、【】遍历和后序遍历。

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

23.函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。

#include<stdio.h>

intsstrcmp(char*s,char*t)

{

while(*s&&*t&&*s==【】)

{s++;t++;}

rerurn【】;

}

24.设一棵完全二叉树共有500个结点,则在该二叉树中有【】个叶子结点。

25.下面程序的功能是【】。

doublesub(doublex,inty)

{intn;doublez;

for(n=1,z=x;n<y;n++)z=z*x;

returnz;}

main()

{doublea=2.0,b=4.0,c;

c=sub(a,b);printf("%f",c);}

26.下面能正确进行字符串赋值操作的是

27.以下程序中函数fun的功能是求出能整除x且不是偶数的务正整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。

请按题意,完成填空。

试题程序:

#include<stdio.h>

voidfun(intx,intpp[],int*n)

{inti,j=0;

【】;

if(x%i==0)pp[j++]=i;

【】;

}

main()

{intx,aa[1000],n,i;

printf("\nPleaseenteranintegernumber:\n");

scanf("%d",&x);

fun(x,aa,&n);

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

printf("\n");

}

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

29.下面程序的输出结果是【】。

#defineMAX3

inta[MAX];

main()

{fun1();{un2(A);printf("\n");}

funl()

{intk,t=0;

for(k=0;k<MAX;k++,t++)a[k]=t+t;

}

fun2(intb[])

{intk;

for(k=0;k<MAX;k++)printf("%d",*(b+k));

}

30.有以下程序:

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;

*q=*(p+5);

printf("%d%d\n",*p,*q);

}

程序运行后的输出结果是【】。

31.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

请填空。

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

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

#include<stdio,h>

voidswap(inty)

{intt;

t=x;x=y;y=t:printf("%d%d",x,y);

}

main()

{ihta=3,b=4:

swap(a,b);prinff("%d%d",a,b);

}

33.阅读下面程序段,则执行后输出的结果是【】。

#include"stdio.h"

main()

{charfun(char,int);

chara=′A′;

intb=13;

a=fun(a,b);

putchar(a);}

charfun(chara,intb)

{chark;

k=a+b;

returnk;}

34.执行以下程序后sum的值是【】。

main()

{

inti,sum;

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

sum+=i;

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

}

35.执行下面程序段后,k的值是【】。

r=1;n=203;k=1

do{k*=n%10*r;n/=10;r++;}while(n);

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

voidfun(int*n)

{while((*n))

printf("%d",(*n)--);

}

main()

{inta=10;

fun(&a);

}

37.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于【】的联系。

38.以下程序的运行结果是【】。

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

STUa={"Zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%1d%s\n",d.sno,p->name);

}

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

#include<stdioh>

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)primf("\n");

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

}

}

40.有以下程序:

voidf(inty,int*x)

{y=y+*x;*x=*x+y;}

main()

{intx=2,y=4;

f(y,&x);

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

}

执行后输出结果是上【】。

三、1.选择题(20题)41.main(){floatx=123.456;printf("%-5.2f\n",x);}以上程序输出的结果是______。

A.123.4B.123.5C.123.45D.123.46

42.若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

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

A.用户所定义的标识符允许使用关键字

B.用户所定义的标识符应尽量做到“见名知意”

C.用户所定义的标识符必须以字母或下划线开头

D.用户定义的标识符中,大、小写字母代表不同标识

44.下面语句中不能定义一个数组,元素值依次分别为1,1,1,0,0的是______。

A.staticinta[5]={1,1,1,0,0};

B.staticinta[5]={1,1,1};

C.staticinta[]={1,1,1,0,0};

D.staticinta[5]={1*2,0*3};

45.C语言中各种基本数据类型的存储空间长度排列为()。

A.char≤long≤int≤float≤double

B.double≤float≤long≤int≤char

C.char≤int≤long~float≤double

D.float≤int≤long≤char≤double

46.以下程序的运行结果为#include"stdio.h"main(){intm,n;for(m=0,n=10;m<n;m+=3,n--);printf("%d,%d\n",m,n);}

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

47.下列能正确进行字符数组赋初值的语句是______。

A.chart[5]={'a','b','c','d','e'};

B.char*t;t="abcde";

C.chart[5]="abcde";

D.chart[5];t="abcd";

48.下列工具中为需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

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

A.控制程序的执行顺序B.模块之间的调用关系C.数据的流向D.程序的组成成分

50.下列程序段的输出结果是______。voidfun(int*x,int*y){pnntf("%d%d",*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}

A.2143B.1212C.1234D.2112

51.请读程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的输出结果是______。

A.正数B.负数C.零D.不确定的值

52.有以下程序#include<stdio.h>intf(intx){inty;if(x==0||x==1)return(3);y=x*x-f(x-2);returny;}main(){intz;z=f(3);printf("%d\n",z);}程序的运行结果是

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

53.下面程序的执行结果是______。#defineMAX10nta[MAX],i;main(){printf("\n");sub1();sub3(A);sub2();sub3(A);}sub1(){for(i=0;i<1MAX;i++)a[i]-i+i;}sub2(){inta[MAX],i,max;max=5;for(i=0;i<max;i++)a[i]=i;}sub3(inta[]){inti;for(i=0;i<MAX;i++)printf("%d",a[i]);printf("\n");}

A.02468101214161801234

B.01234024681012141618

C.012345678901234

D.024681012141618024681012141618

54.若变量已正确定义,要求通过scanf("%c%d%c%d,&c1,&a,&c2,&b)语句给变量a和b分别赋32和45,给变量c1和c2分别赋字符A和B;下列选项中数据从第1列开始输入,正确的输入形式是()。

A.A32<CR>B.A45<CR>B45<CR>B32<CR>C.A32B45<CR>D.A32B45<CR>

55.关系数据库的概念模型是______的集合。

A.关系模型B.关系模式C.关系子模式D.存储模式

56.以下程序的功能是:建立一个带有头结点的甲—向链表,并将存储在数组中的字符依次转存到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项。

#include<stdlib.h>

structnode

{chardata;structnode*next:};

(1)CreatList(char*s)

{

structnode*h,*p,*q;

h=(structnode*)mallocsizeof(structnode));

p=q=h;

while(*s!='\0')

{

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

p->data=(2);

q->next=p;

q-(3);

S++;

}

p->next='\0';

returnh;

}

main()

{

charstr[]="linklist";

structnode*head;

head=CreatList(str);

}

(1)

A.char*B.structnodeC.structnode*D.char

57.在面向对象的程序设计中,下列叙述错误的是()。

A.任何一个对象构成一个独立的模块

B.一个对象不是独立存在的实体,各个对象之间有关联,相互依赖

C.下一层次的对象可以继承上一层次对象的某些属性

D.上述三种说法都正确

58.设有下列二叉树:

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

A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA

59.数据库是______的集合,它具有统一的结构形式并存放于统一的存储介质内,可被各个应用程序所共享。

A.视图B.消息C.数据D.关系

60.若有语句:char*line[5];以下叙述中正确的是()。

A.定义line是一个数组,每个数组元素是一个基类型为char的指针变量

B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C.定义line是一个指针数组,语句中的.号称为求地址运算符

D.定义line是一个指向字符型函数的指针

四、选择题(20题)61.

下列程序的输出结果是()。

#include<stdio.h>

main()

{inti,S=0;

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

if(!(i%2)&&!(i%3))s+=i;

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

}

A.4B.39C.45D.6

62.下面对C语言的描述中,正确的是

A.函数一定有返回值,否则无法使用函数

B.C语言函数既可以嵌套定义又可以递归调用

C.在C语言中,调用函数时,只能将实参的值传递给形参

D.C语言程序中有调用关系的所有函数都必须放在同一源程序文件中

63.

64.HTTP协议是运行于()协议之上的应用层协议。

A.FTPB.SMTPC.TCPD.UDP

65.下列描述错误的是()。

A.继承分为多重继承和单继承

B.对象之间的通信靠传递消息来实现

C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征

D.类是具有共同属性、共同方法的对象的集合

66.有以下程序:

voidmain()

{intk=0,n=0;

while(k<5)

{switch(k)

{default:break;

case1:n+=k;

case2:

case3:n+=k;

}

k++;

}

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

}

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

A)0B)4

C)6D)7

67.软件设计中衡量模块独立性的度量标准是()。

A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法

68.有以下程序程序的运行结果是()。

69.

70.

71.若有说明:inta[3][4]={0};,则下面正确的叙述是

A.只初始化了第一个元素,即a[0][0]可得到初值0

B.此初始化语句不正确

C.数组a中各元素都可得到初值,但其值不一定为0

D.数组a中每个元素均可得到初值0

72.设有以下语句:

inta=1,b=2,c;c=a^(b<;<;2);执行后,c的值为()。

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

73.某循环队列的存储空间为Q(1:m),初始状态为front=rear=m。现经过一系列的入队操作和退队操作后,front=m一1,real"=m,则该循环队列中的元素个数为()。

A.m一1B.1C.mD.0

74.假定已建立以下链表结构,且指针P和q已指向如图所示的结点:

则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是()。

A.p一>next=q一>next;flee(q);

B.p=q一>next;free(q);

C.p=q;free(q);

D.(*p).next=(幸q).next;ffee(p);

75.以下不能输出字符A的语句是()。(注:字符A的ASCIl码值为65,字符a的ASCIl码值为97)

76.为了提高软件的独立性,模块之间最好是()。

A.控制耦合B.公共耦合C.内容耦合D.数据耦合

77.下面概念中,不属于面向对象方法的是()。A.对象B.继承C.类D.过程调用

78.若有定义:doublea=22;inti=0,k=18;,则不符合c语言规定的赋值语句是()。

A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;

79.

80.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)

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

六、程序设计题(1题)82.实现字符串拷贝的函数strcpy为()。

参考答案

1.DD选项中将字符串常量“aa”赋给字符变量a是错误的。故本题答案为D选项。

2.B

3.Dfread函数用来读二进制文件,其中buffer是数据块的指针,它是内存块的首地址,输入的数据存入此内存中;size表示每个数据块的字节数;count用来指定每读一次读入的数据块个数;fp是文件指针,指向要读的文件。选项A、B、C错误。本题答案为D选项。

4.D输出的结果是:-1,1\r\n0,2\r\n1,2

5.A解析:本题考查ifelse语句。在intf(a,B)中:第一个if语句,先判断条件,发现a>b条件不成立,则执行与其配对的else语句:第二个if语句,先判断条件,发现a==b条件不成立,则执行与其配对的else语句,c=-1。

6.D

7.B

8.D此题考查的是基本的循环,答案为D。

9.B

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

11.C

12.D

13.D

14.B

15.D解析:此题中s是—个字符数组,而字符数纽是在编绎时为它分配内存单元的,即此字符数组的地址在编译时是确定的,所以对此地址变量并不能赋值,故语句“s+=2;”错误,故程序出错。

16.D解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo\u3000C\u30002.0中,int占2个字节,但在VisualC++6.0(VC6可以用做C语言编译器)中占4个字节。故本题应该选择D。

17.A

18.C该程序中int8pl=&a,+p2=&b,4P=&c;指定义三个指针变量,并赋值,即使pl指向a;p2指向b;p指向c。+P=。pl$(+p2)。;该条语句是给P所指的存储单元c赋值,就是pl所指的存储单元的值,即a的值,与p2所指的存储单元b的值相乘,也就是c=a+b,等价于c=1·3=3;因此C选项正确。‘

19.A

20.A

21.中序中序解析:在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历.前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左了树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树:并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然光遍历右子树,然后访问根结点,最后遍历左子树。

22.黑盒软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方法一般有两类:黑盒测试法和白盒测试法。在使用黑盒法设计测试实例时,测试人员将程序看成一个“黑盒”,即不关心程序内部是如何实现的,只是检查程序是否符合它的“功能说明”,所以使用黑盒法设计的测试用例完全是根据程序的功能说明来设计的。

23.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:比较两个字符串的大小方法是:从第一个字符开始依次向后比较,若对应的字符相等则接着比较下一个字符,一直到两个字符串中对应字符不等,或者有一个为“\\0”,此对应字符的ASCII码大的字符串就大。故循环条件是*s和*t不为“\\0”,且*s和*t相同,第一处应填“*t”或其他等价形式。根据题意可知第二处应填“*s-*t”或其等价形式。

24.250250解析:所谓完全二叉树是指除最后一层外,每—层上的结点数均达到最大值;在最后—层上只缺少右边的若干结点。具有n个结点的完全二叉树,其父结点数为int(n/2),而叶子结点数等于总结点数减去父结点数。本题n=500,故父结点数等于int(500/2)=250,叶子结点数等于500-25=250。

25.本程序的功能是求a的b次方本程序的功能是求a的b次方

26.C

27.for(i=1;i<=x;i+=2)*n=jfor(i=1;i<=x;i+=2)*n=j解析:本题题干信息是求能整除x且不是偶数的所有正整数。循环语句中i从1开始且每次增2,所以i始终是奇数,语句,n=j;是记录符合题意的整数的个数。

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

29.24

30.运行后报错运行后报错解析:指针q没有指向确定的存储单元,故不能赋值。

31.x+8sin(x)x+8,sin(x)解析:考查考生对函数调用相关知识的了解。用x+8代替函数fun(doublex)中形式参数x;用sin(x)代替函数fun(doublex)中形式参数x。

32.43344334解析:程序将变量a,b的值传给函数swap的形参x,y,并在函数中对x,y的值进行交换,所以在函数swap中输出x,y的值4,3,由于c程序的函数是僧传递,实参a,b的值不会随形参x,y的改变而改变,所以在主函数中输出的a,b的值为3,4。

33.NN解析:函数说明语句中的类型名必须与函数返回值的类型一致。本题实现的是在字符'A'的ASCII码值上加上一个常数,使之变成另一个ASCII码值,从而输出字符。

34.1515解析:程序的功能是求1、2、3、4、5的和即15。

35.00解析:本题考查的是do厀hile循环。第一次执行循环体,因为k=1,r=1,n=20,所以k=1*20%10*1=0,n=20/10=2,r=2;第二次执行循环体,k=0*2%10*2=0,n=10/10=1,r=3;第三次执行循环体,k=0*1%10*3=0,n=1/10=0,r=4,所以k的值为0。

36.1.09877e+010

37.一对多(或1∶N)一对多(或1∶N)解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1∶1)的联系、一对多(1∶N)或多对一(N∶1)的联系和多对多(N∶N)的联系。

38.2002Shangxian2002Shangxian解析:本题中首先定义一个结构体类型STU,该结构体由一个长度为10的字符型数组、一个long型变量和一个float型变量组成。接着在主函数中用STU定义了4个结构体变量a、b、c、d,并且给a、b、c赋初值,然后定义了一个结构体指针p,并让它指向变量do将变量a的值赋给变量d,接着通过两个if语句比较结构体变量a、b、c的成员name大小。第一个if语句将结构体变量和结构体变量中较小的那个赋值给结构体变量d,第二个if语句将结构体变量和结构体变量较大的那个赋给结构体变量do比较通过函数strcmp实现。strcmp()函数有两个参数,分别为被比较的两个字符串。如果第一个字符串大于第二个字符串返回值大于0,若第一个小于第二个返回值小于0,相等时返回值为0。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串,如果遇到某一个字符小,该字符所在的字符串就是较小的字符串。程序中第一个if语句strcmp(,)>0为真,故将b的值赋给d,第二个if语句strcmp(,)>0为假,故不执行后面的语句,最后d的值为b的值,因此输出d.sn0和p->name的值为2002Shangxian。

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

40.8484解析:函数f(y,*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参的y的值将不改变,而实参x的值将改变,故最后输出的y的值为4,而x的值为8。

41.D解析:f格式符,用来输出实数,以小数形式式输出。“%-m.nf”的含义是:输出数据共占m列,其中n位小数,如果输出位数小于m,则右端补空恪。如果总长度大于列数,则按实际情况四舍五入输出。

42.D解析:a是一个2行3列的二维数组,行下标和列下标都是从0开始的,数组中的元素为a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下标最大值为1,列下标最大值为2,因此选项A、B、C都是错误的引用。计算选项D中数组元素的下标后得a[0][0],为正确的引用。

43.A解析:在C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,凡是要求标识符的地方都必须按此规则命名。在C语言的标识符中,大写字母和小写字母被认为是两个不同的字符。在选择标识符时,应注意做到“见名知义”,即选择具有一定含义的英文单词或汉语拼音作为标识符,以增加程序的可读性。

44.D解析:不可能用表达式的方式来给数组元素一一赋值。

45.C解析:在TurboC2.0环境中,char占1个字节、int占2个字节、long占4个字节、float占4个字节、double占8个字节。所以本题的正确答案为C。

46.C解析:for后一对括号中的表达式可以是任意有效的C语言表达式。该题目的循环体部分为空语句,循环控制条件为m<n,每一次m增3,n减1,每当循环体执行结束时,循环控制变量m,n就会分别被增3和减1。

47.A解析:可以赋初值的字符串一定是用字符数组存储的,选项B不对,它是将字符指针变量指向一个字符串常量;选项C中字符数组t需要6个字节的存储空间:选项D是错误的形式,数组名是常量。

48.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。

49.C解析:数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。

50.A解析:本题中函数传递的是变量的地址,如果形参在函数中发生改变,相刘应的实参也就有了改变。

51.A解析:本题考查字符串比较函数strcmp()的应用。strcmp(s1,s2)是中比较函数,当s1>s2时返回值为正数,当s1<s2时返回值为负数,当s1=s2时返回值为零。本题中s1,s2分别表示两个串中第一个字符的地址,s1++和s2++是将指针指向串的第二个字符,指针变量s1指向的是串“bCdEf”的首地址,即字符b的地址,而指针变量s2指向的是字符'B'的地址。而在字符串比较中,宁符串大小的确定是各个字符串相应位置字符的ASCII码值的大小决定的,字符'B'的ASCII码值为66,字符“b”的ASCII码值为98,所以s1>s2,返回值为正数。

52.C解析:函数intf(intx)是一个递归函数调用,当x的值等于0或1时,函数值等于3,其他情况下y=x2-f(x-2),所以在主函数中执行语句z=f(3)时,y=3*3-f(3-2)=9-f(1)=9-3=6。

53.D解析:函数sub1给全局作用范围内数组a(长度为10)的每个元素赋值,函数sub2中数组a仅在本函数范围内有效,长度也是10,但仅给前5个元素赋值,main函数调用sub3时,传递数组地址均是全局作用范围内数组a的地址,因此两次调用打印的结果相同。

54.D解析:本题考查scanf函数的基本格式。当需要从键盘上输入数据时,输入的数值之间需要有间隔符(空格符号、制表符号、回车符号),间隔符号的使用数量不限。直到按下<Enter>键,scanf函数才会接受从键盘输入的数据。

55.B解析:本题考核关系数据库的概念模型。数据库的概念模型体现了数据之间的关系,它是各种数据之间相互关系的集合。关系数据库的概念模型是关系模式的集合。关系子模式是指关系数据库模式中用户所见到的那部分数据模式描述。

56.C

57.B解析:在面向对象程序设计中,对象是可以独立存在的实体。

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

59.C解析:数据库是数据的集合,其中的数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构,以建立数据之间的内在联系与复杂的关系-故答案为C。

60.A解析:由于运算符[]优先级比*高,所以line是一个数组,每个数组元素是一个基类型为char的指针变量。

61.D

\nif语句的条件是当i既是3的倍数又是2的倍数时成立,所以此程序实现的功能是将10以内既是3的倍数又是2的倍数的数相加。

\n

62.CA选项“函数一定有返回值,否则无法使用函数”,该选项是错误的。使用一个函数并不一定要使用该函数的返回值。C语言中用void定义“无类型”的函数,即禁止在调用函数中使用被调用函数的返回值。

B选项“C语言函数既可以嵌套定义,又可以递归调用”,该选项是错误的。嵌套定义是指在定义一个函数时,其函数体内又包含另一个函数的完整定义,这个内嵌的函数只能被包含它的函数所调用。而C语言规定每个函数都是平行、独立的,不允许嵌套定义的情况出现。C语言不能嵌套定义函数,但能够嵌套调用函数,也就是在调用一个函数的过程中,又调用另一个函数。C语言允许函数的递归调用,即在调用一个函数的过程中又直接或间接地调用该函数本身。

C选项“在C语言中,调用函数时,只能将实参的值传递给形参”,该选项是正确的。函数的形参是指定义函数时函数名后面括弧中的变量名,实参是指在主调函数中调用一个函数时,函数名后面括弧中的参数。调用时将实参的值赋给形参,形参的修改不会影响实参的值。注意,这里仅仅指的是传递数值,如果以地址的方式传递参数,则形参的改变也会改变实参的值。

D选项“C语言程序中有调用关系的所有函数都必须放在同一源程序文件中”,该选项是错误的。被调用的函数可以是库函数或用户自己定义的函数,使用库函数时,应该在本文件开头用“#include”命令将调用有关库函数时所需用到的信息“包含”到本文件中,使用用户自己定义的函数时,主调函数与被调函数要在同一个文件下,并要在主调函数中对被调函数进行声明。

63.D

64.C

65.C解析:对象的封装性是指从外面看只能看到对象的外部特性;而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。

66.D首先k=0,执行default,退出switch,k++,执行case1,2,3后,n=2,k++,执行case2,3,n=4,k++,执行case3,n=7.执行k++,执行default,k++,退出循环。

67.C耦合性与内聚性是模块独立与否的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内蒙、低耦合,即减弱模块之间的耦合性而提高模块内的内聚性,这样有利于提高模块的独立性。

68.A本题主要考查的是函数。在fun函数中,首先将形参nl和n2分别赋给局部变量i和j,然后使用]while循环,交换s[i]和s[j]的内容,并使i增1、j减1,直到i不小于j为止。所以该函数实现的功能是:对形参指针s所指的一系列元素,从第nl位到第n2位进行逆序。主函数中,连续调用T3次fun函数依次对数组a的第0-3位、第4~9位和第0~9位进行了逆序。对0~3位逆序后,数组。的内容是{4,3,2,1,5,6,7,8,9,0};再对4~9位逆序后是I4,3,2,l,0,9,8.7,6,5};最后对0~9位逆序后是I5,6。’7,8,9,0,l,2。3,4}。

69.C

70.B

71.D二维数组进行初始化时可以按照分段进行赋值,将每一行看成一段,每一段的个数为列数。也可以按行连续赋值,不用分段,将所有的数值写成一行,系统会在数组每一行的元素个数与列数相同时,从下一行开始继续赋值。也可以对部分数组赋初值,未赋初值的元素自动取0。题目中可以看成是对数组按行进行连续赋值,并且只给出了第一行第一列的数值0,对于未赋值的元素,系统自动取0,故整个数组中的每个元素都可以取初值0。

72.Bb为2,二进制为00000010,执行左移两位操作后为000011300,然后与a00000001做异或操作结果为00001001.即十进制的9。

73.B循环队列长度为m,由初始状态为front=real'=ITl可知此时循环队列为空。入队运算时,首先队尾指针(rear)进1(即rear+I),然后在lear指针指向的位置插入新元素。特别的,当队尾指针lear=m+1时,置l'ear=1。退队运算时,排头指针(front)进1(即front+1),然后删除front指针指向的位置上的元素,当排头指针front=m+1时,置front=1。从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,则该循环队列中的元素个数为m一(m一1)=1。故选择B选项。

74.A本题考查删除链表中的结点操作,其方法是将要删除结点的上个结点的下个结点指向要删除结点的下个结点,然后释放该要删除结点,所以选项A正确。

75.BB选项输出的格式为%d,即为整型格式,所以输出字符A的ASCI1码值65,而不是字符A。由于大写字母比与其对应的小写字母的ASCI1码值小32,所以A正确。字符A的ASCI1码值就是65,所以以%C格式输出可以输出字符A,所以c正确。由于字符A的ASCI1码值比字符B的小1,所以D正确。

76.D在程序设计中,各模块间的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚、低耦合,以有利于提高模块的独立性。耦合性与内聚性是模块独立的两个定性标准,是互相关联的。

77.D[答案]D

[考点]软件工程基础

[评析]

面向对象=对象+类+继承+通过消息的通信

对象:一组属性及其上的操作的封装体

类:一组有相同属性和操作的对象的集合

继承:一个类为另一个类上的扩充的方式,子类继承父类,主要目的是代码复用

消息:对象间通信的手段

D是结构化程序设计或过程式(函数式)语言中的,一般的面向对象程序设计语言兼容这种方式,但不是其特征,故最佳选项为D

78.B取模运算符“%”,二元运算符,具有左结合性,参与运算的量均为整型。选项B中的a变量是doable实型,所以8不符合规定。

79.B

80.B本题主要考查C语言合法语句的定义。

在选项A中,a==1不是一个合法的语句,因为它没有语句结束标识符“;”,不能说是一条语句,如果作为一个表达式,它是正确的。

在选项B中,由于变量i已被正确定义并有初值,“++i;”是正确的语句。

在选项C中,由于正确的赋值语句中,赋值符号的左边不能为常量或表达式,而右边不能为变量或表达式,很明显,“a=a++=5;”违背了赋值语句的原则。

在选项D中,“a=int(i);”语句是不正确的,在C语言中没有这种表示形式,如果是想将变量i强制转换为整型的操作,应该为“a=(int)i;”。

81.

82.2021年湖北省荆门市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.在下列定义语句中,编译时会出现编译错误的是()。

A.chara=‘\x2d’;B.chara=‘\n’;C.chara=‘a’;D.chara=“aa”;

2.

3.函数fread(buffer,size,count,fp)中buffer代表的是()。

A.—个存储区,存放要读的数据项

B.一个整数,代表要读入的数据项总数

C.一个文件指针,指向要读的文件

D.—个指针,指向读入数据要存放的地址

4.有以下程序:#include<stdio.h>main(){inta=-2,b=0;while(a++++b);printf("%d,%d\n",a,b);}程序运行后的输出结果是()。A.1,3B.0,2C.0,3D.1,2

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

#include<stdio.h>

main()

{iuta=2,b=3,p;

p=f(a,B)

printf("%d",p);

}

intf(a,b)

{intc;

if(a>B)c=1;

e1Seif(a==B)c=0;

else(3=-1;

return(C);

}

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

6.

7.

8.若i和k都是int类型变量,有以下for语句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面关于语句执行情况的叙述中正确的是()。

A.循环体执行两次B.循环体执行一次C.循环体一次也不执行D.构成无限循环

9.众所周知数据结构中非常基本的树结构包括二叉查找树(BST)。当我们把如下序列:10,5,19,4,13,7,6,3,1按顺序建立一棵BST时,树的最大深度是?(令根节点深度为0,不执行平衡二叉树操作)()

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

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

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

11.以下语句中,正确制作电子邮件链接的是()。

12.采用邻接表存储的图的广度优先遍历算法类似于二叉树的()。A.A.先序遍历B.中序遍历C.后序遍历D.按层遍历

13.

14.计算机硬件组成中,CPU包含______。

A.控制器和存储器B.控制器和运算器C.控制器、运算器和存储器D.内存储器和外存储器

15.有以下程序main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}执行后的结果是______。A.输出字符a的ASCⅡ码B.输出字符c的ASCⅡ码C.输出字符cD.程序出错

16.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),

A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定

17.C语言函数中未指定存储类的变量,其隐含类别是()

A.autoB.staticC.registerD.void

18.有以下程序:

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

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

19.执行下列程序段后的输出结果是()。A.3B.2C.1D.4

20.判断一个顺序存储的队列sp为空的条件是()。

A.sp->front=sp->rear

B.sp->front=sp->rear+1

C.sp->front=sp->rear-1

D.sp->front=NULL

二、2.填空题(20题)21.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、【】遍历和后序遍历。

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

23.函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。

#include<stdio.h>

intsstrcmp(char*s,char*t)

{

while(*s&&*t&&*s==【】)

{s++;t++;}

rerurn【】;

}

24.设一棵完全二叉树共有500个结点,则在该二叉树中有【】个叶子结点。

25.下面程序的功能是【】。

doublesub(doublex,inty)

{intn;doublez;

for(n=1,z=x;n<y;n++)z=z*x;

returnz;}

main()

{doublea=2.0,b=4.0,c;

c=sub(a,b);printf("%f",c);}

26.下面能正确进行字符串赋值操作的是

27.以下程序中函数fun的功能是求出能整除x且不是偶数的务正整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。

请按题意,完成填空。

试题程序:

#include<stdio.h>

voidfun(intx,intpp[],int*n)

{inti,j=0;

【】;

if(x%i==0)pp[j++]=i;

【】;

}

main()

{intx,aa[1000],n,i;

printf("\nPleaseenteranintegernumber:\n");

scanf("%d",&x);

fun(x,aa,&n);

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

printf("\n");

}

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

29.下面程序的输出结果是【】。

#defineMAX3

inta[MAX];

main()

{fun1();{un2(A);printf("\n");}

funl()

{intk,t=0;

for(k=0;k<MAX;k++,t++)a[k]=t+t;

}

fun2(intb[])

{intk;

for(k=0;k<MAX;k++)printf("%d",*(b+k));

}

30.有以下程序:

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;

*q=*(p+5);

printf("%d%d\n",*p,*q);

}

程序运行后的输出结果是【】。

31.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

请填空。

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

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

#include<stdio,h>

voidswap(inty)

{intt;

t=x;x=y;y=t:printf("%d%d",x,y);

}

main()

{ihta=3,b=4:

swap(a,b);prinff("%d%d",a,b);

}

33.阅读下面程序段,则执行后输出的结果是【】。

#include"stdio.h"

main()

{charfun(char,int);

chara=′A′;

intb=13;

a=fun(a,b);

putchar(a);}

charfun(chara,intb)

{chark;

k=a+b;

returnk;}

34.执行以下程序后sum的值是【】。

main()

{

inti,sum;

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

sum+=i;

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

}

35.执行下面程序段后,k的值是【】。

r=1;n=203;k=1

do{k*=n%10*r;n/=10;r++;}while(n);

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

voidfun(int*n)

{while((*n))

printf("%d",(*n)--);

}

main()

{inta=10;

fun(&a);

}

37.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于【】的联系。

38.以下程序的运行结果是【】。

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

STUa={"Zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%1d%s\n",d.sno,p->name);

}

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

#include<stdioh>

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)primf("\n");

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

}

}

40.有以下程序:

voidf(inty,int*x)

{y=y+*x;*x=*x+y;}

main()

{intx=2,y=4;

f(y,&x);

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

}

执行后输出结果是上【】。

三、1.选择题(20题)41.main(){floatx=123.456;printf("%-5.2f\n",x);}以上程序输出的结果是______。

A.123.4B.123.5C.123.45D.123.46

42.若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

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

A.用户所定义的标识符允许使用关键字

B.用户所定义的标识符应尽量做到“见名知意”

C.用户所定义的标识符必须以字母或下划线开头

D.用户定义的标识符中,大、小写字母代表不同标识

44.下面语句中不能定义一个数组,元素值依次分别为1,1,1,0,0的是______。

A.staticinta[5]={1,1,1,0,0};

B.staticinta[5]={1,1,1};

C.staticinta[]={1,1,1,0,0};

D.staticinta[5]={1*2,0*3};

45.C语言中各种基本数据类型的存储空间长度排列为()。

A.char≤long≤int≤float≤double

B.double≤float≤long≤int≤char

C.char≤int≤long~float≤double

D.float≤int≤long≤char≤double

46.以下程序的运行结果为#include"stdio.h"main(){intm,n;for(m=0,n=10;m<n;m+=3,n--);printf("%d,%d\n",m,n);}

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

47.下列能正确进行字符数组赋初值的语句是______。

A.chart[5]={'a','b','c','d','e'};

B.char*t;t="abcde";

C.chart[5]="abcde";

D.chart[5];t="abcd";

48.下列工具中为需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

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

A.控制程序的执行顺序B.模块之间的调用关系C.数据的流向D.程序的组成成分

50.下列程序段的输出结果是______。voidfun(int*x,int*y){pnntf("%d%d",*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}

A.2143B.1212C.1234D.2112

51.请读程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的输出结果是______。

A.正数B.负数C.零D.不确定的值

52.有以下程序#include<stdio.h>intf(intx){inty;if(x==0||x==1)return(3);y=x*x-f(x-2);returny;}main(){intz;z=f(3);printf("%d\n",z);}程序的运行结果是

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

53.下面程序的执行结果是______。#defineMAX10nta[MAX],i;main(){printf("\n");sub1();sub3(A);sub2();sub3(A);}sub1(){for(i=0;i<1MAX;i++)a[i]-i+i;}sub2(){inta[MAX],i,max;max=5;for(i=0;i<max;i++)a[i]=i;}sub3(inta[]){inti;for(i=0;i<MAX;i++)printf("%d",a[i]);printf("\n");}

A.02468101214161801234

B.01234024681012141618

C.012345678901234

D.024681012141618024681012141618

54.若变量已正确定义,要求通过scanf("%c%d%c%d,&c1,&a,&c2,&b)语句给变量a和b分别赋32和45,给变量c1和c2分别赋字符A和B;下列选项中数据从第1列开始输入,正确的输入形式是()。

A.A32<CR>B.A45<CR>B45<CR>B32<CR>C.A32B45<CR>D.A32B45<CR>

55.关系数据库的概念模型是______的集合。

A.关系模型B.关系模式C.关系子模式D.存储模式

56.以下程序的功能是:建立一个带有头结点的甲—向链表,并将存储在数组中的字符依次转存到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项。

#include<stdlib.h>

structnode

{chardata;structnode*next:};

(1)CreatList(char*s)

{

structnode*h,*p,*q;

h=(structnode*)mallocsizeof(structnode));

p=q=h;

while(*s!='\0')

{

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

p->data=(2);

q->next=p;

q-(3);

S++;

}

p->next='\0';

returnh;

}

main()

{

charstr[]="linklist";

structnode*head;

head=CreatList(str);

}

(1)

A.char*B.structnodeC.structnode*D.char

57.在面向对象的程序设计中,下列叙述错误的是()。

A.任何一个对象构成一个独立的模块

B.一个对象不是独立存在的实体,各个对象之间有关联,相互依赖

C.下一层次的对象可以继承上一层次对象的某些属性

D.上述三种说法都正确

58.设有下列二叉树:

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

A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA

59.数据库是______的集合,它具有统一的结构形式并存放于统一的存储介质内,可被各个应用程序所共享。

A.视图B.消息C.数据D.关系

60.若有语句:char*line[5];以下叙述中正确的是()。

A.定义line是一个数组,每个数组元素是一个基类型为char的指针变量

B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C.定义line是一个指针数组,语句中的.号称为求地址运算符

D.定义line是一个指向字符型函数的指针

四、选择题(20题)61.

下列程序的输出结果是()。

#include<stdio.h>

main()

{inti,S=0;

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

if(!(i%2)&&!(i%3))s+=i;

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

}

A.4B.39C.45D.6

62.下面对C语言的描述中,正确的是

A.函数一定有返回值,否则无法使用函数

B.C语言函数既可以嵌套定义又可以递归调用

C.在C语言中,调用函数时,只能将实参的值传递给形参

D.C语言程序中有调用关系的所有函数都必须放在同一源程序文件中

63.

64.HTTP协议是运行于()协议之上的应用层协议。

A.FTPB.SMTPC.TCPD.UDP

65.下列描述错误的是()。

A.继承分为多重继承和单继承

B.对象之间的通信靠传递消息来实现

C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征

D.类是具有共同属性、共同方法的对象的集合

66.有以下程序:

voidmain()

{intk=0,n=0;

while(k<5)

{switch(k)

{default:break;

case1:n+=k;

case2:

case3:n+=k;

}

k++;

}

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

}

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

A)0B)4

C)6D)7

67.软件设计中衡量模块独立性的度量标准是()。

A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法

68.有以下程序程序的运行结果是()。

69.

70.

71.若有说明:inta[3][4]={0};,则下面正确的叙述是

A.只初始化了第一个元素,即a[0][0]可得到初值0

B.此初始化语句不正确

C.数组a中各元素都可得到初值,但其值不一定为0

D.数组a中每个元素均可得到初值0

72.设有以下语句:

inta=1,b=2,c;c=a^(b<;<;2);执行后,c的值为()。

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

73.某循环队列的存储空间为Q(1:m),初始状态为front=rear=m。现经过一系列的入队操作和退队操作后,front=m一1,real"=m,则该循环队列中的元素个数为()。

A.m一1B.1C.mD.0

74.假定已建立以下链表结构,且指针P和q已指向如图所示的结点:

则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是()。

A.p一>next=q一>next;flee(q);

B.p=q一>next;free(q);

C.p=q;free(q);

D.(*p).next=(幸q).next;ffee(p);

75.以下不能输出字符A的语句是()。(注:字符A的ASCIl码值为65,字符a的ASCIl码值为97)

76.为了提高软件的独立性,模块之间最好是()。

A.控制耦合B.公共耦合C.内容耦合D.数据耦合

77.下面概念中,不属于面向对象方法的是()。A.对象B.继承C.类D.

温馨提示

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

评论

0/150

提交评论