2021年四川省宜宾市全国计算机等级考试C语言程序设计_第1页
2021年四川省宜宾市全国计算机等级考试C语言程序设计_第2页
2021年四川省宜宾市全国计算机等级考试C语言程序设计_第3页
2021年四川省宜宾市全国计算机等级考试C语言程序设计_第4页
2021年四川省宜宾市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

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

文档简介

2021年四川省宜宾市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.已知intt=0;while(t=1){…}则以下叙述正确的是()。

A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式不合法D.以上说法都不对

2.针对二分查找算法,假设一个有序数组有136个元素,那么要查找到第10个元素,需要比较的元素为()

A.68,34,17,9,13,11,10

B.68,34,17,8,12,10

C.69,35,18,10

D.68,34,18,9,13,11,10

3.设fun函数的定义形式为voidfun(charch,floatx){…}则下列对函数fun的调用语句中,正确的是()。

A.fun("abc",3.0);

B.t=fun(D.16.5);

C.fun(65,2.8);

D.fun(32,32);

4.

5.以下叙述中正确的是______。

A.C语言比其他语言高级

B.C语言可以刁;用编译就能被计算机识别执行

C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D.C语言出现的最晚,具有其他语言的一切优点

6.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)

7.下列程序执行后的输出结果是()。main{charx=0xFFFF;printf("%d\n",x--);}A.-32767B.FFFEC.1D.32768

8.在Internet中,域名服务器的主要功能是实现()的转换。

A.IP地址到域名(主机名字)B.域名到IP地址C.主机IP地址和路由器IP地址之间D.路由器IP地址之问

9.若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是()。

A.EOFB.-1C.非零值D.0

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

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

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

C.C语言是-种结构化程序设计语言

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

11.

12.线性表(a1,a2,?,an)以链式方式存储,访问第i位置元素的时间复杂度为()。

A.O(0)B.O(1)C.O(n)D.O(n2)

13.带有头节点的单向链表head,其3个数据节点A、B、C的连接关系如下图所示:节点类型的定义为structlink{doubledt;structlink*next;};若指针P指向A节点,在不改变P指向的前提下,以下选项中不能访问C节点数据成员dt的表达式是()。A.*(*p).next->next->dt

B.p->next->next->dt

C.(*(*(*p).next).next).dt

D.(*(p->next->next)).dt

14.

15.设整型数i=5,则printf("%d",i+++++i);的输出为______。

A.10B.11C.12D.语法错误

16.第

11

若有定义:char*st="howareyou";下列程序段中正确的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

17.下列关于信息系统的叙述中,错误的是()。

A.广播电视是一种双向的、点到多点的信息交互系自

B.网络聊天是一种双向的,以信息交互为主要目的系统

C.电话是一种双向的、点对点的、以信息交互为主要的的系统

D.雷达是一种以感测和识别为主要目的的系统

18.设变量已正确定义并赋值,下列表达式中正确的是()。

A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

19.以下关于typedef的叙述错误的是()。A.用tyFedef可以增加新类型

B.typedef只是将已存在的类型用一个新的名字来代表

C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D.用typedef为类型说明一个新名,通常可以增加程序的可读性

20.若有如下形式的函数:intfun(inta[],int*p,intn){…}调用函数之前需要对函数进行声明,则以下选项中错误的是()。

A.intfun(int,int,int);

B.intfun(inta[],int*p,intn);

C.intfun(inta[],int*,int);

D.intfun(int[],int*,int);

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

main()

{

intx=0210;

printf("%X\n",x);

}

22.设有以下结构体类型:

structst

{charname[8];

intnum;

floats[4];

}student[50];

并且结构体数组student中的元素都已有值。若要将这些元素写到硬盘文件fp中,请将以下fwrite语句补充完整:

fwrite(student,【】,1,fp);

23.在面向对象方法中,类之间共享属性和方法的机制称为______。

24.在关系数据库中把数据表示成二维表,每一个二维表称为【】。

25.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【】。

26.\13'在内存中占1个字节,"\12"在内存中占______个字节。

27.在数据库理论中,数据物理结构的改变,如存储设备的更换、物理存储的更换、存取方式改变等都不影响数据库的逻辑结构,从而不引起应用程序的变化,称为______。

28.要求使下列程序输出5个整数,请填空。

for(i=0;i<=______;printf("%d\n",i+=2));

29.下列程序的运行结果是______。

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

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

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf("%s\n",p);

}

31.若要使指针p指向一个double类型的动态存储单元,请填空。

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

32.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;

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

main()

{inti;

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

{if(i>4)

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

break;}

printf("%d\n",i++);}}

34.函数rewind的作用是

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

main()

{charc=′z′;

printf("%c",c-25);}

36.若由以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是【】。

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

37.以下程序中函数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

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

#include<stdio.h>

main()

{staiccharb[]="Goodbye";

char*chp=&b[7];

while(--chp>=&b[0])putchar(*chp);

printf("\n");

}

39.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。

40.在面向对象方法中,类的实例称为______。

三、1.选择题(20题)41.下列叙述中正确的是()。A.算法的效率只与问题的规模有关,而与数据的存储结构无关

B.算法的时间复杂度是指执行算法所需要的计算工作量

C.数据的逻辑结构与存储结构是一一对应的

D.算法的时间复杂度与空间复杂度一定相关

42.对于―个非空的数据结构,如果它有且只有―个根结点,并且每一个结点最多有一个前件,也最多有―个后件,那么()

A.肯定是一个线形结构B.肯定是一个非线性结构C.还不足以证明是一个线形结构D.很可能是一个非线形结构

43.有以下程序structSTU{charname[10];intnum;floatTotalScore;};voldf(structSTU*p){structSTUs[2]={{"SunDan",20044,550),{"Penghua".20045,537}},*q=s++p;++q;*p=*q;}main(){structSrUs[3]={{"YangSan",20041,703),{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.of\n",S[1].name,s[1].num,s[1].Totalscore);}程序运行后的输出结果是

A.SunDan20044550

B.Penghua20045537

C.USiGuo20042580

D.SunDan20041703

44.若有下列定义和语句:intu=011,y=0x11,w=11;printf("%o,%x,%d\n",u,v,w);则输出结果是()。

A.9,17,11B.9,11,11C.11,11,11D.11,17,11

45.若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入3个整数分别赋给变量a、b、c的语句是()。

A.scanf("%d%d%d",&a,&b,d);

B.scanf("%d%d%d",&a,&b,&d);

C.scanf("%d%d%d",a,b,d);

D.scanf("%d%d%d",a,b,*d);

46.下列合法的字符型常量是()。

A.'\x13'B.'\081'C.'65'D.\n

47.有以下程序inta=2;intf(int*a){return(*a)++;}main()ints=0;{inta=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);执行后输出结果是

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

48.对建立良好的程序设计风格,下列描述正确的是()。

A.程序应该简单、清晰、可读性好B.符号名的命名只需要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无

49.有以下程序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

50.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是

A.i-1B.iC.i+1D.4-i

51.下列能正确定义字符串的语句是()。

A.charstr[]={'\64'};

B.charstr="kx43";

C.charstr=";

D.charstr[]="\0";

52.对长度为n的线性表进行顺序查找,在最坏的情况下需要比较的次数为()。

A.125B.n/2C.nD.n+1

53.已定义下列函数:intfun(int*p){return*p;)fun函数返回值是()。

A.不确定的值B.一个整数C.形参p中存放的值D.形参p的地址值

54.在执行下述程序时,若从键盘输入6和8,则结果为

main()

{inta,b,s;

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

s=a

if(a<b)

s=b;

s*=s;

printf("%d",s);}

A.36B.64C.48D.以上都不对

55.软件开发的结构化生命周期方法将软件生命周期划分成()

A.定义、开发、运行维护

B.设计阶段、编程阶段、测试阶段

C.总体设计、详细设计、编程调试

D.需求分析、功能定义、系统设计

56.下列程序执行后的输出结果是:main(){chararr[2][4];strcpy(arr'"you");strcpy(arr[1],"me");arr[0][3]='&';printf("%s\n",arr);}程序的输出结果是()。

A.you&meB.meC.youD.err

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

A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以

B.在程序结束时,应当用fclose函数关闭已打开的文件

C.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

D.不可以用FILE定义指向二进制文件的文件指针

58.下列程序的输出结果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.69825B.63825C.6385D.693825

59.下列说法不正确的是()。

A.C程序是以函数为基本单位的,整个程序由函数组成

B.C语言程序的一条语句可以写在不同的行上

C.C程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写

D.C程序的每个语句都以分号结束

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

A.输入项可以是一个实型常量,如scanf("%f",3.5);

B.只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d");

C.当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f",&f)

D.当输入数据时,必须指明变量地址,例如:scanf(“%f",&f);

四、选择题(20题)61.下面程序的运行结果是()。

main

{

inty=5,x=14;y=((x=3*y,x+6),x-1);

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

}

A.x=27,y=27

B.x=12,y=13

C.x=15,y=14

D.x=y=27

62.

63.

64.

65.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位编译系统上,程序执行后的输出结果是______。A.21,43B.43,21C.43,00D.21,00

66.结构化程序所要求的基本结构不包括()。

A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构

67.

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

A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对

69.

70.

71.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。

A.log2nB.n2C.nD.n+1

72.有以下程序:

程序运行后,若从键盘输入(从第l列开始.:

123<回车>

45678<回车>

则输出结果是()。

A.1267B.1256C.1278D.1245

73.整型变量X和Y的值相等,且为非0值,则以下选项中结果为0的表达式是()。

A.X‖YB.X|YC.X&YD.X^Y

74.具有3个结点的二叉树有

A.2种形态B.4种形态C.7种形态D.5种形态

75.

76.下列数据结构中,能够按照“先进后出”原则存取数据的是()。

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

77.

78.有三个关系R、S和T如下:

则由关系R和S得到关系T的操作是()。

A.自然连接B.交C.投影D.并

79.用黑盒技术测试用例的方法之一为

A.因果图B.逻辑覆盖C.循环覆盖D.基本路径测试

80.

五、程序改错题(1题)81.下列给定程序中函数fun()的功能是:求出如下分数序列的前n项之和,结果通过函数值返回。例如,若n=5,则应输出8.391667。请改正程序中的错误,使其得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.假定输入的字符串中只包含字母和*号。请编写函数proc,它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g****。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}

参考答案

1.B解析:t=1是将t赋值为1,所以循环控制表达式的值为1。判断t是否等于1时,应用t==1,注意“=”与“==”的用法。

2.B

3.C由题目的已知条件函数fun的定义形式voidfun(charch,floatx){…)可知第一个形参为字符型,所以A不符合,第二个形参为精度型,所以D不符合,函数fun定义为void型(无论返回值型),故其没有返回值,所以选项B错误。选项C的第一个实参的类型为字符型,第二个实参的类型为单精度型,与函数fun的形式参数的类型相符合,所以选项C为正确答案。

4.D

5.C解析:计算机语言分为低级语言、汇编语言和高级语言,C语言属于高级语言,但并不是说C语言比其他语言高级,所以选项A错误;除了低级语言外,其他各种语言都必须译成能被计算机识别的二进制数才能执行,选项B错误;C语言出现从1972年到1973年间,并不是出现最晚的语言,所以选项D也是错误的。

6.D

7.C因为x=0xFFFF=11111111,因此当以整型形式输出时对应的数为一1。

8.B在Internet中,把域名翻译为IP地址的软件称为域名系统DNS,运行域名系统的主机称为域名服务器。域名服务器的主要功能是实现入网主机名字和IP地址的转换。

9.D解析:文件状态检测函数feof(fp)的功能是:测试所指的文件的位置指针是否已达到文件尾,如果已到达文件尾,则函数返回非。值;否则返回0,表示文件尚未结束。

10.A使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A错误。

11.A

12.C

13.Alink结构体中的next是链表中下一个节点的地址。由于p当前指向节点A,因此p->next是B的地址。p->next->next是C的地址,访问C的节点数据成员dt可以使用C的地址访问,即p->next->next->dt,选项B正确。或者使用解引用“*”运算符:(*p)表示节点A,(*p).next表示B的地址,*((*p).next)表示节点B,(*((*p).next)).next表示C的地址,*((*((*p).next)).next)表示节点C,所以C的数据成员dt可以表示为(*((*(*p).next).next)).dt,因为“.”运算符优先级高于“*”运算符,所以也可以写为(*(*(*p).next).next).dt,选项C正确。同理,也可以既使用指针运算符,又使用解引用运算符来访问C的节点数据成员dt,即(*(p->next->next)).dt,选项D正确。选项A中,*p表示A节点,(*p).next表示节点B的地址,由于“->”运算符的优先级高于“*”运算符,因此先执行“->”,即表达式(*p).next->next->dt引用了C节点的数据成员dt,然后再执行解引用运算“*”,这是错误的。故本题答案为A选项。

14.A

15.D解析:C语言中有基本的算术运算符(+、-、*、/)还包括自增自减运算符(++、-),在C语言解析表达式时,它总是进行贪婪咀嚼,这佯,该表达式就被解析为i+++++i,显然该表达式不合C语言语法。

16.A本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:str1='China',如果想把“China”这5个字符放到数组str1中,除了逐个输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

strcpy函数的结构是:strcpy(字符数组1,字符串2)

其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组名形式,如(str1),“字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

17.A广播/电视是一种单向的、点对多点(面)的以信息传递为主要目的的系统。

18.A运算符“%”的左右两个操作数均应为整数,所以B选项与D选项错误。C选项中不能将“x+z”的值赋给表达式“y*5”,所以C选项错误。故本题答案为A选项。

19.A用typedef没有增加新类型,所以选择A)。

20.AC语言中,函数声明的函数名、返回值类型和参数列表必须与函数定义相同。其中参数列表中可以省略参数名。题干中,fun函数返回整型,3个参数分别是:整型指针、整型指针、整型。选项A中,第1个参数应该是整型指针类型,第2个参数也应该是指针类型,错误;其他选项都正确。故本题答案为A选项。

21.8888解析:C语言规定,以0开头的整型常量为八进制。另外,在primf()函数中,%X表示以十六进制无符号形式输出一个整数,且十六进制中的ABCDEF为大写字母。本题的输出应该是八进制210的十六进制形式。将八进制转换为十六进制,可以先将其转换为二进制。因为1位八进制表示3位二进制,4位二进制表示1位十六进制。(210)8=(10001000)2=(88)16,故本题输出为880

22.sizeof(structst)*50sizeof(structst)*50解析:fwrite函数的一般调用形式为:fwrite(buffer,size,count,fp);其中:buffer是一个指针变量,是要输出数据的起始地址;size是要写的字节数;count是要写多少个size字节的数据项;fp是文件指针。

23.继承继承解析:在面向对象的程序设计方法中,某些属性和方法是可以共享的,由于类从父类中继承而来,这样提高了软件的可重用性。

24.关系或一个关系关系或一个关系解析:在关系数据库中,把数据表示成二维表,而一个二维表就是一个关系。

25.物理独立性物理独立性解析:数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为物理独立性。

26.22解析:'\\13':表示八进制数13表示的ASCII字符,是一个字符,占一个字节;而”\\12”是个字符串,除了八进制数12表示的ASCII字符占一个字节外,还有在字符串的末尾加上串结束标志“'\\0'”,所以共有2个字节。

27.物理独立性物理独立性解析:数据的物理结构改变,不影响数据库的逻辑结构,从而不引起应用程序的变化,这种性质叫做物理独立性。

28.88解析:本题考查基本的for循环条件,i+=2表示i每次递增2,从0开始,输出5个整数则需要的条件是i<=8。

29.2525解析:本题考查带参数的宏的定义及相关运算。运算过程为:t=POW(x+y)=(2+3)*(2+3)=25。

30.efghefgh解析:函数ss返回形参s所指向的符号串的后半部分,故p='efgh'。

31.(double*)(double*)解析:一般用malloc函数为变量分配存储单元时,要在前面用强制类型转换符说明该存储单元中数据的类型。本题要为指向双精度浮点型数据的指针变量p分配存储单元,因此用(double*)说明。

32.malloc(11)malloc函数的格式是void*(或char*)malloc(size),size表示应分配的存储区,此题要分配11字节的单元,把11代入即可。

33.1351\r\n3\r\n5解析:本题考查了for循环语句的使用,break语句用在本题中是结束for循环直接跳出循环体外。当i=1时,因为if语句条件不满足,所以直接执行printf('%d\\n',i++);输出1,同时i自加1;执行第二次for循环时,i:3;同样的if语句条件不满足,所以直接执行printf('%d\\n',i++);输出3,同时i自加1执行第三次for循环时,i=5,讧语句条件满足,所以执行printf('%d\\n',i)输出5,然后break语句跳出了for循环。

34.A

35.aa解析:'z'的ASCII码值为122,经过c-25运算后,得97,以字符形式输出是a。

36.*(p+5)或p[5]*(p+5)或p[5]解析:本题的考查点是通过指针引用数组元素。98是数组w的第5个元素(最开始的为第0个),而通过*p=w已经将p指向了数组w,要想不移动指针p而引用98,可以有以下两种方法:p[5]、*(p+5)。

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

38.eybdooG

39.参照完整性参照完整性

40.对象对象解析:类描述的是具有相似性质的一组对象。例如,每本具体的书是一个对象,而这些具体的书都有共同的性质,它们都属于更一般的概念“书”这一类对象。一个具体对象称为类的实例。

41.B解析:本题考查数据结构中有关算法的基本知识和概念。数据的结构,直接影响算法的选择和效率。而数据结构包括两方面,即数据的逻辑结构和数据的存储结构。因此,数据的逻辑结构和存储结构都影响算法的效率。选项A的说法是错误的。算法的时间复杂度是指算法在计算机内执行时所需时间的度量;与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。因此,选项B的说法是正确的。

数据之间的相互关系称为逻辑结构。通常分为四类基本逻辑结构,即集合、线性结构、树型结构、图状结构或网状结构。存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机中有两种,即顺序存储结构和链式存储结构。可见,逻辑结构和存储结构不是一一对应的。因此,选项C的说法是错误的。

有时人们为了提高算法的时间复杂度,而以牺牲空间复杂度为代价。但是,这两者之间没有必然的联系。因此,选项D的说法是错误的。

42.A

43.B解析:在主函数中,首先声明了一个结构体数组s[3],然后用数组名调用函数f,而数组名是数组首地址的指针,因此,传递给函数的是指向上函数中s[0]的指针。在函数中,将参数指针往后移动了一位++p;,所以该指针现在指向主函数中的s[1],函数中也声明?一个结构体数组s[2]和一个结构体指针q,q虽然初始化指向函数中的结构数组s[2]的首地址,但也被往后移动了一位,所以函数调用的结果是将函数中的s[1]赋给了主函数中的s[1],故最终输出为:Penghua20045537,应该选择B。

44.C解析:在C语言中,“%d”表示输出带符号的十进制整型数;“%x”表示以十六进制无符号型输出整型数据(即不带前导0x或0x);“%o”表示以八进制无符号型输出整型数据(即不带前导0)。

45.A解析:选项B中d已经为地址,不应在加上求地址符号“&”,故选项B不正确;选项C中,a和b都为变量不是地址,应该在a和b之前加上求地址符号“&”,故选项C不正确:选项D中指针d所指向的存储空间的位置为变量c的值,不为地址,故选项D不正确,所以,4个选项中A为所选。

46.A解析:C语言的字符常量是用单引号(\')括起来的一个字符,也可以用以一个“\\”开头的字符序列来表示字符常量。其中形式\\ddd表示1到3位8进制数所代表的字符;形式\\xhh表示1到2位16进制数所代表的字符。在本题中\'\\x13\'表示回车符,是一个字符常量;而\'\\081\'用8进制数所代表的字符形式不正确,因为8进制数所表示的字符中不会出现数字“8”;\'65\'单引号(即撇号)括起来的不是一个字符,而是一个十进制数字;'\\n'是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。

47.C解析:本题考核的知识点是局部变量和全局变量的区别。若在函数中定义与全局变量名字相同局部变量,则全局变量在该函数中将不起作用。本题中定义了一个全局变量a和局部变量a在主函数中定义一个整型变量s并赋初值为0,接着定义了一个局部变量a并赋值为5,由于该局部变量的和全局变量a同名,故全局变量在复合语句中将不起作用,然后调用函数f(&a)(该函数的作用是返回存储变量a的空间中的值,并让该值加1,分析程序可知返回值为5,并让a值加1变为6),并将返回值加到s中.此时s的值为5,然后执行该复合语句外的其他语句,同样调用函数f(&a),但传递的参数是全局变量a,故其返回值为2,加到。中后s的值变为7,故最后输出的s的值为7,所以,4个选项中选项C符合题意。

48.A解析:“清晰第一,效率第二”,在考虑到程序的执行效率的同时,一定要保证程序清晰、可读;对符号名的命名,除了要符合语法要求外,还要具有一定的含义;程序的注释可以帮助程序员理解程序,不是可有可无的。

49.D解析:本题考查用地址作为参数与值作为参数传递之间的不同。在c语言中,数据传递是单向传递的。“值传递”就是实参把对应的值传给相应的形参变量,然后形参和实参不再有任何联系,在被调用函数中,对形参的修改并不影响对应的实参。“地址传递”就是实参把相应的地址传给相应的行参变量,在被调用函数中对行参的修改将修改对应的实参地址对应的值.程序中定义了两个字符型变量'a'和'b',并分别赋初值为,At和'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正确。

50.B解析:本题考查循环嵌套,外层循环控制每一行的输出,内层循环的第一个for循环控制空格的输出,第二个for循环控制的输出。而在第i行,输出的第一个元素是num[i][i],所以下划线处应填i。

51.D解析:字符串常量是用一对双括号括起来的一串字符。它用字符数组来存放,不能用一对大括号对括起来。

52.C解析:对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止.在最坏的情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。

53.B解析:由函数intfun(int*p){return*p;}的定义可知,返回值为整型指针变量p所指向的数据。

54.B解析:本题中a的值为6,b的值为8,最后s的值为8,s*=s等价于s=s*s。

55.A解析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。它可以分为软件定义、软件开发及软件运行维护3个阶段。

56.A解析:本题定义了一个二维字符数组arr[2][4],该二维数组可以看成一个含有两个元素arr[0]、arr[1]的一维字符数组,分别看成是含有4个元素,也可以看成是以arr为首地址的一个一维字符数组。函数strcpy(arr,“you”)是把字符串“you”复制到arr指向的空间,strcpy(arr[1],“me”)同理,在以arr[0]为首地址的字符数组中有“you”,在以air[1]为首地址的字符数组中有“me”。arr[0][3]=‘&’;是给arr[0]为首地址的字符数组的第4个元素赋值为‘&’。因此输出为you&me。

57.D解析:顺序文件只能从头读写,二进制文件可以随机读写,选项A正确:文件在使用后应关闭,当程序结束时,应当把打开的文件关闭,选项B正确:用fread()函数可以一次性地读取同类型的很多数据,选项C正确;在C语言中指向各种文件的文件指针都是通过FILE来定义的,故选项D是错误的。所以4个选项中选D

58.C

59.C解析:本题涉及C语言基本的3个知识点:①C语言的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数;②C语言规定每个语句以分号结束,其书写格式是自由的,一条语句可以写在不同的行上,或者一行也可以写多条语句;③注释行虽然对程序的运行不起作用,但是它可以方便程序员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。

60.D

61.C本题考查的是逗号表达式。逗号表达式的求解步骤是先求解表达式1,然后依次求解表达式2,直到表达式N的值。整个逗号表达式的值就是最后一个表达式N的值。表达式(x=3*y,x+6)中,x=15。表达式y=x—1=14。

62.C

63.AAAAAAAACCCCCCCCDDDDEEEEEEEEEFFHHIIIIIIJJJKKLLMNNNNNNOOOOOOOPPPPQRRRRRRSSSSSTTTTTTUUUUUVXXY

64.D

65.A结构体和共用体;在“联合”中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度。应该说明的是,这里所谓的共享不是指把多个成员同时装入一个联合变量内,而是指该联合变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧值

66.B1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。

67.B

68.D算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以A错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。故答案为D选项。

69.D

70.C

71.C对线性表进行顺序查找,最坏的情况是待查数据在表中不存在,所以比较的次数与表中的元素个数一样多。

72.Dputchar(c1)输出l,putchar(c2)输出2,

73.DX||Y是将X和Y作逻辑或运算,因为都是非0,所以结果为1,X|Y是做位或运算,即相同位置的数字只要有一个为1,结果为1,其结果也为非0,X&Y是为与运算,相同位置的数字都为1的时候才为1,其结果为非0,X^Y做位异或运算,即同0异1,因为X与Y的值相等,所以相同位置的数字一定相同。

74.D解析:因为二叉树有左、右子树之分,所以有3个结点的二叉树具有5种不同的形态。

75.D

76.BB。【解析】在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的。

77.B

78.A解析:结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。转移语句可以使程序的控制流程强制性地转向程序的任一处,在传统流程图中,就是用上节我们提到的“很随意”的流程线来描述这种转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。尤其是在实际软件产品的开发中,更多的追求软件的可读性和可修改性,象这种结构和风格的程序是不允许出现的。

79.A解析:黑盒测试主要方法有等价值划分法,边界值分析法。错误推测法、因果图法等。白盒测试的主要方法有逻辑覆盖、基本路径测试循环覆盖等。因此只有A属于黑盒测试。

80.A

81.(1)错误:fun(intn)

正确:doublefun(intn)

(2)错误:s=s+(Double)a/b;

正确:s=s+(double)a/b;

【解析】本题考查函数的定义规则。函数定义的一般形式为类型标识符函数名(形式参数表列){函数体}。fun()函数中,最后返回的是变量s,由变量s的定义可知,返回值是double型,所以fun()函数定义时应明确注明标识符double类型。Double为书写问题,写程序时切记书写格式。

82.\n\tvoidproc(char*str)\n\n\n\t{\n\n\n\tchar*p=str:\n\n\n\twhile(*p==*)p++;//通过P的移动来达\n\n\n\t到使P指向第一个不是*号的字符\n\n\n\tfor(;*p!=\0

;p++,str++)//把从第一个\n\n\n\t不是*号的字符放到a中‘\n\n\n\t*str=*P:\n\n\n\t*str=\0

;//最后用\0作为字符串结束标志\n\n\n\t}\n\n\n\t【解析】题目中要求将字符串中的前导*号全部删除首先将指针p移动到第一个不是*的字符,将指针P之后的字符放入原来的字符串中,并为新的字符串添加结束符。\n2021年四川省宜宾市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.已知intt=0;while(t=1){…}则以下叙述正确的是()。

A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式不合法D.以上说法都不对

2.针对二分查找算法,假设一个有序数组有136个元素,那么要查找到第10个元素,需要比较的元素为()

A.68,34,17,9,13,11,10

B.68,34,17,8,12,10

C.69,35,18,10

D.68,34,18,9,13,11,10

3.设fun函数的定义形式为voidfun(charch,floatx){…}则下列对函数fun的调用语句中,正确的是()。

A.fun("abc",3.0);

B.t=fun(D.16.5);

C.fun(65,2.8);

D.fun(32,32);

4.

5.以下叙述中正确的是______。

A.C语言比其他语言高级

B.C语言可以刁;用编译就能被计算机识别执行

C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D.C语言出现的最晚,具有其他语言的一切优点

6.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)

7.下列程序执行后的输出结果是()。main{charx=0xFFFF;printf("%d\n",x--);}A.-32767B.FFFEC.1D.32768

8.在Internet中,域名服务器的主要功能是实现()的转换。

A.IP地址到域名(主机名字)B.域名到IP地址C.主机IP地址和路由器IP地址之间D.路由器IP地址之问

9.若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是()。

A.EOFB.-1C.非零值D.0

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

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

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

C.C语言是-种结构化程序设计语言

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

11.

12.线性表(a1,a2,?,an)以链式方式存储,访问第i位置元素的时间复杂度为()。

A.O(0)B.O(1)C.O(n)D.O(n2)

13.带有头节点的单向链表head,其3个数据节点A、B、C的连接关系如下图所示:节点类型的定义为structlink{doubledt;structlink*next;};若指针P指向A节点,在不改变P指向的前提下,以下选项中不能访问C节点数据成员dt的表达式是()。A.*(*p).next->next->dt

B.p->next->next->dt

C.(*(*(*p).next).next).dt

D.(*(p->next->next)).dt

14.

15.设整型数i=5,则printf("%d",i+++++i);的输出为______。

A.10B.11C.12D.语法错误

16.第

11

若有定义:char*st="howareyou";下列程序段中正确的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

17.下列关于信息系统的叙述中,错误的是()。

A.广播电视是一种双向的、点到多点的信息交互系自

B.网络聊天是一种双向的,以信息交互为主要目的系统

C.电话是一种双向的、点对点的、以信息交互为主要的的系统

D.雷达是一种以感测和识别为主要目的的系统

18.设变量已正确定义并赋值,下列表达式中正确的是()。

A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

19.以下关于typedef的叙述错误的是()。A.用tyFedef可以增加新类型

B.typedef只是将已存在的类型用一个新的名字来代表

C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D.用typedef为类型说明一个新名,通常可以增加程序的可读性

20.若有如下形式的函数:intfun(inta[],int*p,intn){…}调用函数之前需要对函数进行声明,则以下选项中错误的是()。

A.intfun(int,int,int);

B.intfun(inta[],int*p,intn);

C.intfun(inta[],int*,int);

D.intfun(int[],int*,int);

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

main()

{

intx=0210;

printf("%X\n",x);

}

22.设有以下结构体类型:

structst

{charname[8];

intnum;

floats[4];

}student[50];

并且结构体数组student中的元素都已有值。若要将这些元素写到硬盘文件fp中,请将以下fwrite语句补充完整:

fwrite(student,【】,1,fp);

23.在面向对象方法中,类之间共享属性和方法的机制称为______。

24.在关系数据库中把数据表示成二维表,每一个二维表称为【】。

25.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【】。

26.\13'在内存中占1个字节,"\12"在内存中占______个字节。

27.在数据库理论中,数据物理结构的改变,如存储设备的更换、物理存储的更换、存取方式改变等都不影响数据库的逻辑结构,从而不引起应用程序的变化,称为______。

28.要求使下列程序输出5个整数,请填空。

for(i=0;i<=______;printf("%d\n",i+=2));

29.下列程序的运行结果是______。

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

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

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf("%s\n",p);

}

31.若要使指针p指向一个double类型的动态存储单元,请填空。

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

32.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;

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

main()

{inti;

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

{if(i>4)

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

break;}

printf("%d\n",i++);}}

34.函数rewind的作用是

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

main()

{charc=′z′;

printf("%c",c-25);}

36.若由以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是【】。

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

37.以下程序中函数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

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

#include<stdio.h>

main()

{staiccharb[]="Goodbye";

char*chp=&b[7];

while(--chp>=&b[0])putchar(*chp);

printf("\n");

}

39.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。

40.在面向对象方法中,类的实例称为______。

三、1.选择题(20题)41.下列叙述中正确的是()。A.算法的效率只与问题的规模有关,而与数据的存储结构无关

B.算法的时间复杂度是指执行算法所需要的计算工作量

C.数据的逻辑结构与存储结构是一一对应的

D.算法的时间复杂度与空间复杂度一定相关

42.对于―个非空的数据结构,如果它有且只有―个根结点,并且每一个结点最多有一个前件,也最多有―个后件,那么()

A.肯定是一个线形结构B.肯定是一个非线性结构C.还不足以证明是一个线形结构D.很可能是一个非线形结构

43.有以下程序structSTU{charname[10];intnum;floatTotalScore;};voldf(structSTU*p){structSTUs[2]={{"SunDan",20044,550),{"Penghua".20045,537}},*q=s++p;++q;*p=*q;}main(){structSrUs[3]={{"YangSan",20041,703),{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.of\n",S[1].name,s[1].num,s[1].Totalscore);}程序运行后的输出结果是

A.SunDan20044550

B.Penghua20045537

C.USiGuo20042580

D.SunDan20041703

44.若有下列定义和语句:intu=011,y=0x11,w=11;printf("%o,%x,%d\n",u,v,w);则输出结果是()。

A.9,17,11B.9,11,11C.11,11,11D.11,17,11

45.若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入3个整数分别赋给变量a、b、c的语句是()。

A.scanf("%d%d%d",&a,&b,d);

B.scanf("%d%d%d",&a,&b,&d);

C.scanf("%d%d%d",a,b,d);

D.scanf("%d%d%d",a,b,*d);

46.下列合法的字符型常量是()。

A.'\x13'B.'\081'C.'65'D.\n

47.有以下程序inta=2;intf(int*a){return(*a)++;}main()ints=0;{inta=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);执行后输出结果是

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

48.对建立良好的程序设计风格,下列描述正确的是()。

A.程序应该简单、清晰、可读性好B.符号名的命名只需要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无

49.有以下程序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

50.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是

A.i-1B.iC.i+1D.4-i

51.下列能正确定义字符串的语句是()。

A.charstr[]={'\64'};

B.charstr="kx43";

C.charstr=";

D.charstr[]="\0";

52.对长度为n的线性表进行顺序查找,在最坏的情况下需要比较的次数为()。

A.125B.n/2C.nD.n+1

53.已定义下列函数:intfun(int*p){return*p;)fun函数返回值是()。

A.不确定的值B.一个整数C.形参p中存放的值D.形参p的地址值

54.在执行下述程序时,若从键盘输入6和8,则结果为

main()

{inta,b,s;

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

s=a

if(a<b)

s=b;

s*=s;

printf("%d",s);}

A.36B.64C.48D.以上都不对

55.软件开发的结构化生命周期方法将软件生命周期划分成()

A.定义、开发、运行维护

B.设计阶段、编程阶段、测试阶段

C.总体设计、详细设计、编程调试

D.需求分析、功能定义、系统设计

56.下列程序执行后的输出结果是:main(){chararr[2][4];strcpy(arr'"you");strcpy(arr[1],"me");arr[0][3]='&';printf("%s\n",arr);}程序的输出结果是()。

A.you&meB.meC.youD.err

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

A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以

B.在程序结束时,应当用fclose函数关闭已打开的文件

C.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

D.不可以用FILE定义指向二进制文件的文件指针

58.下列程序的输出结果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.69825B.63825C.6385D.693825

59.下列说法不正确的是()。

A.C程序是以函数为基本单位的,整个程序由函数组成

B.C语言程序的一条语句可以写在不同的行上

C.C程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写

D.C程序的每个语句都以分号结束

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

A.输入项可以是一个实型常量,如scanf("%f",3.5);

B.只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d");

C.当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f",&f)

D.当输入数据时,必须指明变量地址,例如:scanf(“%f",&f);

四、选择题(20题)61.下面程序的运行结果是()。

main

{

inty=5,x=14;y=((x=3*y,x+6),x-1);

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

}

A.x=27,y=27

B.x=12,y=13

C.x=15,y=14

D.x=y=27

62.

63.

64.

65.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位编译系统上,程序执行后的输出结果是______。A.21,43B.43,21C.43,00D.21,00

66.结构化程序所要求的基本结构不包括()。

A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构

67.

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

A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对

69.

70.

71.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。

A.log2nB.n2C.nD.n+1

72.有以下程序:

程序运行后,若从键盘输入(从第l列开始.:

123<回车>

45678<回车>

则输出结果是()。

A.1267B.1256C.1278D.1245

73.整型变量X和Y的值相等,且为非0值,则以下选项中结果为0的表达式是()。

A.X‖YB.X|YC.X&YD.X^Y

74.具有3个结点的二叉树有

A.2种形态B.4种形态C.7种形态D.5种形态

75.

76.下列数据结构中,能够按照“先进后出”原则存取数据的是()。

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

77.

78.有三个关系R、S和T如下:

则由关系R和S得到关系T的操作是()。

A.自然连接B.交C.投影D.并

79.用黑盒技术测试用例的方法之一为

A.因果图B.逻辑覆盖C.循环覆盖D.基本路径测试

80.

五、程序改错题(1题)81.下列给定程序中函数fun()的功能是:求出如下分数序列的前n项之和,结果通过函数值返回。例如,若n=5,则应输出8.391667。请改正程序中的错误,使其得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.假定输入的字符串中只包含字母和*号。请编写函数proc,它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g****。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}

参考答案

1.B解析:t=1是将t赋值为1,所以循环控制表达式的值为1。判断t是否等于1时,应用t==1,注意“=”与“==”的用法。

2.B

3.C由题目的已知条件函数fun的定义形式voidfun(charch,floatx){…)可知第一个形参为字符型,所以A不符合,第二个形参为精度型,所以D不符合,函数fun定义为void型(无论返回值型),故其没有返回值,所以选项B错误。选项C的第一个实参的类型为字符型,第二个实参的类型为单精度型,与函数fun的形式参数的类型相符合,所以选项C为正确答案。

4.D

5.C解析:计算机语言分为低级语言、汇编语言和高级语言,C语言属于高级语言,但并不是说C语言比其他语言高级,所以选项A错误;除了低级语言外,其他各种语言都必须译成能被计算机识别的二进制数才能执行,选项B错误;C语言出现从1972年到1973年间,并不是出现最晚的语言,所以选项D也是错误的。

6.D

7.C因为x=0xFFFF=11111111,因此当以整型形式输出时对应的数为一1。

8.B在Internet中,把域名翻译为IP地址的软件称为域名系统DNS,运行域名系统的主机称为域名服务器。域名服务器的主要功能是实现入网主机名字和IP地址的转换。

9.D解析:文件状态检测函数feof(fp)的功能是:测试所指的文件的位置指针是否已达到文件尾,如果已到达文件尾,则函数返回非。值;否则返回0,表示文件尚未结束。

10.A使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A错误。

11.A

12.C

13.Alink结构体中的next是链表中下一个节点的地址。由于p当前指向节点A,因此p->next是B的地址。p->next->next是C的地址,访问C的节点数据成员dt可以使用C的地址访问,即p->next->next->dt,选项B正确。或者使用解引用“*”运算符:(*p)表示节点A,(*p).next表示B的地址,*((*p).next)表示节点B,(*((*p).next)).next表示C的地址,*((*((*p).next)).

温馨提示

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

评论

0/150

提交评论