2022-2023年山东省青岛市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页
2022-2023年山东省青岛市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页
2022-2023年山东省青岛市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页
2022-2023年山东省青岛市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页
2022-2023年山东省青岛市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年山东省青岛市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.数据处理的最小单位是()。

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

2.

3.有以下程序:#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

4.

有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

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

A.235B.0235C.02356D.2356

5.

6.下列程序的输出结果是()。#include<stdio.h>voidp(int*x){printf("%d¨,++*x);}voidmain(){inty=3;p(&y);}A.3B.4C.2D.5

7.程序调试的任务是()。

A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误

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

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

9.设有以下语句

charchl,ch2;scanf("%c%C",&chl,&ch2);

若要为变量chl和ch2分别输入字符A和B,正确的输入形式应该是()。

A.A和B之间用逗号间隔

B.A和B之间不能有任何间隔符

C.A和B之间可以用回车间隔

D.A和B之间用空格间隔

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

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

11.

有如下程序:

main()

{intn[5]={0,0,0},i,k=2;

for(i=0;i&printf("%d\n",n[k]););

}

该程序的输出结果是()。

A.不确定的值B.2C.1D.0

12.对一个有A,B,C,D随机组成的序列进行哈夫曼编码,据统计,各个元素的概率分别为:P(A)=0.4,P(B)=0.35,P(C)=0.2,P(D)=0.05,请问该编码的平均期望编码长度为()bits。

A.1.45B.1.74C.1.85D.1.92

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

A.autoB.staticC.registerD.void

14.在有序表(12,24,36,48,60,72,84)中二分查找关键字72时所需进行的关键字比较次数是()

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

15.

16.

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

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

B.在程序的开头包含头文件stdio.h后,可以给指针变量赋NULL值

C.将一个指针变量中的值赋给另一个指针变量,则这两个指针变量指向同一地址

D.C语言中函数返回值的类型可以是简单的数据类型,也可以是指针类型

18.以下说法错误的是()。

A.C语言标识符中可以有多个字母、数字和下划线字符

B.C语言标识符中下划线字符可以出现在任意位置

C.C语言标识符不能全部由数字组成

D.C语言标识符必须以字母开头

19.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen(“myfile.dat”,“w”);fputs(“abc”,fp);fclose(fp);fp=fopen(“myfile.dat”,“a+”);fprintf(fp,“%d”,28);rewind(fp);fscanf(fp,“%s”,str);puts(str);fclose(fp);}程序的运行结果是()。

A.abcB.28cC.abc28D.因类型不一致而出错

20.以下选项中非法的表达式是()。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

二、2.填空题(20题)21.若有如下定义,doublea[100];,则a数组元素的下标上限是【】。

22.【】是数据库设计的核心。

23.下面程序的运行结果是______。

typedefunionstudent

{

charname[10];

longsno;

charsex;

floatscore[4];

}STU;

main()

{

STUa[5];

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

}

24.以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。

#defineN3

#defineM3

select(inta[N][M],int*n)

{inti,j,row=1,colum=1;

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

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

if(a[i][j]>a[row][colum]){row=i;colum=j;}

*n=【】;

return(【】);

}

main()

{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;

max=select(a,&n);

printf(“max=%d,line=%d\n”,max,n);

}

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

26.软件生命周期包括8个阶段。为了使各时期的任务更明确,又可分为3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于【】期。

27.注释一般分为序言性注释和______注释。

28.设Y是int型变量,请写出判断Y为奇数的关系表达【】。

29.以下条件表达式可计算:1+|a|的值,请填空。

a>=0?【】:【】

30.若有定义:inta=10,b=8,c=4;然后顺序执行下列语句后,变量a中的值是()。c=(b-=(a-4));a=(c%2)+(b-1);

31.下列表达式用于判断y是否为闰年。闰年的判断条件是:年号能被4整除但不能被100整除或年号能被400整除,请填空______。

32.在软件测试中,动态测试和静态测试手段只能发现程序中的错误,而不能证明程序中不存在错误,只有【】证明才有可能证明程序的正确性。

33.以下程序用以删除字符串中所有的空格,请填空。

#include<stdio.h>

main()

{chars[100]={"OurteacherteachClanguage!"};inti,j;

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

if(s[i]!=''){()}

s[j]='\0';

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

}

34.下列程序的功能是将字符串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);

}

35.以下程序运行时,若从键盘输入:102030<回车>,输出的结果是【】。

#include<stdio.h>

main()

{inti=0,j=0,k=0;

scanf("%d%*d%d",&i,&j,&k);

prinff("%d%d%d\n",i,j,k);

}

36.以下程序运行后的输出结果是______。

main()

{

inta,b,c;

a=25;

b=025;

c=0x25;

printf("%d%d%d\n",a,b,C);

}

37.一棵二叉树第六层(根节点为第一层)的节点数最多为______。

38.表示条件;10<x<100或x<0的C语言表达式是【】。

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

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

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

40.衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准,其中()是度量一个模块功能强度的一个相对指标。

三、1.选择题(20题)41.对下述程序的判断中,正确的是

#include<stdio.h>

voidmain()

{char*p,s[128];

p=s;

while(strcmp(s,"End"))

{printf("Inputastring:");gets(s);

while(*p)

putchar(*p++);}}

A.此程序循环接收字符串并输出,直到接收字符串"End"为止

B.此程序循环接收字符串,接收到字符串"End"则输出,否则程序终止

C.此程序循环接收字符串并输出,直到接收字符串"End"为止,但因为代码有错误,程序不能正常工作

D.此程序循环接收字符串并将其连接在一起,直到接收字符串"End"为止,输出连接在一起的字符串

42.下述程序的输出结果是()。#include<stdio.h>voidmain(){chara=3,b=1;charc=a^b<<2;printf("%d",C;}

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

43.若有以下程序#include<stdio.h>voidf(intn);main(){voidf(intn);f(5);}voidf(intn){printf(“%d\n”,n);}则以下叙述中不正确的是

A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

B.若在主函数前对函数f进行说明,则在主函数和其后的其他的其他函数中都可以正确调用函数f

C.对于以上程序,编译时系统会提示出错信息;提示对f函数重复说明

D.函数f无返回值,所以可用void将其类型定义为无值型

44.下列叙述中,不符合良好程序设计风格要求的是()

A.程序的效率第一,清晰第二B.程序的可读性好C.程序中要有必要的注释D.输入数据前要有提示信息

45.下面叙述正确的是______。A.算法的执行效率与数据的存储结构无关

B.算法的空间复杂度是指算法程序中指令(或语句)的条数

C.算法的有穷性是指算法必须能在执行有限个步骤之后终止

D.以上三种描述都不对

46.结构化程序流程图中一般包含3种基本结构。下述结构中,______不属于其基本结构。

A.顺序结构B.嵌套结构C.循环结构D.条件结构

47.当执行下面两个语句后,输出的结果为()charcl=97,c2=98;printf("%d%c",c1,c2);

A.9798B.97bC.a98D.ab

48.若有定义:“inta[2][3];”,则对a数组的第i行第j列元素的正确引用为()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

49.设有以下定义:inta=0;doubleb=1.25;charc='A';#defined2则下面语句中错误的是()。

A.a++;B.b++;C.c++;D.d++;

50.下列程序的输出结果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}

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

51.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。

A.大写字母B.连接符C.数字字符D.下划线

52.c语言规定,在一个源程序中,main函数的位置()。

A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后

53.软件是指()。A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合

54.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用"",(双撇号)括起时,寻找被包含文件的方式是()。

A.直接按系统设定的标准方式搜索目录

B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索

C.仅仅搜索源程序所在目录

D.仅仅搜索当前目录

55.一个存储结点存放一个______。

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

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

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

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

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

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

57.数据库技术的根本目标是要解决数据的()。

A.存储问题B.共享问题C.安全问题D.保护问题

58.数据结构中,与所使用的计算机无关的是数据的()。A.存储结构B.物理结构C.逻辑结构D.物理和存储结构

59.下面不属于软件设计原则的是

A.抽象B.模块化C.自底向上D.信息隐藏

60.设血a=12;,则执行完语句a+=a-=a*a;后,a的值是______。

A.522B.264C.144D.-264

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

程序的运行结果是()。

A.*7

B.*3*5

C.*5

D.*2*6

62.以下数组定义中错误的是()。

63.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是()。

A.提高耦合性降低内聚性有利于提高模块的独立性

B.降低耦合性提高内聚性有利于提高模块的独立性

C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度

D.内聚性是指模块间互相连接的紧密程度

64.假定X和Y为double型,则表达式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

65.

66.若变量已正确定义,在if(W)printf(”%d、n”,k);中,以下不可替代w的是()。A.ab+1:B.ch=getchar()C.a==b+cD.a++

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

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

68.

69.

A.*P=*q;B.P=q;C.*P=&nl;D.P=*q;

70.以下不正确的定义语句是

A.inty[5.3]={0,1,3,5,7,9};B.doublex[5]={2.0,4.0,6.0,8.0,10.0};

C.charc1[]={’1’,’2’,’3’,’4’,’5’};D.charc2[]={’\x10’,’\xa’,’\x8’};

71.运算符________的优先级最高。

A.[]B.+=C.?:D.++

72.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。

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

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

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

74.有以下程序:

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

A.55.B.50C.45D.60

75.

76.fscanf函数的正确调用形式是

A.fscanf(文件指针,格式字符串,输出表列);B.fscanf(格式字符串,输出表列,文件指针);

C.fscanf(格式字符串,文件指针,输出表列);D.fscanf(文件指针,格式字符串,输入表列);

77.

78.

79.

80.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。

A.-369B.369C.0.369D.整数集合{1,2,3,4,5}

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:求出以下分数序列的前m项之和。2/1,3/2,5/3,8/5,13/8,21/13,…和值通过函数值返回main()函数。例如,若m=6,则应输出10.007051。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。例如,若字符串中的内容为****a*bc*def*g。***,删除后,字符串中的内容则应当是****a*bc*def*g。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:

参考答案

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

2.C

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

4.B

\n本题考查分支语句用法加个句号因为变量的初始值分别为k一5、n一0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0、k=4,程序进行第2次循环,执行case4:这个分支,结果是n=2、k=3,打印出2;这时n=2、k=3,break跳出,程序进行第3次循环,执行case3:这个分支,结果是n=3、k=2,打印出3;这时n一3、k2,b¨ak跳出,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5、k=1,打印出5,break跳出,这时因为n=5不满足n<5的循环条件,因此循环结束。

\n

5.C

6.B本题考查函数调用时的参数传递。在函数调用时,形参是指向实参的指针变量,则printf的执行结果为++x;x=3,则3+1=4。

7.D程序调试的任务是诊断和改正程序中的错误。

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

9.B\nscanf输入函数中,格式控制J必须严格按照函数中的要求进行输入,在scanf('%c%c',&chl,&ch2)的格式控制语句中没有任何字符进行间隔,所以在输入时也不能使用任何字符进行间隔,所以答案选择B。

\n

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

11.D

\n本题for循环中,当i=0时,判断条件i&printf('%d\n',n[k]),此时i的值是0,输出n[k]的值也为0,0&0结果还是0,条件不成立,退出循环。所以最后输出结果为0。

\n

12.C

13.A

14.B

15.C

16.B

17.A通过指针变量存取某个变量值的方式称为“间接存取”方式,选项A错误;头文件stdio.h中定义了NULL,在程序的开头包含stdio.h后,可以给指针变量赋NULL值,表示一个空指针,选项B正确;将一个指针变量中的值赋给另一个指针变量,这两个指针变量指向同一地址,选项C正确;C语言中函数返回值的类型可以是简单的数据类型,也可以是指针类型,选项D正确。故本题答案为A选项。

18.DC语言的合法的标识符的命名规则是:标识符可以由字母、数字和下划线组成,并且第1个字符必须是字母或下划线。选项D错误。本题答案为D选项。

19.Cfprintf函数将内容写入硬盘的文件,fputs函数将字符串写入文件,最终文件的内容为abc28。故本题答案为C选项。

20.D解析:选项A)在C语言中是一个合法的关系表达式,但它并不代表数学式o<=x<100。计算0<=x<100时,从左到右结合,先计算0<=x,其结果只能是0或1,然后再比较0<100或1<100。根据运算符的优先级,选项B)先判断j==0是否成立,其结果只能是0或1,然后再将0或1赋给i。选项C)中,(char)(65+3)为类型强制转换,将整数型数据转换为字符型。选项D)是将一个数据赋给一个表达式,等号左边不合要求,所以错误。

21.9999解析:数组的下标是从0开始存放数据的,而不是1,当数组大小为n时,其下标从0开始,到n-1,所以本题的答案为99。

22.数据模型数据模型

23.8080解析:本题考查的知识点是共用体数组变量所占内存的长度。数组a是共用体变量,共用体类型变量所占的内存长度为最大成员的长度,即单精度数组的长度,为4×4=16,因此,数组a所占的内存长度为5×16=80,所以最后输出的s的值为80。

24.rowa[row][colum]row\r\na[row][colum]解析:指针变量作为函数参数及二维数组的一个典型算法——求最大值及其下标。通过对题意的分析,在select()函数中,变量row的作用是用来记录最大元素的行下标,colum的作用是用来记录最大元素的列下标。程序中通过一个循环求得数组元素中最大值的行列下标,分别存放在变量row和colum中,根据题意,应该把行下标赋值给形参指针变量n指向的变量,把最大值a[row][colum]作为函数值返回。

25.外模式外模式解析:外模式由概念模式推导而出,给出了每个用户的局部数据描述,即数据视图。

26.软件开发软件开发解析:软件生命周期可以分为3个时期:软件定义期,包括问题定义、可行性研究和需求分析3个阶段;软件开发期,包括系统设计、详细设计、编码和测试4个阶段;软件维护期,即运行维护阶段。编码和测试属于软件开发阶段。

27.功能性功能性解析:注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,给出程序的整体说明;功能性注释一般嵌在源程序体之中,主要描述其后的语句或程序做什么,

28.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或不为0。本题具体做法如下:Y%2=1或Y%2!=0。

29.1+a1-a1+a\r\n1-a解析:因为题目中求的是1+|a|的值,即1和a的绝对值之和。所以根据数学中求绝对值的规则,当a>=0时,绝对值取本身,当a<0时,绝对值取相反数,再结合条件运算符的计算规则可得到本题的答案为a>=0。注意:逗号表达式的求值规则。

30.22解析:本题考查的是基本赋值运算符和赋值表达式。表达式c=(b-=a-4)等价于c=(b=b-a+4)等价于c=b=2;表达式a(c%2+(b-1))等价于a=1+2-1=2;因此最后a的值为2。

31.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查逻辑表达。年号能被4整除(y%4==0)但不能被100整除(y%100!=0),两者是与的关系,年号能被400整除即y%400==0,与前两项是或的关系。

32.程序正确性程序正确性

33.s[j]=s[i];j++;s[j]=s[i];j++;解析:本题中相当于字符串s中存储着含有空格的字符,当发现空格的时候就用这个空格字符后面的字符前移覆盖这个空格字符,依次类推向后继续。因此,应填s[j]=s[i];j++;两条语句。

34.S[j++]=s[i]S[j++]=s[i]解析:循环开始后如果数组s中储存值与字符c相同,则i++直接跳过当前值;如果不相同,则将当前值赋予数组指定位置,并通过j++将下标加1,指向下一元素要存储的位置。

35.1030010300解析:在scanf格式控制符中有一个“*”附加说明符,表示跳过它指定的列数。程序中'%d%*d%d'表示首先将10赋给i,然后遇%。d读入整数但不赋给任何变量,最后将读人的整数30赋给变量j,变量k并没有重新赋值,仍为初始值0。所以输出的结果为10300。

36.252137252137解析:本题中先定义了整型变量a、b和c,然后分别给赋值a为25,b为八进制的025,c为十六进制0x25。然后调用pruntf()函数将a、b和c分别用十进制输出,且中间用空格隔开,八进制025转换为十进制的值为21,十六进制的0x25转换为十进制的值为37,故最后的输出结果为252137。

37.在二叉树的第k层上,最多有2k-1(k>1)个结点。

38.(x>10&&x<100)||x<0

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

40.内聚性内聚性解析:模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。内聚性是度量一个模块功能强度的一个相对指标,耦合性则用来度量模块之间的相互联系程度。

41.B解析:此题考查了字符串输入函数gets和字符串比较函数strcmp,另外还有字符输出函数putchar。gets从标准输入设备中读入全部字符,包括空格,直到遇到回车符为止。strcmp是字符串比较函数,即strcmp(字符串1,字符串2),如果字符串1=字符串2,则函数值为0;如果字符串1>字符串2,则函数值为一正整数;如果字符串1<字符串2,则函数值为一负整数。putchar(c)函数将字符c输出到标准输出设备上。

42.B

43.C解析:若一个函数定义在主调函数之后,其返回值不是int或char型,则必须对之进行函数说明。可在函数外说明也可以在函数内说明,在函数外说明,在其后的所有函数均可调用该函数,若在函数内说明,则只能在本函数内调用该函数。函数只能定义一次,但函数说明可以出现多次。

44.A解析:本题考查软件工程的程序设计风格。软件在编码阶段,力求程序语句简单、直接,不能只为了追求效率而使语句复杂化。除非对效率有特殊的要求,程序编写要做到清晰第一、效率第二。

人们在软件生存期要经常阅读程序,特别是在软件测试和维护阶段,编写程序的人和参与测试、维护的人都要阅读程序,因此要求程序的可读性要好。

正确的注释能够帮助读者理解程序,可为后续阶段进行测试和维护提供明确的指导。

所以注释不是可有可无的,而是必须的,它对于理解程序具有重要的作用。

I/O信息是与用户的使用直接相关的,因此它的格式应当尽可能方便用户的使用。在以交互式进行输入/输出时,要在屏幕上使用提示符明确提示输入的请求,指明可使用选项的种类和取值范围。经过上述分析可知,选项A是不符合良好程序设计风格要求的。

45.C解析:算法的执行效率与数据的逻辑结构和存储结构都有很紧密的关系。算法的空间复杂度是指执行该算法需要的内存空间,并非算法程序中指令的条数。算法一般应该具有以下4个特征:可行性、确定性、有穷性和拥有足够情报。其中,有穷性是指算法必须能在执行有限个步骤之后终止,否则可能失去实际意义。

46.B解析:结构化程序流程图中包括顺序结构、条件结构和循环结构3种基本结构,而不包含嵌套结构。

47.B

48.A解析:本题考查如何通过地址来引用数组元素。通过地址来引用数组元素的方法有下列5种:

①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。

49.D解析:本题考核的知识点是在自加运算符的运算对象。自加运算对象可以是整型变量也可以是实型变量,但不能是表达式和常量。本题中,#defined2定义了d为常数2,不能在对d进行自加运算.故选项D是个不正确的语句,所以,4个选项中选项D符合题意。

50.C解析:带参数的宏定义命令行形式如下:

#define宏名(形参表)替换文本

在编译的时候编译预处理程序用“替换文本”来替换宏,即M(n,m)被替换为n%m,之后计算,将计算的结果赋给a。注意,宏替换是在编译时由预处理程序完成的,宏替换不占用运行的时间,而函数调用是在程序运行时进行的,在函数的调用过程中需要占用一系列的处理时间。

51.B解析:在C语言中,用户标识符命令规则规定:变量名只能由字母、数字或下划线3种字符组成,且第一个字符必须为字母或下划线。在C语言中,大写字母和小写字母被认为是两个不同的字符。据此规定A)、D)、C)三个选项是正确的,而B)选项是连字符,不在C语言规定的命名变量标识符的范围内。

52.C解析:不论main函数在整个过程中的位置如何,一个C程序总是从main函数开始执行的。

53.D软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。因此本题的正确答案是D。

54.B解析:本题考查库函数调用的知识点。格式1:#include<文件名>,预处理程序在标准目录下查找指定的文件;格式2:#include'文件名',预处理程序首先在引用被包含文件的源文件所在的目录下搜索指定的文件,如没找到,再按系统指定的标准目录搜索。

55.B

56.C解析:字符串存储要有结束符“\\0”且要占用一个空间,选项A)、B的空间不够:printf用来输出字符,不能输入字符串.

57.B解析:数据库产生的背景就是计算机的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。共享的含义是多个用户、多种语言、多个应用程序相互覆盖的使用一些公用的数据集合。在这样的背景下,为了满足多用户、多应用共,享数据的要求,就出现了数据库技术,以便对数据库进行管理。因此,数据库技术的根本目标就是解决数据的共享问题。故选项B正确。

58.C数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构(物理结构)及数据上的运算集合。数据的逻辑结构只抽象地反映数据元素之间的逻辑关系,即数据元素之间的前后件关系,而不管它在计算机中的存储表示形式。

59.C解析:软件设计的原则包括:抽象、模块化,信息隐蔽和模块独立性。所以自底向上不是软件设计原则。答案为C。

60.D

61.A整个程序中只有对i增加的语句而没有对i减少的语句,所以2、3都不可能出现,选项B)和D)错误。而i=5时第一个if语句的表达式为假,所以选项c)也错误。

62.AA)选项dPx[2][31定义的是一个2行3列的二维数组,而在给数组元素赋值时却赋成了3行,因此错误。

63.B模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元

温馨提示

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

评论

0/150

提交评论