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

下载本文档

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

文档简介

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

一、单选题(20题)1.下列关于字符串的说法中错误的是

A.在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符'\0'作为字符串结束标志

B.'\0'作为标志占用存储空间,计入串的实际长度

C.在表示字符串常量的时候不需要人为在其末尾加入'\0'

D.在C语言中,字符串常量隐含处理成以'\0'结尾

2.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的事()。

A.C语言程序仅可以编译执行B.C语言程序仅可以解释执行C.C语言程序既可以编译执行又可以解释执行D.以上说法都不对

3.在一个无向图中,所有顶点的度数之和等于所有边数的()倍。

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

4.按照“先进先出”组织数据的数据结构是()。

A.队列B.栈C.双向链表D.二叉树

5.若用一个大小为6的数值来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()。

A.1和5B.2和4C.4和2D.5和1

6.设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。

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

7.有以下程序:#include<stdio.h>main(){chara[5][10]={“China”,“beijing”,“very”,“welcome”,“you”};char*p[5];inti;for(i=3;i<5;i++){p[i]=*(a+i);printf(“%s”,p[i]);printf(“%c”,*p[i]);}}程序运行后的输出结果是()。

A.wwyyB.ChinaCbeijingbC.veryvwelcomewD.welcomewyouy

8.

9.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系

10.

11.

12.

13.运行下列程序,若从键盘输入字符“a”,则输出结果是()。

charc;

c=getchar;

if(c>=a&&c<=g)c=c+4:

elseif(c>=9&&c<=2)c=c-21:

elseprintf("inputerror!\n");

putchar(c);

A.fB.tC.eD.d

14.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是A.6.5B.6C.5.5D.6

15.下列程序的输出结果是()。#include<stdio.h>main{inti;for(i=1;i<=10,i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i;}A.49B.36C.25D.64

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

A.便于用户,开发人员进行理解和交流

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

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

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

17.用二进制来编码字符串“abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要()长的二进制字符串

A.12B.14C.18D.24

18.要解决散列引起的冲突问题,最常用的方法是()

A.数字分析法、除留余数法、平方取中法

B.除留余数法、线性探测法、平方取中法

C.线性探测法、二次探测法、链地址法

D.除留余数法、线性探测法、二次探测法

19.同一个关系模型的任意两个元组值()。

A.可以全相同B.不能全相同C.必须全相同D.以上都不对

20.在多媒体计算机系统中,不能用以存储多媒体信息的是A.光缆B.软盘C.硬盘D.光盘

二、2.填空题(20题)21.如果一个工人可管理多个设备,而一个设备只被一个工人管理,则卖体“工人”与实体“设备”之间存在【】关系。

22.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。

#include<stdio.h>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

______;

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

{if(i%4=0)printf("\n");

printf("%3d",b[i]);

}

}

23.以下程序的运行结果是【】。

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

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

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

printf("\n");}

24.设有定义:floatx=123.4567;,则执行以下语句后的输出结果是()。printf("%f\n",(int)(x*100+0.5)/100.0);

25.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。

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

main()

{inti=10,j=0;

do

{j=j+i;i-;}

while(i>2);

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

}

27.函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,当s<t时返回负值。请填空。

my_cmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}return【】;

}

28.以下程序给指针p分配三个double型动态内存单元,请填空。

#include<stdio.h>

#include<stdlib.h>

main()

{double*p;

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

p[0]=1.5;p[1]=2.5;P[2]=3.5;

printf("%f%f%f\n",p[0],p[1],p[2]);

}

29.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【】。

30.一棵二叉树第六层(根结点为第一层)的结点数最多为______个。

31.以下程序的功能是将字符串s中所有小写字母'a'删去,请填空。

#include<stdio.h>

main()

{chars[]="absuWWUDJFKFLaaakdK";

inti,j;

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

if()

s[j++]=s[i];

s[j]='\0';

printf("%s",s);

}

32.以下程序是求矩阵a,b的和,结果存入矩阵c中,并按矩阵形式输出,请填空。

#include<stdio.h>

main()

{inta[3][4]={13,-2,7,5},{1,0,4,-3},{6,8,0,2}};

intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};

inti,j,c[3][4];

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

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

c[i][j]=【】;

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

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

printf("%3d",c[i][j]);

printf("\n");}}

33.若有定义doublea[5];,则a数组元素下标的上限为______。

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

intx=0,y=0;

while(x<15)y++,x+=++y;

pfintf("%d,%d",y,x);

35.下列语句能循环______次。

ints=12;

while(s);

--s;

36.若输入字符串:abcde↓,则以下while循环体将执行【】次。

while((ch=getchar())=='e')printf("*");

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

#include<stdio.h>

main()

{ihtx=0210;printf("%x\n",x);

}

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

#include<stdio.h>

#defineM2

#defineN4

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

{inti,j,k,s=0;

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

k=O;

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

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

s+:【】;

}

【】=s;

}

main()

{intx[M][N]={3,2,5,1,4,1,8,3},s;

SumColumMin(【】);

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

}

39.表示“整数x的平方大于36"时的值为“真”的C语言逻辑表达式是【】。

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

三、1.选择题(20题)41.下面说明不正确的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*P;P=a="china"

42.若有下列定义,则对a数组元素地址的正确引用是()。inta[5],*p=a;

A.p+5B.a+1C.&a+1D.&a[0]

43.两次运行下列的程序,如果从键盘上分别输入3和1,则输出结果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}

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

44.若有定义语句:intx=3,y=2,z=1;,表达式:2*=(x>y?++x:y+)的值是

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

45.下列程序(注意:ch[0]在低字节,ch[1]在高字节)的输出结果是______。#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}

A.13B.14C.208D.209

46.在数据库设计中,将E-R图转换成关系数据模型的过程属于()A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段

47.在数据库管理系统提供的数据语言中,负责数据的模式定义与数据的物理存取构建的是

A.数据定义语言B.数据转换语言C.数据操纵语言D.数据控制语言

48.在嵌套使用if语句时,C语言规定else总是A.和之前与其具有相同缩进位置的if配对

B.和之前与其最近的if配对

C.和之前与其最近的且不带else的if配对

D.和之前的第一个if配对

49.下列程序执行后的输出结果是()。#include<stdio.h>main(){inta[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}

A.3B.6C.9D.随机数

50.若有下面的说明和定义,则sizeof(structaa)的值是______。structaa{intr1;doubler2;floatr3;unionuu{charu1[5];longu2[2]}ua;}mya;

A.30B.29C.24D.22

51.以下不属于对象的基本特点的是()

A.分类性B.多态性C.继承性D.封装性

52.若有定义intb[8],*p=b;则p+6表示()。

A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上6

53.若执行下列程序时从键盘上输入2,则输出结果是()。#include<stdio.h>main(){inta;scanf("%d",&a);if(a++<3)printf("%d\n",a);elseprintf("%d\n",va--);}

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

54.设有输入语句scanf("a=%d,b=%d,c=%d",&a,&b,&C),为使变量a的值为2,b的值为4,c的值为8,则从键盘输入数据的正确形式是()。

A.1,3,2<回车>B.a=1b=3c=2<同车>C.132<回车>D.a=2,b=4,c=8<回车>

55.主程序调用findmax函数求出数组中最大元素在数组中的下标,()中需填写的内容是。#include<stdio.h>findmax(int*s,intt,int*k){intp;for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])();}main(){inta[10],i,k;for(i=0;i<10;i++)scanf("%d",&a[i]);findmax(a,10,&k);printf("%d%d\n",k,a[k]);}

A.k=pB.*k=pC.k=p-sD.*k=p-s

56.下面不属于软件设计原则的是()。

A.抽象B.模块化C.自底向上D.信息隐蔽

57.有下列程序:

fun(intx,inty)

{staticintm=0,i=2;i+=m+1;

m=i+x+y;returnm;

}

main()

{intj=1,m=1,k;

k=fun0,m);printf("%d,"k);

k=fun0,m);printf("%d\n",k);

}

执行后的输出结果是()。

A.5,5B.5,11C.11,11D.11,5

58.下列数据结构中,不是线性结构的是()。

A.线性链表B.带链的队列C.带链的栈D.二叉链表

59.有以下程序:#include<stdio.h>#include<strine.h>structSTU{charname[10];inthum;};voidf(char*name,ihtnum){structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};num=s[0].nnm;strepy(name,s[0],name);}main(){structSTUs[2]={{"YangSan",20041},{"LiSiGao",20042}},*P;p=&s[1];f(p->name,p->hum);printf("%s%d\n",p->name,p->num);}程序运行后的输出结果是()。

A.SunDan20042B.SunDan20044C.LiSiGuo20042D.YangSan20041

60.数据库系统的核心是()

A.数据库B.数据库管理系统C.模拟模型D.软件工程

四、选择题(20题)61.运算符________的优先级最高。

A.[]B.+=C.?:D.++

62.算法的有穷性是指()。

A.算法程序的运行时问是有限的。

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

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

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

63.

64.有以下程序:#include〈stdio.h〉voidfun(int*s){staticintj=0;do{s[j]=s[j]+s[j+1];}while(++j<2);}main(){inti.a[10]={1,2,3,4,5};for(i=1;i<3;i++)fun(a);for(i=0;i<5;i++)pfintf(“%d”,a[i]);printf(“\n”);}程序运行后的输出结果是()。A.12345B.23445C.34756D.35745

65.

66.有以下程序

67.当把以下四个表达式用做if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是()。

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

68.以下选项中关于C语言常量的叙述错误的是()。

A.经常被使用的变量可以定义成常量

B.常量分为整型常量、实型常量、字符常量和字符串常量

C.常量可分为数值型常量和非数值型常量.

D.所谓常量,是指在程序运行过程中,其值不能被改变的量

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

A.软件测试应该由程序开发者来完成

B.程序经调试后一般不需要测试

C.软件维护只包括对程序代码的维护

D.以上三种说法都不对

70.有以下函数:

以下关于aaa函数功能叙述正确的是()。

A.将串s复制到串tB.比较两个串的大小C.求字符串s的长度D.求字符串s所占字节数

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

A.143B.197C.33D.28

72.在单链表中,增加头结点的目的是______。

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

73.有如下嵌套的语句

74.

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

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

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

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

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

76.

77.定义如下变量和数组:inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的输出结果是()

A.159B.147C.357D.369

78.

79.

80.有以下函数定义:

voidfun(intn,doublex){……}

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

A.fun(inty,doublem);B.k=fun(10,12.5);

C.fun(x,n);D.voidfun(n,x);

五、程序改错题(1题)81.下列给定程序中,proc()函数的功能是:根据形参n。计算下列公式的值:t=1-1/2+1/3-1/4+…+(-1)(n+1)/n例如,若输入6,则应输出0.616667。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.规定输入的字符串中只包含字母和。号。请编写函数fun,其功能是:将字符串尾部的。号全部删除,前面和中间的*号不动。

参考答案

1.B解析:'\\0'作为标志占用存储空间,但是不计入串的实际长度。当给一个字符型指针赋值时,赋给这个指针的是这个字符串的地址。

2.A解释执行是计算机语言的一种执行方式。由解释器现场解释执行,不生成目标程序。如BASIC便是解释执行。一般解释执行效率较低,低于编译执行。而C程序是经过编译生成目标文件然后执行的,所以C程序是编译执行。

3.C

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

【知识拓展】“队列”和“栈”都是一种特殊的线性表。之所以称之为“队列”,其形式如“排队”。要讲究“先来后到”,先进先出,后进后出。

5.B

6.A:在一个无向图G中,若从顶点Vi到顶点Vj有路径相连,则称Vi和Vj是连通的。连通图是指任意两个结点之间都有一个路径相连。6个节点的无向图,至少要5个边才能确保是任意两个节点之间都有路径相连。下图是一种可能的连接方式:故本题选A。

7.Dmain函数定义一个二维字符数组a,它包含5个字符串,每个字符串存放在一个长度为10的一维数组中。指针数组P包含5个字符指针元素。for循环中,每次将*(a+i)赋给P[i],再输出P[i]和*P[i]。由于*(a+i)等价于a[i],因此每次都是将下标为i的字符串首地址赋给p[i],再输出该字符串和该字符串的首字符。i=3时,输出字符串“welcome”和首字符“w”;i=4时,输出字符串“you”和首字符“y”。综上,输出结果为welcomewyouy。故本题答案为D选项。

8.A

9.C(10)C)解析:DB即数据库(Database),是统一管理的相关数据的集合;DBMS即数据库管理系统(DatabaseManagementSystem),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法;DBS即数据库系统(DatabaseSystem)由如下5部分组成,数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。

10.B

11.D

12.B

13.C

\ngetchar函数是读取键盘的输入函数,本题中输入字母“a”,则c=a,判断if条件,发现a>=a&&a<=g成立,则执行下列语句:C=C+4,C得到的字符的ASCII码值,退出if语句,通过putchar函数输出字符。

14.D解析:本题考查的知识点是运算符的优先级。在这个表达式中,优先级最高的是(int)a,也就是对5.5取整,结果是5,其次是b/b,即2.5/2.5,结果是1.000000,最后相加结果为6.000000(表达式的最终结果为实型),所以4个选项中D正确。

15.C本题考查for循环及if语句。当执行到第一个满足(i*i>一20)&&(i*i<=100)这个条件的i出现时,break跳出循环,执行下列的printf语句。

16.D解析:软件需求规格说明书SRS,SoftwareRequirementSpecification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用,①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。

17.B

18.C

19.B关系具有以下7个性质。①元组个数有限性:二维表中元组的个数是有限的。②元组的唯一性:二维表中任意两个元组不能完全相同。③元组的次序无关性:二维表中元组的次序,即行的次序可以任意交换。④元组分量的原子性:二维表中元组的分量是不可分割的基本数据项。⑤属性名唯一性:二维表中不同的属性要有不同的属性名。⑥属性的次序无关性.二维表中属性的次序可以任意交换。⑦分量值域的同一性:二维表属性的分量具有与该属性相同的值域,或者说列是同质的。满足以上7个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型。本题答案为B选项。

20.A解析:光缆是传输多媒体信息的通道,不能用以存储多媒体信息。

21.一对多一对多解析:实体之间的联系有3类:一对一,一对多,多对多。设有两个实体集E1和E2,如果E2中的每一个实体与E1中的任意个实体(包括零个)有联系,而E1中的每一个实体最多与E2中的一个实体有联系,则称这样的联系为“从E2到E1的一对多的联系”,通常表示为“l:n的联系”。由此可见,工人和设备之间是一对多关系。

22.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:将数组a中元素a[i]与a[j+1]值相加后的值赋予数组b中元素b[i],即可实现将一个数组的前项和后项之和存入另一数组。

23.0240480,2,4\r\n0,4,8解析:本题主要考查for循环语句的使用以及静态局部变量的特点。

24.460000

25.完整性控制完整性控制

26.5252解析:do...while语句的形式为:

do

{

语句;

}while(条件表达式)

当条件表达式为非零时,继续执行循环体,直到条件表达式为零时退出循环。

27.*s-*t*s-*t解析:两字符串大小比较必须从它们的首字符开始,在对应字符相等情况下循环,直至不相等结束。相等时,若字符串已到了字符串的结束标记符,则两字符串相同,函数返回0值;如还有后继字符,则准备比较下一对字符。对应字符不相同,循环结束。循环结束时,就以两个当前字符的差返回。所以在空框处应填入*s-*t,保证在e>t时返回正值,当s<t时返回负值。

28.3*sizeof(double)或243*sizeof(double)或24解析:观察程序可知,本题要求用malloc函数分配三个double型的动态内存单元。

29.消息消息解析:在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。

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

31.s[i]!='a's[i]!='a'解析:本题是要将字符串s中所有小写字母'a'删去,所以if语句的判断条件应该是字符串s中的字符和字符'a'不相同的时候,就把它仍然存在原来的数组中,若是和字符'a'相同,就不再保存它。

32.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:此题是双重for循环结构应用在了二维数组中。外层for循环用来控制二维数组的行,内层for循环控制二维数组的列。

33.44解析:一维数组元素的定义形式为:数组名[N],则该数组中元素的下限是0,上限是N-1。

34.8208,20解析:本题考查while循环和++运算符的运用。x=0符合条件x<15,则执行y++,x+=++y后,y=1,x=0+2=2后y=2,符合条件继续循环,y=3,x=x+4=6后y=4,再循环y=5,x=x+6=6+6=12后,y=6,继续循环y=7,x=x+8=12+8=20,此时y=8。

35.无限无限解析:分析程序“while(s)”语句后面有一个“;”不能执行后面的语句,只是执行空语句,所以s=12保持不变,因此,没有条件限制的能循环无限次(即死循环)。

36.00解析:函数getchar()是从键盘得到用户输入的一个字符。用户输入的第1个字符是a,不管后面输入的是什么ch的值都是'a',因此条件(ch=getchar())=='e'为假,这个循环不会被执行。

37.8888解析:程序中的0210表示八进制数,%x是以十六进制形式输出。本题可先将0210转换为十进制数,再将其转换为十六进制数。

38.a[k][i]*sumx&sa[k][i]\r\n*sum\r\nx,&s解析:程序段for(j=1;j<M;j++)if(a[k][i]>a[j][i]))k=j;是找出第i列的最小值,第一处应该是每列最小值累加,所以填a[k][i];和值要通过形参传回主函数,第二处应该填*sum;根据形参可以确定第三处应该填x,&s。

39.x<-6||x>6

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

41.D解析:C语言中操作一个字符串常量的方法有:①将字符串常量存放在一个字符数组之中;②用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针。

本题D)项中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。

42.D解析:本题考查如何引用数组元素的地址。

选项A)中,p+5引用的是a[5]的地址,而数组a只有5个元素,即a[0]、a[1],a[2]、a[3]、a[4],所以引用错误;选项B)中,*a+1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误;选项D)中,&a[0]引用的是数组的首地址。

43.A解析:本题考查ifelse语句。首先scanf函数通过键盘读入x的值。当x=3时,第一个if语句,先判断条件,取x的值3和2比较,然后将x的值加1,发现条件成立,执行下列的printf语句,输出x的值4。当x=1时,第一个if语句,先判断条件,取x的值1和2比较,然后将x的值加1(x的值变为2),发现条件不成立,执行下列的else语句,先输出x的值2,再将x的值减1。

44.A解析:本题考查了条件表达式和自加运算。首先判断x>y这个关系表达式的值,通过计算知其值为真,所以关系表达式的值为++x(为4),最后执行z*=4,z的值为4。

45.A

46.B数据库应用系统的逻辑设计包括数据库逻辑结构设计、数据库事务概要设计和应用程序概要设计三方面。数据库逻辑结构设计的主要步骤为:将E—R图转换为初始关系模式,对初始关系模式进行优化,检查关系表对数据库事务的支持性,确定关系模式完整性约束,设计基于关系模式的用户视图。

47.A解析:在数据库管理系统提供的数据语言中,数据定义语言负责数据的模式定义与数据的物理存取构建。

48.C解析:C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与书写格式无关。所以选项C)为正确答案。

49.B解析:本题中,a[1][2]是二维数组中的第6个元素,对应for循环中i的值为5,p[5]=5+1。

50.D解析:结构伸变量所占内存长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元;共用体变量所占的内存长度等于最长的成员的长度。结构体变量aa中,成员r1占2个字节,r2占8个字节,r3占4个字节,共用体ua占8个字节,所以共占用2+8+4+8=22个字节。

51.C解析:对象的基本特点包括;标识惟一性、分类性、多态性、封装性和独立性等。继承性不属于对象的基本特点。

52.B解析:指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中将p+6指的是将指针向后移动了6个存储单元,指向b[6],存放的是b[6]的地址。

53.B解析:本题考查ifelse语句。程序中首先使用函数scanf()通过键盘读入a的值,并通过第1个if语句,先判断条件,取a的值2和3比较,然后将a的值加1,发现条件成立,执行下列的printf语句,输出a的值3。

54.D解析:本题考查scanf函数的基本格式。若在scanf函数的格式控制字符串中插入了其他的字符,则在输入时要求按一一对应的位置原样输入这些字符,我们必须把“a=”、“b=”、“c=”也输入。

55.B解析:数组元素可以通过数组首地址和下标的方式来引用,数组元素的下标是从0开始的,也可以将数组首地址赋给一个指针变量,通过指针和下标的方式来引用数组元素。注意:通过数组的首地址引用数组元素。

56.C解析:软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念。①抽象是一种思维工具,就是把事物本质的共同特性抽出来而不考虑其他细节。②模块是指可以单独命名且可编址的元素。如高级语言中的过程、函数、子程序等。③信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。④模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。因此,本题的正确答案是C。

57.B解析:子函数fun(intx,inty),将变量m和i声明为局部静态变量,因此第1次调用主函数后,局部静态变量m和i的值为5和3,第1次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m+1”时,i的值为9,因此,最终m的值为11。

58.D解析:线性链表是线性表的链式存储结构,带链的栈与带链的队列分别是栈与队列的链式存储结构。线性表属于线性结构,栈与队列是特殊的线性表,因此也属于线性结构。二叉链表是二叉树的链式存储结构,二叉树属于非线性结构。

59.A解析:main函数中将定义的结构体类型指针变量p指向结构体类型数组s[1],通过调用函数f改变了指针变量p所指向的结构体中成员变量name的值,但并未改变其num的值。这是因为函数f中的形参name是一个字符型指针变量,它指向了main函数中指针变量p所指向的结构体的成员变量name,所以对函数f中的形参*name的改变也就对main函数中p->name的改变,而函数f中对形参num的改变不会影响main函数中p-?num的值,因为此时传递给num的是一个值,而不是地址。

60.B解析:数据库管理系统(DataBaseManagementSystem,简称DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。

61.A

62.A算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。

63.D

64.D本题考查静态变量,静态变量有储存已经操作过的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案选择D。

65.C

66.A第一次循环返回2,第二次循环返回4,所以输出4,答案选择A)。

67.D本题主要考查if语句的条件表达式。在本题的四个选项中给出了四个不同的条件表达式,题目要求找出其中一个意思与其他三个不同的表达式。

选项A的表达式k%2的功能是对变量k进行取余运算,如果运算结果为假,表示变量k能被2整除,如果运算结果为真,表示k不能被2整除。

选项B的表达式k%2==1的功能是对变量k进行取余运算,并判断结果等于1,如果运算结果为假,表示k%2的运算结果为0,即k能被2整除;如果运算结果为真,表示

温馨提示

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

评论

0/150

提交评论