版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言一一填空題
注意:源程序存放在考生文件夾下的BLANK1.C中。
1.不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
2.請(qǐng)?jiān)诔绦蛳聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
全1――泰———堂———f愛(ài)愛(ài)—―余余
1.給定程序中,函數(shù)FUN的功能是:計(jì)算出帶有頭接點(diǎn)的單向鏈表中各結(jié)點(diǎn)數(shù)據(jù)域之和作為函數(shù)值返|口|。
#include<stdio.h>
#include<stdlib.h>
#defineN8
typedefstructlist
{intdata;
structlist*next;
}SLIST;
SLIST*creatlist(int*);
voidoutlist(SLIST*);
intfun(SLIST*h)
{SLIST*p;ints=0;
p=h->next;
while(p)
(
s+=p->___1___;data
/**********************************found***********亭*********:
p=p->___2___;next
}
returns;}
main()
{SLIST*head;
inta[N]={12,87,45,32,91,16,20,48);
head=creatlist(a);outlist(head);
printf(n\nsum=%d\nn,fun(___3___));head
SLIST*creatlist(inta[])
{SLIST*h,*p,*q;inti;
h=p=(SLIST*)malloc(sizeof(SLIST));
fbr(i=O;i<N;i++)
{q=(SLIST*)malloc(sizeof(SLIST));
q->data=a[i];p->next=q;p=q;
p->next=0;
returnh;
}
voidoutlist(SLIST*h)
{SLIST*p;
p=h->next;
if(p==NULL)printf(nThclistisNULL!\n");
else
{printf("\nHead");
do
{printf(n->%dn,p->data);p=p->next;}
while(p!=NULL);
printfCn->End\n");
2.給定程序中,函數(shù)FUN的功能是:求出形參SS所指字符串?dāng)?shù)組中最長(zhǎng)字符串的長(zhǎng)度,其余字符串左邊
用字符*補(bǔ)齊,使其與最長(zhǎng)的字符串等長(zhǎng)。字符串?dāng)?shù)組中工有M個(gè)字符串,且串長(zhǎng)<N。
#include<stdio.h>
#include<string.h>
#defineM5
#defineN20
voidfun(char(*ss)[N])
{inti,j,k=0,n,m,len;
fbr(i=O;i<M;i++)
{len=strlen(ss[i]);
if(i=0)n=len;
if(len>n){
n=len;k=___11
)
fdr(i=O;i<M;i++)
if(i!=k)
{m=n;
len=strlen(ss[i]);
for(j=_2—;j>=O;j-)len
ss[i][m-]=ss[i][j];
fdr(j=O;j<n-len;j-H-)
ss[i]U]=_3.
main()
{chars[M][N]={nshanghain,,,guangzhou,,,nbeijingn;,tianjingn,ncchongqingn};
inti;
printff'\nTheoriginalstringsare:\nH);
fbr(i=O;i<M;i++)printf("%s\n”,ss[i]);
printf(n\nM);
ftin(ss);
printf(n\nTheresult:\nn);
fbr(i=O;i<M;i-H-)printf(H%s\n",ss[i]);
)
3.人員記錄由編號(hào)和出生年,月,日組成,N名人員的數(shù)據(jù)已在主函數(shù)中存入結(jié)構(gòu)體數(shù)組std且編號(hào)唯一。
函數(shù)fun的功能是;找出指定編號(hào)人員的數(shù)據(jù),作為函數(shù)值返回,有主函數(shù)輸出,若指定編號(hào)不存在,返回?cái)?shù)
據(jù)中的編號(hào)為空串。
#include<stdio.h>
#include<string.h>
#defineN8
typedefstruct
{charnum[10];
intyear,month,day;
}STU;
___1___fun(STU*std,char*num)STU
{inti;STUa={,,n,9999,99,99};
for(i=0;i<N;i++)
if(strcmp(2,num)=0)std[i].num
return(___3);std[i]
returna;
main()
{STUstd[N]={{"111lir,,1984,2,15},{,,222222H,1983,9,21},{M333333t,,1984,9,1},
{“444444”,1983,7,15},『555555”,1984,9,28},{“666666”,1983,11,15},
「777777”,1983,6,22},{“888888”,1984,8,19}};
STUp;charn[10]=H666666M;
p=fun(std,n);
ifi[p.num[0]=0)
printfi(H\nNotfound!\n");
else
printf(n\nSucceed!\n”);
printf(,,%s%d-%d-%d\nM,p.num,p.year,p.month,p.day);
4.給定程序中已建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表中的各結(jié)點(diǎn)按數(shù)據(jù)域遞增有序鏈接。函數(shù)fun的
功能:刪除鏈表中數(shù)據(jù)域值相同的結(jié)點(diǎn),使之保留一個(gè)。
#include<stdio.h>
#include<stdlib.h>
#defineN8
typedefstructlist
{intdata;
structlist*next;
}SLIST;
voidfiin(SLIST*h)
{SLIST*p,*q;
p=h->next;
if(p!=NULL)
{q=p->next;
while(q!=NULL)
{if(p->data=q->data)
{p->next=q->next;
/**********************************found*********************************/
free(___1___);q
q=p->2;next
}
else
{p=q;
q=q->___3___;next
)
)
)
}
SLIST*creatlist(int*a)
{SLIST*h,*p,*q;inti;
h=p=(SLIST*)malloc(sizeof(SLIST));
for(i=0;i<N;i-H-)
{q=(SLIST*)malloc(sizeof(SLIST));
q->data=a[i];p->next=q;p=q;
)
p->next=0;
returnh;
}
voidoutlist(SLIST*h)
{SLIST*p;
p=h->next;
if(p==NULL)printf(H\nThelistisNULL!\n");
else
{printff'nHead)
do{printf(n->%dH,p->data);p=p->next;}while(p!=NULL);
printf(n->End\n");
main()
{SLIST*head;inta[N]={l,2,2,3,4,4,4,5);
hcad=creatlist(a);
printf(n\nThelistbeforedeleting:\nH);outlist(head);
fun(hcad);
printf("\nThelistafterdeleting:\nn);outlist(head);
5.函數(shù)fun的功能是進(jìn)行數(shù)字字符轉(zhuǎn)換。若形參ch中是數(shù)字字符P?9;則。轉(zhuǎn)換成9,T轉(zhuǎn)換成8,2
轉(zhuǎn)換成7...9轉(zhuǎn)換成5若是其他字符則保持不變;并將轉(zhuǎn)換后的結(jié)果作為函數(shù)值返回.
tfinclude<stdio.h>
_1__fun(charch)char
if(ch>=O&&2)ch<=,9,
return9-(ch-___3___);'O'
returnch;
}
main()
{charcl,c2;
printf(M\nTheresult:\nH);
cl='2f;c2=fun(cl);
printf(Mcl=%cc2=%c\n",cl,c2);
cl=8;c2=fun(cl);
printf(Hc1=%cc2=%c\n",c1,c2);
cl-a1;c2=fun(cl);
printf(Mcl=%cc2=%c\n",c1,c2);
6.給定程序中,函數(shù)fun的功能是:對(duì)形參ss所指字符串?dāng)?shù)組中的M字符串按長(zhǎng)度由短到長(zhǎng)進(jìn)行排序。
SS所指字符串?dāng)?shù)組中共有M個(gè)字符串,且串長(zhǎng)〈N。
#include<stdio.h>
#include<string.h>
#defineM5
#defineN20
voidfiin(char(*ss)[N])
{inti,j,k,n[M];chart[N];
for(i=0;i〈M;i++)n[i]=strlen(ss[i]);
for(i=0;i-H-)
{k=i;
fbr(j=___1___;j<M;j-H-)i+1
if(n[k]>n[j])k=_2_;j
if(k!=i)
{strcpy(t,ss[i]);
strcpy(ss[i],ss[k]);
strcpy(ss[k],___3___);t
n[k]=n[i];
}
main()
{chars[M][N]={”shanghai”,"guangzhou"Jbeijing"Jtianjing”Jcchongqing”};
inti;
printf(n\nTheoriginalstringsare:\nn);
fbr(i=O;i<M;i++)printf(n%s\n",ss[i]);
printf(,,\nH);
fun(ss);
printf(n\nTheresult:\n");
fbr(i=O;i<M;i++)printf{n%s\n",ss[i]);
7.函數(shù)FUN的功能是:從三個(gè)形參a,b,c中找出中間的哪個(gè)數(shù),作為函數(shù)值返回。例如,當(dāng)a=3,b=5,c=4時(shí),
中數(shù)為4。
#include<stdio.h>
intfun(inta,intb,intc)
{intt;
t=(a>b)?(b>c?b:(a>c?c:___1___)):((a>c)?___2___:((b>c)?c:___3___));
returnt;
}1.a2.a3.b
main()
{intal=3,a2=5,a3=4,r;
r=fun(al,a2,a3);
printf(n\nThemiddlenumberis:%d\nH,r);
8.給定程序中,函數(shù)FUN的功能是:統(tǒng)計(jì)出帶有頭結(jié)點(diǎn)的單向鏈表中接點(diǎn)的個(gè)數(shù),存放在形參N所指的存
儲(chǔ)單元中。
#include<stdio.h>
#include<stdlib.h>
#defineN8
typedefstnictlist
{intdata;
structlist*next;
}SLIST;
SLIST*creatlist(int*a);
voidoutlist(SLIST*);
voidfun(SLIST*h,int*n)
{SLIST*p;
/*******************************************************************/
*n=1;0
p=h->next;
while(p)
{(*n)++;
P=____2.p->next
main()
{SLIST*head;
inta[N]={12,87,45,32,91,16,20,48},num;
head=creatlist(a);outlist(head);
fiin(head,____3);&num
printf(n\nnumber=%d\n,,,nuiTi);
}
SLIST*creatlist(inta[])
{SLIST*h,*p,*q;inti;
h=p=(SLIST*)malloc(sizeof(SLIST));
for(i=0;i<N;i-H-)
{q=(SLIST*)malioc(sizeof(SLIST));
q->data=a[i];p->next=q;p=q;
)
p->next=0;
returnh;
}
voidoutlist(SLIST*h)
{SLIST*p;
p=h->next;
if(p==NULL)printfC'ThelistisNULL!\n)
else
{printf("\nHead");
do
{printf(n->%dn,p->data);p=p->next;}
while(p!=NULL);
printfCM->End\n");}}
9.給定程序的功能是:調(diào)用函數(shù)FUN將指定源文件中的內(nèi)容復(fù)制到指定的目標(biāo)文件中,復(fù)制成功時(shí)函數(shù)
返回值為1,失敗時(shí)返回值為0。在復(fù)制的過(guò)程中,把復(fù)制的內(nèi)容輸出到終端屏幕。主函數(shù)中源文件名房子
變量sfname中,目標(biāo)文件名放在變量tfname中。
#include<stdio.h>
#include<stdlib.h>
intfiin(char*source,char*target)
{FILE*fs,*ft;charch;
if((fs=fopen(source,_1_))=NULL)"rn
return0;
if((ft=fbpen(target,nw"))==NULL)
return0;
printf("\nThedatainfile:\nM);
ch=fgetc(fs);
while(!feofi(___2___))fs
{putchar(ch);
/**********************************^^und*****************************
fputc(ch,___3___);ft
ch=fgetc(fs);
}
fclose(fs);fclose(ft);
printf(,,\n\n");
return1;
}
main()
{charsfhame[20]=,,myfilel",tfhame[20]="myfile2";
FILE*myf;inti;charc;
myf=fbpen(sfhame,"w”);
printf(H\nTheoriginaldata:\nH);
for(i=l;i<30;i++){c='A,+rand()%25;fprintf(myf;,%c,,,c);printf("%cM,c);)
fclose(myf);printf(n\n\nn);
if(fun(sfhame,tfname))printf(nSucceed!n);
elseprintff'Fail!”);
10.給定程序中,函數(shù)FUN的功能是:在形參S所指字符串中的每個(gè)數(shù)字字符之后插入一個(gè)*。例如,形參
S所指字符串為:def35adh3kjsdf7.執(zhí)行結(jié)果為:def3*5*adh3*kjsdf7*
#include<stdio.h>
voidfun(char*s)
{inti,j,n;
for(i=0;s[i]!=、0';i++)
if(s[i]>=,0,_1_s[i]<=,9,)&&
{n=0;
while(s[i+l+n]!=2___)n++;'\0'
fbr(j=i+n+l;j>i;j-)
s[j+l]=_3一;s[j]
s[j+l]-**;
i=i+l;
}
}
main()
{chars[80]=nba3a54cd23an;
printf("\nTheoriginalstringis:%s\n',,s);
fun(s);
printf(n\nTheresultis:%s\nM,s);
11.給定程序中,函數(shù)FUN的功能是:將形參STD所指結(jié)構(gòu)體數(shù)組中年齡最大者的數(shù)據(jù)作為函數(shù)值返回,
并將main函數(shù)輸出。
#include<stdio.h>
typedefstruct
{charname[10];
intage;
}STD;
STDfiin(STDstd[],intn)
{STDmax;int
max=1;std[O]
fbr(i=l;i<n;i++)
ififmax.age<2___)max=std[i];std[i].age
returnmax;
}
main()
{STDstd[5]={naaan,l7Jbbb”,16Jccc”,18Jddd”,17Jeee”,15};
STDmax;
max=fun(std,5);
printf(**\nTheresult:\nn);
printf(u\nName:%s,Age:%d\n",___3___,max.age);
12.給定程序中,函數(shù)fun功能是:在帶有頭結(jié)點(diǎn)的單向鏈表中,查找數(shù)據(jù)域中為CH的結(jié)點(diǎn),找到后通過(guò)函
數(shù)值返回該結(jié)點(diǎn)在鏈表中所處的順序號(hào);若不存在值為CH的結(jié)點(diǎn),函數(shù)返回0值。
#include<stdio.h>
#include<stdlib.h>
#defineN8
typedefstructlist
{intdata;
structlist*next;
}SLIST;
SLIST*creatlist(char*);
voidoutlist(SLIST*);
intfun(SLIST*h,charch)
{SLIST*p;intn=0;
p=h->next;
/**********************************found*********************************/
while(p!=___1___)NULL
{n++;
if(p->data=ch)return___2n
elsep=p->next;
return0;
main()
{SLIST*head;intk;charch;
chara[N]={,m7p7g,;a7w',,x7r,,,d,};
head=creatlist(a);
outlist(head);
printf(HEnteraletter:0);
scanf^n%cH,&ch);
k=fun(_3_);head,ch
if(k==O)printf「\nNotfbund!\nH);
elseprintf{"Thesequencenumberis:%d\nn,k);
SLIST*creatlist(char*a)
{SLIST*h,*p,*q;inti;
h=p=(SLIST*)malloc(sizeof(SLIST));
fbr(i=O;i<N;i++)
{q=(SLIST*)malloc(sizeof{SLIST));
q->data=a[i];p->next=q;p=q;
p->next=O;
returnh;
}
voidoutlist(SLIST*h)
{SLIST*p;
p=h->next;
if(p==NULL)printf(M\nThelistisNULL!\n");
else
{printfC'\nHeadn);
do
{printf(,'->%cn,p->data);p=p->next;}
while(p!=NULL);
printf(n->End\n");
13.給定程序的功能是:從鍵盤(pán)輸入若干行文本(每行不超過(guò)80個(gè)字符),寫(xiě)到文件myfile4.txt中,用-1作
為字符串輸入結(jié)素的標(biāo)志。然后將文件的內(nèi)容讀出顯示在屏幕上。文件的讀寫(xiě)分別由自定義函數(shù)
readText和writeText實(shí)現(xiàn)。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidWriteText(FILE*);
voidReadText(FILE*);
main()
{FILE*fp;
if((fp=fbpen(,,myfile4.txt,7,wn))=NULL)
{print"'openfail!!\n");exit(O);}
WriteText(fp);
fclose(fp);
if((fp=fbpen(,,myfile4.txt,7,rM))==NULL)
{printf("openfail!!\n");exit(O);}
ReadText(fp);
fclose(fp);
}
voidWriteText(FILE___1___)*fw
{charstr[81];
printf{n\nEnterstringwith-1toend:\n");
gets(str);
while(strcmp(str,n-ln)!=O){
fputs(2_,fw);fputsC^n^fw);
gets(str);
voidReadText(FILE*fr)
{charstr[81];
printff'WReadfileandoutputtoscreen:\n");
fgets(str,81,fr);
while(!feof(fr)){
printf(M%s",_3_);str
fgets(str,81,fr);
14.給定程序中,函數(shù)FUN的功能是:有NXN矩陣,根據(jù)給定的m(m〈=N)值,將每個(gè)元素中的值均右移m
個(gè)位置,左邊置為Oo例如,N=3,m=2,有下列矩陣
123001
456程序執(zhí)行結(jié)果為004
789007
#include<stdio.h>
#defineN4
voidfun(int(*t)[N],intm)
{inti,j;
fbr(i=O;i<N;_1_)i"
{for(j=N-l-m;j>=0;j-)
t[i]U+_2_]=t[i][j];
for(j=O;j<_3_;j++)m
t[i]Ul=O;
main()
{intt[][N]={21,12,13,24,25,16,47,38,29,ll,32,54,42,21,33,10},i,j,m;
printfi(n\nTheoriginalarray:\nM);
for(i=0;i<N;i++)
{for(j=O;j<N;j++)
printff%2d",t[i][j]);
printf(HInputm(m<=%d):H,N);scanf("%d",&m);
fun(t,m);
printf(u\nTheresultis:\nn);
for(i=O;i<N;i++)
{for(j=0;j〈N;j++)
printf("%2dn,t[i][j]);
printff\n“);
15.函數(shù)FUN的功能是;把形參a所指數(shù)組中的最大值放在a[0]中,接著求出a所指數(shù)組中的最小值防
在a[l]中;再把a(bǔ)所指數(shù)組元素中的次大值a[2]中,把a(bǔ)所指數(shù)組的數(shù)據(jù)最初排列為:1,4,2,3,9,6,5,8,7,則按
規(guī)則移動(dòng)后,數(shù)據(jù)排列為:9』,8,2,7,3,6,4,5。形參n中存放a所指數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
#include<stdio.h>
#defineN9
/*******************************************************************/
voidfun(int___1___,intn)
{inti,j,max,min,px,pn,t;
for(i=0;i<n-l;i+=2____)2
{max=min=a[i];
px=pn=i;
for(j=_3_;j<n;j++)i+1
{if(max<a[j])
{max=a[j];px=j;}
if(min>a[j])
{min=a[j];pn=j;}
if(px!=i)
{t=a[i];a[i]=max;a[px]=t;
if(pn==i)pn=px;
if(pn!=i+1)
{t=a[i+1];a[i+1]=min;a[pn]=t;}
main()
{intb[N]={1,4,2,396,5,8,7}』
printf(,,\nTheoriginaldata:\nM);
for(i=0;i<N;i-H-)printf(H%4d”,b[i]);
printf(n\nn);
fun(b,N);
printf(,'\nThedataaftermoving:\n");
fbr(i=0;i<N;i-H-)printf(H%4d”,b[i]);
printf(n\nn);
16.給定程序中,函數(shù)FUN的功能是;求SS所指字符串?dāng)?shù)組中長(zhǎng)度最廣的字符串所在的行下標(biāo),作為函數(shù)
值返回,并把其串長(zhǎng)防在形參n所指變量中。SS所指字符串?dāng)?shù)組中共有M個(gè)字符串,且串長(zhǎng)vNo
#include<stdio.h>
#defineM5
#defineN20
intfun(char(*ss)[___1___],int*n)N
{inti,k=0,len=0;
for(i=0;i<M;i++)
{len=strlen(ss[i]);
if(i=0)*n=_2.len
if(len>*n){
*n=3;len
k=i;
)
)
retum(k);
}
main()
{charss[M][N]={,,shanghai","guangzhouH,nbeijing",,,tianjing,',,,cchongqingn};
intn,k,i;
printff'\nTheoriginalstringsare:\nn);
for(i=O;i<M;i-H-)puts(ss[i]);
k=fun(ss,&n);
printf(n\nThelengthoflongeststringis:%d\n",n);
printf(n\nThelongeststringis:%s\nM,ss[k]);
17.函數(shù)FUN的功能是:逆置數(shù)組元素中的值。例如:若a所指數(shù)組中的數(shù)據(jù)依次為4,5,6,7,8,9,則逆
置后依次為98,7。6,543,2,1。形參n給出數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
#include<stdio.h>
voidfiin(inta[],intn)
{inti,t;
fbr(i=0;i<___1___;i++)n/2
t=a[i];
a[i]=—2.a[n-l-i];
a[n-l-i]=_3—;t
main()
{intb[9]={l,2,3,4,5,6,7,8,9},i;
printf(M\nTheoriginaldata:\nn);
for(i=0;i<9;i++)
printf("%4d”,b[i]);
printf(n\nu);
fun(b,9);
printff'\nThedataafterinvert:\n");
for(i=0;i<9;i++)
printfC%4d”,b[i]);
printf(n\nn);
18.給定程序中,函數(shù)FUN的功能是:在形參S所指字符串中尋找與參數(shù)C相同的字符,并在其后插入一
個(gè)與之相同的字符,若找不到相同的字符則函數(shù)不做任何處理。例如,S所指字符串:baacda,c中的字符為:a,
執(zhí)行后S所指字符串為:baaaacdaa。
#include<stdio.h>
voidfun(char*s,charc)
{inti,j,n;
/**********伯und**********/
for(i=0;s[i]!=_1_;i++)
if(s[i]=c)
]********************/
n=____2____;0
while(s[i+1+n]!=,\0,)n++;
for(j=i+n+1;j>i;j-)s[j+1]=s[j];
:******************/
sU+l]=sL_3_];
i=i+1;
main()
{chars[80]=nbaacdaM,c;
printf(u\nThestring:%s\nM,s);
printf(,f\nlnputacharacter:");scanf(M%cH,&c);
fun(s,c);
printf(n\nTheresultis:%s\n",s);
19.函數(shù)FUN的功能是:把形參a所指數(shù)組總的奇數(shù)原順序依次存放到a[0],a[l],a[2]中,把偶數(shù)從數(shù)
組中刪除,奇數(shù)個(gè)數(shù)通過(guò)函數(shù)值返回。例如:若a所指數(shù)組中的數(shù)據(jù)最初排列為:9、1、4、2、3、6、5、8、
7,刪除偶數(shù)后,a所指數(shù)組中數(shù)據(jù)為:9、1、3、5、7,返回值為5。
#include<stdio.h>
#defineN9
intfun(inta[],intn)
{inti,j;
j=O;
for(i=0;i<n;i++)
if(a[i]%2=_1_)1
/**********************************i^ound*********************************/
a[j]=a[i];—2_;j++
}
return3;i
main()
{intb[N]={9』,4,2,3,6,5,8,7},i,n;
printf(n\nTheoriginaldata:\n");
for(i=0;i<N;i++)printf(M%4d\b[i]);
printf(n\nH);
n=fun(b,N);
printf(n\nThenumberofodd:%d\n”,n);
printf(n\nTheoddnumber:\n");
for(i=0;i<n;i++)printff%4d”,b[i]);
printf(,,\nn);
20.給定程序的功能是:調(diào)用函數(shù)FUN將指定源文件中的內(nèi)容復(fù)制到指定的目標(biāo)文件中,復(fù)制成功時(shí)函數(shù)
返回值為0。在復(fù)制的過(guò)程中,把復(fù)制的內(nèi)容輸出到終端屏幕。主函數(shù)中源文件名防在變量sfnamc中,目
標(biāo)文件名放在變量tfname中。
#include<stdio.h>
#include<stdlib.h>
intfiin(char*source,char*target)
{FILEcharch;
if((fs=fopen(source,_1_))=NULL)T
return0;
if((ft=fbpen(target,nw"))==NULL)
return0;
printf(n\iiThedatainfile:\n)
ch=fgetc(fs);
while(!feof(___2___))fs
{putchar(ch);
fputc(ch,___3___);ft
ch=fgetc(fs);
fclose(fs);fclose(ft);
printf(n\n\nn);
return1;
main()
{charsfname[20]=,,myfilel",tfhame[20]="myfile2";
FILE*myf;inti;charc;
myf=fopen(sfhame,"wn);
printf(n\nTheoriginaldata:\nn);
fbr(i=l;i<30;i-H-){c=,A,+rand()%25;fprintf(myf;,,%c,,,c);printf("%cH,c);}
fclose(myf);printf(n\n\nn);
if(fun(sfhame,tfname))printf(nSucceed!n);
elseprintfCFail!”);
21.函數(shù)FUN的功能是:計(jì)算
xX
八工)=i+X+------■+????
2!.22\一
直到一<10".若x=2.5,函數(shù)值為:12.182494.
n\
#include<stdio.h>
#include<math.h>
doublefiin(doublex)
{double£t;intn;
f=1.0+_1_;x
t=x;
n=1;
do{
n++;
t*=x/2n
f+=_1_;t
}while(fabs(t)>=le-6);
returnf;
main()
{doublex,y;
x=2.5;
y=fun(x);
printf(f,\nTheresultis:\n");
printffx=%?12.6fy=%-12.6f\nH,x,y);
22.給定程序中,函數(shù)FUN的功能是:統(tǒng)計(jì)形參S所指字符串中數(shù)字字符出現(xiàn)的次數(shù),并存放在形參t所
指的變量中最后在函數(shù)中輸出。例如,形參所指的字符串為:abcdef35adgh3kjsdf7,輸出結(jié)果為:4。
#include<stdio.h>
voidfun(char*s,int*t)
{inti,n;
n=0;
for(i=0;_1_!=NULL;i++)s[i]
/**********************************found*********************************/
ifi[s[i]>=,0,&&s[i]<=_2_)n++;9
*t=_3—;
}
main()
{chars[80]=Mabcdef35adgh3kjsdnn;
intt;
printf(,'\nTheoriginalstringis:%s\nn,s);
fun(s,&t);
printf(H\nTheresultis:%d\nn,t);
23.用篩選法可得到2—n(nvlOOOO)之間的所有素?cái)?shù),方法是:首先從素?cái)?shù)2開(kāi)始,將所有2的倍數(shù)的數(shù)從
數(shù)表中刪去(把數(shù)表中相應(yīng)位置的值置成0)接著從數(shù)表中找下一個(gè)非0數(shù),并從數(shù)表中找下一個(gè)非0數(shù),
并從數(shù)表中刪去該書(shū)的所有倍數(shù):依次類推,直到所找的卜一個(gè)數(shù)等于n為止。這樣會(huì)得到一個(gè)序
列:2,3,5,7,11,13,17,19,23........
函數(shù)FUN用篩選法找出所有小于等于n的素?cái)?shù),并統(tǒng)計(jì)素?cái)?shù)的個(gè)數(shù)作為函數(shù)值返回。
#include<stdio.h>
intfun(intn)
{inta[10000],i,j,count=0;
for(i=2;i<=n;i++)a[i]=i;
i=2;
while(i<n){
for(j=a[i]*2;j<=n;j+=_1_)a[i]
a[j]=0;
i++;
while(a[i]=—1_)0
i++;
printf^'VnTheprimenumberbetween2to%d\n",n);
for(i=2;i<=n;i++)
if(a[i]!=3)0
{count++;printf(count%15?"%5dH:n\n%5dn,a[i]);}
returncount;
}
main()
{intn=20,r;
r=fun(n);
printff'\nThenumberofprimeis:%d\nn,r);
24.給定程序中,函數(shù)FUN的功能是:將NXN矩陣主對(duì)角線元素中的值與反向?qū)蔷€對(duì)應(yīng)位置上元素
中的值進(jìn)行交換。例如,若N=3,有下列矩陣:
123321
456交換后為:456
789987
#include<stdio.h>
#defineN4
voidfun(int___1___,intn)t[N][N]
{inti,s;
fbr(___2___;i++)i=0;i<N
{s=t[i][i];
t[i][i]=t[i][n-i-l];
t[i][n-l-i]=_3_;s
main()
{intt[][N]={21,l2,13,24,25,16,47,38,29,11,32,54,42,21,33,10},ij;
printf{n\nTheoriginalarray:\nH);
fbr(i=O;i<N;i++)
{for(j=0;j<N;j++)prmtfCt%d1[i皿);
printff'n”);
fun(t,N);
printf(n\nTheresultis:\n**);
for(i=O;i<N;i-H-)
{for(j=0;j<N;j++)printff%dn,t[i][j]);
printffW”);
25.給定程序中,函數(shù)FUN的功能是:在形參S所指字符串中尋找與參數(shù)C相同的字符,并在其后插入一
個(gè)與相同的字符,若找不到相同的字符則函數(shù)不做任何處理。
例如,S所指字符串為:baacda,執(zhí)行后S所指字符串為:baaaacdaa
#include<stdio.h>
voidfun(char*s,charc)
{inti,j,n;
for(i=0;s[i]!=___1___;i++)
if(s[i]==c)
n=_2_;
while(s[i+1+n]!-\0,)n++;
for(j=i+n+l;j>i;j-)s[j+l]=s[j];
sU+l]=_3_;
i=i+l;
}
}
main()
{chars[80]=,,baacdaM,c;
printf(n\nThestring:%s\nH,s);
printf(f,\nInputacharacter:");scanf(,,%c,\&c);
fun(s,c);
printf(n\nTheresultis:%s\nM,s);
26.函數(shù)FUN的功能是:把形參a所指數(shù)組中的最小值防在元素a[0]中,接著把形參a所指數(shù)組中的最大
值放在a[l]元素中;再把a(bǔ)所指數(shù)組元素中的次小值放在a⑵中,把a(bǔ)所指數(shù)組元素中的次大值放在a[北
其余以次類推。例如:若a所指數(shù)組中的數(shù)據(jù)最初排列為91,42365,8,7;則按規(guī)則移動(dòng)后,數(shù)據(jù)排列
為:1,9,2,8,374,6,5。形參n中存放a所指數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
注意:規(guī)定FUN函數(shù)中的MAX存放當(dāng)前所找的最大值,PX存放當(dāng)前所找最大值的下標(biāo)。
#include<stdio.h>
#defineN9
voidfiin(inta[],intn)
{inti,j,max,min,px,pn,t;
for(i=0;i<n-l;i+=2)
max=min=1a[i]
px=pn=i;
fbr(j=i+l;j<n;j++){
if(max<2___)a[j]
{max=a[j];px=j;}
if(min>_3_)a[j]
{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+l)
{t=a[i+l];a[i+l]=max;a[px]=t;}
)
main()
{intb[N]={9,1,423,6,5,8,7}』
printf{n\nTheoriginaldata:\nn);
for(i=0;i<N;i++)printf(H%4db[i]);
printf(n\nn);
fun(b,N);
printftH\nThedataaftermoving:\nn);
fbr(i=0;i<N;i-H-)printf(H%4d”,b[i]);
printf(,,\nu);
27.甲乙丙丁四人同時(shí)開(kāi)始放鞭炮,甲每隔tl秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4
秒放,次,每人各放n次函數(shù)FUN的功能是根據(jù)形參提供的值,求出總共聽(tīng)到多少次鞭炮聲作為函數(shù)值返
回。注意,當(dāng)幾個(gè)鞭炮同時(shí)炸響,只算一次響聲,每次響聲,第一次響聲是在第0秒。
#include<stdio.h>
#defineOK(i,t,n)((_1_%t=0)&&(i/t<n))
intfun(inttl,intt2,intt3,intt4,intn)
{intcount,t,maxt=tl;
if(maxt<t2)maxt=t2;
if(maxt<t3)maxt=t3;
if(maxt<t4)maxt=t4;
count=l;/*給count賦初值*/
for(t=l;t<maxt*(n-l);___2___)t++
if(OK(t,tl,n)||OK(t,t2,n)||OK(t,t3,n)||OK(t,t4,n))
count-H-;
return3count
main()
{inttl=7,t2=5,t3=6,t4=4,n=10,r;
r=fiin(tl,t2,t3,t4,n);
printf("Thesound:%d\n",r);
28.給定程序的功能是調(diào)用FUN函數(shù)建立班級(jí)通訊錄。通訊錄中記錄每位同學(xué)的編號(hào),姓名和電話號(hào)碼。
班級(jí)的人數(shù)和學(xué)生的信息從鍵盤(pán)讀入,每個(gè)人的信息作為一個(gè)數(shù)據(jù)塊寫(xiě)到名為myfile5.dat的二進(jìn)制文件
中。
#include<stdio.h>
#include<stdlib.h>
#defineN5
typedefstruct
{intnum;
charname[10];
chartel[10];
}STYPE;
voidcheck();
intftm(___1*std)STYPE
2_*fp;intFILE
if((3=fbpen("myfHe5.dat“Jwb"))=NULL)
retum(O);
printf(H\nOutputdatatofile!\nM);
fdr(i=O;i<N;i++)
fwrite(&std[i],sizeof(STYPE),1,___3___);fp
fclose(lp);
return(1);
main()
,,,,,,,,M
{STYPEs[10]={{l;'aaaaa\llllir},{l;bbbbbV222222},{l;ccccc'',''333333},
{l,"
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物進(jìn)化論解析
- 小兒泌尿外科理論試題及答案
- 萬(wàn)達(dá)體育產(chǎn)業(yè)生態(tài)構(gòu)建-洞察分析
- 行業(yè)競(jìng)爭(zhēng)風(fēng)險(xiǎn)預(yù)警-洞察分析
- 《學(xué)校實(shí)務(wù)管理》課件
- 營(yíng)地服務(wù)區(qū)域差異化競(jìng)爭(zhēng)-洞察分析
- 算子空間結(jié)構(gòu)分析-洞察分析
- 魚(yú)腹結(jié)構(gòu)輕量化設(shè)計(jì)-洞察分析
- 細(xì)胞周期調(diào)控機(jī)制-第4篇-洞察分析
- 移民心理適應(yīng)干預(yù)-洞察分析
- 《機(jī)械制造技術(shù)基礎(chǔ)》期末考試試卷及答案
- 應(yīng)急救援員(五級(jí))理論知識(shí)考試題及答案
- 初中動(dòng)點(diǎn)問(wèn)題題目
- 前程無(wú)憂行測(cè)題庫(kù)及答案大全
- 合伙人權(quán)益糾紛解決合同
- 糧食工程技術(shù)專業(yè)人才培養(yǎng)方案(三年制高職)
- 理發(fā)店承包方案
- 機(jī)電材料見(jiàn)證取樣復(fù)試
- 二線干部工作總結(jié)
- 土石方挖運(yùn)工程承包合同范本
- 山東省濟(jì)南市七年級(jí)上學(xué)期期末英語(yǔ)試卷(附答案)
評(píng)論
0/150
提交評(píng)論