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

下载本文档

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

文档简介

2021-2022年黑龙江省绥化市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.

3.下列选项中,不属于数据管理员(DBA.职责的是()。

A.数据库维护B.数据库设计C.改善系统性能,提高系统效率D.数据类型转换

4.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

当运行程序时,输入asdafaaz67<回车>,则输出是A.A.asdafaaz67

B.asdafaaz67

C.asd

D.z67

5.以下语句中存在语法错误的是()。A.charss[6][20];s[1]="right?";

B.charss0[20]={"right?"};.

C.char*ss[6];s[1]="right?";

D.char*ss[={"rignt?"};

6.关于排序算法的以下说法,错误的是()

A.归并排序的平均时间复杂度O(nlogn),最坏时间复杂度O(n^2)

B.堆排序平均时间复杂度O(nlogn),最坏时间复杂度O(nlogn)

C.冒泡排序平均时间复杂度O(n^2),最坏时间复杂度O(n^2)

D.快速排序的平均时间复杂度O(nlogn),最坏时间复杂度O(n^2)

7.有以下程序

main()

{intk=5,n=0;

do

{switch(k)

{case1:case3:n+=1;k--;break;

default:n=0;k--;

case2:case4:n+=2;k--;break;

}

printf("%d",n);

}while(k>0&&n<5);

}

程序运行后的输出结果是

A.235B.0235C.02356D.2356

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

A.线性链表中的各元素在存储空间中的位置必须是连续的

B.线性链表中的表头元素一定存储在其他元素的前面

C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面

D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的

9.下列叙述中,不正确的是

A.数据库技术的根本目标是要解决数据共享的问题

B.数据库系统中,数据的物理结构必须与逻辑结构一致

C.数据库设计是指设计一个能满足用户要求,性能良好的数据库

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

10.有以下程序:

程序的运行结果是()。

A.0987654321

B.4321098765

C.5678901234

D.0987651234

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

A.m=4

B.m=2

C.m=6

D.m=5

12.以下程序段中,输出信息不能正确反映变量大小关系的是()。

A.if(x>y)printf(“x>y”);if(x<y)printf(“x<y”);elseprintf(“x=y”);

B.if(x>=y)if(x>y)printf(“x>y”);elseprintf(“x=y”);elseprintf(“x<y”);

C.if(x>y)printf(“x>y”);if(y>x)printf(“x<y”);if(x==y)printf(“x=y”);

D.if(x>y)printf(“x>y”);elseif(y<x)printf(“x<y”);elseprintf(“x=y”);

13.若有如下程序:#definePI3.1415926#defineA(r)2*PI*rmain(){floata,1;a=3.0;1=A(a);printf("r=%.2f,1=%.2f\n",a,1);}则程序运行后的输出结果是()

A.r=3.001=18.85

B.3.00,18.85

C.r=3.0000001=18.8495555

D.r=3.01=18.8495555

14.若运行以下程序时,从键盘输入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

15.已知intt=0;while(t=1){…}则以下叙述正确的是()。

A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式不合法D.以上说法都不对

16.对于循环队列()。

A.无法判断队列是否为空B.无法判断队列是否为满C.队列不可能满D.以上说法都不对

17.

18.

19.有以下程序:#include<stdio.h>#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%d\n”,d);}程序的运行结果是()。

A.0B.-12C.-20D.10

20.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序运行后的输出结果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

二、2.填空题(20题)21.按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和______。

22.下面程序的运行结果是:【】。

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

elseif(n>=2){m=fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

printf("%d\n",fun(a,10));

}

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

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

}

24.在宏定义#definePI3.14159中,用宏名PI代替一个______。

25.数据结构包括数据的逻辑结构、数据的【】以及对数据的操作运算。

26.以下程序中,函数SumColumMin的功能足:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。

#defineM2

#defineN4

voidSumColumMm(inta[M][N],int*sum)

{

inti,j,k,s=0;

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

{

k=0;

for(j=1;j<M;j++)

if(a[k][i]>a[j][i])

k=j;

s+=【】;

}

【】=s;

}

main()

{

intx[M][n])={3;,5,1,4,1,8,3},s;

SumC01umMm(【】);

ptintf("%d\n",s);

}

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

28.一个关系表的行称为()。

29.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。

30.若输入Ihaveatest.#,则以下程序的运行结果为【】。

#include<stdio.h>

main()

{FILE*fp;

charstr[100],filename[10];

inti=0;

if((fp=fopen("test","w"))==NULL)

{printf("cannotopenthefile!\n");

exit(0);

}

getchar();

gets(str);

while(str[i]!='#')

{if(str[i]>='a'&&str[i]<='z')

str[i]=str[i]-32;

fputc(str[i],fp);

i++;

}

fclose(fp);

fp=fopen("test","r");

fgets(str,strlen(str)+1,fp);

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

fclose(fp);

}

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

32.下列程序段中循环体的执行次数是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

33.设有以下程序:

main()

{inta,b,k=4,m=6,*p1=&k,*p2=&m;

a=p1=&m;

b=(*p1)/(*p2)+7;

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

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

}

执行该程序后,a值为【】,b值为【】。

34.下面程序的运行结果是:【】。

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elselreturna[0];

}

main()

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

s=f(&aa[0],3);printf("%d\n",s);

}

35.按照逻辑结构分类,数据结构可分为线性结构和非线性结构,队列属于______。

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

37.数据库系统中实现各种数据管理功能的核心软件称为【】。

38.若有下列定义和语句:

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

则输出结果为______。

39.数据结构分为逻辑结构和存储结构,循环队列属于______结构。

40.以下说明语句中,【】是结构体类型名。

typedefstruct

{intn;

charch[8];

}PER;

三、1.选择题(20题)41.关系代数运算是以______为基础的运算。

A.关系运算B.谓词运算C.集合运算D.代数运算

42.下列程序的输出结果是______。main(){union}inta[2];longk;charc[4];}un,*sp=&un;sp->a[0]=0x39;sp->a[1]=0x38;printf("%1x\n",sp->k);}

A.3938B.3839C.390038D.380039

43.下列程序是用来判断数组中特定元素的位置所在的。#include<conic.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;fun(a,10,&k);printf("%d,%d\n",k,a[k]);}如果输入如下整数:876675896101301401980431451777则输出结果为

A.7,431B.6C.980D.6,980

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

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

45.在一个C语言程序中A.main()函数必须出现在所有函数之前

B.main()函数可以在任何地方出现

C.main()函数必须出现在所有函数之后

D.main()函数必须出现在固定位置

46.视图设计—般有3种设计次序,下列不属于视图设计的是______。

A.自顶向下B.由外向内C.由内向外D.自底向上

47.下面对对象概念描述,不正确的是

A.任何对象都必须有继承性B.对象是属性和方法的封装体C.对象间的通讯靠消息传递D.操作是对象的动态属性

48.根据C语言的语法规则,下列字符串中哪些是关键字或保留字()

A.automateB.readerC.staticD.input

49.用树形结构表示实体之间联系的模型的是

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

50.判断字符型变量chr为小写字母的表达式是______。

A.'a'<=chr<='z'

B.(chr>='a')||(chr<='z')

C.(chr>=A)&&(chr<=z)

D.(chr>='a')&&(chr<='z')

51.下列4个关于C语言的结论中错误的是()。

A.可以用do…while语句实现的循环一定可以用while语句实现

B.可以用for语句实现的循环一定可以用while语句实现

C.可以用while语句实现的循环一定可以用for语句实现

D.do…while语句与while语句的区别仅是关键字“while”出现的位置不同

52.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是()。

A.a,point,*&a

B.&*a,&a,*point

C.*&point,*point,&a

D.&a,&*point,point

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

A.一种数据的逻辑结构可以有多种存储结构

B.数据的存储结构与数据的处理效率无关

C.数据的存储结构与数据的处理效率密切相关

D.数据的存储结构在计算机中所占的空间不一定是连续的

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

A.线性链表的各元素在存储空间中的位置必须是连续的

B.线性链表的头元素一定存储在其他元素的前面

C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面

D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的

55.若执行下列的程序时,从键盘上输入1和2,则输出结果是()。#include<stdio.h>main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;S=S*S,printf("%d\n",s);}

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

56.下列工具中为需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

57.当说明一个结构体变量时系统分配给它的内存是()。

A.各成员所需要内存量的总和

B.结构中第一个成员所需的内存量

C.成员中占内存最大者所需的容量

D.结构中最后一个成员所需要的内存量

58.局域网的网络硬件主要服务器、工作站、网卡和()

A.传播介质B.网络操作系统C.计算机D.网络拓扑结构

59.表达式'8'-'2'的值是()。

A.整数6B.字符6C.表达式不合法D.字符8

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

D.intn=10,a[n];

四、选择题(20题)61.

62.设已有定义:floatx;则以下对指针变量p进行定义且赋初值的语句中正确的是()。A.float*p=&x;B.int*p-(float)x;C.floatp=&x;D.float*p=1024;

63.有以下程序

#include<stdio.h>

structst

{intx,y,z;}data[2]={3,10,2,20,15,7};

main()

{structst*p=data;

printf("%d,",p->y);

printf("%d\n",(++p)->x);

}

程序的运行结果是

A.10,3B.20,3

C.10,20D.20,2

64.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A.10B.8C.6D.4

65.若有说明语句:double*p,a;则通过scanf语句正确给输入项读人数据的程序段是()。

A.*p=&a;scanf("%1f”,p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%",*p);

D.p=&a;scanf("%1f",p);

66.

67.高有定义inta;floatb;执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876<空格>854.0<回车>,a和b的值分别是()。

A.876和543.000000

B.87和6.000000

C.87和543.000000

D.76和543.000000

68.

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

intf(intA)

{returna%2;}

main

{ints[8]={1,3,5,2,4,6},i,d=0;

for(i=0;f(s[8]);i++)d+=s[i];

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

}

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

69.设有如下定义:

若要使P指向data中的n域,正确的赋值语句是()。

A.

B.

C.

D.

70.若a是数值类型,则逻辑表达式(a==1)II(a!=1)的值是()。

A.1B.0C.2D.不知道a的值,不能确定

71.

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

A.线性表是由n个元素组成的一个有限序列

B.线性表是一种线性结构

C.线性表的所有结点有且仅有一个前件和后件

D.线性表可以是空表

73.有以下函数该函数的功能是()。

A.计算s所指字符串占用内存字节的个数

B.比较两个字符串的大小

C.计算s所指字符串的长度

D.将s所指字符串复制到字符串t中

74.

75.有以下程序:

当执行程序时,按下列方式输人数据(从第l列开始,<CR>代表回车,注意,回车也是—个字符)l<CR>

234<CR>

则输出结果是()。

A.34

B.134

C.123

D.1234

76.

77.下列定义数组的语句中,正确的是()。

A.intN=10;intx[N]:

B.#defineNl0;intx[N];

C.intx[0..10];

D.intx[];

78.已知大写字母A的ASCII码是65,小写字母a的ACSII码是97。下列能将变量C中的大写字母转换为对应小写字母的语句是()。A.A.c=(c-'A')%26+'A'

B.c=c+32

C.c=c-'A'+'A'

D.c=('A'+C)%26-'a'

79.

80.以下函数实现按每行8个输出W所指数组中的数据:

在横线处应填人的语句是()。

A.if(i/8==0)printf(”\n”);

B.if(i/8==O)continue;

C.if(i%8==0)prinff(’’\n”);

D.if(i%8==0)continue;

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:判断一个整数m是否是素数,若是返回1,否则返回0。在main()函数中,若proc()返回1,则输出″YES″;若proc()返回0,则输出″NO″!

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

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

试题程序:

六、程序设计题(1题)82.假定输入的字符串中只包含字母和*号。请编写函数proc,它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g****。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}

参考答案

1.D

2.D

3.DD)【解析】数据库管理员(DataBaseAdministrator,DBA)是指对数据库的规划、设计、维护、监视等的人员,其主要工作如下:数据库设计。DBA的主要任务之一是数据库设计,具体地说是进行数据模式的设计;数据库维护。DBA必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与维护;改善系统性能,提高系统效率。DBA必须随时监视数据库的运行状态,不断调整内部结构,使系统保持最佳状态与效率。

4.A在本题中,程序首先定义一个返回类型为整型的函数fun,该函数带有一个指针型的形参变量str,从主函数中对其调用时传递的参数我们可以知道,该指针指向的是一个数组,在该函数体中,首先定义两个整型变量,然后执行循环,循环变量i的初始值为0,循环结束的条件是str[i]!=’\\0’,表示取到的数组元素是字符串结束标识,即字符串中的字符被处理完,在循环体中,首先执行条件判断语句if(str[i]!=’’),如果结果为真,说明取到的当前字符不是空字符,这时执行str[j++]=str[i],即将非空格字符保存到数组中;如果为假,说明取到了空格字符,此时不保存,而接着执行下次循环跳过空格字符。循环结束后执行str[j]=’\\0’;,即保存字符结束标识符,用来标识字符串结束。通过上面的这些分析,我们可以知道函数fun的作用是去掉字符数组中的空格字符。

在主函数中,首先定义了一个大小为81的字符数组,然后调用函数clrscr()清除输入文本窗口,接着输出一条提示语句,执行gets(str);语句,该语句的作用是从键盘输入一个字符串到str数组,碰到换行符结束。然后调用函数fun,其实参为str。通过上面对函数fun作用的分析我们可以知道,调用函数后输入字符串中的空格符都被删除了,最后得到的字符串为asdafaaz67。

程序最后执行输出语句,输出字符数组str中的字符串,因此,程序最终的输出结果是asdafaaz67,本题答案选A。

5.A[解析]数组定义后,不可以对数组整体赋值,s是二维数组,因ss[1]是一维字符数组,即字符串,字符串赋值可以使用strcpy[1],"right);这样的形式,而选项A)中对二维数组中的第“1维(相当于一个一维数组)赋值,是不可以的。选项B)和D)是定义时对数组初始化,这是可以的。选项C)中,将字符串在内存中的首地址赋给指针数组的一个元素,这是可以的。

6.A

7.A解析:因为变量的初始值分别为“k=5,n=0”,所以程序第一次进入循环时,执行default语句,这时k=4,执行'case4:”这个分支,结果是“n=2,k=3”,打印出2;然后程序进行第二次循环,这时“n=2,k=3”,执行'case3:”这个分支,结果是“n=3,k=2”,打印出3;程序进行第三次循环,这时“n=3,k=2”,执行“case2:case4:”这两个分支,结果是“n=5,k=1”,打印出5,这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束,故输出结果为235。

8.D解析:性表的链式存储结构中,各数据结点的存储序号不连续,且各结点在存储空间中的位置关系与逻辑关系也不一致。性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。所以,选项D正确。

9.B解析:B选项错误,原因是,数据库应该具有物理独立性和逻辑独立性,改变其一而不影响另一个。

10.C函数fun(int*s,intn1,intn2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5,6,7,8,9,0};再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。所以正确答案为c)。

11.C[解析]第一次外循环的值为1.第一次内循环的值为3.不满足条件执行m*=j即m的值为3;第二次的值为2.不满足条件执行m*=*j,即m的值为6;第三次的值为1.不满足条件执行m*=j,即m的值仍为6.第二次外循环的值为2.j的值为3.满足条件,执行break语句,跳出循环。

12.A选项A中,若条件“x>y”为真,输出“x>y”;若条件“x<y”为真,输出“x<y”;若条件“x>=y”为真,输出“x=y”。选项A错误,其他选项都正确。故本题答案为A选项。

13.A

14.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的嵌套。

15.B解析:t=1是将t赋值为1,所以循环控制表达式的值为1。判断t是否等于1时,应用t==1,注意“=”与“==”的用法。

16.D

17.D

18.B

19.C宏定义只是做简单的替换,本题中SUB(a+b)*c=(a+b)-(a+b)*c=-20。故本题答案为C选项。

20.D解析:本题中首先定义一个字符数组s,并将字符串'ABCD'存到数组s中,定义了一个字符指针变量p,在接下来for循环中,循环体共执行了三次,第一次p指向s[1],所以此时输出的p所指字符串的值为BCD,第二次循环p指向s[2],此时输出p所指的字符串的值为CD,第三次循环p指向s[3],此时输出的p所指的字符串的值为D。所以,4个选项中选项D符合题意。

21.事务分析设计事务分析设计解析:典型的数据流图有两种,即变换型和事务型。按照这两种类型把设计方法分为两类,即变换分析设计和事务分析设计。

22.1111解析:此题涉及函数的调用和if语句。程序先执行第二个if语句,然后再执行第一个if语句,最后用return返回数值。

23.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。

24.字符串字符串解析:本题考查字符替换格式:#define标识符字符串。

25.存储结构数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。

26.a[k][i]*sumx&sa[k][i]\r\n*sum\r\nx,&s解析:本题定义了一个函数SumColumMin(),该函数有两个参数,第一个参数为数组名,第二个参数为一个指针,用来访问存放数组中每列元素中的最小值的存储空间的变量。所以在主函数中调用SumColunMin()函数,应该将数组x和sam作为实参传给SumColumMin()中的形参,故第20个空格处应该填x,&s。在SumColumMin()函数中用了两重循环,用N记录数组的列,M记录数组的行。内循环共循环了M次,每循环一次将a[k][i]比较a[j][i](当k=0时,a[k][i]第一行第一列的值,然后将该值依次和第一列中的每个值比较,让a[k][i]表示较小的值,那么比较到最后一个元素后a[k][i]就是改列中最小元素的值),让k记录较小值元素的行下标,这样通过M次循环得到每列中的最小元素,然后退出内循环,继续执行该次外循环里的其他语句,即将刚求得第i列的最小值a[k][i]累加到s中,故第一个空格处应该填a[k][i],最后外循环共循环N次,将每列得最小值累加到s中,退出循环,然后让指针sum所指向得存储空间得值为s故第二个空格处应该填*sum。

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

28.元组元组解析:一个关系表中的行称为元组,列称为属性。

29.加工加工解析:数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。其中的每一个加工对应一个处理模块。

30.IHAVEATEST.

31.物理独立性物理独立性

32.33解析:本题考查do…while语句形式:

do循环体

while表达式

首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。第1次循环:b+=2,b=2,a-=2+b,a=11;第2次循环:b=4,a=5;第3次循环:b=6,a=-3,此时再判断循环条件不满足,退出循环。

33.07

34.66解析:经过分析将递归函数写成其数学表达式如下:

f(&a,n)=a[0]+f(&a[1],n-1)n>1

f(&a,n)=a[0]n=1

本题中定义了一个长度为3的数组aa并初始化。接着调用递归函数f,由上面的数学表达式以计算其返回值s=1+2+3=6。

35.线性结构线性结构解析:队列有且只有一个根结点,而且每一个结点最多有一个前件,也最多有一个后件,满足线性结构的条件,所以属于线性结构。

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

37.数据库管理系统数据库管理系统(DBMS)

38.44解析:strcpy(s1,s2)函数的作用是将字符串s2中的内容拷贝到字符串s1中的内容覆盖。strlen()函数是求字符串的长度。本题实际上是要求s2字符串的长度,即是4。

39.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。

40.PERPER解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

41.C解析:关系代数是以集合代数为基础女发展起来的,它是以关系代数作为运算对象的一组高级运算的集合。它的基本操作是并、交、差、笛卡尔积,另外还包括针对数据库环境专门设计的操作,包括对关系进行垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。

42.D解析:结构体变量un的存储情况如图18-3所示,第一列表示地址,第二列为每个字节的值,可用两位的十六进制数表示,当把这4个字节的内容作为long型数据时,高地址字节的值表示高位,低地址字节的值表示低位。

43.D解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算。此外,一开始应知道*k的值为数组中的某一下标值,即。k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。

44.B解析:本题考查的是指针函数。指针函数定义的基本格式:类型说明符(*函数名)()。其中,类型说明符表示返回的指针值指向的数据类型。

45.B解析:本题考核的知识点是main()函数的位置。一个完整的C语言程序有且仅有一个主函数main()函数).程序总从main()函数的第一条语句开始执行,到main()函数的最后一条语句结束,其他函数都是在执行main()函数时,通过函数调用或嵌套调用而得以执行的。C语言规定,main()函数在程序中的位置是任意的,故选项A、选项C和选项D均不正确。所以,B选项为所选。

46.B解析:视图设计—般有3种设计次序,它们分别是自顶向下、自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以单独使用也可混合使用。

47.A解析:有时为了保护某些特有的对象,可以通过定义其为私有属性达到不被继承的目的。

48.C

49.C解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有三种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。因此,本题的正确答案是C。

50.B解析:程序段中定义x值为1,!x值为0,因此循环执行的条件永远成立,该循环是死循环。

51.D解析:本题考查几个循环语句的关系。①do…while语句、while语句、for语句所实现的循环可以相互替代;②do…while语句和while语句的区别是do…while语句至少执行一次。

52.D本题主要考查指针变量对数值的引用。在题目中,首先定义了整型指针变量point和一个整型变量a,变量a的初值为4,然后是指针变量指向a,或者说将变量a所在存储单元的地址值赋给指针变量。

在选项A中,很显然,不全是地址,只有point表示地址,而*&a等价于*(&a),表示取一个数值。

在选项B中,也不都表示地址,其中*point表示数值,其他两个表示地址。

在选项C中,与选项B类似,其中的*point表示数值。

在选项D中,都表示地址,是题目的选择答案。

53.BB。【解析】数据的存储结构分为顺序结构和链式结构,一个数据的逻辑结构可以有多种存储结构。顺序结构中数据元素所占的存储空间是连续的,而链式存储结构中,数据元素所占的存储空间不一定是连续的。数据的存储结构与数据的处理效率密切相关。

54.DD.【解析】在线性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。

55.B解析:本题考查if语句。scanf函数通过键盘读入a、b的值,a=1,b=2。第一个if语句,先判断条件,发现a<b条件成立,则s=b=2,s=s*s=4。

56.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。

57.A解析:本题主要考查结构体的内存使用:对结构体而言,结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立。

58.A

59.A解析:在C语言中,虽然字符都是变为其对应的ASCII码值来参与算术运算的,但字符间的相对位置关系还是不变的,字符8和字符2的ASCII码值相差仍是6。

60.D答案D

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

61.C

62.A指针是用来存放地址的变量,用(类型名*指针变量名)的形式定义。赋值时应将某个变量地址即&x赋给指针变量,因此选择A。

63.C本题考查结构体数组的相关操作。结构体数组的定义方法与结构体变量的定义方法一样,只不过将变量变为数组。数组内的各元素在内存中是连

温馨提示

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

评论

0/150

提交评论