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

下载本文档

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

文档简介

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

一、单选题(20题)1.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序运行后的输出结果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3

2.以下不属于C语言整数的是()。

A.12fB.25uC.-32D.+20L

3.折半查找法的查找速度一定比顺序查找法快()。

A.正确B.错误

4.下列程序的输出结果是#include"stdio.h”"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}

A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5

5.以下选项中,当x为大于l的奇数时,值为0的表达式是

A.x%2==1B.x/2C.x%2!=0D.x%2==0

6.若有定义语句:intX=10;,则表达式x-=x+X的值为A.-20B.-10C.0D.10

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

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

8.下面程序的输出结果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}

A.121,0,4B.2,2,2C.0,2,4D.0,2,2

9.已知各变量的类型说明如下则以下不符合C语言语法的表达式是()。A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)

10.在最坏情况下比较次数相同的是()。A.冒泡排序与快速排序B.简单插入排序与希尔排序C.简单选择排序与堆排序D.快速排序与希尔排序

11.以下关于C语言的叙述中正确的是()。

A.C语言中的注释不可以夹在变量名或关键字的中间

B.C语言中的变量可以在使用之前的任何位置进行定义

C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致

D.C语言的数值常量中夹带空格不影响常量值的正确表示

12.以下程序的输出结果是()。

f(intb[],intm,intn)

{inti,s=0;

for(i=m;i<n;i=i+2)s=s+b[i];

returns;

}

voidmain()

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

x=f(a,3,7);

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

}A.A.10

B.18

C.8

D.15

13.设有如下函数定义:intfun(intk){if(k<1)return0;elseif(k==l)returnl;elsereturnfun(k-1)+1:}若执行调用语句:“n=fun(3);”,则函数fun总共被诃用的次数是()。A.2B.3C.4D.5

14.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];

D.intn=10,a[n];

15.利用fseek函数可实现的操作是()。

A.实现文件的顺序读写B.改变文件的位置指针C.实现文件的随机读写D.以上答案均正确

16.下列各排序法中,最坏情况下的时间复杂度最低的是()

A.希尔排序B.快速排序C.堆排序D.冒泡排序

17.有以下程序:#include<stdio.h>main{inta=1,b=2;while(a<6){b+=a;a4+=2;b%=10;)printf("%d,%d\n",a,b);}程序运行后的输出结果是()。A.5,11B.7,1C.7,11D.6,1

18.向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()操作。

A.h->next=s;

B.s->next=h;

C.s->next=h;h->next=s;

D.s->next=h->next;h->next=s;

19.设S为一个长度为n的字符串,其中的字符各不相同,则S中的互异的非平凡子串(非空且不同于S本身)的个数为()。

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

20.是哈希查找的冲突处理方法()。

A.求余法B.平均取中法C.二分法D.开放地址法

二、2.填空题(20题)21.下列程序的输出结果是______。

#defineP(A)printf("%d,",(int)(A))

#definePRINT(A)P(A);printf("theend")

main()

{inti,a=0;

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

PRINT(a+i);

printf("\n");

}

22.以下程序的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。请填空。#include<stdio.h>main(){longs,t,s1=10;pfintf("\n.Pleaseenters:");scanf("%1d",&s);t=s%10;while(s>0){s=s/100;t=();s1=s1*10;}printf("Theresultis:%1d\n",t);}

23.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序运行时,如果从键盘输入:A,B,<CR>,则输出结果为______。

24.以下定义的结构体类型包含两个成员,其中成员变量info用来存放整型数据;成员变量link是指向自身结构体的指针。请将定义补充完整。

structnode

{intinfo;

【】Link;

};

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

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);

}

26.函数viodfun(float*sn,intn)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。

s=1-1/3+1/5-1/7+…1/(2n+1)

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=【】*f;

w=f/(2i+1);

s++=w;

}

【】=s;

}

27.有以下定义和语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

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

inta=5;

fun(intB)

{staticinta=10;

a+=b++;

printf("%d",A);

}

main()

{intc=20;

fun(C),

a+=C++;

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

}

29.以下程序的功能是将字符串s中的数字字符放人d数组中,最后输出d中的字符串。例如,输入字符串abc123edf456gh,执行程序后输出123456。请填空。

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

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

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

d[j]='\0';

puts(D);

}

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

enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};

main()

{enumweekdayworkday,weekend;

inti,a[8];

workday=tue;

weekend=sun;

printf("\ntueday=%dsunday=%d;",workday,week_end);

workday=sun+tue;

week_end=(enumweekday)3;

printf("tueday=%dsunday=%d;",workday,weekend);

a[sun]=sun;

a[mon]=mon;

a[tue]=rue;

a[wed]=wed;

a[thu]=thu;

a[fri]=fri;

a[sat]=sat;

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

}

31.以下程序的功能是:从键盘上输入若干学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。填空。

main()

{floatx[1000],sum,=0.0,avea;

intn=0,i;

printf("Entermark:"\n");scanf("%f",&a);

while(a>=0.0&&n<1000)

{sum+=【】;x[n]=【】;

n++;scanf("%f",&a);

}

ave=【】;

printf("Output:"\n");

printf("ave=%f"\n",ave);

for(i=0,i<n;i++)

if(【】)frintf("%f\n",x[i]);

}

32.数据库系统的三级模式分别为【】模式、内部级模式与外部级模拭。

33.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

请填空。

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

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

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

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

printf("\n");

}

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

36.数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。

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

voidfun(int*n)

{while((*n))

printf("%d",(*n)--);

}

main()

{inta=10;

fun(&a);

}

38.数据的逻辑结构有线性结构和______两大类。

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

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.Of\n",fun((int)fun(a+c,b),a-c));}

40.当数据的物理结构(存储结构)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【】。

三、1.选择题(20题)41.有以下程序:#include<string.h>main(){charp[]={'a','b','c'},q[10]={'a','b','c'};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是()。

A.在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3

B.由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3

C.由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3

D.由于p和q数组中都没有字符串结束符,故长度都不能确定

42.在数据流图(DFD)中,带有名字的箭头表示______。

A.控制程序的执行顺序B.模块之间的调用关系C.数据的流向D.程序的组成成分

43.以下程序的输出结果是()main(){inta[3][3]={1,2},{3,4,},{5,6,},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<i;j++)s+=a[i][j];printf("%d\n",s);}

A.18B.19C.20D.21

44.请读程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3t%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若运行时从键盘上输入(图片),则上面程序的输出结果是______。

A.a=98,b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

45.有以下程序intfun1(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=fun1(x);b=fun1(y);return(int)(a+b);}main(){doublew;w=fun2(1.1,2.0);......}程序执行后变量W中的值是______。A.5.21B.5C.5D.0

46.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_______。

A.地址传递B.单向值传递C.由实参传给形,再由形参传回实参D.传递方式由用户指定

47.判断char型变量c1是否为大写字母的正确表达式是

A.'A'<=c1<='Z'

B.(c1>=A)&&(c1<=Z)

C.('A'>=c1)‖('Z'<=c1)

D.(c1>='A')&&(c1<='Z')

48.下列程序的运行结果是

#include"stdio.h"

main()

{intx=-9,y=5,z=8;

if(x<y)

if(y<0)z=0;

elsez+=1;

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

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

49.在标准C语言中,下列程序的输出结果为______。main(){printf("%e",123.456);}

A.123.456B.123.4560C.1.23456e2D.1.234560e+002

50.已知—个有序表为(12,18,24,35,47,50,62,83,90,115,134),当二分查找值为47的元素时,经过______次比较后查找成功。

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

51.下列叙述中,不属于软件需求规格说明书的作用的是()。

A.便于用户、开发人员相互理解和交流

B.反映用户问题的结构,可以作为软件开发工作的基础和依据

C.作为确认测试和验收的依据

D.便于开发人员进行需求分析

52.以下选项中合法的用户标识符是A.longB._2TestC.3DmaxD.A.dat

53.执行下列程序段后,变量a,b,c的值分别是()。intx=5,y=4;inta,b,c;a=(--x==y++)?x:++y;b=++x;c=y;

A.a=5,b=5,c=5

B.a=4,b=5,c=5

C.a=5,b=6,c=5

D.a=1,b=5,c=6

54.数据管理技术发展的三个阶段中,()没有专门的软件对数据进行管理。Ⅰ.人工管理阶段Ⅱ.文件系统阶段Ⅲ.数据库阶段()

A.仅ⅠB.仅ⅢC.Ⅰ和ⅡD.Ⅱ和Ⅲ

55.一颗二叉树中共有70个叶子节点与80个度为1的节点,则二叉树的总节点数为()。

A.219B.221C.229D.231

56.以下叙述中正确的是

A.用C程序实现的算法必须要有输入和输出操作

B.用C程序实现的算法可以没有输出但必须要有输入

C.用C程序实现的算法可以没有输入但必须要有输出

D.用C程序实现的算法可以既没有输入也没有输出

57.有以下函数定义:

voidfun(intn,doublex){……}

若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A.fun(inty,doublem);

B.k=fun(10,12.5);

C.fun(x,n);

D.voidfun(n,x);

58.有以下程序:#defineH15#defineH2H1+1#defineH3H2*H2/2main(){ints=0,k=H3;while(k--)s++;printf("%d\n",s);}程序的输出结果是()

A.30B.10C.29D.19

59.若执行下面程序时从键盘上输入5,main(){intx;scanf("%d",&x);if(x++>5)printf("%d\n",x);elseprintf("%d\n",x--);}则输出是______。

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

60.设有以下语句:chara=3,b=6,c;c=ab<<2;则c的二进制值是()。

A.11011B.10100C.11100D.11000

四、选择题(20题)61.C语言中,组成数据文件的成分是()。A.A.记录

B.数据行

C.数据块

D.字符(字节)序列

62.

63.

s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s;则以下选项中正确的是()。

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,sl)>O)S;

D.if(stremp(s1,s2)>O)S;

64.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。

A.125B.n/2C.nD.n+1

65.(71)算法分析的目的是______。

A.找出数据结构的合理性

B.分析算法的效率以求改进

C.分析算法的易懂性和可靠性

D.找出算法中输入和输出之间的关系

66.已知:chara;intb;floatc;doubled;执行语句“c=a+b+c+d;”后,变量c的数据类型是()。

A.intB.charC.floatD.double

67.

68.以下变量x、y、z均为double类型且已正确赋值,不能正确表示x/(y*z)的C语言表达式是()。

A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z

69.对两个数组a和b进行下列初始化:

charm[]1="l234567":

charn[]={'1','2','3','4','5','6','7');

则下列叙述正确的是()。A.A.数组m与数组n完全相同

B.数组m与数组n长度相同

C.数组m比数组n长1

D.数组m与数组n中都存放字符串

70.已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是()。A.A.isupper(c)B.'A'<=c<='Z'

C.'A'<=c&&c<='Z'

D.c<=('z'-32)&&('a'-32)<=c

71.

72.有以下程序程序输出()。

A.编译有错B.0,0,0,3C.1,1,2,0D.0,l,2,0

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.

75.下列特征中不是面向对象方法的主要特征的是()。

A.多态性B.继承C.封装性D.模块化

76.有以下程序:

main

{inta[]=(2,4,6,8,10},y=0,x,*P;

p=&a[1];

for(x=1;x<3;x++)y+=p[x];

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

}

程序运行后的输出结果是()。A.A.10B.11C.14D.15

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

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

78.

79.下列关于线性链表的叙述中,正确的是()。

A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

C.进行插入与删除时,不需要移动表中的元素

D.各数据结点的存储顺序与逻辑顺序可以不一致,它们的存储空间也可以不一致

80.有以下程序:

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

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

五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若nmnl和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输也的最大公约数为27。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或硼行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.编写函数如n,其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n放指定的下标。例:输入一个字符串“world”,然后输入3,则调用该函数后的结果为“word”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数丘m的花括号中填入你编写的若干语句。试题程序:

参考答案

1.Asizeof是运算符,计算数组、指针、类型、对象、函数等所占的字节大小。strlen(*char)是函数,参数必须是字符型指针(char*)。该函数的功能是:返回字符串的长度,不包括字符串结束标识。“sizeof(a)”是求数组a所占空间的大小,包括字符串最后的‘\\0’。所以“sizeof(a)”=5,strlen遇到‘\\0’就结束,“strlen(a)”=4。“strier(b)”是指针指向的字符串长度,“sizeof(b)”是指针的大小。“strlen(c)”是字符串的长度,“sizeof(c)”是数组的长度。因此,输出结果是4,5,2,4,1,3,。故本题答案为A选项。

2.AC语言中整型常量,从表示形式来看,有十进制、八进制或十六进制;从符号位来看,有有符号整数和无符号整数两类。选项A的“12f”是float类型的实数,不是整数;选项B的“25u”属于无符号整数;选项C的“-32”是十进制形式的有符号整数;选项D的“+20L”是十进制形式的长整数。故本题答案为A选项。

3.B

4.B解析:continue语句的作用是跳过本次循环体中余下尚未执行的语句,接着再一次进行循环条件的判定。当能被2整除时,a就会增1,之后执行continue语句,直接执行到for循环体的结尾,进行i++,判断循环条件。

5.D解析:因为x的值为大于1的奇数,所以x除以2的余数等于1,因此,选项A)、C)中表达式的结果为真,不为0;对于选项B)来说,x除以2的商不会等于0;选项D)中表达式的结果为假,即等于0。

6.B解析:x-=x+x可化为:x=x-(x+x),由于x初始值为10,所以计算后,x=10-20=-10,因此选B)。

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

8.B解析:sizeof函数是取变量所占的存储空间的字节数,标识a代表常量121;constb=12;,其中数据类型可以缺省,默认为整型;enumc{a1,a2};定义了—个枚举类型enumc,a1,a2为枚举元素,在C编译时,对枚举元素按常量处理,它们的值按定义顺序依次为0,1。因此它们的字节数均为2,2,2。

9.A

10.A冒泡排序、快速排序、简单插入排序、简单选择排序在最坏情况下比较次数均为n(n-1)/2,堆排序在最坏情况下比较次数为nlog2n,希尔排序在最坏情况下需要比较的次数是nr(1﹤r﹤2)。本题答案为A选项。

11.B解析:C语言中注释可以放在任何位置,选项A错误;C语言中的变量只要在使用之前定义即可,位置可以是使用前的任何位置,故选项B正确;C语言中两侧数据类型可以不一致,系统可进行强制类型转换,选项C错误;C语言数值常量中不允许存在空格,选项D错误。

12.A函数的功能是对数组某一区域内的元素隔个求和;a[3]=4,所以从4开始进行隔个求和,a[7]=8,即对4到8的元素隔个求和,4+6=10。

13.B此题考查简单的循环,当执行n=fun(3),则函数fun执行3次。

14.D答案D

解析:在选项D中,n是一个整型的变量。C语言规定,在一维数组的定义中,其下标只能是常量表达式,不能包含变量。

15.D解析:改变文件位置指针函数fseek()的功能:①改变文件的位置指针;②辅助实现文件的顺序读写;③辅助实现文件的随机读写。

16.C

17.B“b+=a;”等价于“b=b+a;”,“a+=2;”等价于“a=a±2;”,“bA=10;”等价于“b=b%=10;”。循环体执行3次,最终结果为7,1。

18.D

19.D

20.D

21.1234theend1,2,3,4,theend解析:本题考查带参数的宏的定义。第1次循环,i=1时,调用PRINT(1),P(1)输出1;第2次循环,i=2时,调用PRINT(2),P(2)输出2;第3次循环,i=3时,调用PRINT(3),P(3)输出3;第4次循环,i=4时,调用PRINT(4),P(4)输出4,theend。

22.s%10*s1+t

23.BB解析:因为c是字符类型变量,它只能接收一个字符,所以c=A,字符型变量在参与算术运算的时候是用其相应的ASCII码参与运算的,这样++c得到字母B的ASCII码,用putchar函数输出是输出其相应的字符,所以是B。

24.structnode*structnode*解析:link是指向结构体自身的指针,因此link是指针,指向strictnode类型的数据,可定义成“stmctnode*link”。

25.2121解析:本题考核的知识点是switch语句的嵌套应用。外层switch语句后面括号里的x的值为1,所以执行从case1:后面的语句开始执行,而case1:后面语句也为switch语句,这个switch语句后面括号里的y的值为0,所以从该switch语句里的case():开始执行即执行a++,这时a的值变为1,执行完毕,遇到break语句,退出内层switch语句,又回到外层switch语句,继续执行case1:下面的语句即case2:执行完毕后,a自加1变为2,b自加1变1。所以最后输出的a和b的值为21。

26.-1或-1.0或-1*sn-1或-1.0或-1\r\n*sn

27.10410\r\n4解析:结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。int占2个字节,float占4个字节,共用体变量所占的内存长度等于最长的成员的长度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。

28.30253025解析:本题考核的知识点是变量的存储属性和算术运算的应用。本题涉及了自动变量、静态变量和外部变量。外部变量是定义在所有函数之外的变量,本题中inta=5定义了一个外部变量a,它是一个全局变量,即作用域是从定义的位置开始到本文件的结束;静态变量的存储空间在程序的整个运行期间是固定的(static),本题函数fun()中staticinta=10定义个一个静态变量a,此静态变量a是个静态的局部变量,即它的值只能在本函数中使用;自动变量是C程序中使用最多的一种变量,它的建立和撤消都是由系统在程序执行过程中自动进行的,auto是自动变量的存储类别标识符,如果省略auto,系统隐含认为此变量为auto,本题中main()中intc=20定义了一个自动变量c,此自动变量c是个静态的局部变量.算术运算中a+=b++相当于a=a+b,b=b+1.所以,在第一个ptine('%d',a)中a=a+b=10+20=30,第二个printf('%d',a)中a=a+c=5+20=25,即输出3025。

29.s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57解析:根据题意,if语句的条件应当是判断数组元素s[i]是否为数字,故正确答案为:s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57,其中48是字符0的ASCII码值,57是字符9的ASCII码值。

30.tueday=2sunday=7;tueday=9sunday=3;1234567

31.aasum/n或sum/(float)n或sum/(double)nx[i]<sve或!(x[i]>=sve)或sve>x[i]a\r\na\r\nsum/n或sum/(float)n或sum/(double)n\r\nx[i]<sve或!(x[i]>=sve)或sve>x[i]

32.概念或概念级概念或概念级解析:数据库系统在其内部具有三级模式及二级映射,三级模式分别是概念级模式、内部级模式和外部级模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户(应用)公共数据视图。

内模式式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如磁盘及磁盘操作)。

外模式也称子模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出。

33.x+8sin(x)x+8,sin(x)解析:考查考生对函数调用相关知识的了解。用x+8代替函数fun(doublex)中形式参数x;用sin(x)代替函数fun(doublex)中形式参数x。

34.010111212010111212解析:本题考查的是静态局部变量的运用。静态局部变量的作用域与普通局部变量一样,但它的生存期将延长到程序运行结束。本题的主函数中使用一个for循环输出循环变量i和fun(a)的值,由于a的值一直没被修改过,所以三次调用的都是fun(5)。第1次调用,b=0,c=3,所以返回值为5+1+4=10;第2次调用,因为c是静态局部变量,它仍然保存着上次调用结束时的值4,而b重新被创建和初始化为0,所以返回值为5+1+5=11;同理,第3次调用返回的是12。所以,程序最终输出为:010111212。

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

36.数据存储数据存储

37.1.09877e+010

38.非线性结构非线性结构

39.本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符,将一个表达式转换成所需类型。如:(double)a是将a转换成double类型;(int)(x+y)是将x+y的值转换成整型。

本题可按部就班地逐步运算:

fun((int)fun(a+c,b),a-c)

fun((int)fun(10,5),2-8)

fun((int)15.000000,-6)

fun(15,-6)

9

40.物理独立性数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。数据独立性一般分为物理独立性与逻辑独立性两级。

41.A解析:在给p和q数组赋初值时,系统会自动添加字符串结束符,从题目中可以看出数组p和q都有3个字符,所以长度均为3。

42.C解析:数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。

43.A

44.C解析:scanf()把用户从键盘录入的数字的第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf()遗弃。这时变量a、b、c的值分别为:98、765.000000、4321.000000。

45.C解析:此题考核的是数值类型的定义与强制转换。本题在进行调用函数fun2()时,又对函数fun1()进行了调用,由于函数\u3000fun1()定义为整型,所以第一次调用fun1()时返回的值为1,然后再将1赋值给a,此时由于a为double型,则系统自动类型转换,将1转换成了1.000000赋值给了变量a,以此类推,得b的值为4.000000,然后诵过“return(int)(a+b);”将a+b的值强制转换为int型5返回给主函数,此时又由w的类型为double,所以返回的整型值5又被转换为double型。故输出结果为5.0。

46.B解析:C语言函数中的参数传递方式有传值与传址两种方式,传值方式是指将实参的值复制一份传递给形参,而传址方式是指将实参的变量地址传递给形参,也就是实参的引用。

47.D

48.D解析:if卐lse语句的执行过程如下,首先计算if后面一对圆括号内表达式的值,若表达式的值为非0,执行if子句,然后跳过else子句,去执行if语句后的下一条语句;若表达式的值为0,跳过if子句,去执行else子句,接着去执行if语句后的下一条语句。C语言的语法规定,else子句总是与前面最近的不带else的if匹配,与书写格式无关,本题目的后一个if-else相当于嵌套在第一个if子句里,相当于x<y&&y<0时,z=0;当x<y&&y>=0时,z=z+1。

49.D

50.D

51.D解析:软件需求规格说明书(SRS,SoftwareRequirementSpecification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用:

①便于用户、开发人员相互理解和交流。

②反映用户问题的结构,可以作为软件开发工作的基础和依据。

③作为确认测试和验收的依据。

52.B解析:本题考查C语言标识符的命名.在C语言中,合法的标识符由字母,数字和下划线组成,并且第一个字符必须为字母或者下划线,long为C语言的保留字,不能作为用户标识符,故选顷A错误.3Draax开头的第一个为数字,而C语言规定,第一个字符必须为字母或者下划线,故选项C错误;A.dat中的字符“.”不符合C语言中用户标识符只能由字母、数字和下划线组成的规定,故选项D错误.只有迭项B正确。

53.B解析:本题考查自加(++)、自减(--)运算符的使用。“++i,--i”,在使用i之前,先使i的值加1或者减1,再使用此时的表达式的值参与运算:“i++,i--”,先使用此时的i的值参与运算,在使用i之后,再使i的值加1或者减1。

对于第1个表达式--x=4,y++=4。两者相等,--x==y++为真,所以a=x=4,执行完此语句后y的值是5。

第2个表达式b=++x,x的值先加1,然后赋给b,即b=x+1=5第一个表达式c=y=5。

54.A解析:数据管理技术发展的三个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。

55.A解析:树的结点数等于所有结点的度与对应的结点个数乘积之和加1。对任何一棵二叉树T,如果其叶子结点数为n0,度为2的结点数为n2,则n0=n2+1,即叶子结点数总是比度为2的结点数多1。由于叶子结点个数为70,则度为2的结点数为70-1=69,所以总结点个数为69×2+80×1十1=219。

56.C算法具有的5个特性是:有穷性、确定性、可行性、有0个或多个输入、有一个或多个输出。所以说,用C程序实现的算法可以没有输入,但必须要有输出。因此本题答案选C。

57.C解析:选项A中应将y和m前面的函数的类型

温馨提示

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

评论

0/150

提交评论