2021-2022年广东省广州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页
2021-2022年广东省广州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页
2021-2022年广东省广州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页
2021-2022年广东省广州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页
2021-2022年广东省广州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年广东省广州市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下叙述中错误的是()。

A.形参可以是常量、变量或表达式

B.实参可以是常量、变量或表达式

C.实参的类型应与形参的类型赋值兼容

D.实参的个数应与形参的个数一致

2.算法的有穷性是指A.算法程序的运行时间是有限的

B.算法程序所处理的数据量是有限的

C.算法程序的长度是有限的

D.算法只能被有限的用户使用

3.已知一算术表达式的中缀形式为A+B*C–D/E,后缀形式为ABC*+DE/–,其前缀形式为()。

A.–A+B*C/DEB.–A+B*CD/EC.–+*ABC/DED.–+A*BC/DE

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

A.用户定义的函数中可以没有return语句

B.用户定义的函数中可以有多个return语句,以便调用一次返回多个函数值

C.用户定义的函数中若没有return语句,则应当定义函数为void类型

D.函数的return语句中可以没有表达式

5.以下程序运行后,输出结果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}

A.1B.7C.9D.11

6.数字字符“2”的ASCII码为十进制数50,数字字符“5”的ASCII码为十进制数()

A.52B.55C.54D.53

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

A.由3种基本结构构成的程序只能解决简单问题

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

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

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

8.下列程序的输出结果是

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{inta[M][N];

inti,j;

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

for(j=0;j<N;j++)

a[i][j]=i+j-(i-j);

fun(a);}

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

9.线性结构是数据元素之间存在一种()。

A.一对多关系B.多对多关系C.多对一关系D.一对一关系

10.设已包含头文件<string.h>,下列程序段的运行结果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));

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

11.以下选项中,合法的一组C语言数值常量是()。

A.028.5e-3-0xf

B.12.OXa234.5eO

C..1774c1.5Oabc

D.0x8A10,0003.e5

12.C语言规定,程序中各函数之间()

A.既允许直接递归调用也允许间接递归调用

B.不允许直接递归调用也不允许间接递归调用

C.允许直接递归调用不允许间接递归调用

D.不允许直接递归调用允许间接递归调用

13.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。

A.详细设计B.需求分析C.总体设计D.编程调试

14.用链接方式存储的队列,在进行删除运算时()。

A.仅修改头指针B.仅修改尾指针C.头、尾指针都要修改D.头、尾指针可能都要修改

15.

16.

17.广义表(a,b,c,d)的表头是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

18.可以用带表头结点的链表表示线性表,也可用不带表头结点的链表表示线性表,前者最主要的好处是()。

A.可以加快对表的遍历B.使空表和非空表的处理统一C.节省存储空间D.可以提高存取表元素的速度

19.下列能正确进行字符串赋值的是()。

A.chars[5]={"ABCDE"};

B.chars[5]={A,B,C,D,E};

C.char*S;S="ABCDE";

D.char*s;printf("%《",s);

20.有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa,10);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}其输出结果是

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

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

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

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

二、2.填空题(20题)21.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】(要求形参名为b)。main(){doubles[10][22];intn;……fun(s);……}

22.在运算过程中,能够使空表与非空表的运算统一的结构是【】。

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

24.下列循环的循环次数是______。

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

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

charstr[]="ABCD",*p=str;

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

26.【】(黑箱或白箱)测试方法完全不考虑程序的内部结构和内部特征。

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

28.下列程序段中循环体的执行次数是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

29.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。

30.有以下程序:

#include<stdio.h>

intsub(intn)

{return(n/10+n%10);}

main()

{intx,y;

seanf("%d",&x);y=sub(sub(sub(x)));

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

}

若运行时输入:1234<回车>,程序的输出结果是【】。

31.以下程序是求矩阵a,b的和,结果存入矩阵c中,并按矩阵形式输出,请填空。

#include<stdio.h>

main()

{inta[3][4]={13,-2,7,5},{1,0,4,-3},{6,8,0,2}};

intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};

inti,j,c[3][4];

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

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

c[i][j]=【】;

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

{for(j=0;j<4;j++)

printf("%3d",c[i][j]);

printf("\n");}}

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

main()

{inta=1,b=3,c=5;

if(c=a+b)printf("yes\n");

elseprintf("no\n");

}

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

34.设有定义:intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。

scanf("%d",【】);

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

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

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i;

printf(“%d\n”,s);

}

36.以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。

intisprime(inta)

for(i=2;i<=a/2;i++)

if(a%i==0)[8];

[9];

37.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。

38.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【】和选择排序等。

39.数据库系统的主要特点为数据集成性、数据的高______和低冗余性、数据独立性和数据统一管理和控制。

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

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

三、1.选择题(20题)41.若以“a+”方式打开一个已存在的文件,则下列叙述正确的是()。

A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可以进行添加或读操作

B.文件打开时,原有文件内容不被删除,只能进行读操作

C.文件打开时,原有文件内容被删除,只能进行写操作

D.以上三种说法都不正确

42.若有以下定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为3的表达式是()

A.p+=2,*(pd++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p

43.在关系数据库中,对一个关系做投影操作后,新关系的元组个数将()

A.等于原来关系中的元组个数B.大于原来关系中的元组个数C.小于原来关系中的元组个数D.不能确定元组个数

44.已知下面的程序段,正确的判断是______。#defineA3#defineB(A)((A+1)*a)inta=3;......X=3*(A+B(7));

A.程序错误,不允许嵌套定义B.X=93C.X=81D.程序错误,宏定义不允许有参数

45.下列程序的输出结果是______。#include<stdio.h>main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d\n",a);}

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

46.以下叙述中正确的是A.全局变量的作用域一定比局部变量的作用域范围大

B.静态(static)类别变量的生存期贯穿于整个程序的运行期间

C.函数的形参都属于全局变量

D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值

47.有以下程序:#include<stdio.h>prt(int*m,intn)inti;for(i=0;i<n;i++)m[i]++;main()}inta[]={1,2,3,4,5},i;prt(a,5);for(i=0;i<5;i++)printf("%d,",a[i]);}程序运行后的输出结果是()。

A.1,2,3,4,5,B.2,3,4,5,6,C.3,4,5,6,7,D.2,3,4,5,1

48.假定下列程序的可执行文件名为filel.exe,在该程序的子目录下输入命令行:file1ChinaBejing<回车>main(intargc,char*argv[]){while(argc-->1)printf("%s\n",*++argv);}则程序运行后的输出结果是()。

A.filelChinaBejingB.ChinaBejingC.ChinaD.Bejing

49.有以下程序#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n")}从第一列开始输入以

A.66877B.668966C.6677877D.6688766

50.若有定义int*p,n;则通过语句scanf能够正确读入数据的程序段是()。

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p);

C.scanf("%d",n);

D.p=&n;scanf("%d",p);

51.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()A.有零个或多个输入B.有零个或多个输出C.有穷性D.可行性

52.下列程序的输出结果是()。main(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b);}

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

53.以下程序的输出结果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(1+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}

A.20B.21C.22D.23

54.结构化程序设计主要强调的是()。

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

55.当a的值为0时,在下列选项中能正确将a的值赋给变量x、y的是()。

A.(x=a)&&(y=a)B.x=a=yC.(y=a)||(x=a)D.a=x=y

56.算法的时间复杂度是指______。

A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数

57.有以下程序main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0case3:a+=2;case1;case2;a+=3;default,a+=5;}}printf("%d\n",a);}

A.31B.13C.10D.20

58.在C语言中,函数调用时()。

A.实参和形参各占独立的存储单元

B.实参和形参共用存储单元

C.由系统自动确定实参和形参是否共用存储单元

D.由用户指定实参和形参是否共用存储单元

59.下列选项中不会引起二义性的宏定义是()。

A.#defineS(x)x*x

B.#defineS(x)(x)*(x)

C.#defineS(x)(x*x)

D.#defineS(x)((x)*(x))

60.设x=011050,则x=x&01252的值是()。

A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

四、选择题(20题)61.

62.下列关系表达式中,结果为“假”的是()。

A.(3+4)>6

B.(3!=4)>2

C.3<=4

D.

E.3

F.(3<4)=1

63.

64.有以下程序:

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

A.4,5,6,4,5,6,

B.1,2,3,4,5,6,

C.4,5,6,1,2,3,

D.6,5,4,3,2,1,

65.读取二进制文件的函数调用形式为:fread(buffer,size,Count,fp);,其中buffed

代表的是()。

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

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

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

D.一个内存块的字节数

66.以下关于C语言数据类型使用的叙述中错误的是()。

A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

B.若要保存带有多位小数的数据,可使用双精度类型

C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型

D.整数类型表示的自然数是准确无误差的

67.

68.

有以下函数:

charfun(char*p)

{returnP;}

该函数的返回值是()。

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

69.

70.软件按其功能进行分类,可分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是

A.文字编辑软件B.网页浏览器C.数据库管理系统D.视频播放软件

71.若变量已正确定义并赋值,以下符合C语言语法的表达式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a:a+7:c+b

72.有以下程序:

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

A.357B.753C.369D.751

73.

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

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

A.自然连接B.差C.交D.并

75.下列关于二叉树的叙述中,正确的是()。

A.叶子结点总是比度为2的结点少一个

B.叶子结点总是比度为2的结点多一个

C.叶子结点数是度为2的结点数的两倍

D.度为2的结点数是度为1的结点数的两倍

76.下列条件语句中,输出结果与其他语句不同的是()

77.在软件开发中,需求分析阶段产生的主要文档是()。

A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划

78.

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

A.一个C程序中可以包含多个不同名的函数

B.一个C程序只能有一个主函数

C.C程序在书写时,有严格的缩进要求,否则不能编译通过

D.C程序的主函数必须用main作为函数名

80.

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。

例如,输入opdye,则应输出deopy。

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

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

试题程序:

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charc;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j++)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=c;

}

}

voidmain

{

charstr[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

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

proc(str);

printf("\nAftersortingdecendingly:\n

%s",str);

}

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,规定输入的字符串中只包含字母和*号。编写函数fun(),其功能是除了字符串前导和尾部的*号外,将字符串中其他的*号全部删除。形参h指向字符串中第一个字母,形参p指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为“****A*BC*DEF*G********”,删除后,字符串中的内容应当是“****ABCDEFG********”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<string.h>voidfun(char*a,char*h,char*p){}main(){chars[8l],*t,*f;printf(“Enterastring:\n”);gets(s);t=f=s;while(*t)t++;t--;while(*t==‘*’)t--;while(*f==‘*’)f++;fun(s,f,t);printf(“Thestringafterdeleted:\n”);puts(s);}

参考答案

1.A函数中,形参必须是变量,实参可以是常量、变量或表达式,选项A错误,选项B正确;实参的个数和类型要与形参一致,选项C、D正确。本题答案为A选项。

2.A算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。

3.D

4.B函数的值只能通过return语句返回主调函数。函数中允许有多个return语句,但每次只能调用一个return语句,因此只能返回一个函数值。不返回函数值的函数,可以明确定义为“空类型”,类型说明符为void。故本题答案为B选项。

5.C

6.D

7.A由顺序、选择(分支)、循环3种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A选项错误。故本题答案为A选项。

8.B解析:若有以下定义:inta[3][4],i,j;且当0<=i<3,0<=j<4,则可以有以下几种方式来引用数组中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。

9.D

10.A解析:头文件<string.h>是字符串处理函数对应的头文件,要想调用C语言的库函数时,都要在程序中嵌入该函数对应的头文件,否则无法使用库函数。

strcpy(s1,s2)把s2中的字符串复制到s1中,所以结果就为s2的长度。

11.BC语言中,八进制数其开头必须是数字“0”,其数字包括0~7,因此选项A错误。浮点数据的指数形式表示中,字母e或E之后的指数必须为整数,所以选项C错误。选项D中,整型数据l0,000的表示形式是错误的。

12.A解析:C语言规定,程序中各函数之间既允许直接递归调用也允许间接递归调用。

13.C解析:软件系统结构的总体设计包括:基于功能层次结构建立系统、按功能划分成模块的层次结构、确定每个模块的功能、建立与已确定的软件需求的对应关系、确定模块间的调用关系和模块间的接口、评估模块划分的质量等方面。详细设计的任务是:在使用程序设计语言编制程序以前,对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求,通常包括:功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。编程调试的任务是诊断和改正程序中潜在的错误。综上所述。软件功能分解只能发生在总体设计阶段。

14.D

15.A

16.D

17.A

18.B

19.C选项A、B的空间不够;字符串存储要有结束符\0,且要占用一个空间,printf用来输出字符,不能输入字符串。

20.C解析:本题考核的知识点是程序中算法的基本分析。sort()函数作用是将数组aa中的下标为偶数的元素按大到小排序.主函数中首先定义了一个长度为10的数组并赋值,然后调用sort()函数,将数组aa中奇数个元素的值按大到小排序,因此执行完该函数后,数组中奇数个元素的值为9,7、5、3和1,故主函数中最后通过一个for循环输出数组aa中各元素的值为9、2、7、4、5、6、3、8、1和10,所以,4个选项中选项C符合题意。

21.

22.循环链表循环链表解析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:①在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。②循环链表中最后一个结点的指针不是空,而是指向表头结点。

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

24.00解析:解答本题需要注意表达式“k=0”,它是赋值表达式而不是关系表达式,不论k为何值,表达式k=0总会使k为0,所以不能进入循环。

25.6868解析:本题考查如何用指针引用数组元素。本题先定义了一个指向字符型数组str的指针p,指针p指向数组str的首地址,p+3将指针指向str[3],*(p+3)指的是字符“D”,输出时是以“%d”格式输出的,即输出其相应ASCII码值68。

26.黑箱黑箱解析:本题考查了软件测试中的黑箱测试。黑箱测试是根据程序规格说明所规定的功能来设计测试用例,它不考虑程序的内部结构和处理过程。常用的黑箱测试技术分为等价类划分、边界分析、错误猜测以及因果图等。

27.概念设计阶段概念设计阶段解析:数据库设计分为以下六个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。

28.33解析:本题考查do…while语句形式:

do循环体

while表达式

首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。第1次循环:b+=2,b=2,a-=2+b,a=11;第2次循环:b=4,a=5;第3次循环:b=6,a=-3,此时再判断循环条件不满足,退出循环。

29.E-R图E-R图解析:数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将E-R图转换成关系模式。

30.1010解析:函数sub递归调用的返回值被作为再次调用sub函数的实参传给函数sub的形参,共进行3次递归调用。第1次调用sub(1234)的返回值为1234/10+1234%10=127;第2次调用sub(127)的返回值为127/10+127%10=19;第3次调用sub(19)的返回值为19/10+19%10=10。所以程序的输出为10。

31.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:此题是双重for循环结构应用在了二维数组中。外层for循环用来控制二维数组的行,内层for循环控制二维数组的列。

32.yesyes解析:if语句的条件语句为c=a+b=1+3=4,即条件为真,执行语句printf('yes\\n');,输出结果为yes。

33.软件工程学软件工程学解析:为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径。逐步形成了软件工程的概念,开辟了工程学的新兴领域——软件工程学。

34.k*kk\r\n*k解析:scanf()函数有两个参数,第一个参数是格式控制部分(格式控制部分是字符串,主要由%号和格式字符组成)第二个参数是一地址列表(地址列表是由多个地址组成,可以是变量的地址,也可以是字符串的首地址)。而第一个空位于scanf()函数的第二个参数处,所以,第一个空应该填地址k。printf()函数有两个参数,第一个参数是输出格式字符串(输出格式字符串是由控制输出格式的字符和非格式字符组成,通常是字符常量。非格式字符作为输出数据的间隔,输出时原样输出)第二个参数为一输出表达式表(输出表达式表是由若干个需要计算和输出的表达式组成的,表达式之间用逗号分隔开)。而第二个空位于printf()函数的第二个参数处,所以应该填*k。

35.55解析:此程序中,for循环语句后面直接跟了一个“;”,表明循环体为空。输出语句不在for循环体内,所以在循环执行完毕后才输出s的值。s、i的初值分别为0和1,判断循环条件,表达式“1<3”成立,执行“i++,s+=i”后,i和s的值分别为2和1,继续判断循环条件,表达式“2<3”成立,执行“i++,s+=i”后,i和s的值分别为3,再次判断循环条件,表达式“3<3”不成立,循环结束。

36.如果a能被i整除,则a是素数,返回值为0。如果a不能被i整除,则a不是素数,返回值为1。

37.调试调试

38.交换排序交换排序解析:常见的排序方法有插入排序(包括简单插入排序法和希尔排序法等)、交换排序(包括冒泡排序和快速排序法等)和选择排序(包括简单选择排序和堆排序等)。注意:常见的排序方法及其作用机制和区别。

39.共享性共享性解析:数据库系统中的数据能被不同的应用程序使用,实现了数据的高度共享,从而降低了数据的冗余,这也是数据库的主要目的。

40.55解析:分析程序,当a=3;b=4;c=5时,判断语句a>b不成立,所以不执行后面的语句,直接执行“printf('%d\\n',c);”语句,输出c的值,输出结果为5。

41.A解析:本题考查文件使用方式标识符,以“a+”方式打开一个已存在的文件,则表示保留文件中原有的数据,文件的位置指针在文件末尾,此时,可以进行追加或读操作。

42.A

43.A解析:投影是从关系中指定若干个属性组成新的关系,是从列的角度进行的运算,相当于对关系进行垂直分解,与元组个数无关,产生的新关系元组个数与原来关系中的元组个数相等。

44.C解析:本题的宏定义是合法的,宏定义展开为3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。

45.B

46.B解析:若在函数中定义与全局变量名字相同的局部变量,则全局变量在该函数中将不起作用,因此全局变量的作用域并不一定比局部变量的作用域大,故选项A不正确;静态变量一旦定义,将在整个程序的运行期间都存布,故选项B正确;函数的形参只在函数调用的时候分配存储空间,在退出函数时收回存储空间,因此是局部的,故选项C不正确;没有赋值的auto型变量的初值是随机的,没有赋值的static型变量的初值是0,故选项D不正确。所以,B选项为所选。

47.B解析:prt(a,5);用数组名a作函数实参,不是把a数组的值传递给形参m,而是将数组a的首地址传递给指针变量m,使指针变量m指向数组a的首地址,这样他们就占用同一段内存单元。当改变了指针变量所指向的存储单元中的内容,也就改变了数组a中的元素。函数pit的作用是将指针变量m所指向的存储单元中的各元素值加1,也就是数组a中各元素的值加l,所以输出结果为:2,3,4,5,6,

48.B解析:主函数的第一个参数argc为整形参数,记下从命令行输入的参数的个数;第二个参数argv是一个字符型的指针数组,它的每一个指针指向命令行输入的参数字符数。在本例中argc的值为3,argv[0]指向字符串.“filel”,argv[l]指向参数字符串“China”,argv[2]指向字符串“Bejing”。在main()函数中,while循环执行了2次。第1次循环,argc=3,3>1为真,argc-1=3-1=2,执行循环体输出*++argv,argv为字符型的指针数组的数组名,代表数组的首地址,同时也是数组第1个元素的地址,++argv指向数组的第2个元素,第2个元素是一个指针,它指向字符串“China”。第2次循环,argc=2,2>1为真,argc-1=2-1=1,执行循环体输出*++argv,这次循环畔++argv指向数组的第3个元素,第3个元素是一个指针,它指向字符串“Bejing”。argc=1时,1>1为假,退出循环。所以,4个选项中选项B符合题意。

49.A解析:本题主要考查了字符输入输出函数getchar和putchar的使用。getchar函数用来从标准输入设备上读入一个字符,putchar(c)函数是将字符变量c中的字符输出到标准输出设备上,并且字符可以看作整数参与运算。

50.D解析:通过定义int*p,p是一个整型指针,p=&n是使p指向变量n,而p是一个指针,输入时不需再用地址运算符。

51.B解析:本题考核的知识点是算法的性质。算法是为解决某个特定问题而采取的确定的且有限的步骤,一个算法应当具有以下5个基本特性:1.有穷性,就是指一个算法应当包含有限个操作步骤。2.确定性,就是说算法中每一条指令必须有确切的含义,不能有二义性,对于相同的输入必能得出相同的执行结果。3.有零个或多个输入。4.可行性,就是说算法中指定的操作,都可以通过已经实现的基本运算执行有限次实现,5.有一个或多个输出。由此可知选项B不正确,所以,4个选项中选项B符合题意。

52.B解析:算术运行符“/”、“%”的优先级处于同一级,并且两者的结合性都是从左到右。所以算术表达式运算过程为:a=25/10%9=2%9=2:当逻辑运算符“&&”两边的值都是非零时,逻辑表达式的值才为真(即为1)。所以b=2&&(-1)=1。

53.B解析:按程序的流程走一遍,可以得到p[0]=0,p[1]=2,p[3]=6;执行三次k+=p[i]*2,相当于k=5+0*2+2*2+6*2=21。

54.D解析:程序不仅是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。

55.C解析:选项A先执行x=a,x的值为0,不再执行y=a,因此y未被赋值。选项B是将y的值赋给a和x,而未能实现将a的值赋给变量x、y。选项C先执行y=a,将a的值赋给y;再执行x=a,将a的值赋给x。选项D同B。所以选项C符合题意。

56.C解析:算法的时间复杂度实际上就是执行算法程序所需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算的工具以及程序员的水平无关。选项A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项B错误,因为算法所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。选项D错误,因为根据一个算法所编制出的程序之中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度。所以,本题正确答案为C。

57.A

58.A解析:本题考查函数调用时的参数传递。函数的形参是函数定义时由用户定义的形式上的变量,实参是函数调用时,主调函数为被调函数提供的原始数据。

在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间不影响。

59.D本题考查参数的宏替换。为避免二义性有些参数表达式必须加括号,否则在实参表达式替换时,会出现错误。例如x为(m+n)时替换A:m+n*m+n,所以选项D最符合条件。

60.A解析:本题主要考查按位与运算,x=011050的二进制形式为0001001000101000,01252的二进制形式为0000001010101010,两者相与得00000010001010000。

61.D

62.B\n在一个表达式中,括号的优先级高,先计算3!=4,为真即是l,1>2为假。

\n

63.B

64.A首先利用fwrite函数将数组a中的数据写到文件中,接着fseek函数的功能是读文件的位置,指针从文件头向后移动3个int型数据,这时文件位置指针指向的是文件中的第4个int数据”4”,然后fread函数将文件fp中的后3

个数据4,5,6读到数组a中,这样就覆盖了数组中原来的前3项数据。最后数组中的数据就成了{4,5,6,4,5,6}。

65.Afread(void*buffer,sizet_size,sizet__count,FILE*stream);功能是从一个文件流中读数据,读取countl"元素,每个元素disize个字节,如果调用成功返回count。buffer:用于接收数据的内存地址,大小至少是size*count个字节;size:单个元素的大小,单位是字节;count:元素的个数,每个元素占size个字节;streaili:输入流。故本题答案为A)。

66.CC语言中没有逻辑类型,所以选项C错误。若要保存带有多位小数的数据,可以用单精度类型,也可以用双精度类型。处理包含不同类型的相关数据可以自定义结构体类型。整数类型可以无误差地表示自然数。故本题答案为C选项。

67.B

68.B

69.B

70.C本题考查不同种类软件的划分。

应用软件是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件和用户程序。应用软件包括办公室软件(文书处理器、档案管理系统、文本编辑器)、互联

温馨提示

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

最新文档

评论

0/150

提交评论