版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一套
1給定程序中,函數(shù)fun的功能是根據(jù)形參i的值返回某個(gè)函數(shù)的
值。當(dāng)調(diào)用正確時(shí),程序輸出:
xl=5.000000,x2=3.000000,xl*xl+xl*x2=40.000000
ttinclude<stdio.h>
doublefl(doublex)
{returnx*x;}
doublef2(doublex,doubley)
{returnx*y;}
/**********found**********/
―1—fun(inti,doublex,doubley)
{if(i==l)
/**********found**********/
return_2_(x);
else
/**********found**********/
return_3_(x,y);
)
main()
{doublexl=5,x2=3,r;
r=fun(1,xl,x2);
r+=fun(2,xl,x2);
printf(,,,,\nxl=%f,x2=%f,xl*xl+xl*x2=%f\n\n"”,xl,x2,r);
答案:double
fl
f2
2改錯(cuò):比較兩個(gè)字符串,將長(zhǎng)的那個(gè)字符串的首地址作為函數(shù)值
返回。
ttinclude<stdio.h>
/**********found**********/
charfun(char*s,char*t)
{intsl=0.tl=0:char*ss,*tt:
ss=s;tt=t;
while(*ss)
{sl++;
/**********found**********/
(*ss)++;
)
while(*tt)
{tl++;
/**********found**********/
(*tt)++;
)
if(tl>sl)returnt;
elsereturns;
)
main()
{chara[80],b[80],*p,*q;inti;
printf("\nEnterastring:");gets(a);
printf("“\nEnterastringagain:"");gets(b);
printf("“\nThelongeris\n\n\""%s\""\n"",fun(a,b));
答案:char*fun(char*s,char*t)
ss++;
tt++;
3請(qǐng)編寫函數(shù)fun,函數(shù)的功能是:移動(dòng)字符串中的內(nèi)容,移動(dòng)的規(guī)
則如下:把第1到第m個(gè)字符,平移到字符串的最后,把第m+1到最
后的字符移到字符串的前部。
例如,字符串中原有的內(nèi)容為:ABCDEFGHIJK,m的值為3,則移
動(dòng)后,字符串中的內(nèi)容應(yīng)該是:DEFGHIJKABCo
ftinclude<stdio.h>
ttinclude<string.h>
ftdefineN80
voidfunl(char*w)/*本函數(shù)的功能是將字符串中字符循環(huán)左移
一個(gè)位置*/
(
inti;chart;
t=w[0];
for(i=0;i<strlen(w)-1;i++)
w[i]=w[i+l];
w[strlen(w)-l]=t;
)
voidfun(char*w,intm)/*可調(diào)用funl函數(shù)左移字符*/
{
}
main()
{chara[N]="ABCDEFGHIJK"";
intm;
printf(,/z/Theoriginalstring:\n");puts(a);
printf(""\n\nEnterm:;scanf(〃〃%d”,&m);
fun(a,m);
printf("\nThestringaftermoving:\nz,/,);puts(a);
printf(〃〃\n\n〃〃);
NONO();
}
NONO()
{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出
數(shù)據(jù),關(guān)閉文件。*/
FILE*rf,*wf;chara[N];intm,i;
rf=fopen(〃〃c:\\test\\in.dat"",""r"");
wf=fopen("'c:\\test\\out.dat"",""w"");
for(i=0;i<10;i++){
fscanf(rf,“"%d%s””,&m,a);
fun(a,m);
fprintf(wf,“"如\n"”,a);
)
fclose(rf);fclose(wf);
)
答案
voidfun(char*w,intm)/*可調(diào)用funl函數(shù)左移字符*/
(
inti;
for(i=0;i<m;i++)
funl(w);
第二套
1程序通過(guò)定義學(xué)生結(jié)構(gòu)體數(shù)組,存儲(chǔ)了若干名學(xué)生的學(xué)號(hào)、姓名
和3門課的成績(jī)。函數(shù)fun的功能是將存放學(xué)生數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,
按照姓名的字典序(從小到大)排序。
^include<stdio.h>
ftinclude<string.h>
structstudent{
longsno;
charname[10];
floatscore[3];
);
voidfun(structstudenta[],intn)
(
/**********found**********/
—1—t;
inti,j;
/**********found**********/
for(i=0;i<_2_;i++)
for(j=i+l;j<n;j++)
/**********found**********/
if(strcmp(—3—)>0)
{t=a[i];a[i]=a[j];a[j]=t;}
)
main()
{structstudents[4]={{10001,“"ZhangSan””,95,80,88},
{10002,“"LiSi”,85,70,78},
{10003,“"CaoKai”,75,60,88},
{10004,“"FangFang”,90,82,87}};
inti,j;
printf(""\n\nTheoriginaldata:\n\n"");
for(j=0;j<4;j++)
{printf(〃”\nNo:%ldName:%-8sScores:
s[j].sno,s[j].name);
for(i=0;i<3;i++)printf(""%6.2fs[j].score[i]);
printf(〃〃\rT〃);
)
fun(s,4);
printf(""\n\nThedataaftersorting:\n\n"");
for(j=0;j<4;j++)
{printf(""\nNo:%ldName:%-8sScores:
”,s[j].sno,s[j].name);
for(i=0;i<3;i++)printf(""%6.2fs[j].score[i]);
printf;
答案:structstudent
n-l
a[i].name,a[j].name
2在p所指字符串中找出ASCH碼值最大的字符,將其放在第一個(gè)
位置上;并將該字符前的原字符向后順序移動(dòng)。
例如,調(diào)用fun函數(shù)之前給字符串輸入:ABCDeFGH,
調(diào)用后字符串中的內(nèi)容為:eABCDFGHo
ftinclude<stdio.h>
fun(char*p)
{charmax,*q;inti=0;
max=p[i];
while(p[i]!=0)
{if(max<p[i])
{max=p[i];
/**********found**********/
q=p+i
)
i++;
}
/**********found**********/
wihle(q>p)
{*q=*(qT);
q—;
}
p[0]=max;
)
main()
{charstr[80];
printf("“Enterastring:;gets(str);
printf("\nTheoriginalstring:;puts(str);
fun(str);
printf("“\nThestringaftermoving:;puts(str);
printf(〃”\n\n"");
)
答案:q=p+i;
while(q>p)
3學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放
入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,它的功能是:把指定分?jǐn)?shù)范圍
內(nèi)的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)由函數(shù)值
返回。
例如,輸入的分?jǐn)?shù)是6069,則應(yīng)當(dāng)把分?jǐn)?shù)在60到69的學(xué)生
數(shù)據(jù)進(jìn)行輸出,包含60分和69分的學(xué)生數(shù)據(jù)。主函數(shù)中將把60放
在low中,把69放在heigh中。
""#include<stdio.h>
#defineN16
typedefstruct
{charnum[10];
ints;
}STREC;
intfun(STREC*a,STREC*b,int1,inth)
main()
{STRECs[N]={{〃"GA005〃“,85},{““GA003”,76},
{〃〃GA002”,69},{〃〃GA004〃〃,85},{〃〃GA001〃〃,96},
{"“GA007”〃,72},{〃"GA008”〃,64},{““GA006”,87},
{"〃GA015"”,85},{"〃GA013"〃,94},{““GA012””,64},
{〃"GA014”〃,91},{〃〃GA011〃〃,90},『〃GA(H7〃〃,64},
{"GA018”,64},{"GA016〃“,72}};
STRECh[N],tt;FILE*out;
inti,j,n,low,heigh,t;
printf("“Enter2integernumberlow&heigh:;
scanf&low,&heigh);
if(heigh<low){t=heigh;heigh=low;low=t;}
n=fun(s,h,low,heigh);
printf("Thestudent'sdata
between%d-%d:\n"",low,heigh);
for(i=0;i〈n;i++)
printf(""%s%4d\n"",h[i].num,h[i].s);
printf(〃〃\rT〃);
out=fopen(""c:\\test\\out.dat"",""w"");
n=fun(s,h,80,98);
fprintf(out,n);
for(i=0;i<n-l;i++)
for(j=i+l;j<n;j++)
if(h[i].s>h[j].s){tt=h[i];h[i]=h[j];h[j]=tt;}
for(i=0;i<n;i++)
fprintf(out,""%4d\n"",h[i].s);
fprintf(out,"\n"");
fclose(out);
)
答案:
intfun(STREC*a,STREC*b,int1,inth)
(
inti,j=0;
for(i=0;i<N;i++)
(
if(a[i].s>=l&&a[i].s<=h)
(
b[j]=a[i];
j++;
)
returnj;
第三套
1給定程序中,函數(shù)fun的功能是:計(jì)算形參x所指數(shù)組中N個(gè)數(shù)
的平均值(規(guī)定所有數(shù)均為正數(shù)),作為函數(shù)值返回;并將大于平均
值的數(shù)放在形參y所指數(shù)組中,在主函數(shù)中輸出。
例I口,有10個(gè)正數(shù):4630324061745154826,
平均值為:30.500000
主函數(shù)中輸出:4632404548
ftinclude<stdlib.h>
ftdefineN10
doublefun(doublex[],double*y)
{inti,j;doubleav;
/**********found**********/
av=_1_;
/**********found**********/
for(i=0;i<N;i++)av=av+_2_;
for(i=j=0;i<N;i++)
/**********found**********/
if(x[i]>av)y[_3__>x[i];
y[j]=-l;
returnav;
)
main()
{inti;doublex[N],y[N];
for(i=0;i<N;i++){x[i]=rand()%50;printfC,,,%4.Of
printf("〃\n"");
printf("“\nTheaverageis:fun(x,y));
for(i=0;y[i]>=0;i++)printf(""%5.Ify[i]);
printf(""\n"");
)
答案:0
x[i]/N
j++"
2
給定程序MODI1.C中函數(shù)fun的功能是:根據(jù)整型形參m,計(jì)算如下公式的值。
V111-1
100220023002活2
例如,若10=2000,則應(yīng)輸出:0.000160。
請(qǐng)改正程序中的錯(cuò)誤,使程序能輸出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
ftinclude<stdio.h>
/************founcl************/
fun(intm)
{doubley=0,d;
inti;
/************fotind************/
for(i=100,i<=m,i+=100)
{d=(double)i*(double)i;
y+=1.0/d;
)
return(y);
)
main()
{intn=2000;
printf("“\nTheresultisfun(n))
答案:doublefun(intm)
for(i=100;i〈=m;i~l+=0)
3學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績(jī)構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入a結(jié)
構(gòu)體數(shù)組中。請(qǐng)編寫函數(shù)fun,函數(shù)的功能是:找出成績(jī)最低的學(xué)生
記錄,通過(guò)形參返回主函數(shù)(規(guī)定只有一個(gè)最低分)。
ftinclude<stdio.h>
ttinclude<string.h>
ftdefineN10
typedefstructss
{charnum[10];ints;}STU;
fun(STUa[],STU*s)
main()
{STUa[N]={{〃〃A01〃〃,81},{〃〃A02”,89},{〃〃A03〃〃,66},
{"〃A04",87},{〃〃A05〃〃,77},{“A06”,90),
{〃〃A07〃〃,79},{〃〃AO8〃〃,61},{“A09”,80),
{〃〃A10”,71}},m;
inti;
printf("”*****Theoriginaldata*****\n"");
for(i=0;i<N;i++)printf(""No=%sMark=%d\n””,
a[i].num,a[i].s);
fun(a,&m);
printf("”*****THERESULT*****\n"");
printf("“Thelowest:%s,%d\n"”,m.num,m.s);
N0N0();
)
N0N0()
{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文
件。*/
FILE*rf,*wf;
STUa[N],m;
inti;
rf=fopen("'c:\\test\\in.dat"”,〃〃r");
wf=fopen(""c:\\test\\out.dat"",""w"");
for(i=0;i<10;i++)fscanf(rf,""%s%d〃”,a[i].num,
&a[i].s);
fun(a,&m);
fprintf(wf,“"Thelowest:%s,%d\n'”,m.num,m.s);
fclose(rf);
fclose(wf);
答案:fun(STUa[],STU*s
inti;
*s=a[0];
for(i=l;i<N;i++)
if(a[i].s<s->s)
*s=a[i];
)
第四套
1定程序中,函數(shù)fun的功能是:將a所指4X3矩陣中第k行的元
素與第0行元素交換。
例如,有下列矩陣:
123
456
789
101112
若k:為2,程序執(zhí)行結(jié)果為
789
456
123
101112
ftinclude<stdio.h>
#defineN3
#defineM4
/**********found**********/
voidfun(int(*a)[N],int_1_)
{inti,j,temp;
/**********found**********/
for(i=0;i<_2_;i++)
{temp=a[0][i];
/**********found**********/
a[0][i]=—3—;
a[k][i]=temp;
)
)
main()
{intx[M][N]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}},i,j;
printf(,,z,Thearraybeforemoving:\n\n"");
for(i=0;i<M;i++)
{for(j=0;j<N;j++)printfx[i][j]);
printf(〃〃\n\n〃“);
fun(x,2);
printf("“Thearrayaftermoving:\n\n"");
for(i=0;i<M;i++)
{for(j=0;j<N;j++)printf("級(jí)3d"”,x[i][j]);
printf(〃”\n\n"");
)
答案:k
N
a[k][i]
2一個(gè)字符串(長(zhǎng)度<20),將該字符串中的所有字符按ASCII碼升
序排序后輸出。
例如,若輸入:edcba,則應(yīng)輸出:abode0
ftinclude<stdio.h>
voidfun(chart[])
{
charc;
inti,j;
/**********fourid***********/
for(i=strlen(t);i;i一)
for(j=0;j<i;j++)
/**********fotind***********/
if(t[j]<t[j+1])
{
c=t[j];
t[j]=t[j+1];
t[j+1]=c;
}
)
main()
(
chars[81];
printf("“\nPleaseenteracharacterstring:"");
gets(s);
printf(""\n\nBeforesorting:\ns);
fun(s);
printf("“\nAftersortingdecendingly:\ns);
)
答案:for(i=strlen(t)-1;i;i一)
if(t[j]>t[j+1])
3寫一個(gè)函數(shù)fun,其功能是:將ss所指字符串中所有下標(biāo)為奇數(shù)
位置上的字母轉(zhuǎn)換為大寫(若該位置上不是字母,則不轉(zhuǎn)換)。
例如,若輸入〃〃abc4EFg〃〃,則應(yīng)輸出"aBc4EFg”。
ftinclude<stdio.h>
ftinclude<string.h>
voidfun(char*ss)
)
voidmain(void)
(
chartt[51];
printf("“\nPleaseenterancharacterstringwithin50
characters:\nz,,/);
gets(tt);
printf("\n\nAfterchanging,thestring\n
tt);
fun(tt);
printf("“\nbecomes\ntt);
N0N00;
)
N0N0()
(
/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),
輸出數(shù)據(jù),關(guān)閉文件。*/
chartt[51],ch;
FILE*rf,*wf;
intlen,i=0;
rf=fopen(""c:\\test\\in.dat",""r");
wf=fopen(""c:\\test\\out.dat"〃,"w");
while(i<10){
fgets(tt,50,rf);
len=strlen(tt)-1;
ch=tt[len];
if(ch=='\n'||ch==Oxla)tt[len]=0;
fun(tt);
fprintf(wf,tt);
i++;
}
fclose(rf);
fclose(wf);
)
答案:voidfun(char*ss)
{
inti=l;
while(ss[i-l]&&ss[i])
(
if(ss[i]>=,a(&&ss[i]<='z')ss[i]+=,A,,a,;
i+=2;
第五套
1給定程序中,函數(shù)fun的功能是將a和b所指的兩個(gè)字符串轉(zhuǎn)換
成面值相同的整數(shù),并進(jìn)行相加作為函數(shù)值返回,規(guī)定字符串中只含
9個(gè)以下數(shù)字字符。
例如,主函數(shù)中輸入字符串:32486和12345,在主函數(shù)中輸出
的函數(shù)值為:44831o
ttinclude<stdio.h>
ftinclude<string.h>
^include<ctype.h>
ftdefineN9
longctod(char*s)
{longd=0;
while(*s)
if(isdigit(*s)){
/**********found**********/
d=d*10+*s一_1_;
/**********found**********/
_2_;}
returnd;
)
longfun(char*a,char*b)
(
/**********found**********/
return_3―;
)
main()
{charsi[N],s2[N];
do
{printf("Inputstringsi:;gets(si);}
while(strlen(si)>N);
do
{printf("“Inputstrings2:;gets(s2);}
while(strlen(s2)>N);
printf("“Theresultis:%ld\n"”,fun(si,s2));
)
答案:‘O'
s++
ctod(a)+ctod(b)
2統(tǒng)計(jì)字符串中大寫字母和小寫字母的個(gè)數(shù)。
例如,給字符串s輸入:AAaaBBbl23CCccccd,則應(yīng)輸出結(jié)果:
upper=6,lower=8。
ftinclude<stdio.h>
/**********found**********/
voidfun(char*s,inta,intb)
(
while(*s)
{if(*s>='A'&&*s<='Z')
/**********found**********/
*a=a+l;
if(*s>='a&&*s<='z')
/**********found**********/
*b=b+l;
s++;
)
)
main()
{chars[100];intupper=0,lower=0;
printf("“\nPleaseastring:"");gets(s);
fun(s,&upper,&lower);
printf("\nupper=%dlower=%d\n"”,upper,lower);
)
答案:voidfun(char*s,int*a,int*b)
++(*a);
++(*b);
3請(qǐng)編一個(gè)函數(shù)fun,函數(shù)的功能是使實(shí)型數(shù)保留2位小數(shù),并對(duì)
第三位進(jìn)行四舍五入(規(guī)定實(shí)型數(shù)為正數(shù))。
例如:實(shí)型數(shù)為1234,567,則函數(shù)返回1234.57;
實(shí)型數(shù)為1234.564,則函數(shù)返回1234.56。
ttinclude<stdio.h>
floatfun(floath)
main()
{floata;
printf("Entera:;scanf("%f",&a);
printf("“Theoriginaldatais:"");
printf(""%f'n\n'",a);
printf("“Theresult:fun(a));
N0N0();
)
N0N0()
{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),
輸出數(shù)據(jù),關(guān)閉文件。*/
inti;
floata;
FILE*rf,*wf;
rf=fopen(""c:\\test\\in.dat"",""r"");
wf=fopen(〃“c:\\test\\out.dat"","w"");
for(i=0;i<20;i++){
fscanf(rf,&a);
fprintf(wf,fun(a));
}
fclose(rf);
fclose(wf);
)
答案:floatfun(floath)
(
longi=h*1000;
if(i%10<5)return(i/10)/100.0;
elsereturn(i/10+1)/100.0;
第六套
1
給定程序中,函數(shù)fun的功能是:討算下式前n項(xiàng)的和作為函數(shù)值返回。
?1x33x55x7(2?-l)x(2?+l)
例如,當(dāng)形參n的值為10時(shí),函數(shù)返回:9.612558。
請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
注意:源程序存放在考生文件夾下的BLANKLC中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
ftinclude<stdio.h>
doublefun(intn)
{inti;doubles,t;
/**********found**********/
s=_l_;
/**********found**********/
for(i=l;i<=_2—;i++)
{t=2.0*i;
/**********found**********/
s=s+(2.0*i-1)*(2.0*i+l)/_3__;
)
returns;
)
main()
{intn=-1;
while(n<0)
{printf(""Pleaseinput(n>0);scanf&n);}
printf("“\nTheresultis:%f\n,,,/,fun(n));
)
答案:0
n
(t*t)
2統(tǒng)計(jì)substr所指子字符串在str所指字符串中出現(xiàn)的次數(shù)。
例如,若字符串為aaasIkaaas,子字符串為as,則應(yīng)輸出2。
ftinclude<stdio.h>
fun(char*str,char*substr)
{inti,j,k,num=0;
/************found************/
for(i=0,str[i],i++)
for(j=i,k=0;substr[k]==str[j];k++,j++)
/************fotind************/
If(substr[k+l]==,\0')
{num++;
break;
)
returnnum;
)
main()
(
charstr[80],substr[80];
printf("“Inputastring:"");
gets(str);
printf("“Inputasubstring:"");
gets(substr);
printf(""%d\rT”,fun(str,substr));
答案:for(i=0;str[i];i++)
if(substr[k+l]==0)
3
請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:根據(jù)以下公式求才的值(要求滿足精度0.0005,
即某項(xiàng)小于0.0005時(shí)停止迭代):
7T_1lx21x2x3lx2x---x?
—=1+-+---+------+…+---------------
233x53x5x73x5x-x(2?+1)
程序運(yùn)行后,如果輸入精度0.0005,則程序輸出為3.14…。
注意:部分源程序存在文件PR0G1.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main^l其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編
寫的若干語(yǔ)句。
ftinclude<stdio.h>
ftinclude<math.h>
doublefun(doubleeps)
)
main()
{doublex;
printf("Inputeps:"");
scanf&x);printf(""\neps=%lf,PI=%lf\n"",x,
fun(x));
N0N0();
)
NONO()
{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文
件。*/
FILE*fp,*wf;
inti;
doublex;
fp=fopen(""c:\\test\\in.dat"",""r"");
wf=fopen("'c:\\test\\out.dat"〃,""w");
for(i=0;i<10;i++){
fscanf(fp,&x);
fprintf(wf,fun(x));
)
fclose(fp);
fclose(wf);
)
答案:
doublefun(doubleeps)
(
doublei=l,a=l,b=l,c=l,s=0;
while(c>=eps)
(
s+=c;
a*=i;
b*=2*i+l;
c=a/b;
i++;
returns*2;
第七套
1〃給定程序中,函數(shù)fun的功能是:在3X4的矩陣中找出在行上
最大、在列上最小的那個(gè)元素,若沒有符合條件的元素則輸出相應(yīng)信
息。
例如,有下列矩陣:
12134
78106
3597
程序執(zhí)行結(jié)果為:find:a[2][2]=9
ftinclude<stdio.h>
#defineM3
ttdefineN4
voidfun(int(*a)[N])
{inti=0,j,find=0,rmax,c,k;
while((i<M)&&(!find))
{rmax=a[i][0];c=0;
for(j=l;j<N;j++)
if(rmax<a[i][j]){
/**********found**********/
rmax=a[i][j];c=_1—;}
find=l;k=0;
while(k<M&&find){
/**********found**********/
if(k!=i&&a[k][c]<=rmax)find=_2_;
k++;
)
if(find)printf(""find:a[%d][%d]=%d\n"”,i,c,a[i][c]);
/**********found**********/
_3_;
)
if(Ifind)printf(〃“notfound!;
)
main()
{intx[M][N],i,j;
printf("“Enternumberforarray:\n"");
for(i=0;i<M;i++)
for(j=0;j<N;j++)scanf&x[i][j]);
printf("“Thearray:\n,/,/);
for(i=0;i<M;i++)
{for(j=0;j<N;j++)printf("〃%3d"”,x[i][j]);
printf(〃〃\n\n〃〃);
)
fun(x);
)
答案:j
0
i++
給定程序MODI1.C中函數(shù)fun的功能是:根據(jù)整型形參in的值,計(jì)算如下公式的值。
1111
£=1-尹-¥-…-版
例如,若m中的值為:5,則應(yīng)輸出:0.536389c
請(qǐng)改正程序中的錯(cuò)誤,使程序能輸出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
ftinclude<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("\nTheresultisfunn
答案:for(i=2;i〈=m;i++)
y-=l.0/i/i;
3m個(gè)人的成績(jī)存放在score數(shù)組中,請(qǐng)編寫函數(shù)fun,它的功能是:
將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分?jǐn)?shù)放在
below所指的數(shù)組中。
例如,當(dāng)score數(shù)組中的數(shù)據(jù)為:10、20、30、40、50、60、70、
80、90時(shí),函數(shù)返回的人數(shù)應(yīng)該是4,below中的數(shù)據(jù)應(yīng)為:10、20、
30、40o
ftinclude<stdio.h>
ttinclude<string.h>
intfun(intscore[],intm,intbelow[])
)
main()
{inti,n,below[9];
intscore[9]={10,20,30,40,50,60,70,80,90);
n=fun(score,9,below);
printf("“\nBelowtheaveragescoreare:"");
for(i=0;i<n;i++)printf(""%dbelow[i]);
N0N0();
)
NONO()
{/*本函數(shù)用于打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),
關(guān)閉文件。*/
inti,j,n,below[10],score[10];
FILE*rf,*wf;
rf=fopen(""c:\\test\\in.dat"",""r");
wf=fopen("'c:\\test\\out.dat"",""w"");
for(i=0;i<10;i++){
for(j=0;j<10;j++)fscanf(rf,&score[j]);
n=fun(score,10,below);
for(j=0;j<n;j++)fprintf(wf,""%dbelow[j]);
fprintf(wf,;
fclose(rf)
fclose(wf)
答案:
intfun(intscore[],intm,intbelow口)
{
inti,j=0,s=0;
for(i=0;i<m;i++)s+=score[i];
s/=m;
for(i=0;i<m;i++)
(
if(score[i]<s)
(
below[j]=score[i];
j++;
)
)
returnj;
第八套
1給定程序中,函數(shù)fun的功能是:在形參ss所指字符串?dāng)?shù)組中,
刪除所有串長(zhǎng)超過(guò)k的字符串,函數(shù)返回所剩字符串的個(gè)數(shù)。ss所
指字符串?dāng)?shù)組中共有N個(gè)字符串,且串長(zhǎng)小于Mottinclude
<stdio.h>
ttinclude<string.h>
#defineN5
#defineM10
intfun(char(*ss)[M],intk)
{inti,j=0,len;
/**********found**********/
for(i=0;i<1;i++)
{len=strlen(ss[i]);
/**********found**********/
if(len<=_2_)
/**********found**********/
strcpy(ss[j++],_3_);
)
returnj;
)
main()
{char
x|_N」M={Beijing,Shanghai,Tianjing,Nanjing,
“Wuhan"};
inti,f;
printf("“\nTheoriginalstring\n\n"");
for(i=0;i<N;i++)puts(x[i]);printf("\n"");
f=fun(x,7);
printf("Thestringwitchlengthislessthanorequalto
7:\n〃〃);
for(i=0;i<f;i++)puts(x[i]);printf(""\n"");
)
答案:N
k
ss[i]
2逐個(gè)比較p、q所指兩個(gè)字符串對(duì)應(yīng)位置中的字符,把ASCH值大
或相等的字符依次存放到c所指數(shù)組中,形成一個(gè)新的字符串。
例如,若主函數(shù)中a字符串為:aBCDeFgH,
主函數(shù)中b字符串為:ABcd,
則c中的字符串應(yīng)為:aBcdeFgHo
ttinclude<stdio.h>
ftinclude<string.h>
voidfun(char*p,char*q,char*c)
(
/************fourid************/
intk=1;
/************fotind************/
while(*p!=*q)
{if(*p〈*q)c[k]=*q;
elsec[k]=*p;
if(*p)p++;
if(*q)q++;
k++;
)
)
main()
{chara[10]=〃〃aBCDeFgH”〃,b[10]=〃〃ABcd〃〃,c[80]={'\0'};
fun(a,b,c);
printf(Z,//Thestringa:;puts(a);
printf(,,/zThestringb:〃");puts(b);
printf("“Theresult:;puts(c);
)
答案:intk=0;
while(*p*q)
3假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,它的功
能是:除了字符串前導(dǎo)的*號(hào)之外,將串中其它*號(hào)全部刪除。在編寫函
數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪IW旨,字
符串中的內(nèi)容應(yīng)當(dāng)是:****ABCDEFG。
^include<stdio.h>
voidfun(char*a)
(
/*以下代碼僅供參考*/
inti=0,k;
while(a[i]=='*,)i++;
k=i+l;
while(a[i]!='\0')/*以下程序段實(shí)現(xiàn)非*字符前移*/
a[i+l]=\0';
main()
{chars[81];
printf(,z,/Enterastring;gets(s);
fun(s);
printf(Z,,/Thestringafterdeleted:\n〃");puts(s);
NONO();
)
NONO()
{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文
件。*/
FILE*in,*out;
inti;chars[81];
in=fopen(""c:\\test\\in.dat"",""r"");
out=fopen(""c:\\test\\out.dat",""w"");
for(i=0;i<10;i++){
fscanf(in,s);
fun(s);
fprintf(out,s);
)
fclose(in);
fclose(out);
答案:voidfun(char*a)
(
/*以下代碼僅供參考*/
inti=0,k;
while(a[i]=='*,)i++;
k=i+l;
while(a[i]!='\0')/*以下程序段實(shí)現(xiàn)非*字符前移*/
if(a[k]!=,*')
a[i]=a[k];
i++;
)
k++;
)
a[i+l]-\0';
第九套
1程序通過(guò)定義學(xué)生結(jié)構(gòu)體變量,存儲(chǔ)了學(xué)生的學(xué)號(hào)、姓名和3門
課的成績(jī)。函數(shù)fun的功能是將形參a所指結(jié)構(gòu)體變量中的數(shù)據(jù)賦給
函數(shù)中的結(jié)構(gòu)體變量b,并修改b中的學(xué)號(hào)和姓名,最后輸出修改后
的數(shù)據(jù)。例如:a所指變量中的學(xué)號(hào)、姓名、和三門課的成績(jī)依次是:
10001、"ZhangSan“、95、80、88,則修改后輸出b中的數(shù)據(jù)應(yīng)為:
10002、”"LiSi""、95、80、88。
ftinclude<stdio.h>
ftinclude<string.h>
structstudent{
longsno;
charname[10];
floatscore[3];
);
voidfun(structstudenta)
{structstudentb;inti;
/**********found**********/
b=1;
b.sno=10002;
/**********found**********/
strcpy(_2_,〃〃LiSi〃〃);
printf("“\nThedataaftermodified:\n"");
printf(""\nNo:%ldName:%s\nScores:b.sno,);
/**********found**********/
for(i=0;i<3;i++)printf2fb.―3_);
printf(""\n"");
)
main()
{structstudents={10001,“"ZhangSan”,95,80,88);
inti;
printf(""\n\nTheoriginaldata:\n"");
printf(""\nNo:%ldName:%s\nScores:s.sno,);
for(i=0;i<3;i++)printf(""%6.2fs.score[i]);
printf(""\n"");
fun(s);
答案:a
score[i]
2從s所指字符串中刪除所有小寫字母c。
ftinclude<stdio.h>
voidfun(char*s)
{inti,j;
for(i=j=0;s[i]!='\0';i++)
if(s[i]!=c))
/************fourid************/
s[j]=s[i];
/************fourid************/
s[i]='\0';
)
main()
{chars[80];
printf("“Enterastring:;gets(s);
printf("“Theoriginalstring:;puts(s);
fun(s);
printf("“Thestringafterdeleted:;
puts(s);printf(,,,,\n\n,,,/);
)
答案:s[j++]=s[i];
s[j]=O;
3假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,它的功
能是:將字符串中的前導(dǎo)*號(hào)全部移到字符串的尾部。
例如,字符串中的內(nèi)容為:*******A*BC*DEF*G****,移動(dòng)后,
字符串中的內(nèi)容應(yīng)當(dāng)是:A*BC*DEF*G***********。在編寫函數(shù)時(shí),不
得使用C語(yǔ)言提供的字符串函數(shù)。
ftinclude<stdio.h>
voidfun(char*a)
(
/*以下代碼僅供參考*/
char*p,*q;
intn=0;
P=a;
while(*p=='*')/*統(tǒng)計(jì)串頭'*'個(gè)數(shù)n*/
(n++;p++;}
q=a;
/*向前復(fù)制字符串,請(qǐng)?zhí)顚懴鄳?yīng)的語(yǔ)句完成其功能*/
for(;n>0;n-)/*在串尾補(bǔ)n個(gè)'*'*/
*q++=*;
*q='\。';
)
main()
{chars[81],*p;intn=0;
printf("“Enterastring:\n,/,z);gets(s);
fun(s);
printf(,Z//Thestringaftermoveing:\n"");puts(s);
NONO();
)
NONO()
{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文
件。*/
FILE*in,*out;
inti;chars[81];
in=fopen("c:\\test\\in.dat"",""r"");
out=fopen(""c:\\test\\out.dat"",""w"");
for(i=0;i<10;i++){
fscanf(in,s);
fun(s);
fprintf(out,"%s\n"”,s);
)
fclose(in);
fclose(out);
)
答案:
voidfun(char*a)
(
/*以下代碼僅供參考*/
char*p,*q;
intn=0;
P=a;
while(*p=='*')/*統(tǒng)計(jì)串頭'*'個(gè)數(shù)n*/
{n++;p++;}
q=a;
/*向前復(fù)制字符串,請(qǐng)?zhí)顚懴鄳?yīng)的語(yǔ)句完成其功能*/
while(*p)*q++=*p++;
for(;n>0;n-)/*在串尾補(bǔ)n個(gè)'*'*/
*q++=*;
*q='\0';
第十套
1給定程序中,函數(shù)fun的功能是:在形參ss所指字符串?dāng)?shù)組中,
將所有串長(zhǎng)超過(guò)k的字符串中右邊的字符刪除,只保留左邊的k個(gè)字
符。ss所指字符串?dāng)?shù)組中共有N個(gè)字符串,且串長(zhǎng)小于Mo
“#include<stdio.h>
^include<string.h>
#defineN5
ttdefineM10
/**********found**********/
voidfun(char(*ss)—1—,intk)
{inti=0;
/**********found**********/
while(i<_2_){
/**********found**********/
ss[i][k]=_3—;i++;}
)
main()
{char
x[N][M]={〃〃Create〃〃,“Modify”,〃〃Sort〃〃,“skip","Delete"
);
inti;
printf("“\nTheoriginalstring\n'n"");
for(i=0;i<N;i++)puts(x[i]);printf(""\n"");
fun(x,4);
printf("“\nThestringafterdeleted:\n\n"");
for(i=0;i<N;i++)puts(x[i]);printf(""\n"");
)
答案:3]
N
0
2
給定程序M0DI1.C中函數(shù)fun的功能是:根據(jù)以下公式求不值,并作為函數(shù)值返回。
例如,給指定精度的變量eps輸入0.0005時(shí),應(yīng)當(dāng)輸出Pi=3.140578。
開,1121231234
23353573579
請(qǐng)改正程序中的錯(cuò)誤,使程序能輸出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
ftinclude<math.h>
ftinclude<stdio.h>
doublefun(doubleeps)
{doubles,t;intn=l;
s=0.0;
/************founcl************/
t=0;
while(t>eps)
{s+=t;
t=t*n/(2*n+l);
n++;
)
/************found************/
return(s);
)
main()
{doublex;
printf("“\nPleaseentera
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣播電視線務(wù)員安全規(guī)程模擬考核試卷含答案
- 鐵渣處理工QC考核試卷含答案
- 水生植物病害防治員崗前設(shè)備巡檢考核試卷含答案
- 筒并搖工標(biāo)準(zhǔn)化強(qiáng)化考核試卷含答案
- ??怂谷鴺?biāo)培訓(xùn)課件
- 老年人入住老人關(guān)愛活動(dòng)制度
- 城管協(xié)管培訓(xùn)
- 酒店客房環(huán)境與設(shè)備維護(hù)制度
- 酒店安全消防管理制度
- 濟(jì)寧培訓(xùn)班教學(xué)課件
- 養(yǎng)老院老年人能力評(píng)估表
- 腈綸生產(chǎn)企業(yè)基本情況
- 前列腺增生的護(hù)理2
- 電力建設(shè)工程工程量清單計(jì)算規(guī)范 變電工程
- 礦用隔爆兼本質(zhì)安全型真空電磁起動(dòng)器
- 歷年同等學(xué)力申碩公共管理真題及答案
- 果樹整形修剪技術(shù)5
- 社會(huì)學(xué)概論(第2版)PPT完整全套教學(xué)課件
- RB/T 208-2016化學(xué)實(shí)驗(yàn)室內(nèi)部質(zhì)量控制比對(duì)試驗(yàn)
- GB/T 37898-2019風(fēng)力發(fā)電機(jī)組吊裝安全技術(shù)規(guī)程
- GB/T 32893-201610 kV及以上電力用戶變電站運(yùn)行管理規(guī)范
評(píng)論
0/150
提交評(píng)論