二級C上機題庫_第1頁
二級C上機題庫_第2頁
二級C上機題庫_第3頁
二級C上機題庫_第4頁
二級C上機題庫_第5頁
已閱讀5頁,還剩197頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

上機題庫

第一部分填空題

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

1.不得增行或刪行,也不得更改程序的結構!

2.請在程序下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。

1.給定程序中,函數FUN的功能是:計算出帶有頭接點的單向鏈表中各結點數據域之和作為函數值返回。

#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)

data

p=p->―2.

)

returns;

)

main()

{SLIST*head;

inta[N]={l2,87,45,32,91J6,20,48);

head=creatlist(a);outlist(head);

printf("\nsum=%d\n",fun(__3___));head不寫形參類型卜一帶格式的:字體顏色:紅色

SLIST*creatlist(inta[])

{SLIST*h,*p,*q;inti;

h=p=(SLIST*)malloc(sizeof(SLIST));

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

{q=(SLIST*)maUoc(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(HThelistisNULL!\nH);

else

{printf(H\nHead");

do

{printf(,'->%dn,p->data);p=p->next;}

while(p!=NULL);

printf(H->End\nH);

)

2.給定程序中,函數FUN的功能是:求出形參SS所指字符串數組中最長字符串的長度,其余字符串左邊用一」帶格式的:突出顯示

字符*補齊,使其與最長的字符串等長。字符串數組中工有M個字符串,且串長vN。

#include<stdio.h>

#include<string.h>

#defineM5

#defineN20

voidfun(char(*ss)[N])

{inti,j,k=0,n,m,len;

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

{len=strlen(ss[i]);

if(i==0)n=len;

if(len>n){

n=len;求出最長字符串的長度

}

)

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

if(i!=k)

{m=n;

len=strlen(ss[i]);

for(j=___2___;j>=0;j-)len

sslilfm-將小于N的字符串的值從后賦值

for(.j=0;j<n-len;j++)

ss[i][j]=____3____;給左邊的賦*

)

)

main()

{chars[M][N]={Hshanghai,,;,guangzhou',,nbeijing,\,,tianjingn,ncchongqingn};

inti;

printf("\nTheoriginalstringsare:\nH);

+

for(i=0;i<M;i++)printf(M%s\nn,ss[i]);

printfCXn");

fun(ss);

printf(H\nTheresult:\nH);

for(i=0;i<M;i++)printf(n%s\nn,ss[i]);

3.人員記錄由編號和出生年,月,日組成,N名人員的數據已在主函數中存入結構體數組std且編號唯一。函

數fun的功能是;找出指定編號人員的數據,作為函數值返回,有主函數輸出,若指定編號不存在返回數據

中的編號為空串。

#include<stdio.h>

#include<string.h>

#detmeN8

typedefstruct

{charnum[10];

intyear,month,day;

}STU;

___1___fun(STU*std,char*num)STU

{inti;STUa={””,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]={{n1111111984,2,15},{n222222n,1983,9,21},{H333333M,1984,9,1},

{??444444,;1983,7,15},{,,555555,,,1984,9,28},{,,666666,;1983,1145},

{“7777,,,1983,6,22},{“888888”,1984,8,19}};

STUp;charn[10]=n666666H;

p=fun(std,n);

if(p.num[0]==0)

printfC'XnNotfound!\nM);

printf(n\nSucceed!\n");

printf(H%s%d-%d-%d\nn,p.nuni,p.year,p.month,p.day);

4.給定程序中已建立一個帶有頭結點的單向鏈表,鏈表中的各結點按數據域遞增有序鏈接。函數fun的功

能:刪除鏈表中數據域值相同的結點,使之保留一個。

#include<stdio.h>

#include<stdlib.h>

#deflneN8

typedefstructlist

{intdata;

+

structlist*next;

}SLIST;

voidfun(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;

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++)

{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)printf(H\nThelistisNULL!\nH);

else

{printfC^XnHead**);

do{pnntf(n->%d',,p->data);p=p->next;}while(p!=NULL);

printf(H->End\nn);

)

}

main()

{SLIST*head;inta[N]={l,2,2,3,4,4,4,5};

head=creatlist(a);

printf(n\nThelistbeforedeleting:\nH);outlist(head);

fun(head);

printf(H\nThelistafterdeleting:\nM);outlist(head);

+

5.函數hm的功能是進行數字字符轉換。若形參ch中是數字字符,0~歹,則W轉換成9,T轉換成8,2

轉換成7…9轉換成若是其他字符則保持不變;并將轉換后的結果作為函數值返回.

#include<stdio.h>

_fun(charch)char

if(ch>='0‘&&-2___)ch<=,9,

returnf9,-(ch-—3—);'O'

returnch;

)

main()

{charcl,c2;

printf(u\nTheresult:\n'*);

cl=*2*;c2=fun(cl);

printf(**cl=%cc2=%c\n*\cl,c2);

cl=*8*;c2=fun(cl);

printf(ucl=%cc2=%c\nM,cl,c2);

cl=*a*;c2=fun(cl);

printf(Hcl=%cc2=%c\nH,cl,c2);

6.給定程序中,函數fun的功能是:對形參ss所指字符串數組中的M字符串按長度由短到長進行排序。SS

所指字符串數組中共有M個字符串,且串長<N

#include<stdio.h>

#include<string.h>

#defineM5

#defineN20

voidfun(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<M-l;i++)

{k=i;

for(j=-1—;j<M;j++)

if(n[k]>n[j])k=_2—;j

if(k!=i)

{strcpy(t^s[i]);

strcpy(ss[i],ss[k]);

strcpy(ss[k],—3—);t

n[k]=n[i];

}

)

)

+

main()

{chars[M][N]={Mshanghai,,,nguangzhou,',Mbeijing',,MtianjingM/,cchongqingM};

inti;

printf(n\nTheoriginalstringsare:\nM);

for(i=0;i<M;i++)printf(M%s\n*\ss[i]);

printf(n\nM);

fun(ss);

printf(n\nTheresult:\nM);

for(i=0;i<M;i++)printfC,%s\nM,ss[i]);

)

7.函數FUN的功能是:從三個形參a,b,c中找出中間的哪個數,作為函數值返回。例如,當a=3,b=5,c=4時,

中數為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;

a2.a3.b

main()

{intal=3,a2=5,a3=4,r;

r=fun(al,a2,a3);

printf(n\nThemiddlenumberis:%d\nH,r);

8.給定程序中,函數FUN的功能是:統(tǒng)計出帶有頭結點的單向鏈表中接點的個數,存放在形參N所指的存儲

單元中。

#include<stdio.h>

#include<stdlib.h>

#defineN8

typedefstructlist

{intdata;

structlist*next;

}SLIST;

SLIST*creatlist(int*a);

voidoutlist(SLIST*);

voidfun(SLIST*h,int*n)

{SLIST*p;

*n=0

p=h->next;

while(p)

{(*n)++;

p->next

)

+

main()

{SLIST*head;

inta[N]={12,87,45,32,91,16,20,48},num;

head=creatlist(a);outlist(head);

fun(head,___3____);&num

printf(H\nnumber=%d\n,\num);

)

SLIST*creatlist(inta[])

{SLIST*h,*p,*q;inti;

h=p=(SLIST*)malloc(sizeof(SLIST));

for(i=0;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(MThelistisNULL!\n*);

else

{printfC'VnHeadH);

do

{printf(n->%dH,p->data);p=p->next;}

while(p!=NULL);

printf(H->End\nH);

}

2給定程序的功能是:調用函數FUN將指定源文件中的內容復制到指定的目標文件中,復制成功時函數返一1燕4的:字體顏色:紅色,突

iflvflz

回值為I,失敗時返回值為0。在復制的過程中,把復制的內容輸出到終端屏幕。主函數中源文件名房子變一:--------------------------

量sfname中,目標文件名放在變量tfname中。A____________________________________帶格式的:字體顏色:紅色

#include<stdio.h>

#include<stdlib.h>

intfun(char*source,char*target)

{FILE

if((fs=fopen(source,___1___))==NULL)HrH

return0;

if((ft=fopen(target,Hwn))==NULL)

return0;

printf(H\nThedatainfile:\nH);

ch=fgetc(fc);

while(!feof(_2__))

{putchar(ch);

fputc(ch,—3—);ft

ch=fgetc(fs);

)

fclose(fs);fclose(ft);

printfC,\n\nM);

return1;

)

main()

{charsfname[20]=''myfnel”,tfname[20]=''myfile2”;

FILE*myf;inti;charc;

myf=fopen(sfname,MwH);

printf("\nTheoriginaldata:\nH);

for(i=l;i<30;i++){c=,A,+rand()%25;fprintf(myf,n%cH,c);printf(H%cH,c);}

fclose(myf);printf(n\n\nH);

if(fun(sfname,tfname))printf(HSucceed!n);

elseprintfC'Fail!”);

10.給定程序中,函數FUN的功能是:在形參S所指字符串中的每個數字字符之后插入一個,例如,形參

S所指字符串為:def35adh3kjsdf7.執(zhí)行結果為:dd3*5*adh3*kjsdf7*

#include<stdio.h>

voidfun(char*s)

{intij,n;

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

if(s[i]>='Of_1—s[i]<='9,)

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

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

§u+l]=_3__;——s[j]把后面帶格式的:突出顯示

的數字往后移一個

sU+H;

i=i+l;

main()

{chars[80]=Hba3a54cd23aM;

printf(H\nTheoriginalstringis:%s\nH^);

fun(s);

printf(H\nTheresultis:%s\nH,s);

11.給定程序中,函數FUN的功能是:將形參STD所指結構體數組中年齡最大者的鼓霾作為函數值返回,-—帶格式的:突出顯1匚

并將main函數輸出。

#include<stdio.h>

+

typedefstruct

{charname[10];

intage;

}STD;

STDfun(STDstd[],intn)

{STDmax;inti;

max=.std[O]

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

if(jnax.age<2)max=std[i];std[i].age帶格式的:突出顯示

returnmax;

main()

{STDstd[5]={Haaan,17,Hbbbn46,,,ccc'\18,,'dddn,17;,eeen,15};

STDmax;

max=fun(std,5);

printf("\nTheresult:\nH);

printf("\nName:%s,Age:%d\nn,3__,max.age);

12.給定程序中,函數fun功能是:在帶有頭結點的單向鏈表中,查找數據域中為CH的結點,找到后通過函

數值返回該結點在鏈表中所處的順序號;若不存在值為CH的結點,函數返回0值。

#include<stdio.h>

#include<stdlib.h>

#defineN8

typedefstructlist

{intdata;

structlist*next;

}SLIST;

SLIST*creatlist(char*);

voidoutlist(SLIST*);

intfun(SLIST*h,charch)

{SLIST*p;

p=h->next;

while(p!=___1___)NULL

{n++;

if(p->data==ch)return2.n

elsep=p->next;

)

return0;

}

main()

{SLIST*head;

chara[N]={,m\,p,,,g','ayw\,x,,,r,;d,};

+

head=creatlist(a);

outlist(head);

printf(HEnteraletter:H);

scanf(M%cn,&ch);

k=fun(___3___);]iead,ch帶格式的:突出顯示

if(k=0)printf(H\nNotfound!\nM);

elseprintf(nThesequencenumberis:%d\nn,k);

}

SLIST*creatlist(char*a)

{SLIST*h,*p,*q;inti;

h=p=(SLIST*)malIoc(sizeof(SLIST));

for(i=0;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(',\nThelistisNULL!\nM);

else

{printf(H\nHeadH);

do

{printf(**->%cH,p->data);p=p->next;}

while(p!=NULL);

printf(M->End\nH);

}

13.給定程序的功能是:從鍵盤輸入若干行文本(每行不超過80個字符),寫到文件myEe4.txt中用-1作為

字符串輸入結素的標志。然后將文件的內容讀出顯示在屏幕上。文件的讀寫分別由自定義函數read

Text和writeText實現.

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

voidWriteText(FILE*);

voidReadText(FILE*);

main()

{FILE*fp;

if((fp=fopen(Mmyfile4.txtH,,,wn))==NULL)

{printf(Mopenfail!!\nM);exit(0);}

WriteText(fp);

fclose(fp);

if((fp=fopen(nmyfiIe4.txtH,MrM))==NULL)

{printf(Hopenfail!!\nn);exit(O);}

ReadText(fp);

fclose(fp);

+

voidWriteText(FILE___1___)

{charstr[81];

printfCAnEnterstringwith-1toend:\nH);

gets(str);

while(strcmp(str;,-l',)!=O){

fputs(__2_4w);fputs(''\n'',fw);str:帶格式的:突出顯示

gets(str);

)

voidReadText(FILE*fr)

{charstr[81];

printft'AnReadfileandoutputtoscreen:\nM);

fgets(str,81,fr);

while(!feof(fr)){

printf("%s”,__3__);

fgets(str,81,fr);

}

14.給定程序中,函數FUN的功能是:有NXN矩陣,根據給定的m(mv=N)值,將每個元素中的值均右移m

個位置左邊置為0。例如,N=3,m=2,有下列矩陣

2300

6程序執(zhí)行結果為004

78007

#include<stdio.h>

#defineN4

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

{int

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

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

t[i][j+—2——]=t[i][j];m

for(j=0;j<_3—;j++)

t[i]U]=O;

}

)

main()

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

printf(n\nTheoriginalarray:\nH);

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

+

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

printf(',%2dH,t[i]|j]);

printf(H\nM);

)

printf(nInputm(m<=%d):[N);scanf「%d”,&m);

fun(t,m);

printfCAnTheresultis:\nH);

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

{forO=0;j<N;j++)

printfC,%2d

printf(n\nM);

)

15.函數FUN的功能是;把形參a所指數組中的最大值放雜a[0]中,接著求出a所指數組中的最小值防在

中;再把a所指數組元素中的次大值a[2]中,把a所指數組的數據最初排列為:1,4,2,3,9,6;,8,7,則按規(guī)

則移動后,數據排列為:9,1,8,2,736,4,5。形參n中存放a所指數組中數據的個數。

#include<stdio.h>

#deflneN9

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++)

{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+l]=min;a[pn]=t;}

main()

{intb[N]={l,4,2,3,9,6,5,8,7},i;

printf("\nTheoriginaldata:\nM);

for(i=0;i<N;i++)printf(H%4d",b[i]);

printf(M\n");

fun(b,N);

printf(H\nThedataaftermoving:\nH);

for(i=0;i<N;i++)printf(M%4d”,b[i]);

+

printf(H\nM);

16.給定程序中,函數FUN的功能是;求SS所指字符串數組中長度最廠的字符串所在的行下標,作為函數值

返回拼把其串長防在形參n所指變量中。SS所指字符串數組中共有M個字符串,且串長vN.

#include<stdio.h>

#defineM5

#deflneN20

intfun(char(*ss)[___1___],int*n)■jM一般只可--帶杵耳的:字體顏色:紅色,突

[出顯

省略行標,不可省列標

{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;

}

)

return(k);

)

main()

{charss[M][N]={"shanghain/,guangzhouM/'beijingn,Htianjing,,,HcchongqingH};

intn,k,i;

printf("\nTheoriginalstringsare:\nM);

fbr(i=O;i<M;i++)puts(ss[i]);

k=fun(ss,&n);

printf("\nThelengthoflongeststringis:%d\nn,n);

pnntf(M\nThelongeststringis:%s\n",ss[k]);

17.函數FUN的功能是:逆置數組元素中的值。例如:若a所指數組中的數據依次為:123,4,5,6,7,8,9,則逆置

后依次為:9.8,7。6,5,4,321。形參n給出數組中數據的個數。

#include<stdio.h>

voidfun(inta[],intn)

{inti,t;

for(i=<);i<___1___;i++)n/2逆置的時候帶格式的:突出顯示

判別條件

t=a[i];

a[i]=—2—a[n-l-i];

+

a[n-l-i]=___3___;

)

}

main()

{intb[9]={l,2,3,4,5,6,7,8,9},i;

printf("\nTheoriginaldata:\nH);

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

printf(u%4d”,b[i]);

printf(H\nH);

fun(b,9);

printf(H\nThedataafterinvert:\nM);

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

printf(n%4d”,b[i]);

printf(H\nM);

J8.給定程序中,函數FUN的功能是:在形參S所指字符串中尋找與參數C相同的字符,并在其后插入一個二二帶格式的:字體顏色:紅色

與之相同的字符若找不到相同的字符則函數不做任何處理。,'常售武的:字體顏色:紅色,突

例如,S所指字符串:baacdas中的字符為:a,執(zhí)行后S所指字符串為:baaaacdaa帶格式的:字體顏色,燈色

#include<stdio.h>

voidfun(char*s,charc)

{inti,j,n;

/******¥***found¥*****¥***/

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

if(s[i]==c)

n=____2____;0

while(s[i+l+n]!='\O')n++;

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

/****¥*¥***found**********/

S[j+l]=s[__3_];

i=i+l;

main()

{chars[80]=Hbaacdan,c;

printf(n\nThestring:%s\nH,s);

printf(n\nlnputacharacter:");scanf(M%cH,&c);

fun(s,c);

printf(M\nTheresultis:%s\nn,s);

19.函數FUN的功能是:把形參a所指數組總的奇數原順序依次存放到a(0^|ll^[21.……中,把偶數從數組

中刪除,奇數個數通過函數值返回。例如:若a所指數組中的數據最初排列為:9、1、4、2、3、6、5、8、

7,刪除偶數后,a所指數組中數據為:9、1、3、5、7,返回值為5。

#include<stdio.h>

#defineN9

+

intfun(inta[],intn)

{inti,j;

j=0;

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

if(a[i]%2==-1—)

a[j]=a[i];—2—:j++

)

return___3___;

)

main()

{intb[N]={9,l,4,2,3,6,5,8,7),i,n;

printfC'XnTheoriginaldata:\nM);

for(i=0;i<N;i++)printff%4d”,b[i]);

printf(H\nK);

n=fun(b,N);

printf(H\nThenumberofodd:%d\nH,n);

printf(H\nTheoddnumber:\n");

for(i=0;i<n;i++)printf(M%4d”,bfi]);

printf(,,\n,?);

20紿定程序的功能是:調用函數FUN將指定源文件中的內容復制到指定的目標文件中,復制成功時函數返一工帶格式的:突出顯示

回值為0。在復制的過程中,把復制的內容輸出到終端屏幕。主函數中源文件名防在變量sfname中,目標

文件名放在變量tfname中。

#include<stdio.h>

#include<stdlib.h>

intfun(char*source,char*target)

{FILEcharch;

if((fs=fopen(source,___1___))==NULL)HrH

return0;

if((ft=fopen(target,HwH))==NULL)

return0;

printf(,,\nThedatainfile:\nn);

ch=fgetc(fs);

while(!feof(___2___))fs

{putchar(ch);

fputc(ch,—3—);ft

ch=fgetc(fs);

)

fclose(fs);fclose(ft);

+

printf(H\n\n");

return1;

)

main()

{charsfname[20]=Hmyfiler,,tfname[20]=Mmyfile2n;

FILE*myf;inti;charc;

myf=fopen(sfname,,'wM);

printf(n\nTheoriginaldata:\nH);

for(i=l;i<30;i++){c=,A,+rand()%25;fprintf(myf,M%c'*,c);printf("%cM,c);}

fcIose(myf);printf(n\n\nH);

if(fun(sfname,tfname))printf(HSucceed!H);

elseprintf(nFail!H);

21.函數FUN的功能是:計算

直到⑶

<10^.若X=2.5,函數值為:12.182494.

#include<stdio.h>

#include<math.h>

doublefun(doublex)

{doublef,t;intn;

f=1.0+—1_;

t=x;

n=1;

do{

n++;

t*=x/___2.n

f+=—1—;

}while(fabs(t)>=le-6);

returnf;

)

main()

{doublex,y;

x=2.5;

y=fun(x);

printf(H\nTheresultisAn");

printf(nx=%-12.6fy=%-12.6f\nH,x,y);

22.給定程序中,函數FUN的功能是:統(tǒng)計形參S所指字符串中數字字符出現的次數,并存放在形參t所指的

變量中最后在函數中輸出。例如,形參所指的字符串為:abcdd35adgh3kjsdf7.輸出結果為:4

+

#include<stdio.h>

voidfun(char*s,int*t)

{inti,n;

n=0;

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

if(s[i]>=,O,&&s[i]<=—2—)n++;9

*t=___3.n

main()

{chars[80]=Mabcdef35adgh3kjsdf7n;

intt;

printf(H\nTheoriginalstringis:%s\n[);

fun(s,&t);

printf(H\nTheresultis:%d\nH,t);

23.用篩選法可得到"n(iivlOOOO)之間的所有素數,方法是:首先從素數2開始將所有2的倍數的數從數表一」帶格式的:突出顯示

中刪去(把數表中相應位置的值置成0)接著從數表中找下一個非0數,并從數表中找下一個非0數,并從

數表中刪去該書的所有倍數:依次類推,直到所找的下一個數等于n為止。這樣會得到一個序

列2A5,7,11,13,17,1923........

函數FUN用篩選法找出所有小于等于11的素數,并統(tǒng)計素數的個數作為函數值返回。

#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—一)

aU]=0;

i++;

while(a[i]==_1—)帶格式的:字體顏色:紅色

帶格式的:字體顏色:紅色,突

i++;\.出顯示

)帶格式的:字體顏色:紅色J

printf(H\nTheprimenumberbetween2to%d\nn,n);

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

if(a[i]!=—3—)0

{count++;printf(count%15?',%5d,,:,,\n%5d,,,a[i]);}

returncount;

main()

{intn=20,r;

+

r=fun(n);

printf(n\nThenumberofprimeis:%d\n'^,r);

}

24給定程序中,函數FUN的功能是:將NXN矩陣主對角線元素中的值與反向對角線對應位置上元素中的

值進行交換。例如,若N=3,有下列矩陣:

123321

456交換后為:456

789987

#include<stdio.h>

#defineN4

voidfun(intintn)MN][N]帶格式的:突出顯示

{inti,s;

for(_2__;i++)

{s=t[i][i];

t[i][n-l-i]=—3—;

}

)

main()

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

printfCAnTheoriginalarray:\nM);

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

{forG=0;j<N;j++)print-,\t[i]U]);

printf(n\n");

}

fun(t,N);

printf(H\nTheresultis:\nH);

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

{fora=0;j<N;j++)prmtf(-%dH,t[i][j]);

printf(n\nM);

}

25.給定程序中,函數FUN的功能是:在形參S所指字符串中尋找與參數C相同的字符,并在其后插入一個一上襁式的:突出顯示

與相同的字符若找不到相同的字符則函數不做任何處理。

例如,所指字符串為: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+l+n]!='\O,)n++;

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

sO+l]=_3一;

i=i+l;

)

)

main()

{chars[80]=Mbaacdan,c;

printf(n\nThestring:%S\H''Q);

printfC'Anlnputacharacter:'*);scanf(H%cM,&c);

fun(s,c);

printfCAnTheresultis:%s\nM^);

}

26.函數FUN的功能是:把形參a所指數組中的最小值防在元素a[0]中,接著把形參a所指數組中的最大值

放在a[l]元素中;再把a所指數組元素中的次小值放在a[2]中,把a所指數組元素中的次大值放在a[3];

其余以次類推。例如:若a所指數組中的數據最初排列為:9,1,4,236,5,8,7;則按規(guī)則移動后,數據排列

為:1,9,2,8,3,7,4,6,5。形參n中存放a所指數組中數據的個數。

注意:規(guī)定FUN函數中的MAX存放當前所找的最大值,PX存放當前所找最大值的下標。

#include<stdio.h>

#deflneN9

voidfun(inta[],intn)

{inti,j,max,min,px,pn,t;

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

max=min=___1___;a[i]

px=pn=i;

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

if(max<___2___)ain

{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+1)

{t=a[i+l];a[i+l]=max;a[px]=t;}

+

main()

{intb[N]={9,l,4,2,3,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論