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

下载本文档

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

文档简介

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

一、单选题(20题)1.在一个带头结点的单链表HL中,若要在第一个元素之前插入一个由指针p指向的结点,应该使用的语句为()

A.HL=p;p->next=HL;

B.p->next=HL;HL=p;

C.p->next=HL->next;HL->next=p;

D.p->next=HL;p=HL;

2.树的度为3,且有9个度为3的节点,5个度为1的节点,但没有度为2的节点。则该树中的叶子节点数为()。

A.18B.33C.19D.32

3.冒泡排序在最坏情况下的比较次数是()。

A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2

4.参加百年阿里培训的n位同学结伴去西湖旁边为游人指路,两人一组,他们打算先让体重之和恰好为102公斤的同学一组,请给出一个算法找到这样的组合,或者确定他们中不存在这样的组合,其中最优的算法时间复杂度为?(假设体重均为整数)()

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

5.有下列程序:程序执行后的输出结果是()。A.efg,h,z,q,bcd

B.efg,d,zyz,wbbcd

C.efgabcdsnopqhijkIxyz,h,z,q,bcd

D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd

6.关系数据库的数据及更新操作必须遵循()等完整性规则。

A.实体完整性和参照完整性

B.参照完整性和用户定义的完整性

C.实体完整性和用户定义的完整性

D.实体完整性、参照完整性和用户定义的完整性

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

A.无论指针变量P具有何种基类型,表达式“p=p+1”都代表指针P移动1个字节

B.指针变量具有基类型,基类型不同的指针变量不能直接相互赋值

C.指针变量的赋值操作“p=0;”是非法的

D.通过指针变量存取某个变量值的方式称为“直接存取”方式

8.有以下程序

include<stdio.h>

main()

{chara[30],b[30];

scanf(“%s”,a);

gets(b);

printf(“%s\n%s\n”,a,b);

}

程序运行时若输入:

howareyou?Iamfine<回车>

则输出结果是A.howareyou?Iamfine

B.howareyou?1amfine

C.howareyou?Iamfine

D.howareyou?

9.每次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做()排序。

A.插入B.堆C.快速D.归并排序

10.下面程序的输出结果是()。chars()="ABCD",*p;main(){for(p=s;p<s+4;p++)printf("%s\n",p);)

A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA

11.程序运行后的输出结果是()。A.0304.B.2050C.3344D.3040

12.

13.

14.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是()。

A.R-SB.R×SC.R∩SD.R∪S

15.

16.恢复系统默认菜单的命令是()。

A.SETMENUTODEFAULT

B.SETSYSMENUTODEFAULT

C.SETSYSTEMMENUTODEFAULT

D.SETSYSTEMTODEFAULT

17.若有以下定义和语句:#include<stdio.h>charsl[10]=“abcd!”,*s2=“\nl23\\”;printf(“%d%d\n”,strlen(s1),strlen(s2));程序的运行结果是()。

A.107B.105C.55D.58

18.有以下程序

#include<stdio.h>

voidfun(intx)

{if(x/2>1)fun(x/2);

printf(”%d”,x);

}

main()

{fun(7);printf(”\n”);}

程序运行后的输出结果是()。A.137B.731C.73D.37

19.有下列程序:程序执行后的输出结果是()。A.11B.43C.57D.53

20.若有定义“inta,b,c;”,想通过语句“scanf(“%d,%d%d”,&a,&b,&c);”把1、2、3分别赋给变量a、b、c,则正确的键盘输入是()。

A.1,2,3<Enter>

B.1,2<tab>3<Enter>

C.1<Enter><tab>2<tab>3

D.1<Enter>2<Enter>3

二、2.填空题(20题)21.在循环中,continue语句与break语句的区别是:______语句只是结束本次循环,然后进行循环的条件判定。

22.以下程序的定义语句中,x[1]的初值是【】,程序运行后输出的内容是【】。

#include<stdio.h>

main()

{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;

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

{p[i]=&x[2*i+1];

printf("%d",p[i][0]);

}

printf("\n");)

}

23.常见的拓扑结构有【】。

24.在printf格式字符中,以带符号的十进制形式输出整数的格式字符是【】;以八进制无符号形式输出整数的格式字符是【】;以十六进制无符号形式输出整数的格式字符是【】;以十进制无符号形式输出整数的格式字符是【】。

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

26.若有定义inta=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

27.栈和队列通常采用的存储结构是【】。

28.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n-->1)

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

if(str[i]<str[i+l])

{temp=【】;

str[i]=str[i+l];

【】=temp;

}

printf(【】);

}

29.在一个容量为32的循环队列中,若头指针front=3,尾指针rear=2,则该循环队列中共有______个元素。

30.数据库系统其内部分为三级模式,即概念模式、内模式和外模式。其中,______是用户的数据视图,也就是用户所见到的数据模式。

31.测试用例包括输入值集和【】值集。

32.软件工程研究的内容主要包括:【】技术和软件工程管理。

33.与结构化需求分析方法相对应的是【】方法。

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

#include<stdio.h>

fun()

{staticinta=O;

a+=3;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

35.下面程序的功能是将字符串s中所有的字符c删除,补足所缺语句。

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')【】;

s[j]='\0';

puts(s);

}

36.若想通过以下输入语句给a赋值1,给b赋值2.则输入数据的形式应该是【】。

inta,b;

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

37.C语言用于结构化程序设计的3种基本结构是______、选择结构和循环结构。

38.若输入21、23、34、11、2、6,则以下程序的运行结果【】。

main()

{inti;

char+p,num[6];

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

scanf("%d,",&num[i]);

scanf("%d",&num[5]);

p=&num[0];

sort(p,6);

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

printf("%d\n",num[5]);

}

sort(p,m)

char*p;

intm;

{inti;

charchange,*p1,*p2;

for(i=0;i<m/2;i++)

{p1=p+i;

p2=p+(m-1-i);

change=*p1;

*p1=*p2;

*p2=change;

}

}

39.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

40.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。

三、1.选择题(20题)41.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。

A.控制流B.加工C.数据存储D.源和潭

42.有以下定义语句

doublea,b;intw;longc;

若各变量已正确赋值,则下列选项中正确的表达式是A.a=a+b=b++B.w%(int)a+b)C.(c+w)%(int)aD.w=a==b;

43.下列语句中,不正确的是______。

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

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

C.staticinta[][3]={{1},{4}};

D.staticinta[][]={{1,2,3},{4,5,6}};

44.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则

A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次

45.若有定义和语句:inta[10]={1,2,3,4,5,6,?,8,9,10},*p=a;则不能表示a数组元素的表达式是()

A.*pB.a[10]C.*aD.a[p-a)

46.有以下程序:main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66<回车>,则输出结果是______。

A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6

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

A.数据库设计是指设计数据库系统

B.数据库设计是指设计数据库管理系统

C.数据库设计是指在已有数据库管理系统的基础上建立数据库

D.以上三种说法都不对

48.按照“先进后出”原则组织数据的数据结构是()。

A.队列B.栈C.双向链表D.二叉树

49.下述关于数据库系统的叙述中,正确的是()。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型一致

D.数据库系统比文件系统能管理更多的数据

50.若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元int*pp=______malloc(sizeof(int));则应填入______。

A.intB.int*C.(*int)D.(int*)

51.以下程序的功能是进行位运算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,B);}程序运行后的输出结果是()。

A.43B.73C.70D.40

52.执行以下程序段()x=-1;do{x=x*x;}while(!x);

A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误

53.在下列叙述中,正确的一条是______。

A.对while循环、do-while循环和for循环,可以用continue语句跳出循环

B.表达式1+2<<3和sizeof(3.8)的结果分别为24和8

C.函数fputc(c,stdout)与putchar(c)的结果相同

D.在有参函数中,定义函数中指定的形参变量在程序一开始执行时便分配内存单元

54.已定义以下函数:fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}此函数的功能是()。

A.将P1所指字符串复制到p2所指内存空间,

B.将p1所指字符串的地址赋给指针p2

C.对p1和p2两个指针所指字符串进行比较

D.检查p1和p2两个指针所指字符串中是否有'\0'

55.有以下程序:#include<stdio.h>struetSTU{charname[10];intnum;floatTotalSeore;};voidf(struetSTU*p){struetSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[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.LiSiGuo20042580

D.SunDan20041703

56.设intx=7,则~x的值是()。

A.-8B.-7C.-1D.1

57.有以下程序:#include<stdioh>intfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,C)));}程序运行后的输出结果是()。

A.3B.6C.8D.12

58.以下程序的运行结果是

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%dk=%d",m,k++);}

main()

{inti=4;

fun(i++);

printf("i=%dk=%d\n",i,k);

}

A.m=4k=5i=5k=5

B.m=4k=4i=5k=5

C.m=4k=4i=4k=5

D.m=4k=5i=4k=5

59.下列程序执行后的输出结果是______。main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}

A.456B.258C.369D.789

60.下面函数intfunl(char*x){char*y=x;while(*y++);return(y-x-1);}的功能是_______。

A.求字符串的长度B.比较两个字符串的大小C.将字符串x复制到字符串yD.将字符串x连接到字符串y后面

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

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

A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

62.若程序中有宏定义行:

63.

64.若有以下程序:inta=1,b=2:a=a^b:b=b^a:则执行以上语句后a和b的值分别是()。

A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1

65.数据流程图(DFD)是()。

A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具

66.给出以下定义:

则正确的叙述为()。

A.数组m和数组n等价B.数组m和数组n的长度相同C.数组m的长度小于数组n的长度D.数组m的长度大于数组n的长度

67.

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

69.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是()。

70.

若有以下的说明和语句,则在执行for语句后,’(*(pt+1)+2)表示的数组元素是()。

intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];

A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

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

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

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

72.

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

main()

{char*s="12134211";

intv1=0,v2=0,v3=0,v4=0,k;

for(k=0;s[k];k++)

switch(s[k])

{case’1’:v1++;

case’3’:v3++;

case’2’:v2++;

defaule:v4++;

}

printf("v1=%d,v2=%d,v3=%d,v4=%d\n,v1,v2,v3,v4);

}

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=4,v2=7,v3=5,v4=8

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

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

B.1,2,3,4,10,12,14,16,9,10,

C.1,2,6,8,10,12,7,8,9,10,

D.1,2,6,8,10,12,14,16,9,10,

75.

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

A.30B.10C.0D.64

77.以下程序的功能是

#include<stdio.h>

main()

{FILE*fp1;*fp2;

fp1=fopen("file1","r");

fp2=fopen("file2","w");

while(!feof(fp1))

fputc(fgetc(fp1),fp2);

fclose(fp1);

fclose(fp2);

}

A.将磁盘文件的内容显示在屏幕上

B.将两个磁盘文件合为一个

C.将一个磁盘文件复制到另一个磁盘文件中

D.将两个磁盘文件合并后送屏幕

78.链表不具有的特点是()。

A.不必事先估计存储空间B.可随机访问任意元素C.插入、删除不需要移动元素D.所需空间与线性表长度成正比

79.

有以下函数:

charfun(char*p)

{returnP;}

该函数的返回值是()。

A.无确切的值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指字符串中,例如,把2个字符串abc、CD串联起来,结果是abcCD。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到

pl所指的字符串的后面。

例如,分别输入下面两个字符串:

程序输出:

注意:部分源程序在文件PROGl.C中。

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

参考答案

1.C

2.C设叶子结点数为〃,则该树的结点数为n+9+5=n+\n14,根据树中的结点数=树中所有结点的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,则n=19。本题选择C选项。

3.C冒泡排序的基本思想是:将相邻的两个元素进行比较,如果反序,则交换;对于一个待排序的序列,经一趟排序后,最大值的元素移动到最后的位置,其他值较大的元素也向最终位置移动,此过程称为一趟冒泡。对于有n个数据的序列,共需n-1趟排序,第i趟对从l到n-i个数据进行比较、交换。冒泡排序的最坏情况是待排序序列逆序,第l趟比较n-1次,第2趟比较n-2次。依此类推,最后趟比较1次,一共进行n-l趟排序。因此,冒泡排序在最坏情况下的比较次数是(n-1)+(n-2)+…+l,结果为n(n-1)/2。本题的正确答案是选项C。

4.B

5.A程序定义一个二维字符数组v,使用5个字符串对其初始化。对于表达式“*v”等价于“*(v+0)”,输出的是数组v的第1个元素efg;“**(v+3)”等价于“*(*(v+3)+0)”,输出的是数组v的第4个元素的第1个字符h;“v[4]”表示数组v的第5个元素,“v[4]+2”表示输出从下标2开始的所有字符,即z;“v[2]”表示数组v的第3个元素,“*(v[2]+4)”表示数组v的第3个元素的下标为4的字符q;“v[1]+1”表示数组v的第2个元素从下标1开始的子字符串,即bcd。所以程序输出:efg,h,z,q,bcd。本题答案为A选项。

6.D解析:关系模型中包括关系的数据结构、关系的操纵和关系中的数据约束。关系完整性约束即数据完整性,包括实体完整性、参照完整性和用户自定义完整性。

7.B指针自增或自减1,移动的字节数与指针变量的基类型有关,假设指针变量p基类型为int类型,那么“p=p+1”表示指针P移动4个字节(通常int类型占4个字节),选项A错误;指针变量具有基类型,基类型不同的指针变量不能直接相互赋值,选项B正确;将0赋给指针变量,表示指针变量的值为空,这是合法的,选项C错误;通过指针变量存储指向变量的地址并通过指针存取变量的值,称为“间接存取”方式,选项D错误。故本题答案为B选项。

8.B

9.B

10.A解析:p为指针型变量。第一次循环,p=s,p的值为字符数组s的首地址,输出字符串'ABCD'。p++,第二次循环,p的值为字符数组s的首地址加1,输出字符串'BCD'。p++,第三次循环,p的值为字符数组s的首地址加2,输出字符串'CD'。p++,第4次循环,p的值为字符数组s的首地址加3,输出字符串\'D'。

11.D[解析]第一次循环沩0.i%2为0.执行switch(a[0]%62)中的case0语句后内容即a[0]++,a[0]的值变成3;第二次循环的值为1.i%62为1.执行case1:a[]=0;所以a[1]的值变成0;第三次循环的值为2.i%62为0.执行switch([2]%62)中的case1语句后的内容a[2]--,a[2]的值变成4;第四次循环的值为3.i%2为1.执行case1:ai]=0;所以a[3]的值变成0.

12.B

13.D

14.BB。【解析】关系的交(∩)、并(∪)和差(-)运算要求两个关系是同元的,显然作为二元的R和三元的S只能做笛卡儿积运算。

15.D

16.BB。【解析】考查菜单。在菜单中恢复系统菜单用的是SETSYSMENUTODEFAULT。所以答案选择B。

17.Cstrlen函数返回字符串的长度。求字符串长度时,遇到结束标识‘\\0’为止,但是长度不包括结束标识。字符数组s1的后5个元素没有赋值,都为‘\\0’,即“abcd!”后为‘\\0’,所以“strlen(s1)”的值为5。字符指针s2所指向的字符串中,“\\n”为转义字符,代表换行符,是1个字符,“\\\\”也为转义字符,代表“\\”,也是1个字符,其后为字符串结束标识‘\\0’,所以“strlen(s2)”的值也为5。故本题答案为C选项。

18.D解析:本程序主要考查递归函数。fun(7),首先将参数代入函数,因为(7/2)>1,所以执行f(3),以此类推直到f(1.5),(1.5/2)<1,所以执行打印函数,此时x值为3,然后退出f(1.5)返回f(3),打印x值即7。所以选D。

19.D函数f是一个递归函数。当x>=2时,递归调用自身,返回值为x*f(x-l)+(x-l)*f(x-2);3x<2时,返回值为1。main函数中,调用函数f传入4,所以y的值是f(4)。f(4)等价于4*f(3)+3*f(2);f(3)等价于3*f(2)+2*f(1);f(2)等价于2*f(1)+1*f(0);f(0)、f(1)等价于1。综上:f(2)等于3,f(3)等于11,f(4)等于53。本题答案为D选项。

20.B题干中,格式输入函数scanf的格式控制字符串中,第1个%d与第2个%d之间有一个逗号。所以输入的第1个整数和第2个整数之间必须要有一个逗号,选项C、D错误;输入的第2个整数和第3个整数之间需要间隔符,可以使用<Tab>键、<Enter>键、空格符。故本题答案为B选项。

21.continuecontinue解析:continue语句只是结束本次循环,然后进行循环的条件判定。break语句是终止整个循环的执行,不再进行条件判定。

22.224682,2468解析:在主函数中根据整型数组x[]的定义可知,x[1]的初值等于2。在for循环语句中,当i=0时,p[0]=&x[1],p[0][0]=2;当i=1时,p[1]=&x[3],p[1][0]=4;当i=2时,p[2]=&x[5],p[2][0]=6;当i=3时,p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序输出的结果为2、4、6、8。

23.星型、总线型和环型星型、总线型和环型

24.d0xu

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

26.33解析:这里:b-5=4,a-=4之后a的值为6,并把它赋给c。此时b的值并未被改变。在第2个表达式中,也只有赋值表达式b=3改变了b的值。所以两行语句执行完毕,b的值应该为3。

27.链式存储和顺序存储链式存储和顺序存储

28.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本题要求将字符串str中的字符用冒泡排序算法从大到小排列,其实过程是将相邻两个字符进行比较,如果当前字符小于下一个字符,则通过中间变量temp将字符两两交换,所以第—空应填:str[i],第二空应填str[i+1]最终打印输出得到的字符串str,所以第三空应填'%s',str。

29.3131解析:设队列容量为m,如果:rear>front,则队列中元素个数为rear-front;如果rear<front,则队列中元素个数为m+(rear-front)。本题rear<front,则m=32+(2-3)=31。

30.外模式外模式解析:数据库系统的三级模式分别是内模式、概念模式和外模式。其中,物理模式给出了数据库的物理存储结构和存取方法;概念模式是数据库系统中全局数据逻辑结构的描述;外模式是用户的数据视图,也就是用户所见到的数据模式。

31.输出输出解析:测试用例曲测试输入数据(输入值集)和与之对应的预期输出结果(输出值集)两部分组成。

32.软件开发

33.结构化设计结构化设计解析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。

34.3691236912解析:本题考查最基本的for循环:for(cc=1;cc<5;cc++)规定循环次数为4次,每次a+=3即每次a的值增3,但因为fun函数中变量a为static类型,所以每次调用完子函数之后,变量a所做的改变都要保存。

35.s[j++]=s[i]

36.a=1b=2

37.顺序结构顺序结构解析:结构化程序有3种摹本结构,即顺序结构、选择结构(包括if语句和switch语句)和循环结构(包括for语句、while语句、do…while语句)。

38.6211342321

39.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本题要求将字符串str中的字符用冒泡排序算法从大到小排列,其实现过程是将相邻两个字符进行比较,如果当前字符小于下一个字符;则通过中间变量temp将字符两两交换,所以第一空应填:str[i],第二空应填:str[i+1]。最终打印输出得到的字符串str,所以第三空应填;'%s',str。

40.概念(或概念级)概念(或概念级)

41.A解析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。

42.C解析:选项A不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=a+(b=b++)才正确,故选项A不正确。选项B中运算符%的对象必须是整型,而在选项B中(int)a+b为double型,故选项B不正确。a,b都为double型,应当避免使用a==b这样的关系表达式,因为通常存放在内存中的实型数据是有误差的,因此不可能精确相等,这将导致关系表达式a==b总为0。所以,4个选项中选项C符合题意。

43.D

44.B解析:本题考查while语句的使用。本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符'!'的优先级大于不等于运算符'!='的优先级。

45.B

46.A解析:char型数据类型以%d的形式输入时,输入的是ASCII值。65是字符A的ASCII码值,66是字符B的ASCII值。

47.C解析:数据库设计是指,在已有数据库管理系统的基础上建立数据库的过程,选项A与B错误,选项C正确。

48.BB.【解析】栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元索是最后被插入的元素,也是最后被删除的元素。栈是按先进后出的原则组织数据的。

【知识拓展】“栈”的形式如手枪的弹匣,最后压入的子弹总是最先被弹出,而最先压人的子弹最后才被弹出,也就是“先进后出”。

49.A解析:数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项A正确,选项B错误。在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项C错误。数据库系统比文件系统能管理更多的数据,并非是数据库系统的特点,选项D错误。本题正确答案是A。

50.D解析:不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型*)。

51.A解析:本题考查位运算。位运算的对象应为二进制的形式。7的二进制表示为00000111,3的二进制表示为00000011,7与3相异或得00000100,即十进制数4,表达式“~4&3”先进行位反操作,再进行位与,即11111011&00000011=00000011,即十进制数3。所以应输出为4和3。

52.A

53.C解析:选项A错误,continue语句只能结束本次循环,不能结束整个循环。要跳出循环可用break语句。选项B错误,表达式1+2<<3等价于(1+2)<<3,即0000000000000011向右移3位,移后变为0000000000000000,即0。选项C正确,函数fputc的操作对象是文件,而putchar是直接向标准输出设备输出字符。标准输出设备是一个特殊文件,即设备文件,文件型指针指向标准输出设备,因而功能相同。选项D错误,在定义函数中指定的形参变量,在未出现函数调用时,它们并不占内存中的存储单元。

54.A解析:本题中的while((*p2=*p1)!='\\0')语句首先进行赋值*p2=*p1,即把p1所指存储单元的字符逐一复制到p2所指存储单元中,然后判断p1所指单元内容是否为'\\0',若判断条件成立,则指针p1和p2依次指向下一个字符,继续执行循环体语句,否则循环终止。

55.B解析:main函数将结构体数组,的首地址传递给了f函数的结构体指针变量P,并在函数f中改变了指针变量p所指向的第二个结构体中的成员变量,这也就是改变了main函数中s[1]的成员度量,故程序输出的值为Penghua20045537。

56.A解析:本题主要考查按位求反运算和C语言中正负数的表示,“0”代表正数,“1”代表负数;x=7的二进制为00111,第一个0代表正数,~x为11000,第一个1代表负数,值为8。

57.B

58.B解析:由于在main()函数中,变量i=4,所以就调用fun(4),则输出“m=4k=4”。然后变量k增1等于5,变量i增1等于5,所以main()函数的“printf('i=%dk=%d\\n',i,k);”语句输出“i=5k=5”。

59.C解析:根据二维数组的定义得出:m[0][0]=1,m[0][1]=4,m[0][2]=7,m[1][0]=2,m[1][1]=5,m[1][2]=8,m[2][0]=3,m[2][1]=6,m[2][2]=9,所以本题的输出是第3行的值m[2][0],m[2][1],m[2][2],即369。

60.A解析:本题的考查点是while()循环语句。本题首先要注意的是对*y++的运算,由于++和*为同—优先级别,且结合方向为自右向左,因此它相当于*(y++)。由于++在y的右侧是“后加”,因此先对y的原值进行*运算,然后使y的值改变。

61.A本题重点考察函数的调用,首先要了解字母对应的ASCIl码。例如A为65,a为97。即字母+1劂可得到下一个字母。-其次是函数形参和实参的问题,运行过程如下:在fun(&b,a)中,}c=.a-,d=65。}c+l=V,d+1=66,prinff(”%c,%c,”,}C,d);输出b,B,因为指针c指向地址的值为b,此时b=}C=.b.;豳数返回执行ptud(。%C,%c、n”,b,8);输出b,A,因此A选项正确。

62.A常量定义在编译时替换,所以答案选择A)。

63.C

64.B本题考查按位异或的用法。按位异或运算的规则是:两个运算数的相应二进制位相同,则结果为0,相异则结果为1。b=2的二进制为00000010,a=1的二进制为00000001,a=a^b=00000011,转化为十进制后为3,b=b^a=00000010-00000011=00000001,即1。

65.CC。【解析】数据流程图是一种结构化分析描述模型,用来对系统的功能需求进行建模。

66.D按照m方式声明的数组,系统会在数组尾部自动添加字符’\0’,因此m的长度比n大l。

67.C

68.B本题考查3个知识点:将一个字符赋给一个字符变量时,是将该字符对应的ASCIl码存储到内存单元中;常见ASCII码的值如A和a;只要逻辑与运算符&&的两个运算对象都为真时,返回值就是1。

69.A变量不能充当数组定义的长度。所以A)错误。

70.C

\n从for循环可知pt是指向行的首地址的指针变量,因此由指针的表示方法可知:*(*(pt+1)+2)=pt[1][2]=t[1][2]。

\n

71.B选项B先计算关系表达式“'A'<=c”的值是0还是l,再比较该值与字符'z'之间的大小关系,不能实现题目所要求的功能。

72.A

73.Dk=0,s[k]=1,v1++,v2++,v3++,v4++;k=1,s[k]=2,v2++,v4++;k=3,s[k]=1,……,直到k=8,s[k]=0.退出循环

74.C函数f的功能是将数组中第3、4、5、6个元素乘以2,因此f(a)操作的结果是将元素(3,4,5,6)乘以2,操作结束后,数组a为(1,2,6,8,10,12,7,8,9,10)。

75.C

76.D本题目中静态局部变量x,在静态存储区内分配存储单元,在程序整个运行期间都不释放。因此第一次循环s的值为2;第二次循环中,返回的x的值为4,因此s的值为8;第三次循环,返回的x的值为8,因此s的值为64。

77.C本题主要考查文件的操作。在本题的程序中,首先定义了两个文件指针fp1和fp2,然后用指针fp1指向一个以读方式打开的文件file1,用指针fp2指向一个以写方式打开的文件file1,接着执行while循环,循环的结束条件是(!feof(fp1))为假,即feof(fp1)为真,表示对文件fp1的操作读取到结束符,因此,循环结束的条件是对文件file1的读取结束,循环体语句fputc(fgetc(fp1),fp2);中用到了fgetc和fputc函数,C语言提供这两个函数对文本文件进行字符的读写操作。fgetc(fp1)函数的作用是从输入流fp1的当前位置返回一个字符,并将文件指针指示器移到下一个字符处;fputc(ch,fp2)函数的作用是将字符ch的值写入所指定的流文件的当前位置处,并将文件指针后移一位。

根据上面的分析,可以知道循环结束后,即将指针fp1指向的文件复制到指针fp2指向的文件中,然后关闭两个操作的文件。因此,本题程序的作用是将一个磁盘文件复制到另一个磁盘文件中,本题正确答案选C。

78.B链表采用的是链式存储结构,它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,插入、删除不需要移动数据元素。但是链式存储结构也有不足之处:每个结点中的指针域需额外占用存储空间,它是一种非随机存储结构。

79.B

80.B

81.(1)错误:intproc(charstrr3[103,intm,char*pt)

正确:voidproc(charstr[][10],intm,char*pt)

(2)错误:pt[i]=strEk,i3

正确:pt[i]=str[k][i]

【解析】由主函数中的函数调用和proc()函数的定义可知,函数proc()没有返回值。因此,“intproc(charstr[][10],intm,char*pt)”中的int应改为void;根据C语言的语法规则,二维数组的行下标和列下标应分别加中括号,因此“pt[i]=str[k,i]”应改为“pt[i]=str[k][i]”。

82.

【考点分析】

【解题思路】

本题用两个循环完成操作,第1个循环的作用是求出第1个字符串的长度,即将i指到第1个字符串的末尾。第2个循环的作用是将第2个字符串的字符连到第1个字符串的末尾。

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

一、单选题(20题)1.在一个带头结点的单链表HL中,若要在第一个元素之前插入一个由指针p指向的结点,应该使用的语句为()

A.HL=p;p->next=HL;

B.p->next=HL;HL=p;

C.p->next=HL->next;HL->next=p;

D.p->next=HL;p=HL;

2.树的度为3,且有9个度为3的节点,5个度为1的节点,但没有度为2的节点。则该树中的叶子节点数为()。

A.18B.33C.19D.32

3.冒泡排序在最坏情况下的比较次数是()。

A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2

4.参加百年阿里培训的n位同学结伴去西湖旁边为游人指路,两人一组,他们打算先让体重之和恰好为102公斤的同学一组,请给出一个算法找到这样的组合,或者确定他们中不存在这样的组合,其中最优的算法时间复杂度为?(假设体重均为整数)()

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

5.有下列程序:程序执行后的输出结果是()。A.efg,h,z,q,bcd

B.efg,d,zyz,wbbcd

C.efgabcdsnopqhijkIxyz,h,z,q,bcd

D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd

6.关系数据库的数据及更新操作必须遵循()等完整性规则。

A.实体完整性和参照完整性

B.参照完整性和用户定义的完整性

C.实体完整性和用户定义的完整性

D.实体完整性、参照完整性和用户定义的完整性

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

A.无论指针变量P具有何种基类型,表达式“p=p+1”都代表指针P移动1个字节

B.指针变量具有基类型,基类型不同的指针变量不能直接相互赋值

C.指针变量的赋值操作“p=0;”是非法的

D.通过指针变量存取某个变量值的方式称为“直接存取”方式

8.有以下程序

include<stdio.h>

main()

{chara[30],b[30];

scanf(“%s”,a);

gets(b);

printf(“%s\n%s\n”,a,b);

}

程序运行时若输入:

howareyou?Iamfine<回车>

则输出结果是A.howareyou?Iamfine

B.howareyou?1amfine

C.howareyou?Iamfine

D.howareyou?

9.每次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做()排序。

A.插入B.堆C.快速D.归并排序

10.下面程序的输出结果是()。chars()="ABCD",*p;main(){for(p=s;p<s+4;p++)printf("%s\n",p);)

A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA

11.程序运行后的输出结果是()。A.0304.B.2050C.3344D.3040

12.

13.

14.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是()。

A.R-SB.R×SC.R∩SD.R∪S

15.

16.恢复系统默认菜单的命令是()。

A.SETMENUTODEFAULT

B.SETSYSMENUTODEFAULT

C.SETSYSTEMMENUTODEFAULT

D.SETSYSTEMTODEFAULT

17.若有以下定义和语句:#include<stdio.h>charsl[10]=“abcd!”,*s2=“\nl23\\”;printf(“%d%d\n”,strlen(s1),strlen(s2));程序的运行结果是()。

A.107B.105C.55D.58

18.有以下程序

#include<stdio.h>

voidfun(intx)

{if(x/2>1)fun(x/2);

printf(”%d”,x);

}

main()

{fun(7);printf(”\n”);}

程序运行后的输出结果是()。A.137B.731C.73D.37

19.有下列程序:程序执行后的输出结果是()。A.11B.43C.57D.53

20.若有定义“inta,b,c;”,想通过语句“scanf(“%d,%d%d”,&a,&b,&c);”把1、2、3分别赋给变量a、b、c,则正确的键盘输入是()。

A.1,2,3<Enter>

B.1,2<tab>3<Enter>

C.1<Enter><tab>2<tab>3

D.1<Enter>2<Enter>3

二、2.填空题(20题)21.在循环中,continue语句与break语句的区别是:______语句只是结束本次循环,然后进行循环的条件判定。

22.以下程序的定义语句中,x[1]的初值是【】,程序运行后输出的内容是【】。

#include<stdio.h>

main()

{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;

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

{p[i]=&x[2*i+1];

printf("%d",p[i][0]);

}

printf("\n");)

}

23.常见的拓扑结构有【】。

24.在printf格式字符中,以带符号的十进制形式输出整数的格式字符是【】;以八进制无符号形式输出整数的格式字符是【】;以十六进制无符号形式输出整数的格式字符是【】;以十进制无符号形式输出整数的格式字符是【】。

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

26.若有定义inta=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

27.栈和队列通常采用的存储结构是【】。

28.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n-->1)

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

if(str[i]<str[i+l])

{temp=【】;

str[i]=str[i+l];

【】=temp;

}

printf(【】);

}

29.在一个容量为32的循环队列中,若头指针front=3,尾指针rear=2,则该循环队列中共有______个元素。

30.数据库系统其内部分为三级模式,即概念模式、内模式和外模式。其中,______是用户的数据视图,也就是用户所见到的数据模式。

31.测试用例包括输入值集和【】值集。

32.软件工程研究的内容主要包括:【】技术和软件工程管理。

33.与结构化需求分析方法相对应的是【】方法。

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

#include<stdio.h>

fun()

{staticinta=O;

a+=3;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

35.下面程序的功能是将字符串s中所有的字符c删除,补足所缺语句。

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')【】;

s[j]='\0';

puts(s);

}

36.若想通过以下输入语句给a赋值1,给b赋值2.则输入数据的形式应该是【】。

inta,b;

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

37.C语言用于结构化程序设计的3种基本结构是______、选择结构和循环结构。

38.若输入21、23、34、11、2、6,则以下程序的运行结果【】。

main()

{inti;

char+p,num[6];

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

scanf("%d,",&num[i]);

scanf("%d",&num[5]);

p=&num[0];

sort(p,6);

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

printf("%d\n",num[5]);

}

sort(p,m)

char*p;

intm;

{inti;

charchange,*p1,*p2;

for(i=0;i<m/2;i++)

{p1=p+i;

p2=p+(m-1-i);

change=*p1;

*p1=*p2;

*p2=change;

}

}

39.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

40.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。

三、1.选择题(20题)41.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。

A.控制流B.加工C.数据存储D.源和潭

42.有以下定义语句

doublea,b;intw;longc;

若各变量已正确赋值,则下列选项中正确的表达式是A.a=a+b=b++B.w%(int)a+b)C.(c+w)%(int)aD.w=a==b;

43.下列语句中,不正确的是______。

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

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

C.staticinta[][3]={{1},{4}};

D.staticinta[][]={{1,2,3},{4,5,6}};

44.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则

A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次

45.若有定义和语句:inta[10]={1,2,3,4,5,6,?,8,9,10},*p=a;则不能表示a数组元素的表达式是()

A.*pB.a[10]C.*aD.a[p-a)

46.有以下程序:main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66<回车>,则输出结果是______。

A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6

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

A.数据库设计是指设计数据库系统

B.数据库设计是指设计数据库管理系统

C.数据库设计是指在已有数据库管理系统的基础上建立数据库

D.以上三种说法都不对

48.按照“先进后出”原则组织数据的数据结构是()。

A.队列B.栈C.双向链表D.二叉树

49.下述关于数据库系统的叙述中,正确的是()。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型一致

D.数据库系统比文件系统能管理更多的数据

50.若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元int*pp=______malloc(sizeof(int));则应填入______。

A.intB.int*C.(*int)D.(int*)

51.以下程序的功能是进行位运算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,B);}程序运行后的输出结果是()。

A.43B.73C.70D.40

52.执行以下程序段()x=-1;do{x=x*x;}while(!x);

A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误

53.在下列叙述中,正确的一条是______。

A.对while循环、do-while循环和for循环,可以用continue语句跳出循环

B.表达式1+2<<3和sizeof(3.8)的结果分别为24和8

C.函数fputc(c,stdout)与putchar(c)的结果相同

D.在有参函数中,定义函数中指定的形参变量在程序一开始执行时便分配内存单元

54.已定义以下函数:fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}此函数的功能是()。

A.将P1所指字符串复制到p2所指内存空间,

B.将p1所指字符串的地址赋给指针p2

C.对p1和p2两个指针所指字符串进行比较

D.检查p1和p2两个指针所指字符串中是否有'\0'

55.有以下程序:#include<stdio.h>struetSTU{charname[10];intnum;floatTotalSeore;};voidf(struetSTU*p){struetSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[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.LiSiGuo20042580

D.SunDan20041703

56.设intx=7,则~x的值是()。

A.-8B.-7C.-1D.1

57.有以下程序:#include<stdioh>intfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,C)));}程序运行后的输出结果是()。

A.3B.6C.8D.12

58.以下程序的运行结果是

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%dk=%d",m,k++);}

main()

{inti=4;

fun(i++);

printf("i=%dk=%d\n",i,k);

}

A.m=4k=5i=5k=5

B.m=4k=4i=5k=5

C.m=4k=4i=4k=5

D.m=4k=5i=4k=5

59.下列程序执行后的输出结果是______。main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}

A.456B.258C.369D.789

60.下面函数intfunl(char*x){char*y=x;while(*y++);return(y-x-1);}的功能是_______。

A.求字符串的长度B.比较两个字符串的大小C.将字符串x复制到字符串yD.将字符串x连接到字符串y后面

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

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

A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

62.若程序中有宏定义行:

63.

64.若有以下程序:inta=1,b=2:a=a^b:b=b^a:则执行以上语句后a和b的值分别是()。

A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1

65.数据流程图(DFD)是()。

A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具

66.给出以下定义:

则正确的叙述为()。

A.数组m和数组n等价B.数组m和数组n的长度相同C.数组m的长度小于数组n的长度D.数组m的长度大于数组n的长度

67.

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

69.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是()。

70.

若有以下的说明和语句,则在执行for语句后,’(*(pt+1)+2)表示的数组元素是()。

intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];

A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

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

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

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

72.

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

main()

{char*s="12134211";

intv1=0,v2=0,v3=0,v4=0,k;

for(k=0;s[k];k++)

switch(s[k])

{case’1’:v1++;

case’3’:v3++;

case’2’:v2++;

defaule:v4++;

}

printf("v1=%d,v2=%d,v3=%d,v4=%d\n,v1,v2,v3,v4);

}

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=4,v2=7,v3=5,v4=8

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

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

B.1,2,3,4,10,12,14,16,9,10,

C.1,2,6,8,10,12,7,8,9,10,

D.1,2,6,8,10,12,14,16,9,10,

75.

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

A.30B.10C.0D.64

77.以下程序的功能是

#include<stdio.h>

main()

{FILE*fp1;*fp2;

fp1=fopen("file1","r");

fp2=fopen("file2","w");

while(!feof(fp1))

fputc(fgetc(fp1),fp2);

fclose(fp1);

fclose(fp2);

}

A.将磁盘文件的内容显示在屏幕上

B.将两个磁盘文件合为一个

C.将一个磁盘文件复制到另一个磁盘文件中

D.将两个磁盘文件合并后送屏幕

78.链表不具有的特点是()。

A.不必事先估计存储空间B.可随机访问任意元素C.插入、删除不需要移动元素D.所需空间与线性表长度成正比

79.

有以下函数:

charfun(char*p)

{returnP;}

该函数的返回值是()。

A.无确切的值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指字符串中,例如,把2个字符串abc、CD串联起来,结果是abcCD。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到

pl所指的字符串的后面。

例如,分别输入下面两个字符串:

程序输出:

注意:部分源程序在文件PROGl.C中。

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

参考答案

1.C

2.C设叶子结点数为〃,则该树的结点数为n+9+5=n+\n14,根据树中的结点数=树中所有结点的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,则n=19。本题选择C选项。

3.C冒泡排序的基本思想是:将相邻的两个元素进行比较,如果反序,则交换;对于一个待排序的序列,经一趟排序后,最大值的元素移动到最后的位置,其他值较大的元素

温馨提示

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

评论

0/150

提交评论