2021-2022年河南省信阳市全国计算机等级考试C语言程序设计真题(含答案)_第1页
2021-2022年河南省信阳市全国计算机等级考试C语言程序设计真题(含答案)_第2页
2021-2022年河南省信阳市全国计算机等级考试C语言程序设计真题(含答案)_第3页
2021-2022年河南省信阳市全国计算机等级考试C语言程序设计真题(含答案)_第4页
2021-2022年河南省信阳市全国计算机等级考试C语言程序设计真题(含答案)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年河南省信阳市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.语句int(*ptr)的含义是()。A.A.ptr是一个返回值为int的函数

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

2.如有inta=11;则表达式(a/1)的值是()。

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

3.有以下程序:#include<stdio.h>main(){FILE*f;f=fopen(“fllea.txt”,“w”);fprintf(f,“abc”);fclose(f);}若文本文件filea.txt中原有内容为hello,则运行以上程序后,文件filea.txt中的内容为()。

A.abcloB.abcC.helloabcD.abchello

4.若有定义“inta=5,b=7;”,则表达式a%-(b%2)运算后,a的值为()。

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

5.下列程序的运行结果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2

6.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf(“%3.0f\n”,a);}doublef(doublex)}returnx*x+1;}程序的运行结果是()。

A.500B.401C.503D.1404

7.在位运算中,操作数左移一位,其结果相当于A.A.操作数乘以2

B.操作数除以2

C.操作数除以4

D.操作数乘以4

8.有以下函数intfun(char*X,char*y){intn=0;while((*x===*y)*x!=\O){x++;y++;n++;}returnn;}函数的功能是()。A.查找X和y所指字符串中是否有\o

B.统计x和Y所指字符串中最前面连续相同的字符个数

C.将Y所指字符串赋给X所指定存储空间

D.统计X和Y所指字符串中相同的字符个数

9.在有序双向链表中定位删除一个元素的平均时间复杂度为()

A.O(1)B.O(N)C.O(logN)D.O(N*logN)

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

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

11.以下程序的输出结果是()。#defineM(x,y,z)x*y+zmain(){inta=l,b=2,c=3;printf("%d\n",m(a+b.b+c,c+a));}A.19B.17C.15D.12

12.设x、y、t均为血型变量,则执行语句x=y=3;t=++x||++y;后,y的值为______。

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

13.设x=011050,则x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

14.以下程序段中的变量已正确定义:for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf(“*”);程序段的运行结果是()。

A.**B.****C.*D.********

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

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

16.线性链表中结点的结构为(data,next)。已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列()操作。

A.s->next=p;p->next=s;

B.s->next=p->next;p->next=s;

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

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

17.

18.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。

A.a==lB.++iC.a=a++=5D.a=int(i)

19.若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈(i=1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是()。

A.|top[2]-top[1]|=0

B.top[1]+1=top[2]

C.top[1]+top[2]=m

D.top[1]=top[2]

20.设a=l,b=2,c=3,d=4,则表达式:“a<b?a:b<b?a:c<d?a:d”的结果为()。A.4B.3C.2D.1

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

22.已知bead指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有连接点数据域的和值作为函数值返回。请在横线处填入正确内容。

{intdata;structlink*next;}

main()

{structlink*head;

sam(______);

{stmctlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

23.在循环中,continue语句与break语句的区别是:______语句只是结束本次循环,然后进行循环的条件判定。

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

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

}

25.【】是数据库设计的核心。

26.在面向对象方法中,属性与操作相似的一组对象称为【】。

27.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是【】。

intb,c;floata;

scanf("%f,%d,c=%d",&a,&b,&c)

28.函数调用语句:“fgets(buf,n,fp);”从中指向的文件中读入n个字符放到buf字符数组中,函数返回值为______。

29.若有以下程序:

main()

{chara;

a='H'-'A'+'0';

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

}

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

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

main()

{floatx[1000],sum=0,ave,a;

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(【】)printf("%t\n",x[i]);

}

31.若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句()。

32.函数pi的功能是根据以下公式近似求得的:

pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)

请在下面的函数中填空,完成求pi的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0,longi;

for(i=1;i<=n;i++)s=s+【】。

return(sqrt(6*s));

}

33.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。

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

a=15;

b=0;

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

35.在关系运算中,查找满足一定条件的元组的运算称之为【】。

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

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

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

37.解题方案的准确而完整的描述称为______。

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

longfun5(intn)

{longs;

if((n==1)||(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);}

main()

{longx;

x=fun5(4);

printf("%ld\n",x);}

39.数据库系统中实现各种数据管理功能的核心软件是______。

40.下列程序用来将从键盘上输入的2个字符串进行比较,然后输出2个字符串中第1个不相同字符的ASCII码之差。例如,输入的2个字符串分别为abcdef和abceef,则输出为-1。

#include

main()

{charstr[100],str2[100],c;

inti,s;

printf("\ninputstring1:\n");gest(str1);

printf("\ninputstring2:\n");gest(str2);

i=0;

while((strl[i]==str2[i]&&(strl[i]!=【】))

i++;

s=【】;

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

三、1.选择题(20题)41.已知有结构体:

structsk

{ihta;

floatb;

)data,*p;

若有p=&data,则对data的成员a的正确引用是()。

A.(*p).data.aB.(*p).a;C.p->data.aD.p.data.a

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

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

43.若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是

A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

44.有以下程序段

charch;intk;

ch=′a′;k=12;

printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);

已知字符a的ASCII码值为97,则执行上述程序段后输出结果是

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

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

C.a,97,12k=12

D.a,97,k=12

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

A.数据的逻辑结构与存储结构必定是一一对应的

B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构

C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构

D.以上三种说法都不对

46.设x,y均是int类型变量,则以下不正确的函数调用为______。

A.getchar();

B.putchar('\108');

C.scanf("%d%*2d%d",&x,&y);

D.putchar('\'');

47.下列程序的输出结果是#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

48.若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为()。

A.334HB.30DHC.352HD.31AH

49.C语言结构体类型变量在程序运行期间

A.TC环境在内存中仅仅开辟一个存放结构体变量地址的单元

B.所有的成员一直驻留在内存中

C.只有最开始的成员驻留在内存中

D.部分成员驻留在内存中

50.有以下程序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));}程序运行后的输出结果是

A.编译出错B.9C.21D.9

51.下列程序的运行结果是()。#include<stdio.h>main(){intx=5,a=1,b=2,c=5,d=O;if(a<b)if(b!=3)if(!c)x=1;elseif(d)x=1;elsex=-1;printf("%d",x);}

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

52.运行下列程序,若从键盘输入字母“a”,则输出结果是()。charc;c=getchar();if(c>='a'&&c<='g')c=c+4;elseif(c>='g'&&c<='z')c=c-21;elseprintf("inputerror!\n");putchar(c);

A.fB.tC.eD.d

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

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

54.设有以下定义uniondata{intd1;floatd2;}demo;则下面叙述中错误的是()。

A.变量demo与成员d2所占的内存字节数相同

B.变量demo中各成员的地址相同

C.变量demo和各成员的地址相同

D.若给demo.d1赋99后,demo.d2中的值是99.0

55.下列数据结构中具有记忆功能的是()。

A.队列B.循环队列C.栈D.顺序表

56.下述关于数据库系统的叙述中,正确的是()。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型一致

D.数据库系统比文件系统能管理更多的数据

57.能正确表示“当x的取值在[1,10]和[100,110]范围内为真,否则为假”的表达式是()。

A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)

B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)

C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)

D.(x>=1)‖x<=10)&&(x>=100)‖(x<=110)

58.有以下程序:#include<stdio.h>main(){FLLE*fp;inti=20,j=30,k,n;fp=fopen("d1.dat""w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("d1.dar","r");fp=fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);)程序运行后的输出结果是()。

A.2030B.2050C.3050D.3020

59.调用gets和puts函数时,必须包含的头文件是

A.stdio.hB.stdlib.hC.defineD.以上都不对

60.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则()。

A.称为函数的直接递归调用B.称为函数的间接递归调用C.称为函数的循环调用D.C语言中不允许这样的递归调用

四、选择题(20题)61.若有定义语句:“charS[3][10],(*k)[3],*p;”,则以下赋值语句正确的是()。

A.p=S;B.p=k;C.p=s[0];D.k=s;

62.若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是

63.

设有以下定义和语句:

charstr[2O]="Program",*P:

p=str:

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

A.*p与stf[0]的值相等

B.str与P的类型完全相同

C.str数组长度和P所指向的字符串长度相等

D.数组str中存放的内容和指针变量P中存放的内容相同

64.

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

A.一个逻辑数据结构只能有一种存储结构

B.逻辑结构属于线性结构,存储结构属于非线性结构

C.一个逻辑数据结构可以有多种存储结构,且各种存诸结构不影响数据处理的效率

D.一个逻辑数据结构可以有多种存储结构,且各种存诸结构影响数据处理的效率

66.

67.有以下程序:

若运行时输入:123<回车>,则输出结果是()。

A.编译错误2000B.102000C.122030D.10

68.

69.有以下程序

main()

{

chara[]={′a′,′b′,′c′,′d′,′\0′,′f′,′g′,′h′,′\0′};inti,j;

i=sizeof(a);

j=strlen(a);

printf("%d,%d\b",i,j);

}

程序运行后的输出结果是

A.9,4B.8,4C.1,8D.9,8

70.

71.若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是

A.EOFB.-1C.1D.NULL

72.

73.下列程序段的输出结果是

inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("%2d,%2.1f,%2.1f",a,b,c);

A.无输出B.12,123.5,12345.5

C.1234,123.5,12345.5D.1234,123.4,12345.5

74.有以下程序

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

A.a=10b=50c=10

B.a=10b=50c=30

C.a=10b=30c=lO

D.a=50b=30c=50

76.

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

A.程序执行的效率与数据的存储结构密切相关

B.程序执行的效率只取决于程序的控制结构

C.程序执行的效率只取决于所处理的数据量

D.以上三种说法都不对

78.以下程序段中的变量已正确定义。

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

for(k=1;k<;3;k++);prinff(”*”);该程序段的输出结果是()。

A.*B.****C.**D.********

79.若函数中有定义语句:inta;,则()。

A.系统将自动给a赋初值为0B.系统将自动给a赋初值一lC.这时a中的值无意义D.这时a中无任何值

80.设变量均已正确定义,若要通过;语句为变萤a1和a2赋数值l0和20,为变量cl和c2赋字符x和Yd以下所示的输入形式中正确的是(注:口代表空格字符)

五、程序改错题(1题)81.下列给定的程序中,函数proc的功能是:用选择法对数组中的m个元素按从小到大的顺序进行排序。

例如,排序前的数据为:1132-5214

则排序后的数据为:-52111432

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

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

试题程序:

#include<stdio.h>

#defineM20

voidproc(inta[],intn)

{

inti,j,t,P;

//****found****

for(j=0;j<n-1;j++);

{

p=j;

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

if(a[[i]<a[p])

p=i;

t=a[p];

a[p]=aEj3;

//****found****

a[p]=t;

}

}

voidmain

{

intarr[M]={11,32,-5,2,14},i,m=5;

printf("排序前的数据:");

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

printf("%d",arr[i]);

printf("\n");

proc(arr,m);

printf("排序后的顺序:");

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

printf("%d",arr[i]);

printf("\n");

}

六、程序设计题(1题)82.编写一个函数,输入n个字符串,串与串之间以Enter键分隔,找出最短字符串中第一个字符串,传回该串地址(用一个新串“*”作为结束输入的标志)。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.C本题考查的是指向函数的指针。函数指针定义的基本格式为:类型标识符(*指针变量名)()。“类型标识符”为函数返回值的类型。

2.D

3.B执行“fprintf(f,“abc”);”后,f文件原有内容被“abc”覆盖。故本题答案为B选项。

4.A本题考查“%”运算符的使用。运算符“%”是整数除法的余数。本题中表达式a%=(b%2)等价于a=a%(b%2)=5%(7%2)=5%1=0。

5.D本题考查"drhile循环。第一次循环,y=y-1,y=2,循环条件成立,x=1,X++后值为1,x自加变成2,进入循环,a=a+1=1,判断if语句条件是否成立,y<x不成立,接着执行下一次循环。第二次循环,x=2,y-1=1,循环条件成立,进入循环,a=a+1=2,判断if语句的控制条件是否成立,y<X成立,执行break语句,退出循环。结果为D。

6.Cfor循环中,函数f的返回值累加到变量a中。第1次循环,a=0,i=0,返回值a=0*0+1=1;第2次循环,a=1,i=10,返回值a=10*10+1+1=102;第3次循环,a=102,i=20,返回值a=20*20+1+102=503;第4次循环a=503,i=30,不符合1<30,跳出循环,最后结果输出a=503。故本题答案为C选项。

7.A左移运算符“<<”是双目运算符,其功能是把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。例如,a<<4是把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。

8.B由题中while(*x==*y*x!=\\n)可知此函数是统计x和y所指向的字符串中最前面的联系相同的字符的个数。

9.B

10.A

11.DM(a+b,b+C,c+a)=a+b*b+c+c+a=1+2*2+3+3+1=12,注意x*y+z而不是(x)*(y)+z。

12.C解析:C语言中在做逻辑或运算时,自左向右判断各个参加或运算的表达式,一旦运算到某式的值为非零时,表明整个表达式一定为真,余下的语句则不再进行运算。本题中,++x的值为真,则++y并没有进行运算,所以y值不变。

13.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。

14.C因为内层循环“for(k=1;k<3;k++)”后面直接跟了空语句“;”,所以在循环内部什么操作也不做,跳出外层循环后执行printf语句,输出一个“*”。故本题答案为C选项。

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

16.B

17.B

18.B选项A为表达式,因此不正确,选项C中a++本身就是表达式,无需再赋值,选项D中,在强制类型转换时,类型名应用括号括起来,故选择8选项。

19.B

20.D在三目运算符中,优先级相同,按从右到左的结合性计算,a<b?a:(c<d?a:d)c<d成立所以取值a,同理可得,选择D选项

21.物理独立性物理独立性

22.

23.continuecontinue解析:continue语句只是结束本次循环,然后进行循环的条件判定。break语句是终止整个循环的执行,不再进行条件判定。

24.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逆序输出。

25.数据模型数据模型

26.类类解析:在面向对象方法中,类描述的是具有相似性质的一组对象。所以,属性与操作相似的一组对象称为类。

27.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。所以此题中输入数据的形式是5.04,c=3。

28.buf的首地址buf的首地址解析:考查fsets()函数的功能,f8ets()函数用来从文件中读入字符串。调用格式为:f8ets(buf,n,fp)。此处,fp是文件指针,buf是存放字符串的起始地址,n是一个int型变量。调用函数fsets()时,最多能读入n-1个字符,系统自动在最后加字符串结束标志,并以buf作为函数值返回。

29.77解析:本题考查英文字母ASCII码值的概念。字符参与运算的值是其对应的ASCII码,字符H的ASCII码为72,A的ASCII码为65,0的ASCII码为48,所以a=72-65+48=55,ASCII码值为55的字符是7。

30.=aasum/nx[i]<ave=a\r\na\r\nsum/n\r\nx[i]<ave解析:sum是用来存放学生成绩总和的,a是输入的成绩,ave存放平均成绩,n既是循环变量,又表示学生人数,x[n]保存第n个学生的成绩。sum用来累加每个同学的成绩,因此有sum+=a;把新输入的学生成绩保存在数组中,因此有x[n]=a;ave是所有同学的平均成绩,因此有ave=sum/n;逐个把学生成绩和平均成绩比较,因此有if(x[i]<ave)。

31.printf(“a=%db=%d”aB);printf(“a=%d,b=%d”,a,B);解析:printf函数的一般格式为:“printf(格式控制,输出表列)”。

32.0/i/i或1.0/(i*i)0/i/i或1.0/(i*i)解析:由题面中提供的计算pi的公式可知;在第i项其值为1/(i*i),考虑到运算结果为浮点数,故必须要将1转化为浮点数或采用1.0/(i*i)的形式。故本题应填1.0/(i*i)或其等效形式。

33.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。

34.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,此时再判断循环条件不满足,退出循环。

35.选择选择解析:在关系数据库中,选择运算也是一个元运算,关系R通过选择运算(并由该运算给出所选择的逻辑条件)后仍为一个关系。这个关系是由R中的那些满足逻辑条件的元组所组成。

36.14

37.算法算法解析:算法是指对解题方案的准确而完整的描述。

38.9

39.数据库管理系统数据库管理系统解析:数据库管理系统是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。

40.\0'strl[i]-str2[i]

41.B解析:本题主要考查结构指针:p=&data,访问结构体的成员,可以通过结构变量访问,即data.a,也可以用等价的指针形式:(*p).a和p->a来访问结构体变量中的成员。

42.B解析:本题函数的功能是计算并输出一个二维数组对角线及对角线下面的元素之和。

43.D解析:C语言中数组下标是从0开始的,所以二维数组a[2][3]的第一维下标取值为0、1;第二维的下标取值为0、1、2,因而选项A)、B)、C)都是错误的,选项D)表示数组元素a[0][0]。

44.D解析:考查printf函数的相关知识。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开,因此选项A)和C)错误。在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b,所以正确答案为B)。输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。所以选项D)为正确答案。

45.D解析:一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,因此,数据的逻辑结构与存储结构不一定是一一对应的。选项A中的说法是错误的。虽然计算机的存储空间是向量式的存储结构,但由于一种数据的逻辑结构根据需要可以表示成多种存储结构,例如,线性链表是线性表的链式存储结构。一般来说,性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。因此,数据的存储结构不一定是线性结构。选项B中的说法也是错误的。虽然程序设计语言中的数组一般是顺序存储结构,但是,利用数组也能处理非线性结构。例如,满二叉树与完全二叉树是非线性结构,但对于满二叉树与完全二叉树来说,根据完全二叉树的性质6,可以按层序进行顺序存储,即利用程序设计语言中的数组来存储,这样,不仅节省了存储空间,又能方便地确定每一个结点的父结点与左右子结点的位置。对于一般的二叉树来说,也可以将二叉树中每一个结点的左指针、右指针以及数据域分别用三个数组中的对应元素来存储,即实际上也是利用了程序设计语言中的数组来处理二叉树这样的非线性结构。选项C中的说法也是错误的。综上所述,选项A、B与C中的说法都是错误的。

46.B解析:八进制中的基本数为0~7,不可能出现8。

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

48.C解析:解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是十进制的数“1”,而是指'1'个存储单元长度,而1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址:300H+(13*上标)4)H=352H。

49.B解析:结构体类型的变量在程序运行期间要作为一个整体占用连续的内存单元。

50.B解析:本题考查的知识点是函数的参数类型、函数值类型及函数调用.fun()函数是将传进来的两个整型参数相加,把和作为函数值返回,.注意返回值为float型.在主函数调用了两次fun()函数,第一次调用时把表达式“a+c”和变量“b”的值求和,得到15转换为15.0作为函数的返回值。第二次调用把第一次调用的返回值通过强制类型转换成int型15,再和表达式“a-c”相加,得到结果9,转换成float型作为函数值返回。由于输出格式符为“%3.0f”输出时没有小数位,故输出为9.所以4个选项中B正确。

51.A解析:本题考查ifelse语句。第1个if语句,先判断条件,发现a<b条件成立,执行下列的语句;第2个if语句,先判断条件,发现b!=3条件成立,执行下列的语句:第3个if语句,先判断条件,c=5,则!c条件不成立,执行与其配对的else语句;第4个if语句,先判断条件,d=0,条件不成立,则x=-1,结束循环。

52.C解析:首先,getchar函数通过键盘读入字符'a',即c='a',(其实c得到的是字符a的ASCII码值),然后判断if语句的控制条件,发现'a'>='a'&&'a'<='g'成立,则执行下一步列的语句,c=c+4,c得到的是字符e的ASCII码值,退出if语句,通过putchar函数输出字符e。

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

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

54.D解析:联合体的所有成员共占同一段内存,所以联合体变量的长度与它的最长成员所占长度…致,本题中float所占内存字节数为4,而\u3000int类型在TurboC\u30002.0中是占2字节、在VisualC++6.0中占4字节,所以int类型所占内存字节数不会超过float,那demo就与成员d2所占字节数是相同的,选项A的说法正确。联合体的所有成员的首地址都是相同的,和联合体变量的地址一致。故选项B和C都是正确的。由于int类型数据和float类型数据在内存中的存放格式是不一样的,所以给d1赋99后,d2中不会得到99.0这个值。故选项D不正确,答案应该选择D。

55.C解析:由栈的定义可知,栈是先进后出(或后进先出)的线性表,因此,栈具有记忆功能。

56.A解析:数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项A正确,选项B错误。在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项C错误。数据库系统比文件系统能管理更多的数据,并非是数据库系统的特点,选项D错误。本题正确答案是A。

57.C解析:本题考查逻辑与(&&)和逻辑或(‖)运算符的使用。x>=1和x<=10是逻辑与的关系,因此C语言表达式应写成“(x>=1)&&(x<=10)”,x>=100和x<=110也是逻辑与的关系,因此C语言表达式应写成“(x>=100)&&(x<=110)”;[1,10]和[100,110]是逻辑或的关系,因此只要将前两个表达式用逻辑或运算符连接起来即可,所以最后的表达式:(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)。

58.A解析:本题首先以创建方式打开文件d1.dat,两次调用fpnntf()把i和j的值写到文件d1.dat中,文件d1.dat的内容为20<回车>30<回车>后把该文件关闭再以读的方式打开,文件位置指针指向文件头,再通过fscanf()函数从中读取两个整数到k和n中,由于格式符无间隔,因此输入数据可以用回车隔开,故输入的k值为20,n值为30。所以4个选项中A正确。

59.A解析:gets函数和puts函数是库函数,必须包含的头文件是stdio.h。

60.B解析:在C语言中所谓函数的递归是指在调用一个函数的过程中,又出现了直接或间接调用该函数本身,直接调用该函数本身的称为函数递归,而间接调用该函数称为函数的间接递归调用。显然题目中所说得函数调用为函数的间接递归调用。所以,4个选项中选项B符合题意。

61.C答案C的意思是*P指向数组的第一个值。

62.A在函数调用前,需要定义或声明,A)选项错误。

63.A

\n本题中的str为一个字符型数组,P为字符型指针变量,其指向str的首地址,*P的值为strE03中的字符,其类型、长度不同,但字符第一个相同,故答案选择A。

\n

64.A

65.D数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,用的存储结构有顺序和链式结构。用不同的存储结构,其处理的效率是不同的。

66.C

67.B首先二维数组a中的元素都初始化为0,其次定义了指向数组的指针ptr,并

温馨提示

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

评论

0/150

提交评论