2021年广东省清远市全国计算机等级考试C语言程序设计预测试题(含答案)_第1页
2021年广东省清远市全国计算机等级考试C语言程序设计预测试题(含答案)_第2页
2021年广东省清远市全国计算机等级考试C语言程序设计预测试题(含答案)_第3页
2021年广东省清远市全国计算机等级考试C语言程序设计预测试题(含答案)_第4页
2021年广东省清远市全国计算机等级考试C语言程序设计预测试题(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

2021年广东省清远市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下程序运行后的输出结果是()。

A.1,2,3,1,5,9,

B.1,3,5,1,3,5,

C.1,3,5,0,d,8,

D.1,3,5,-1,3,7,

2.

若输入“abcdef”“abdef”,下述程序的输出结果为()。

#include<stdio.h>

#include<string.h>

main

{intn;

chars1[20],s2[20],*p1,*p2;

scanf("%s",s1);

scanf("%S",s2);

p1=s1;

p2=s2;

n=strcmp(p1,p2);

printf("Vood\n",n);

}

A.-1B.0C."abcdef"D."abdef"

3.若有定义语句:"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]

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

A.y=-IB.y=oC.y=lD.while构成无限循环.

5.若要判断char型变量c中存放的是否为小写字母,以下正确的表达式是()。A.'a'<=c<='z'

B.(c>='a')&&(c<='z')

C.(c>='a')‖(c<='z')

D.('a'<=c)AND('z'>=c)

6.若有下列定义(设int类型变量占2个字节):

inti=8;

则下列语句:

printf("i=%08d",i);

输出的结果是()。A.A.i=8B.i=00000008C.i=08D.8

7.单链表中,增加一个头结点的目的是为了()。

A.使单链表至少有一个结点B.标识表结点中首结点的位置C.方面运算的实现D.说明单链表是线性表的链式存储

8.设n个待排序的记录关键字,则在堆排序中需要()个辅助记录单元。

A.1B.12C.60D.15

9.有以下程序:#include<stdio.h>voidfun(intn){if(n/2)fun(n/2);printf(“%d”,n%2);}main(){fun(10);printf(“\n”);}程序运行后的输出结果是()。

A.0101B.1000C.1100D.1010

10.

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

A.在C语言中,可以使用动态内存分配技术定义元素个数可变的数组

B.在c语言中,数组元素的个数可以不确定,允许随机变动

C.在C语言中,数组元素的数据类型可以不一致

D.在C语言中,定义一个数组后.就确定了它所容纳的元素的个数

12.有以下程序

A.741B.963C.852D.87542l

13.

14.已知一个长度为32的有序表,若采用二分查找一个不存在的元素,则比较次数最多是()

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

15.在循环队列中,若front与rear分别表示对头元素和队尾元素的位置,则判断循环队列空的条件是()。

A.front==rear+1B.rear==front+1C.front==rearD.front==0

16.设有以下程序段:structMP3{charname[20];charcolor;floatprice;}std,*ptr;ptr=&std:若要引用结构体变量std中的color成员,写法错误的是()。A.std.colorB.ptr->colorC.std->colorD.(*ptr)color

17.

18.若x=10010111,则表达式(3+(int)(x))&(~3)的运算结果是()。

A.10011000B.10001100C.10101000D.10110000

19.用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的出度为()。

A.第i行非0元素的个数之和B.第i列非0元素的个数之和C.第i行0元素的个数之和D.第i列0元素的个数之和

20.下而程序的输出结果是()。

A)32

B)26

C)24

D)4

二、2.填空题(20题)21.在具有n个单元、顺序存储的循环队列中,队满时,共有【】个元素。

22.多媒体计算机所用的CD-ROM是【】。

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

structnode

}intinfo;

【】link;

};

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

word_num(str)

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

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

【】;

}

return(num);

}

25.数据库系统其内部分为三级模式,即概念模式、内模式和外模式。其中,______是用户的数据视图,也就是用户所见到的数据模式。

26.如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体“工人”与实体“设备”之间存在______联系。

27.有以下程序:

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}

执行后的输出结果是【】。

28.下面程序的输出是【】。

main()

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

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

arr[i]=i;

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

k+=arr[i]+i;

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

29.队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作______。

30.以下程序的输出结果是【】。

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3,i>=0;i--,i--)printf("%c",*p[i]);

printf("\n");

}

31.已知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);}

32.将经过确认测试的软件与外设、网络等连接在一次运行的测试叫【】

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

main()

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

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

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

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

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

printf("\n");

}

}

34.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。

35.在数据的存储结构中,不仅需要存储各数据元素的信息,还要存放各元素之间______的信息。

36.栈的基本运算有三种:入栈、退栈和【】。

37.已知字母A的ASCII码为65。以下程序运行后的输出结果是______。

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

}

38.程序如下:

main()

{inti=4;

printf("%d",-++i);

}

该程序执行后的输出结果以及i的值分别是______、_______。

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

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

}

40.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护o

三、1.选择题(20题)41.下列选项中,不是一个算法的基本特征的是()。

A.完整性B.可行性C.有穷性D.拥有足够的情报

42.函数rewind的作用是

A.使文件位置指针重新返回文件的开始位置

B.将文件位置指针指向文件中所要求的特定位置

C.使文件位置指针指向文件的末尾

D.使文件位置指针自动移至下一个字符位置

43.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

44.在结构化程序设计中,模块划分的原则是()。

A.各模块应包括尽量多的功能

B.各模块的规模应尽量大

C.各模块之间的联系应尽量紧密

D.模块内具有高内聚度,模块间具有低耦合度

45.以下能正确定义二维数组的是()。

A.inta[][3];

B.inta[][3]={2*3};

C.inta[][3]={};

D.inta[2][3]={{1},{2},{3,4}}:

46.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"),*p=str[0];printf("%d\n",strlen(p+20));}程序运行后的输出结果是()。

A.0B.5C.7D.20

47.当a=1、b=3、c=5、d=4时,执行下面一段程序:if(a<B)if(c<D)x=1;elseif(a<C)if(b<D)x=2;elsex=3;elesx=6;elsex=7;程序执行后,x的值为()

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

48.按条件f对关系R进行选择,其关系代数表达式为

A.

B.

C.

D.

49.静态测试是一种重要的测试方式,可以发现30%到70%的逻辑设计和编码错误。下面()不属于静态测试?

A.白盒测试B.代码检查C.代码质量度量D.静态分析

50.有以下程序:#include<stdio,h>voidfun(iht*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;i++;j--;fun(a,i,j);main()intx[]:{2,6,1,8},i;fun(x,0,3);for(i=0;i<4;i++)printf("%2d",x[i]);printf("\n");

A.1268B.8621C.8162D.8612

51.若变量已正确定义并赋值,下面符合C语言的表达式是_____。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

52.以下叙述中错误的是

A.gets函数用于从终端读入字符串

B.getehar函数用于从磁盘文件读入字符

C.fputs函数用于把字符串输出到文件

D.fwrite函数用于以二进制形式输出数据到文件

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

A.数据库系统是一个独立的系统,不需要操作系统的支持

B.数据库系统的根本目标是要解决数据的共享问题

C.数据库管理系统就是数据库系统

D.以上三种说法都不对

54.下列说法不正确的是()。

A.一个C语言源程序可以由一个函数组成也可以由多个函数组成

B.main()中的“()”是函数的参数部分,括号内可为空,但括号不能省略

C.C语言程序是以函数为基本单位的

D.在C语言程序中,注释行只能位于一条语句的后面

55.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}rintf("%d\n",m);}程序运行后的输出结果是()。

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

56.下列程序的运行结果是()。#include<stdio.h>voidfun(int*s,int*p){staticintt=3;*p=s[t];t--;}voidmain(){inta[]={2,3,4,5),k;intx;for(k=0;k<4;k++){fun(a,&x);printf("%d,",x);}}

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

57.有以下程序:#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}程序运行后的输出结果是______。

A.64,28B.4,4C.4,3D.64,64

58.下列程序的输出结果是

#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

59.设x、y、t均为int型变量,执行以下语句后,y的值为______。x=y=3;t=++x||++y;

A.不定值B.4C.3D.1

60.有以下程序:#include<string.h>voidf(charp[][10],intn)/*字符串从小到大排序*/{chart[10];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[5][10]={"abc","aabdog","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[0]));}程序运行后的输出结果是()。

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

四、选择题(20题)61.若有定义语句:doublex,y,*px,*PY;执行了laX=&x;lay=&y;之后,正确的输入语句是()。A.scanf(”%If%le”,px,lay);

B.seanf(”%f%f¨&x,y);

C.seanf(”%f%f",x,y);

D.Scanf(”%If%If"·,x,y):

62.

63.待排序的关键码序列为15,20,9,30,67,65,45,90,要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第()个位置。

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

64.有以下程序:

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

A.0B.1C.4D.8

65.为了避免嵌套的条件分支语句if—else的二义性,C语言规定:C程序中的else总是与_____组成配对关系。

A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if

66.

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

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

68.有以下程序:

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

A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7,

69.对表达式for(表达式1;;表达式3)可理解为()。

A.for(表达式1;0;表达式3)

B.for(表达式1;1;表达式3)

C.for(表达式1;表达式1;表达式3)

D.for(表达式1;表达式3;表达式3)

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

A.eelcomwB.weoclnleC.welcomeD.emoclew

71.

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

main

{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<7)

if(p[i]%2)j+=p[i];

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

}

A.42B.45C.56D.60

72.有以下程序:

程序运行后的输出结果是()。A.235B.0235C.02356D.2356

73.

74.

75.应用数据库的主要目的是A.A.解决数据保密问题

B.解决数据完整性问题

C.解决数据共享问题

D.解决数据量大的问题

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

A.sets(&s[0]);

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

C.gets(s);

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

77.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。

A.&B.^C.D.E.F.~

78.

79.

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:在字符串的最前端加入m个*号,形成新串,并且覆盖原串。例如,用户输入字符串abcd(以Enter键结束),然后输入m值为3,则结果为***abcd。注意:字符串的长度最长允许为79。请修改函数proc()中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写一个函数voidproc(intm,intk,intxx[]),该函数的功能是将大于整数m且紧靠m的k个非素数存人所指的数组中。例如,若输入:105(即M=10,k=5),则应输出:l214151618。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.Dmain函数中,fun(fun(t))嵌套调用fun函数。第一次调用为fun(1),调用后,a[3]={1,3,5},输出1,3,5,返回a[1]=3。第二次调用为fun(3),调用后,a[3]={一1,3,7},输出一l,3,7。

2.D

\n本题考查字符串比较函数strcmp(s1,s2),若s1>s2,则返回1;若s1=s2,则返回0;若s1<s2,则返回-1。字符串依次比较的是它们字符的ASCIl码值。

\n

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

4.A当y为。时,表达式y一才为假,循环结束,最终y的值为一l,所以答案选择A)。

5.BC语言中,char型变量的值是其对应字符的ASCII值,可以做比较运算。由于小写字母的ASCII值按字母表的顺序连续递增,因此判断char型变量c是不是小写字母时,判断c的ASCII值是否在’a’和’z’之间,即(c>=’a’)&&(c<=’z’)。本题答案为B选项。

6.B解析:本题考查printf函数的格式。“%08”格式符中的“0”表示在指定数据输出宽度的同时,在数据前面的多余空格处加“0”;“8”表示指定数据的输出宽度为8位。

7.C

8.A

9.D函数fun的作用是求一个十进制数的二进制数。通过辗转相除法获取这个整数的二进制数。因此(10)10=(1010)2。故本题答案为D选项。

10.D

11.D在C语言中,数组元素的个数是确定的,不允许随机变动,数组定义好后,它所能容纳的元素的个数也就确定了,并且同一个数组中所有元素都是同一类型。

12.C在for循环中,当y的值为9、6或3时,执行输出语句,输出表达式“——y”的值。y先自减1,然后再输出y的值。

13.C

14.C

15.C

16.C【答案】C

【知识点】结构体成员变量的引用

【解析】结构体变量包括一个或多个成员变量,引用其成员变量的语法格式如下:

结构体变量.成员变量。通过结构体指针变量获得其结构体变量的成员变量的一般形式为:(*结构体指针变量).成员变量,也可以使用:结构体指针变量->成员变量来引用成员变量。

17.D

18.A解析:本题主要考查运算表达式的运算。3+(int)(x)的结果是10011010,~3的结果是11111100,二者逻辑与得10011000。

19.A

20.C本题考查的是联合所占的存储空间。sizeof(t)=sizeof(douhle)*3=8*3=24。联合体所占的存储空间取决于所占空间最大的成员所占的空间。

21.n-1

22.只读光盘只读光盘

23.struetnode*struetnode*解析:本题中的结构类型名为struetnode,所以空白处应填:structnode*,即定义一个指向自身的结构体指针。

24.\O'或0或NULLstr[i]num++或num=num+1或num+=1\\O'或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累加得到字符串中的单词个数。

25.外模式外模式解析:数据库系统的三级模式分别是内模式、概念模式和外模式。其中,物理模式给出了数据库的物理存储结构和存取方法;概念模式是数据库系统中全局数据逻辑结构的描述;外模式是用户的数据视图,也就是用户所见到的数据模式。

26.一对多(或1:N)一对多(或1:N)

27.00解析:for循环执行完成后t=5×4×3×2×1×0=0。

28.1212解析:本题通过第一个for循坪将数组arr[0]-arr[9]分别赋值为0-9,通过第二个for循环的三次循环累加,求出结果为12,具体分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

29.队尾队尾解析:在队列中,允许插入的一端叫做“队尾”,允许删除的一端叫做“队头”。

30.SO

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

32.系统测试系统测试

33.123056009123\r\n056\r\n009解析:数组a中元素的初值为: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[12][0]=7、a[2][1]=8、a[2][2]=9。执行第1个for循环后a[1][0]=0、a[2][0]=0、a[2][1)=0;第2个for循环的功能是将数组元素按照3行3列的格式输出。

34.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。

35.前后件关系前后件关系解析:在数据存储结构中,除了要存储数据,还要存储数据的前后件关系,对于顺序存储的数据结构,前后件之间的关系,是通过存储空间的位置来实现的,而对于链式存储来说,数据元素之间的前后件关系是通过指针来实现的。

36.读栈顶元素读栈顶元素解析:栈的基本运算有三种:入栈、退栈和读栈顶元素。

入栈运算是指在栈顶位置插入一个新元素。这个运算有两个基本操作:首先将栈顶指针进一(即top加1),然后将新元素插入到栈顶指针指向的位置。

退栈运算是指取出栈顶元素并赋给一个指定的变量。这个运算有两个基本操作:首先将栈顶元素(栈顶指针指向的元素)赋给一个指定的变量,然后将栈顶指针退一(即top减1)。

读栈顶元素是指将栈顶元素赋给一个指定的变量。这个运算不删除栈顶元素,只是将它的值赋给一个变量。

37.67G67G解析:字符型变量中保存的是某个字符的ASCII码值,是一个整数,因此字符型变量的算术运算和整型变量并无区别。所以。a='A'+'5'-'3'='A'+('5'='3')='A'+2=65+2=67:b=a+'6'='2'='C'+('6'-'2')='C'+4='G'。最后分别按十进制整数和字符形式输出a和b的值为:67G。

38.-55。

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

40.完善性完善性解析:软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

41.A解析:作为一个算法,一般应该具有下列4个特征:(1)可行性,即考虑到实际的条件能够达到一个满意的结果;(2)确定性,算法中的每一个步骤都必须是有明确定义的,(3)有穷性,一个算法必须在有限的时间内做完;(4)拥有足够的情报。

42.A解析:函数rewind的功能是将文件指针重新指向一个流的开头。用法如下:

intrewind(FILE*stream);并且无返值。

43.D各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序0(n1.5)、简单选择排序n(n-1)/2、堆排序O(nlog2n)

44.D解析:本题考查软件工程中软件设计的概念和原理。人们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得到如下的启发式规则:

(1)改进软件结构,提高模块独立性;通过模块的分解或合并,力求降低耦合提高内聚。低耦合也就是降低不同模块间相互依赖的紧密程度,高内聚是提高一个模块内各元素彼此结合的紧密程度。

(2)模块的规模应适中。一个模块的规模不应过大,过大的模块往往是由于分解不够充分:过小的模块开销大于有益操作,而且模块过多将使系统接口复杂。因此过小的模块有时不值得单独存在。

(3)模块的功能应该可以预测,但也要防止模块功能过分局限。如果模块包含的功能太多,则不能体现模块化设计的特点:如果模块的功能过分的局限,使用范围就过分狭窄。

经过上述分析,本题的正确答案是选项D。

45.B解析:(1)二维数组的定义

二维数组的定义方式为:类型说明符数组名[常量表达式][常量表达式]。

二维数组在内存中是按行优先的顺序存放的,即先存放第一行的元素,再存放第二行的元素,依次类推。

(2)二维数组元素的引用

二维数组元素的表示形式为:数组名[下标][下标],下标可以是整型常量或整型表达式其范围为:0~(常量表达式-1)。

(3)二维数组的初始化

可以用以下方法对二维数组元素初始化:

①分行给二维数组赋初值

例如:inta[2][2]={{1,2},{3,4}};

这种赋值方式比较直观,把第1个大括号内的数据赋给第1行的元素,第2个大括号内的数据赋给第2行的元素,即按行赋值。

②可以将所有数据写在一个大括号内,按数组排列的顺序对各个元素赋初值。

③可以对部分元素赋初值,没有初始化的元素值为0。

④如果对全部数组元素赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省略。

46.C解析:主函数中定义了一个二维字符数组并初始化,初始化后的结果为str[0]='Hello'、str[1]='Beijng',然后定义一个字符指针变量p并让它指向str[0],即指向数组的首地址,而在C语言中无论是一维还是多维数组,其元素在内存中都是顺序存放的,故p+20后指针指向str[1],所以strlen(p+20);返回的是str[1]中字符串的长度,即'Beijng'的长度7,故4个选项中选项C符合题意。

47.B

48.C解析:选择运算是一个一元运算,关系R通过选择运算(并由该运算给出所选择的逻辑条件)后仍为一个关系。这个关系是由R中那些满足逻辑条件的元组所组成。如果关系的逻辑条件为f,则R满足f的选择运算可以写成;бf(R)。

49.A

50.C解析:语句fun(x,0、3);中将数组名x作为实参,即把数组x的首地址传送给形参(指针a),使数组x与形参指针s共占同一段内存单元,在调用函数期间,如果形参数组x的值发生了改变,实参指针a的值也就改变了。程序中fun函数是递归调用函数,其运行过程是:第1次调用fun时,a=x,i=0,j=3,i<j成立,a[0]与a[3]交换,a数组中的数变为{8,6,1,2},执行i++;j--;继续调用fun,此时i,j分别为1,2,i<j成立,a[1]与a[2]交换,a数组中的数变为{8,1,6,2},执行i++j--;继续调用fun,此时i,j分别为2,1,i<j不成立,递归调用结束。当返回主函数时,x数组中的数据就为{8,1,6,2}。

51.B解析:选项A和C一望而知其错;对于表达式a=a+7=c+b(答案D),是先执行赋值表达式a+7=c+b,再把这个表达式的值赋给a,显然,表达式a+7=c+b非法,因为赋值表达式的左侧不能为常量或表达式。

52.B

53.B解析:数据库系统(DBS)是由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成的运行实体。数据库技术的根本目标是解决数据的共享问题。

54.D解析:本题涉及C语言基本的3个知识点:①C语言是以函数为基本单位的,每一个函数完成相对独立的功能,一个程序可以包括多个函数,但有且仅有一个主函数;②主函数main()的圆括号内是填写参数的,可以没有参数,但括号不可以省略;③程序的注释部分应该在“/*…………*/”之间,它允许出现在程序的任何位置。

55.A解析:本题中首先计算switch后面括号里的表达式a%3,即15%3为0;执行case0:后面的语句m++:m自加1,即m为1遇到break语句;然后跳出switch语句,所以最后输出的m的值为1。所以选项A正确。

56.A解析:分析fun函数程序段,可知fun函数要实现的功能是将s中第(t+1)个元素以前的元素逆置赋给数组p。由于fun中函数定义了静态变量t=3,因此,在主函数中调用函数fun(a,&x)时,就是要将数组a中前4个元素逆置赋给数组x,最后输出x数组。

57.C解析:根据题意,il=f(8)/f(4)进行宏替换后.i1=(8*8)/(4*4)=4,i2=f(4+4)/f(2+2)=(4+4*4+4)/(2+2*2+2)=24/8=3。所以输出结果为4、3。

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

59.C

60.C解析:题目中已告知函数f()的作用是将字符串从小到大排序,因此主函数中调用完f(p,5);后,二维数组p中的内容为('aabdfg','abbd','abc','cd','dcdbc'}。输出的结果是strlen(p[0]),即p中第1个字符串的长度,所以结果是6。故本题应该选择C。

61.A因为X,Y都是double型数据,所以输入时的格式字符应为%If,所以B与C错误。D选项中scanf(”%lf%%’,x,Y);应为sc“(”%If%If"’,,&)r);。

62.A

63.A解析:选择排序的基本思想是扫描整个线性表,从中选出最小的元素,将它交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空。所以第一趟排序后,将选出最小的元素9放在第一个位置,元素15则放在第二个位置。

64.Cm函数中的X为静态局部变量,占用固定的内存单元,下一次调用时仍可保留上次调用时的值。也就是说,如果多次调用fun函数,x的定义只在第一次调用时有效,从第二次调用开始,x的定义相当于不存在,直接使用

温馨提示

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

最新文档

评论

0/150

提交评论