2021年浙江省绍兴市全国计算机等级考试C语言程序设计测试卷(含答案)_第1页
2021年浙江省绍兴市全国计算机等级考试C语言程序设计测试卷(含答案)_第2页
2021年浙江省绍兴市全国计算机等级考试C语言程序设计测试卷(含答案)_第3页
2021年浙江省绍兴市全国计算机等级考试C语言程序设计测试卷(含答案)_第4页
2021年浙江省绍兴市全国计算机等级考试C语言程序设计测试卷(含答案)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

2021年浙江省绍兴市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.有以下程序.#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);}程序运行后,若从键盘输入(从第l列开始)123<回车>45678<回车>程序运行后,若从键盘输入(从第l列开始)123<回车>45678<回车>则输出结果是()。A.1267B.1256C.1278D.1245

3.有以下程序:voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main{char*s1="abe",*s2="123":swap(s1,s2);printf("%s,%s\n",s1,s2);}程序执行后的输出结果是()。A.123,abeB.abc.123C.1bc,a23D.321,cba

4.#define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

5.下列选项中,当x为大于1的奇数时,值为0的表达式是()。

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

6.一棵完全二叉树中根结点的编号为1,而且23号结点有左孩子但没有右孩子,则完全二叉树总共有____个结点。

A.24B.45C.46D.47

7.C语言中函数返回值的类型是由()决定的。

A.return语句中的表达式类型B.调用该函数的主调函数类型C.定义函数时所指定的函数类型D.以上说法都不正确

8.算法的有穷性是指A.算法程序的运行时间是有限的

B.算法程序所处理的数据量是有限的

C.算法程序的长度是有限的

D.算法只能被有限的用户使用

9.在软件设计中,不属于过程设计工具的是()。

A.PDLB.DFD图C.PAD图D.N—S图

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

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

11.有以下程序:#include<stdio.h>main(){chars[]={“012xy”;inti,n=0;for(i=0;s[i]|=0;i++)if(s[i]>=‘a’&&s[i]<=‘z’)n++;printf(“%d\n”,n);}程序的运行结果是()。

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

12.以下选项中的表达式调用库函数依次求-4.5的绝对值、-4.0的平方根值、30°角的正弦值和2的3次方值。正确的调用是()

A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)

13.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是_______。

A.p+1B.a+1C.a++D.++p

14.目前以比较为基础的内部排序方法中,其比较次数与待排序的记录的初始排列状态无关的是()

A.插入排序B.快速排序C.二分插入排序D.冒泡排序

15.下列程序的输出结果是______。#include<stdio.h>main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}

A.3B.3.2C.0D.3.07

16.有以下程序:#include<stdio.h>main(){inta[3][3]={0,1,2,3,4,5,6,7,8},(*p)[3],i;p=a;for(i=0;i<3;i++){printf(“%d”,(*p)[i]);p++;}}程序的运行结果是()。

A.036B.012C.048D.147

17.对于哈希表,如果将装填因子α定义为表中装入的记录数与表的长度之比,那么向表中加入新纪录时,()

A.α的值随时冲突次数的增加而递减

B.α越大发生冲突的可能性越大

C.α等于1时不会再发生冲突

D.α低于0.5时不会发生冲突

18.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为()。

A.20B.0或35C.15D.16

19.以下关于简单程序设计的步骤和顺序的说法中正确的是()。

A.确定算法后,整理并写出文档,最后进行编码和上机调试

B.首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档

C.先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档

D.先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构

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

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

B.intnum[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};

二、2.填空题(20题)21.一棵二叉树第六层(根结点为第一层)的结点数最多为______个。

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

intt(intx,inty,ntcp,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.表示“整数x的绝对值大于5”时值为“假”的C语言表达式是______。

24.若要使指针p指向一个double类型的动态存储单元,请填空。

p=【】malloc(sizeof(double));

25.Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向______的设计方法。

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

intx=5;

do{printf("%d",x-=4);

}while(!(--x));

27.下面程序的功能是实现变量x、y内容交换,请填空。

#defineEXCHANGE(a,b,c){a=b;b=c;c=a;}

main()

{intx=10,y=8,z;

【】

printf("%d,%d",x,y);}

28.在面向对象方法中,类之间共享属性和操作的机制称为______。

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

#include<stdio,h>

main()

charc1,c2;

for(el='0',c2='9';e1<c2;c1++,c2--)printf("%c%c",c1,c2);

printf("\n");

}

30.下面程序是计算100以内能被4整除且个位数为4的所有整数,请填空。

main()

{intm,n;

for(m=0;【】;m++)

{n=m*10+4;

If(【】)continue;

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

31.若a的值为1,则表达式!a‖++a的值是______。

32.问题处理方案的正确而完整的描述称为______。

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

#include<stdio,h>

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=a;a=c;c=t;

if(a<e&&b<c)t=b;b=a;a=t;

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

}

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

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

#include<stdio.h>

sb(ints[],intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8};

inti,x=0;

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

{x=sb(s,x);

printf("%d",x);

}

printf("\n");

}

36.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。

37.数据库管理系统常见的数据模型有层次模型、网状模型和【】3种。

38.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,所以,基于逻辑结构的应用程序不必修改,称为【】。

39.媒体在计算机领域中的含义,是指存储信息的实体和【】。

40.与结构化需求分析方法相对应的是【】方法。

三、1.选择题(20题)41.数据的完整性是指数据的正确性、有效性和______。

A.可维护性B.独立性C.安全性D.相容性

42.设有下列二叉树:

对此二叉树中序遍历的结果是

A.ABCDEFB.DABECFC.BDAECFD.DBEFCA

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

A.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根节点的二叉树是线性结构

44.在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。A.A.冒泡排序B.选择排序C.快速排序D.归并排序

45.C语言库函数fgets(str,n,fg)的功能是_______。

A.从中指向的文件中读取长度n的字符串存入str指向的内存

B.从fp指向的文件中读取长度不超过n-1的字符串存入str指向的内存

C.从fp指向的文件中读取n个字符串存入str指向的内存

D.从sb读取至多n个字符到文件fp

46.下面程序main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10;x=1;printf("%d\n",x);}的输出是______。

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

47.关于printf()函数的返回值叙述正确的是

A.通常是本次调用中输出字符的个数B.通常是输出的第一个数值C.通常返回布尔值真D.通常返回非零值

48.下列合法的声明语句是()。

A.int_abc=50;

B.doubleint=3+5e2.5;

C.longdo=1L:

D.float3_asd=3e-3;

49.数据流图用于抽象地描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()。

A.控制流B.加工C.数据存储D.源和潭

50.下面程序的功能是输出以下形式的金字塔图案:****************main(){inti,j;for(i=1;i<=4;i++){ror(j=1;j<=4-i;j++)printf("");for(j=1;j<=______;j++)printf("*");printf("\n");}}在下划线处应填入的是

A.iB.2*i-1C.2*i+1D.i+2

51.有以下程序段:charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCⅡ十进制代码为97,则执行上述程序段后输出的结果是()。

A.因变量类型与格式描述符的类型不匹配输出无定值

B.输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D.a,97,k=12

52.有以下程序:intf(inta){returna%2;}main(){ints[8]={1,3,5,2,4,6},i,d=0;for(i=0;f(s[i]);i++)d+=s[i];printf("%d\n",d);}程序运行后的输出结果是()。

A.9B.11C.19D.21

53.有以下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];则b中的值是()。

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

54.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

55.下列描述中,不是线性表顺序存储结构特征的是

A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系

56.以下程序的输出结果是______。main(){printf("%d\n",NULL);}

A.0B.-1C.1D.不确定的值(因变量无定义)

57.有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)()。

inta[10]={0,1,2,3,4,5,6,7,8,9},*P=a;

A.a[P-a]B.*(&a[i])C.P[i]D.*(*(a+i))

58.设有定义:intn=0,*p=&n,**q=&p;则下列选项中正确的赋值语句是()。

A.p=1;B.*q=2;C.q=p;D.*p=5;

59.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf("%d\n",j);}程序运行后的输出结果是

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

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

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

四、选择题(20题)61.以下叙述中错误的是()。

A.函数的返回值类型不能是结构体类型,只能是简单类型

B.函数可以返回指向结构体变量的指针

C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员

D.只要类型相同,结构体变量之间可以整体赋值

62.

63.下列叙述中错误的是()。

A.列表框和组合框都有List属性

B.列表框有Selected属性,而组合框没有

C.列表框和组合框都有Style属性

D.组合框有Text属性,而列表框没有

64.有以下程序:

#include<stdio.h>

main()

{chara=H;

a=(a>=Aa<=2)?(a-A+a):a;

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

}

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

A.AB.aC.HD.h

65.在下列语句中,其含义为“q是一个函数指针,该指针指向整型数据”的定义语句是()。

A.int**q;B.int(*q);C.int*q;D.int*q;

66.下列关于栈的描述错误的是()。

A.栈按“先进后出”组织数据B.栈是特殊的线性表,只能在一端插入或删除数据C.栈具有记忆功能D.栈只能顺序存储

67.

68.对于循环队列,下列叙述中正确的是()。A.队头指针是固定不变的

B.队头指针—定大于队尾指针

C.队头指针_定小于队尾指针

D.队头指针可以大于队尾指针,也可以小于队尾指针

69.假定已建立以下链表结构,且指针P和q已指向如图所示的结点:

则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是()。

A.p一>next=q一>next;flee(q);

B.p=q一>next;free(q);

C.p=q;free(q);

D.(*p).next=(幸q).next;ffee(p);

70.有以下程序在VC6平台上编译运行。程序运行后的输出结果是(

)。

A.4,8B.4,4C.2,4D.10,6

71.有以下程序段程序的输出结果是()。

A.a=10b=50c=10

B.a=10b=50c=30

C.a=10b=30c=lO

D.a=50b=30c=50

72.

若有以下的说明和语句,则在执行for语句后,’(*(pt+1)+2)表示的数组元素是()。

intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];

A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

73.定义如下变量和数组:

则下面语句的输出结果是()。

A.951B.741C.753D.963

74.如果将主文件型指针fp指向的文件内部指针置于文件尾,正确的语句是()。

A.feof(fp);

B.rewind(fp);

C.fseek(fp,OL,0);

D.fseek(fp,OL,2);

75.表达式'5'-'1'的值是()。A.A.整数4B.字符4C.表达式不合法D.字符6

76.以下叙述中错误的是()。A.可以通过typedef增加新的类型

B.可以用typedef将已存在的类型用一个新的名字来代表

C.用typedef定义新的类型名后,原有类型名仍有效

D.用typedd可以为各种类型起别名,但不能为变量起别名

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

A.在C语言程序中,main函数必须放在其他函数的最前面

B.每个后缀为C的C语言源程序都可以单独进行编译

C.在C语言程序中,只有main函数才可单独进行编译

D.每个后缀为.C的C语言源程序都应该包含一个main函数

78.

79.对于存储同样的一组数据元素而言().

A.顺序结构比链接结构易于扩充空间

B.顺序结构与链接结构相比,更有利于对元素进行插入、删除运算

C.顺序结构占用整块空间,而链接结构不要求整块空间

D.顺序结构比链接结构多占存储空间

80.

五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:计算整数n的阶乘。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),其功能是找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#defineM4#include<stdio.h>intfun(inta[][m]){}voidmain(){intarr[2][M]={5,8,3,45,76,-4,12,82};printf(“max=%d\n”,fun(arr));}

参考答案

1.A

2.Dscanf函数读取的是char型数据,所以回车时输入的换行符也是有效字符。于是cl,c2,c3,c4的内容分别是1,2,3,\n。

3.C本题考查swap函数,它的作用是把x、Y所指的内容互换,其他的不变,因此当执行完调用函数后,仅仅a与1互换,其他的没有变。

4.C解析:带参数宏的格式为:#define标识符(形参表)形参表达式。其功能是:在预处理程序中将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。

5.D解析:因为x的值为大于1的奇数,所以x除以2的余数等于1。所以选项D)等于关系表达式的结果为假,即等于0。

6.C

7.C

8.A算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。

9.B常见的过程设计工具有图形土具(程序流程图、N—S图、PAD图、HIP0图)、表格工具(判定表)和语言工具(PDL)。DFD是数据流图,是描述数据处理过程的工具。

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

11.B程序首先给字符数组s赋值为“012xy”。for循环语句的功能是遍历字符串,通过if条件语句对字符串中的小写字母进行计数,字符串中小写字母个数为2,即n=2。故本题答案为B选项。

12.C

13.C解析:数组名是指针常量,是个固定的指针,不能对数组名赋予一个新的地址值,也不能使这个指针常驻量“移动”,指向数组的其他元素。

14.C

15.C

16.Cmain函数定义3行3列的整型二维数组a;定义数组指针P,P指向包含3个元素的数组。程序首先将a赋给p。for循环中,i=0时,P指向a的第1个元素{0,1,2},输出p[0]即0;i=1时,p指向a的第2个元素{3,4,5},输出P[1]即4;i=2时,p指向a的第3个元素{6,7,8},输出P[2]即8。所以程序输出048。故本题答案为C选项。

17.B

18.BQ(1:35)则队列的存储空间为35;对空条件:front=rear(初始化时:front=rear),队满时:(rear+1)%n==front,n为队列长度(所用数组大小),因此当执行一系列的出队与入队操作,front=rear.则队列要么为空,要么为满。

19.B\n选项C和D可直接排除,程序是数据结构和算法的组合体,所以是先选择数据结构,然后继而选择相对应的算法,编码并上机调试,最后整理文档。

\n

20.BB选项中定义的数组为2行4列,而赋值时却赋成了3行,所以错误。故本题答案为B选项。

21.3232解析:二叉树的一个性质是,在二叉树的第k层上,最多有2k-1(k≥1)个结点。由此,26-1=32.所以答案为32。

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

23.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本题考查基本逻辑表达,“整数x的绝对值大于5”时值为“假”,即整数x的绝对值小于等于5,也就是整数x要大于等于-5且要小于等于5。这里“且”用“与(&&)”表示,所以C语言表达式为:(x>-5)&&(x<5)。

24.(double*)(double*)解析:一般用malloc函数为变量分配存储单元时,要在前面用强制类型转换符说明该存储单元中数据的类型。本题要为指向双精度浮点型数据的指针变量p分配存储单元,因此用(double*)说明。

25.数据结构数据结构

26.1-41-4解析:题目中首先让x=5,然后进入do-while循环体,输出x-4的值1,此时x为1,表达式!(--x)的值为!(0)为真(此时x变为0),所以再次执行循环体,输出x-4的值-4,此时x为-4,表达式!(--x)的值为!(—5)为假,退出循环。故输出结果是1-4。

27.EXCHANGE(zxy)或EXCHANGE(zxy);EXCHANGE(z,x,y)或EXCHANGE(z,x,y);

28.继承继承

29.918273645918273645解析:程序通过for循环将字符'0'~'9'从前向后,同时从后向前依次输出,所以输出结果为:0918273645。

30.m<10n%4!=0

31.11解析:逻辑运算中,非1即0,非0即1,!a=0,++a为逻辑1,所以0和1相或结果为1。

32.算法或程序或流程图算法或程序或流程图解析:算法是问题处理方案正确而完整的描述。

33.45994599解析:要注意每条证语句后面是三条语句,而不是一条语句。执行第一条if语句时,条件表达式不成立,执行a=c;c=t;,此时a=5,c=99;执行第二条if语句时,条件表达式成立,执行t=b;b=a;a=t;交换a,b的值,输出结果为4,5和99。

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

35.86518651解析:主程序中,第一次循环时,i=0,调用sb(s,x)子函数,此时n=3,x=s[n]=s[3]=8,然后将n减1变为2;第二次循环时,i=1,调用sb(s,x)子函数,因为将n定义为了静态变量,所以此时n=2,返回x=s[n]=s[2]=6;第三次循环时,i=2,调用sb(s,x)子函数,此时n=1,返回x=s[n]=s[1]=5;第四次循环时,i=3,调用sb(s,x)子函数,此时n=0,返回x=s[n]=s[0]=1。此程序实际上是将数组s逆序输出。

36.概念(或概念级)概念(或概念级)

37.关系模型关系模型解析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。

38.物理独立性物理独立性解析:逻辑独立性是指,由于数据的局部逻辑结构与总体逻辑结构之间也由系统提供映像,使得当总体逻辑结构改变时,其局部逻辑结构叮以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。物理独立性是指,由于数据的存储结构与逻辑结构之间山系统提供映像,使得当数据的存储结构改变时,其逻辑结构可以不变,所以,基于逻辑结构的应用程序不必修改。

39.载体载体

40.结构化设计结构化设计解析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。

41.D解析:数据模型应该反映和规定本数据模型必须遵守的、基本的、通用的完整性约束条件。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其状态的变化,以保证数据的正确性、有效性和相容性。

42.C解析:二叉树的遍历分为先序、中序、后序三种不同方式。本题要求中序遍历,遍历顺序应该为:中序遍历左子树->访问根结点->中序遍历右子树。按照定义,中序遍历序列是BDAECF。

43.A解析:线性表是一种线性结构,数据元素性表中的位置只取决于它们自己的序号,即数据元素之间的相对位置是线性的;栈、队列、线性链表实际上也是线性表,故也是线性结构。线性链表:线性表的链式存储结构称为线性链表,是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接来实现的。

44.A解析:以下几种算法的时间复杂度分别为:冒泡排序(n2);选择排序(n2);快速排序(nlog2n);归并排序(nlog2n)。当排序元素序列基本有序的情况下,冒泡排序的交换次数为0,只是顺序扫描数据而已,所以其效率是最高的。

45.B解析:fgets函数的作用是从指定的文件读入一个字符串。fgets(str,n,fp);中的n为要求得到的字符的个数,但只从fp指向的文件输入n-1个字符,然后在最后加一个‘\\0’字符,因此得到的字符串共有n个字符。

46.A解析:第一个判断值为真,过渡到下一个判断,第二个判断为真,过度到第三个判断......如此循环,在打印输出语句的前一行,程序给变量x赋了值,为-1,所以,无论前期如伺变化,最后的x值依然为-1。

47.A解析:printf函数的返回值通常是本次调用中输出字符的个数。scanf函数在调用结束后将返回一个函数值,其值等于得到输入项的个数。

48.A解析:C语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。另外C语言规定了一些专用的标识符,它们有着固定的含义,不能更改。int就是表达变量类型的标识符,它不能再用做变量名和函数名,所以选项B)不正确。do是C语言的一个关键字,也不能再用做变量名和函数名,所以选项C)不正确。

49.A解析:数据流图包括四个方面,即加工(输入数据经加工变换产生输出)、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体),不包括选项中的控制流。

50.B解析:通过观察可知图形共4行,主函数中通过一个for循环四次,输出4行。第一行输出3个空格和1个“*”,第2行输出2个空格和3个“*”,第3行输出3个空格和5个“*”,第四行输出7个“*”,主函数中通过第二个循环控制每行的输出空格数,第三个for循环控制输出的“*”的个数,总结规律:每行输出的“*”的个数,总比前一行的多2个,且第一行的个数为1,可以断定每行输出的“*”的个数组成了一个公差为2的等差数列,所以每行输出“*”的个数即该等差数列的通项,故该空格处应该填写2*i-1。

51.D

52.A解析:函数f()的作用是形参a为偶数的时候返回0,主函数中首先定义了一个长度为8的一维数组,然后给它赋初值使得s[0]=1、s[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6。其他没有赋值的数组元素将自动赋值为0。for循环中,当s[i]不为偶数的时,将s[i]相加,即当i=3时,s[i]=2为偶数,退出循环,此时d的值为d=s[0]+s[1]+s[2]=1+3+5=9,因此最后输出的d的值为9。

53.D解析:p为指向整型数据的指针变量,存放的是a[3]的地址,即p指向数组{4,5,6,7,8,9,10},b=p[5],因此,b中的值是9。

54.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。

55.D解析:线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此,不需要另外开辟空间来保存元素之间的关系。

56.A解析:NULL表示空,常在定义指针变量时将其值赋为NULL,表示不指向任何地址。NULL在C语言的头文件中宏定义为0。

57.D解析:本题考查数组指针的应用。选项D)第一层括号中为数组a中第i项元素的值,外面再加指针运算符没有意义。

58.D解析:选项A),B),C)的指针赋值表达方式都不正确,*p=5表达整数5放到指针p所指向的存储单元中。注意:通过指针引用一个存储单。

59.B解析:主函数中for循环执行两次,i=1和i=2。调用函数f(1),返回值为1,j=1;调用函数f(2),计算表达式f(n-1)+1的值时递归调用f(1),返回值为2,j=3。所以B为所选。

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

6

温馨提示

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

评论

0/150

提交评论