![國(guó)家計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)題庫(kù)_第1頁(yè)](http://file4.renrendoc.com/view14/M07/00/2A/wKhkGWbt01yAVQ4tAAJYG9q0HTY380.jpg)
![國(guó)家計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)題庫(kù)_第2頁(yè)](http://file4.renrendoc.com/view14/M07/00/2A/wKhkGWbt01yAVQ4tAAJYG9q0HTY3802.jpg)
![國(guó)家計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)題庫(kù)_第3頁(yè)](http://file4.renrendoc.com/view14/M07/00/2A/wKhkGWbt01yAVQ4tAAJYG9q0HTY3803.jpg)
![國(guó)家計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)題庫(kù)_第4頁(yè)](http://file4.renrendoc.com/view14/M07/00/2A/wKhkGWbt01yAVQ4tAAJYG9q0HTY3804.jpg)
![國(guó)家計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)題庫(kù)_第5頁(yè)](http://file4.renrendoc.com/view14/M07/00/2A/wKhkGWbt01yAVQ4tAAJYG9q0HTY3805.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
填空
L給定程序中,函數(shù)fun的功能是:在帶有頭結(jié)點(diǎn)的單向鏈表中,查找數(shù)據(jù)域中值為ch的結(jié)點(diǎn)。找到后通過(guò)
函數(shù)值返回該結(jié)點(diǎn)在鏈表中所處的順序號(hào);若不存在值為ch的結(jié)點(diǎn),函數(shù)返回0值。
intfun(SLIST*h,charch)
{SLIST*p;intn=0;p=h->next;
while(p!=0)
{n++;
if(p->data==ch)returnn;
elsep=p->next;}
return0;}
main()
{SLIST*head;intk;charch;char=
head=creatlist(a);
outlist(head);
printf(z,Enteraletter/7);
scanf(〃%c〃,&ch);
k=fun(head,ch);
if(k==0)printfC\nNotfoundIW);
elseprintf("Thesequencenumberis;%d\n〃,k);)
2.給定程序中,函數(shù)fun的功能是:統(tǒng)計(jì)出帶有頭結(jié)點(diǎn)的單向鏈表中結(jié)點(diǎn)的個(gè)數(shù),存放在形參n所指的存儲(chǔ)
單元中。
voidfun(SLIST*h,int*n)
{SLIST*p;
(*n)=0;
p=h->next;
while(p)
{(*n)++;
p=p->next;}}
main()
{SLIST*head;
inta[N]={12,87,45,32,91,16,20,48},num;
head=creatlist(a);outlist(head);
fun(head,&num);
printf(〃\nnumber二%d\n〃,num);}
3.給定程序中,函數(shù)fun功能計(jì)算出帶有頭結(jié)點(diǎn)單向鏈表中各結(jié)點(diǎn)數(shù)據(jù)域之和為函數(shù)值返回
intfun(SLIST*h)
{SLIST*p;ints=0;
p=h->next;
while(p)
{s+=p->data;
p=p->next;}
returns;}
main()
{SLIST*head;
inta[N]={12,87,45,32,91,16,20,48};
head=creatlist(a);outlist(head);
printf(,,\nsum=%d\nz/,fun(head));}
4.人員的記錄由編號(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)為空串。
/**********found**********/
STUfun(STU*std,char*num)
{inti;STUa={〃〃,9999,99,99};
for(i=0;i<N;i++)
if(strcmp(std[i],num)==0)
return(std[i]);
returna;}
5.人員的記錄由編號(hào)和出生年月日組成,N名人員的數(shù)據(jù)已在主函數(shù)中存入結(jié)構(gòu)體數(shù)組std中。函數(shù)fun功
能是:找出指定出生年份的人員,將其數(shù)據(jù)放在形參k所指的數(shù)組中,由主函數(shù)輸出,同時(shí)由函數(shù)值返回滿
足指定條件的人數(shù)。
intfun(STU*std,STU*k,intyear)
{inti,n=0;
for(i=0;i<N;i++)
if(std[i].year==year)
k[n++]=std[i];
return(n);)
6,給定程序通過(guò)定義并賦初值方式,利用結(jié)構(gòu)體變量存儲(chǔ)了一名學(xué)生學(xué)號(hào)姓名和3門課成績(jī)。函數(shù)fun功能
將該學(xué)生各科成績(jī)都乘以一系數(shù)a
voidshow(STUtt)
{inti;
printf(z,%d%s:z,,tt.num,tt.name);
for(i=0;i<3;i++)printf(,z%5.Ifz,,tt.score[i]);
printf(〃\n〃);}
voidmodify(STU*ss,floata)
{inti;
for(i=0;i<3;i++)
ss->score[i]*=a;}
main()
{STUstd={1,"Zhanghua",76.5,78.0,82.0};
floata;
printf(z,\nTheoriginalnumberandnameandscores:\n〃);show(std);
printf(,z\nlnputanumber:〃);scanf&a);
modify(&std,a);
printf(〃\nAresultofmodifying:\n〃);
show(std);}
7.給定程序中函數(shù)fun功能將形參指針?biāo)附Y(jié)構(gòu)體數(shù)組中三個(gè)元素按num成員進(jìn)行升序排列
voidfun(PERSONstd[3]))
{PERSONtemp;
if(std[0].num>std[l].num)
{temp=std[0];std[0]=std[l];std[l]=temp;}
if(std[0].num>std[2].num)
{temp=std[0];std[0]=std[2];std[2]=temp;}
if(std[l].num>std[2].num)
{temp=std[l];std[l]=std[2];std[2]=temp;}}
mainO
{PERSONstd[]={5,"Zhanghu”,2,"WangLi”,6,"LinMin”};
inti;
fun(std);
printf(z,\nTheresultis:\n〃);
for(i=0;i<3;i++)
printf(〃%d,%s\n〃,std[i].num,std[i].name);}
8.給定程序中,函數(shù)fun的功能是:將形參std所指結(jié)構(gòu)體數(shù)組中年齡最大者的數(shù)據(jù)作為函數(shù)值返回,并在
main函數(shù)中輸出。
STDfun(STDstd[],intn)
{STDmax;inti;
max=*std;
for(i=l;i<n;i++)
if(max.age<std[i].age)max=std[i];
returnmax;}
main()
{STDstd[5]={〃aaa〃,17,〃bbb〃,16,〃ccc〃,18,〃ddd〃,17,〃eee〃,15};
STDmax;
max=fun(std,5);
printf(z,\nTheresult:\n〃);
printf(,z\nName:%s,Age:%d\n〃,max.name,max.age);}
9.給定程序中,函數(shù)fun功能對(duì)形參ss所指字符串?dāng)?shù)組M個(gè)字符串按長(zhǎng)度由短到長(zhǎng)進(jìn)行排序。ss所指字符
串?dāng)?shù)組中共有M個(gè)字符串且串長(zhǎng)〈N。
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=i+1;j<M;j++)
if(n[k]>n[j])k=j;
if(k!=i)
{strcpy(t,ss[i]);
strcpy(ss[i],ss[k]);
strcpy(ss[k],t);
n[k]=n[i];
}}}
10.給定程序中,函數(shù)fun的功能是:求出形參ss所指字符串?dāng)?shù)組中最長(zhǎng)字符串的長(zhǎng)度,其余字符串左邊用
字符*補(bǔ)齊,使其與最長(zhǎng)的字符串等長(zhǎng)。字符串?dāng)?shù)組中共有M個(gè)字符串,且串長(zhǎng)<N。
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;k=i;}}
for(i=0;i<M;i++)
if(i!=k)
{m=n;
len=strlen(ssEi]);
for(j=len;j>=0;j-)
ss[i][m—]=ss[i][j];
for(j=0;j<n-len;j++)
ss[i][j]=*';}}
11.給定程序中已建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表中的各結(jié)點(diǎn)按結(jié)點(diǎn)數(shù)據(jù)域中的數(shù)據(jù)從小到大順序鏈
接。函數(shù)fun的功能是:把形參x的值放入一個(gè)新結(jié)點(diǎn)并插入到鏈表中,插入后各結(jié)點(diǎn)仍保持從小到大順序
排列。
voidfun(SLIST*h,intx)
{SLIST*p,*q,*s;
s=(SLIST*)malloc(sizeof(SLIST));
s->data=x;
q=h;
p=h->next;
while(p!=NULL&&x>p->data){
q=p;
p=p->next;}
s->next=p;
q->next=s;}
12.給定程序的功能是:調(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中。
intfun(char*source,char*target)
{FILE*fs,*ft;charch;
if((fs=fopen(source,〃r〃))==NULL)
return0;
if((ft=fopen(target,〃w"))==NULL)
return0;
printf(,z\nThedatainfile:\n〃);
ch=fgetc(fs);
while(!feof(fs))
{putchar(ch);
fputc(ch,ft);
ch=fgetc(fs);}
fclose(fs);fclose(ft);
printf(〃\n\n〃);
return1;}
13.給定程序中,函數(shù)fun的功能是:將自然數(shù)1?10以及它們的平方根寫(xiě)到名為myfile3.txt的文本文件
中,然后再順序讀出顯示在屏幕上。
intfun(char*fname)
{FILE*fp;inti,n;floatx;
if((fp=fopen(fname,〃w〃))==NULL)return0;
for(i=l;i<=10;i++)
fprintf(ft,z,%di,sqrt((double)i));
printf(〃\nSucceed!\n〃);
fclose(fp);
printf(〃\nThedatainfile:\n〃);
if((fp=fopen(fname,〃r〃))==NULL)
return0;
fscanf(fp,〃%d%f〃,&n,&x);
while(!feof(fp))
{printf(z,%d%f\nz,,n,x);fscanf(fp,&n,&x);}
fclose(fp);
return1;}
14.給定程序功能從鍵盤(pán)輸入若干行文本(每行不超過(guò)80個(gè)字符),寫(xiě)到文件myfile4.txt中,用7(獨(dú)立一行)
作為字符串輸入結(jié)束標(biāo)志.然后將文件內(nèi)容讀出顯示在屏幕上。文件的讀寫(xiě)分別由自定義函數(shù)ReadText和
WriteText實(shí)現(xiàn)。
voidWriteText(FILE*fw)
{charstr[81];
printf(,z\nEnterstringwith-1toend:\n〃);
gets(str);
while(strcmp(str,^-l^)!=0){
fputs(str,fw);fputs(〃\n〃,fw);
gets(str);}}
voidReadText(FILE*fr)
{charstr[81];
printf(z,\nReadfileandoutputtoscreen:\n〃);
fgets(str,81,fr);
while(!feof(fr)){
printf(〃%s〃,str);
fgets(str,81,fr);}
15.給定程序的功能是調(diào)用fun函數(shù)建立班級(jí)通訊錄。通訊錄中記錄每位學(xué)生的編號(hào)、姓名和電話號(hào)碼。班
級(jí)的人數(shù)和學(xué)生的信息從鍵盤(pán)讀入,每個(gè)人的信息作為一個(gè)數(shù)據(jù)塊寫(xiě)到名為myfile5.dat的二進(jìn)制文件中。
intfun(STYPE*std)
{FILE*fp;inti;
if((fp=fopen(,,myfile5.dat〃,〃wb〃))=NULL)
return(0);
printf(z,\n0utputdatatofile!\n〃);
for(i=0;i<N;i++)
fwrite(&std[i],sizeof(STYPE),1,fp);
fclose(fp);
return(1);)
16.給定程序中已建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,在main函數(shù)中將多次調(diào)用fun函數(shù),每調(diào)用一次fun
函數(shù),輸出鏈表尾部結(jié)點(diǎn)中的數(shù)據(jù),并釋放該結(jié)點(diǎn),使鏈表縮短。
voidfun(SLIST*p)
{SLIST*t,*s;
t=p->next;s=p;
while(t->next!=NULL)
{s=t;
t=t->next;}
printf(,z%d〃,t->data);
s->next=NULL;
free(t);}
17.給定程序已建立個(gè)帶有頭結(jié)點(diǎn)單向鏈表鏈表中各結(jié)點(diǎn)按數(shù)據(jù)域遞增有序鏈接。fun功能是刪除鏈表中數(shù)據(jù)
域值相同結(jié)點(diǎn)使之只保留一個(gè)
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;
free(q);
q=p->next;}
else
{p=q;
q=q->next;}}}
18.函數(shù)fun的功能是:統(tǒng)計(jì)長(zhǎng)整數(shù)n的各個(gè)位上出現(xiàn)數(shù)字1、2、3的次數(shù),并通過(guò)外部(全局)變量cl、
c2>c3返回主函數(shù)。例如,當(dāng)『123114350時(shí),結(jié)果應(yīng)該為:cl=3c2=lc3=2。
voidfun(longn)
{cl=c2=c3=0;
while(n){/switch(n%10)
{case1:cl++;break;
case2:c2++;break;
case3:c3++;}
n/=10;}}
19.函數(shù)fun的功能是進(jìn)行字母轉(zhuǎn)換。若形參ch中是小寫(xiě)英文字母,則轉(zhuǎn)換成對(duì)應(yīng)的大寫(xiě)英文字母;若ch
中是大寫(xiě)英文字母,則轉(zhuǎn)換成對(duì)應(yīng)的小寫(xiě)英文字母;若是其它字符則保持不變;并將轉(zhuǎn)換后的結(jié)果作為函數(shù)
值返回。
charfun(charch)
{if((ch>=,a)&&(ch<=,z'))
returnch-'a'+'A';
if(isupper(ch))
returnch+'a''A';
returnch;
)
20.給定程序中,函數(shù)fun的功能是:有NXN矩陣,根據(jù)給定的m(m<=N)值,將每行元素中的值均右移m
個(gè)位置,左邊置為0。例如,N=3,m=2,有下列矩陣程序執(zhí)行結(jié)果為
123001
456004
789007
voidfun(int(*t)[N],intm)
{inti,j;
for(i=0;i<N;i++)
{for(j=N-l-m;j>=0;j—)
t[i][j+m]=t[i][j];
for(j=0;j<m;j++)
t[i][j]=O;}}
21.給定程序中,函數(shù)fun功能:求出形參ss所指字符串?dāng)?shù)組中最長(zhǎng)字符串長(zhǎng)度,將其余字符串右邊用字符*
補(bǔ)齊,使其與最長(zhǎng)字符串等長(zhǎng)。ss所指字符串?dāng)?shù)組中共有M個(gè)字符串且串長(zhǎng)〈N。
voidfun(char(*ss)[N])
{inti,j,n,len=0;
for(i=0;i<M;i++)
{n=strlen(ss[i]);
if(i==0)len=n;
if(n>len)len=n;}
for(i=0;i<M;i++){
n=strlen(ss[i]);
for(j=0;j<len-n;j++)
ss[i][n+j]='*';
ss[i][n+j+1]='\0';}}
22.給定程序中,函數(shù)fun功能:求ss所指字符串?dāng)?shù)組中長(zhǎng)度最長(zhǎng)字符串所在行下標(biāo),作為函數(shù)值返回,并
把其串長(zhǎng)放在形參n所指變量中。ss所指字符串?dāng)?shù)組中共有M個(gè)字符串且串長(zhǎng)CN。
/**********found**********/
intfun(char(*ss)[N],int*n)
{inti,k=0,len=0;
for(i=0;i<M;i++)
{len=strlen(ss[i]);
if(i==0)*n=len;
if(len>*n){*n=len;
k=i;}}
return(k);}
23.給定程序中,函數(shù)fun功能:求ss所指字符串?dāng)?shù)組中長(zhǎng)度最短字符串所在行下標(biāo),作為函數(shù)值返回,并
把其串長(zhǎng)放在形參n所指變量中。ss所指字符串?dāng)?shù)組中共有M個(gè)字符串且串長(zhǎng)〈N。
intfun(char(*ss)[N],int*n)
{inti,k=0,len=N;
for(i=0;i<m;i++)
{len=strlen(ss[i]);
if(i==0)*n=len;
if(len<*n)
{*n=len;
k=i;}}
return(k);}
24.給定程序中,函數(shù)fun的功能是:將s所指字符串中的所有數(shù)字字符移到所有非數(shù)字字符之后,并保持
數(shù)字字符串和非數(shù)字字符串原有的先后次序。例如,形參s所指的字符串為:def35adh3kjsdf7.執(zhí)行結(jié)果
defadhkjsdf3537o
voidfun(char*s)
{inti,j=0,k=0;chartl[80],t2[80];
for(i=0;s[i]!-\0';i++)
if(s[i]>=,0,&&s[i]<='9')
{t2[j]=s[i];j++;}
elsetl[k++]=s[i];
t2[j]=0;tl[k]=0;
for(i=0;i<k;i++)s[i]=tl[i];
for(i=0;i<j;i++)s[k+i]=t2[i];}
25.給定程序中,函數(shù)fun的功能是:在形參s所指字符串中的每個(gè)數(shù)字字符之后插入一個(gè)*號(hào)。例如,形參
s所指的字符串為:def35adh3kjsdf7.結(jié)果def3*5*adh3*kjsdf7*。
voidfun(char*s)
{inti,j,n;
for(i=0;s[i]!=,\0*;i++)
if(s[i]>=0'&&s[i]<=9*)
{n=0;
while(s[i+l+n]!=0)n++;
for(j=i+n+l;j>i;j—)
s[j+l]=s[j];
*';
i=i+l;})
26.給定程序中,fun功能統(tǒng)計(jì)形參s所指字符串中數(shù)字字符出現(xiàn)的次數(shù)并存放在形參t所指變量中,最后
在主函數(shù)中輸出。例形參s所指字符串為abcdef35adgh3kjsdf7。輸出結(jié)果為4
voidfun(char*s,int*t)
{inti,n;
n=0;
for(i=0;s[i]!=(int)NULL;i++)
if(s[i]>=,O"&&s[i]<='9')n++;
*t=n;}
27.給定程序中,函數(shù)fun功能:把形參s所指字符串中下標(biāo)為奇數(shù)字符右移到下一個(gè)奇數(shù)位置,最右邊被
移出字符串字符繞回放到第一個(gè)奇數(shù)位置,下標(biāo)為偶數(shù)字符不動(dòng)(注:字符串的長(zhǎng)度大于等于2)。例如,形
參s所指的字符串為:abcdefgh,執(zhí)行結(jié)果為:ahcbedgf。
voidfun(char*s)
{inti,n,k;charc;
n=0;
for(i=0;s[i]!=,\0*;i++)n++;
/**********found**********/
if(n%2==0)k=n-l;
elsek=n_2;
/**********found**********/
c=s[k];
for(i=k-2;i>=l;i=i-2)s[i+2]=s[i];
/**********found**********/
s[l]=c;}
28.給定程序中,函數(shù)fun的功能是:對(duì)形參s所指字符串中下標(biāo)為奇數(shù)的字符按ASCH碼大小遞增排序,
并將排序后下標(biāo)為奇數(shù)的字符取出,存入形參p所指字符數(shù)組中,形成一個(gè)新串。例如,形參s所指字符串
為:baawrskjghzlicda,執(zhí)行后p所指字符數(shù)組中字符串為:aachjlsw0
voidfun(char*s,char*p)
{inti,j,n,x,t;
n=0;
for(i=0;s[i]!=,\0*;i++)n++;
for(i=l;i<n-2;i=i+2){
/**********found**********/
t=i;
/**********found**********/
for(j=i+2+2;j<n;j=j+2)
if(s[t]>sLj])t=j;
if(t!=i)
{x=s[i];s[i]=s[t];s[t]=x;}}
for(i=l,j=0;i<n;i=i+2,j++)p[j]=s[i];
/**********found**********/
p[j]=o;}
29.給定程序中,函數(shù)fun的功能是:將NXN矩陣中元素的值按列右移1個(gè)位置,右邊被移出矩陣的元素繞
回左邊。例如,N=4,有下列矩陣
21121324計(jì)算結(jié)果為:24211213
2516473838251647
2911325454291132
422133101042233
voidfun(int(*t)[N])
{inti,j,x;
/**********found**********/
for(i=0;i<N;i++)
{/**********found**********/
x=t[i][N-l];
for(j=N-l;j>0;j—)
/**********found**********/
t[i][0]=x;}}
30.給定程序中,函數(shù)fun的功能是將參數(shù)給定的字符串、整數(shù)、浮點(diǎn)數(shù)寫(xiě)到文本文件中,再用字符串方式
從此文本文件中逐個(gè)讀入,并調(diào)用庫(kù)函數(shù)atoi和atof將字符串轉(zhuǎn)換成相應(yīng)的整數(shù)、浮點(diǎn)數(shù),然后將其顯示
在屏幕上。
voidfun(char*s,inta,doublef)
{/**********found**********/
FILEfp;
charstr[100],strl[100],str2[100];
intal;doublefl;
fp=fopen(,zfilel.txt,z,〃w〃);
fprintf(fp,〃%s%d%f\n〃,s,a,f);
/**********found**********/
fclose(fp);
fp=fopenCfilel.txt",〃r〃);
/**********found**********/
fscanf(FP,,z%s%s%s/z,str,strl,str2);
fclose(fp);
al=atoi(strl);
fl=atof(str2);
printf(,z\nTheresult:\n\n%s%d%f\n〃,str,al,fl);}
31.程序通過(guò)定義學(xué)生結(jié)構(gòu)體變量,存儲(chǔ)了學(xué)生的學(xué)號(hào)、姓名和3門課的成績(jī)。所有學(xué)生數(shù)據(jù)均以二進(jìn)制方
式輸出到文件中。函數(shù)fun的功能是重寫(xiě)形參filename所指文件中最后一個(gè)學(xué)生的數(shù)據(jù),即用新的學(xué)生數(shù)據(jù)
覆蓋該學(xué)生原來(lái)的數(shù)據(jù),其它學(xué)生的數(shù)據(jù)不變。
voidfun(char*filename,STUn)
{intp,m;
FILE*fp;
p=sizeof(STU);
m=p*(-1L);
/**********found**********/
fp=fopen(filename,〃rb+〃);
/**********found**********/
fseek(fp,m,SEEK_END);
/**********found**********/
fwrite(&n,sizeof(STU),1,fp);
fclose(fp);}
32.給定程序blankl.c中,函數(shù)fun的功能是:計(jì)算的前n項(xiàng)之和。若x=2.5,n二15時(shí),函數(shù)值
?52曾/M3
/?)=1+X-—+-------+(-1—.
234!(?-1)!"為:1.917914。
doublefun(doublex,intn)
{doublef,t;inti;
/**********found**********/
f=1;
t=-1;
for(i=l;i<n;i++)
{/**********found**********/
t*=(T)*x/i;
/**********found**********/
f+=t;}
returnf;}
33.給定程序blankl.c中,函數(shù)fun的功能是:計(jì)算的前n項(xiàng)。若x=2.5,n=12時(shí),函數(shù)值為:12.182340。
=1+左+不+…+—T
21n\
doublefun(doublex,intn)
{doublef,t;inti;
f=1.0;
/**********found**********/
t=1;
/**********found**********/
for(i=l;i<n;i++)
{/**********found**********/
t*=x/i;
f+=t;}
returnf;}
f(x)=1+x+—+???+——<10~b
34.給定程序blankl.c中,函數(shù)fun功能:計(jì)算2!加直到若x=2.5,函數(shù)值為:
12.182494c
doublefun(doublex)
{doublef,t;intn;
/**********found**********/
f=1.0+x;
t=x;
n=1;
do{n++;
/**********found**********/
t*=x/n;
/**********found**********/
f+=t;
}while(fabs(t)>=le-6);
returnf;}
35.給定程序中,函數(shù)fun的功能是:有NXN矩陣,將矩陣的外圍元素順時(shí)針旋轉(zhuǎn)。操作順序是:首先將第
一行元素的值存入臨時(shí)數(shù)組r,然后使第一列成為第一行,最后一行成為第一列,最后一列成為最后一行,
臨時(shí)數(shù)組中的元素成為最后一列。例如,若N=3,有下列矩陣:
123計(jì)算結(jié)果為741
456852
789963
voidfun(int(*t)[N])
{intj,r[N];
for(j=0;j<N;j++)r[j]=t[0][j];
for(j=0;j<N;j++)
/**********found**********/
t[0][N-j-l>t[j][O];
for(j=0;j<N;j++)
t[j][0>t[N-l][j];
/**********found**********/
for(j=N-l;j>=0;j—)
t[N-l][N-l-j]=t[j][N-l];
for(j=N-l;j>=0;j—)
/**********found**********/
t[j][N-l]=r[j];}
36.給定程序中,函數(shù)fun的功能是:有NXN矩陣,以主對(duì)角線為對(duì)稱線,對(duì)稱元素相加并將結(jié)果存放在左
下三角元素中,右上三角元素置為0。例如,若N=3,有下列矩陣:
123計(jì)算結(jié)果為100
456650
78910149
/**********found**********/
voidfun(int(*t)[N])
{inti,j;
for(i=l;i<N;i++)
{for(j=0;j<i;j++)
{
/**********found**********/
t[i][j]=t[i][j]+t[j][i];
/**********found**********/
=0;}}}
37.給定程序中,函數(shù)fun的功能是:計(jì)算NXN矩陣的主對(duì)角線元素和反向?qū)蔷€元素之和,并作為函數(shù)值
返回。注意:要求先累加主對(duì)角線元素中的值,然后累加反向?qū)蔷€元素中的值。例如,若N=3,有下列矩
陣:fun函數(shù)首先
123累加1、5、9,然后累加3、
4565、7,函數(shù)的返回值為30。
789
fun(intt[][N],intn)
{inti,sum;
/**********found**********/
sum=0;
for(i=0;i<n;i++)
/**********found**********/
sum+=t[i][i];
for(i=0;i<n;i++)
/**********found**********/
sum+=t[i][n-i-1];
returnsum;}
38.函數(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。
intfun(inta[],intn)
{inti,j;
j=0;
for(i=0;i<n;i++)
/**********found**********/
if(a[i]%2==l)
{/**********found**********/
a[j]=a[i];j++;}
/**********found**********/
returnj;}
39.函數(shù)fun的功能是:把形參a所指數(shù)組中的偶數(shù)按原順序依次存放到a[0]、a⑴、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ù)為:4、2、6、8,返回值為4。
intfun(inta[],intn)
{inti,j;
j=0;
for(i=0;i<n;i++)
/**********found**********/
if(a[i]%2==0){
/**********found**********/
a[j]=a[i];j++;}
/**********found**********/
returnj;}
40.函數(shù)fun的功能是:把形參a所指數(shù)組中的最小值放在元素a[0]中,接著把形參a所指數(shù)組中的最大值
放在a[l]元素中;再把a(bǔ)所指數(shù)組元素中的次小值放在a[2]中,把a(bǔ)所指數(shù)組元素中的次大值放在a[3];
其余以此類推。例如:若a所指數(shù)組中的數(shù)據(jù)最初排列為:9、1、4、2、3、6、5、8、7;則按規(guī)則移動(dòng)后,
數(shù)據(jù)排列為:1、9、2、8、3、7、4、6、5。形參n中存放a所指數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
voidfun(inta[],intn)
{inti,j,max,min,px,pn,t;
for(i=0;i<n-l;i+=2)
{/**********found**********/
max=min=a[i];
px=pn=i;
for(j=i+l;j<n;j++){
/**********found**********/
if(max<a[j])
{max=a[j];px=j;}
/**********found**********/
if(min>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;}}}
41.函數(shù)fun的功能是:把形參a所指數(shù)組中的最大值放在a[0]中,接著求出a所指數(shù)組中最小值放在a[l]
中;再把a(bǔ)所指數(shù)組元素中次大值放在a[2]中,把a(bǔ)數(shù)組元素中次小值放在a[3]中;其余以此類推。例如:
若a所指數(shù)組中的數(shù)據(jù)最初排列為:1、4、2、3、9、6、5、8、7,則按規(guī)則移動(dòng)后,數(shù)據(jù)排列為:9、1、8、
2、7、3、6、4、5o形參n中存放a所指數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
voidfun(int*a,intn)
{inti,j,max,min,px,pn,t;
/**********found**********/
for(i=0;i<n-l;i+=2)
{max=min=a[i];
px=pn=i;
/**********found**********/
for(j=i+l;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];a[i+l]=min;a[pn]=t;}}}
42.函數(shù)fun的功能是:將形參a所指數(shù)組中的前半部分元素中的值和后半部分元素中的值對(duì)換。形參n中
存放數(shù)組中數(shù)據(jù)的個(gè)數(shù),若n為奇數(shù),則中間的元素不動(dòng)。例如:若a所指數(shù)組中的數(shù)據(jù)依次為:1、2、3、
4、5、6、7、8、9,則調(diào)換后為:6、7、8、9、5、1、2、3、4。
voidfun(inta[],intn)
{inti,t,p;
/**********found**********/
p=(n%2==0)?n/2:n/2+l;
for(i=0;i<n/2;i++)
{t=a[i];
/**********found**********/
a[i]=a[p+i];
/**********found**********/
a[p+i]=t;}}
43.函數(shù)fun的功能是:逆置數(shù)組元素中的值。例如:若a所指數(shù)組中的數(shù)據(jù)依次為:1、2、3、4、5、6、7、
8、9,則逆置后依次為:9、8、7、6、5、4、3、2、1。形參n給出數(shù)組中數(shù)據(jù)個(gè)數(shù)。
voidfun(inta[],intn)
{inti,t;
/**********found**********/
for(i=0;i<n/2;i++)
{t=a[i];
/**********found**********/
a[i]=a[n-l-i];
/**********found**********/
a[n―i.—]]~t,}}
44.fun功能是進(jìn)行數(shù)字字符轉(zhuǎn)換.若形參ch中是數(shù)字字符,0'?'9'則'0'轉(zhuǎn)換成'9'T'轉(zhuǎn)換成'8''2'轉(zhuǎn)換成
'7'…'9'轉(zhuǎn)換成'0';若其它字符則保持不變并將轉(zhuǎn)換后結(jié)果作為函數(shù)值返回
charfun(charch)
{/**********found**********/
if(ch>='O'&&ch〈二'9')
/**********found**********/
return'9'-(ch,O');
returnch;}
45.函數(shù)fun功能是:統(tǒng)計(jì)所有小于等于n(n>2)的素?cái)?shù)的個(gè)數(shù),素?cái)?shù)的個(gè)數(shù)作為函數(shù)值返回。
intfun(intn)
{inti,j,count=0;
printf(z,\nTheprimenumberbetween3to%d\n〃,n);
for(i=3;i<=n;i++){
/**********found**********/
for(j=2;j<i;j++)
/**********found**********/
if(i%j==0)
break;
/**********found**********/
if(j>=i)
{count++;printf(count%15?〃%5d〃:〃\n%5d〃,i);}}
returncount;}
46.用篩選法可得到2~n(n<10000)之間所有素?cái)?shù),方法是首先從素?cái)?shù)2開(kāi)始將所有2倍數(shù)從數(shù)表中刪去(把數(shù)
表中相應(yīng)位置值置成0);接著從數(shù)表中找下一個(gè)非0數(shù)并從數(shù)表中刪去該數(shù)所有倍數(shù);依此類推直到所找下一
個(gè)數(shù)等于n為止.這樣會(huì)得到一個(gè)序列:23571113171923…函數(shù)fun用篩選法找出所有小于等于n的素?cái)?shù),并
統(tǒng)計(jì)素?cái)?shù)的個(gè)數(shù)作為函數(shù)值返回。
intfun(intn)
{inta[10000],i,j,count=0;
for(i=2;i<=n;i++)a[i]=i;
i=2;
while(i<n){/**********found**********/
for(j=a[i]*2;j<=n;j+=a[i])
a[j]=0;
i++;
/**********found**********/
while(a[i]==0)
i++;}
printf(,z\nTheprimenumberbetween2to%d\n〃,n);
for(i=2;i<=n;i++)
/**********found**********/
if(a[i]!=0)
{count++;printf(count%15?〃%5d〃:〃\n%5d〃,a[i]);}
returncou}
47.甲乙丙丁四人同時(shí)開(kāi)始放鞭炮,甲每隔tl秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4
秒放一次,每人各放n次.fun功能是根據(jù)形參提供值,求出總共聽(tīng)到多少次鞭炮聲作為函數(shù)值返回.注意當(dāng)幾
個(gè)鞭炮同時(shí)炸響,只算一次響聲,第一次響聲是在第0秒.例若tl=7,t2=5,t3=6,t4=4,n=10,總共可聽(tīng)到28
次鞭炮聲
SdefineOK(i,t,n)((i%t==O)&&(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賦初值*/
/**********found**********/
for(t=l;t<maxt*(nT);t++)
{if(OK(t,tl,n)||OK(t,t2,n)||OK(t,t3,n)||OK(t,t4,n))count++;}
/**********found**********/
returncount;}
48.fun功能是從三個(gè)形參abc中找出中間那個(gè)數(shù)作為函數(shù)值返回.例當(dāng)a=3b=5c=4時(shí)中數(shù)為4.
intfun(inta,intb,intc)
{intt;
/**********found**********/
t=(a>b)?(b>c?b:(a>c?c:a)):((a>c)?a:((b>c)?c:b)):((a>c)?___2___:((b>c)?c:___3___));
returnt;}
49.給定程序中,函數(shù)fun功能將形參給定字符串整數(shù)浮點(diǎn)數(shù)寫(xiě)到文本文件中,再用字符方式從此文本文件
中逐個(gè)讀入并顯示在終端屏幕上
voidfun(char*s,inta,doublef)
{/**********found**********/
FILE*fp;
charch;
fp=fopen(z,filel.txtz,,〃w〃);
fprintf(fp,〃%s%d%f\n〃,s,a,f);
fclose(fp);
fp=fopen(z,filel.txtz,,〃r〃);
printf(,z\nTheresult:\n\n〃);
ch=fgetc(fp);
/**********found**********/
while(!feof(fp)){
/**********found**********/
putchar(ch);ch=fgetc(fp);}
putchar(,\n,);
fclose(fp);}
50.程序通過(guò)定義學(xué)生結(jié)構(gòu)體變量,存儲(chǔ)了學(xué)生的學(xué)號(hào)、姓名和3門課的成績(jī)。所有學(xué)生數(shù)據(jù)均以二進(jìn)制方
式輸出到文件中。函數(shù)fun的功能是從形參filename所指的文件中讀入學(xué)生數(shù)據(jù),并按照學(xué)號(hào)從小到大排序
后,再用二進(jìn)制方式把排序后的學(xué)生數(shù)據(jù)輸出到filename所指的文件中,覆蓋原來(lái)的文件內(nèi)容。
voidfun(char*filename)
{FILE*fp;inti,j;
STUs[N],t;
/**********found**********/
fp=fopen(filename,〃rb〃);
fread(s,sizeof(STU),N,fp);
fclose(fp);
for(i=0;i<N-l;i++)
for(j=i+l;j<N;j++)
/**********found**********/
if(s[i]?sno>s[j].sno)
{t=s[i];s[i]=s[j];s[j]=t;}
fp=fopen(filename,〃wb〃);
/**********found**********/
fwrite(s,sizeof(STU),N,fp);
fclose(fp);}
51.給定程序中,函數(shù)fun的功能是:找出100至x(xW999)之間各位上的數(shù)字之和為15的所有整數(shù),然
后輸出;符合條件的整數(shù)個(gè)數(shù)作為函數(shù)值返回。例如,當(dāng)x值為500時(shí),各位數(shù)字之和為15的整數(shù)有:159、
168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、
447、456、465、474、483>492。共有26個(gè)。
fun(intx)
{intn,si,s2,s3,t;
/**********found**********/
n=0;
t=100;
/**********found**********/
while(t<=x)
{sl=t%10;s2=(t/10)%10;s3=t/100;
if(sl+s2+s3==15)
{printf(,,%d”,t);
n++;}
/**********found**********/
++t;}
returnn;}
52.給定程序中fun功能找出100?999之間(含100和999)所有整數(shù)中各位上數(shù)字之和為x(x為一正整數(shù))
整數(shù)然后輸出;符合條件整數(shù)個(gè)數(shù)作為函數(shù)值返回.例如,當(dāng)x值為5時(shí),100?999之間各位上數(shù)字之和為5
的整數(shù)有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、5000共有15個(gè)。
當(dāng)x值為27時(shí),各位數(shù)字之和為27的整數(shù)是:999o只有1個(gè)。
fun(intx)
{intn,si,s2,s3,t;
n=0;
t=100;
/**********found**********/
while(t<=999){
/**********found**********/
sl=t%10;s2=(t/10)%10;s3=t/100;
/**********found**********/
if(sl+s2+s3==x)
{printf(z,%d〃,t);
n++;}
t++;}
returnn;}
53.給定程序中fun功能將形參s所指字符串中所有字母字符順序前移其它字符順序后移,處理后新字符串
首地址作為函數(shù)值返回.例s所指字符串為asdl23fgh543df,處理后新字符串a(chǎn)sdfghdf123543。
char*fun(char*s)
{inti,j,k,n;char*p,*t;
n=strlen(s)+l;
t=(char*)malloc(n*sizeof(char));
p=(char*)malloc(n*sizeof(char));
j=0;k=0;
for(i=0;i<n;i++)
{if(((s[i]>='a')&&(s[i"='z'))||((s[i]>='A')&&(s[i"='Z'))){
/**********found**********/
t[j]=*(s+i);j++;}
else
{p[k]=s[i];k++;}}
/**********found**********/
for(i=0;i<k;i++)t[j+i]=p[i];
/**********found**********/
t[j+k]=0;
returnt;}
54.給定程序中,函數(shù)fun功能:計(jì)算形參x所指數(shù)組中N個(gè)數(shù)平均值(規(guī)定所有數(shù)均為正數(shù)),作為函數(shù)值
返回;并將大于平均值數(shù)放在形參y所指數(shù)組中,在主函數(shù)中輸出。例如有10個(gè)正數(shù):4630324061745
154826,平均值為:30.500000o主函數(shù)中輸出:4632404548
doublefun(doublex[],double*y)
{inti,j;doubleav;
/**********found**********/
av=0;
/**********found**********/
for(i=0;i<N;i++)av=av+x[i]/N;
for(i=j=0;i<N;i++)
/**********found**********/
if(x[i]>av)y[j++]=x[i];
yLj]=-l;
returnav;}
55.給定程序中,函數(shù)fun的功能是將a和b所指的兩個(gè)字符串轉(zhuǎn)換成面值相同的整數(shù),并進(jìn)行相加作為函
數(shù)值返回,規(guī)定字符串中只含9以下數(shù)字字符。例如,主函數(shù)中輸入字符串:32486和12345,在主函數(shù)中
輸出的函數(shù)值為:4483U
longctod(char*s)
{longd=0;
while(*s)
if(isdigit(*s)){
/**********found**********/
d=d*10+*s-'O';
/**********found**********/
x++;)
returnd;
)
longfun(char*a,char*b)
{/**********found**********/
returnctod(a)+ctod(b);)
56.給定程序中,函數(shù)fun的功能是:計(jì)算出形參s所指字符串中包含的單詞個(gè)數(shù),作為函數(shù)值返回。為便
于統(tǒng)計(jì),規(guī)定各單詞之間用空格隔開(kāi)。例如,形參s所指的字符串為:ThisisaClanguageprogram.,
函數(shù)的返回值為6。
intfun(char*s)
{intn=0,flag=0;
while(*s!=,\0?)
{if(*s!=''&&flag==0){
/**********found**********/
n++;flag=l;}
/**********found**********/
if(*s=='‘)flag=0;
/**********found**********/
s++;}
returnn;}
57.填空給定程序中,函數(shù)fun功能是:利用指針數(shù)組對(duì)形參ss所指字符串?dāng)?shù)組中的字符串按由長(zhǎng)到短的順
序排序,并輸出排序結(jié)果。ss所指字符串?dāng)?shù)組中共有N個(gè)字符串,且串長(zhǎng)小于M
voidfun(char(*ss)[M])
{char*ps[N],*tp;inti,j,k;
for(i=0;i<N;i++)ps[i]=ss[i];
for(i=0;i<N-l;i++){
/**********found**********/
k=i;
for(j=i+l;j<N;j++)
/**********found**********/
if(strlen(ps[k])<strlen(*(ps+j))k=j;
/**********found**********/
tp=ps[i];ps[i]=ps[k];ps[k]=tp;}
printf(z,\nThestringaftersortingbylength:\n\nz,);
for(i=0;i<N;i++)puts(ps[i]);}
58.給定程序中,函數(shù)fun功能是:在形參ss所指字符串?dāng)?shù)組中查找與形參t所指字符串相同的串,找到后
返回該串在字符串?dāng)?shù)組中的位置(下標(biāo)值),未找到則返回ss所指字符串?dāng)?shù)組中共有N
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《金屬與金屬材料》課件
- 《壓力容器零部》課件
- 《焦慮抑郁概述》課件
- 《預(yù)防醫(yī)學(xué)基礎(chǔ)》課件
- 婦幼保健院中醫(yī)科培訓(xùn)資料心身性疾病
- 品質(zhì)管理講座之品質(zhì)意識(shí)培訓(xùn)
- 2025年湖南c1貨運(yùn)從業(yè)資格證考試題下載
- 汽車銷售半年總結(jié)模板
- 部編版三年級(jí)語(yǔ)文《古詩(shī)詞大會(huì)比賽》精美課件
- 新員工服務(wù)技巧培訓(xùn)模板
- 醫(yī)美注射類知識(shí)培訓(xùn)課件
- 2025年學(xué)校春季開(kāi)學(xué)典禮校長(zhǎng)講話致辭 (匯編11份)
- 2025年廣電網(wǎng)絡(luò)公司工作計(jì)劃(3篇)
- 2025年餐飲部主管年度工作計(jì)劃
- 貨運(yùn)車輛駕駛員服務(wù)標(biāo)準(zhǔn)化培訓(xùn)考核試卷
- 學(xué)工管理系統(tǒng)功能設(shè)計(jì)方案
- 銀行行長(zhǎng)2024年個(gè)人年終總結(jié)
- 財(cái)務(wù)BP經(jīng)營(yíng)分析報(bào)告
- 《磺化過(guò)程》課件
- 設(shè)備基礎(chǔ)預(yù)埋件施工方案
- 中華人民共和國(guó)保守國(guó)家秘密法實(shí)施條例培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論