2022-2023年河北省邢台市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2022-2023年河北省邢台市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2022-2023年河北省邢台市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2022-2023年河北省邢台市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2022-2023年河北省邢台市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩67页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2022-2023年河北省邢台市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.一棵二叉树共有25个结点,其中5个是叶子结点,则度为l的结点数为()。

A.16B.10C.6D.4

2.设有定义:charc[]=“Cc”;FILE*fp;且fp指向以“w”的方式成功打开的文件,若要将c中的两个字符写入文件,且每个字符占一行,则下面的选项中正确的是()。

A.fprintf(fp,“%c\n%c\n”,c[0],c[1]);

B.fprintf(fp,“%c\r\n%c\r\n”,c[0],c[1]);

C.fprintf(fp,“%c%c”,c[0],c[1]);

D.fprintf(fp,“%s\n”,c);

3.有以下程序:#include<stdio.h>main(){inti,s=0,t[]=(1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(“%d\n”,s);}程序的运行结果是()。

A.20B.25C.45D.36

4.以下程序的输出结果是().A.A.0B.29C.31D.无定值

5.

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

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

7.

8.下列程序的输出结果是()。char*point(char*pt):main{charb[4]={a,c,s,f),*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}A.sB.cC.fD.a

9.

10.有以下程序#include<stdio.h>#include<string.h>main(){chara[10]=”abcd”;printf("%d,%d\n",strlen(a),sizeof(a));}程序运行后的输出结果是()。A.7,4B.4,10C.8,8D.10,10

11.若有如下程序:main(){inta=0,t=0;while(!a!=0)t+=a++;printf("%d,%d\n",t,A);}则程序运行后的输出结果是()

A.0,1B.1,0C.0,0D.1,1

12.栈和队列的共同点是()。

A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同特点

13.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是

A.a^bB.a|bC.a&bD.a<<4

14.有以下程序:#include<stdio.h>#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%d\n”,d);}程序的运行结果是()。

A.0B.-12C.-20D.10

15.对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为()

A.并运算B.交运算C.差运算D.除运算

16.判断一个循环队列cq(最多元素为m)为空的条件是()。A.cq->rear-cq-front=m;

B.(cq->rear+1)%m=cq->front;

C.cq->front=cq->rear;

D.cq->rear=m-1;

17.对于长度为n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是(

A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2

18.C语言中的变量只能由字母、数字和下划线组成,且第一个字符()。

A.必须是字母B.必须是下划线C.必须是下划线和字母D.可以是字母.数字或下划线中任一一种

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

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

20.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。

A.intB.floatC.doubleD.不确定

二、2.填空题(20题)21.若定义#definePI3.14159,则执行完下列程序后输出结果是______。

#definePI3.14159;printf("PI=%P",PI);

22.下面程序把从终端读入的10个整数以二进制的方式写到一个名为bi.dat的新文件中。请填空。

#include<stdio.h>

FILE*fp;

main()

{inti,j;

if((fp=fopen(【】,"wb"));=NULL)exit(0);

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

{scanf("%d",&j);

fwrite(&j,sizeof(int),1,【】);

}

fclose(fp);

}

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

24.若输入5、9,以下程序的运行结果为【】。

main()

{inta,b,*pt1,*pt2;

printf("inputa,b:");

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

pt1=&a;

pt2=&b;

if(a<b)swap(pt1,pt2);

printf("\n%d,%d\n",*pt1,*pt2);

}

swap(p1,p2)

int*p1,*p2;

{int*p;

p=p1;

p1=p2;

p2=p;

}

25.软件结构是以【】为基础而组成的一种控制层次结构。

26.执行以下程序后,输出“#”的个数是【】。

#include<stdio.h>

main()

{inti,j;

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

for(j=2;j<=i;j++)putchar('#');

}

27.以下fun函数的功能是:累加数组元素中的值,n为数组中元素的个数,累加的和值放入x所指的存储单元中。请填空。

fun(intb[],intn,int*x)

{intk,r=0;

for(k=0,k<n;k++)r=【】;

【】=r;

}

28.软件危机出现于60年代末,为了解决软件危机,人们提出了【】的原理来设计软件,这就是软件工程诞生的基础。

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

#include<stdio,h>

#include<stating,h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abedefg";

fun(s,3,strlen(s));puts(s);

}

30.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me()函数在a:\myfile.txt中有定义。)

______

main()

{printf("\n");

try_me();

printf("\n");}

31.若变量x、y已定义为int类型且X的值为33,y的值为3,请将输出语句printf((),x/y);补充完整,使其输出的计算结果形式为:x/y=11。

32.在先左后右的原贝吓,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、【】遍历和后序遍历。

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

34.已知字符A的ACSII码值为65,以下语句的输出结果是______。

charch='B';

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

35.有以下程序,其功能是:以二进制“写”方式打开文件d1.dat,写入1~100这100个整数后关闭文件。再以二进制“读”方式打开文件d1.dat,将这100个整数读入到另一个数组b中,并打印输出。请填空。

#include<stdio.h>

main()

{FILE*fp;

inti,a[100],b[100];

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

for(i=0;i<100;i++)a[i]=i+1;

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

fclose(fp);

fp=fopen("d1.dat",【】);

fread(b,sizeof(int),100,fp);

fclose(fp);

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

}

36.数据库存管理系统常见的灵敏据模型有层次、网状和【】三种。

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

38.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】。要求形参名为b。

main()

{double[10][22];

intn;

......

fun(s);

}

39.一个模块直接调用的其他模块的模块个数称为______。

40.近年来形成了软件开发的多种模式,大致有3种类型:基于瀑布模型的结构化生命周期方法、基于动态定义需求的【】方法和基于结构的面向对象的软件开发方法。

三、1.选择题(20题)41.设有如下枚举类型定义:enumlanguage{Basic=3,Assembly,Ada=100,COBOL,Fortran};枚举类型Fortran的值为()

A.4B.7C.102D.103

42.已知字符′A′的ASCII码值是65,字符变量cl的值是′A′,c2的值是′D′。执行语句printf("%d,%d",c1,c2-2);后,输出结果是

A.A,BB.A,68C.65,66D.65,68

43.有如下程序段:inta=14,b=15,x,charc='A';x=(a&&B)&&(c<'B');执行该程序段后,x的值为()

A.1B.0C.FALSED.TRUE

44.为了使模块尽可能独立,要求()。

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

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

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

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

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

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

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

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

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

46.下面程序的输出结果是()。typedefunion{longx[1];inty[4];charz[10];}M;Mt;main(){printf("%d\n",sizeof(t));}

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

47.有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

48.下列函数定义不正确的是()

A.intmax{intxy,z;z=x>y?x:y}

B.intmax(x,y)intx,y;{intz;z=x>y?x:y;return(z)}

C.intmax(x,y){intx,yz;z=x>y?x:y;return(z);}

D.intmax(){}

49.判断char型变量c1是否为大写字母的正确表达式是

A.'A'<=c1<='Z'

B.(c1>=A)&&(c1<=Z)

C.('A'>=c1)||('Z'<=c1)

D.(c1>='A')&&(c1<='Z')

50.设计准则要求,模块的作用域和控制域的关系是()

A.作用域和控制域无关B.作用域在控制域之外C.控制域在作用域之内D.作用域在控制域之内

51.若变量c为char类型,能正确判断出c为小写字母的表达式是______。

A.'a'<=c<='z'

B.(c>='a')||(c<='z')

C.('a'<=c)and('z'>=c)

D.(c>='a')&&(c<='z')

52.以下不能定义为用户标识符的是()。

A.scanfB.VoidC.3comD.int

53.下列叙述中,不属于测试的特征的是

A.测试的挑剔性B.完全测试的不可能性C.测试的可靠性D.测试的经济性

54.设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)

55.若有以下结构体定义,则______是正确的引用或定义。structexample{intx;inty;}v1;

A.example.x=10

B.examplev2.x=10

C.structv2;v2.x=10

D.structexamplev2={10};

56.数据的存储结构是指()。

A.数据所占的存储空间

B.数据的逻辑结构在计算机中的存放形式

C.数据在计算机中的顺序存储方式

D.存储在计算机外存中的数据

57.有以下函数intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下关于aaa函数的功能的叙述正确的是A.求字符串s的长度B.比较两个串的大小C.将串s复制到串tD.求字符串s所占字节数

58.下面程序的输出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default,v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("vl=%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=8,v2=8,v3=8,v4=8

59.下面程序段的运行结果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));

A.8B.12C.4D.7

60.设intx=1,y=1;表达式(!x‖--y)的值是()。

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

四、选择题(20题)61.有以下说明和定义语句

structstudent

{

intage;charnum[8];

};

structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};

structstudent*p=stu;

以下选项中引用结构体变量成员的表达式错误的是

A.(p++)->numB.p->numC.(*p).numD.stu[3].age

62.下面程序运行后的输出结果是()。

structabc

{

inta,b,c;

}

main()

{

structabcs[2]={{1,2,3},{4,5,6}};

intt;

t=s[0].a+s[1].b;

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

}

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

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

A.28B.24C.32D.36

64.以下选项中不能作为c语言合法常量的是()。

65.(66)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为()

A.PAD图

B.N-S图

C.结构图

D.数据流图

66.有以下程序:

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

A.1,2,3,0,0,0,0,0,0,0,

B.1,2,3,1,2,3,0,0,0,0,

C.123,0,0,0,0,123,0,0,0,0,

D.1,2,3,0,0,1,2,3,0,0,

67.下列关于Internet和Web的说法中,正确的是()。

A.Web就是Internet的别称

B.Web是基于Internet之上的一个应用服务

C.Internet是基于Web之上的一个信息系统

D.Internet与Web没有任何关系

68.有以下程序段intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是

A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数

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

#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

70.

71.

有以下程序:

#include<stdio.h>

main

{intx=4,y;

do

{y=x;

if(!y)printf("x");

else

printf("y"):

x--;

}while(x);

}

程序的输出结果是()。

A.xyyxB.yyyyC.yyxxD.yxyx

72.读取二进制文件的函数调用形式为:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一个文件指针,指向待读取的文件

B.一个整型变量,代表待读取的数据的字节数

C.一个内存块的首地址,代表读人数据存放的地址

D.一个内存块的字节数

73.

74.结构化程序设计主要强调的是

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性

75.

76.以下叙述中错误的是()。A.可以通过typedef增加新的类型

B.可以用typedef已存在的类型用一个新的名字来代表

C.用pypedef义新的类型名后,原有类型名仍有效

D.用pypedef以为各种类型起别名,但不能为变量起别名

77.栈和队列的共同点是()。

A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点

78.下列叙述中正确的是()。A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构

D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性

79.

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,当n为l0时,函数值应为22.550361。f(x)函数定义如下:请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.

参考答案

1.A根据二叉树的性质,n=n0+n1+n2(n表示总结点数,n0表示叶子结点数,nl表示度数为1的结点数,n2表示度数为2的结点数),而叶子结点数总是比度数为2的结点数多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。

2.A要写入字符数据,需要使用格式字符%c,选项D错误;换行符需要使用‘\\n’,而不是‘\\r\\n’,选项B错误;选项C中未使用换行符,不满足题意。故本题答案为A选项。

3.B程序的功能为统计1~9这9个数中的奇数和。C语言中规定数组名代表数组的首地址,也就是第1个元素的地址,因此“*(t+i)”代表数组的第i+1个元素。程序的运行结果是1+3+5+7+9=25。故本题答案为B选项。

4.C

5.C

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

7.D

8.C本题考查函数的调用及参数传递,当执行函数point时,刚开始指针P指向“a”,经过+3,指针p指向“f”,所以最后的输出结果是f。

9.B

10.Bstrlen是求字符串的长度,结果为4,sizeof是求数组的长度,而数据在定义时已给出长度为10。

11.A

12.C解析:栈和队列都是操作受限制的线性表,只允许在端点插入和删除。不同点是:栈只允许在表的一端进行插入和删除操作,而队列允许在表的一端进行插入操作,而在另一端进行删除操作。

13.A解析:本题考查的是位运算的知识,对于任何二进制数,和1进行异或运算会让其取反,而和0进行异或运算不会产生任何变化。

14.C宏定义只是做简单的替换,本题中SUB(a+b)*c=(a+b)-(a+b)*c=-20。故本题答案为C选项。

15.AA)【解析】关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。

16.C

17.D在最坏情况下,冒泡排序和快速排序的比较次数都是n(n一1)/2。【知识拓展】所谓冒泡排序,就是将相邻的两个数据比较,如前面的数据大于后面的,则位置互换。这样不停地比较、互换,其实就是把大的数往后排,小的数往前排(就像冒泡一样冒出来了)。

18.C

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

20.C

21.PI=3.14159PI=3.14159解析:本题先定义了一个宏名PI,以后在程序中出现PI都用3.14159替代,但是C语言规定:双引号中的宏名是不进行替换的。

22."bi.dat"fp

23.类类

24.59

25.模块模块

26.66解析:本题考察的是一个嵌套的循环,当满足j<=i时,输出一个“#”号,符合条件的有i=2,j=2;i=3,j=2;i=3,j=3;i=4,j=2;i=4,j=3;i=4,j=4,共输出6个“#”。

27.r+b[k]*x

28.软件工程学软件工程学

29.abcfgabcfg解析:fun函数中for循环语句的作用是将s所指的字符串中从第5个字符到第7个字符依次向前移动两个位置。输出结果为abcfg。

30.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本题考查了函数的存储分类的概念。如果没有特别说明,函数的存储范围是从定义函数的位置到文件的结尾,如果其他文件想使用这个函数,需要用ginclude文件包含命令将定义函数的文件包含进来。

31.x/y=%dx/y=%d解析:本题考查prinff语句的输出格式。printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:printf('<格式化字符串>”,<参最表>)其中,格式化字符串包括两部分内容。一部分足正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以“%”开始,后跟一个或几个规定字符,用来确定输出内容格式。参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用“,”分开,且顺序一一

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

33.物理独立性物理独立性解析:数据的独立性是指数据和应用程序相互独立,分为物理独立性和逻辑独立性。其中物理独立性是指数据的物理结构(包括存储结构、存取方式)改变时,不需要修改应用程序。而逻辑独立性是指当逻辑结构改变时,不需要修改应用程序。

34.B66B66解析:printf函数的功能是按照指定的格式,在标准输出设备上输出数据,它有两种参数:格式控制参数和输出项参数。本题中,printf('%c%d\\n',ch,ch)表示以字符格式和十进制整数格式输出ch,B的ACSII码值为66,即在计算机中B的十进制整数格式是66。所以,输出为B66。

35.rb或"r+b"或"rb+"rb或'r+b'或'rb+'解析:根据题目要求,在下划线位置应该填入一个能实现二进制读的使用文件方式的参数即可。所以,可以填'rb'或'r+b'或'rb+'。

36.关系关系

37.350350解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的结点。因此,设一棵完全二叉树具有n个结点,若n为偶数,则在该二叉树中有n/2个叶子结点以及n/2-1个度为2的结点,还有1个是度为1的结点:若n为奇数,则在该二叉树中有[n/2]+1个叶子结点以及[n/2]个度为2的结点,没有度为1的结点。本题中,完全二叉树共有700个结点,700是偶数,所以,在该二叉树中有350个叶子结点以及349个度为2的结点,还有1个是度为1的结点。所以,本题的正确答案为350。

38.voidfun(doubleb[10][22])voidfun(doubleb[10][22])解析:本题答案:voidfun(doubleb[10][22])。

39.扇出扇出解析:在结构图中,调用一个给定模块的模块个数称为扇入,一个模块直接调用的其他模块个数称为扇出。

40.原型化原型化

41.C

42.C解析:在C语言中,字符型数据在内存中的存储形式是ASCII码值。当需要以整型格式输出字符时,输出的也是ASCII码值。字符'A'和'D'的ASCII码值分别为65和68。

43.A解析:a=14,b=15,第一个&&两侧均为非零值。c='A',表达式c<'B'的值为真即1,第二个&&两侧也均为非零值。表达式(a&&b)&&(c<'B')的值为1,赋值给变量x。

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

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

46.C解析:“联合体”所占用的内存空间为最长的成员所占用的空间。题中联合体的z[10]成员联合体中占空间最长的成员。

47.B解析:在C语言的数组元素的引用方法,我们在前面已经讲过了,比如数组元素a[0],可以用表达式*(p+0),即*p来引用,对于数组元素a[1],可以用表达式*(p+1)来引用,在这里,p+1的值就是数组元素a[1]的地址,对此地址使用“间接访问运算符”:*(p+1)就代表存储单元a[1],注意:一对圆括号不可少。同样,对于数组元素a[2],则可以用表达式。(p+2)来引用…,对于数组元素a[9],可以用表达式,(p+9)来引用。因此,当指针变量p指向a数组的起始地址时,若0≤i<10,则数组元素a[i]可以用*(p+i)来表示。

48.C

49.D解析:字符型数据在计算机内部是以ASCII码存储的,英文大写字母和小写字母在ASCII码表中都是连续的。大写字母A到Z是从65到90,所以只要变量c1大于A并且小于Z就能保证其为大写字母。注意:逻辑运算符的功能与作用。

50.D

51.D解析:字符型数据在计算机内部是以ASCII码存储的,英文大写字母和小写字母在ASCII码表中都是连续的,大写字母A到Z是从65到90,小写字母a到z是97到122,所以只要变量c大于a并且小于z就能保证其为小写字母。

52.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。

53.C解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中没有测试的可靠性这一说法。注意:软件测试与软件调试的概念,以及相应的方法。

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

55.D解析:在定义结构体变量时,不能只用结构体名example或关键字struct进行定义,必需要用结构钵类型名structexample定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以选D。

56.B解析:数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式,数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。

57.A解析:aaa()函数中,首先定义了一个字符指针t指向形参s,然后通过一个while循环让指针\u3000t不断递增,直到t指向字符串结束标志处。当t指向结束标志处时,由于后缀++运算符的原因,它还会被再递增1,所以接卜来的t--;语句让它回到结束标志处。最后返回t-s,因此s还是指向字符串第1个字符处,而t指向了字符串结尾,故返回值为字符串的长度值。

58.C解析:当switch后面括弧内的表达式的值与某一个case后面的常量的表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。

59.C在本题中,程序段首先定义了字符型指针变量p,并使其指向一个字符串,然后将指针变量p加3,即使其指向字符串的第四个元素。然后执行输出语句,通过输出语句的输出格式我们可以知道,最后输出的是一个十进制数的整型数值,其输出列表为strlen(strcpy(P,″ABCD″))。这就要求我们了解strlen函数和strcpy函数的作用。

strcpy的调用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串复制到目的地址中,这种复制将覆盖原来的字符串。strcat函数的功能是将源地址的字符串复制到目的地址字符串的后面。

strlen的调用格式是:strlen(字符串地址),其功能是返回字符串中字符的个数。

那么程序中执行strcpy(P,″ABCD″)后指针变量p所指向的字符串为“ABCD”,该字符串中字符的个数为4,那么执行strlen后,程序最终输出的结果是4。因此本题正确的答案是C。

60.A解析:当逻辑或运算符两边的运算对象至少有一个为1时,整个逻辑表达式的值是1;如果两边的运算对象都为0,则整个逻辑表达式的值为0。题中!x=0,--y=0,所以整个表达式的值是0。

61.D引用形式有以下三种:①结构体变量.成员名;②(*p).成员名;③p→成员名。所以A、B、C答案都是正确的。故本题答案为D。

62.B结构体成员的引用;s[0].a=1,s[1].b=5,所以结果为6

63.As得到全局变量a的值为4,第一次循环返回l2,第二次循环返回l2,累加结果为28。

64.A本题考查的是c语言的常量。0.1e+6是实型常量的指数形式,代表0.1×10的6次方,所以选项B)是合法的;

“a”是合法的字符串常量,a9一个非打印的转义字符表示响铃,所以选项C)是合法的;011是一个字符常量,011是一个用3位八进制表示的转义字符,所以选项D)也是合法的。在C语言中,字符常量是用单引号括起来的一个字符,选项A)中的cd包含了2个字符,所以是不正确的。

65.B

66.D本题考查文件操作函数,两次fwrite后,币文件中已经写入l,2,3,O,0,l,2,3,0,0然后将文件币中的内容重新写人数组a中,最后输出a为1。2,3,0,0,1,2,3,0,0,所以选项D正确。

67.B

68.D解析:本题考查的是do…while循环结构.do…while循环与while循环的区别就是,前者是先执行循环体,后判断循环变量,故至少会执行一遍循环体;后者先判断再执行,可能循环体一次也不会执行。本题首先让t=1,然后在循环体中每次自减2,所以判断循环条件的时候,t会等于-1、-3、-5……,故只有n等于任意的负奇数才有可能终止循环.选项D正确。

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

70.A

71.C

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

\n

72.Cfread函数中的参数buffer是内存块的首地址,输入的数据存入此内存块中。

73.A

74.D结构化程序设计由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主张“清晰第一,效率第二”,以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,为设计一些较大的软件打下了良好的基础。

由于模块相互独立,因此,在设计其中一个模块时,不会受到其他模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为可以充分利用现有的模块作为积木式的扩展。

结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。自顶向下、逐步求精的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;“单入口单出口”的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。据此就很容易编写出结构良好、易于调试的程序。

75.B

76.A

77.C栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表:本题答案为C)。

78.B线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。

79.B

80.B

81.(1)错误:f(doublex)

正确:doublef(doublex)

(2)错误:returns

正确:returns;

【解析】由函数proe()中的函数调用以及函数f中的re-turn语句,可知函数f的返回值类型为double,因此,“f(doublex)”应改为“doublef(doublex)”;根据C语言语法规则,每一条语句都必须以分号结束,因此,应在语句“re-turns”后加上分号。

82.2022-2023年河北省邢台市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.一棵二叉树共有25个结点,其中5个是叶子结点,则度为l的结点数为()。

A.16B.10C.6D.4

2.设有定义:charc[]=“Cc”;FILE*fp;且fp指向以“w”的方式成功打开的文件,若要将c中的两个字符写入文件,且每个字符占一行,则下面的选项中正确的是()。

A.fprintf(fp,“%c\n%c\n”,c[0],c[1]);

B.fprintf(fp,“%c\r\n%c\r\n”,c[0],c[1]);

C.fprintf(fp,“%c%c”,c[0],c[1]);

D.fprintf(fp,“%s\n”,c);

3.有以下程序:#include<stdio.h>main(){inti,s=0,t[]=(1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(“%d\n”,s);}程序的运行结果是()。

A.20B.25C.45D.36

4.以下程序的输出结果是().A.A.0B.29C.31D.无定值

5.

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

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

7.

8.下列程序的输出结果是()。char*point(char*pt):main{charb[4]={a,c,s,f),*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}A.sB.cC.fD.a

9.

10.有以下程序#include<stdio.h>#include<string.h>main(){chara[10]=”abcd”;printf("%d,%d\n",strlen(a),sizeof(a));}程序运行后的输出结果是()。A.7,4B.4,10C.8,8D.10,10

11.若有如下程序:main(){inta=0,t=0;while(!a!=0)t+=a++;printf("%d,%d\n",t,A);}则程序运行后的输出结果是()

A.0,1B.1,0C.0,0D.1,1

12.栈和队列的共同点是()。

A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同特点

13.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是

A.a^bB.a|bC.a&bD.a<<4

14.有以下程序:#include<stdio.h>#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%d\n”,d);}程序的运行结果是()。

A.0B.-12C.-20D.10

15.对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为()

A.并运算B.交运算C.差运算D.除运算

16.判断一个循环队列cq(最多元素为m)为空的条件是()。A.cq->rear-cq-front=m;

B.(cq->rear+1)%m=cq->front;

C.cq->front=cq->rear;

D.cq->rear=m-1;

17.对于长度为n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是(

A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2

18.C语言中的变量只能由字母、数字和下划线组成,且第一个字符()。

A.必须是字母B.必须是下划线C.必须是下划线和字母D.可以是字母.数字或下划线中任一一种

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

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

20.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。

A.intB.floatC.doubleD.不确定

二、2.填空题(20题)21.若定义#definePI3.14159,则执行完下列程序后输出结果是______。

#definePI3.14159;printf("PI=%P",PI);

22.下面程序把从终端读入的10个整数以二进制的方式写到一个名为bi.dat的新文件中。请填空。

#include<stdio.h>

FILE*fp;

main()

{inti,j;

if((fp=fopen(【】,"wb"));=NULL)exit(0);

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

{scanf("%d",&j);

fwrite(&j,sizeof(int),1,【】);

}

fclose(fp);

}

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

24.若输入5、9,以下程序的运行结果为【】。

main()

{inta,b,*pt1,*pt2;

printf("inputa,b:");

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

pt1=&a;

pt2=&b;

if(a<b)swap(pt1,pt2);

printf("\n%d,%d\n",*pt1,*pt2);

}

swap(p1,p2)

int*p1,*p2;

{int*p;

p=p1;

p1=p2;

p2=p;

}

25.软件结构是以【】为基础而组成的一种控制层次结构。

26.执行以下程序后,输出“#”的个数是【】。

#include<stdio.h>

main()

{inti,j;

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

for(j=2;j<=i;j++)putchar('#');

}

27.以下fun函数的功能是:累加数组元素中的值,n为数组中元素的个数,累加的和值放入x所指的存储单元中。请填空。

fun(intb[],intn,int*x)

{intk,r=0;

for(k=0,k<n;k++)r=【】;

【】=r;

}

28.软件危机出现于60年代末,为了解决软件危机,人们提出了【】的原理来设计软件,这就是软件工程诞生的基础。

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

#include<stdio,h>

#include<stating,h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abedefg";

fun(s,3,strlen(s));puts(s);

}

30.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me()函数在a:\myfile.txt中有定义。)

______

main()

{printf("\n");

try_me();

printf("\n");}

31.若变量x、y已定义为int类型且X的值为33,y的值为3,请将输出语句printf((),x/y);补充完整,使其输出的计算结果形式为:x/y=11。

32.在先左后右的原贝吓,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、【】遍历和后序遍历。

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

34.已知字符A的ACSII码值为65,以下语句的输出结果是______。

charch='B';

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

35.有以下程序,其功能是:以二进制“写”方式打开文件d1.dat,写入1~100这100个整数后关闭文件。再以二进制“读”方式打开文件d1.dat,将这100个整数读入到另一个数组b中,并打印输出。请填空。

#include<stdio.h>

main()

{FILE*fp;

inti,a[100],b[100];

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

for(i=0;i<100;i++)a[i]=i+1;

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

fclose(fp);

fp=fopen("d1.dat",【】);

fread(b,sizeof(int),100,fp);

fclose(fp);

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

}

36.数据库存管理系统常见的灵敏据模型有层次、网状和【】三种。

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

38.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】。要求形参名为b。

main()

{double[10][22];

intn;

......

fun(s);

}

39.一个模块直接调用的其他模块的模块个数称为______。

40.近年来形成了软件开发的多种模式,大致有3种类型:基于瀑布模型的结构化生命周期方法、基于动态定义需求的【】方法和基于结构的面向对象的软件开发方法。

三、1.选择题(20题)41.设有如下枚举类型定义:enumlanguage{Basic=3,Assembly,Ada=100,COBOL,Fortran};枚举类型Fortran的值为()

A.4B.7C.102D.103

42.已知字符′A′的ASCII码值是65,字符变量cl的值是′A′,c2的值是′D′。执行语句printf("%d,%d",c1,c2-2);后,输出结果是

A.A,BB.A,68C.65,66D.65,68

43.有如下程序段:inta=14,b=15,x,charc='A';x=(a&&B)&&(c<'B');执行该程序段后,x的值为()

A.1B.0C.FALSED.TRUE

44.为了使模块尽可能独立,要求()。

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

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

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

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

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

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

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

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

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

46.下面程序的输出结果是()。typedefunion{longx[1];inty[4];charz[10];}M;Mt;main(){printf("%d\n",sizeof(t));}

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

47.有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

48.下列函数定义不正确的是()

A.intmax{intxy,z;z=x>y?x:y}

B.intmax(x,y)intx,y;{intz;z=x>y?x:y;return(z)}

C.intmax(x,y){intx,yz;z=x>y?x:y;return(z);}

D.intmax(){}

49.判断char型变量c1是否为大写字母的正确表达式是

A.'A'<=c1<='Z'

B.(c1>=A)&&(c1<=Z)

C.('A'>=c1)||('Z'<=c1)

D.(c1>='A')&&(c1<='Z')

50.设计准则要求,模块的作用域和控制域的关系是()

A.作用域和控制域无关B.作用域在控制域之外C.控制域在作用域之内D.作用域在控制域之内

51.若变量c为char类型,能正确判断出c为小写字母的表达式是______。

A.'a'<=c<='z'

B.(c>='a')||(c<='z')

C.('a'<=c)and('z'>=c)

D.(c>='a')&&(c<='z')

52.以下不能定义为用户标识符的是()。

A.scanfB.VoidC.3comD.int

53.下列叙述中,不属于测试的特征的是

A.测试的挑剔性B.完全测试的不可能性C.测试的可靠性D.测试的经济性

54.设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)

55.若有以下结构体定义,则______是正确的引用或定义。structexample{intx;inty;}v1;

A.example.x=10

B.examplev2.x=10

C.structv2;v2.x=10

D.structexamplev2={10};

56.数据的存储结构是指()。

A.数据所占的存储空间

B.数据的逻辑结构在计算机中的存放形式

C.数据在计算机中的顺序存储方式

D.存储在计算机外存中的数据

57.有以下函数intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下关于aaa函数的功能的叙述正确的是A.求字符串s的长度B.比较两个串的大小C.将串s复制到串tD.求字符串s所占字节数

58.下面程序的输出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default,v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("vl=%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=8,v2=8,v3=8,v4=8

59.下面程序段的运行结果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));

A.8B.12C.4D.7

60.设intx=1,y=1;表达式(!x‖--y)的值是()。

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

四、选择题(20题)61.有以下说明和定义语句

structstudent

{

intage;charnum[8];

};

structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};

structstudent*p=stu;

以下选项中引用结构体变量成员的表达式错误的是

A.(p++)->numB.p->numC.(*p).numD.stu[3].age

62.下面程序运行后的输出结果是()。

structabc

{

inta,b,c;

}

main()

{

structabcs[2]={{1,2,3},{4,5,6}};

intt;

t=s[0].a+s[1].b;

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

}

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

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

A.28B.24C.32D.36

64.以下选项中不能作为c语言合法常量的是()。

65.(66)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为()

A.PAD图

B.N-S图

C.结构图

D.数据流图

66.有以下程序:

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

A.1,2,3,0,0,0,0,0,0,0,

B.1,2,3,1,2,3,0,0,0,0,

C.123,0,0,0,0,123,0,0,0,0,

D.1,2,3,0,0,1,2,3,0,0,

67.下列关于Internet和Web的说法中,正确的是()。

A.Web就是Internet的别称

B.Web是基于Internet之上的一个应用服务

C.Internet是基于Web之上的一个信息系统

D.Internet与Web没有任何关系

68.有以下程序段intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是

A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数

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

#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

70.

71.

有以下程序:

#include<stdio.h>

main

{intx=4,y;

do

{y=x;

if(!y)printf("x");

else

printf("y"):

x--;

}while(x);

}

程序的输出结果是()。

A.xyyxB.yyyyC.yyxxD.yxyx

72.读取二进制文件的函数调用形式为:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一个文件指针,指向待读取的文件

B.一个整型变量,代表待读取的数据的字节数

C.一个内存块的首地址,代表读人数据存放的地址

D.一个内存块的字节数

73.

74.结构化程序设计主要强调的是

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性

75.

76.以下叙述中错误的是()。A.可以通过typedef增加新的类型

B.可以用typedef已存在的类型用一个新的名字来代表

C.用pypedef义新的类型名后,原有类型名仍有效

D.用pypedef以为各种类型起别名,但不能为变量起别名

77.栈和队列的共同点是()。

A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点

78.下列叙述中正确的是()。A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构

D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性

79.

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,当n为l0时,函数值应为22.550361。f(x)函数定义如下:请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.

参考答案

1.A根据二叉树的性质,n=n0+n1+n2(n表示总结点数,n0表示叶子结点数,nl表示度数为1的结点数,n2表示度数为2的结点数),而叶子结点数总是比度数为2的结点数多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。

2.A要写入字符数据,需要使用格式字符%c,选项D错误;换行符需要使用‘\\n’,而不是‘\\r\\n’,选项B错误;选项C中未使用换行符,不满足题意。故本题答案为A选项。

3.B程序的功能为统计1~9这9个数中的奇数和。C语言中规定数组名代表数组的首地址,也就是第1个元素的地址,因此“*(t+i)”代表数组的第i+1个元素。程序的运行结果是1+3+5+7+9=25。故本题答案为B选项。

4.C

5.C

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

7.D

8.C本题考查函数的调用及参数传递,当执行函数point时,刚开始指针P指向“a”,经过+3,指针p指向“f”,所以最后的输出结果是f。

9.B

10.Bstrlen是求字符串的长度,结果为4,sizeof是求数组的长度,而数据在定义时已给出长度为10。

11.A

12.C解析:栈和队列都是操作受限制的线性表,只允许在端点插入和删除。不同点是:栈只允许在表的一端进行插入和删除操作,而队列允许在表的一端进行插入操作,而在另一端进行删除操作。

13.A解析:本题考查的是位运算的知识,对于任何二进制数,和1进行异或运算会让其取反,而和0进行异或运算不会产生任何变化。

14.C宏定义只是做简单的替换,本题中SUB(a+b)*c=(a+b)-(a+b)*c=-20。故本题答案为C选项。

15.AA)【解析】关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。

16.C

17.D在最坏情况下,冒泡排序和快速排序的比较次数都是n(n一1)/2。【知识拓展】所谓冒泡排序,就是将相邻的两个数据比较,如前面的数据大于后面的,则位置互换。这样不停地比较、互换,其实就是把大的数往后排,小的数往前排(就像冒泡一样冒出来了)。

18.C

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

20.C

21.PI=3.14159PI=3.14159解析:本题先定义了一个宏名PI,以后在程序中出现PI都用3.14159替代,但是C语言规定:双引号中的宏名是不进行替换的。

22."bi.dat"fp

23.类类

24.59

25.模块模块

26.66解析:本题考察的是一个嵌套的循环,当满足j<=i时,输出一个“#”号,符合条件的有i=2,j=2;i=3,j=2;i=3,j=3;i=4,j=2;i=4,j=3;i=4,j=4,共输出6个“#”。

27.r+b[k]*x

28.软件工程学软件工程学

29.abcfgabcfg解析:fun函数中for循环语句的作用是将s所指的字符串中从第5个字符到第7个字符依次向前移动两个位置。输出结果为abcfg。

30.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本题考查了函数的存储分类的概念。如果没有特别说明,函数的存储范围是从定义函数的位置到文件的结尾,如果其他文件想使用这个函数,需要用ginclude文件包含命令将定义函数的文件包含进来。

31.x/y=%dx/y=%d解析:本题考查prinff语句的输出格式。printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:printf('<格式化字符串>”,<参最表>)其中,格式化字符串包括两部分内容。一部分足正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以“%”开始,后跟一个或几个规定字符,用来确定输出内容格式。参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用“,”分开,且顺序一一

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

33.物理独立性物理独立性解析:数据的独立性是指数据和应用程序相互独立,分为物理独立性和逻辑独立性。其中物理独立性是指数据的物

温馨提示

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

评论

0/150

提交评论