全國(guó)計(jì)算機(jī)等級(jí)考試c語(yǔ)言――填空題_第1頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試c語(yǔ)言――填空題_第2頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試c語(yǔ)言――填空題_第3頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試c語(yǔ)言――填空題_第4頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試c語(yǔ)言――填空題_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論