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

下载本文档

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

文档简介

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

一、单选题(20题)1.若执行以下程序时从键盘上输入9,则输出结果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8

2.设有定义“intx[2][3];”,则以下选项中不能表示数组元素x[0][1]的是()。

A.*(*x+1)B.*(*(x+1)C.(*x)[1]D.*(&x[0][0]+1)

3.数据流图中带有箭头的线段表示的是()。

A.控制流B.事件驱动C.模块调用D.数据流

4.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。

A.a==lB.++iC.a=a++=5D.a=int(i)

5.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序运行后,若从键盘输入(从第1列开始)

123<回车>

45678<回车>

则输出结果是

A.1267B.1256C.1278D.1245

6.当调用函数时,实参是一个数组名,则向函数传送的是______。

A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值

7.最小堆[0,3,2,5,7,4,6,8],在删除堆顶元素0之后,其结果是()

A.[3,2,5,7,4,6,8]

B.[2,3,5,7,4,6,8]

C.[2,3,4,5,7,8,6]

D.[2,3,4,5,6,7,8]

8.下面不能正确表示a*b/(c*d)的表达式是()。

A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d

9.有以下程序:#include<stdio.h>main(){intk=5;while(--k)printf(“%d”,k-=3);printf(“\n”);}程序运行后的输出结果是()。

A.1B.2C.4D.死循环

10.下列关于函数的叙述中正确的是()。A.A.每个函数都可以被其他函数调用(包括main函数)

B.每个函数都可以被单独编译

C.每个函数都可以单独运行

D.在一个函数内部可以定义另一个函数

11.程序中主函数的名字为()。

A.mainB.MAINC.MainD.任意标识符

12.若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下面程序的运行结果是

#include<stdio.h>

main()

{charc;

intv0=1,v1=0,v2=0;

do{switch(c=getchar())

{case′a′:case′A′:

case′e′:case′E′:

case′i′:case′I′:

case′o′:case′O′:

case′u′:case′U′:v1+=1;

default:v0+=1;v2+=1;}}while(c!='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}

A.v0=7,v1=4,v2=7

B.v0=8,v1=4,v2=8

C.v0=11,v1=4,v2=11

D.v0=13,v1=4,v2=12

13.用链表表示线性表的优点是()。

A.便于随机存取B.花费的存储空间较顺序存储少C.便于捅入和删除操作D.数据元素的物理顺序与逻辑顺序相同

14.有以下程序段intj;floaty;charname[50]:scanf("%2d%f%s",&i,&.y,name):当执行上述程序段,从键盘上输入555667777abc后,y的值为()。A.55566.0B.566.0C.7777.0D.566777.0

15.以下关于结构化程序设计的叙述中正确的是()。

A.一个结构化程序必须同时由顺序、分支、循环三种结构组成

B.结构化程序使用goto语句会很便捷

C.在C语言中,程序的模块化是利用函数实现的

D.由三种基本结构构成的程序只能解决小规模的问题

16.

17.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是()

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

18.有以下程序:#include<stdio.h>main(){chara=H;a=(a>=Aa<=2)?(a-A+a):a;printf("%c\n",a);}程序运行后的输出结果是()。A.AB.aC.HD.h

19.有以下程序:fun(intx){intp;if(x=0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}执行后的输出结果是()。

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

20.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

二、2.填空题(20题)21.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)

while(s[i]){d[j]=【】;j++;}

d[j]=0;

22.下列程序的输出结果是【】。

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

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

main()

{inta=1,b=10;

do

{b-=a;a++;}while(b--<0);

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

}

24.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控制。

25.若a=10,b=20,则表达式!(a<b)的值是【】。

26.按照“先进先出”的原则组织数据的结构是______。

27.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

fo(i=0;str[i]!=【】;i++)

if(【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

28.下列程序的运行结果为【】。

main()

{inti,j,row=0,colum=0,max,

a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};

max=a[0][0];

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

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

if(max<a[i][j])

{max=a[i][j];

row=i;

colum=j;

}

printf("max=%-5drow=%-3dcolum=%-3d\n",max,row,colum);

}

29.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。

30.设有以下定义和语句:

inta[3][2]={1,2,3,4,5},*p[3];

p[0]=a[1];

则*(p[0]+1)所代表的数组元素是【】。

31.下面程序的功能是两个整数进行交换,请填空。

sub(int*x,int*y)

{【】

z=*x;*x=*y;*y=z;

return;}

main()

{intm,n,*t1,*t2;

scanf("%d,%d",&m,&n);

t1=&m;t2=&n;

【】

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

32.下列程序的功能是计算数的阶乘。

main()

{ihti,n;

nlongnp;

scanf("%d",&n);

np=【】;

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

【】;

printf("n=%dn!=%ld\n",n,np);

}

33.函数调用语句:“fgets(buf,n,fp);”从fp指向的文件中读入,n个字符放到buf字符数组中,函数返回值为______。

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

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

}

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

}

35.顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。

36.与二维表中的“行”的概念最接近的概念是()。

37.实体—联系模型是一种常用的高级概念数据模型,而【】是实体—模型中的核心。

38.以下函数的功能是求x的y次方,请填空

doublefun(doublex,inty)

{inti;

doublez;

for(i=1,z=x;i<y;i++)z=z*【】;

}

39.有以下程序:

main()

{inta[3][3],*p,i;

p=&a[0][0];

for(i=0;i<9;i++)p[i]=i+1;

printf("%d\n",a[1][2]);

}

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

40.一个项目具有一个项目经理,一个项目经理可管理多个项目,则实体“项目经理”与实体“项目”的联系属于()的联系。

三、1.选择题(20题)41.在一棵二叉树中,叶子结点共有30个,度为1的结点共有40个,则该二叉树中的总结点数共有()个

A.89B.93C.99D.100

42.C语言运算对象必须是整型的运算符是______。

A.%=B./C.=D.<=

43.在宏定义#defineP13.1415926中,用宏名PI代替一个()

A.单精度数B.双精度数C.常量D.字符串

44.有以下程序

#include<stdio.h>

main()

{inti,j,m=55;

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

for(j=3;j<=i;j++)m=m%j;

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

}

程序的运行结果是

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

45.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法

A.对象B.数据结构C.数据流D.目标

46.有以下程序#include<stdio.h>#include<string.h>typedefstrtlct{charname[9];charsex;floatscore[2];}STU;voidf(STUA)

{STUb={"Zhao",'m',85.0,90.0};inti;strcpy(,b.name);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b

A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90

47.有以下函数:fun(char*a,char*b){while((*a!='\0')&&(*b!='\0')&&(*a==*b)){a++;b++;}return(*a-*b);}该函数的功能是()。

A.计算a和b所指字符串的长度之差

B.将b所指字符串复制到a所指字符串中

C.将b所指字符串连接到a所指字符串后面

D.比较a和b所指字符串的大小

48.下列二维数组初始化语句中,正确且与语句floata[][3]={0,3,8,0,9};等价的是

A.floata[2][]={{0,3,8},{0,9}};

B.floata[][3]={0,3,8,0,9,0};

C.floata[][3]={{0,3},{8,0},{9,0}};

D.floata[2][]={{0,3,8},{0,9,0}};

49.下列程序段的输出结果是______。intx=5,y=4,z;printf("%d\n",z+=1,z=x%y);

A.0B.1C.2D.结果是不确定值

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

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

51.若t为double类型,表达式t=1,t+5,t++;的值是______。

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

52.下面程序的输出结果是#include<stdio.h>#include<string.h>main(){char*pl="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}

A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC

53.已知字母A的ASCII码为十进制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的输出是_________。

A.67,DB.B,CC.C,DD.不确定的值

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

55.瀑布模型适合于______。

A.大型软件系统开发B.中型软件系统开发C.小型软件系统开发D.大、中、小型软件系统开发

56.下列叙述中正确的是()。

A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式

B.实型变量中允许存放整型数

C.若a和b类型相同,在执行了赋值a=b后,b中的值将放入a中,但b中的值不变

D.在C程序中,求余运算符“%”两边的类型相同时才能进行运算

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

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

58.当把以下4个表达式用作if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是

A.k%2B.k%2==1C.(k%2)!=0D.!k%2==1

59.下面一组中都是C语言关键字的是______。

A.doubleIntfor

B.mainwhilegoto

C.volatilebreakstatic

D.mallocsizeofnew

60.下述关于数据库系统的叙述中正确的是______。

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

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

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

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

四、选择题(20题)61.

A.intB.floatC.doubleD.不确定

62.

63.

64.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句

if(a<b)

if(c==d)y=0;

Elsey=1;

该语句所表示的含义是()。

A.

B.

C.

D.

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

A.eelcomwB.weoclnleC.welcomeD.emoclew

66.为了使模块尽可能独立,要求()。A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

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

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

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

67.

有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式输出数组右上半三角

1234

678

1112

16

则在程序下划线处应填入的是()。

A.i-1B.iC.i+1D.4一i

68.

69.

70.以下选项中正确的语句组是()。

71.

72.

73.人员基本信息一般包括:身份证号,姓名,性别,年龄等。其中可以作为主关键字的是()。

A.身份证号B.姓名C.性别D.年龄

74.有以下程序:

#include<stdio.h>

main()

{chara[20],b[20],c[20];

scanf("%s%s",a,b);

gets(c);

printf("%S%S%s\n",a,b,c);

}

程序运行时从第一列开始输入:

Thisisacat!<回车>

则输出结果是()。

A.Thisisacat!

B.Thisisa

C.Thisisacat!

D.Thisisacat!

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

A.大写字母B.连接符C.小写字母D.下画线

76.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)

77.

78.

79.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序运行后输出结果是______。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:根据整型形参n,计算如下公式的值。

例如,若n=12,则应输出0.618026。

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

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

试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),该函数的功能是删除一维数组中所有相同的元素,使之只剩一个。数组中的元素已按由小到大的顺序排列,函数返回删除后数组中元素的个数。例如,若一维数组中的元素是2223445666677899101010删除后,数组中的元素应该是2345678910注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#defineN80intfun(inta[],intn){}voidmain(){ inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20; printf(“Theoriginaldata:\n”); for(i=0;i<n;i++)<p=""></n;i++)<> printf(n%3d”,a[i]); n=fun(a,n); printf(“\n\nThedataafterdeleted:\n”); for(i=0;i<n;i++)<p=""></n;i++)<> printf(“%3d”,a[i]); printf(“\n\n”);}

参考答案

1.B当n为9时,此时if语句成立,执行n++后,n为10,因此输出n的值为10,故选择B选项。

2.B选项A中*x等价于x[0],*x+1等价于x[0]+1,*(x[0]+1)等价于x[0][1],正确;选项B中,*(x+1)等价于x[1],*(*(x+1))等价于x[1][0],错误;选项C中,*x等价于x[0],(*x)[1]等价于x[0][1],正确;选项D中,&x[0][0]等价于x[0],&[0][0]+1等价于x[0]+1,*(x[0]+1)等价于x[0][1],正确。故本题答案为B选项。

3.D解析:数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要的图形元素与说明如下:

加工(转换):输入数据经加工变换产生输出。

数据流:沿箭头方向传送数据的通道,一般在旁边标注数据流名。

存储文件(数据源):表示处理过程中存放各种数据的文件。

源,潭:表示系统和环境的接口,属系统之外的实体。

4.B选项A为表达式,因此不正确,选项C中a++本身就是表达式,无需再赋值,选项D中,在强制类型转换时,类型名应用括号括起来,故选择8选项。

5.D解析:putchar(c1)输出1,putchar(c2)输出2,printf('%c%c\\n',c5,c6)输出45。

6.B解析:当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址,函数中的形参可定义成以下三种形式:

①形参定义成数组;

②形参定义成可变长数组:

③形参定义为指针变量。

7.C

8.A

9.A“--k”是先自减再使用,所以第1次判断条件即while(4),条件为真输出k的值,k=4-3,结果为1;第2次判断条件即while(0),条件为假,结束循环,输出回车换行符。故本题答案为A选项。

10.B在C语言中,函数定义是平行的,函数不能嵌套定义,即函数之间没有从属关系。虽然函数之间可以相互调用,但main函数不能被调用,选项A)错误;C程序从main函数开始执行,当main数执行完毕时,整个程序就结束了。C程序的执行必须从main函数开始,选项C)选项错误;函数不能嵌套定义,选项D)错误。

11.A

12.D解析:本题考查switch语句的掌握。必须撑握以下内容:首先应该明白switch语句的语法格式:

switch语句的语法格式为:

switch(表达式)

{

case常量表达式1:语句组1;

case常量表达式2:语句组2;

case常量表达式n:语句组n;

default:语句组n+1;

}

另外,以下几点关于switch语句的重点:

①系统在执行时计算开关表达式的值;②根据所得的值在各个case标号表达式中寻找匹配,直到发现与表达式匹配的标号(本例中匹配的是case\'B\':);\ue008③找\ue009到匹配后执行后面相应的语句表,顺序往下执行;④如果无相匹配的标号,若存在default标号,则执行该语句标号后面的语句表n+1;当不存在default标号时,不执行switch中的任何一个语句表。

一般而言,在多分支结构中总会出现'意外'的情况,这时均可归入default程序段,作统一的处理。default标号是可选性的,不必每次都有,视需要而定。switch语句中还可以包含switch语句,形成switch的嵌套。

13.C数据的存储结构有顺序存储结构和链式存储结构两种。不同存储结构的数据处理效率不同。由于链表采用链式存储结构,元素的物理顺序并不连续,对于插入和删除无需移动元素,很方便,当查找元素时就需要逐.个元素查找,因此查找的时间相对更长。

14.B变量J只接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到浮点型变量Y中。

15.C解析:结构化程序设计是指将待开发的软件系统划分为若干个相互独立的模块,与具体的语句结构无关。Goto语句的滥用会导致程序的可读性降低。三种基本结构构成的程序依然可以解决大规模的问题,只是不利于复用。

16.C

17.C解析:该题考查的是实体间的联系。多对多联系(m:n):如果对于实体集A中的每个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每个实体,实体集A中有m个实体(m≥0)与之联系,则称实体集A与实体集B之间是多对多联系,记作m:n。一对一联系(1:1):如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之有联系,反之亦然,则称实体集A与实体集B之间是一对一联系,记作1:1。一对多联系(1:n):如果对于实体集A中每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B之间是一对多联系,记作1:n。那么根据题意可知是多对一联系。所以选项C是正确的。

18.D多元运算符问号前面表达式为真,所以(a-A+a)赋值给a,括号里的运算是把大写字母变成小写字母,所以答案应为选项D。

19.C解析:x=7,通过递归调用fun函数后得到结果。

20.D解析:中序遍历的递归算法定义:①遍历左子树;②访问根结点;③遍历右子树。前序遍历的递归算法定义:①访问根结点;②遍历左子树;③遍历右子树。后序遍历的递归算法定义:①遍历左子树;②遍历右子树;③访问根结点。根据前序遍历的结果可知,a是根结点。由中序遍历的结果dgbaechf可知,d、g、b是左子树的结点,e、c、h、f是右子树的结点。再由前序遍历的结果bdg可知,b是a左边子树的根,由cefh可知,c是a右边子树的根。再由中序遍历的结果dgb可知,d、g是b左边子树的结点,b右边子树无结点。再由前序遍历结果dg可知,d为b左子树的根,g是以d为根的子树的右结点。至此,a的左子树已完全弄清楚了。同样的道理,可以弄清楚以c为根的子树的结点位置。所以可知后序遍历的结果是D。

21.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。

22.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。

23.282,8解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。这里程序初始时a=1,b=10,经过操作b-=a;a++后b=9,a=2,判断条件b--<O不成立,退出循环,但b的值被减1,因此结果为:a=2,b=8。

24.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。

25.00解析:已知a=10,b=20,所以逻辑表达式a<b的值为true,即为1,在这个表达式前面有一个逻辑运算符!,表示反操作,所以整个语句的值应当为false,即为0。

26.队列队列解析:队列是一种特殊的线性表,只允许在表的一端插入元素,在表的另一端删除元素,插入元素的一端叫做“队尾”,删除元素的一端叫做“队头”,先插入的元素先被删除,是按先进先出的原则组织数据的。

27.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:观察题目要求,可以知道以下几点:

①for循环的结束条件应当是:str[i]已是字符串的最后—个字符;

②str[i]代表字符串str中的第i+1个字符;

③整型变量num的值是要记录的单词的个数。

C语言中规定字符串的最后一个字符是一个隐含的字符串结束符“\\0”,所以在题中第—个空中应填写“\\0”;题中第二个空应填写“str[i]”,以判断当前位置的字符是否为空格;题中第三个空中应当填写“num++”,通过变量num的加1累加得到字符串中的单词个数。

28.max=10row=2colum=1

29.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。

30.a[1][1]a[1][1]解析:p是一个指针数组,p[0]指向数组a[1][0]。*(p[0]+1)代表数组a[1][1]。

31.intz;sub(t1t2);

32.1np*=i或np=np*i1\r\nnp*=i或np=np*i

33.buf的首地址buf的首地址解析:考查fgets()函数的功能,fgets()函数用来从文件中读入字符串。调用格式为:fgets(buf,n,fp)。此处,fp是文件指针,buf是存放字符串的起始地址,n是一个int型变量。调用函数fgets()时,最多能读入n-1个字符,系统自动在最后加字符串结束标志,并以buf作为函数值返回。

34.21

35.相邻相邻

36.元组元组解析:在关系模型中,数据结构用单一的二维表结构来表示实体及实体间的联系。一个关系对应一个二维表。二维表中的列称为属性,属性值的取值范围称为值域。二维表中的一行称为一个元组。

37.实体-联系图(E-R图)实体-联系图(E-R图)解析:实体-联系图(E-R图)是实体联系模型中的核心。由于E-R图描述的是数据流图中数据存储及其之间的关系,因此它是数据库概念设计的最常用的工具。

38.xx解析:函数的定义形式为:

函数类型函数名(形参表)

{

类型说明语句;

执行语句;

}

本题中函数的功能是:累积变量以求捐变量的Y次方。

39.66解析:本题定义了二维数组a和指针变量p,p指向数组的首地址,for循环语句的功能是给数组元素赋值,结果为a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[2][0]=7、a[2][1]=8、a[2][2]=9,故printf函数的输出结果为6。

40.一对多一对多解析:实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。两个实体间的联系可以归结为三种类型:一对一联系表现为某一实体与另一实体一一对应相关联:一对多联系表现为某一实体与相关多个实体相关联;多对多联系表现为多个实体与相关多个实体相联系。所以实体“项目经理”与实体“项目”的联系属于一对多的联系。

41.C解析:根据二叉树性质3:对任何一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个。所以该二叉树度为2的结点有29个,故总结点数=30个叶子结点+29个度为2的结点+40个度为1的结点=99个结点。

42.A解析:在C语言中,模运算(即取余运算%)的运算对象必须是整型数据(常量、变量或表达式)。

43.D

44.B解析:本题考查循环语句的嵌套以及条件的判断问题。在程序中,内层循环判断条件为'\ue008j<=i\ue009',而j的初值为3,故当i的值为1和2时,内层循环体都不会被执行。只有当i和j都等于3时才会执行一次。m的值为55对3取模,计算结果为1。

45.CC。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

46.A解析:本题考查的是函数调用时的参数传递问题。程序在调用函数f时,传给函数f的参数只是结构变量c在栈中的一个拷贝,函数f的所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量c的值。

47.D解析:本题要求阅读的代码是一个函数,阅读之前先要看清函数的定义,该函数有两个参数,都是字符指针,这说明它接收的是两个字符串.该函数没有定义返回类型,C语言规定函数的返回类型为int时可以省略,所以切不可将其看成是无返回类型的void型函数,它是int型函数。函数体中除了返回语句外,只有一条while循环语句,该循环的循环条件为(*a!='\\'0}&&(*b!='\\0')&&(*a==*B),即当a和b所指处都不是字符结束符'\\0'并且a和b所指处的内容相等时执行循环。而循环体中只是简单地将指针a和b同时往后移动1位。循环结束后返回a所指内容减去b所指内容的差。换个角度去考虑,也就是说当字符串a或b中有一个结束了或者是它们的相同位置中有一个字符不同时,则返回该位置两个字符之差。若两者长度相同而且所有对应字符都相同的话,最后返回的是'\\0\\-'\\0'=0,否则的话就返回两个字符串第一对不相同的字符之差.这时应该可以看出来,这个函数实现的是对两个字符串的比较。所以,4个选项中D正确。

48.B解析:在选项B)中,因为数组的第一维的数目不明确,所以理解会有歧义,可以理解为1行3列,或者2行3列等。所以选项B)错误。注意:数组中元素的引用。

49.C解析:printf函数的参数传递方向是从右至左,因此,先将x%y的值1赋给z,再执行z+=1,z的值变为2,格式控制符%d是将z+=1的值输出。

50.B解析:题目中首先通过strcat(p,r)函数将r所指字符串内容连接到p所指的字符串后面,p[20]={'a','b','c','d','a','b','c','d','e'},然后通过strcpy(p+strlen(q),q),首先在p[0]地址的基础上向后移动三位,然后将q所指字符串的内容复制到p所指的存储空间中,从字符d往后全部覆盖,p[20]={'a','b','c','a','b','c'}。在输出语句中strlen(p)是求字符串的长度。

51.D

52.C解析:本题考查的重点是拷贝字符串——使用strcpy()函数,该函数的调用方式是:strcpy(字符数组,字符串),其中”字符串”可以是字符串常量,也可以是字符数组。函数的功能是:将“字符串”完整地复制到“字符数组”中,字符数组中原有的内容被覆盖。

使用该函数时注意:①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志'\\0'一起复制;②不能用赋值运算符“:”将一个字符串直接赋值给一个字符数组,只能用strcpy()函数处理。

另外,本题还考查连接字符串的strcat()函数,其调用方

53.A解析:由于字符“5”和“3”的ASCII码相差为2,所以ch1经过运算后的值应为65+2=67;同理,ch2经过运算后的值应为65+3=68,即是字符“D”。

54.C数据约束是用来确保数据的准确性和一致性的。常见的四种数据约束如下:

(1)实体完整性约束:规定表的每一行在表中是唯一的实体。

(2)域完整性约束:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。

(3)参照完整性约束:是指两个表的主关键字和外关键字的数据应一致,保证了表之间数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。

(4)用户定义的完整性约束:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。

在上述四种数据约束中,不属于关系模型定义的三种数据约束的是域完整性约束。

55.C解析:根据瀑布模型的特点(连续无反馈)是对于每一个阶段来说,前一个阶段工作的正确无误是至关重要的。因此,瀑布模型不能很好地适应那些需求不易确定和多变的软件项目的开发。由于大项目在软件开发的前期阶段,人们很难详细地了解系统的许多细节,从而在项目进行过程中常会出现需求变化。因此,瀑布模型适用于小系统开发项目,而不适用于大、中型软件系统开发。

56.B解析:选项A),在赋值表达式中,赋值号的左边只能是变量或者是代表某个存储单元的表达式,不能是任意表达式。

在判断选项B)时首先应该建立这杆的概念,整型变量中只能存放整型数,实型变量中能存放实型数,也能存放整型数。

选项C),执行表达式a=b后,将把变量b存储单元中的值赋给变量a,从而覆盖a中原有的值,但b中原有的值并不改变。

选项D),在C程序中,求余运算符“%”两边的类型均为整型数据。

57.A解析:选项B中,以0开头表示是一个八进制数,而八进制数的取值范围是0~7,所以-080是不合法的;选项C和D中,e后面的指数必须是整数,所以也不合法。

58.D解析:非常明显,选项A)与选项C)含义相同,表示k除以2的余数非零,但要注意的是,任何整数除以2的余数只有两个结果,0和1。选项A)与选项C)的含义表示k除以2的余数为1,也与选项B)的含义相同,所以答案为选项D)。

59.C解析:C语言中的关键字有32个关键字(参见C语言教程),本题中只有C符合题意。

60.A解析:由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致

温馨提示

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

评论

0/150

提交评论