17套.docx

上传人:b****8 文档编号:9093532 上传时间:2023-02-03 格式:DOCX 页数:32 大小:31.23KB
下载 相关 举报
17套.docx_第1页
第1页 / 共32页
17套.docx_第2页
第2页 / 共32页
17套.docx_第3页
第3页 / 共32页
17套.docx_第4页
第4页 / 共32页
17套.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

17套.docx

《17套.docx》由会员分享,可在线阅读,更多相关《17套.docx(32页珍藏版)》请在冰豆网上搜索。

17套.docx

17套

第一套

一、程序填空题

下列给定程序中,函数fun的功能是:

计算如下公式

s=3/(2*2)-5/(4*4)+7/(6*6)-...(-1)n-1(2*n+1)/(2*n)2直到|(2*n+1)/(2*n)<=10-3,并且把计算结果作为函数值返回。

例如,若形参e的值为le-3,则函数返回值为0.551690。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

#include

doublefun(doublee)

{inti,k;

doubles,t,x;

s=0;k=1;i=2;

/**********found********/

x=【1】/4;

/**********found********/

while(x【2】e)

{s=s+k*x;

k=k*(-1);

t=2*i;

/**********found********/

x=【3】/(t*t);

i++;

}

returns;

}

main()

{doublee=1e-3;

printf("\nTheresultis:

%f\n",fun(e));

}

/*答案

3.0;>;(t+1)

*/

二、程序改错题

下列给定程序中函数fun的功能是:

求出如下分数序列的前N项之和,和值通过函数值返回。

2/1,3/2,5/3,8/5,13/8,21/13,...

例如,若n=5,则应输出8.391667。

请改正程序中的错误,使其得出正确的结果。

注意:

不改动main函数,不得增行或删行,也不得更改程序的结构!

#include

#include

#include

/********found********/

voidfun(intn)

{

inta=2,b=1,c,k;

doubles=0.0;

for(k=1;k<=n;k++)

{

/********found********/

s=s+(Double)a/b;

c=a;a=a+b;b=c;

}

returns;

}

voidmain()

{

intn=5;

system("CLS");

printf("\nThevalueoffunctionis:

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

}

/*答案

void---double

Double--double

*/

三、程序设计题

请编写函数fun,其功能是:

找出2*M整型二维数组中最大元素的值,并将此值返回调用函数。

#defineM4

#include

intfun(inta[][M])

{

}

voidmain()

{

intarr[2][M]={5,8,3,45.76,-4,12,82};

printf("max=%d\n",fun(arr));

}

/*答案

intfun(inta[][M])

{inti,j,max=a[0][0];

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

for(j=0;i

if(max

max=a[i][j];

returnmax;

}

*/

第2套

一程序填空题

下列给定程序中,函数fun的功能是:

计算如下公式前n项的和,并作为函数值返回。

S=1×3/22+3×5/42+5×7/62+(2×n-1)×(2×n+1)/(2×n)2

例如,当形参n的值为10时,函数返回值为9.612558

请在下划线处填入正确的内容并将下面下划线删除,使程序得出正确的结果。

试题程序:

#include﹤stdio.h﹥

doublefun(intn)

﹛inti;doubles,t

/********found*********/

S=[1]

/*********found*******/

for﹙i=1;i<=[2];i++﹚

﹛t=2,o*i;

/********found*********/

S=s+﹙2.o*i-1﹚*﹙2.o*i+1﹚/[3];

returns;

voidmain()

﹛intn=-1;

while﹙n<0﹚

﹛printf﹙”pleaseinput﹙n>0﹚:

”﹚;

scanf﹙”%d”,&n﹚;﹜

printf﹙“\nTheresultis:

%f\n”,

fun(n);

二程序改错题

下列给定程序中,函数fun的功能是:

统计substr所指的字符串在str所指的字符串中出现的次数。

例如,若字符串为aaaslkaass,子字符串为as,则应输出2,,请改错

试题程序:

#include﹤stdio.h﹥

intfun﹙char*str,char*substr﹚

﹛inti,j,k,num=o;﹜

/********found*********/

for﹙i=0,str[i],i++﹚

for(j=i,k=o;substr[k]==str[j];k++,j++)

/********found*********/

If(substr[k+1]==‘\0’)

﹛num++;

break;

returnnum;

main()

﹛charstr[80],substr[80];

printf(“inputasubstring:

”);

gets(substr);

printf(“%d\n”,fun(str,substr)

三、程序设计题

编写函数fun,其功能是:

根据一下公式求

的值(要求精度0.0005即某项小于0.0005时停止跌代)

=1+

…+

程序运行后,若输入精度0.0005,则程序应输出为3.14…。

试题程序:

#include﹤stdio.h﹥

#include﹤conio.h﹥

#include﹤math.h﹥

doublefun(doubleeps)

Voidmain()

doublex;

printf(“inputeps:

”)

scanf(“%if”,&x);

printf(“\neps=%if,pi=%if\n”,x,fun(x));

答案:

(1)0

(2)n(3)(t*t)

(1)for(i=0;str[i];i++)

(2)if(substr[k+1]==’\0’)

doublefun(doubleeps)

{

doubles=1,0,s1=1,0;

intn=1;

while(s1>=eps)/*当某项大于精度要求时,继续求下一项*/

{s1=s1*n/(2*n+1);/*求多项式的每一项*/

S=s+s1;/*求和*/

n++;

}

return2*s;

}

第三套

一、给定程序中,函数fun的功能是:

统计形参s所指的字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。

#include

Voidfun(char*s,int*t)

{inti,n;

N=o;

/******found************/

For(i=0;[1]!

=o;i++)

/*************found******/

If(s[i]>='0'&&s[i]<=[2])n++;

/**********found*********/

[3];

}

Main()

{chars[80]="abcdef35adgh3kjsdf7";

Intt;

Printf("\nTheoriginalstringis

:

&s\n",s);

Fun(s,&t);

Printf("\nTheresultis:

&d\n",t);

}

答案/*s[i];'9';*t=n*/

二、下列给定程序中函数fun的功能是:

实现两个变量值的交换,规定不允许增加语句和表达式。

#include

#include

#include

Intfun(int*t,inty)

{

Intt;

/*******found******/

T=x;x=y;

/**********found**********/

Return(y);

}

Voidmain()

{

Inta=3,b=8;

System("CLS");

Printf("%d%d\n",a,b);

B=fun(&a,b);

Printf("%d%d\n",a,b);

}

答案/*t=*x;*x=y;

(2)returnt*/

三、编写函数fun,其功能是:

求出1—1000能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。

#include

#include

#include

Voidfun(int*a;int*n)

{

}

Voidmain()

{

Intaa[1000],n,k;

System("CLS");

Fun(aa,&n);

For(k=o;k

If((k+1)%10==0)

{printf("%5d",aa[k]);

Printf("\n");/*一行写9个数*/

Else

Printf("%5d",aa[k]);

}

}

答案/*inti,j=0;

for(i=1;i<=1000;i++)

if((i%7==o||i%11==0)i%77!

=0)

a[j++]=i;

*n=j;*/

第四套

一、下列给定程序中,函数fun的功能是:

把形参a所指数组中的奇数按原顺序依次存放到a[0],a[1],a[2]...中,把偶数从数组中删除,奇数个数通过函数值返回。

#include

#defineN9'

Intfun(inta[],intn)

{inti,j;

j=0;

for(i=0;i

/********found******/

if(a[i]%2==[1])

{

/********found*******/

a[j]=a[i];[2];

}

/**********found***********/

Return[3];

}

main()

{intb[N]={9,1,4,2,3,6,5,8,7},i,n;

Printf("\nTheoriginaldata:

\n");

For(i=0;i

Printf("%4d",b[i]);

Printf("\n");

n=fun(b,N);

Printf("\nThenumberofodd:

%d\n",n);

Printf("\nTheoddnumber:

\n");

For(i=0;i

Printf("%4d",b[i]);

Printf("\n");

}

答案/*

(1)1

(2)j++(3)j*/

二、下列给定程序中函数fun的功能是:

求两个非零正整数的最大公约数,并作为函数值返回。

#include

Intfun(inta,intb)

{

Intr,t;

If(a

/**********found**********/

T=a;b=a;a=t;

}

R=a%b;

While(r!

=0)

{a=b;b=r;r=a%b;}

/**************found***********/

Return(a);

}

Voidmain()

{

Intnum1,num2,a;

Printf("Inputnum1num2:

");

Scanf("%d%d",&num1,&num2);

Printf("num1=%dnum2=%d\n\n",num1,num2);

A=fun(num1,num2);

Printf("Themaximuncommondivisoris%d\n\n",a);

}

答案/*

(1){t=a;a=b;b=t;}

(2)returnb*/

三、规定输入的字符串中只含字母和*号。

编写函数fun其功能是:

删除字符串中所有的*号。

编写函数时,不得使用c语言提供的字符串函数。

#include

#include

Voidfun(char*a)

{

}

Voidmain()

{

Chars[81];

Printf('Enterastring:

\n");

Gets(s);

Fun(s);

Printf("Thestringafterdeleted:

\n");

Puts(s);

}

答案/*inti,j=0;

for(i=0;a[i]!

='\0';i++)

if(a[i]!

='*')

a[j++]=a[i];

a[j]='\0';

第五套

一、下列给定程序中,函数fun的功能是:

将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。

#include

Unsignedlongfun(unsignedlongn)

{unsignedlongx=o;int=t;||||

While(n)

{t=n%10;

/**********found*********/

If(t%2==[1])

/***************found**********/

X=[2]+t;

/***********found***********/

N=[3];

}

Returnx;

}

Main()

{unsignedlongn=-1;

While(n>99999999||n<0)

{printf("Pleaseinput(0

"):

Scanf("%ld",&n);

Printf("\nTheresultis:

%ld\n",fun(n))};

}

答案

(1)0

(2)10*x(3)n/10

二、下列给定程序中,函数fun的功能是:

将长整型数中各位上位奇数的数依次取出,构成一个新数放在t中。

高位仍在高位,低位仍在低位。

#include

#include

#include

Voidfun(longa,long*t)

{Intd;

Longs1=1;

/*********found**********/

T=0;

While(s>0)

{D=s%10;

/************found***********/

If(d%2==0)

{*t=d*s1+t;

S1*=10;

}

S/=10;

}

}

Voidmain()

{

Longs,t;

System("CLS");

Printf("\nPleaseenters:

");

Scanf("%ld",&s);

Fun(s,&t);

Printf("Theresultis:

%ld\n",t);

}

答案/*

(1)*t=0

(2)if(d%2!

=0)

三、编写函数fun,其功能是:

实现两个字符串连接,即把p2所指的字符串连接到p1所指的字符串的后面。

#include

#include

#include

Voidfun(charp1[],charp2[])

{

}

Voidmain()

{

Chars1[80],s2[40];

System("CLS");

Printf("Enters1ands2:

\n");

Scanf("%s%S",s1,s2);

Printf("s1=%s\n",s1);

Printf("s2=%s\n",s2);

Printf("Invokefun(s1,s2):

\n");

Fun(s1,s2);

Printf("Afterinvoking:

\n");

Printf("%s\n",s);

}

答案/*inti,j;

for(i=0;p1[i]!

='\0';i++);

for(j=0;p2[j]!

='\0';j++);

p1[i++]=p2[j];

p1[i]='\0';

第六套

一、下列给定程序中,函数fun的功能是:

把形参a所指数组中最小值放在元素a[0]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],依此类推。

#include

#definedN9

Voidfun(inta[],intn)

{inti,j,max,min,px,pn,t;

For(i=0;i

{

/**********found*********/

Max=min=[1];

Px=pn=i;

For(j=i+1;j

{/***********found**********/

If(max<[2])

{max=a[j];px=j;}

/***********found*********/

If(min>[3])

{min=a[j];pn=j;}

}

If(pn!

=i)

{t=a[i];a[i]=min;a[pn]=t;

If(px==i)px=pn;

}

If(px!

=i+1)

{t=a[i+1];a[i+1]=max;

A[px]=t;}

}

Voidmain()

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

Printf("\nTheoriginaldata:

\n");

For(i=0;i

Printf("%4d",b[i]);

Printf("\n");

Fun(b,N)

Printf("\nThedataaftermoving:

\n");

For(i=0;i

Printf("%4d",b[i]);

Printf("\n");

}

答案

(1)a[i]

(2)a[j](3)a[j]

二、下列给定程序中函数fun的功能是:

用递归算法计算斐波拉契数列中第n项的值。

从第1项起,斐波拉契数列为:

1,1,2,3,5,8,13,21,……

#include

Longfun(intg)

{

/***********found*********/

Switch(g);

{case0:

return0;

/************found***********/

Case1;case2:

return1;}

Return(fun(g-1)=fun(g-2);}

Voidmain()

{longfib;intn;

Printf("Inputn:

");

Scanf("%d",&n);

Printf("n=%d\n",n);

Fib=fun(n);

Printf("fib=%d\n\n",fib);

}

答案

(1)去掉分号

(2)case1:

case2:

return1;

三、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:

求出该学生的平均分,并放入记录的ave成员中。

#include

#definedN8

Typedefstruct

{charnum[10];

Doubles[N];

Doubleave;

}

STREC;

Voidfun(STREC*a)

{

}

Voidmain()

{STRECa={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};

Inti;

Fun(&5);

Printf("The%sstudentdata:

\n",s.num);

For(i=0;i

Printf("%4.lf\n",s.s[i]);

Printf("\nave=%7.3f\n",s.ave);

}

答案inti;

a->ave=0.0;

for(i=o;i

a->ave=a->s[i];

a->ave=a-.ave/N;

第七套

一程序填空题

下列给定程序中,函数fun的功能是进行数字字符转换。

若形参ch中是数字字符‘0’—‘9’,则将‘0’转换成‘9’,‘1’转换成‘8’,‘2’转换成‘7’,、、、、,‘9’转换成‘0’;若是其他字符则保持不变;并将转换后的结果作为函数值返回。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果、

试题程序:

#include﹤stdio.h﹥

********found*********/

[1]fun(charch)

{

********found*********/

If(ch〉=‘0’&&[2])

********found*********/

return‘9’-(ch-/[3]);

returnch

}

main()

{charc1,c2;

printf(“\nTheresult:

\nn”);

c1=’2’;c2=fun(c1);

printf(“c1=%cc2=%c\n”,c1,c2);

c1=’8’;c2=fun(c1);

printf(“c1=%cc2=%c\n”,c1,c2);

c1=’a’;c2=fun(c1);

printf(“c1=%cc2=%c\n”,c1,c2);

}

二程序改错

下列给定程序中函数fun的功能是:

将p所指字符串中的所有字符复制到b中,要求每复制三个字符字符之后插入一个空格。

例如,若给a输入字符串:

“ABCDEFGHIJK”,调用函数后,字符数组b中的内容为:

“ABCDEFGHIJK”。

请改正错误

试题程序:

#include﹤stdio.h﹥

voidfun(char*p,char*b)

{inti,k=0;

while(*p)

{i=1;

while(i﹤=3&&*p){

/********found*********/

b

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1