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

下载本文档

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

文档简介

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

一、单选题(20题)1.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

2.设变量已正确定义,则以下能正确计算f=n!的程序是()。A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=1;i<2n;i++)f*=i:

C.f=1:for(i=n;i>1;i++)f*=i:

D.f=1;for(i=n;i>=2;i--)f*=i:

3.若一棵二叉树具有10个出度为2的结点,则在该二叉树中,出度为0的结点个数是()

A.9B.11C.12D.不确定

4.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。

A.概要设计B.详细设计C.可行性分析D.需求分析

5.已知二叉树后序遍历序列是dabeC,中序遍历序列是debaC,它的前序遍历序列是()。

A.aChedB.deCabC.deabeD.Cedba

6.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()

A.a<>0B.!aC.a=0D.a

7.链表不具备的特点是()

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

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

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

9.数据库的故障恢复一般是由()来执行恢复

A.电脑用户B.数据库恢复机制C.数据库管理员D.系统普通用户

10.设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成绩),则表sc的关键字(键或码)为()。

A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩

11.以下说法中正确的是()。

A.C程序总是从第一个定义的函数开始执行

B.C程序总是从main函数开始执行

C.C函数必须有返回值,否则不能使用函数

D.C程序中有调用关系的所有函数必须放在同一个程序文件中

12.以下叙述正确的是

A.continue语句的作用是结束整个循环的执行

B.只能在循环体内和swish语句体内使用break语句

C.在循环体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出时,只能使用goto语句

13.

14.

有下列程序:

main

{charp[]={a,h,c},q[]="a";

printf("%d%d\n".sizeof(P),sizeof(q));

}

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

A.44B.33C.34D.43

15.有下列程序:#include<stdio.h>#include"string.h"voidtim(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是()。A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc

16.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。

A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)

17.

18.以下关于算法的叙述中错误的是()。

A.算法可以用伪代码、流程图等多种形式来描述

B.一个正确的算法必须有输入

C.一个正确的算法必须有输出

D.用流程图描述的算法可以用任何一种计算机高级语言编写成程序代码

19.有以下程序:

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

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

20.设单链表中结点的结构为非空的循环单链表first的尾结点(由p所指向)满足:______A.p->link==NULL;B.p==NULL;C.p->link==first;D.p==first;

二、2.填空题(20题)21.下面程序执行后输出的结果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

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

}

22.下面程序的功能是输出数组s中最大元素的下标,请填空。

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

23.有定义chara,b;若想通过&运算符保留a对应的二进制数的第3位和第6位的值,其余位置0,则b的二进制数应是【】。

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

x=2;

do

{x=x*x;}

while(!x);

25.语句:x++;++x;x=1+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句______。

26.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。

27.以下isprime函数的功能是判断形参a是否为素数,如果是素数,函数返回1,否则返回0。

intisprime(inta)

inti;

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

if(a%i==0)【】;

【】;

}

28.在程序设计阶段应该采取【】和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。

29.下列程序的字符串中各单词之间有一个空格,则程序的输出结果是【】。

#include<stdio.h>

#include<string.h>

main()

{charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

31.以下程序的输出结果是______。

main()

{inta=1,b=2;

a=a+b;b=a-b;a=a-b;

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

}

32.对软件是否能达到用户所期望的要求的测试称为【】。

33.以下程序的运行结果是【】。

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

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

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

printf("\n");}

34.在E-R图中,矩形表示【】。

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

#include<stdio.h>

intf(ihta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

main()

intaa[5]={1,2,3,4,5},s;

s=f(aa,5);prinff("%d\n",s);

}

36.下面程序的输出结果是【】。

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=0;i<4;i++)k+=arr[i]=i;

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

}

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

38.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。

39.以下程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时用字符作为输入结束标志。请填空。#include<stdio.h>long();/*函数说明语句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}

40.若运行时给变量x输入12,则以下程序的运行结果是【】;

main(){

intx,y;

scanf(""%d"",&x);

y=x>12?x+10:x-12;

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

}

三、1.选择题(20题)41.下述关于数据库系统的叙述中,正确的是()。

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

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

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

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

42.下列数据模型中,具有坚实理论基础的是()。

A.层次模型B.网状模型C.关系模型D.以上3个都是

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

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

44.不能与do…while(exp)语句中的(exp)等价的表达式是()。

A.(!exp==0)B.(exp>0‖exp<0)C.(exp==0)D.(exp!=0)

45.若有以下程序段:intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是______。

A.10,A,10B.16,a,10C.10,a,0D.10,A,0

46.下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是()。

A.选择B.连接C.投影D.并

47.在C语言中,while和do…while循环的主要区别是()。

A.do…while的循环体不能是复合语句

B.do…while允许从循环体外转到循环体内

C.whil8的循环体至少被执行一次

D.do…while的循环体至少被执行一次

48.有以下程序:#include<stdio.h>main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;printf("%d\n",b);}程序运行后的输出结果()。

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

49.以下程序的输出结果是()。#include<stdio.h>main(){inta=1,b=3;if((++a<0)&&!(b--<=0))printf("%d,%d\n",a,B;elseprintf("%d,%d\n",b,A);}

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

50.在微机中,bit的中文含义是()。

A.二进制位B.字节C.字D.双字

51.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。

A.可行性分析B.需求分析C.详细设计D.程序编码

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

A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

53.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。

A.scanfB.getcharC.getsD.getc

54.下列程序的输出结果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}

A.5,6B.5,5C.6,6D.6,5

55.以下程序的输出结果是()。main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=O;i<4;i+2)printf("%d",p[i]);}

A.52B.51C.53D.97

56.C语言中用于结构化程序设计的3种基本结构是()。

A.顺序结构、选择结构、循环结构

B.if、switch、break

C.for、while、do-while

D.if、for、continue

57.设变量x和y均已正确定义并赋值。下列if语句中,在编译时将产生错误信息的是

A.ifx++);

B.it(x>y&&y!=0);

C.if(x>0)x--

D.if(y<0){;}elsey++;elsex++;

58.有以下程序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

59.以下选项中可作为C语言合法常量的是

A.-80B.-080C.-8e1.0D.-80.0e

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

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

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

#include"stdio.h"

main()

{intj,i,k=0;

for(j=20;j<=30;j++)

{if(!(k%10))printf("\n");

for(i=2;i<j;i++)if(!(j%i))break;

if(i>=j-1)

{printf("%d",j);

k++;}

}

}

程序的运行结果是

A.2329B.2923

C.3292D.9232

62.

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

#include<stdio.h>

voidp(int*x)

{printf("%d¨,++*x);

}

voidmain()

{inty=3;

p(&y);

}

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

63.

64.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是

main()

{chars[100];intc,i;

scanf("%c",&c);scanf("%d",&i);scanf("%s",s);

prinnf("%c,%d,%s\n",c,i,s);}

A.123,456,789B.1,456,789

C.1,23,456,789D.1,23,456

65.设x为int型变量,则执行以下语句后,x的值为()。x=10;x=x-=x-x;

A.10B.20C.40D.30

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

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

67.有以下程序:

main()

{char*p[]={"3697","2584"};

inti,j;longnum=0;

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

{j=0;

while(p[i][j]!=’\0’)

{if((p[i][j]-’0’)%2==0)num=10*num+p[i][j]-’0’;

j+=2;

}

}

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

}

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

A.35B.37

C.39D.28

68.

69.有以下程序:

voidmain()

{

inty=10;

while(y>>1){printf("y=%d\n",y);}

}

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

A.y=0

B.y=-1

C.y=1

D.while构成无限循环

70.结构化程序设计的3种结构是()。

A.顺序结构、选择结构、转移结构

B.分支结构、等价结构、循环结构

C.多分支结构、赋值结构、等价结构

D.顺序结构、选择结构、循环结构

71.

72.

73.有下列程序:intfunl(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……}程序执行后变量w中的值是()。A.5.21B.5C.5.0D.0.0

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

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

75.

76.(67)数据处理的最小单位是()

A.数据

B.数据元素

C.数据项

D.数据结构

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

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

78.(17)软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及()

A.阶段性报告

B.需求评审

C.总结

D.都不正确

79.

下列程序的运行结果为()。

#include<stdio.h>

main

{structdate

{intyear,month,day;

}today;

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

}

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

80.

五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:将P所指字符串中的所有字符复制到b中,要求在每复制3个字符之后插入1个空格。

例如,若给a输入字符串:“ABCDEFGHIJK”,调用函数后,字符数组b中的内容为:“ABCDEFGHIJK”。

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

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

试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是将a中的十位数和个位数依次放在c的个位和百位上,b中的十位数和个位数依次放在c的十位和千位上。例如,当a=45,b=12时,调用该函数后c=2514。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}

参考答案

1.AB选项中运算符“%”的运算对象为整数。C选项中不能将变量赋给表达式“x+n”。D选项中不能将表达式“4+1”赋给常量5。故本题答案为A选项。

2.D由i"11的数字定义可知n!=n*(n-1)*(n-2)*…*1。在选项A中,由于f的初值为0,在for循环语句中,f依次乘以1,2,3,…,n,最后计算得到f=n!一0,所以选项A不正确。在选项B中,f的初值为1,在for循环语句中,f依次乘以1,2,3,…,(n-1),最后计算得到f=(n-1)!,所以选项B不正确。在选项C中,f的初值为1,在for循环语句中,f依次乘以n,n+1,n+2,……,所以选项c不正确。在选项D中,f的初值为l,在for循环语句中,f依次乘以n,n-1,n-2,…,2,最后计算得到f=n!,所以选项D正确。

3.B

4.D解析:在需求分析阶段中,根据可行性研究阶段所提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做什么的问题。本题的正确答案为D。

5.D二叉树的遍历有3种:前序、中序和后序。①前序遍历访问根结点,然后按左右顺序遍历子结点;②中序首先遍历左子树,然后访问根结点,最后遍历右子树;③后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点。本题根据后序和中序遍历的结果可以得出二叉树的结构,然后再对其进行前序遍历,正确答案选项为D。

6.D

7.D

8.D

9.CC)【解析】数据库一旦发生故障,需要及时进行故障恢复,并由数据库管理员负责执行故障恢复。

10.C学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C项。

11.B解析:C++程序总是从main函数开始执行。

12.B

13.A

14.C

\n语句charp[]={a,b,c);定义了一个一维字符数组p[],并用3个字符a,b,c进行了初始化;而语句q[]='abe'表示定义了一个一维字符数组,并用一个字符串常量'abc'进行了初始化。在C语言中,系统在每个字符串常量的最后自动加入一个字符\0作为字符串的结束符。所以函数sizeof(q)=4,而sizeof(p)=3,因而选项C为正确答案。

\n

\n

\n

15.A解析:从main函数入手,定义了指向字符串的指针数组,并赋予了初始值,调用fun()函数,函数的功能是:比较数组中各个元素的长度,按元素长度从小到大排列数组元素,所以执行fun(ss,5)函数后,*ss[]={"xy","bcc","bbcc","aabcc","aaaacc"},所以调用printf函数输出ss[0],ss[4]的值分别为xy,aaaacc。

16.A

17.D

18.B【答案】B

【知识点】算法描述

【解析】一个算法应该有0个或多个输入,但是必须有一个或多个输出。

19.A在函数point函数调用时,系统自动为函数的形参P分配内存空间,并赋值为实参P的值。当执行语句P+=3;时,系统操作的是形参P的内存空间,更改形参P的内容,而实参指针变量P的值未受影响,即指针变量作为函数参

20.C

21.22解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m应取外部变量的值13,因此输出2。

22.k=p;k=p;解析:为寻找数组中最大元素的下标,需先预设1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至考查了数组的全部元素后,这临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标,考查通常从首元素开始顺序向后继元素考查。程序中,存储临时最大元素下标的变量是k,变量p控制顺序考查的循环控制变量。当发现当前元素s[p]比临时最大元素s[k]更大时,应该用p更新k,所以在空框处应填入代码'k=p;'。

23.100100100100解析:“&”运算符的运算规则是:两个二进制数的对应二进制位只要有一个为0,则结果为0;二者都为1时,结果为1。因此,要想保留某位可用1,屏蔽某位用0。

24.11解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环;do…while语句的特点是先执行后判断,因此循环体至少执行1次.本程序中x=2不符合循环条件,所以只循环1次。

25.x+=1x+=1解析:本题考查“++”,“--”运算符。“++”、“--”只能作用于变量,不能用于表达式或常量;前缀形式是在使用变量之前先将其值增1或减1,后缀形式是先使用变量原来的值,使用完后再使其增1或减1。

26.关系关系解析:关系模型用;维表表示,则每个;维表代表一种关系。

27.return0或return(0)return1或return(1)return0或return(0)\r\nreturn1或return(1)解析:素数是指只能被1和其本身整除,不能被其他任何整数整除的数。根据if条件语句,若形参a对i取余等于0,则形参a可以被其他数整除,所以第一处填return0;若形参a对i取余不等于0,则形参s不可以被其他数整除,所以第二处填return1。

28.自顶而下自顶而下

29.HowdoessheHowdoesshe解析:程序中的strlen(str1)是求str1字符串的长度,结果为13,然后除以2结果为6。strcpy函数是把字符串“esshe”拷贝到str1后的第6个字符后面,也就是说,拷贝后的结果是“Howdoesshe”。

30.3232解析:while(表达式)的功能是:首先计算表达式的值,若为真,则执行循环体语句,执行完毕,再计算表达式的值,若仍为真,则重复执行循环体语句,直到表达式的值为假时,结束while语句的执行,继续执行while语句后面的语句:i=0时满足循环条件,也满足if的条件,执行语句得i=11,a=11,第2次循环不满足if的条件,执行i--,i=10,执行i+=11;a+=i后,得i=21,a=32,不满足i<20,循环结束。

31.21

32.有效性测试有效性测试

33.0240480,2,4\r\n0,4,8解析:本题主要考查for循环语句的使用以及静态局部变量的特点。

34.实体实体解析:E-R模型中,有3个基本的抽象概念:实体、联系和属性。在E-R图中,用矩形框表示实体,菱形框表示联系,椭圆形框表示属性。

35.1515解析:程序通过递归调用实现求数组aa各元素之和,即a[4]+a[3]+a[2]+a[1]+a[0]=15。

36.66解析:本题第1个for循环是为数组arr元素赋初值。第2个for循环是分别用i=0,1,2,3给数组元素arr[0]、arr[1]、arr[2]、arr[3]赋值,再累加到变量k中,k=0+1+2+3=6。

37.调试调试

38.循环链表循环链表解析:在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。

39.tunc()m++tunc()m++解析:第一空白处,在C语言中如果子函数在主函数之后定义,就要对其进行说明,说明的形式为:“函数类型名函数名”。所以此处填写func()。第二空白处,整型变量m表示输入字符的个数,所以每输入一个字符,变量m的值就加1。所以此处填写m++。

40.00解析:三目运算符的形式为(表达式1)?(表达式2):(表达式3)。当(表达式1)值为真时,返回(表达式2)的值;为假时,返回(表达式3)的值。题中因为x>12为假,所以结果为x-12,即为0。

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

42.C在数据库设计中,目前常用的数据模型主要有三种,分别是层次模型、网状模型和关系模型。

层次模型是数据库系统中最早出现的数据模型。我们通常把满足以下两个条件的数据模型称为层次模型。

(1)有且仅有一个结点无双亲,这个结点称为根结点。

(2)其他结点有且仅有一个双亲。

层次模型用树形结构来表示各实体与实体间的联系。实体是数据库中数据描述的对象,可以是一个人、一种商品等。在层次模型中,每个结点表示一个记录类型,记录之间的联系用结点之间的连线表示,这种联系是父子之间一对多的联系。记录就是描述实体的相关数据。

如果取消层次模型中的两个限制,即允许一个以上的结点无双亲,则每一个结点可以有多个父结点,便形成了网状。我们把网状表示实体之间联系的模型称为网状模型。

关系模型用表格形式表示实体类型及其实体间的联系。关系模型是目前最重要的一种模型,它是建立在严格的数学概念的基础上的,具有最坚实的理论基础。关系模型的基本数据结构是二维表,每一张二维表称为一个关系。

43.D解析:首先定义了一个指向一维数组b的指针p,一个指向指针p的指针变量q,输出*(p++)是先输出*p即b[0]的值,再将指针p指向数组的下一个元素b[1],输出**q是输出指针p所指单元的内容,即b[1]的值。

44.C解析:本题考查.do…while循环。在do…while循环中,当表达式的值为非零(真)时,执行循环,不能与其等价的是为零的表达式,即(exp==0)。

45.A解析:scanf函数为格式输入函数,执行该函数后对变量m、n和c重新赋值,scanf的格式字符为'%dc%d',键盘输入为10A10,所以m=10、c=\'A\'、n=10。

46.B选择,连接,投影是专门的关系运算,选择是选择满足条件的元组,而投影是选择满足条件的属性或者说列。并是传统的关系运算,是将两个关系中的元组合并在一起再去掉重复的部分。选择,投影,并三个运算得到的结果属性数并没有改变或者说还有减少,而连接时将两个关系进行笛卡尔积运算,在挑选满足条件的项。其属性个数一般会多于原来关系中的属性数。

47.D解析:本题考查while和do…while循环的区别。while循环的控制出现在循环体之前,只有当while后面的表达式的值为非零时,才可能执行循环体:在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值,因此无论表达式的值是否为零,循环体至少要被执行一次。

48.B解析:本题要注意break和continue的区别。continue语句只结束本次循环,继续下一次循环;而break语句则是结束整个循环。本题执行过程如下:

a=1,b=1:a>=8不成立,a%2==1成立,执行a+=5,则a=6,继续执行下一次循环;

a=6,b=2:a>=8不成立,a%2==1不成立,执行a-=3,则a=3,继续执行下一次循环;

a=3,b=3:a>=8不成立,a%2==1成立,执行a+=5,则a=8,继续执行下一次循环;

a=8,b=4:a>=8成立,结束整个循环,输出b的值4。

49.C

50.A在微机中,信息的最小单位为二进制位,用bit来表示;8位二进制构成一个字节,用Byte来表示;一个或一个以上字节可组成一个二进制表示的字,字长可以是8位、16位、32位或64位;两个字长的字,称为双字。故本题正确答案是A\n【考点】科技\n学科专题(物理、化学、生物医学、计算机)\n计算机数据存储

51.B[答案]B

[考点]软件工程基础

[评析]

分析员对用户的要求作出分析,并画出数据流程图,该图通俗易懂,不涉及到如何在计算机上实现,这是需求分析阶段。

软件工程中的瀑布模型:

问题定义,可行性研究,需求分析,概要设计,详细设计,编码,测试,运行和维护

相关链点:

层次图和HIPO图是概要设计中的工具图;程序流程图、N-S图、问题分析PAD图、设计程序语言PDL是详细设计中的工具图

52.C解析:在C语言中,除字符数组外,一个数组不能通过数组名对数姐进行整体引用,因此选项A是对的。数组名中存放的是一个地址常量,它代表整个数组的首地址,因此选项B是对的。C语言程序在运行过程中,系统不自动检验数组元素的下标是否越界,因此选项C是错误的。C语官规定可以通过赋初值来定义数组的大小,这时数组说明符的一对方括号中可以不指定数组的大小,因此选项D也是正确的。所以,4个选项中选项C符合题意。

53.C解析:C语言提供了许多输入函数,其中有:getchar(输入字符)、scanf(格式输入)和gets\u3000(输入字符串)等。题目要求输入的是字符串,所以可以排除getchar,而且要求输入的字符串中包含空格,而scanf函数默认将输入的空格字符作为分割符,所以空格不会被输入,故可排除scanf。getc的作用是从文件中输入一个字符,故也不可取。gets函数可以输入一整行作为一个字符串,其中也包括空格字符,故应该选择C。

54.A解析:转义字符'\\n'表示换行,'\\\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志('\\0'),函数sizeof()统计字符串所占的字节数。

55.C解析:执行for循环,输出p[0]、p[2]的值。P的初值为数组元素x[1][1]的地址,即5的地址,因此p[0]为5,p[2]为3。

56.A解析:本题主要考查结构化程序设计的基本结构。结构化程序设计有3种基本结构:顺序结构、选择结构、循环结构。

57.C解析:选项A)和选项B)在条件判断语句的后面是空语句,什么都不做;在选项D)中,if后面是一个复合空语句;而在选项C)中,在X--后面少了一个分号,所以程序段在编译时,会出现语法错误。

58.A解析:主函数中首先定义了4个字符变量a、b、cd,然后通过scanf()函数输入a、b、c、d输入中a和b是按字符格式c输入的,c和d是按整型符号d输入的。在看下面的printf()函数中,要求a、b、c、d都按字符输出,故a和b原样输出为6、5,c和d将把与其ASCII码对应的字符输出,65和66的ASCII码对应字符A和B,故最后的输出为6,5,A,B。所以,4个选项中选项A符合愿意。

59.A解析:C语言的常量分为整型常量、实型常量和字符型常量。本题中包含整型常量和实型常量。选项B)以0打头,应该属于八进制整数,而八进制整数只能用数字0~7表示,所以选项B)不合法;选项C)和D)从形式上看属于实型常量,但对于指数形式的实型常量,e(或E)之前必须有数字,且e后面的指数必须为整数,所以选项C)和D)都不合法;选项A)属于实型常量中正确的十进制小数形式。

60.B解析:程序中定义了数组a[10],则其元素的下标范围为0~9,而B选项中的a[10]所表示的元素已经超出a数组元素的范围,故应该选择B。

61.A在本题中,程序首先定义了三个整型变量,并将变量k赋值为0,然后开始循环,循环开始时,变量j的值为20,结束时,变量j的值为30,每循环一次,变量j自加1,即循环10。

当j=20,k=0时,“!(k%10)”为真,输出换行,即循环开始时,输出从新的一行开始,执行第二重循环,此时的i=2,“!(j%i)”为真,运行break语句,即跳出本层循环(从这里我们可以看出,j如果可以被i整除,则跳出本层循环),然后判断i是否不小于j-1,如果是,则输出此时j的值,否则k自加1。

从程序执行的过程来看,这个题目确实非常复杂,循环的次数太多,但经过上面一次循环过程的分析,我们可以发现,其实这个程序的作用是找出20~30之间除1和本身外,不能被其他小于本身的数据整除的数,并从小到大输出这样的数。这样就能很容易地得到答案是2329。

62.B

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

\n

63.D

64.D本题考查格式输入。程序中定义了一个字符数组s,两个整型变量i和c。随后调用了三次格式输入函数scanf。第一个scanf函数只能输入一个字符型的数据,第二个函数是输入一个整型数据,第三个函数是输入一个字符串。执行代码时,输入123<空格>456<空格>789<回车>,将1作为一个字符用第一个scanf函数输入,23作为一个整型数据由第二个函数输入,而字符串的输入

温馨提示

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

评论

0/150

提交评论