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

下载本文档

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

文档简介

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

一、单选题(20题)1.以下关于结构化程序设计的叙述中正确的是()。

A.结构化程序使用goto语句会很便捷

B.在c语言中,程序的模块化是利用函数实现的

C.一个结构化程序必须同时由顺序、分支、循环三种结构组成

D.由三种基本结构构成的程序只能解决小规模的问题

2.采用折半查找法查找长度为n的线性表时,每个元素的平均查找长度为()。

A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)

3.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

程序的运行结果是()。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

4.下面哪个序列不是此图的一个拓扑排序()A.ebfgadchB.aebdgfchC.adchebfgD.Aedbfgch

5.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

当运行程序时,输入asdafaaz67<回车>,则输出是A.A.asdafaaz67

B.asdafaaz67

C.asd

D.z67

6.有以下程序:main{inta=0,b=0;a=10;/*给a赋值b=20;给b赋值*/printf(“a+b=%d\n”,a+b);/*输出计算机结果*/}程序运行后的输出结果是()。A.a+b=10B.a+b=30C.30D.出错

7.

8.在浏览WWW时,如果连接到一个安全的站点,应当以()开头来书写统一资源定位器。

A.shttp://B.http:s//C.http://D.https//

9.if语句基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是()。

A.必须是逻辑值B.必须是整数值C.必须是正数D.可以是任意合法的数值

10.

11.以下程序的输出结果是()。main(){inta[3][3]={{1,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

12.

13.

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

main

{inta,b,d=25;

a=d/10%9;

b=a&&(一1);

printf("%d,%d\n",a,b);}

A.6,1B.2,1C.6,0D.2,0

14.

15.

16.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。

A.访问第i个结点(1<=i<=n)和求第i个结点的直接前驱(2<=i<=n)

B.在第i个结点之后插入一个新结点(1<=i<=n)

C.删除第i个结点(1<=i<=n)

D.将n个结点从小到大排序

17.以下叙述中错误的是()。

A.使用三种基本结构构成的程序只能解决简单问题

B.结构化程序由顺序、分支、循环三种基本结构组成

C.C语言是-种结构化程序设计语言

D.结构化程序设计提倡模块化的设计方法

18.冒泡排序在最坏情况下的比较次数是()。

A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2

19.第

2

现有如下程序段

#include"stdio.h"

main()

{intk[30]={12,324,45,6,768,98,21,34,453,456};

intcount=0,i=0;

while(k[i])

{if(k[i]%2==0‖k[i]%5==0)count++;

i++;}

printf("%d,%d\n",count,i);}

则程序段的输出结果为

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

20.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d",aa[i]);printf("\n");}执行后输出结果是

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

二、2.填空题(20题)21.有以下程序

intfa(intx){returnx*x;}

intfb(intx){retumx*x*x;}

intf(int(*fl)int(*12)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序运行后,输出结果是【】

22.下面程序把从终端读入的10个整数以二进制方式写入一个名为bi.dat的新文件中。

#include<stdio.h>

FILE*fp;

main()

{inti,j;

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

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

{scanf("%d",&j);

fwrite(&j,sizeof(int),1,【】;

}

fclose(fp);

}

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

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

p=a;

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

pfintf("%d\n",x);

}

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

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

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

27.设有以下定义

struetss

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

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

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

28.______是数据库应用的核心。

29.人员基本信息一般包括:身份证号、姓名、性别、年龄等。其中可以作为主关键字的是()。

30.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。

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

main()

{intm=011,n=11;

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

}

32.若有定义floatb[15],*p=b;,且数组b的首地址为200H,则p+13所指向的数组元素的地址为______。

33.数据流图的类型有【】和事务型。

34.数据库管理系统是位于用户与______之间的软件系统。

35.下列程序的输出结果是【】。

main()

{charb[]="Helloyou";

b[5]=0;

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

}

36.一个模块直接调用的其他模块的模块个数称为______。

37.请在以下程序第一行的下划线处填写适当内容,使程序能正常运行。

#include<stdio.h>

【】(double,double);

main()

{doublex,y;

scanf("%If%If",&x,&y);

printf("%If\n",max(x,y));

}

doublemax(doublea,doubleb)

{return(a>b?a:b);}

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

main()

{intx=0;

sub(&x,8,1);

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

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

39.阅读下面语句,则执行后的输出结果为【】。

#include"stdio.h"

main()

{chara,b;

for(a='0',b='9';a<b;a++,b--)

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

printf("\n");}

40.用以下程序把从键盘输入的字符存放到一个文件中,用字符#作为结束符,请按题意要求填空完善程序。

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenameoffile\n");

gets(fname);

if(fp=fopen(【】))==NULL)

{printf("can'topen\n");

【】;

}

while((ch=getchar())!='#')

fputc(【】);

fclose(fp);

}

三、1.选择题(20题)41.在计算面中,算法是指______。

A.查询方法B.加工方祛C.解题方案的准确而完整的描述D.排序方法

42.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。

A.地址传递B.单向值传递C.由实参传递给形参,再由形参传递给实参D.传递方式由用户指定

43.请选出以下程序的输出结果

#include<stdio.h>

main()

{inta[]={1,2,3,4},i;

intx=0;

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

{sub(a,x);printf("%d",x);}

printf("\n");}

sub(s,y)

int*s,y;

{staticintt=3;

y=s[t];t--;}

A.1234B.4321C.0000D.4444

44.C语言结构体类型变量在程序执行期间,()。

A.所有成员一直驻留在内存中B.没有成员驻留在内存中C.部分成员驻留在内存中D.只有一个成员驻留在内存中

45.有以下程序:voidfun(char*a,char*b){a=b;(*a)++;}main(){charcl='A',c2='a',*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf("%c,%c\n",c1,c2);}程序运行后的输出结果是()。

A.AbB.aaC.AaD.Bb

46.有以下程序:#include<stdio.h>main(){printf("%d\n",NULL);}程序运行后的输出结果是()。

A.0B.1C.-1D.NULL没定义,出错

47.下列程序执行输出的结果是()。#include<stdio.h>f(inta){intb=0;staticc=3;a=c++;b++;return(a);}main(){inta=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}

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

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

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

49.以下程序的功能是:建立一个带布头结点的单向链表,并将存储在数组中的字符依次存储到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项

#include<stdlib.h>

structnode

{chardata;structnode*next;};

(48)CreatList(char*s),

{structnode*h,*p,*q;

h=(structnode*)malloc(sizeof(structnode));

p=q=h;

while(*s!="\0")

{p=(structnode*)malloc(sizeof(structnode));

p->data=(49);

q->next=p;

q=(50);

s++;

}

p->next="\0";

returnh;

}

main()

{charstr[]="linklist";

structnode*head;

head=CreatList(str);

}

(1)

A.char*B.structnodeC.structnode*D.char

50.若有如下程序:intm=1;main(){intt=0,s=0;{intm=4;s+=m;)t+=m;printf("%d,%d\n",s,t);}则程序运行后的输出结果是()。

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

51.有程序:main(){intx,i;for(i=1;i<50;i++){x=i;if(++%2==0)if(x%3==0)if(x%7==0)printf("%d",i);}}输出结果是()

A.28B.27C.42D.41

52.以下叙述中不正确的是

A.C语言中的文本文件以ASCII码形式存储数据

B.C语言中对二进制文件的访问速度比文本文件快

C.C语言中,随机读写方式不适用于文本文件

D.C语言中,顺序读写方式不适用于二进制文件

53.在下列选项中,不是一个算法一般应该具有的基本特征的是()。

A.确定性B.可行性C.无穷性D.拥有足够的情报

54.以下数组定义中不正确的是_______。

A.inta[2][3];

B.intb[][3]={0,1,2};

C.intc[100][100={0};

D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};

55.若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为()。

ch='b';

k=10;

printf("%x,%o,",ch,ch,k);

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

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

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

C.62,142,k=%d

D.62,142,k=%10

56.有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i--)a[i+1]=a[i];}main(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序运行后的输出结果是——。

A.10234B.12344C.12334D.12234

57.C语言可执行程序的开始执行点是()。

A.包含文件中的第一个函数B.程序中第一个函数C.程序中的main()函数D.程序中第一条语句

58.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是()。

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

59.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。#include<stdio,h>main()/*Beginning*/{intr;floats;scanf("%d",&r);s=*Π*r*r;printf("s=%f\n",s);程序在编译时出错,出错的原因是()。

A.注释语句书写位置错误

B.存放圆半径的变量r不应该定义为整型

C.输出语句中格式描述符非法

D.计算圆面积的赋值语句中使用了非法变量

60.在一棵二叉树上第8层的结点数最多是_______。

A.8B.16C.128D.256

四、选择题(20题)61.

62.

63.有以下程序段

#include"stdio.h"

main()

{intj,i,k=0;

for(j=50;j<=60;j++)

{if(!(k%10))printf("\n");

for(i=2;i<j;i++)if(!(j%i))

break;

if(i>=j-1)

{printf("%d",j);

k++;}

}

}

程序执行后输出的结果是

A.5359B.5953

C.3595D.9535

64.有以下程序:

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

A.3B.4C.lD.9

65.

66.下列排序方法中,最坏情况下比较次数最少的是()。

A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序

67.以下关于typedef的叙述错误的是()。

A.用typedef可以增加新类型

B.typedef只是将已存在的类型用一个新的名字来代替

C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D.用typedef为类型说明一个新名,通常可以增加程序的可读性

68.

69.表达式:的值是()。

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

70.

71.

设有以下定义和语句:

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

p=str:

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

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

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

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

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

72.

73.若程序中定义了以下函数doublemyadd(doublea,doubleb){return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A.doublemyadd(doublea,b);

B.doublemyadd(double,double);

C.doublemyadd(doubleb,doublea);

D.doublemyadd(doublex,doubley);

74.

75.

76.

77.程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为指针指向链表的第一个结点。

若有以下程序段:

该程序段实现的功能是()。

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

78.若文件指针fp已正确指向文件,ch为字符型变量,以下不能把字符输出到文件中的语句是()。

A.fget(f0,ch);

B.foutc(ch,fo);

C.fprinff(fp,”%c”,ch);

D.fwrite(&ch,sizeof(ch),1,fp);

79.有以下程序:

80.下列选项中,能够满足“若字符串sl等于字符串s2,则执行ST”要求的是()。

A.if(stremp(s2,s1)==0)ST;

B.if(s1==s2)ST;

C.if(strcpy(sl,s2)==l)ST;

D.if(sl,s2==O)ST;

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是计算正整数m

各位上数字的平方和。例如,输入498,则输出应该是161。请修改程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm){//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum);}voidmain{longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n));}

六、程序设计题(1题)82.规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的。号之外,将串中其他*号全部删除。在编写函数时.不得使用C语言提供的字符串函数.

参考答案

1.B滥用90t0语句将使程序的流程毫无规律,可读性差,对于初学者来说尽量不要使用,所以A错误。—个结构化程序可以包含顺序、分支、循环结构中的一种或多种,所以C错误。由三种基本结构构成的程序可以解决任何复杂的问题,所以D错误。

2.D

3.Cf函数的功能是对形参a的各个成员用结构体变量b的各个成员进行赋值后,然后返回变量a。

4.C

5.A在本题中,程序首先定义一个返回类型为整型的函数fun,该函数带有一个指针型的形参变量str,从主函数中对其调用时传递的参数我们可以知道,该指针指向的是一个数组,在该函数体中,首先定义两个整型变量,然后执行循环,循环变量i的初始值为0,循环结束的条件是str[i]!=’\\0’,表示取到的数组元素是字符串结束标识,即字符串中的字符被处理完,在循环体中,首先执行条件判断语句if(str[i]!=’’),如果结果为真,说明取到的当前字符不是空字符,这时执行str[j++]=str[i],即将非空格字符保存到数组中;如果为假,说明取到了空格字符,此时不保存,而接着执行下次循环跳过空格字符。循环结束后执行str[j]=’\\0’;,即保存字符结束标识符,用来标识字符串结束。通过上面的这些分析,我们可以知道函数fun的作用是去掉字符数组中的空格字符。

在主函数中,首先定义了一个大小为81的字符数组,然后调用函数clrscr()清除输入文本窗口,接着输出一条提示语句,执行gets(str);语句,该语句的作用是从键盘输入一个字符串到str数组,碰到换行符结束。然后调用函数fun,其实参为str。通过上面对函数fun作用的分析我们可以知道,调用函数后输入字符串中的空格符都被删除了,最后得到的字符串为asdafaaz67。

程序最后执行输出语句,输出字符数组str中的字符串,因此,程序最终的输出结果是asdafaaz67,本题答案选A。

6.AC语言规定,注释语句可以换行写,并且一个“/*”和其后紧跟的第一个“*/”中间的部分是注释内容,并且注释部分的内容不参与程序的执行,因此本题中没有执行“b=20”;这条语句。

7.A

8.C

9.D考查if循环语句。if(表达式),其中表达式是一个条件,条件中可以是任意的合法的数值。

10.A

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

12.C

13.B

\n当逻辑运算符“&&”两边的值是非零时,逻辑表达式的值为真(即为1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。

\n

14.C

15.A

16.A

17.A使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A错误。

18.C冒泡排序的基本思想是:将相邻的两个元素进行比较,如果反序,则交换;对于一个待排序的序列,经一趟排序后,最大值的元素移动到最后的位置,其他值较大的元素也向最终位置移动,此过程称为一趟冒泡。对于有n个数据的序列,共需n-1趟排序,第i趟对从l到n-i个数据进行比较、交换。冒泡排序的最坏情况是待排序序列逆序,第l趟比较n-1次,第2趟比较n-2次。依此类推,最后趟比较1次,一共进行n-l趟排序。因此,冒泡排序在最坏情况下的比较次数是(n-1)+(n-2)+…+l,结果为n(n-1)/2。本题的正确答案是选项C。

19.D

20.A解析:在C语言中所谓函数的递归是在指在调用一个函数的过程中,又出现了直接或间接地调用该函数本身,直接调用该函数本身的称为函数递归,而间接调用该函数称为函数的间接递归调用.由程序可以看出函数f(a,i,j)为一递归函数,其功能是i

21.44解析:在主函数中调用函数f,函数f有三个参数,形参n与C分别是两个指向函数的指针。在f中执行nf2(x),实际上是执行了fo(2)-fa(2),故执行i=(fa,fb,2)后i的值为2^3-2^2=4。

22."bi.dat"fp'bi.dat'\r\nfp解析:打开文件函数fopen的参数是文件名,因此有fopen('bi.dat');而写文件的参数是文件指针,因此有fwrite(&j,sizeof(int),1,fp);

23.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。

24.因为在条件表达式(a<b)?a:b中,比较表达式a<b为真,所以x的值等于a的值等于1,后面两个条件表达式中的比较表达式都为真,所以最终x的值等于1。\r\n\r\n

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

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

27.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的指针域即可。

28.数据库设计数据库设计

29.身份证号身份证号解析:主关键字是表中区别不同记录的标识,在该表中只有身份证号能具有这个作用,所以用其作为主关键字。

30.floatfloat解析:在此表达式中x是float类型的变量,经过开方所得到的结果仍是float类型,再和2.8进行运算时,应该先将2.8转换成float类型再运算,最后结果仍是float型。

31.10111011解析:前缀自增运算时,表达式的值和变量自增之后的值相同;后缀自增运算时,表达式的值为变量自增之前的值。所以,本题程序输出的两个结果分别是m+1和n的值。而m在初始化时使用的是八进制常量011,转换为十进制为9。故输出结果是1011。

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

33.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。

34.操作系统操作系统解析:数据库管理系统是帮助用户创建和管理数据库的应用程序的集合。因此,数据库管理系统需要操作系统的支持,为用户提供服务。

35.HelloHello解析:执行b[5]=0;是给数组的第6个元素赋值为0,即将Hello后的空格变为0。当输出字符串时遇到0终止输出。

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

37.doublemax或externdoublemaxdoublemax或externdoublemax解析:main函数中调用了一个max函数,而max函数是在调用之后定义的,所以要求填空的内容应该是对函数进行声明的语句。由max函数的定义可知此函数是double型的,因此空格处应该填doublemax或externdoublemax。

38.77解析:在主函数中定义了一个变量x并赋初值0,然后执行函数调用语句,该语句的执行过程为sub(&x,8,1)调用sub(&a,4,2),sub(&a,4,2)调用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括号里的判断为假,递归结束,执行其后的*a+=k;语句此时x=x+k=0+4=4,回推到上一层调用函数sub(&x,4,2)中,执行后面的语句,x=x+k=4+2=6,在回推到最上一层调用函数sub(&x,8,1)执行后面的语句,x=x+k=6+1=7,所以最后输出7。

39.918273645918273645解析:for是C语言的关键字,其后的一对圆括号中通常含有3个表达式,各个表达式之间用分号隔开,这3个表达式可以是任意形式的表达式,通常主要用于for循环控制。

40.fname"#"exit(0)chfp

41.C解析:计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特征:可行性、确定性、有穷性和拥有足够的情报。

42.B解析:C语言以定,实参变量对形参变量的数据传递是“单向值传递”,只由实参传绐形参。在内存中,实参单元与形参单元是不同的单元。调用结束后,实参单元仍保留并维持原值。

43.C解析:考查通过指针来引用一维数组元素的方法。若指针s指向数组a,则s[t]可以引用数组a中下标为t的元素。

44.A解析:C语言结构体类型变量在程序执行期间所有成员一直驻留在内存中。

45.A解析:经过分析得知fun()函数的功能:将形参a指向形参b所指的存储空间,然后使形参a指向变量的值加1。在主函数中定义了字符型指针变量p1和p2,并让它们分别指向c1和c2。将p1、p2作为实参传递给形参a、b。在fun()函数中,首先让指针变量p1指向p2,然后p1指向的存储空间的值加1,即让变量c2加1为b,而c1的值没有被改变,仍然是A。所以,4个选项中选项A符合题意。

46.A解析:在C语言中NULL的ASCII码值为0,而输出函数要求以整形格式输出,故最后的输出数为0。所以,4个选项中选项A符合愿意。

47.B解析:本题考查函数调用时的参数传递。在函数调用时,static变量在函数调用结束后所做的所有变化均保持(即上次调用结束时的值)。

在主函数中,第一次循环,i=0,调用k-f(a++)=f(2),调用完之后才将a加1,a变为3,在f(2)中,先将c=3赋值给a返回,然后将c加1,得到k=a=3,c=4。

第二次循环,i=1,调用k=f(a++)=f(3),调用完之后才将a加1,a变为4,在f(3)中,先将c=4赋值给a返回,然后将c加1,得到k=a=4,c=5。

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

49.C

50.C解析:{intm=4;s+=m;}是复合语句,m=4,s+=m等价于s=s+m=0+4=4。t+=m等价于t=t+m,这里m为全局变量,值为1,t=t+m=O+1=1。

51.D

52.D解析:在C语言中文本文件是以ASCII码形式存放的,每个字符占一个字节。由于数据在计算机中是以二进制形式存放的,因此二进制文件中的数据可以直接读出,而不需要像文本文件那样把ASCII码转换成二进制,因此速度较快。在文本文件叶,,数据以ASCII码形式存放,用户很难判定一个数据到底占几个字节,所以不适合使用随机读写方式。数据以二进制形式存放,占有的字节数是固定的,所以可以进行随机读写,当然也可以顺序读写。故D选项为所选。

53.C解析:作为一个算法,一般应具有的基本特征有:可行性、确定性、有穷性、拥有足够的情报。

54.D解析:一维数组的定义方式为:

类型说明符数组名[常量表达式];

选项A符合此定义形式,正确;C语言中多维数组赋初值时可以部分赋值,也可以不指定除第一维以外的其他维的大小,故选项C正确;另外,如果对全部数组元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省,所以选项B正确,而选项D是错误的。

55.C解析:第1个printf函数,格式说明的个数是2,而输出项的个数是3,所以对于多余的输出项k不予输出;第2个printf函数,有两个%说明,第1个%后面的字符要原样输出。

56.C解析:由于用了宏定义a[10]~a[19]均为0。函数fun的功能是把从a[n]到a[m]中的元素依次赋给后面的一个元素。调用了fun(a,2,9)以后,a[N]={1,2,3,3,4,5,6,7,8,9,10}。

57.C解析:每个C程序有且只有一个主函数main(),且程序必须从main函数开始执行,并在main()函数中结束。

58.AC语言规定case后面跟的必须是整型常量表达式。进入case后,如果没有遇到break语句就会一直往下执行,后面其他case或default分支的语句也会被执行到,直到遇到break,或者执行到整个switch语句块的末尾。题目中给出了三个case语句:case0、case1、case2。当x为1时,从case1语句开始执行,因为没有break语句,将一直执行到函数末尾结束,即执行case1、case2两条语句。执行完case1时,a=1,b=0;执行完case2时,a=2,b=1。

59.D解析:本题中表达式*Π*r*r非法,且未对变量Π做任何定义,所以编译时会出现非法字符的错误信息。

60.C解析:根据二叉树的性质1:二叉树第k(k>1)层上,最多有2k-1个结点。于是第8层的结点数最多是27=128。

61.D

62.B

63.A在本题中,程序首先定义了三个整型变量,并将变量k赋值为0,然后开始循环,循环开始时变量j的值为50,结束时变量j的值为60,每循环一次,变量j自加1,即循环10次。

当j=50,k=0时,“!(k%10)”为真,输出换行,即循环开始时,输出从新的一行开始,执行第二重循环,此时的i=2,“!(j%i)”为真,运行break语句,即跳出本层循环(从这里我们可以看出,j如果可以被i整除,则跳出本层循环),然后判断i是否不小于j-1,如果是,则输出此时j的值,否则k自加1。

从程序执行的过程来看,这个题目确实非常复杂,循环的次数太多,但经过对上面一次循环过程的分析,我们可以发现,其实这个程序的作用是找出50~60之间除1和本身外,不能被其他小于本身的数据整除的数,并从小到大输出这样的数。这样就能很容易地得到答案是5359。因此本题的正确答案是A。

64.B每次内循环只循环一次就结束,第一次外循环时t=t+b[0][b[0][0]]=1+b][0]=1+0=第二次外循环时t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循环时t=t+b[2][b[2][2]]=2+b[2][2]=2+2=4。

65.D

66.D冒泡排序、简单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是nlog2n。故答案为D选项。

67.Atypedef并不是增加了新类型,面是用一个新名字替代已存在的类型,不能为变量说明一个新名,使用typedef可以增强程序的可移植性。所以A选项错误:

68.B

69.Aint)((double)9/2)值为4,9%2值为l,相减值为3。

70.C

71.A

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

\n

72.B

73.A解析:本题考核的知识点是函数声明的应用。函数声明是对所用到的函数的特征进行必要的声明,编译系统以函数声明中给出的信息为依据,对调用表达式进行检测,以保证调用表达式与函数之间的参数正确传递。函数声明的一般格式为:

类型标识符函数名(类型标识符形参…);

这些信息就是函数定义中的第一行的内容。这里形参的名字是不重要的,重要的是类型标识符,函数声明中也可以不写形参名只写该形参的声明类型,但不能只写形参名而不写该形参的类型。本题中,选项A中doublemyadd(doublea,b),没写出形参b的类型,故选项A不正确。所以,4个选项中选项A符合题意。

74.B

75.B

76.B

77.D本题考查链表的操作,本题中首先是s指向了它的下个结点,题目中说明了s总是指向链表的第一个结点,然后while循环找到链表的最后一个元素,然后最后一个元素指向了之前链表的头结点,之前头结点指向了空结点,所以本题实现的功能是使首结点成为尾结点。选项D正确。

78.A函数fgete()从文件读入一个字符到指定变量。函数fputc()将指定字符写入审文件中,函数fprinff(),fwrite()均是写入文件操作函数。因此选项B,c。D错误。答案为A选项。

79.A#include<stdio.h>

intmain()

所以输出为*#*#*#$和一个换行符*/,因此正确答案为A。

80.Astrcmp(char*,char*),函数strcmp用于比较两个字符串的长度,长者为大,若字符个数也一样,则从左至右依次比较相同位上的字符,字符大小按ASCIl表值计算,直到最后一个字符,若还相同,则两个字符串相等,返回值0。选项A中if(strcmp(s2,sl)==0)ST,若s2等于sl,则返回值0,0等于0,所以逻辑表达式strcmp(s2,sl)==0为真,执行ST。

81.\n\t(1)错误:longsum=1;

\n正确:longsum=0;

\n(2)错误:while(m)

\n正确:while(m);

\n【解析】由函数proc可知,变量sum中存放正整数m的各位上数字的平方和,其初始化为0。因此,“longsum=1;”应改为“longsum=0;”。按照C语言的语法规则,语句都以分号结束,应在do-while语句最后加上分号。因此,“while(m)”应改为“while(m);”。\n

82.

程序设计题解析:

【考点分析】

本题考查:指针型变最定义;wh丑e循环语句;语句条件

表达式;字符串结束标识‘\0’。

【解题思路】

函数fun的功能:除了字符串前导的*号之外,将串中其他+号全部删除。

【解答本题】

(1)定义一个临时指针P,初始指向原串首地址;(2)利用循环语句把字符串前导*号拷贝到原串;(3)继续移动指针,把串中和串尾的非*号字符拷贝到原串;(4)为修改后的字符串赋结束字符‘、O’。

【解题宝典】

要删除字符串中的指定字符,我们通常采用保留非指定字符的方法。可以将非指定字符保留在原串,即将需要保留的字符从原串的起始位置重新赋值;也可以保留到新串,即新建一个字符串,存放要保留的字符。2021-2022年河北省石家庄市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下关于结构化程序设计的叙述中正确的是()。

A.结构化程序使用goto语句会很便捷

B.在c语言中,程序的模块化是利用函数实现的

C.一个结构化程序必须同时由顺序、分支、循环三种结构组成

D.由三种基本结构构成的程序只能解决小规模的问题

2.采用折半查找法查找长度为n的线性表时,每个元素的平均查找长度为()。

A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)

3.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

程序的运行结果是()。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

4.下面哪个序列不是此图的一个拓扑排序()A.ebfgadchB.aebdgfchC.adchebfgD.Aedbfgch

5.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

当运行程序时,输入asdafaaz67<回车>,则输出是A.A.asdafaaz67

B.asdafaaz67

C.asd

D.z67

6.有以下程序:main{inta=0,b=0;a=10;/*给a赋值b=20;给b赋值*/printf(“a+b=%d\n”,a+b);/*输出计算机结果*/}程序运行后的输出结果是()。A.a+b=10B.a+b=30C.30D.出错

7.

8.在浏览WWW时,如果连接到一个安全的站点,应当以()开头来书写统一资源定位器。

A.shttp://B.http:s//C.http://D.https//

9.if语句基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是()。

A.必须是逻辑值B.必须是整数值C.必须是正数D.可以是任意合法的数值

10.

11.以下程序的输出结果是()。main(){inta[3][3]={{1,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

12.

13.

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

main

{inta,b,d=25;

a=d/10%9;

b=a&&(一1);

printf("%d,%d\n",a,b);}

A.6,1B.2,1C.6,0D.2,0

14.

15.

16.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。

A.访问第i个结点(1<=i<=n)和求第i个结点的直接前驱(2<=i<=n)

B.在第i个结点之后插入一个新结点(1<=i<=n)

C.删除第i个结点(1<=i<=n)

D.将n个结点从小到大排序

17.以下叙述中错误的是()。

A.使用三种基本结构构成的程序只能解决简单问题

B.结构化程序由顺序、分支、循环三种基本结构组成

C.C语言是-种结构化程序设计语言

D.结构化程序设计提倡模块化的设计方法

18.冒泡排序在最坏情况下的比较次数是()。

A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2

19.第

2

现有如下程序段

#include"stdio.h"

main()

{intk[30]={12,324,45,6,768,98,21,34,453,456};

intcount=0,i=0;

while(k[i])

{if(k[i]%2==0‖k[i]%5==0)count++;

i++;}

printf("%d,%d\n",count,i);}

则程序段的输出结果为

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

20.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d",aa[i]);printf("\n");}执行后输出结果是

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

二、2.填空题(20题)21.有以下程序

intfa(intx){returnx*x;}

intfb(intx){retumx*x*x;}

intf(int(*fl)int(*12)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序运行后,输出结果是【】

22.下面程序把从终端读入的10个整数以二进制方式写入一个名为bi.dat的新文件中。

#include<stdio.h>

FILE*fp;

main()

{inti,j;

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

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

{scanf("%d",&j);

fwrite(&j,sizeof(int),1,【】;

}

fclose(fp);

}

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

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

p=a;

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

pfintf("%d\n",x);

}

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

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

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

27.设有以下定义

struetss

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

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

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

28.______是数据库应用的核心。

29.人员基本信息一般包括:身份证号、姓名、性别、年龄等。其中可以作为主关键字的是()。

30.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。

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

main()

{intm=011,n=11;

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

}

32.若有定义floatb[15],*p=b;,且数组b的首地址为200H,则p+13所指向的数组元素的地址为______。

33.数据流图的类型有【】和事务型。

34.数据库管理系统是位于用户与______之间的软件系统。

35.下列程序的输出结果是【】。

main()

{charb[]="Helloyou";

b[5]=0;

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

}

36.一个模块直接调用的其他模块的模块个数称为______。

37.请在以下程序第一行的下划线处填写适当内容,使程序能正常运行。

#include<stdio.h>

【】(double,double);

main()

{doublex,y;

scanf("%If%If",&x,&y);

printf("%If\n",max(x,y));

}

doublemax(doublea,doubleb)

{return(a>b?a:b);}

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

main()

{intx=0;

sub(&x,8,1);

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

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

39.阅读下面语句,则执行后的输出结果为【】。

#include"stdio.h"

main()

{chara,b;

for(a='0',b='9';a<b;a++,b--)

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

printf("\n");}

40.用以下程序把从键盘输入的字符存放到一个文件中,用字符#作为结束符,请按题意要求填空完善程序。

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenameoffile\n");

gets(fname);

if(fp=fopen(【】))==NULL)

{printf("can'topen\n");

【】;

}

while((ch=getchar())!='#')

fputc(【】);

fclose(fp);

}

三、1.选择题(20题)41.在计算面中,算法是指______。

A.查询方法B.加工方祛C.解题方案的准确而完整的描述D.排序方法

42.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。

A.地址传递B.单向值传递C.由实参传递给形参,再由形参传递给实参D.传递方式由用户指定

43.请选出以下程序的输出结果

#include<stdio.h>

main()

{inta[]={1,2,3,4},i;

intx=0;

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

{sub(a,x);printf("%d",x);}

printf("\n");}

sub(s,y)

int*s,y;

{staticintt=3;

y=s[t];t--;}

A.1234B.4321C.0000D.4444

44.C语言结构体类型变量在程序执行期间,()。

A.所有成员一直驻留在内存中B.没有成员驻留在内存中C.部分成员驻留在内存中D.只有一个成员驻留在内存中

45.有以下程序:voidfun(char*a,char*b){a=b;(*a)++;}main(){charcl='A',c2='a',*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf("%c,%c\n",c1,c2);}程序运行后的输出结果是()。

A.AbB.aaC.AaD.Bb

46.有以下程序:#include<stdio.h>main(){printf("%d\n",NULL);}程序运行后的输出结果是()。

A.0B.1C.-1D.NULL没定义,出错

47.下列程序执行输出的结果是()。#include<stdio.h>f(inta){intb=0;staticc=3;a=c++;b++;return(a);}main(){inta=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}

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

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

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

49.以下程序的功能是:建立一个带布头结点的单向链表,并将存储在数组中的字符依次存储到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项

#include<stdlib.h>

structnode

{chardata;structnode*next;};

(48)CreatList(char*s),

{structnode*h,*p,*q;

h=(structnode*)malloc(sizeof(structnode));

p=q=h;

while(*s!="\0")

{p=(structnode*)malloc(sizeof(structnode));

p->data=(49);

q->next=p;

q=(50);

s++;

}

p->next="\0";

returnh;

}

main()

{charstr[]="linklist";

structnode*head;

head=CreatList(str);

}

(1)

A.char*B.structnodeC.structnode*D.char

50.若有如下程序:intm=1;main(){intt=0,s=0;{intm=4;s+=m;)t+=m;printf("%d,%d\n",s,t);}则程序运行后的输出结果是()。

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

51.有程序:main(){intx,i;for(i=1;i<50;i++){x=i;if(++%2==0)if(x%3==0)if(x%7==0)printf("%d",i);}}输出结果是()

A.28B.27C.42D.41

52.以下叙述中不正确的是

A.C语言中的文本文件以ASCII码形式存储数据

B.C语言中对二进制文件的访问速度比文本文件快

C.C语言中,随机读写方式不适用于文本文件

D.C语言中,顺序读写方式不适用于二进制文件

53.在下列选项中,不是一个算法一般应该具有的基本特征的是()。

A.确定性B.可行性C.无穷性D.拥有足够的情报

54.以下数组定义中不正确的是_______。

A.inta[2][3];

B.intb[][3]={0,1,2};

C.intc[100][100={0};

D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};

55.若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为()。

ch='b';

k=10;

printf("%x,%o,",ch,ch,k);

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

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

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

C.62,142,k=%d

D.62,142,k=%10

56.有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i--)a[i+1]=a[i];}main(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序运行后的输出结果是——。

A.10234B.12344C.12334D.12234

57.C语言可执行程序的开始执行点是()。

A.包含文件中的第一个函数B.程序中第一个函数C.程序中的main()函数D.程序中第一条语句

58.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是()。

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

59.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。#include<stdio,h>main()/*Beginning*/{intr;floats;scanf("%d",&r);s=*Π*r*r;printf("s=%f\n",s);程序在编译时出错,出错的原因是()。

A.注释语句书写位置错误

B.存放圆半径的变量r不应该定义为整型

C.输出语句中格式描述符非法

D.计算圆面积的赋值语句中使用了非法变量

60.在一棵二叉树上第8层的结点数最多是_______。

A.8B.16C.128D.256

四、选择题(20题)61.

62.

63.有以下程序段

#include"stdio.h"

main()

{intj,i,k=0;

for(j=50;j<=60;j++)

{if(!(k%10))printf("\n");

for(i=2;i<j;i++)if(!(j%i))

break;

if(i>=j-1)

{printf("%d",j);

k++;}

}

}

程序执行后输出的结果是

A.5359B.5953

C.3595D.9535

64.有以下程序:

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

A.3B.4C.lD.9

65.

66.下列排序方法中,最坏情况下比较次数最少的是()。

A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序

67.以下关于typedef的叙述错误的是()。

A.用typedef可以增加新类型

B.typedef只是将已存在的类型用一个新的名字来代替

C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D.用typedef为类型说明一个新名,通常可以增加程序的可读性

68.

69.表达式:的值是()。

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

70.

71.

设有以下定义和语句:

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

p=str:

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

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

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

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

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

72.

73.若程序中定义了以下函数doublemyadd(doublea,doubleb){return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A.doublemyadd(doublea,b);

B.doublemyadd(do

温馨提示

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

评论

0/150

提交评论