2022年河北省衡水市全国计算机等级考试C语言程序设计_第1页
2022年河北省衡水市全国计算机等级考试C语言程序设计_第2页
2022年河北省衡水市全国计算机等级考试C语言程序设计_第3页
2022年河北省衡水市全国计算机等级考试C语言程序设计_第4页
2022年河北省衡水市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

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

文档简介

2022年河北省衡水市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}该程序的输出结果是

A.69825B.63825C.6385D.693825

2.执行下列程序段后的输出结果是()。A.3B.2C.1D.4

3.有以下程序:#include<stdio.h>structnode{charid;structnode*next;}a={‘A’},b={‘B’},c={‘C’},*p=&a,*pt;main(){p->next=&b;p=p->next;p->next=&c;p=p->next;p->next=NULL;p=&a;}若程序经运行后形成下图所示的数据结构。则以下可以删除中间节点b的正确选项是()。

A.pt=p->next;p->next=p->next->next;free(pt);

B.pt=p->next;p->next=p->next->next->next;free(pt);

C.pt=&b;free(pt);

D.pt=&b;p->next=p->next->next->next;free(pt);

4.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。

A.一个整型变量,代表要读入的数据项总数

B.一个文件指针,指向要读的文件

C.一个指针,是指向的输入数据放在内存中的起始位置

D.一个存储区,存放要读的数据项

5.有以下程序段chareh;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

6.

7.二维数组A按行顺序存储,其中每个元素占1个存储单元。若A[1][1]的存储地址为420,A[3][3]的存储地址为446,则A[5][5]的存储地址为_______

A.470B.471C.472D.473

8.C语言函数中未指定存储类的变量,其隐含类别是()

A.autoB.staticC.registerD.void

9.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",执行其结果为()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234

10.

11.已知char**s,下面正确的语句是()。A.A.s="ABCDEF";

B.*s="ABCDEF";

C.**s="ABCDEF";

D.*s='A';

12.下面程序的输出结果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不确定D.bcdef

13.判断一个顺序存储的队列sp为空的条件是()。

A.sp->front=sp->rear

B.sp->front=sp->rear+1

C.sp->front=sp->rear-1

D.sp->front=NULL

14.算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是A.A.有零个输入或多个输入B.高效性C.有穷性D.确定性

15.有以下程序:main{union{charch[2];intd;}s;d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[l]);}在16位编译系统上,程序执行后的输出结果是()A.21,43B.43,21C.43,00D.21,00

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

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

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

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

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

17.

18.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是

A.10,A,10B.10,a,10C.1O,a,0D.10,A,0

19.第

11

若有定义:char*st="howareyou";下列程序段中正确的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

20.设有定义“struct{charmark[12];intnum1;doublenum2;}t1,t2;”,若变量均已正确赋初值,则下列语句中错误的是()。

A.t1=t2;

B.t2.num1=t1.num1;

C.t2.mark=t1.mark;

D.t2.num2=t1.num2;

二、2.填空题(20题)21.在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。常见的数据模型有3种,它们分别是层次模型、网状模型和()。

22.以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fgetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

23.下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}

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

25.下面程序中函数fun的功能是:找出一维数组元素中的最大值和它所在的下标,并将最大值和其下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。

#include<stdlib.h>

#include<sldio.h>

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];*d=0;

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

if(*max<【】)

{*max=a[i];*d=i;}

}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max.&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

26.有以下程序

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

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

27.算法的复杂度主要包括时间复杂度和______复杂度。

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

main()

{intm=011,n=11;

printf("%d%d\ff",++m,n++);

}

29.仅依据规格说明书描述的程序功能来设计测试实例的方法称为【】。

30.阅读下列程序,则程序的输出结果为【】。

#include"stdio.h"

structty

{intdata;

charc;};

main()

{structtya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

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

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{

inta=5,b=2;c=3,d=3,t;

t+MAX(a+,b,c+D)*10;

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

}

32.以下程序的输出结果是()。#include<stdio.h>voidswap(int*a,int*B){int*t;t=a;a=b;b=c;}main(){inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf("%d%d\n",*p,*q);}

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

structnode

{intinfo;

【】link;};

34.下列语句的输出结果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

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

#include<stdio,h>fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

inti,a=5;

for(i=0;i<3;i++)prinff("%d%d",i,fun(a));

printf("\n");

}

36.软件设计模块化的目的是______。

37.设有以下定义和语句,则*(*(p+2)+1)的值为【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

38.有以下程序:

#include<stclio.h>

main()

{charc;

while((c=getchar())!='?')putchar(--c);

}

程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为【】。

39.以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,

否则返回0。请填空。

intisprime(inta)

{inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

40.在树形结构中,树根结点没有______。

三、1.选择题(20题)41.有以下程序:#include<stdio,h>#include<string,h>struetSTU{intnam;floatTotalSeore;};voidf(strnctSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.Of\n",s[0].num,s[0].TotalSeore);}程序运行后的输出结果是()。

A.20045537B.20044550C.20042580D.20041703

42.下列选项中,不是一个算法的基本特征的是()。

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

43.下列对于软件测试的描述中正确的是()。

A.软件测试的目的是证明程序是否正确

B.软件测试的目的是使程序运行结果正确

C.软件测试的目的是尽可能多地发现程序中的错误

D.软件测试的目的是使程序符合结构化原则

44.下面程序的输出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=8,v2=8,v3=8,v4=8

45.有以下程序main(){inta[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr++;}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("%2d",a[i][j]);printf("\n");}}若运行时输入:123<回车>,则输出结果是

A.产生错误信息B.102000C.123000D.102030

46.以下程序的输出结果是unionmyun{struct{intx,y,z;}u;intk;}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf("%d\n",a.u.x);}

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

47.若一个外部变量的定义形式为staticintx;,那么,其中static的作用应该是______。

A.将变量存储在静态存储区B.使变量x可以由系统自动初始化C.使x只能在文本文件内引用D.使x的值可以永久保留

48.有以下程序#include<stdio.h>main(){int*p,j;p=NULLp=fun();for(j=0;j<4;j+){printf("%d",*p);p++;}}int*fun(){inta[4],k;for(k=0;k<4;k++)a[k]=k;return(A);}程序运行后的输出结果是()

A.程序有错不能运行B.输出4个NULLC.输出0123D.输出1111

49.下列程序的输出结果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printf("OK");}}

A.0B.3C.OKD.没有任何输出

50.有以下程序:#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

51.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。

A.数据库系统B.文件系统C.人工管理D.数据项管理

52.下列条件语句中,功能与其他语句不同的是()。

A.if(a)printf("%d\n",x);elseprintf("%d\n",y);

B.if(a==O)printf("%d\n",y);elseprintf("%d\n",x);

C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);

D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);

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

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

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

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

54.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。

A.12B.11C.10D.编译出错

55.下列程序的运行结果是()。#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.不确定的值

56.以下程序的输出结果是()。main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=O;i<4;i+2)printf("%d",p[i]);}

A.52B.51C.53D.97

57.下列有关数据库的描述,正确的是A.数据处理是将信息转化为数据的过程

B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变

C.关系中的每一列称为元组,一个元组就是一个字段

D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字

58.下列描述中正确的是()。

A.在C语言程序中预处理是指完成宏替换和文件包含指定的文件的调用

B.预处理指令只能位于C源程序文件的首部

C.预处理命令可以放在程序中的任何位置

D.预处理命令结尾需要加分号

59.软件需求分析阶段的工作,可以分为四个方面:需求获取、编写需求规格说明书、需求评审和()

A.阶段性报告B.需求分析C.需求总结D.都不正确

60.以下关于字符串的叙述中正确的是()。

A.C语言中有字符类型的常量和变量

B.两个字符串中的字符个数相同时才能进行字符串大小的比较

C.可以用关系运算符对字符串的大小进行比较

D.空串一定比空格打头的字符串小

四、选择题(20题)61.有三个关系R、S和T如下:

则由关系R和s得到关系T的操作是()。

A.自然连接B.并C.交D.差

62.语句int(*ptr)的含义是()。

A.ptr是一个返回值为int的函数

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

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

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

63.有以下程序:

#include<stdio.h>

structSTU{charname[9];charsex;intscore[2];};

voidf(structSTUa[])

{structSTUb={"Zhao",m,85,90);

a[1]=b;

}

main()

{structSTUc[2]={{"Qian",f,95,92},{"Sun",m98,99}};

f(c);

printf(”%s,%c,%d,%d,¨,c[o].name,c[o].sex,c[o].score[o],c[o].score[1]);

printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[o],c[1].score

[1]);

}

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

A.Zhao,m,85,90,Sun,m,98,99

B.Zhao,m,85,90,Qian,f,95,92

C.Qian,f,95,92,Sun,m,98,99

D.Qian,f,95,92,Zhao,m,85,90

64.

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

A.15,16B.16,15C.15,15D.16,16

66.有以下程序

67.程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、P、q、均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。该程序段实现的功能是()。

A.首结点成为尾结点B.尾结点成为首结点C.删除首结点D.删除尾结点

68.(44)对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为()

A.N+1

B.N

C.(N+1)/2

D.N/2

69.有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母:

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

A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!

70.(35)检查软件产品是否符合需求定义的过程称为______。

A.确认测试

B.集成测试

C.验证测试

D.验收测试

71.有以下程序

#include<stdio.h>

main()

{

intnum=0;

while(num<=2)

{

num++;

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

}

}

上面程序的输出结果是

72.若x=5,y=3则y*=x+5;y的值为___________.

A.10B.20C.15D.30

73.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其输出为______。

A.不确定B.编译错误C.gD.输出null字符

74.

75.设变量a是int型,f是int型,i是double型,则表达式10+a+i*f值的数据类型为

A.intB.floatC.doubleD.不确定

76.

77.

78.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}执行后的结果是()。

A.输出字符a的ASCII码B.输出字符c的ASCII码C.输出字符cD.程序出错

79.按照C语言规定的用户标识符命名规则,不能出现在标识符中的字符是

A.大写字母B.连接符C.小写字母D.下画线

80.

五、程序改错题(1题)81.下列给定程序中函数fun()的功能是:把从主函数中输人的3个数。最大的数放在a中,中间的数放在b中,最小的数放在C中。例如,若输入的数为:55,12,34,输出的结果应当是:a=55.0,b=34.0,c=12.0。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),该函数的功能是统计一行字符串中单词的个数,并将其作为函数值返回。字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。注意:部分源程序在文件prog1.c中。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include<string.h>2#include<stdio.h>3#defineN804intfun(char*s)5{67}8voidmain()9{10FILE*wf;11charline[N];12intnum=0;13printf("Enterastring:\n");14gets(line);15num=fun(line);16printf("Thenumberofwordsis:%d\n\n",num);17/*********found*********/18wf=fopen("out.dat","w");19fprintf(wf,"%d",fun("abigcar"));20fclose(wf);21/*********found*********/22}

参考答案

1.C解析:该题稍微难一点。主要要搞清楚以下几点:①定义了一个指针数组char*p[2]后,程序中第一个循环for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指针数组的p[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p[1]元素指向二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串“693

2.A

3.A题干中,a、b、c3个节点都是node类型,它们都有两个成员:字符成员id,node类型指针成员next。由于a的next指向b,b的next指向c,因此a、b、c构成了链表。要想删除b节点,只需要将a节点的next(p->next)指向c(p->next->next),然后将节点b的存储空间释放即可。所以删除b节点的语句为“pt=p->next;p->next=p->next->next;free(pt);”。故本题答案为A选项。

4.C解析:数据块输入/输出函数的调用形式为:fread(buffer,size,count,fp)。fread函数参数说明:“buffer”是一个指引,对fread来说,它是读入数据的存放地址;“size”是要读写的字节数;“count”是要进行读写多少个size字节的数据项;“fp”是指文件型指针。

5.D解析:输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。

6.B

7.C

8.A

9.D

10.D

11.C

12.C解析:字符串少一个结束标志,所以输出的结果不确定。

13.A

14.B

15.As是一个公用体,d的值分别与ch中的两个元素的值相同,d的高位放在chFl]中、低位放在chl-0]中,因此输出的结果为21,43。

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

17.B

18.A解析:本题考核的知识点是scallf()函数输入格式。格式字符“%d”用于输入整数,“%C”用来输入字符。在输入时,系统把第一个10作为整数10赋给m,把随后的A作为字符赋值给c,后面的10作为整数赋给n,最后输出的结果为10,A,10所以,A选项为所选。

19.A本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:str1='China',如果想把“China”这5个字符放到数组str1中,除了逐个输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

strcpy函数的结构是:strcpy(字符数组1,字符串2)

其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组名形式,如(str1),“字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

20.Cmark为结构体中的数组,不能直接赋值,所以C选项错误。故本题答案为C选项。

21.关系模型关系模型解析:在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲,数据模型就是现实世界的反映,它分为两个阶段:把现实世界中的客观对象抽象为概念模型;把概念模型转换为某一DBMS支持的数据模型。常见的数据模型有3种,它们分别是层次模型、网状模型和关系模型。

22.“filea.dat”“r”“filea.dat”,“r”解析:考查对文件的操作。fopen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入'filea.dat','r'。

23.11

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

25.i<na[i]i<na[i]解析:在main函数中,randomize是为了生成随机种子,以便在使用rand函数时产生不同的数。通过循环用rand函数产生10个随机数。在fun函数中,要在n个数中找最大值,所以第一处填写i<n,每次将当前最大值与数组中的某元素比较,第二处填写a[i]。

26.3

27.空间空间解析:算法的复杂度主要包括时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量。一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。

28.10111011解析:赋值表达式m=011中的常数011为八进制,++m后以十进制数格式“%d”输出为10。

29.黑箱法黑箱法

30.30x30x解析:本题的参数传递属于值传递,所以函数内不能改变调用函数中的数据。

31.77解析:宏替换后,表达式t=MAX(a+b,c+d)*10即变为:t=(a+b)>(c+d)?(a+b):(c+d)*10;由于(a+b)>(c+d)为真,所以t=(a+b),即为7。

32.3535解析:本题考查函数中形参和实参的传递。在C语言函数中实参和形参传递具有不可逆性,参数只能由实参传向形参,而不能由形参传向实参,虽然swap函数的功能是实现两个数的交换,但由于没有返回值,故最终的输出结果为35。

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

34.aaaaAAAAAaaaaAAAAA解析:函数strcat(sp,'AAAAA')的作用是将字符中“AAAAA”连接到字符串sp的末尾,并自动覆盖字符数组sp末尾的\'\\0\'。

35.1011121210111212解析:用static关键字声明的变量称为静态局部变量。静态局部变量只在编译时赋一次初值,以后再次调用函数时不再重新赋初值,而是保留上次函数调用结束时的值。程序中的变量c为静态变量,当再次调用fun函数时,变量c不再被赋初值,变量c的值为上次调用fun函数时所保留下来的值,具体在程序运行过程中的体现如下:

当i=0时,第一次调用fun(5),这时a=5,b=0,c=3,执行b++,c++,得到b=1,c=4,则a+b+c=10,返回主函数输出010;当i=1时,第二次调用fun(5),这时a=5,b=0,c=4,执行b++,c++,得到b=1,c=5,则a+b+c=11,返回主函数输出111;当i=2时,第三次调用fun(5),这时a=5,b=0,c=5,执行b++,c++,得到b=1,c=6,则a+b+c=12,返回主函数输出212;当i=3时,循环结束,所以输出结果为:010111212。

36.降低复杂性降低复杂性

37.6060解析:程序中定义a是一个3行2列的二维数组,p是指向两个元素的一维数组指针,并让p指向二维数组a的首行。则代码*(*(p+2)+1)中的p+2指向二维数组a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。

38.XX解析:主函数中首先定义了一个字符型变量c,接着执行下面while语句,在while循环中,首先从键盘上读入一个字符Y并给赋给字符变量c,赋值表达式的值不为'?',执行输出语句,输出字符X。接着判断while中的循环条件,读入一个字符'?'并赋值给c,赋值表达式的值为'?'循环条件不再满足,退出循环。

39.return0return1return0,return1解析:如果a能被i整除,则a是素数,返回值为0。如果a不能被i整除,则a不是素数,返回值为1。

40.前件前件

41.D解析:函数f中定义了结构体类型的变量P作为形参,在main函数中,将结构体变量s[0]中的值传给了形参变量P,在函数f中,虽然改变了p中的内容,但其改变对main函数中s[0]的值不产生影响,所以main函数中输出s[0]的数据仍然是main函数中初始化时的数据。

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

43.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。

44.C解析:当switch后面括弧内的表达式的值与某一个case后面的常量的表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。

45.B解析:二维数组指针第一个for循环中,第一次循环ptr指向a[0][0]的首地址,所以经过输入语句,a[0][0]=1;第二次循环ptr指向a[1][0]的首地址,所以经过输入语句,a[1][0]=2。此时,除了这两个元素,其他元素没有改变,等于初值0。

46.D解析:本题考查共用体变量起作用的范围。共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用,在本题中,当对a.u.y成员赋值时,a.u.x的值就不存在了,当对a.u.2赋值时,a.u.y的值就不存在了。

47.C解析:事实上,无论有无static修饰,外部变量都具有A、B和C三种特性。作为—种修饰,static仅是限制此类型外部变量的引用范围:只能在定义它的文件范围内使用。

48.A

49.D解析:在题中,i的值为3,由于“case3:”后面没有break语句,所以继续向下执行“case4:”后面的语句,由于“case4:”后面的语句为break强行退出switch语句,所以,本题没有任何输出。

50.A解析:本题中,首先定义了一个共用体pw,其中有两个域:整型变量i和字符数组ch,因为共用体中的域是共享内存空间的,又数组的元素有低到高存储:ch[0]在低字节,ch[1]在高字节。整型变量i占两个字节,高位与ch[1]共用存储空间,低位与ch[0]共用存储空间,而高位ch[1]的值为0,所以输出的成员变量i的值就是ch[0]的值13。

51.A在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统这一阶段。数据库系统阶段用数据模型来表示复杂的数据,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户既可使用查询语言或终端命令操作数据库,也可以用程序方式来操作。数据库管理系统提供了数据控制功能。

52.D解析:选项A、选项B和选项C都是在a的值为0的时候输出y,a不为0的时候输出x,而选项D是在a为0的时候输出x,a不为0的时候输出y。所以,4个选项中选项D符合题意。

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

54.B解析:执行p=&a;后,p指向整数a,*p即p的目标变量,也就是a;所以a=*p+b等价于a=a+b,可知a的值最终为11。

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

56.C解析:执行for循环,输出p[0]、p[2]的值。P的初值为数组元素x[1][1]的地址,即5的地址,因此p[0]为5,p[2]为3。

57.D数据处理是指将数据转换成信息的过程,故选项A叙述错误。数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项B叙述错误。关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项C叙述错误。所以本题选D。

58.C解析:本题考查预处理命令的特点,编译预处理命令的特点:①为了区别一般的语句,预处理命令行都必须以“#”号开始,结尾不加分号;②预处理命令可以放在程序中的任何位置;③在程序中凡是以“#”号开始的语句行都是预处理命令行。

59.BB)【解析】软件需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格说明书和需求评审。需求获取的目的是确定对目标系统的各方面需求。涉及到的主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的过程。

\n需求分析是对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型。

\n编写需求规格说明书作为需求分析的阶段成果,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。

\n需求评审是对需求分析阶段的工作进行复审,验证需求文档的一致性、可行性、完整性和有效性。

60.D解析:本题考查的重点是C语言中对字符串的理解。选项B是错误的,两个字符串不一定非要字符一样多才可以比较大小;选项C是错误的,不能用关系运算符来对字符串进行大小比较。因为空串只有一个null字符(其值为零),从而,它一定比空格打头的字符串小,所以选项D是正确的。

61.D关系T中的元组是关系R中有面关系s中没有的元组的集合,即从关系R中除去与关系s中相同元组后得到的关系T。所以做的是差运算。

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

63.D\nF函数是为结构体数组的第二个数赋值,数组的第一个数没有变化,所以正确答案应选D。

\n

64.C

65.A函数swap采用值传递方式,无论形参x和Y数值发生多大变化,实参a和b的值不变。因此选项A正确。

66.Afor分别输/klt[2][01,till[1],t[0][2]分别为357,答案选择A)。

67.A循环找到末尾结点,然后赋值给第一个结点,所以选择A)。

68.B

69.D调用缸函数后,实参数组名sl传给形参指针P,P也指向数组sl。m函数的功能是遍历字符数组中的所有字符,如果某一个字符是空格并且前一个字符是小写字母的话,就把前一个字符转换为大写。程序中语句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是将P[i一1]中的字符转换为大写。因此D选项正确。

70.A

71.C本题考查while()语句。程序中使用的是while循环,为“当型”循环结构,即当条件为真时循环,将值代入循环,当num为3时,循环的条件已经为假,将不再循环。故本题答案为C。

72.D

73.A解析:由于s[2][6]表示字符串已超出了数组s的表示范围,在C中不会刘数组越界进行检查,当数组越界时,会得到一个不确定的值。

74.B

75.C在本题中,分别定义了一个整型变量a和f、双精度型变量i。然后求表达式10+a+i*f结果的数据类型。

在C语言中,对应不同类型数据间的运算,将运算结果保存为精度较高的操作数类型,如整型与浮点型操作数据进行相关的运算,运算结果被自动保存为浮点型。在本题给出的运算表达式中,参与运算的操作数精度最高的为双精度型,因此,最后的计算结果应该被保存为双精度类型,本题正确的答案选C。

76.D

77.C

78.D解析:因为字符数组s1)中的数组名s表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。

79.B标识符是用来表示变量名、符号常量名、函数名、数组名、类型名和文件名的有效字符序列。C语言的标识符可以分为三类:关键字、预定义标识符、用户标识符。

C语言中的标识符命名规则如下:

(1)C语言中规定,标识符只能由字母、数字和下画线三种字符构成,而且标识符的第一个字符必须是字母或下画线。

(2)标识符的长度有一定的限制,TC2.0规定标识符的前8个字符有效。

(3)标识符中大写字母和小写字母被认为是不同的字符。

根据前述的标识符命名规则第一条,我们不难看出,连接符不是组成标识符的字符。

80.C

81.(1)错误:float*k;

正确:floatk;

(2)错误:if(*a>*c)

正确:if(*a<*c)

【解析】变量定义首先要判断变量的类型,给定程序的赋值语句中,k是以变量形式进行赋值的,所以k不是指针,定义为指针是不正确的;由给出程序可以看出,if语句是为了将小于*C的值放入*C中,所以应该改为“if(*a<*c)”。

82.Intfun(char*s){Inti,j=0;for(i=0;s[i]!=’\\o’/i++)if(s[i]!=’'&&(s[i+i]==’’||s[i+1]=='\\0'))/*如果一个字母的下一个字符为空格或者结束标记,则表示一个单词结束*/J++;_returnj;/*返回单词个数*/}要判断单词的个数,首先考虑怎样识别一个单词。如果一个字母的下一个字符为空格或者字符串结束标志,则表示一个单词结束。因此程序使用for循环语句遍历整个字符串,用if条件语句判断当前字符是否表示一个单词的结束。如果当前字符表示一个单词结束,则存放单词个数的变量加1,最后返回单词的个数。2022年河北省衡水市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}该程序的输出结果是

A.69825B.63825C.6385D.693825

2.执行下列程序段后的输出结果是()。A.3B.2C.1D.4

3.有以下程序:#include<stdio.h>structnode{charid;structnode*next;}a={‘A’},b={‘B’},c={‘C’},*p=&a,*pt;main(){p->next=&b;p=p->next;p->next=&c;p=p->next;p->next=NULL;p=&a;}若程序经运行后形成下图所示的数据结构。则以下可以删除中间节点b的正确选项是()。

A.pt=p->next;p->next=p->next->next;free(pt);

B.pt=p->next;p->next=p->next->next->next;free(pt);

C.pt=&b;free(pt);

D.pt=&b;p->next=p->next->next->next;free(pt);

4.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是()。

A.一个整型变量,代表要读入的数据项总数

B.一个文件指针,指向要读的文件

C.一个指针,是指向的输入数据放在内存中的起始位置

D.一个存储区,存放要读的数据项

5.有以下程序段chareh;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

6.

7.二维数组A按行顺序存储,其中每个元素占1个存储单元。若A[1][1]的存储地址为420,A[3][3]的存储地址为446,则A[5][5]的存储地址为_______

A.470B.471C.472D.473

8.C语言函数中未指定存储类的变量,其隐含类别是()

A.autoB.staticC.registerD.void

9.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",执行其结果为()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234

10.

11.已知char**s,下面正确的语句是()。A.A.s="ABCDEF";

B.*s="ABCDEF";

C.**s="ABCDEF";

D.*s='A';

12.下面程序的输出结果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不确定D.bcdef

13.判断一个顺序存储的队列sp为空的条件是()。

A.sp->front=sp->rear

B.sp->front=sp->rear+1

C.sp->front=sp->rear-1

D.sp->front=NULL

14.算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是A.A.有零个输入或多个输入B.高效性C.有穷性D.确定性

15.有以下程序:main{union{charch[2];intd;}s;d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[l]);}在16位编译系统上,程序执行后的输出结果是()A.21,43B.43,21C.43,00D.21,00

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

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

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

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

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

17.

18.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是

A.10,A,10B.10,a,10C.1O,a,0D.10,A,0

19.第

11

若有定义:char*st="howareyou";下列程序段中正确的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

20.设有定义“struct{charmark[12];intnum1;doublenum2;}t1,t2;”,若变量均已正确赋初值,则下列语句中错误的是()。

A.t1=t2;

B.t2.num1=t1.num1;

C.t2.mark=t1.mark;

D.t2.num2=t1.num2;

二、2.填空题(20题)21.在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。常见的数据模型有3种,它们分别是层次模型、网状模型和()。

22.以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fgetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

23.下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}

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

25.下面程序中函数fun的功能是:找出一维数组元素中的最大值和它所在的下标,并将最大值和其下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。

#include<stdlib.h>

#include<sldio.h>

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];*d=0;

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

if(*max<【】)

{*max=a[i];*d=i;}

}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max.&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

26.有以下程序

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

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

27.算法的复杂度主要包括时间复杂度和______复杂度。

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

main()

{intm=011,n=11;

printf("%d%d\ff",++m,n++);

}

29.仅依据规格说明书描述的程序功能来设计测试实例的方法称为【】。

30.阅读下列程序,则程序的输出结果为【】。

#include"stdio.h"

structty

{intdata;

charc;};

main()

{structtya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

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

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{

inta=5,b=2;c=3,d=3,t;

t+MAX(a+,b,c+D)*10;

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

}

32.以下程序的输出结果是()。#include<stdio.h>voidswap(int*a,int*B){int*t;t=a;a=b;b=c;}main(){inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf("%d%d\n",*p,*q);}

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

structnode

{intinfo;

【】link;};

34.下列语句的输出结果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

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

#include<stdio,h>fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

inti,a=5;

for(i=0;i<3;i++)prinff("%d%d",i,fun(a));

printf("\n");

}

36.软件设计模块化的目的是______。

37.设有以下定义和语句,则*(*(p+2)+1)的值为【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

38.有以下程序:

#include<stclio.h>

main()

{charc;

while((c=getchar())!='?')putchar(--c);

}

程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为【】。

39.以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,

否则返回0。请填空。

intisprime(inta)

{inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

40.在树形结构中,树根结点没有______。

三、1.选择题(20题)41.有以下程序:#include<stdio,h>#include<string,h>struetSTU{intnam;floatTotalSeore;};voidf(strnctSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.Of\n",s[0].num,s[0].TotalSeore);}程序运行后的输出结果是()。

A.20045537B.20044550C.20042580D.20041703

42.下列选项中,不是一个算法的基本特征的是()。

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

43.下列对于软件测试的描述中正确的是()。

A.软件测试的目的是证明程序是否正确

B.软件测试的目的是使程序运行结果正确

C.软件测试的目的是尽可能多地发现程序中的错误

D.软件测试的目的是使程序符合结构化原则

44.下面程序的输出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=8,v2=8,v3=8,v4=8

45.有以下程序main(){inta[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr++;}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("%2d",a[i][j]);printf("\n");}}若运行时输入:123<回车>,则输出结果是

A.产生错误信息B.102000C.123000D.102030

46.以下程序的输出结果是unionmyun{struct{intx,y,z;}u;intk;}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf("%d\n",a.u.x);}

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

47.若一个外部变量的定义形式为staticintx;,那么,其中static的作用应该是______。

A.将变量存储在静态存储区B.使变量x可以由系统自动初始化C.使x只能在文本文件内引用D.使x的值可以永久保留

48.有以下程序#include<stdio.h>main(){int*p,j;p=NULLp=fun();for(j=0;j<4;j+){printf("%d",*p);p++;}}int*fun(){inta[4],k;for(k=0;k<4;k++)a[k]=k;return(A);}程序运行后的输出结果是()

A.程序有错不能运行B.输出4个NULLC.输出0123D.输出1111

49.下列程序的输出结果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printf("OK");}}

A.0B.3C.OKD.没有任何输出

50.有以下程序:#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

51.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。

A.数据库系统B.文件系统C.人工管理D.数据项管理

52.下列条件语句中,功能与其他语句不同的是()。

A.if(a)printf("%d\n",x);elseprintf("%d\n",y);

B.if(a==O)printf("%d\n",y);elseprintf("%d\n",x);

C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);

D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);

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

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

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

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

54.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。

A.12B.11C.10D.编译出错

55.下列程序的运行结果是()。#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.不确定的值

56.以下程序的输出结果是()。main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=O;i<4;i+2)printf("%d",p[i]);}

A.52B.51C.53D.97

57.下列有关数据库的描述,正确的是A.数据处理是将信息转化为数据的过程

B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变

C.关系中的每一列称为元组,一个元组就是一个字段

D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字

58.下列描述中正确的是()。

A.在C语言程序中预处理是指完成宏替换和文件包含指定的文件的调用

B.预处理指令只能位于C源程序文件的首部

C.预处理命令可以放在程序中的任何位置

D.预处理命令结尾需要加分号

59.软件需求分析阶段的工作,可以分为四个方面:需求获取、编写需求规格说明书、需求评审和()

A.阶段性报告B.需求分析C.需求总结D.都不正确

60.以下关于字符串的叙述中正确的是()。

A.C语言中有字符类型的常量和变量

B.两个字符串中的字符个数相同时才能进行字符串大小的比较

C.可以用关系运算符对字符串的大小进行比较

D.空串一定比空格打头的字符串小

四、选择题(20题)61.有三个关系R、S和T如下:

则由关系R和s得到

温馨提示

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

评论

0/150

提交评论