2021年湖南省怀化市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页
2021年湖南省怀化市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页
2021年湖南省怀化市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页
2021年湖南省怀化市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页
2021年湖南省怀化市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

2021年湖南省怀化市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.数据结构若采用链式存储结构,要求内存中可用存储单元的地址()。

A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以

2.用不带头结点的单链表存储队列,其头指针指向队头结点,尾指针指向队尾结点,则在进行出队操作时()。

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

3.给出以下定义:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};则正确的叙述为()。

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

4.在一个顺序队列中,队首指针指向队首元素的____位置。

A.前一个B.后一个C.当前D.最后一个

5.对含有16个元素的有序表进行二分查找,关键字比较次数最多是()

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

6.有定义语句:“intx,y;”,若要通过“scanf("%d,%d,&x,&y);”语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是

A.1112<回车>B.11,12<回车>C.11,12<回车>D.11,<回车>12<回车>

7.有以下程序#include<stdio.h>intfun(chars[]){intn=0;while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)return(n);}main{chars[10]={6,1,*,4,*,9,*,0,*);printf("%d",fun(s));}程序运行的结果是()。A.9B.61490C.61D.5

8.

9.设一棵满二叉树共有15个结点,则在该满二叉树中的叶子结点数为()

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

10.

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

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

12.下列二叉排序树中查找效率最高的是()

A.平衡二叉树B.二叉查找树C.没有左子树的二叉排序树D.没有右子树的二叉排序树

13.在一个C语言源程序文件中所定义的全局变量,其作用域为()。

A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和extern说明来决定范围

14.人们提出了用______的原理来设计软件,这就是软件工程学诞生的基础。

A.计算机科学B.数学C.工程学D.运筹学

15.层次型、网状型和关系型数据库划分原则是()。

A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式

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

A.在C语言中,预处理命令行都以“#”开头

B.预处理命令行必须位于c源程序的起始位置

C.#include<stdi0.h>必须放在C程序的开头

D.C语言的预处理不能实现宏定义和条件编译的功能

17.

18.

19.若有定义语句:"inta[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是()。

A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]

20.当执行下面的程序时,如果输入ABC,则输出结罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789

二、2.填空题(20题)21.设有定义:

struct{inta;floatb;charc;}abc;*p_abc=&abc;

则对结构体成员a的引用方法可以是abc.a和p_abc【】a。

22.数据管理技术的发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【】。

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

charch='B';

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

24.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

FILE*myf;longf1;

myf=【】("test,t","rb");

fseek(myf,(),SEEK_END;f1+ftell(myf);

fclose(myf);

printf("%1d\n",f1);

25.设有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

执行上面的程序段后,*(ptr+5)的值为______。

26.栈中允许进行插入和删除的一端叫做______。

27.定义charch="$";inti=1,j;执行j=!ch&&i++以后,i的值为______。

28.【】是从二维表列的方向进行的运算。

29.算法执行过程中所需要的基本运算次数称为算法的______。

30.当所有结点的权值都相等时,用这些结点构造的二叉排序树是【】。

31.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。

main()

{inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=【】;

}

}

printf("sum=%d,count=%d\n",sum,count);

}

32.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。

【】(double,double);

main()

{doublex,y;

seanf("%1f%1f",&x,&y);

pfintf("%1f\n",max(x,y));

}

doublemax(doublea,doubleb)

{return(a>b?a:b);}

33.程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

34.以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for([11];i<10;i++)

a[i-1]=x[i]+[12];.

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

printf("");

}

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

main()

{doubles[10][22];

intn;

fun(s);

}

36.若有如下程序:

voidsub()

{staticintx=6;

x/=2;printf("%d",x);}

main()

{intm;

for(m=0;m<=2;m++)sub();}

则程序运行后的输出结果是【】。

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

#include<stdio.h>

int(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,d);

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

}

38.诊断和改正程序中错误的工作通常称为【】。

39.已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请在横线处填入正确内容。

structlink

{intdata;structlink*next;}

main()

{structlink*head;

......

sum(head);

......

}

sum(【】);

{structlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

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

三、1.选择题(20题)41.下面程序的输出结果是()。#defineWW(X)X*Xmain(){inta,i;i=3;a=++WW(i+1);printf("%d\n",a);}

A.5B.6C.9D.程序有错误

42.有以下程序:#include<string.h>main(){charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde";strcpy(p+strlen(q),r);strcat(p,q);printf("%d%d\n",sizeof(p),strlen(p));}程序运行后的输出结果是()。

A.209B.99C.2011D.1111

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

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

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

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

D.仅仅搜索当前目录

44.下列表达式中,可以正确表示x≤0或x)1的关系是()。

A.(x>=1)||(x<=0)

B.x>l||x=0

C.x>=1ORx<=0

D.x>=1&&x<=0

45.下面不属于软件设计原则的是()。

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

46.若有以下定义:

structlink

{intdata;

structlink*next;

}a,b,c,*p,*q;

且变量a和b之间已有如下图所示的链表结构:

指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是:

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

47.若有说明:inta[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是()。

A.2B.3C.4D.无确定值

48.十六进制数FF.1转换成十进制数是()

A.255.0625B.255.125C.127.0625D.127.125

49.以下程序的输出结果是()fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);print{("%d",a);}

A.0B.29C.31D.无定值

50.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case0:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}程序运行后的输出结果是______。

A.22111B.21021C.122D.12

51.设有如下定义structss{charname[10];intage;,charsex;}std[3],*p=std;下面各输入语句中错误的是

A.scanf("%d",&(*p).age);

B.scanf("%s",&);

C.sean("%c",&std[0].sex);

D.scanf("%c",&(p->sex));

52.已知intt=0;while(t=1){…}则以下叙述正确的是()。

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

53.以下正确的数组定义语句是()

A.inty[1][4]={1,2,3,4,5,}

B.floatx[3][]={{1},{2},{3}}

C.longs[2][3]={{1},{1,2}{1,2,3,}}

D.doublet[][3]={0}

54.在数据库设计中,将E-R图转换成关系数据模型的过程属于()A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段

55.有定义语句:chars[10];,若要从终端给s输入5个字符,错误的输入语句是

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

56.以下程序的输出结果是______。main(){union{chari[2];intk;}r;r.i[0]=2;r.i[1]=0;printf("%d\n"r.k);}

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

57.下列属于C语言语句的是______。

A.printf("%d\n",a)

B.#include<stdio.h>

C.a=b;b=c;c=a;

D./*thisisaprogram*/

58.若有语句:char*line[5];,以下叙述中正确的是

A.定义line是一个数组,每个数组元素是一个基类型为char的指针变量

B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C.定义line是一个指针数组,语句中的。号称为间址运算符

D.定义line是一个指向字符型函数的指针

59.下面程序main(){intx=32;printf("%d\n",x=x<<1);}的输出是______。

A.100B.160C.120D.64

60.下列工具中为需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

四、选择题(20题)61.在C语言中,运算对象必须是整型数的运算符是()。

A.%B.\C.%和\D.**

62.

63.有以下程序

#include"stdio.h"

voidfun(int*a,int*b)

{intc=20,d=20;

*a=c/3;

b=d/5;}

main()

{inta=3,b=5;

fun(&a,&b);

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

}

程序的运行结果是

A.6,5B.5,6

C.20,25D.3,5

64.面向对象方法中,不属于对象基本特点的是()。

A.标识唯一性B.分类性C.封装性D.一致性

65.关系模型允许定义三类数据约束,下列不属于数据约束的是()。A.A.实体完整性约束B.参照完整性约束C.域完整性约束D.用户自定义的完整性约束

66.

67.

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

A.c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

B.c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

C.用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中

D.c语言源程序经编译后生成后缀为.obj的目标程序

69.有以下程序:

voidmain()

{inta=1,b=2,m=0,n=0,k;

k=((n=b>a)+b)‖(m=a<b);

printf("%d,%d\n",k,m);

}

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

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

70.

71.函数fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始点是()。

A.文件开始B.文件末尾C.文件当前位置D.以上都不对

72.有以下程序:

从第一列开始输入以下数据(<CR>代表一个回车符.:

2743<CR>

程序的输出结果是()。

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

73.

74.

有以下程序:

intfun(intn)

{if(n==l)returnl;

elsereturn(n+fun(n一1)):

}

main

{intx;

scanf("%d",&x);x=fun(x);printf("%d\n",

x):

}

执行程序时,给变量X输入10,程序的输出结果是()。

A.55B.54C.65D.45

75.有以下程序:

#include<stdio.h>

main

{shortC=124;

C=C_;

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

}

若要使程序的运行结果为248,应在下划线处填入的是()。

A.>>2

B.|248

C.&0248

D.<<1

76.

77.有以下程序:

#include<stdio.h>

#include!(string.h>

voidfun(char*w,intm)

{charS,*pl,*p2;

p1=w;p2=w+m-;

while(pl<p2){s=*pl;*p1=*p2;*p2=s;pl++;p2-;}

}

main()

{chara[]="l23456";

fun(a,strlen(a));puts(a);

}

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

A.654321

B.116611

C.161616

D.l23456

78.设有以下函数:

voidfun(intn,char}s){……}

则下面对函数指针的定义和赋值均正确的是()。

A.void(*pf)(int,char);pf=&fun;

B.void+pf();pf=fun;

C.void*pf();*pf=fun;

D.void(*pf)(int,char*);pf=fun;

79.若有以下程序: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

80.以下定义数组的语句中错误的是()。

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

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

C.intnum[]={1,2,3,4,5,6};

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

五、程序改错题(1题)81.下列给定程序中,fun()函数的功能是:求3个数的最小公倍数,例如,给变量a、b、c、分别输入15、11、2,则输出结果应当是330。请修改函数中的错误,得出正确的结果。注意:不要改动main()函数,不能增行或减行,也不能更改程序的结构。试题程序:

六、程序设计题(1题)82.下列程序判断字符串s是否对称,对称则返回1,否则返回0;如f("abba")返回1,f("abab")返回0。

参考答案

1.D

2.C

3.C解析:在C语言中,字符串以'\\0'作为结束符,因此数组x的长度为7+1=8,而数组y的长度等于7。

4.A

5.C

6.A解析:本题考核的知识点是scanf()函数的运用。seanf()函数有两个参数,第一个参数为输入格式字符串,第二个参数为输入变量地址列表,在scallf()语句中非格式字符可以作为输入时数据的间隔,输入时必须原样输入,在本题中输入格式串为%d,%d其中“,”为非格式字符,所以输入时必须原样输入。所以4个选项中选项A符合题意。

7.C在fun函数中,while循环的功能是逐个取字符数组s的字符判断其是否是数字。若是则将这些数字组成一个数保存到变量n中,并返回变量n的值。

8.B

9.BB)【解析】在具有11个结点的满二叉树,其非叶子结点数为int(n/2),而叶子结点数等于总结点数减去叶子结点数。本题n=15,故非叶子结点数等于int(15/2)=7,叶子结点数等于15-7=8。

10.B

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

12.A

13.D

\n全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全局变量进行说明,以便通知编译程序该变量是一个已在外部定义了的全局变量,这时全局变量的作用域从extern说明处起,延伸到该函数末尾。

\n

14.C

15.D层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。

16.A预处理命令是以“#”号开头的命令,它们不是C语言的可执行命令,这些命令应该在函数之外书写,一般在源文件的最前面书写,但不是必须在起始位置书写,所以B、c错误。C语言的预处理能够实现宏定义和条件编译等功能,所以D错误。

17.B

18.C

19.A数组名是一个存放一个数组首地址的值,是一个地址常量。而p=a不是合法的,因为p和a的基本类型不同。

20.A当执行gets(ss)后,ss数组中的元素为ABC,再执行strcat(ss,"6789"),strcat的作用,是把6789连接到了ss数组后面,执行完后SS数组为ABC6789,故选择A选项。

21.->->解析:结构变量abc有成员a,并有指针pabc指向结构变量abc,则引用变量abc成员a的形式有abc.a和p_abc->a。

22.数据库系统阶段数据库系统阶段解析:在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段,其中数据独立性最高的阶段是数据库系统阶段。

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

24.fopenfopen解析:C语言中的文件分为:ASCII文件与二进制文件。文件在使用前打开,使用后要关闭。打开文件的函数为:fopen(),调用形式为:fp=fopen(“文件名”,“使用文件方式”);关闭文件的函数为:fclose(),调用形式为:fclose(fp);其中fp为文件指针。

25.'\0''\\0'解析:本题涉及字符数组和指针的两个知识点:①在C语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符'\\0'所以题中数组str有6个元素。②ptr指向数组str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

26.栈顶栈顶解析:栈是限定在表的一端进行插入和删除操作的线性表。在表中,允许插入和删除的一端叫做“栈顶”,不允许插入和删除的一端叫做“栈底”。

27.用“&&”连接两个表达式时,若第1个表达式的值为“假”,则运算结果与第2个表达式无关,此时第2个表达式将不再进行计算。本题中第1个表达式“j=!ch”值为0,所以第2个表达式i++将不再进行计算,i的值为1。\r\n\r\n

28.投影投影解析:在关系模型的数据语言中,一般除了运用常规的集合运算,(并、交,差、笛卡尔积等)外,还定义了一些专门的关系运算,如投影、选择、连接等。投影是从二维表的列方向上进行的运算。

29.时间复杂度时间复杂度解析:算法在执行过程中所执行的基本运算的次数,也就是执行算法所需要的计算工作量,称为算法的时间复杂度。

30.右子树(单支树)右子树(单支树)解析:二叉排序树对于任意新结点,若大于等于根结点,则在右子树上建立。

31.&a[i]或a+ia[i]或*(a+i)&a[i]或a+i\r\na[i]或*(a+i)解析:主函数中一开始定义了一个长度为20的整型数组,然后通过一个循环,循环20次给它的每个元素赋初值,所以在第一个空格处应填各个元素的地址,即填&a[i]或a+i,然后再通过一个循环执行20次,每循环一次,先判断该循环是否大于0,如果大于0将其累加到变量sum中,所以第二个空格处应该填入数组元素,所以应该填a或*(a+i)。

32.doublemax或externdoublemaxdoublemax或externdoublemax解析:函数声明是对所用到的函数的特征进行必要的声明,编译系统以函数声明中给出的信息为依据,对调用表达式进行检测,以保证调用表达式与函数之间的参数正确传递。函数声明的一般格式为:类型标识符函数名(类型标识符形参,…);这些信息就是函数定义中的第一行的内容。本题中main()函数需要调用max()函数,在main()之前就需要声明函数max(),并且可以用extem说明符使变量的作用域扩充到需要用到它的函数,所以,填写doublemax(或externdoublemax)。

33.静态分析静态分析解析:程序测试分为静态分析和动态测试。其中,静态分析是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

34.对于10个数,相邻的两个数相加取和,总共要进行9次加法运算,所以空14处应填入i=1。相邻的两个数相加取和,放在数组a中,x[0]与x[1]的和存放在a[0]中,所以空15处应填入x[i-1]。\r\n\r\n

35.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中为了表示函数调用“不带回值”,可以用“void”定义函数为“无类型”(或称“空类型”),这样系统就保证不使函数带回任何值。当二维数组作为形参时,二维数组的第一维可以省略。

36.310

37.7979解析:因为在调用子函数时进行的是数值传递,调用于函数并不能改变实参的值,所以经过调用子函数,c、d的值并没有发生变化还是原来的值。

38.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。程序调试与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于调试工具找出软件错误的具体位置。软件测试贯穿整个软件生命期,而调试主要在开发阶段。

39.structlink*headstructlink*head解析:考查用指针引用结构体变量成员数据的方法。因为本题中是用结构体变量构成了链表,所以要从链表头节点,逐个节点的引用结构体的数据域,需要有指向结构体变量的指针,依次指向各个节点,即p=p->next,而用指针引用结构体成员数据的方法为:p->data。

40.参照完整性参照完整性

41.C解析:表达式“a++WW(i+1);”,宏展开之后为a=++i+1*i+1,先计算++i,结果为4,i的值也变为4,所以a=4+1*4+1=9。所以正确答案是选项C。

42.C解析:题目中p+strlen(q)的作用是在数组元素p[0]地址的基础上向后移动三位,然后再将r所指字符串内容复制到p所指的存储空间中,字符d被覆盖,p[20]={'a','b','c','a','b','c','d','e')。然后通过“strcat(p,q);”将q所指的字符串内容连接到p所指的字符串后面,p[20]={'a','b','c','a','b','c','d','e',a','b','c',}。在输出语句中strlen(p)是求字符串的长度,值为ll;sizeof(p)用来求数组p占多少字节,值为20。

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

44.A解析:题中要求x的取值是小于等于0或者大于等于1,这说明表达式是或的关系,所以在写成C语言表达式应是逻辑或的关系,逻辑或运算符是“||”。

45.C解析:软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念。①抽象是一种思维工具,就是把事物本质的共同特性抽出来而不考虑其他细节。②模块是指可以单独命名且可编址的元素。如高级语言中的过程、函数、子程序等。③信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。④模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。因此,本题的正确答案是C。

46.D解析:本题考查链表的数据结构,必须利用指针变量才能实现,即一个结点中应包含一个指针变量,用它存放下一结点的地址。

47.B解析:本题考查二维数组的定义方式。第一维的大小由以下方法判断:

①当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;

②当初值的个数不能被第二维的常量表达式的值除尽时,则第一维的大小:所得的商数+1。

48.A

49.C

50.C解析:程序中for循环了三次,第一次i=0,执行switch语句中case0:分支,直到遇到default语句,退出switch,这里共执行了三个输出语句分别输出0,0,0,第二次循环i=1,switch语句中没有匹配的分支,故只执行default语句输出1,退出switch语句;第三次循环i=2,从switch语句中的case2:开始执行,共执行了两个输出语句输出2、2。最后输出的结果为000122。

51.B解析:本题考核的知识点是结构型数组的应用。选项A中“&(*p).age”代表的是std[0]age的地址,是正确的,选项C也是正确的,选项D先用指针变量引用结构型的成员sex,然后取它的地址,也是正确的,选项B中的“'是错误的引用,因为std是数组名,代表的是数组的首地址,地址没有成员“name”。所以B选项为所选。

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

53.D解析:选项A二维数组行下标为1,即数组有一行元素,列下标为4表示一行中包含4个元素,而初值列表中有5个元素,故A错。选项B省略了列下标故错误。选项C二维数组行下标为2,数组有2行元素,而初值列表中有3行元素,故C错误。故D为所选。

54.B数据库应用系统的逻辑设计包括数据库逻辑结构设计、数据库事务概要设计和应用程序概要设计三方面。数据库逻辑结构设计的主要步骤为:将E—R图转换为初始关系模式,对初始关系模式进行优化,检查关系表对数据库事务的支持性,确定关系模式完整性约束,设计基于关系模式的用户视图。

55.D解析:在格式输入中,要求给出的是编译的地址,而D)答案中给出的s[1]是一个值的表达式。

56.A解析:根据共用体的定义可知:共用体r的成员k和成员i[2]是共用同—段内存空间,所以,当程序给r.i[0]赋值后,实际上,共用体成员k的值也确定了,为2。所以打印输出的结果应当为2。

57.C解析:在C语言中,一个完整的C语句必须在语句末尾出现分号,分号是C语句的必要组成部分。本题答案为C。

58.A解析:C语言中[]比*优先级高,因此line先与[5]结合,形成line[5]形式,这是数组形式,它有5个元素,然后再与line前面的“*”结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为char的指针变量。

59.D解析:<<是C语言中规定的左移运算符,例如,a=a<<2,这个语句即是将a的二进制数左移两位,左移一位相当于该数乘于2,左移两位相当于该数乘以2的2次方。所以,x<<1=32*2=64。

60.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。

61.A解析:在C语言中,“%”运算符两侧的运算数必须是整型。

62.A

63.A在本题中,首先定义了一个fun函数,函数中用两个指针变量作为形参,在函数体中,定义了两个整型变量,然后做除法运算,并试图将结果保存到形参中,语句“*a=c/3;”中由于变量c与3都是整型,其运算结果也应该为整型,运算过程中舍去小数部分,得到计算结果为6,并保存到指针变量a指向的存储单元中;语句“b=d/5;”同样是整数运算,其运算结果为4,但很明显,赋值的方法不正确,不能改变指针变量b指向单元的值。

在主函数中,定义了两个整型变量,并分别赋初值,然后调用fun函数,由于函数的形参是指针变量,采用的传值方式是传地址,能实现数据的双向传递,因此,调用函数后,变量a的值变为了6,而变量b的值不变,最后输出的结果是6,5。

64.D对象的基本特点有:标识唯一性、分类性、多态性、封装性,以及模块独立性好。

65.C数据约束是用来确保数据的

温馨提示

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

评论

0/150

提交评论