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

付费下载

下载本文档

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

文档简介

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

一、单选题(12题)1.

2.下列不属于软件工程的3个要素的是______。

A.工具B.过程C.方法D.环境

3.两个或两个以上模块之间关联的紧密程度称为()。

A.耦合度B.内聚度C.复杂度D.数据传输特性

4.以下叙述中正确的是A.局部变量说明为static存储数,其生存期将得到延长

B.全局变量说明为static存储类,其作用域将被扩大

C.任何存储类的变量在未赋初值时,其值都是不确定的

D.形参可以使用的存储类说明符与局部变量完全相同

5.快速排序在_____情况下最易发挥其长处。

A.被排序数据中含有多个相同排序码

B.被排序数据已基本有序

C.被排序数据完全无序

D.被排序数据中最大值和最小值相差悬殊

6.

7.下面C程序段中count++语句执行的次数为()A.15B.16C.31D.32

8.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的运行结果为248,应在下划线处填入的是()。A.>>2B.|248C.&0248D.<<1

9.有以下程序:

执行后输出结果是()。

A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday

10.在长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n)时,需要从前向后依次前移____个元素。

A.n-iB.n-i+1C.n-i-1D.i

11.以下不构成无限循环的语句或语句组的是()。

A.n=0;do{++n;}while(n<=0);

B.n=0;while(1){n++;}

C.n=10;while(n);{n--;}

D.for(n=0,i=1;i++)n+=i;

12.有下列程序段:

intk=0,a=1,b=2,c=3;

k=a<b?b:a;k=k>C?C:k;

执行该程序段后,k的值是()。

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

二、2.填空题(12题)13.数据结构分为逻辑结构和存储结构,循环队列属于______结构。

14.若有以下程序:

main()

{int,p,a=5;

if(P=a!=0)

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

else

printf("%d\n",p+2);

}

执行后输出结果是【】。

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

#include<stdio.h>

fun()

{staticinta=O;

a+=3;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

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

#include<stdio.h>

main()

{intx=3,y=2,z=1;

if(x<y)

if(y<0)z+0;

elseZ+=1;

primf(“%d\n",z);

}

17.下列程序的功能是将2个数从小到大输出。

main()

{floata,b,【】;

scanf(【】,&a,&b);

if(a>b)

{t=a;

【】;

b=t;

}

printf("%5.2f,%5.2f\n",a,b);

}

18.设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。

19.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。

voidsstrcpy(char*s,char*t)

{while(*s++=______);}

main()

{charstr1[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

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

}

20.已有定义:charc=′′;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。

21.执行下面程序段后,k的值是【】。

r=1;n=203;k=1

do{k*=n%10*r;n/=10;r++;}while(n);

22.数据库系统的三级模式分别为【】模式、内部级模式与外部级模拭。

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

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

printf("%d,%d",x,y);

}

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

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

三、3.程序设计题(10题)25.请编写函数fun(),它的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0到p(含p,p<n-1)的数组元素平移到数组的最后。例如:一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10;p的值为3。移动后,一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include<stdiO.h>

#defineN80

voidfun(int*w,intp,intn)

{

}

main()

{in[a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

inti,p,n=15;

printf("Theodginaldata:\n");

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

printf("\nEnterp:");

scanf("%d",&p);

fun(a,p,n);

printf("\nThedataaftermoving:\n");

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

}

26.已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun(),该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。己给出函数的首部,请完成该函数。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<stdio.h>

#include<string.h>

#include<aonio.h>

#defineN10

typedefstructss

{charnum[10];

ihts;

}STU;

fun(STUail,STU*s)

{

}

main()

{

STUa[N]={{"A01",81},{"A02",89},

{"A03",66},{"A04",87},{"A05",77},

{"A06",90},{"A07",79},{"A08",61},

{"A09",80),{"Al0",71}},m;

inti;

clrscr0;

printf("*****Theoriginaldata*****");

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

printf("No=%sMark=%d\n",ail].num,

a[i].s);

fun(a,&m);

printf("*****THERESULT*****\n");

printf("Thelowest:%s,%d\n",m.num,

m.s);

}

27.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。

例如,输入beijingshah曲aj(为回车键),函数将返回shanghai。

注意:部分源程序存在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

28.请编写函数fun(),该函数的功能是:移动字符串中的内容,移动的规则是把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

例如,字符串中原有的内容为ABCDEFGHIJK,m的值为3,移动后,字符串中的内容应该是DEFGHIJKABC。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<stdio.h>

#include<string.h>

#defineN80

voidfun(char*w,intm)

{

}

main()

{

chara[N]="ABCDEFGHIJK";

intm;

printf("Theoriginastring:\n");

puts(a);

printf("\n\nEnterm:");

scanf("%d",&m);

fun(a,m);

printf("\nThestringaftermoving:\n");

puts(a);

printf("\n\n");

}

29.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是按分数的高低排列学生的记录,低分在前。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<stdio.h>

#defineN16

typedefstruct

{charmum[10);

ints;

}STREC;

intfun(STRECa[])

{

}

main()

{

STRECs[N]={{“GA005”,88},{“GA003”,64},

{“CA002”,77},{“GA004”,89},{“GA001”,54},

{“GA007”,72},{“GA008”,72},{“GA006”,65},

{“GA015”,83},{“GA013”,95},{“GA012”,55},

{“GA014”,68},{“GA01l”,78},{“GA017”,53},

{“GA018”,92},{“GA016”,82}};

inti;

FILE*out;

fun(s);

printf(“Thedataaftersorted:\n”);

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

{

if((i)%4==0)

/*每行输出4个学生记录*/

printf(“\n”);

printf(“%s%4d”,s[i].num,s[i].s);

}

printf(“\n”);

ut=fopen(“out21.dat”,“w”);

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

{

if((i)%4==0&&i)

fprintf(out,“\n”);

fPrintf(out,“%4d”,s[i].s);

}

fprintf(out,“\n”);

fClose(out);

}

30.请编写一个函数voidfun(cbara[],charb[],intn),其功能是:删除一个字符申中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。

例如,输入一个字符串world,然后输入3,则调用该函数后的结果为word。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<stdio.h>

#include<conio.h>

#defineLEN20

voidfun(chara[],charb[],intn)

{

}

main()

{

charstr1[LEN],str2[LEN];

intn;

clrscr();

printf("Enterthestring:\n");

gets(str1);

printf("Enterthepositionofthestring

deleted:");

scanf("%d",&n);

fun(str1,str2,n);

printf("Thenewstringis:%s\n",

str2);

}

31.编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。

注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

32.请编写函数fun(),它的功能是计算:s=(1-In(1)-In(2)-In(3)-…-1n(m))2

s作为函数值返回。

在C语言中可调用log(n)函数求In(n)。log函数的引用说明是doublelog(doublex)。

例如,若m的值为15,则fun()函数值为723.570801。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<conio.h>

#include<stdio.h>

#include<math.h>

doublefun(intm)

{

}

main()

{

clrscr();

printf("%f\n",fun(15));

}

33.学生的记录由学号和成绩组成,N名学生的数据已存放在主函数的结构体数组s中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。

[注意]部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的花括号中填入所编写的若干语句。

[试题源程序]

#include<stdio.h>

#defineN8

typedefstruct

{

charnum[10];

doubles;

}STREC;

doublefun(STREC*a,STREC*b,int*n)

{

}

voidmain()

{

STRECs[N]={{"GA05",85},

{"GA03",76},{"GA02",69},{"GA04",85},

{"GA01",91},{"GA07",72},{"GA08",64},

{"GA06",87}};

STRECh[N],t;FILE*out;

inti,j,n;

doubleave;

ave=fun(s,h,&n);

printf("The%dstudentdatawhichislowerthan%7.3f:\n",n,ave);

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

printf("%s%4.1f\n",h[i].num,h[i].s);

printf("\n");

ut=fopen("out.dat","W");

fprintf(out,"%d\n%7.3f\n",n,ave);

for(i=0;2<n-1;i++)

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

if(h[i].s>h[j].s)

{

t=h[i];

h[i]=h[j];

h[j]=t;

}

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

fprintf(out,"%4.1f\n",h[i].s);

fclose(out);

}

34.假定输入的字符串中只包含字母和*号。请编写函数fun(),它的功能是:删除字符串中所有的*号。在编写函数时,不得使用C语言中提供的字符串函数。

例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是ABCDEFG。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<conio,h>

#include<stdio,h>

voidfun(char*a)

{

}

main()

{

chars[81];

printf("Enterastring:\n");

gets(s);

fun(s);

printf("Thestringafterdeleted:\n");

puts(s);

}

四、单选题(0题)35.有以下程序:#include<stdio.h>main(){intx=1,y=2,z=3;if(x>y)if(y<z) printf(“%d”,++z);else printf(“%d”,++y);printf(“%d\n”,x++);}程序的运行结果是()。

A.1B.41C.2D.331

五、单选题(0题)36.若要求从键盘读入含有空格字符的字符串,应使用函数()。

A.getcharB.getcC.getsD.scanf

六、单选题(0题)37.在定义inta[3][2]以后,对a的引用正确的是()

A.a[0,0]B.a[3][0]C.a[2][2]D.a[0][0]

参考答案

1.C

2.D解析:本题考查了软件工程的基本概念。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理。

3.A解析:本题考核模块独立性的评价。评价模块独立性的主要标准有两个;一是模块之间的耦合,它表明两个模块之间互相独立的程度,也可以说是两个或两个以上模块之间关联的紧密程度(所以,本题的正确答案为选项A);二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。

4.A解析:全局变量说明为static存储类,其生命周期将得到延长,但作用域不能被扩大;static存储类变量在未赋初值时,是有默认值的,形参中的存储类说明符与局部变量完全相同。

5.C

6.B

7.A

8.D124的2进制值为1111100,要输出为248即124*2,则2进制值为11111000,即右移l位,所以选D。

9.CP指向字符串”tuesday”,因此*(P+1)的值为n。s[0]=”monday”。

10.A

11.AA选项中do后面的语句只执行了一次便结束了循环;B选项中条件while(1)永远成立,所以是死循环;C选项中n的值为10,而循环体为空语句,所以while(n)永远为真,进入死循环;D选项中for语句第2个表达式为空,所以没有判断条件,进入死循环。故本题答案为A选项。

12.B解析:因为a<b成立,所以条件表达式a<b?b:a的值等于b的值等于2,因此变量k的值等于2。又因为k=2>c=3不成立,所以条件表达式k>c?c:k的值等于k的值等于2。把条件表达式k>c?c:k的值赋给变量k,因而变量k的值等于2。因此,选项B)为正确答案。

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

14.11解析:首先计算if语句后面的表达式,根据运算符的优先级可知,先算“a!=0”,该值为1,再把1赋值给p,结果为1(真),执行其后的printf语句,输出的值为1。

15.3691236912解析:本题考查最基本的for循环:for(cc=1;cc<5;cc++)规定循环次数为4次,每次a+=3即每次a的值增3,但因为fun函数中变量a为static类型,所以每次调用完子函数之后,变量a所做的改变都要保存。

16.11解析:ifelse语句的功能:若表达式的值为真,执行语句1,并跳过其他语句,执行ifelse语句的下一条语句,若表达式的值为假,跳过语句1,执行语句2,依次往下判断。题中,x=3,y=2,第一个if语句的控制条件x<y就不满足,又没有与之配对的else语句,所以直接执行printf语句,在整个过程中变量z的值都没发生变化。

17.t"%f%f"a=b

18.350350解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的结点。因此,设一棵完全二叉树具有n个结点,若n为偶数,则在该二叉树中有n/2个叶子结点以及n/2-1个度为2的结点,还有1个是度为1的结点:若n为奇数,则在该二叉树中有[n/2]+1个叶子结点以及[n/2]个度为2的结点,没有度为1的结点。本题中,完全二叉树共有700个结点,700是偶数,所以,在该二叉树中有350个叶子结点以及349个度为2的结点,还有1个是度为1的结点。所以,本题的正确答案为350。

19.*t++或*(t++)*t++或*(t++)解析:主函数中定义了两个字符型数组st1l和str2,并且给str2赋初值“abcdefgh”,接着调用函数sstrcpy(str1,str2),将字符串str2的值赋给str1.在函数sstrcpy(*s,*t)中,用了一个while循环,每循环一次将形参指针t所指的字符赋给形参指针s所指向的存储空间,然后指针s和指针t都下移到下一个元素。所以空格处应该填*t++或*(t++)。

20.11解析:字符空格的ASCII码不为0,所以本题中表达式\ue008!c\ue009的值为0,b=0&&1的结果显然为0。

21.00解析:本题考查的是do厀hile循环。第一次执行循环体,因为k=1,r=1,n=20,所以k=1*20%10*1=0,n=20/10=2,r=2;第二次执行循环体,k=0*2%10*2=0,n=10/10=1,r=3;第三次执行循环体,k=0*1%10*3=0,n=1/10=0,r=4,所以k的值为0。

22.概念或概念级概念或概念级解析:数据库系统在其内部具有三级模式及二级映射,三级模式分别是概念级模式、内部级模式和外部级模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户(应用)公共数据视图。

内模式式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如磁盘及磁盘操作)。

外模式也称子模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出。

23.22132,2,1,3解析:本题考查++,--运算符和条件运算符的使用。

“表达式1?表达式2:表达式3”的功能是:表达式1的值若非0,则计算表达式2的值,且表达式2的值为最终结果;若表达式1的值为0,则计算表达式3的值,且为最终结果。

本题中,x=1,y=2时,x<y成立,输出y的值2;y=2,z=3时,z<y不成立,执行y++,输出2后y值增1,所以最后一个输出x的值不变为1,y的值为增加后的3。

24.246

25.voidfun(int*wintpintn){intiJ;inta[N];for(i=0;i<=p;i++)a[i]=w[i]for(i=p+1j=0;i<n;i++j++)w[j]=w[i];for(i=0;i<=p;i++)w[n-p-1+i]=a[i];}voidfun(int*w,intp,intn)\r\n{inti,J;\r\ninta[N];\r\nfor(i=0;i<=p;i++)a[i]=w[i]\r\nfor(i=p+1,j=0;i<n;i++,j++)w[j]=w[i];\r\nfor(i=0;i<=p;i++)w[n-p-1+i]=a[i];\r\n}解析:将数组后面的元素向前平移,肯定会将前面的元素覆盖。因此,可以定义一个数组用来暂时存放前面的元素。可以先将w[0]~w[p]依次赋给a[0]~a[p];然后将w[p]~w[n—1)

移到数组的前面:再将a[0]~a[p)依次赋给w[n-p-1+i]~w[n—1]。

26.fun(STUa[]STU*s){inti;*s=a[0];for(i=0;i<N;i++)/*先认为第1个值最小*/if(s->s>aIi].s)/*如果在循环的过程中再发现比第1个值更小的则赋给*s*/*s=a[i];}fun(STUa[],STU*s)\r\n{\r\ninti;\r\n*s=a[0];\r\nfor(i=0;i<N;i++)/*先认为第1个值最小*/\r\nif(s->s>aIi].s)/*如果在循环的过程中再发现比第1个值更小的则赋给*s*/\r\n*s=a[i];\r\n}解析:我们先认为第1个值最小,即*s=a[0]语句,如果在循环的过程中再发现比第1个值更小的随即赋给该*s就可以了。另外,还涉及到结构体中的指向运算符,请学习者注意。若要找出最高成绩则if()中的条件改成s->s<a[i].s即可。

27.

解析:该程序功能是比较两个字符串的长度。解题过程是首先分别求得两个字符串的长度,然后对这两个值进行判断,实现两个字符串长度的比较。

28.voidfun(char*wintm){intij;chart;for(i=1;i<=m;i++)/*进行m次的循环左移*/{t=w[0];for(j=1/w[j]!='\0';j++)/*从第2个字符开始以后的每个字符都依次前移一个字符*/w[j-1]=w[j];w[j-1]=t;/*将第1个字符放到最后一个字符中*/}}voidfun(char*w,intm)\r\n{\r\ninti,j;\r\nchart;\r\nfor(i=1;i<=m;i++)/*进行m次的循环左移*/\r\n{t=w[0];\r\nfor(j=1/w[j]!='\\0';j++)/*从第2个字符开始以后的每个字符都依次前移一个字符*/\r\nw[j-1]=w[j];\r\nw[j-1]=t;/*将第1个字符放到最后一个字符中*/\r\n}\r\n}解析:我们在学习C语言的时候,应该广泛地应用到循环的方法,本题应采用“循环左移”的算法。即从第2个字符开始以后的每个字符都依次前移一个字符,而原来的第1个字符放在串中的最后一个字符。当要平移m个字符时,则要进行m次的循环左移。内嵌的循环的作用是完成从第2个字符开始以后的每个字符都依次前移一个字符,w[j-1]=t的作用是将第1个字符放到最后一个字符中。

29.intfun(STRECa[]){intij;STRECt;for(i=l;i<N;i++)/*用冒泡法进行排序进行N-1次比较*/for(j=0;j<N-1;j++)/*在每—次比较中要进行N-1次两两比较*/if(a[j].s>a[j+1].s)/*按分数的高低排列学生的记录低分在前*/{t=a[j];a[j]=a[j+1];a[j+1]=t;}}intfun(STRECa[])\r\n{\r\ninti,j;\r\nSTRECt;\r\nfor(i=l;i<N;i++)/*用冒泡法进行排序,进行N-1次比较*/\r\nfor(j=0;j<N-1;j++)/*在每—次比较中要进行N-1次两两比较*/\r\nif(a[j].s>a[j+1].s)/*按分数的高低排列学生的记录,低分在前*/\r\n{\r\nt=a[j];\r\na[j]=a[j+1];\r\na[j+1]=t;\r\n}\r\n}解析:冒泡法算法思路:如果有N个数,则要进行N-1次比较,在每—次比较中要进行N-1次两两比较(这种算法较好理解但不是最精的)。所谓两两比较就是从头到尾依次将相邻两个数进行比较并将其中大的数放在前或在后(若要求从小到大排序,则大的数要放在后。反之则对调),即两两比较后这两个数要形成题中所要求的顺序。由于总是从头到尾进行比较,所以第1次比较结束后,最大(或最小)数肯定在最后,第2次比较结束后,次最大(或次最小)数肯定在倒数的第2个数,依次类推,所以进行第一次比较时必须比较到最后一个数,而进行第2次比较时只要比较到倒数的第2个数即可,所以进行第i次比较I时只需比较N-i次即可(这种算法较难理解,但它是最好的)。

30.voidfun{chara[]charb[]intn){intik=0;for(i=0;a[i]!=‘\0’;i++)if(i!=n)/*将不是指定下标的字符存入数组b中*/b[k++]=a[i];b[k]=‘\0’;/*在字符串最后加上结束标记*/}voidfun{chara[],charb[],intn)\r\n{\r\ninti,k=0;\r\nfor(i=0;a[i]!=‘\\0’;i++)\r\nif(i!=n)/*将不是指定下标的字符存入数组b中*/\r\nb[k++]=a[i];\r\nb[k]=‘\\0’;/*在字符串最后加上结束标记*/\r\n}解析:本题要求删除字符串中指定下标的字符,即相当于把不是指定下标的字符留下。所以要用if(i!=n),注意不能写成“=”运算。

31.

解析:该程序功能是求一定范围内的素数。素数是只能被1和自身除尽的数。判断i是不是素数最简单的方法就是用2~(i/2)去除i,只要能除尽就不是素数。

32.doublefun(intm){inti;doubles=1.0;for(i=1;i<=m;i++)s=s-log(i);/*计算s=l-In(1)-In(2)-In(3)-…-In(m)*/return(s*s);/*对s求平方并返回*/}doublefun(intm)\r\n{\r\n\u3000inti;\r\ndoubles=1.0;\r\nfor(i=1;i<=m;i++)\r\ns=s-log(i);/*计算s=l-In(1)-In(2)-In(3)-…-In(m)*/\r\nreturn(s*s);/*对s求平方并返回*/\r\n}解析:首先,题目要求计算1依次减去1到M的对数,可用从1到M的循环,每次循环都减一个数的对数。该题需要注意,log()函数的形式参数应浩如烟海double型变量,用于循环的基数变量为整数,需要进行强制转换。最后在返回的时求平方。

33

温馨提示

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

评论

0/150

提交评论