




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
補(bǔ)充題庫(kù)一
填空
給定程序中,函數(shù)fiin的功能是:在任意給定的衿正整數(shù)中找出按升序排列時(shí)處于中間的數(shù),將原數(shù)據(jù)
序列中比該中間數(shù)小的數(shù)用該中間數(shù)替換,位置不變,在主函數(shù)中輸出處理后的數(shù)據(jù)序列,并將中間數(shù)作為
函數(shù)值返回.
例如,有序正整數(shù):1572387582145
按升序排列時(shí)的中間數(shù)為:8
處理后主函數(shù)中輸出的數(shù)列為:8882387882145
請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果.
#include<stdio.h>
//defineN9
intfun(intx[])
{inti,j,k,t,mid,b[N];
for(i=0;i<N;i++)b[i]=x[i];
for(i=0;i<=N/2;i++)
{k=i;
for(j=i+l;j<N;j++)if(b[k]>b[j])k=j;
if(k!=i)
/**********foun(j**********I
t=b[i];b[i]=_1_;b[k]=t;
)
)
/**********found**********/
mid=b[_2_];
for(i=0;i<N;i++)
/**********found**********/
if(x[i]___3___mid)x[i]=mid;
returnmid;
main()
{int\,x[N]={l,5/7/23,87,5,8,21,45);
for(i=0;i<N;i++)printf("%d
printf("\nThemiddatais:%d\n"/fun(x));
for(i=0;i<N;i++)printf("%d
printf("\n");
)
【參考答案】
(1)b[k](2)4或N/2(3)<
改錯(cuò)題
給定程序M0DI1.C中,fU嘔J數(shù)的功能是:刪除b所指數(shù)組中小于10的數(shù)據(jù).主函數(shù)中輸出刪除后數(shù)組中
余下的數(shù)據(jù).
請(qǐng)改正函數(shù)firn中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果.
#include<stdio.h>
include<stdlib.h>
#defineN20
intfun(int*b)
/**********fQun(j**********/
intt[N],\,num
for(i=0;i<N;i++)
if(b[i]>=10)
y**********founc|**********/
t[++num]=b[i];
y**********^Q|jp^|**********/
for(i=0;i<nun;i++)
b[i]=t[i];
return(num);
)
main()
{inta[N]zi,num;
printf("a數(shù)組中的數(shù)據(jù):\n");
for(i=0;i<N;i++){a[i]=rand()%21;printf("%4d",a[i]);}
printf("\n");
num=fun(a);
for(i=0;i<num;i++)printf("%4d,a[i]);
printf("\n");
【參考答案】
(1)intt[N],i,num=0;
(2)t[num4-+]=b[i];^c{t[num]=b[i];num++;}
(3)for(i=0;i<num;i++)
程序編寫題
請(qǐng)編寫函數(shù)ftm,其功能是:統(tǒng)計(jì)s所指字符串中的數(shù)字字符個(gè)數(shù),并作為函數(shù)值返回。
例如,所指字符串中的內(nèi)容是:
s2def35adh253kjsdf7kj8655x3
函數(shù)fim返回值為:11
#include<stdio.h>
voidNONO();
intfun(char*s)
main()
{char*s="2def35adh253kjsdf力kj8655x”;
printf("%s\n”,s);
printf("%d\n”,fun(s));
NONO();
voidNONO()
{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*fp,*wf;
inti;
chars[256];
fp=fopen(,,in.dat";'r");
wf=fopen("out.dat";,w");
for(i=0;i<10;i++){
fgets(s,255,fp);
fprintf(wf,"%d\n”,fun(s));
)
fclose(fp);
fclose(wf);
}
【參考答案】
intfun(char*s)
{intn=0;
char*p;
for(p=s;*p!=l\0';p++)
if((*p>=,0,)&&(*p<=,9,))
n++;
returnn;
補(bǔ)充題二
填空題
函數(shù)fim的功能是:輸出麻指數(shù)組中的前n個(gè)數(shù)據(jù),要求每行輸出5個(gè)數(shù).
請(qǐng)?jiān)诔绦虻南庐嬀€處埴入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果.
注意:源程序存放在考生文件夾下的8LANK1R中.
include<stdio.h>
#include<stdlib.h>
voidfun(int*a,intn)
{inti;
for(i=0;i<n;i++)
/**********found**********/
if(一1一==。)
/**********found**********!
printf("-2―");
/**********found*********7
printf("%d",—3—);
)
}
main()
{inta[100]={0},i,n;
n=22;
for(i=0;i<n;i++)a[i]=rand()%21;
fun(a,n);
pnntf(H\n");
)
【參考答案】
(1)i%5(2)\n(3)a[i]
改錯(cuò)題
給定程序MODILC中,fbn函數(shù)的功能是:在任意給定的N個(gè)正整數(shù):中,從左到右依次逐個(gè)取三個(gè)數(shù)
作為一組,按值大小找出該組數(shù)的中值,用該中值替換與該組數(shù)對(duì)應(yīng)的原三個(gè)數(shù)中的中間位置的數(shù).處理
后原數(shù)列中首尾2個(gè)數(shù)不變.處理后數(shù)列在主函數(shù)中輸出.例如,有10個(gè)正整數(shù)如下:
初始數(shù)列為:657231858214538
第1組數(shù)為:657中值為:6替換后的數(shù)列為一667231858214538
第2組數(shù)為:5723中值為:7替換后的數(shù)列為:667231858214538
第3組數(shù)為:72318中值為:18替換后的數(shù)列為:667181858214538
第蝴數(shù)為:23185中值為:18替換后的數(shù)列為:667181858214538
第5組數(shù)為:1858中值為:8替換后的數(shù)列為:667181888214538
第斕數(shù)為:5821中值為:S替換后的數(shù)列為:667181888214538
第7組數(shù)為:82145中值為:21替換后的數(shù)列為:667181888214538
第S組數(shù)為:214538中值為:38替換后的數(shù)列為:667181S88213838
最終結(jié)果為:667181888213838
請(qǐng)改正程序中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果.
#include<stdio.h>
#defineN10
intfindmid(inta,intb,intc)
{intt;
t=(a>b)?(b>c?b:(a>c?c:a)):((a>c)?a:((b>c)?c:b));
/**********found**********/
returnb;
)
voidfun(intx[])
{intiza,b,c,t[N];
/**********found**********/
for(i=0;i<N;i++)t[i]=x[i]
for(i=0;i<N-2;i++)
{a=t[i];b=t[i+l];c=t[i+2];
/**********found**********/
t[i+l]=findmid(a,b/c);
)
)
main()
{inti,x[N]={6,5,7,23,18,5,8,21,45,38);
for(i=0;i<N;i++)printf("%d",x[i]);
printf("\n");
fun(x);
for(i=0;i<N;i++)printf("%d",x[i]);
printf("\n");
)
【參考答案】
(1)returnt;(2)for(i=0;i<N;i++)t[i]=x[i];
(3)x[i+1]=findmid(a,b,c);
程序編寫題
請(qǐng)編寫函數(shù)ftrn,函數(shù)的功能是查找x在s所指數(shù)組中下標(biāo)的位置,并作為函數(shù)值返回,若x不存在,則返
回一1。
include<stdio.h>
#include<stdlib.h>
#defineN15
voidNONO();
intfun(int*s,intx)
)
main()
{inta[N]={29,13,5,22,10,9,3,18,22,25,14,15,2,7,27},i,x,index;
printf("a數(shù)組中的數(shù)據(jù):\n“);
for(i=0;kN;i++)printf(”%4d”,a[i]);printf("\n");
printf("給x輸入待查找的數(shù):scanf("%d",&x);
index=fun(a,x);
printf("index=%d\n",index);
NONO();
voidNONO()
{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*fp,*wf;
inti,j,a[10],x,index;
fp=fopen("in.dat";'r");
wf=fopen("out.dat";'w");
for(i=0;i<10;i++){
for(j=0;j<10;j++){
fscanf(fp,"%d",&a[j]);
)
fscanf(fp,"%d",&x);
index=fun(a,x);
fprintf(wfz"%d\n"zindex);
)
fclose(fp);
fclose(wf);
)
【參考答案】
intfun(int*s,intx)
{inti;
for(i=0;i<N;i++)
if(x==s[i])returni;
return-1;
)
補(bǔ)充題三
填空題
給定程序的主函數(shù)中,已給出由結(jié)構(gòu)體構(gòu)成的鏈表結(jié)點(diǎn)a、b、c,各結(jié)點(diǎn)的數(shù)據(jù)域中均存入字符,函數(shù)
fim()的作用是:將a、b、c三個(gè)結(jié)點(diǎn)漣接成一個(gè)單向漣表,并輸出讀表結(jié)點(diǎn)中的數(shù)據(jù).
請(qǐng)?jiān)诔绦虻南庐嬀€處埴入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果.
注意:源程序存放在考生文件夾下的BLANK1.C中.
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<stdio.h>
typedefstructlist
{chardata;
structlist*next;
}Q;
voidfun(Q*pa,Q*pb,Q*pc)
{Q*P;
/*********j**********/
pa->next=___1___;
pb->next=pc;
P=pa;
while(p)
(
/**********found**********/
printf("%c"z2);
/**********fo(jnd**********/
P=3;
}
printf("\n");
}
main()
{Qa,b,c;
a.data="E';b.data='F';c.data='G';c.next=NULL;
fun(&a,&b,&c);
)
參考答案】
(1)pb(2)p->data(3)p->next
改錯(cuò)題
給定程序MODILC中函數(shù)加堂功能受統(tǒng)亞s所指]維數(shù)組中0的個(gè)數(shù)(存
在變量zero中)和1的小,數(shù)(存在變量one中);,輸出組
請(qǐng)改正函數(shù)fun中指定部也的鵬使它熊依鬻宣巍序的結(jié)構(gòu)。
注意:不要改動(dòng)main函數(shù),不徵管行或?qū)π?/p>
#include<stdio.h>
voidfun(int*s,intn)
/**********found**********/
inti,one=0,zero;
for(i=0;i<n;i++)
/**********found**********/
switch(s[i]);
/**********found**********/
case0:zero++;
case1:one++;
)
printf("one:%dzero:%d\nH,one,zero);
)
main()
{inta[20]={l,1,1,0,1,0,0,0,1,0,0,1,1,0,0,1,04,0,0}zn=20;
fun(a,n);
)
【參考答案】
(1)inti,one=0,zero=0;(2)switch(s[i])
(3)case0:zero++;break;
程序編寫題
何中內(nèi),需麟藏鬻麴蝙廨爨懿的黑■鷺螳器群髓IS產(chǎn)和籬其他簿函I數(shù)I鷲中的:黑任
#include<stdio.h>
#defineN20
voidNONO();
voidfun(char*a,char*s)
)
main()
{charsl[N],*s2=,,abcdefghijkn;
fun(sl,s2);
printf("%s\n”,si);
printf("%s\n",s2);
NONO();
)
voidNONO()
{/*本函數(shù)用于打開文件,輸入數(shù)據(jù)?,調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。7
FILE*fp,*wf;
inti;
charsl[256],s2[256];
fp=fopen("in.dat"z"r");
wf=fopen("out.dat'7'w");
for(i=0;i<10;i++){
fgets(s2z255,fp);
fun(sl,s2);
fprintf(wf,”%s”,si);
}
fclose(fp);
fclose(wf);
)
【參考答案】
voidfun(char*a,char*s)
{while(*s!=,\0,)
{*a=*s;
a++;
s++;
)
*a=>\0';
補(bǔ)充題四
填空題
圍繞山頂一圈有'個(gè)山洞,編號(hào)為0、1、2、3、...、N-1,有一只狐貍和一只兔子在洞中居住。狐貍總
想找到兔子并吃掉它,它的尋找方法是先到第一個(gè)洞(即編號(hào)為0的洞)中找;再隔1個(gè)洞,即到編號(hào)為2的
個(gè)洞中我;再隔2個(gè)洞,即到編號(hào)為5的洞中找;下次再隔3個(gè)洞;即到編號(hào)為9的洞中找;…….若狐貍找一
圈,請(qǐng)為兔子指出所有不安全的洞號(hào)。程序中用板組元素模擬一個(gè)洞,數(shù)組元素的下標(biāo)即為洞號(hào),數(shù)組元
素中的值為0時(shí),表示該洞安全,為1時(shí)表示該洞不安全。若形參n的值為30fth不安全的洞號(hào)是0、2、5、
9、14、20、27.
請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
注意:源程序存放在考生文件夾下的BLANKLC中.
不得噌行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<stdio.h>
#defineN100
voidfun(int*a,intn)
{inti,t;
for(i=0;i<n;i++)
/**********^QJJQ£|**********/
a[i]=一1一;
i=0;
/**********found**********/
―2—=1;
while(i<n)
{a[i]=1;
t++;
/**********found**********/
i=—3—;
}
)
main()
{inta[N],i,n=30;
fun(a,n);
for(i=0;i<n;i++)
if(a[i]==l)printf(“不安全的洞號(hào)是:%d\n",i);
)
參考答案】
(1)0(2)t(3)i+t
改錯(cuò)題
給定程序MODILC中規(guī)定輸入的字符串全部為字母,血底I數(shù)的功能是:統(tǒng)計(jì)新指字符串中每個(gè)字母在字
符串中出現(xiàn)的次數(shù)(統(tǒng)計(jì)時(shí)不區(qū)分大小寫),并將出現(xiàn)次數(shù)最高的字母輸出(如果有多個(gè)相同,輸出一個(gè)即
可)。
例如對(duì)于字符串:dadbcdbabdb,對(duì)應(yīng)的輸出應(yīng)為:b或&
請(qǐng)改正函數(shù)仙)中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。
#include<stdio.h>
#include<stdio.h>
include<string.h>
voidfun(chara[])
{intb[26],i,n,max;
for(i=0;i<26;i++)
/**********found**********/
a[i]=0;
n=strlen(a);
for(i=0;i<n;i++)
if(a[i]>='a'&&a[i]<='z')
/**********found**********/
b[a[i]-'A']++;
elseif(a[i]>='A'&&a[i]<='Z')
b[a[i]-'AJ++;
max=0;
for(i=l;i<26;i++)
/**********found**********/
if(b[max]>b[i])
max=i;
(”出現(xiàn)次數(shù)最多的字符是:
printf%c\n"zmax+'a');
)
main()
{chara[200];
printf("請(qǐng)輸入一個(gè)待統(tǒng)計(jì)的字符串:");scanf("%s",a);
fun(a);
)
【參考答案】
(1)b[i]=0;(2)b[a[i]-'a']++;(3)if(b[max]<b[i])
程序編寫題
請(qǐng)編函數(shù)fim,其功能是將一個(gè)數(shù)字字符串轉(zhuǎn)換成與其面值相同的長(zhǎng)整型整數(shù).可調(diào)用strien函數(shù)求字
符串的長(zhǎng)度.例如:在鍵盤輸入字符串2345210,函數(shù)返回長(zhǎng)整型數(shù)2345210.
注意:部分源程序存在PROGLC中,請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)ftrnj旨
定的部位埴入所編寫的若干語(yǔ)句.
#include<stdio.h>
#include<string.h>
voidNONO();
longfun(char*s)
main()
{chars[10];longr;
printf(”請(qǐng)輸入一個(gè)長(zhǎng)度不超過9個(gè)字符的數(shù)字字符串:");gets(s);
r=fun(s);
printf(nr=%ld\nM,r);
NONOQ;
voidNONO()
{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*fp,*wf;
inti;longr;
chars[10],*p;
fp=fopen("in.dat,',"ru);
wf=fopen(,,out.dat,\"w,');
for(i=0;i<10;i++){
fgets(s,10,fp);
p=strchr(s,
if(p)*p=0;
r=fun(s);
fprintf(wf,"%ld\nn,r);
)
fclose(fp);
fclose(wf);
)
【參考答案】
longfun(char*s)
(
inti,sum=0,len;
len=strlen(s);
for(i=0;i<len;i++)
{
sum二sum*10+*s-48;
s++;
)
returnsum;
)
補(bǔ)充題五
填空題
給定程序中,函數(shù)fbn的作用是:統(tǒng)計(jì)整型變量m中各數(shù)字出現(xiàn)的次數(shù),并存放到數(shù)組a中,其中:a[0]存
放吐現(xiàn)的次數(shù),a[l]存放1出現(xiàn)的次數(shù),……a[9]存放9出現(xiàn)的次數(shù).
例如,若m為14579233,則輸出結(jié)果應(yīng)為:0,1,1,2,1,1,0,1.0,1,
請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果.
注意:源程序存放在考生文件夾下的BLANKLC中.
不得噌行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<stdio.h>
voidfun(intm,inta[10])
{inti;
for(i=0;i<10;i++)
/**********found**********/
-1—=0;
while(m>0)
/**********tound**********/
i=—2—;
a[i]++;
******¥*字found**不字不*****/
m=___3___;
main()
{intm,a[10],i;
printf("請(qǐng)輸入一個(gè)整數(shù):");scanf("%d”,&m);
fun(m,a);
for(i=0;i<10;i++)printf(n%d;;a[i]);printf(n\n,');
【參考答案】
(1)a[i](2)m%10(3)m/10
改錯(cuò)題
給定程序VODILC中,函數(shù)ftm的功能是求矩陣(二維數(shù)組)a[N][N]中每行的最小值,結(jié)果存放到數(shù)組b
中.
1432
8657
1110129
13161415
假如:若A則結(jié)果應(yīng)為1.5,9,13,
#include<stdio.h>
#defineN4
voidfun(inta[][N],intb[])
{inti,j;
for(i=0;i<N;i++)
/*********^und***邛******/
b[i]=a[0][0];
/**********^^und**********/
for(j=l;j<N-l;j++)
/不*******琴字^^und**豕不字萃****/
if(b[i]<a[i]|j])
b[i]=a[ij|jj;
)
main()
{inta[N][N]={{l,4,3,2},{8,6,5,7},{11,10,12,9),{13,16,14,15}},b[N];inti;
fun(a,b);
for(i=0;i<N;i++)printf(n%d;',b[i]);
printf("\nu);
)
【參考答案】
(1)b[i]=a[i][OJ;(2)for(j=l;j<N;j++)(3)if(b[i]>a[i]U])
程序編寫題
請(qǐng)編寫函數(shù)fun,其功能是:將一組得分中,去掉一個(gè)最高分和一個(gè)最低分,然后求平均值,并通過
函數(shù)返回.函數(shù)形參后旨向存放得分的數(shù)組,形參n中存放得分個(gè)數(shù)(n>2).
例如,若輸入9.98.57.68.59.39.58.97.88.68.4十個(gè)得分,則輸出結(jié)果為:8.687500.
注意:部分源程序存在PROGLC中,請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)ftm的
花括號(hào)中填入所編寫的若干語(yǔ)句.
#include<stdio.h>
voidNONO();
doublefun(doublea[],intn)
main()
{doubleb[10J,r;inti;
printf("輸入10個(gè)分?jǐn)?shù)放入b數(shù)組中:”);
for(i=0;i<10;i++)scanf(M%lf;&b[i]);
printf(”輸入的10個(gè)分?jǐn)?shù)是:");
for(i=0;i<l0;i++)printf("%4.11fn,b[i]);printf(n\nu);
r=fun(b,10);
printf("去掉最高分和最低分后的平均分:%f\nu,r);
NONO();
)
voidNONO()
{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*fp,*wf;
inti,j;
doubleb[10],r;
fp=fopen("in.dat",,'ru);
wf=fopen(nout.dat,',,,w");
for(i=0;i<10;i++){
for(j=0;j<10;j++){
fscanf(fp,"%lf
)
r=fun(b,10);
fprintf(wf,n%f\n",r);
)
fclose(fp);
fclose(wf);
)
【參考答案】
doublefun(doublea[],intn)
(
doublesum=O,max,min;inti;
max=min=a[0];
for(i=0;i<n;i++)
(
sum=sum+a[i];
if(max<a[i])max=a[i];
if(min>a[i])min=a[i];
)
sum=sum-max-min;
retum(sum/(n-2));
補(bǔ)充題六
填空題
給定程序中,函數(shù)ftm的功能是:調(diào)用隨機(jī)函數(shù)產(chǎn)生24互不相同的整數(shù)放在形參痢指數(shù)組中(此數(shù)組在
主函數(shù)中已置0).
請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。
注意:部分源程序在文件8LANK1.C中。
#include<stdlib.h>
#include<stdio.h>
#defineN20
voidfun(int*a)
{inti,x,n=0;
x=rand()%20;
/**********found**********/
while(n<―1—)
{for(i=0;i<n;i++)
/**********found**********/
if(x==a[i])
2;
/**********found**********/
if(i=_3_)
{a[n]=x;n++;}
x=rand()%20;
main()
{intx[N]={0},i;
fun(x);
printf("Theresult:\nH);
for(i=0;i<N;i++)
{printf("%4d,r,x[i]);
if((i+l)%5==0)printf("\nu);
)
printf("\n\nM);
)
【參考答案】
(1)N或20(2)break(3)n
改錯(cuò)題
下列給定程序是建立一個(gè)帶頭結(jié)點(diǎn)的單向睚表,并用隨機(jī)函數(shù)為各結(jié)點(diǎn)賦值。函數(shù)ftm的功能是將單向
鏈表結(jié)點(diǎn)(不包括頭結(jié)點(diǎn)漱據(jù)域?yàn)榕紨?shù)的值累加起來(lái),并且作為函數(shù)值返回.
請(qǐng)改正函數(shù)fim中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MOD".C中,不要改動(dòng)mam函數(shù),不得增行或刪行,也不得夏改程序的結(jié)構(gòu)!
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedefstructaa
{intdata;
structaa*next;
}NODE;
intfun(NODE*h)
{intsum=0;
NODE*p;
p=h->next;
/*字,**********found***字字,字*******/
while(p->next)
{if(p->data%2==0)
sum+=p->data;
/*************^^)und******亭*******/
p=h->next;
)
returnsum;
)
NODE*creatlink(intn)
(
NODE*h,*p,*s;
inti;
h=p=(NODE*)malloc(sizeof(NODE));
for(i=l;i<n;i++)
s=(NODE*)malloc(sizeof(NODE));
s->data=rand()%16;
s->next=p->next;
p->next=s;
p=p->next;
)
p->next=NULL;
returnh;
)
outlink(NODE*h)
{NODE*p;
p=h->next;
printf(n\n\nTheLIST:\n\nHEAD'1);
while(p)
{printf("->%du,p->data);
p=p->next;)
printf(M\nH);
)
voidmain()
{NODE*head;inisum;
system("CLS");
head=creatlink(l0);
outlink(head);
sum=fun(head);
printf("\nSUM=%d",sum);
)
【參考答案】
(l)while(p!=NULL)(2)p=p->next;
程序編寫題
請(qǐng)編寫一個(gè)函數(shù)ftm,它的功能是:將ss所指字符串中所有下標(biāo)為奇數(shù)位置的字母轉(zhuǎn)換為大寫(若該位置
上不是字母,則不轉(zhuǎn)換).
例如,若輸入"abc4Efg",則應(yīng)輸出“aBc4EFg”.
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidfun(char*ss)
voidmain()
FILE*wf;
chartt[81],s[8l]=Mabc4Efg";
system(',CLSu);
printf(M\nPleaseenteranstringwithin80characters:\n");
gets(tt);
printf(M\n\nAfterchanging,thestring\n%sn,tt);
fun(tt);
printf("\nbecomes\n%s\n",tt);
wf=fopen(nout.dat","w");
fun(s);
fprintf(wf,"%sn,s);
fclose(wf);
}
【參考答案】
voidfun(char*ss)
inti;
for(i=0;ss[i]!='\0';i++)/*將ss所指字符串中所有下標(biāo)為奇數(shù)位置的字母轉(zhuǎn)換為
大寫*/
if(i%2=l&&ss[i]>=,a&&ss[i]<=,z')
ss[i]=ss[i]-32;
補(bǔ)充題七
填空題
―給定程序中,函數(shù)fUn的功能是:計(jì)算形參廝指數(shù)組中、個(gè)數(shù)的平均值(規(guī)定所有數(shù)均為正數(shù)),將所指
數(shù)蛆中大于平均值的數(shù)據(jù)移至數(shù)組的前部,小于等于平均值的數(shù)據(jù)移至須指數(shù)組的后部,平均值作為函數(shù)
值返回,在主函數(shù)中輸出平均值和移動(dòng)后的數(shù)據(jù).
例如,有'10個(gè)正數(shù):46、30、32、40、6、17、45、15、48、26,平均值為30.500000.
移動(dòng)后的輸出為:46、32^40^45、48、30、6、17、15、26.
詰在程序的下畫線處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果.
注意:部分源程序在文件BLANK1.C中.
#include<stdlib.h>
#include<stdio.h>
#defineN10
doublefun(double*x)
{inti,j;doubles,av,y[N];
s=0;
for(i=0;i<N;i++)s=s+x[i];
/**********found*********琴/
av=_1
for(i=j=0;i<N;i++)
if(x[i]>av){
/**********found**********/
y[_2_]=x[i];
x[i]=-l;}
for(i=0;i<N;i++)
/**********found**********/
if(x[i]!=_3_)y[j++]=x[i];
for(i=0;i<N;i++)x[i]=y[i];
returnav;
)
main()
{intdoublex[N];
for(i=0;i<N;i++){x[i]=rand()%50;printf("%4.0fn,x[i]);}
printf("\n");
printf("\nTheaverageis:%f\n',,fun(x));
printfCAnTheresult:\nn,fun(x));
for(i=0;i<N;i++)printf(n%5.Of",x[i]);
printf(n\nn);
【參考答案】
(l)s/N(2)j++(3)-1
改錯(cuò)題
下列給定程序中,函數(shù)的功能是:根據(jù)整形參m的值,計(jì)算如下公式的值。
1
wxw
例如,若m中的值為5,則應(yīng)輸出0.536389。
#include<stdio.h>
doublefun(intm)
{doubley=1.0;
inti;
/**************found**************/
for(i=2;i<m;i++)
/不**********字不示found*率************/
y-=1/(i*i);
retum(y);
main()
{intn=5;
printf("\nTheresultis%lf\n",fun(n));
【參考答案】
(l)for(i=2;i<=m;i++)
(2)y-=1.0/(i*i);
程序編寫題
~編寫函數(shù)ftm,它的功能是:求小于形參洞時(shí)能被3與7整除的所有自然數(shù)之和的平方根,并作為函數(shù)值
返回。
例如,若n為1000fth程序輸出應(yīng)為:s=153.909064.
注意:部分源程序在文件PR0G1.C中。
#include<math.h>
#include<stdio.h>
doublefun(intn)
main()/*主函數(shù)*/
{voidNONO();
printf("s=%f\n,\fun(1000));
NONO();
}
voidNONO()
{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*fp,*wf;
inti,n;
doubles;
fp=fopen("in.dat","ru);
wf=fopen(,,out.dat,',',w");
for(i=0;i<10;i++){
fscanf(fp,n%dn,&n);
s=fun(n);
fprintf(wf,M%f\nn,s);
)
fclose(fp);
fclose(wf);
)
【參考答案】
doublefun(intn)
(
doublesum=0.0;
inti;
for(i=21;i<=n;i++)
if((i%3=0)&&(i%7=0))sum+=i;
returnsqrt(sum);
}
補(bǔ)充題八
一、填空題:
給定程序中,函數(shù)fun的功能是:調(diào)用隨機(jī)函數(shù)產(chǎn)生20個(gè)互不相同的整數(shù)放在形參a所指數(shù)組中(此
數(shù)組在主函數(shù)中已置0)。
請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
#include<stdlib.h>
#include<stdio.h>
#defineN20
voidfun(int*a)
{inti,x,n=0;
x=rand()%20;
******¥*字found**不字不*****/
while(n<_1_)
{for(i=0;i<n;i++)
/字********4found***亭******/
if(x==a[i])
_2_;
/字********字found**不*******/
if(i==_3_)
{a[n]=x;n++;}
x=rand()%20;
main()
{intx[N]={0},i;
fun(x);
printf(HTheresult:\nu);
for(i=0;i<N;i++)
{printf("%4d",xlij);
if((i+l)%5==0)printf(,,\nn);
)
printf(H\n\nH);
)
【參考答案】
(1)N或20(2)break(3)n
改錯(cuò)題
下列給定程序是建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,并用隨機(jī)函數(shù)為各結(jié)點(diǎn)賦值。函數(shù)ftm的功能是將單向
涯表結(jié)點(diǎn)(不包括頭結(jié)點(diǎn)激據(jù)域?yàn)榕紨?shù)的值累加起來(lái),并且作為函數(shù)值返回。
請(qǐng)改正函數(shù)中的錯(cuò)誤,使它能得出正確的結(jié)果。
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedefstructaa
{intdata;
structaa*next;
}NODE;
intfun(NODE*h)
{intsum=0;
NODE*p;
p=h->next;
/************ound**************/
while(p->next)
{if(p->data%2==0)
sum+=p->data;
/*************tound**************/
p=h->next;
)
returnsum;
)
NODE*creatlink(intn)
(
NODE*h,*p,*s;
inti;
h=p=(NODE*)malloc(sizeof(NODE));
for(i=l;i<n;i++)
(
s=(NODE*)malloc(sizeof(NODE));
s->data=rand()%16;
s->next=p->next;
p->next=s;
p=p->next;
}
p->next=NULL;
returnh;
)
outlink(NODE*h)
{NODE*p;
p=h->next;
printf(n\n\nTheLIST:\n\nHEAD");
while(p)
{printf(n->%d",p->data);
p=p->next;}
printf(n\nM);
)
voidmain()
{NODE*head;intsum;
systemC'CLS'1);
head=creatlink(10);
outlink(head);
sum=fun(head);
printf(',\nSUM=%d'\sum);
【參考答案】
(l)while(p!=NULL)(2)p=p->next;
程序編寫題
請(qǐng)編寫一個(gè)函數(shù)ftm,它的功能是:將ss所指字符串中所有下標(biāo)為奇數(shù)位置的字母轉(zhuǎn)換為大寫(若該位置
上不是字母,則不轉(zhuǎn)換).
例如,若輸入Zbc4Efg”,則應(yīng)輸出“aBc4EFg”.
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidfun(char*ss)
}
voidmain()
HLE*wf;
chartt[81],s[81]="abc4Efgn;
system("CLSH);
printf(M\nPleaseenteranstringwithin80characters:\n");
gets(tt);
printf(n\n\nAfterchanging,thestring\n%sn,tt);
fun(tt);
printfCAnbecomesXn%s\nn,tt);
wf=fopen("out.datn,nwn);
fun(s);
fprintf(wf,"%s,f,s);
fclose(wf);
【參考答案】
voidfun(char*ss)
{
inti;
for(i=0;ss[i]!='\0';i++)/*將ss所指字符串中所有下
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廢物處理與回收合同書
- 農(nóng)村土地承包合同管理與風(fēng)險(xiǎn)防控
- 教師勞動(dòng)合同
- 標(biāo)準(zhǔn)域名轉(zhuǎn)讓合同書范本
- 挖機(jī)租賃業(yè)務(wù)合同
- 小額借款合同示例
- 糧食儲(chǔ)備庫(kù)租賃合同標(biāo)準(zhǔn)文本
- 家庭護(hù)理保姆服務(wù)合同細(xì)則
- 木材加工企業(yè)的設(shè)備更新與技術(shù)改造考核試卷
- 木制品三維建模與虛擬現(xiàn)實(shí)考核試卷
- 【道 法】學(xué)會(huì)自我保護(hù)+課件-2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)下冊(cè)
- 事業(yè)編 合同范例
- 2025屆高考英語(yǔ)讀后續(xù)寫提分技巧+講義
- 買房協(xié)議書樣板電子版
- 2024年無(wú)錫科技職業(yè)學(xué)院高職單招數(shù)學(xué)歷年參考題庫(kù)含答案解析
- 河南航空港發(fā)展投資集團(tuán)有限公司2025年社會(huì)招聘題庫(kù)
- 綿陽(yáng)市高中2022級(jí)(2025屆)高三第二次診斷性考試(二診)語(yǔ)文試卷(含答案)
- 常州初三強(qiáng)基數(shù)學(xué)試卷
- 《吞咽障礙膳食營(yíng)養(yǎng)管理規(guī)范》(T-CNSS 013-2021)
- 《經(jīng)濟(jì)學(xué)的研究方法》課件
- 仁愛七年級(jí)下冊(cè)英語(yǔ)教學(xué)計(jì)劃
評(píng)論
0/150
提交評(píng)論