2021年贵州省毕节地区全国计算机等级考试C语言程序设计测试卷(含答案)_第1页
2021年贵州省毕节地区全国计算机等级考试C语言程序设计测试卷(含答案)_第2页
2021年贵州省毕节地区全国计算机等级考试C语言程序设计测试卷(含答案)_第3页
2021年贵州省毕节地区全国计算机等级考试C语言程序设计测试卷(含答案)_第4页
2021年贵州省毕节地区全国计算机等级考试C语言程序设计测试卷(含答案)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

2021年贵州省毕节地区全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列叙述中错误的是()。

A.C语言函数中定义的自动变量,系统不自动赋确定的初值

B.在C语言的同一函数中,各复合语句内可以定义变量,其作用域仅限于本复合语句内

C.C语言函数中定义的赋有初值的静态变量,每调用一次函数为其赋一次初值

D.C语言函数的形参不可以说明为static型变量

2.高度为h的满二叉树的结点数是________个。

A.log2h+1B.2h+1C.2h-1D.2h-1

3.有以下程序:#include<stdio.h>main(){inty=10;while(y--);printf(“y=%d\n”,y);}程序运行后的输出结果是()。

A.y=0B.y=-1C.y=1D.while构成无限循环

4.有以下程序段:charname[20】;intnum;scanf("name=%Snum=%d",name,&num);当执行上述程序段,并从键盘输入:name=Lilimum=1001<回车>后,name的值为()。A.LiliB.name=LiliC.Lilinum=D.name=Lilinum=1001

5.下面关于编译预处理的命令行中,正确的是()。

A.#defineintINT

B.##defineeps0.001

C.##DEFINETRUE

D.#defineE2.88

6.有以下程序:#include<stdio.h>main(){intk=5;while(--k)printf(“%d”,k-=3);printf(“\n”);}程序运行后的输出结果是()。

A.1B.2C.4D.死循环

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

8.有以下程序:#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf(“%d\n,”,S(k+j));}程序的运行结果是()。

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

9.下列二叉排序树中查找效率最高的是()

A.平衡二叉树B.二叉查找树C.没有左子树的二叉排序树D.没有右子树的二叉排序树

10.索引属于()。

A.模式B.内模式C.外模式D.概念模式

11.下列语句组中正确的是()。

A.char*s;s={“BOOK!”};

B.char*s;s=“BOOK!”;

C.chars[10];s=“BOOK!”;

D.chars[];s=“BOOK!”;

12.

13.有以下程序:#include<stdio.h>main(){inti=0.s=0;for(;;)if(i==3‖i==5)continue;if(i==6)break;i++;s+=i;}printf("%d\n",s);程序运行后的输出结果是()。

A.10B.13C.21D.程序进入列循环

14.

15.在10000个int型变量中找出最大的100个,使用下列排序算法中哪一种用时最快()

A.冒泡排序B.快速排序C.归并排序D.堆排序

16.下列程序的输出结果是______。#include<stdio.h>main(){inti,j,k,a=3,b=2;i=(--a==b++)?--a;++b;j=a++;k=b;printf("i=%d,j=%d,k=%d\n",i,j,k);}

A.i=2,j=1,k=3B.i=1,j=1,k=2C.i=4,j=2,k=4D.i=1,j=1,k=3

17.以下函数调用语句中含有实参个数为().func((exp1,exp2),(exp3,exp4,exp5));

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

18.现有二叉搜索树(BST)前序遍历结果序列为abdefgc,中序遍历结果序列为debgfac,请问后序遍历结果序列为()

A.debgfaCB.edgfbcAC.edgbfcAD.degbfaC

19.

20.设无向图G中的边的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发进行深度优先遍历可以得到的一种顶点序列为()。

A.aedfcbB.acfebdC.aebcfdD.aedfbc

二、2.填空题(20题)21.以下程序的功能是根据输入的"y"("Y")与"n"("N"),在屏幕上分别显示出"ThisisYES."与"ThisisNO."。空白处需要填入的内容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case′y′:

case′Y′:printf("\nThisisYES.\n");

case′n′:

case′N′:printf("\nThisisNO.\n");}

main()

{charch;

printf("\nEnterachary,Yorn,N:");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

22.数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。

23.十六进制数100转换成十进制数为【】。

24.若a是int型变量,且a的初值为4,则计算a+=a-=a*a表达式后a的值为______。

25.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序运行时,如果从键盘输入:A,B,<CR>,则输出结果为______。

26.若按功能划分,软件测试的方法通常分为白盒测试方法和【】测试方法。

27.软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于【】阶段。

28.下面程序的功能是求整数m、n的最大公约数,请填空。

main()

{intm,n,r;

scanf("%d,%d",&m,&n);

if(【】){r=m;m=n;n=r;)

while(【】)

{r=m%n;m=n;n=r;}

printf("%d",m);

}

29.下列程序的输出结果是16.00,请填空:

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

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

#include<stdio.h>

#deftneJFT(x)x*x

main()

{inta,k=3;

a=++JFT(k+1);

printf("%d",a);

}

31.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。

32.对长度为8的线性表进行冒泡排序,最坏情况下需要比较的次数为()。

33.以下程序把从终端读入的20个整数以二进制方式写到一个名为d.dat的新文件中,请填空。

#include<stdio.h>

FILE*fp;

main()

{inti,j;

if((fp=fopen(【】,"wb"))==NULL)exit(0);

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

{scanf("%d",&j);fwrite(&j,sizeof(int),1,【】);}

fclose(fp);

}

34.若有定义inta=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

35.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。

36.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。

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

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

}

}

38.设有以下定义:

structss

{intinfo;structss*link;}x,y,z;

且已建立如下图所示链表结构,

请写出删除点y的赋值语句【】。

39.若a的值为1,则表达式!a‖++a的值是______。

40.以下程序可把输入的十进制数以十六进制数的形式输出,请填空。

#inelude<stdio.h>

main()

{eharb[17]={"0123456789ABCDEF"};

intc[64],d,i=0,base=16;

longn;

printf("Enteranumber:\n");

seanf("%ld",&n);

do{c[i]=【】;i++;n=n/base;}

while(n!=0);

printf("Transmitenewbase:\n");

for(--i;i>=0;--i)

{d=c[i];printf("%c",b【】);}

printf("\n");

}

三、1.选择题(20题)41.以下函数返回a所指数组中最小的值所在的下标值:fun(int*a,intn){inti,j=0,p;p=j;for(i=j;i<n;i++)If(a[i]<a[p])______,return(p);}在横线处应填入的是______。

A.i=pB.a[p]=a[i]C.p=jD.p=i

42.下面程序输出的结果是

main()

{inti;

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

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

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

A.159B.753C.357D.591

43.下面的关键字中,不能够从循环体中跳到循环体外的是______。

A.gotoB.breakC.returnD.continue

44.有以下程序:main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q,a,b);}程序运行后的输出结果是()。

A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

45.字符串"\\\"ABCDEn"\"\\"的长度是()。

A.strcpy(str2,str1)

B.strcpy(str3,str1)

C.strcpy(str4,str1)

D.strcpy(str5,str1)

46.当变量c的值不为2、4、6时,值也为“真”的表达式是

A.(c==2)||(c==4)||(c==6)

B.(c>=2&&c<=6)||(c!=3)||(c!=5)

C.(c>=2&&c<=6)&&!(c%2)

D.(c>=2&&c<=6)&&(c%2!=1)

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

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

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

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

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

48.有以下程序voidf(intv,intw){intt;t=v;v=w;w=t}main(){intx=1,y=3,z=2;if(x>y)f(x,y);elseif(y>z)f(y,z);elsef(x,z);pfintf("%d,%d,%d\n",x,y,2);}执行后输出结果是

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

49.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;则与上述程序段功能等价的赋值语句是()。

A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;

50.对于下列字符串,说明表达式strlen(s)值的是()。chars[10]={'a','\n','a','b','\t','c'};

A.10B.1C.6D.7

51.下面程序main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1:elseif(ok2)x=10;x=-1;printf("%d\n",x);}的输出是______。

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

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

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

53.若整型变量a、b、c、d中的值依次为1、4、3、2。则条件表达式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4

54.若有如下程序;#defineX3#defineYX+1#defineZY*Y/2main(){intn;for(n=1;n<=Z;n++)printf("%d",n);}则程序运行后的输出结果是()

A.12345B.1234567C.12345678D.123456

55.下列选项中,不能作为合法常最的是()。

A.1.2340000B.1.234.4C.1.2340000D.1.234

56.下列语句中,在字符串s1和s2相等时显示"theyareEqual"的是()。

A.if(*s1==*s2)

B.if(!strcmp(s1,s2))puts("theyareEqual");puts("theyareEqual");

C.if(s1==s2)

D.if(strcmp(s1,s2))Puts("theyareEqual");puts("theyareEqual");

57.有以下程序:structS{intn;inta[20];};voidf(int*a,intn){inti;for(i=0;i<n-1;i++)a[i]+=i;}mainf(){inti;structSs{10,{2,3,1,6,8,7,5,4,10,9}};if(s.a,s.n);for(i=0;i<s.n;i++)printf("%d",s.a[i]);}程序运行后的输出结果是()。

A.2,4,3,9,12,12,11,11,18,9

B.3,4,2,7,9,8,6,5,11,10

C.2,3,1,6,8,7,5,4,10,9

D.1,2,3,6,8,7,5,4,10,9

58.若x和y都是int型变量,x=100,y=200,且有程序片段:printf("%d",(x,y));上面程序片段的输出结果()

A.200B.100C.100200D.输出格式符不够,输出不确定的值

59.设有下列说明语句:strcutstr{intx;floaty;charz;}st;则下列的叙述中不正确的是()。

A.00001111B.11111101C.00000010D.11000000

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

A.125B.n/2C.nD.n+1

四、选择题(20题)61.以下能正确定义一维数组的选项是()。

A.inta[5]=(0,1,2,3,4,5);

B.chara[]={0,1,2,3,4,5);

C.chara={'A','B','C'};

D.inta[5]="0123";

62.算法分析最重要的目的是

A.找出数据结构的合理性B.找出算法中输入和输出之间的关系

C.分析算法的易懂性和可靠性D.分析算法的效率以求改进

63.有以下程序:

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

A.2B.0C.元素ch[5]的地址D.字符y的地址

64.

若有下列定义(设int类型变量占2个字节):

inti=8,j=9;

则下列语句:

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

输出的结果是()。

A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

65.

有以下程序段

intj;floaty;charname[50]:

scanf("%2d%f%s",&i,&.y,name):

当执行上述程序段,从键盘上输入555667777abc后,y的值为()。

A.55566.0B.566.0C.7777.0D.566777.0

66.数据库的故障恢复一般是由

A.数据流图完成的B.数据字典完成的C.DBA完成的D.PAD图完成

67.以下选项中,合法的一组c语言数值常量是()。

A.12.0Xtl234.5e0

B.028.5e-3-0xf

C.1774el.50abe

D.0x8A10,0003.e5

68.

若有下列定义和语句:

intu=011,v=0x11,w=11;

printf("%o,%x,%d\n",u,v,w);

则输出结果是()。

A.9,17,11B.9,11,11C.11,11,11D.11,17,11

69.

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

A.1,2,3,4,5,6,7,8,9,10,

B.1,2,3,4,10,12,14,16,9,10,

C.1,2,6,8,10,12,7,8,9,10,

D.1,2,6,8,10,12,14,16,9,10,

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

A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B.在C的函数中,最好使用全局变量

C.外部变量可以在函数之间传递数据

D.自动变量实质上是一个函数内部的局部变量

72.有以下程序:

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

A.AbcdefB.ABCDEFC.aBcDeFD.AbCdEf

73.有以下程序段:

当执行上述程序段,从键盘上输入555667777abc后,y的值为()。A.55566.0B.566.0C.7777.0D.566777.0

74.

75.在以下给出的表达式中,与while(E)中的(E)不等价的表达式是()。

76.n个顶点的连通图中边的条数至少为______。A.A.0B.1C.n-1D.n

77.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。

A.外模式B.内模式C.概念模式D.逻辑模式

78.下列关于Internet和Web的说法中,正确的是()。

A.Web就是Internet的别称

B.Web是基于Internet之上的一个应用服务

C.Internet是基于Web之上的一个信息系统

D.Internet与Web没有任何关系

79.

80.有以下程序main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;}while(i<7);printf("%d\n",s);}执行后输出结果是

A.16B.12C.28D.21

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

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

则排序后的数据为:-52111432

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

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

试题程序:

六、程序设计题(1题)82.假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参m给出了字符串的长度,形参h给出了字符串中前*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.CA选项描述正确,自动变量未被赋初值,为随机值;B选项描述正确,除在函数开始位置定义变量外,在复合语句内也可以定义变量;C选项描述错误,函数内的静态变量只在第1次调用时赋值,以后调用保留上次的值;D选项描述正确,形参属于局部变量,占用动态存储区,而static型变量占用静态存储区。故本题答案为C选项。

2.C

3.B执行“y--”直到值为0。退出循环。由于“y--”是后缀自减运算,先使用再自减,因此退出循环时,y的值为-1。故本题答案为B选项。

4.A考查简单的C程序。由题可知,程序中输入name的值为Lili,所以输出的必定是Lili,答案选择A。

5.D选项A中,int是关键字,不能作为用户标识符;选项B中,两个“#”错误;选项C中两个“#”错误,另外DEFINE大写也是错误的。故本题答案为D选项。

6.A“--k”是先自减再使用,所以第1次判断条件即while(4),条件为真输出k的值,k=4-3,结果为1;第2次判断条件即while(0),条件为假,结束循环,输出回车换行符。故本题答案为A选项。

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

8.CS为带参数的宏定义,运行“S(k+j)”为4*(k+j)*k+j+1=143。故本题答案为C选项。

9.A

10.B解析:内模式(InternalSchemA)又称物理模式(PhysicalSchemA),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径。数据库系统的数据具有高共享性和低冗余性,但不能完全避免数据冗余;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。

11.BA选项去掉花括号后,赋值正确;C选项和D选项应在定义时赋初值,因为数组名相当于常量,不能重新赋值。故本题答案为B选项。

12.C

13.D解析:程序第1次执行for循环时,i=0,两条if语句中的表达式都不成立,执行i++;s+=i;此时i为1,s为1第2次循环,两条if语句中的表达式也不成立,执行i++,s+=i,此时i为2,s为3;……;当i=3时,执行continue,结束本轮循环,不执行i++;继续执行下一轮循环,这样一来i值始终为3,继续continue,无终止条件,进入死循环。

14.A

15.B

16.D

17.B

18.B

19.A

20.B

21.getchargetchar解析:考查了字符可以作为整型变量来对待,参与操作。题中要求根据输入的字符调用函数YesNo来判断输入的字符是y(Y)还是n(N),字符的输入可用字符输入函数getchar。函数YesNo用来判断一个字符是y(Y)还是n(N),主要用了一个switch多分支结构来比较输入字符与字符\ue008'y',\ue009'Y'、,'n','N'是否相等来实现的。

22.数据存储数据存储

23.256

24.-24-24解析:本题考查赋值运算符a+=b等价于a=a+b;a-=a*a等价于a=a-a*a=4-4*4=-12;a+=a,即a=a+a=-24。

25.BB解析:因为c是字符类型变量,它只能接收一个字符,所以c=A,字符型变量在参与算术运算的时候是用其相应的ASCII码参与运算的,这样++c得到字母B的ASCII码,用putchar函数输出是输出其相应的字符,所以是B。

26.黑盒软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方法一般有两类:黑盒测试法和白盒测试法。在使用黑盒法设计测试实例时,测试人员将程序看成一个“黑盒”,即不关心程序内部是如何实现的,只是检查程序是否符合它的“功能说明”,所以使用黑盒法设计的测试用例完全是根据程序的功能说明来设计的。

27.开发开发解析:软件生命周期(SDLC,软件生存周期)是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,其中的编码和测试属于开发阶段。

28.m<n或n>mr或r!=0m<n或n>m\r\nr或r!=0解析:本题使用的是“辗转相除”法求两个数的最大公约数,即以两个数中较大的除以较小的,如果余数不为0,则将较小的数和余数做同样处理,直到被除断为止,此时较小的数就是两个数的最大公约数。本题第一空要求填写一个if语句的判断条件,如果满足此条件则交换m和n的值,再看后面while循环的循环体,使用m%n求余,则此if语句的作用应该是保证m是两个数中较大的那个,故第一空填m<n或n>m。接下来的while循环实现整个辗转相除的过程,其结束条件应该是余数r为0,所以while的循环条件应该填r或r!=0。

解析:本题,已知结果z=16.00,即16.0=a/2+b*x/y+1/2,分别把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因为a=9,a是整型,所以9/2的值在没有进行类型转换时,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。

30.99解析:宏替换的原则是按原样替换,本题中遇到形参x则以实参k+1替换,其他字符不变,所以JFT(k+1)经替换后为k+1,k+1,则a=++k+1*k+1。若k的值为3,则经过运算为a=4+1*4+1=9。

31.上溢上溢解析:入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当rear=m+1时置rear=1;然后将新元素插入队尾指针指向的位置。当循环队列非空(s=1)时且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。

32.2828解析:在最坏情况下,冒泡排序所需要的比较次数为n(n-1)/2;简单插入排序所需要的比较次数为n(n-1)/2;希尔排序所需要的比较次数为O(n1.5);堆排序所需要的比较次数为O(nlog2n)。

33."bi.dat"fp'bi.dat'\r\nfp解析:要向文件bi.dat中写数据,所以要打开文件bi.dat。fp是指向文件bi.dat的指针,是将数据写入fp指向的文件中去。

34.33解析:这里:b-5=4,a-=4之后a的值为6,并把它赋给c。此时b的值并未被改变。在第2个表达式中,也只有赋值表达式b=3改变了b的值。所以两行语句执行完毕,b的值应该为3。

35.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。

36.33解析:本题考查的是C语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中最后一个表达式的值。本题中,首先i被赋值为2,再自加1,最后i++的值计算为3。

37.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个的形式输出。

38.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:要删除结点y,只需让结点x的指针域指向y结点的指针域所指向的后续结点就可,因此把结点z的地址赋给x的指针域就可以了,即让结点x的指针域指向结点z。而结点z的地址保存在结点y的指针域中,因此只需把结点y的指针域赋值给结点x的指针域即可。

39.11解析:逻辑运算中,非1即0,非0即1,!a=0,++a为逻辑1,所以0和1相或结果为1。

40.n%base[d]n%base[d]解析:程序中的字符数组b存储了十六进制16个数字的字符,整型数组c用于存储转换的十六进制数的各位数值。将整数n转换成它的各位十六进制数值,需采用除以16取余的方法,即求n除以16的余,得到它的十六进制的末位数,接着将n除以16,在n不等于0的情况下循环,顺序求出n的十六进制的倒数第一、第二、第三位数等。程序中变量base已预置16,所以在第一处填n%base。当n的十六进制数的倒数第一、第二、第三位等依次存放于数组c中后,就从最高位至最低位,参照数组c[i]的内容d(以其内容为下标),取十六进制数字符表中的字符b[d)输出,所以在第二处填[d]。

41.D解析:该程序先判断a[i]<a[p],如果条件为真,则a[i]比当前设定的最小值小(p保留的当前最小元素的下标),那么将i赋给p,即将比较过的最小元素下标保留在p中,作为下面判断的标准。

42.B解析:本题用循环的方法考查对数组概念的掌握。首先,当i=0时,数组中的位置是a[2][0]=7,当然,如果用排除法,就不用考虑后面的循环,因为在4个选项中,第1个数为7的选项只有B)。本题执行第2次循环时,i的值为1,则pfintf函数中的数组指向为a[1][1]=5,依次循环,可求出答案。

43.B解析:在C语言中,可以用break语句和continue语句跳出本层循环和结束本次循环。goto语句可跳出多层循环,如果在函数的循环体内使用return语句,就会直接结束循环返回函数值。

44.C解析:程序中定义了两个变量a和b,并分别赋初值为7和8,定义了3个指针变量p、q、r,并让指针p指向变量a,让q指向变量b,然后通过一个中间指针变量r,使指针变量p和q互换,互换后p指向b,q指向a,因此最后输出的*p、*q的值为8、7、a、b的值没有改变仍为7、8。所以,4个选项中选项C符合题意。

45.C解析:strcpy(s1,s2)函数的功能是将字符串s2复制到字符串s1中(注意:要保证s1存储区能容纳下s2字符串)。

46.B解析:满足表达式(c>=2&&c<=6)的整型变量c的值是2,3,4,5,6。当变量c的值不为2,4,6时,其值只能为3或5,所以表达式c!=3和c!=5中至少有一个为真,即不论c为何值,选项B中的表达式都为“真”。

47.B解析:一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等,选项A和选项D正确。采用不同的存储结构,其数据处理的效率不同,因此,在进行数据处理时,选择合适的存储结构是很重要的,选项C正确,选项B错误,应为本题正确答案。

48.C解析:C语言规定else总是和离它最近的if语句配对。分析可以知道,函数f()作用是让形参v和形参w的值交换。在主函数中首先定义了三个变量x、y和z。然后再执行下面的if-else语句。由程序可以看出第一个else和第一个if搭配,第二个else和第二个if搭配。由于调用函数时是进行值传递的。即将实参x,y,z传给形参v和w,以后形参和实参再无联系,故通过if语句调用f()函数后,x、y和x的值并没有改变。故最后输出的x、y和z的值为1、3和2。

49.B解析:本题考核的知识点是for循环次数的计算.本程序中for循环的次数为c-1+1共循环了c次,而每循环一次s的值加1,所以s的值为s+c.而最开始s的值为a,故4个选项中选项B符合题意.

50.C解析:strlen(s)返回s字符串中字符的个数,若s是个数组,则返回数组元素的个数。

51.A解析:第一个判断值为真,过渡到下一个判断,第二个判断为真,过渡到第三个判断……,如此循环,在打印输出语句的前一行,程序给变量x赋了值,为-1,所以,无论前期如何变化,最后的x值依然为-1。

52.A

53.A解析:条件表达式的形式如下:表达式1?表达式2:表达式3,所以本题条件表达式a<b?a:c<d?c:d应该理解为a<b?a:(c<d?c:d),首先求出条件表达式c<d?c:d的值等于2,再求条件表达式a<b?a:2的值,由于a-1<b-4成立,所以上述条件表达式的值等于1。

54.D

55.B

56.B解析:字符串比较不能用两个等于号(=)来进行比较,应使用函数strcmp(s1,s2)来比较。函数strcmp(s1,s2)的功能:当字符串s1和s2相等时,返回值为0。因此,当表达式!strcmp(s1,s2)=1时,条件成立,执行后面的语句,输出theyareEqual。

57.A

58.A

59.C解析:本题主要考查按位异或运算,x=015(二进制00001101),017的二进制为000001111,两者异或结果为00000010。

60.CC。【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。

61.B数组1标从0开始,A选项中所赋值的个数超过了数组的长度;C选项中定义a为字符型变量,而不是数组,赋值错误;D选项中,整型数组不能赋字符串。

62.D算法分析是指对一个算法需要多少计算时间和存储空间做定量的分析

。在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。算法+数据结构=程序,求解一个给定的可计算或可解的问题,不同的人可以编写出不同的程序来解决同一个问题,这里存在两个问题:一是与计算方法密切相关的算法问题;二是程序设计的技术问题。而算法和程序之间又存在密切的关系。分析算法可以预测这一算法适合在什么样的环境中有效地运行,对解决同一问题的不同算法的有效性做出比较,更重要的是,分析算法可以找出算法的优点和不足,使优点得到保持,对不足进行改进,以获得效率更高的算法。

63.A语句pc=eh;使得指针变量指向字符数组ch的首地址,即指向字符‘u’,则pc+5指向的是字符向后移动5位,指向字符‘z’。所以输出的$pc+5的值即为‘Z’。因此A选项正确。

64.B解析:本题考查printf函数的格式。在printf函数中,如果格式说明符中有两个%说明,则将第1个%后面的字符原样输出,并不输出其对应的变量值。

65.B

\n变量J只接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到浮点型变量Y中。

\n

66.C数据库的故障恢复是数据库数据保护机制中的一种完整性控制。所有的系统都免不了会发生故障,其原因有可能是硬件失灵,有可能是软件系统崩溃,也

温馨提示

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

最新文档

评论

0/150

提交评论