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

下载本文档

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

文档简介

2022年江西省鹰潭市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下程序的输出结果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12

2.一个队列的入队序列是1,2,3,4,则队列的输出序列是()。

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

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

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

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

A.650B.1470C.5430D.输出值不定

5.第

4

栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是

A.ABCEDB.DCBEAC.DBCEAD.CDABE

6.以下不能将s所指字符串正确复制到所指存储空间的是()A.do{*t++=*s++;}while(*s);.

B.for(i=0;t[i]=s[i];i++);

C.while(*t=*s){t++;s++}

D.for(i=0,j=0;t[i++]=s[j++];);

7.

8.设有如下定义structss{charname[10];intage;charsex;}std[3],*p=std;下列各输入语句中错误的是_______。

A.scanf("%d",&(*p).age);

B.scanf("%s",&);

C.scanf("%c",&std[0].sex);

D.scanf("%c",&(p->sex));

9.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为______。

A.希尔排序B.冒泡排序C.插入排序D.选择排序

10.以下程序的输出结果是()。#include<stdio.h>main(){intn=4;while(n--)printf("%d",--n);}

A.20B.31C.321D.210

11.

12.设一组初始记录关键字序列为(Q,H,C,Y,P,A,M,S,R,D,F,X),则按字母升序的第一趟冒泡排序结束后的结果是()

A.F,H,C,D,P,A,M,Q,R,S,Y,X

B.P,A,C,S,Q,D,F,X,R,H,M,Y

C.A,D,C,R,F,Q,M,S,Y,P,H,X

D.H,C,Q,P,A,M,S,R,D,F,X,Y

13.语句int(*ptr)的含义是()。A.A.ptr是一个返回值为int的函数

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

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

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

14.有以下程序

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

15.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][10]={“One”,“Three”,“Five”},*p=str[0];printf(“%s,”,p+10);printf(“%d\n”,strlen(p+=10));}程序运行后的输出结果是()。

A.Three,4B.出错C.Three,5D.Five,5

16.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},b[6];fp=fopen(“d.dat”,“w+b”);fwrite(a,sizeof(int),6,fp);for(i=0;i<6;i++)fwrite(&a[2],sizeof(int),1,fp);rewind(fp);fseek(fp,sizeof(int)*2,SEEK_CUR);fread(b,sizeof(int),6,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,b[i]);}程序运行后的输出结果是()。

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

17.链表不具备的特点是()

A.所需空间与其长度成正比B.不必事先估计存储空间C.插入删除不需要移动元素D.可随机访问任一节点

18.

19.以下程序的输出结果是()。main{inta[3][3]=“l,2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21

20.假定已建立以下链表结构,且指针p和q已指向如图所示的结点:

则以下选项中司将q所指结点从链表中删除并释放该结点的语句组是______。A.(*p).next=(*q).next;free(p);

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

C.p=q;free(q);

D.p->next=q->next;free(q);

二、2.填空题(20题)21.一个模块直接调用的其他模块的模块个数称为______。

22.以下程序运行后的输出结果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}

23.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、【】遍历和后序遍历。

24.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为【】。

25.若x,y和z均是int型变量,则执行下面表达式后的x值为【】。

x=(y=4)+(z=2)

26.下面程序的功能是输出数组s中最大元素的下标,请填空。

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

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

main()

{inti,a[10];

a[0]=a[1]=1;

for(i=2;i<5;i++)

a[i]=a[i-2]+a[i-1];

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

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

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

}

}

28.下面的程序实现的是从指针p所指向的地址的n个数中,找出最大的和最小的数据,请填空。

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;______;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

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

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

31.以下程序调用invert函数按逆序重新放置a数组元素的值。a数组中的值在main函数中读入。

#include<stdio.h>

#defineN10

invert(s,i,j)

int*s,i,j;

{intt;

if(i<j)

{t=*(s+i);

*(s+i)=(s+j);

*(s+j)=t;

invert(s,【】,j-1);

}

}

main()

{

inta[N],i;

for(i=0;i<N;i++)scanf("%d",a+【】);

invert(a,0,N-1);

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

printf("\n")

}

32.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。

33.以下程序输出的结果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"}1,k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

34.下面的程序是将从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。

#include<stdio.h>

main()

{inti;

chars[21],*p;

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

s[i]=getehar();

s[i]=【】;

p=【】;

while(*p)putchar(【】);

}

35.在对文件进行操作的过程中,若要求文件的位置指针重新指向文件的开头,应当调用的函数是【】函数。

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

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

37.以下程序的运行结果是______。

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wb");

fwtite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

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

}

38.以下程序运行后输入:3,abcde<回车>,则输出结果是______。

#include<string.h>

move(char*str,intn)

{charcemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1);

str[0]=temp;}

main()

{chars[50];intn,i,z;

scanf(“%d,%s”,&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

printf(“%s\n”,s);

}

39.设Y是int型变量,请写出判断Y为奇数的关系表达【】。

40.按"先进后出"原则组织数据的数据结构是【】。

三、1.选择题(20题)41.若有如下程序:structstudent{charname[10];floatscore[3];}stu[3]={{"lili",75,90,90},{"liudan",90,85,75};{"guoli",85,85,70}};main(){inti;floatsum=0,aver;for(i=0;i<3;i++)sum=sum+stu[i].score[1];aver=sum/i;printf("%6.2f\n",aver);}则程序运行后的输出结果是()

A.83.33B.85C.86D.86.67

42.详细设计的结果基本决定了最终程序的()。

A.代码的规模B.运行速度C.质量D.可维护性

43.若有说明inti,j=2,*p&i;,则能完成i=j赋值功能的语句是______。

A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;

44.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序运行后的输出结果是

A.2B.3C.43D.44

45.有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序运行后的输出结果是()。

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*1=22*2=43*1=33*2=63*3=9

46.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是()main(){chars[100]intc,i;scanf("%c",&C);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}

A.1,456,789B.1,23,456C.1,23,456,789D.123,456,789

47.下面程序的输出结果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}

A.121,0,4B.2,2,2C.0,2,4D.0,2,2

48.下列选项中属于C语言构造类型的是()

A.指针类型B.空类型C.枚举类型D.数组类型

49.执行下面的程序后,a的值是()#defineSQR(X)X*Xmain(){inta=10,k=2,m=l;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}

A.10B.1C.9D.0

50.下述程序的输出结果是()。#include<stdio.h>voidmain(){chara=3,b=1;charc=a^b<<2;printf("%d",C;}

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

51.已定义以下函数;intfun(int*p){return*p;}fun函数返回值是()。

A.不确定的值B.一个整数C.形参p中存放的值D.形参p的地址值

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

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

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

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

54.下列程序的输出结果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}

A.-8B.14C.0D.-24

55.若有定义int*p,n;则通过语句scanf能够正确读入数据的程序段是()。

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p);

C.scanf("%d",n);

D.p=&n;scanf("%d",p);

56.以下数据结构中不属于线性数据结构的是______。

A.队列B.线性表C.二叉树D.栈

57.若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是______。

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

58.设inta=12,则执行完语句a+=a-=a*a后,a的值是()。

A.552B.264C.144D.-264

59.以下程序的输出结果是______。structHAR{intx,y;structHAR*p;}h[2];main(){h[0],x=1;h[0].y=2;h[1]x=3;h[1].y=4;h[0].p、&h[1];h[1]..p=h;printf("%d%d\n",(h[0].p)->x,(h[1].p)->y;}

A.12B.23C.14D.32

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

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

四、选择题(20题)61.有以下程序程序运行后的输出结果是()。A.a+b=0B.a+b=30C.a+b=lOD.出错

62.有以下程序:#include<stdio.h>main(){inta[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;for(i=o;i<5;i++)s=s+a[b[i]];printf(”%d\n”,s);}程序运行后的输出结果是()。A.6B.10C.11D.15

63.设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是

A.10101001B.10101000C.11111101D.01010101

64.设变量已正确定义并赋值,以下正确的表达式是()。

A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0

65.如果在C程序中要用到库函数中的字符串比较函数strcmp(),那么在程序前面应该添加的头文件是()。

A.stdio.hB.string,hC.alloc.hD.math.H

66.读出以下语句的输出结果是()。

intx=10,y=10;

printf(“%d%d\n”,x--,--y);

A.1010B.99C.910D.109

67.

68.

69.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是()。

A.提高耦合性降低内聚性有利于提高模块的独立性

B.降低耦合性提高内聚性有利于提高模块的独立性

C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度

D.内聚性是指模块间互相连接的紧密程度

70.

71.有以下程序:#include<stdio.h>main(){charc1,c2;c1=’A’+’8’-’4’;c2=’A’+’8’-’5’;printf(“c,%d\n”,c1,c2);}已知字母A的ASCⅡ码为65,程序运行后的输出结果是()。A.E,68B.B,69C.E,DD.输出无定值

72.以下程序爱中,与语句:

73.有下列程序:

main

{inty=10;

do{y--;}while(--y);

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

)

当执行程序时,输出的结果是()。

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

74.

75.

76.有以下程序:

voidfun2(chara,charb){printf(”%c%c”,a,b);}

chara='A',b='B';

voidfunl(){a='C';b='D';}

main()

{funl();

printf("%c%c",a,b);

fun2('E','F');

}

程序的运行结果是()。A.A.CDEFB.ABEFC.ABCDD.CDAB

77.

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

main

{charch[3][4]={"123","456","78"),*p[3];inti;

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

for(i=0;i<3;i++)printf("%s",p[i]);}

A.123456780B.123456780C.12345678D.147

78.

有以下程序:

#include<stdio.h>

main

{intx=4,y;

do

{y=x;

if(!y)printf("x");

else

printf("y"):

x--;

}while(x);

}

程序的输出结果是()。

A.xyyxB.yyyyC.yyxxD.yxyx

79.以下不合法的字符常量是()。

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

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

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

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

D.以上三种说法都不对

五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:计算并输出m以内最大的6个能被7或11整除的自然数之和。m的值由主函数传人。例如,若m的值为600,则函数的值为3515。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写函数proc(),其功能是:将str所指字符串中除下标为偶数、同时ASCⅡ码值为奇数的字符外,其余的字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若str所指字符串中的内容为ABCDEFG12345,其中字符8的ASCⅡ码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASCⅡ码值为奇数,所在数组中的下标为偶数,因此不应当删除。依次类推,最后t所指的数组中的内容应是ACEG。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所写的若干语句。试题程序:

参考答案

1.D本题可以写成:a+a+(a-(a*a)),所以*的优先级最高,其次是-=的,+的优先级最低,因此先求a-=a*a=9,表达式变为a+a+-=9,a即a=a-9=-6,再次变为a+(-6)=-12,故选择D选项。

2.C

3.C

4.A解析:对未给出初始值的整数数组元素,被默认初始化为零。

5.B解析:栈操作原则上“后进先出”,栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈。所以出栈时一定是先出D,再出C,最后出A。

6.Ado{*t++=*s++;}while(*s);不能因为当*s=‘\\0'时,while(*s)跳出循环,这样字符串结束标志’0\\没有复制给*t,造成*t不完整。注意,*t++=*s++是先执行t=*s,然后才进行t=t+1,s=s+1。B),C),D)三项都能将“\\0’复制过去。

7.D

8.B解析:在C语言中,结构体变量的引用有三种等价方式:

1、结构体变量成员名;2、(*p).成员名;3、p->成员名。

因为std.name是字符数组名,本身代表地址,其前面不应该使用“&”符号,所以选项B错误。

9.A解析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。

10.A解析:n--是先使用后自减,--n是先自减后使用。n=4时,执行n--后,n变为3,执行--n后,n变为2,所以,第一次输出时,n为2;同上过程,第二次输出时,n为0。

11.B

12.D

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

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

15.Cmain函数定义一个二维字符数组str,它包含3个字符串,每个字符串存放在一个长度为10的一维数组中。指针变量P指向str[0],即第1个字符串“One”。由于“One”存放在长度为10的一维数组中,因此P+10指向下一个字符串“Three”,长度为5。故本题答案为C选项。

16.A程序首先以读二进制文件的方式打开文件d.dat;然后使用fwrite函数将数组a中6个元素写入d.dat中。并调用for循环将a[2]元素(值为3)6次写入d.dat文件中;接着使用rewind函数将文件指针fp移动到文件头;再使用fseek函数将fp从当前位置向后移动2个整数位置;最后使用fread函数从fp指向的位置向后读取6个整数。由此可知这6个整数分别是:3,4,5,6,3,3。故本题答案为A选项。

17.D

18.A

19.A循环的作用是求行下标从1到2列下标从0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]=3+4+5+6+0=18。

20.D解析:本题题面要求删除q所指结点并释放该结点,而选项A中虽然是删除了q所指鲒点,但并未释放q这个结点,而释放的是p结点,所以选项A错误;选项B是将q的下一结点的地址赋值给指针变量p,这意味着p原来的成员变量内容被q的下一结点的成员变量内容所代替,即原p结点也被删除了,所以选项B错误;选项C相当于将q的所有成员变量内容代替了p的所有成员变量内容,即p结点被删除,所以错误;选项D是将q的下—结点的地址赋值给p的成员next\u3000(成员next用于存放一结点的地址),使得p的next成员不再指向q,而是指向q的下一结点,相当于删除了q这个结点,同叫用free函数正确释放了q这一结点,所以选项D正确。

21.扇出扇出解析:在结构图中,调用一个给定模块的模块个数称为扇入,一个模块直接调用的其他模块个数称为扇出。

22.6262解析:本题考查的是宏定义。带参数的宏定义是按#indefine命令行中指定的字符串从左到右进行转换。本题中替换的式子为:6+8*6+8,代入i,j的值得到62。

23.中序中序解析:在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历.前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左了树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树:并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然光遍历右子树,然后访问根结点,最后遍历左子树。

24.数据字典数据字典解析:在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为数据字典。

25.6

26.k=p;k=p;解析:为要寻找数组中的最大元素的下标,需先预设1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至考查了数组的全部元素后,这临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标,考查是从首元素开始顺序向后继元素考查。程序中,存储临时最大元素下标的变量是k,变量p控制顺序考查的循环控制变量。当发现当前元素s[p]比临时最大元素s[k)更大时,应该用p更新k。所以在空框处应填入代码“k=p;”。

27.11<CR>23<CR>5(<CR代表换行)11<CR>23<CR>5(<CR,代表换行)解析:本题通过语句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”将数组中前面两项的和赋值给数组当前元素,得到a的值应为(1,1,2,3,5)。语句if(i%2==0)pfintf('\\n')是要将数组中的元素以每行2个的形式输出。

28.

29.数据库管理系统或DBMS数据库管理系统或DBMS解析:数据库管理系统(DatabaseManagementSystem,DBMS)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。因此,数据库系统中,数据库管理系统是实现各种数据管理功能的核心软件。本题的答案是数据库管理系统或DBMS。

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

31.i+1i

32.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。

33.D

34.\0s*p++\\0\r\ns\r\n*p++解析:本题先通过for循环从键盘读入20个字符,然后赋值'\\0'作为字符串结束标志,再使指针p指向字符串的首地址,最后通过while循环对字符串进行扫描并输出。

35.rewind或fseekrewind或fseek解析:本题考查文件的定位。在对文件进行操作的过程中,若要求文件的位置指针回到文件的开头,可以调用rewind函数或fseek函数来完成。其中,rewind函数的作用是将位置指针重新返回文件的开头;而fseek函数也可以实现文件指针的定位。

36.*2*4*6*8**2*4*6*8*解析:程序中定义了一个字符数组a,并初始化为123456789,接着定义了一个指针p并让它指向数组a,紧接着执行了一个while循环,此循环的作用是:当i为偶数时,将“*”赋给a[i],p指向数组末尾,循环结束,此时数组中a[0]、a[2]、a[4]、a[6]和a[8]的值都为“*”,所以最后调用puts()函数输出的a的值为*2*4*6*8*

37.12300123001,2,3,0,0,1,2,3,0,0,解析:本题考查文件读写函数fread和fwrite的用法。fwrite函数将数组a的前5个元素输出到文件fp中两次,共10个字节,再调用fread函数从文件fp中读取这10个字节的数据到数组a中,此时数组a的内容就变为{1,2,3,0,0,1,2,3,0,0},最后的输出结果为“1,2,3,0,0,1,2,3,0,0”。

38.cdeabcdeab解析:本题考核的知识点是基本算法的应用和程序的综合分析。从分析知道move()函数的作用,是将形参str所指的数组依次向后左移一位,即让该数组第一个元素的值等于第二个元素的值,接着让第二个元素的值等于第三个元素的值,直到该数组最后第二个元素的值等于最后一个元素的值,然后让第一个元素等于最后一个元素的值。主函数中用了一个for循环调用move()函数,共循环三次。当i=1时,第一次调用move()函数,使输入到数组的s的字符串“abcde”变为“eabcd”,当i=2时,第二次调用move()函数,使字符串“eabcd”变为“deabc”,当i=3时,第三次调用move()函数,使字符串“deabc”变为“cdeab”,故最后输出的值为“cdeab”,故该空格处应该填“cdeab”。

39.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或不为0。本题具体做法如下:Y%2=1或Y%2!=0。

40.栈栈解析:考查考生对栈和队列概念的掌握。按'先进后出'原则组织数据的数据结构是栈;按'先进先出'原则组织数据的数据结构是队列。

41.D

42.C解析:详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,但详细设计阶段的任务还不是具体的编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码,因此,详细设计阶段的结果基本上就决定了最终的程序代码的质量。

43.B解析:指针是一种用来存放变量地址的特殊变量。本题中指针变量P用于存放整型变量i的地址,改变*P的值即为改变i的值。又因为“&”和“*”两个运算符的优先级别相同,按自右而左的方向结合,所以*&j先进行&j运算,得j的地址,再进行*运算,取所得地址里面的值,故*&j与j等价。

44.A解析:本题考核的知识点是if-else语句的程序分析。我们首先看程序中if-else的匹配,由于C语言中规定else总是与最近的if搭配,因此程序中else与第二个订搭配,即该if-else语句为第一个if语句的执行部分,接着判断第一个if后面括号里的表达式的值“a>b”为假('3>4'为假),因此不执行后面if-else语句,程序将执行下面的输出语句输出d,而d一直未被改变故为原来的值2,所以,4个选项中选项A符合题意。

45.B解析:外层for循环的自变量i从1开始,每次循环后增1,直到i等于3结束.对于外层循环自变量i的每一个值,内层循环的自变量j每次从i开始,每次循环后增1,直到j等于3结束。所以在每次外循环开始后,内层循环在一行先打印i*j=两个乘数的积,然后回车换行,下次循环从下一行开始打印输出结果。

46.B解析:第一个输入语句只接收一个字符\'1\';第二个输入语句接收一个整数23,遇到空格停止;第三个输入语句接收一个字符串'456',遇到空格停止。

47.B解析:sizeof函数是取变量所占的存储空间的字节数,标识a代表常量121;constb=12;,其中数据类型可以缺省,默认为整型;enumc{a1,a2};定义了—个枚举类型enumc,a1,a2为枚举元素,在C编译时,对枚举元素按常量处理,它们的值按定义顺序依次为0,1。因此它们的字节数均为2,2,2。

48.D解析:构造类型数据是由基本类型数据按一定规则组成的。C语言中的构造类型数据只有3种,它们是数组类型、结构体类型和共用体类型。故应该选择D。

49.B

50.B

51.B解析:题目中fun()函数的返回表达式是*p,所以选项C、D不为所选,而应该是形参p所指内容的值,因为p为int型指针,所以该值是一个整数。故应该选择B。

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

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

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

54.D解析:表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式(a-=a*a)=(a=a-a*a=-12);②第二个表达式(a+=a-=a*a)=(a=a+a=-24)。

55.D解析:通过定义int*p,p是一个整型指针,p=&n是使p指向变量n,而p是一个指针,输入时不需再用地址运算符。

56.C解析:线性表、栈和队列所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,它只能在固定的一端进行插入和删除操作,又称后进先出表(LastInFirstOut);队列是插入在一端进行,删除在另一端进行的线性表,又称先进先出表(FirstInFirstOut)。

57.C解析:栈是一种后进先出表,选项C中,先出栈的是3,说明此时栈内必然有1,2,由于1先于2进浅,所以1不可能在2之前出栈,故选项C这种出栈序列是不可能的。

58.D

59.D解析:本题中是一个含有两个结点的循环链表。

C语言中结构体的定义为:

struct结构体类型名

{

成员项表;

};

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

61.A注释/*和*/,之间计算机不参与编译,所以a、b值仍为0,答案选择A)。

62.C本题考查数组的使用。本题定义了两个数组,注意数组的下标是从0开始的,进行第1次for循环:当i=0时,b[0]为数组b中第l个元素,结果为0,那么a[0]也是数组a中第l个元素,结果为1,所以S的值为1。第2次循环:i此时自加为l,b[1]为数组的第2个元素,值为2,所以可求出a[2](数组中的第3个元素)的值为3,s=s+3,所以S的值为4。进入第3次for循环,依此类推,第3次for循环结束时s的值为6。第4次for循环,s的值变为l0。第5次for循环时,此时i的值为4,s的值变为ll,i=5不符合题意,所以跳出循环,输出结果,所以本题答案为C。

63.D本题主要考查位运算。“按位取反”运算(~)是单目运算符,运算对象应置于运算符的右边,其功能是把运算对象的各二进制位求反;“按位异或”运算(^)是双目运算符,其功能是把参与运算的两数各对应的二进制位相异或。该操作通常用来使一个数中某些指定位翻转,而另一些位保持不变。

本题中,

温馨提示

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

评论

0/150

提交评论