C语言操作题题C语言操作题题库_第1页
C语言操作题题C语言操作题题库_第2页
C语言操作题题C语言操作题题库_第3页
C语言操作题题C语言操作题题库_第4页
C语言操作题题C语言操作题题库_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

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

文档简介

第一套

填空题

给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,

作为函数值返I可,并把其吕长放在形参n所指的变量中。Ss所指字符串数组中共有M个字符

串,且串长<N。

注意:源程序存放在考生文件夹下的BLANK1.C中。

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

iiinclude<stdio.h>

Sinclude<string.h>

#defineM5

#defineN20

intfun(char(*ss)[N],int*n)

{inti,k=0,len=N;

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

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

(len=strlen(ss[i]);

if(i==0)*n=len;

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

if(len—2*n)

{*n=len;

k=i;

}

)

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

return(___3___);

)

mainO

{charss[M][N]={"shang上ai","guangzhou","bcijing","tianjing","chongqing"};

intn,k,i;

printf('\nTheoriginalstringsare:\n");

for(i=0;i<M;i++)puts(ss[i]);

k=fun(ss,&n);

printf("\nThelengthofshorteststringis:Nd\n',n);

printf(^XnTheshorteststringis:%s\n/,,ss[k]);

)

第1空参考答案:M

第2空参考答案:<

第3空参考答案:k

程序修改

给定程序MODI1.C中函数fun的功能是:将tt所指字符串中的小写字母都改成对应的大写

字母,其他字符不变。

例如,若输入“Ab,cD",则输出“AB,CD”

#include<stdio.h>

#include<string.h>

char*fun(chartt[])

{

inti;

for(i=0;tt[i];i++)

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

if(('a'<=tt[i])||(tt[i]<=,z,))

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

tt[i]+=32;

return(tt);

}

main()

{

chartt[81];

printf(^XnPleaseenterastring:");

gets(tt);

printf('\nThoresultstringis:\n%s”,fun(tt));

)

第1处参考答案:='z'))

第2处参考答案:tt[i]-=32;

程序设计题

请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数

的个数通过k传回。Prime函数是判断一个整数是否为素数,是返回1,否则返回0.

例如,若输入:17,则应输出:4,6,8,9,10,12,14,15,160

^include<stdio.h>

intprime(intm)

{intk=2;

while(k<=m&&(m%k))

k++;

if(m==k)

return1;

elseretui'n0;

)

voidfun(intm,int*k,intxx[])

{inti;

*k=0;

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

if(prime(i)—0){xx[(*k)++]=i;}

)

}

mainO

(

intm,n,zz[100];

voidNONO();

printf('\nPleaseenteranintegernumberbetween10and100:");

scanf(&n);

fun(n,&m,zz);

printf('\n\nThereare%dnon-primenumberslessthan%d:m,n);

for(n=0;n<rn;r.++)

printf('\n%4d”,zz[n]);

NONOO;

)

voidNONO()

{

/*请在此函数内打开文件,输入测试数据,调用fun函数,

输出数据,关闭文件。*/

intm,n,zz[100];

FILE*rf,*wf;

rf=fopenCC:\\k01\\24000101\\in.dat","r");

wf=fopen("C:\\k01\\24000101\\out.dat","w");

fscanf(rf,"%d",&r);

fun(n,&m,zz);

fprintf(wf,"为d\n$d\n”,m,n);

for(n=0;n<m;r++)

fprintf(wf,z,%d\r/»zz[n]);

fclose(rf);

fclose(wf);

)

第二套

填空题

给定程序中,函数fun的叱能是:将s所指字符串中所有数字字符移到所有非数字字符之后,

并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:

def35adh3kjsdf7.执行结果为:dofadhkjsdf3537.

Sinclude<stdio.h>

voidfun(char*s)

{inti,j=0,k=0;chartl[80],t2[80];

for(i=0;s[i]!='\0';i++)

if(s[i]>=0*&&s[ik='9')

{

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

t2[j]=s[i];—1—;

)

elsetl[k++]=s[i];

t2[j]=0;tl[k]=O;

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

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

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

for(i=0;i<_3—;i++)s[k+i]=t2[i];

)

main()

{chars[80]="def35ach3kjsd「7”;

printf("\nTheoriginalstringis:%s\n”,s);

fun(s);

printf(〃\nTheresultis:%s\n',s);

)

第1空参考答案:j++

第2空参考答案;s[i]=tl[i]

第3空参考答案:j

修改题

给定程序MODILC中函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。

#include<stdio.h>

#include<string.h>

SdefineMAXLINE20

fun(char*pstr[6])

{inti,j;

char*p;

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

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

for(j=i+1,j<6,j++)

(

if(strcmp(*(pstr+i),*(pstr+j))>0)

(

p=*(pstr+i);

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

*(pstr+i)=pstr+j;

*(pstr+j)=p;

)

)

)

)

main()

{inti;

char*pstr[6],str[6][MAXLINE];

for(i=0;i<6;i++)pstr[i]=str[i];

printf(^\nEnter6stringdstringateach1ine):\n");

for(i=0;i<6;i++)scanf(飞s”,pstr[i]);

fun(pstr);

printf("Thestringsaftersorting:\n");

for(i=0;i<6;i++)printf("%s\n”,pstr[i]);

)

第1处参考答案:for(j=i+l;j<6;j++)

第2处参考答案:*(pstr+i)=*(pstr+j);

编程题

请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。

例如:输入字符串:123412132,输入字符为:1,则输出:3

#include<stdio.h>

#include〈string.h>

#defineM81

intfun(char*ss,charc)

{intnum=0;

while(*ss++)(

if(*ss==c)num++;

}

returnnum++;

}

main()

{chara[M],ch;

voidNONO();

printf(,z\nPleaseenterastring:");gets(a);

printf(^XnPleaseenterachar:");ch=getcharO;

printf(,z\nThenumberofthecharis:%d\nw,fun(a,ch));

NONO();

)

voidNONO()

{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/

inti;

FILE*rf,*wf;

chara[M],b[M],ch;

rf=fopenCC:\\k01\\24000101\\in.dat","r");

wf=fopen("C:\\k01\\24000101\\out.dat","w");

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

fscanf(rf,飞s”,a);

fscanf(rf,"%s",b);

ch=*b;

fprintf(wf,/,%c=%d\n//,ch,fun(a,ch));

)

fclose(rf);

fclose(wf);

第三套

填空题

给定程序中,函数「un的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。

例如,形参s所指的字符串为:def35adh3kjsdf7.执行结果为:def3*5*adh3#kjsdf7*:,

^include<stdio.h>

voidfun(char*s)

{inti,j,n;

for(i=0;s[i]!='\0';i++)

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

if(s[i]>=0s—1—s[i]<=

{n=0;

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

while(s[i+l+n]!=___2___)n++;

for(j=i+n+l;j>i;j—)

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

s[j+l]=—3—;

i=i+l;

)

)

mainO

{chars[80]="ba3a54cd23a”;

printf(^\nTheorigiralstringis:%s\n〃,s);

fun(s);

printf(^XnTheresultis:%s\n”,s);

}

第1空参考答案:&&

第2空参考答案:0

第3空参考答案:s[j]

给定程序MDDI1.C中函数fun的功能是:根据整型形参口,计算如下公式的值。

Y=l+1/2*2+l/3*3+l/4*4+??????+l/m*mo例如:若m中的值为5,则输出:1.463611

#include<stdio.h>

doublefun(intm)

{doubley=1.0;

inti;

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

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

/**************found**字***********/

y+=1/(i*i);

return(y);

)

main()

{intn=5;

printf(“\nTheresultisfun(n));

)

第1处参考答案:for(i=2;i<=m;i++)

第2处参考答案:y+=l.d/i/i;

请编写函数fun,函数的我能是:实现B=A+A',即把矩阵A加上A的转置,存放在矩阵E中。

计算结果在main函数中输出。

例如,输入下面的矩阵:其转置矩阵为:程序输出:

1231472610

45625861014

789369101418

^include<stdio.h>

voidfun(inta[3][3],intb[3][3])

{inti,j;

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

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

b⑴[八⑴卬%⑶⑴;

)

main()/*主程序*/

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

inti,j;

voidNONO();

fun(a,t);

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

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

printfC%7d",t[i][j]);

printf("\n");

)

NONO();

)

voidNONO()

{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/

inti,j,k,a[3][3],t[3][3];

FILE*rf,*wf;

rf=fopen("C:\\k01\\24000101\\in.dat","r");

wf=fopen(/zC:\\k01\\24000101\\out.dat^,,zw,z);

for(k=0;k<5;k++){

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

fscanf(rf,"%d%d%d〃,&a[i][0],&a[i][l],&a[i][2]);

fun(a,t);

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

for(j=0;j<3;j++)fprintf(wf,"%7d”,t[i][j]);

fprintf(wf,"\n");

)

)

fclose(rf);

fclose(wf);

)

第四套

填空题

给定程序中,fun函数的功能足:统计形参s所指字符串中字符出现的次数,并存放在形参

t所指的变量中,最后在主函数中输Hd。例如,形参s所指的字符串为:abcdef35adgh3kjsdf7.

输出结果为:4.

Sinclude<stclio.h>

voidfun(char*s,int*t)

{inti,n;

n=0;

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

for(i=0;—1_!=0;i++)

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

if(s[i]>=,0*&&s[i]<=___2)n++;

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

―3—;

)

mainO

{chars[80]="abcdef35adgh3kjsdf7”;

intt;

printf(z,\nThcoriginalstringis:%s\n”,s);

fun(s,&t);

printf("\nTheresultis:%d\n',t);

)

第1空参考答案:s[i]

第2空参考答案:’9'

第3空参考答案:*t=n

修改题

给定程序MDDI1.C中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许

增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,

b中的值为8。

^include<stdio.h>

intfun(int*x,inty)

{

intt;

/**************f'ound**************/

t=x;x=y;

/**************f'ound**************/

return(y);

}

main()

(

inta=3,b=8;

printf(,,%d%d\nz,,a,b);

b=fun(&a,b);

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

)

第1处参考答案:t=*x;*x二y;

第2处参考答案:returrt;

编程题

请编写函数fun,函数的功能是:求出1到1000之间能被7或11整除、但不能同时被7和

11整除的所有整数井将它们放在a所指的数组中,通过n返回这些数的个数。

ttinclude<stdio.h>

voidfun(int*a,int*n)

{inti;

for(i=0;i<26;i++)pp[i]=0;

while(*tt)

(

pp[*tt->a,]++;

tt++;

}

)

main()

{intaa[l()00],n,k;

voidNONO();

fun(aa,&n);

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

if((k+1)%10==0)printfC\n");

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

N0N0();

}

voidNONO()

{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/

intaa[1000],n,k;

FILE*fp;

fp=fopen(,,C:\\k01\\24000101\\out.dat^,,zw,z);

fun(aa,&n);

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

if((k+1)%10==0)fprintf(fp,"\n");

elsefprintf(fp,aa[k]);

fclose(fp);

)

第五套

填空题

给定程序中,fun函数的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇

数位置.,最右边被移出字符串的字符绕回放到第一个奇数位置.,下标为偶数的字符不动〔注:

字符串的长度大于等于2)。例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedgh。

#include<stdio.h>

voidfun(char*s)

{inti,n,k;charc;

n=0;

for(i=0;s[i]!=>\0';i++)n++;

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

if(n%2==0)k=n-—1—;

elsek=n_2;

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

c=___2___;

for(i=k-2;i>=l;i=i-2)s[i+2]=s[i];

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

s[l]=—3—;

)

main()

{chars[80]="abcdcfgh";

printf("\nTheorigir.alstringis:%s\n',s);

fun(s);

printf("\nTheresultis:%s\n”,s);

}

第1空参考答案:1

第2空参考答案:s[k]

第3空参考答案:c

修改题

给定程序MODI1.C中函数fun的功能是:求s=aa???aa-???aaa-aa-a(此处aa???aa表示n个

a,a和n的值在1至9之间和例如:a=3,n=6,则以上表达式为:

S=333333-33333-3333-33S-33-3,其值为:296298。a和n是fun函数的形参,表达式的值

作为函数值传回main函数。

include<stdio.h>

longfun(inta,intn)

{intj;

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

longs=0,t=1;

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

t=t*10+a;

s=t;

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

t=t%10;

s=s-t;

)

return(s);

)

main()

{inta,n;

printf("\nPleaseenteraandn:");

scanf("为d%d”,&a,&n);

printf("Thevalueoffunctionis:%ld\n”,fun(a,n));

)

第1处参考答案:longs=0,t=0;

第2处参考答案:t=t/10;

编程题

请编写一个函数voidfun:char*tt,intpp口),统计tt所指字符串中‘a'到'z'26个

小写字母各自出现的次数,并依此存放在pp所指数组中。例如,当输入字符串:

abcdefgabcdeabc后,程序的输出结果应该是:33322110000000000000

000000

#include<stdio.h>

Sinclude<string.h>

voidfun(char*tt,intpp[])

{inti;

for(i=0;i<26;i++)pp[i]=0;

while(*tt)

pp[*tt-fa,]++;

tt++;

}

}

main()

{charaaflOOO];

intbb[26],k;

voidNONO();

printf("\nPleaseenteracharstring:");scanf('%s”,aa);

fun(aa,bb);

for(k=0;k<26;k++)printf(,z%d”,bb[k]);

printf("\n");

NONO();

)

voidNONO()

{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,美闭文件。*/

charaa[1000];

intbb[26],k,i;

FILE*rf,*wf;

rf=fopcn('C:\\k01\\24000101\\in.dat","r");

wf=fopen(〃C:\\k01\\.24000101\\out.dat","w〃);

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

fscanf(rf,“/s",ae);

fun(aa,bb);

for(k=0;k<26;k++)fprintf(wf,“/d”,bb[k]);

fprintf(wf,"\n");

)

fclose(rf);

fclose(wf);

)

第六套

1填空题

给定程序中,fun函数的功能是:把形参s所指字符串中下标为奇数的字符按ASCII码大小

递增排序,并将排序后下标为奇数的字符取出,存入形参P所指字符数组中,形成一个新串。

例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:

aachjIswo

#include<stdio.h>

voidfun(char*s,char*p)

{inti,j,n,x,t;

n=0;

for(i=0;s[i]!=\0*;i++)n++;

for(i=l;i<n-2;i=i+2){

/**********found******字***/

—1―;

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

for(j=-2—+2;j<n;j=j+2)

if(s[t]>s[j])t=j;

if(t!=i)

{x=s[i]:s[i]=s[t];s[t]=x;}

)

for(i=l,j=0;i<n;i=i+2,j++)p[j]=s[i];

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

p[j]=—3—;

)

main()

{chars[80]="baawrskjghzlicda”,p[50];

printf("\nTheoriginalstringis:%s\n',s);

fun(s,p);

printf(,z\nTheresultis:%s\n”,p);

)

第1空参考答案:t=i

第2空参考答案:i

第3空参考答案:0

修改题

给定程序MDDILC中函数fun的功能是:用下面的公式求口的近似值,直到最后•项的绝对

值小于指定的数(参数num)为止:

n/4^1-l/3+l/5-l/7+???

^include<math.h>

Sinclude<stdio.h>

floatfun(floatnum)

{ints;

floatn,t,pi;

t=l;pi=0;n=l;s=1;

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

while(t>=num)

pi=pi+t;

n=n+2;

s=-s;

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

t=s%n;

)

pi=pi*4;

returnpi;

)

main()

{floatnl,n2;

printf("Enterafloatnumber:");

scanf(黑f”,&nl);

n2=fun(nl);

printf(,,%6.4f\nw,r.2);

)

第1处参考答案:while((fabs(t))>=num)

第2处参考答案:t=s/n

编程题

请编写一个函数voidfun(chara[],charb[],intn),其功能是:删除一个字符串中指定下

标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存

放指定的下标。例如:输入一个字符串:World,然后输入3,则调用函数的结果为:Wcrdo

Sinclude<stdio.h>

■include<string.h>

#defineLEN20

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

{inti=0;

while(i<n){b[i]=a[i];i++;}

while(a[i+l]!=0){b[i]=a[i+l];i++;}

b[i]=\0';

)

main()

{charstrl[LEN],str2[LEN];

intn;

voidNONO();

printf("Enterthestring:\n^);

gets(strl);

printf(,/Entertheindexofthechardeleted:*);

scanf("%d",&n);

fun(strl,str2,n);

printf("Thenewstringis:%s\n”,str2);

NONO();

)

voidNONO()

{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/

charstrl[LEN],str2[LEN];

inti,n;

FILE*rf,*wf;

rf=fopen("C:\\k01\\24000101\\in.dat","r");

wf=fopen('C:\\k01\\24000101\\out.dat","w");

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

fscanf(rf,"%s%d”,strl,&n);

fun(strl,str2,n);

fprintf(wf,"%s\n”,str2);

)

fclose(rf);

fclose(wf);

)

第七套

填空题

给定程序中,fun函数的功能是:把形参s所指字符串中寻找与参数c相同的字符,并在其

后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。例如:s所指字符

串为:baacda,c中的字符为:a,执行后s所指字符串为;baaaacdaa。

#include<stdio.h>

voidfun(char*s,charc)

{inti,j,n;

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

for(i=0;s[i]!=—1—;i++)

if(s[i]==c)

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

n=—2一;

while(s[i+l+n]!=>\0?)n++;

for(j=i+n+l;j>i;j—)s[j+l]=s[j];

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

s[j+U=—3—;

i=i+l;

)

)

main()

{chars[80]="baacda”,c;

printf('\nThcstring:%s\n',s);

printfC'Xnlnputacharacter:");scanf("%c",&c);

fun(s,c);

printf(,z\nTheresultis:%s\n,z,s);

}

第1空参考答案:0

第2空参考答案:0

第3空参考答案:c

修改题

在主函数中从键盘输入若干个数放入数组中,用0结束输入并存放在最后一个元素中。给定

程序M0DI1.C中函数fun的功能是:计算数组元素中值为正数的平均值(不包括0).例如:

数组中元素值依次为:39,47,21,2,-8,15,0,则程序的运行结果为:19.250000

itinclude<stdio.h>

doublefun(intx[])

(

/************「ound************/

intsum=0.0;

intc=0,i=0;

while(x[i]!=0)

{if(x[i]>0){

sum+=x[i];c++;}

i++;

)

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

sum\=c;

returnsum;

}

main()

{intx[1000];inti=0;

printf("\nPleaseentersomedata(endwith0):);

do

{scanf(飞d",&x[i]);)

while(x[i++]!=0):

printffun(x));

}

第1处参考答案:doub1eSUIIFO.;

第2处参考答案:sum/=c;

设计题

编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参

传入。

S=l+l/(l+2)+1/(1+2+3)+???+1/(1+2+3+??+n)

#include<stdio.h>

doublefun(intn)

{inti;

doubleb=0,s=0,c=0;

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

b=b+i;

s=s+l.0/b;

)

returns;

}

main()

{intn;doubles;

voidNONO();

printf(^\nPleaseenterN:");scanf(,,%dz,,&n);

s=fun(n);

printf(^theresultis:s);

NONOO;

}

voidNONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/

FILE*fp,*wf;

inti,n;

doubles;

fp=fopen("C:\\k01\\24000101\\in.dat","r");

wf=fopcn(z/C:\\k01\\24000101\\out.datz/,/zw,z);

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

fscanf(fp,"%d",&r.);

s=fun(n);

fprintf(wf,"%f\n',s);

)

fclose(fp);

fclose(wf);

)

第八套

填空题

给定程序中,函数fun的功能是:有N*N矩阵,根据给定的m(m<=N)值,将每行元素中的值

均右移m个位置,左边置为0.例如:N=3,m=2,

有下列矩阵:执行结果为:

123001

456004

789007

#include<stdio.h>

^defineN4

voidfun(int(*t)[N],intm)

{inti,j;

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

for(i=0;i<N;―1―)

{for(j=N-l-m;j>=0;j—)

/**********found******字***/

t⑴[j+_2_]=t[i][j];

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

for(j=0;j<_3__;j++)

t[i][j]=0;

)

)

main()

{intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j,m;

printf("\nTheoriginalarray:\n",);

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

{for(j=0;j<N;j++)

printf(*%2d*,t[i][j]);

printf("\n");

)

printf(*Inputm(m<=%d):",N);$canf&m);

fun(t,m);

printf(,z\nThcresultis:\n");

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

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

printf(*%2d*,t[i][j]):

printf('\n");

}

)

第1空参考答案:i++

第2空参考答案:m

第3空参考答案:m

修改题

给定程序MDDI1.C中函数fun的功能是:计算并输出high以内最大的10个素数之和。High

的值由主函数传给fun函数。若high的值为:100,则函数的值为732。

#include<stdio.h>

^include<math.h>

intfun(inthigh)

{intsum=0,n=0,j,yes;

/************「ound************/

while((high>=2)&&(n<10)

{yes=1;

for(j=2;j<=high/2;j++)

if(high%j==0){

/************「ound************/

yes=0;break

)

if(yes){sum+=high;n++;}

high一;

)

returnsum;

)

main()

{

printf(*%d\n*,fun(100));

)

第1处参考答案:while((2〈二high)&&(n<10))

第2处参考答案:yes=0;break:

设计题

编写函数fun,功能是:利用一下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。

迭代步骤如下:

1,取xl初值为0.0;

2,X0=xl,把xl的值赋给x0;步骤3,4,5省略。

#include<math.h>

#include<stdio.h>

doublefun()

{floatxO,xl=0.0;

while(l)

{x0=xl;

xl=cos(x0);

if(fabs(x0-xl)<le-6)break;

)

returnxl;

)

mainO

{voidNONO();

printf(,zRootfun());

NONO();

)

voidNONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/

FILE*wf;

wf=fopcn(,zC:\\k01\\24000101\\out.datz/,,zw,z);

fprintf(wf,“与f\n〃,fun());

fclose(wf);

)

第九套

填空题

给定程序中,函数fun的功能是:有N*N矩阵中元素的值按列右移1个位置,右边被移除矩

阵的元素绕回左边。例如N:3,

有下列矩阵计算结果为

123312

456645

789978

#include<stdio.h>

^defineN4

voidfun(int(*t)[N])

{inti,j,x;

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

for(i=0;i<_1—;W)

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

x=t[i][___2___];

for(j=N-l;j>=l;j—)

t[i][j]=t[i][j-l];

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

t[i][-3—]=x;

)

)

mainO

{intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10),i,j;

printf(,zTheorigineilarray:\n");

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

{for(j=0;j<N;j+4)printfC%2d\t[i][j]);

printf("\n");

)

fun(t);

printf(,z\nThcresultis:\n");

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

(for(j=0;j<N;j++)printf2d*,t[i][j]);

printf("\n");

)

)

第1空参考答案:N

第2空参考答案:N-1

第3空参考答案:0

修改题

给定程序MDDI1.C中函数fun的功能是:计算并输出下列级数的前N项之和Sn,直到Sn+1大

于为止,q的值通过形参传入。

#include<stdio.h>

doublefun(doubleq)

{intn;doubles,t;

n=2;

s=2.0;

while(s<=q)

t=s;

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

s=s+(n+l)/n;

n++;

)

/,,,

printf(n=%d\n>n);

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

returns;

)

main()

,,,,

printf(%f\n,fun(50));

}

第1处参考答案:s=s+(n+l.)/n;

第2处参考答案:returnt;

设计题

编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。

其中Fibonacci数列F(n)的定义为:F(0)=0,F(l)=lF(n)=F(n-l)+F(n-2)

#include〈math.h>

^include<stdio.h>

intfun(intt)

{inta=l,b=l,c=0,i;

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

{if(c<t){c=a+b;a=b;b=c;}

elsebreak;

)

returnc;

)

main()/*主函数*/

{intn;

voidNONO();

n=1000;

printf(*n=%d,f=%d\n*»n,fun(n));

NONOO;

}

voidNONO()

{/*木函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/

FILE*fp,*wf;

inti,n,s;

fp=fopen(〃C:\\k01\\24000101\\in.dat","r");

wf=fopcn(z/C:\\k01\\24000101\\out.dat,z,/zw,z);

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

fscanf(fp,"%d",&r.);

s=fun(n);

fprintf(wf,"%d\n',s);

)

fclose(fp);

fclose(wf);

)

第十套

填空题

给定程序中,函数fun的功能是:有N*N矩阵,将矩阵的外围元素顺时针旋转。操作顺序是:

首先将第一行元素的值存入临时数组r,然后使第•列成为第•行,最后•行成为第•列,最

后一列成为最后一行,临时数组中的元素成为最后一列。

例如N=3,

有下列矩阵计算结果为

123741

456842

789963

itinclude<stdio.h>

^defineN4

voidfun(int(*t)[N])

{intj,r[N];

for(j=0;j<N;j++)r[j]=t[O][j];

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

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

t[0][N-j-l]=t[j][-1—];

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

t[j][O]=t[N-l][j];

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

for(j=N-l;j>=0;—2—)

t[N-l][N-l-j]=t[j][N-l]:

for(j=N-l;j>=0;j~)

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

t[j][N-l]=r[-3—];

)

main()

{intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10),i,j;

printf(^XnTheorigir.alarray:\n,/);

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

{for(j=0;j<N;j+4)printf(〃%2d",t[i][j]);

printf("\n");

)

fun(t);

printf(,z\nTheresultis:\n");

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

(for(J=0;j<N;j++)printf(飞2d”,

printfC\nO;

)

)

第1空参考答案:0

第2空参考答案:j一

第3空参考答案:j

修改题

给定程序MOD".C中函数fun的功能是:计算S=f(-n)+f(-n+l)+f(O)+f(l)???f(n)的值。例

如,当n为5时,函数值应为10.407143.函数定义如下:

^include<stdio.h>

#include<math.h>

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

f(doublex)

if(x==0.0||x==2.0)

return0.0;

elseif(x<0.0)

return(x-1)/(x-2);

else

return(x+1)/(x-2);

}

doublefun(intn)

{inti;doubles=0.0,y;

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

{y=f(1.0*i);s+=y;}

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

returns

)

main()

{

printf(*%f\n*,fun(5));

)

第1处参考答案:doublef(doublex)

第2处参考答案:returns;

设计题

编写函数fun,功能是计算:,s作为函数值返回。

#include<math.h>

#include<stdio.h>

doublefun(intm)

{inti=l;

doublesum=0.0;

for(;i<=20;i++){sum=sum+log(i);)

sum=sqrt(sum);

returnsum;

)

mainO

{

voidNONO();

printffun(20));

NONO();

}

voidNONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/

FILE*fp,*wf;

inti,n;

doubles;

fp=fopen('C:\\k01\\240()0101\\in.dat","r");

wf=fopen("C:\\k01\\24000101\\out.dat","w");

for(i=0;i<1();i++){

fscanf(fp,"机T,&r);

s=fun(n);

fprintf(wf,绵f\n”,s);

)

fclose(fp);

fclose(wf);

)

第_|■•一套

填空题

给定程序中,函数fun的功能是:有N*N矩阵,以主对角线为对称线,对称元素相加并将结

果存放在左下角的三角元素中,右上三角元素置为0.例如,若N=3,

有下列矩阵计算结果为

123100

456650

78910149

#include<stdio.h>

^de

温馨提示

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

评论

0/150

提交评论