




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一套
給定程序中,函數(shù)fun的功能是:在帶有頭結(jié)點(diǎn)的單向鏈表中,查找數(shù)據(jù)域中值為ch的
結(jié)點(diǎn)。找到后通過(guò)函數(shù)值返回該結(jié)點(diǎn)在鏈表中所處的順序號(hào);若不存在值為ch的結(jié)點(diǎn),函
數(shù)返回0值。
請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<stdio.h>
#inciude<stdlib.h>
#defineN8
typedefstructlist
{intdata;
structlist*next;
}SLIST;
SLIST*creatlist(char*);
voidoutlist(SLIST*);
intfun(SLIST*h,charch)
{SLIST*p;intn=0;
p=h->next;
/**********R)und**********/
while(p!=0)
{n++;
/**********d**********/
if(p->data=ch)returnn;
elsep=p->next;
)
return0;
)
main()
{SLIST*head;intk;charch;
chara[N]={'mVp;'g';a';w";x';r';dr};
head=creatlist(a);
outlist(head);
printf(uEnteraletter:n);
scanf("%c",&ch);
/**********d*****¥****/
k=fun(head,ch);
if(k==0)printf(H\nNotfound!\nn);
elseprintf('Thesequencenumberis:%d\nn,k);
SLIST*creatlist(char*a)
{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=O;
returnh;
)
voidoutlist(SLIST*h)
{SLIST*p;
p=h->next;
if(p==NULL)printf(H\nThelistisNULL!\nn);
else
{printf(,,\nHeadn);
do
{printf(',->%c',,p->data);p=p->next;}
while(p!=NULL);
printf("->End\nn);
給定程序modi.c中,函數(shù)fun的功能是:給定n個(gè)實(shí)數(shù),輸出平均值,并統(tǒng)計(jì)在平均
值以上(含平均值)的實(shí)際個(gè)數(shù)。
例如,n=8時(shí)輸入:193.199、195.673、195.757,196.051>196.092,196.596、196.579、
196.763所得平均值為:195.838745,在平均值以上的實(shí)數(shù)個(gè)數(shù)應(yīng)為:5
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<conio.h>
#include<stdio.h>
#include<windows.h>
intfun(floatx[],intn)
/************found************/
{intj,c=0;floatxa=0.0;
for(j=0;j<n;j++)
xa+=x|j]/n;
printf(nave=%f\n",xa);
for(j=0;j<n;j++)
/************nd************/
if(x[j]=>xa)
C++;
returnc;
main()
{floatx[100]={193.199f,195.673f,195.757f,196.051f,196.092f,196.596f,196.579f,196.763f};
system(*'cls");
printf(M%d\n",fun(x,8));
假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:除了字符串前
導(dǎo)和尾部的*號(hào)之外,將串中其它*號(hào)全部刪除。形參h已指向字符串中第一個(gè)字母,形參p
已指向字符串中最后一個(gè)字母。在編寫(xiě)函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為:****A*BC*DEF*G********,刪除后,字符串中的內(nèi)容應(yīng)
當(dāng)是:****ABCDEFG********。在編寫(xiě)函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。
注意:部分源程序存在文件prog.c中。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)
的若干語(yǔ)句。
#include<stdio.h>
#include<conio.h>
voidfun(char*a,char*h,char*p)
{charb[81],*x;
inti=0,j=0;
x=a;
while(x<h){b[j]=*x;x+4-;j++;)
while(h<=p)
if(*h!='*'){b[j]=*h;j++;h++;}
elseh++;
P++;
while(*p){b[j]=*p;j++;p++;}
b[j]=\O1;j=O;
while(b[j])
{a[i]=b|j];i++;j++;}
a[i]=\0';
voidNONO()
{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),
輸出數(shù)據(jù),關(guān)閉文件。*/
chars[81],*t,*f;
inti;
FILE
rf=fopen(,'b37.in',,,,rn);
wf=fopen(”a37.out“,“w");
for(i=0;i<4;i++)
{fscanf(rf,M%sn,s);
t=f=s;
while(*t)t++;
t-;
while(*t==,5ie,)t—;
while(*f==*')f++;
fun(s,f,t);
fprintf(wf,n%s\nn,s);
)
fclose(rf);
fclose(wf);
)
main()
{chars[81],*t,*f;
printf("Enterastring:\nM);gets(s);
t=f=s;
while(*t)t++;
t-;
while(*t=='*')t—;
whilef++;
fun(s,f,t);
printf(nThestringafterdeleted:\nn);puts(s);
NONO();
第二套
給定程序中,函數(shù)fun的功能是:統(tǒng)計(jì)出帶有頭結(jié)點(diǎn)的單向鏈表中結(jié)點(diǎn)的個(gè)數(shù),存放在
形參n所指的存儲(chǔ)單元中。
請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
voidoutlist(SLIST*);
voidfun(SLIST*h,int*n)
{SLIST*p;
]******不***nd**********/
(*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);
/**********fiound**********/
fun(head,&num);
printf(',\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(HThelistisNULL!\nH);
else
{printfCAnHead");
do
{printf(',->%d,,,p->data);p=p->next;}
while(p!=NULL);
printf(',->End\nn);
)
)
給定程序modi.c中,fun函數(shù)的功能是:將n個(gè)無(wú)序整數(shù)從小到大排序。請(qǐng)改正程序中
的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
fun(intn,int*a)
{inti,j,p,t;
for(j=O;j<n-l;j++)
{P=j;
/************l^jund**亭*********/
for(i=j+l;i<n;i++)
if(a[p]>a[i])
I************found************/
p=i;
if(p!=j)
{t=a[j];a|j]=a[p];a[p]=t;}
)
putarr(intn,int*z)
{inti;
for(i=1;i<=n;i++,z++)
{printf(”%4d”,*z);
if(!(i%10))printfCAn'1);
}printf("\nn);
main()
{intaa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;
system("cls”);
printf(u\n\nBeforesorting%dnumbers:\n",n);putarr(n,aa);
fun(n,aa);
printf(M\nAftersorting%dnumbers:\nM,n);putarr(n,aa);
)
請(qǐng)編寫(xiě)一個(gè)函數(shù)fun,它的功能是:根據(jù)以下公式求人的值(要求滿足精度0.0005,即
某項(xiàng)小于0.0005時(shí)停止迭代):
程序運(yùn)行后,如果輸入精度0.0005,則程序輸出為3.140578。
注意:部分源程序存在文件prog.c中。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)
的若干語(yǔ)句。
#include<stdio.h>
#include<math.h>
doublefun(doubleeps)
intn=0;
doubledown=l,up=l;
doubleone,pi=0;
one=(double)up/(double)down;
while(one>=eps){
pi+=one;
n++;
up=up*n;
down=down*(2*n+l);
one=(double)up/(double)down;
)
returnpi*2;
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*fp,*wf;
inti;
doublex;
fp=fopen("bc04.in","r");
if(fp==NULL){
printf("數(shù)據(jù)文件bc04.in不存在!);
return;
)
wf=fopen(nbc04.out'\nwu);
for(i=0;i<10;i++){
fscanf(fp,"%lf'\&x);
fprintf(wf,u%lf\n",fun(x));
)
fclose(fp);
fclose(wf);
)
main()
{doublex;
printf("Inputeps:'1);
scanf("%lf',&x);printf(Aneps=%lf,PI=%lf\nn,x,fun(x));
NONO();
第三套
給定程序中,函數(shù)fun的功能是:計(jì)算出帶有頭結(jié)點(diǎn)的單向鏈表中各結(jié)點(diǎn)數(shù)據(jù)域之和作
為函數(shù)值返回。
請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#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)
/***********)u**********/
s+=p->data;
/**********R)und**********/
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\n",fun(head));
)
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=O;
returnh;
voidoutlist(SLIST*h)
{SLIST*p;
p=h->next;
if(p==NULL)printf(nThelistisNULL!\nn);
else
{printfCAnHead");
do
{printf(',->%d,\p->data);p=p->next;}
while(p!=NULL);
printf("->End\n");
)
)
給定程序modi.c中,函數(shù)fun的功能是:按順序給s所指數(shù)組中的元素賦予從2開(kāi)始的
偶數(shù),然后再按順序?qū)γ课鍌€(gè)元素求一個(gè)平均值,并將這些值依次存放在w所指的數(shù)組中,
若s所指數(shù)組中元素的個(gè)數(shù)不是5的倍數(shù),多余部分忽略不計(jì)。
例如,s所指數(shù)組有14個(gè)元素,則只對(duì)前10個(gè)元素進(jìn)行處理,不對(duì)最后的4個(gè)元素求
平均值。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<stdio.h>
#defineSIZE20
fiin(double*s,double*w)
{intk.i;doublesum;
for(k=2,i=0;i<SIZE;i++)
{s[i]=k;k+=2;}
/************found************/
sum=0.0;
for(k=0,i=0;i<SIZE;i++)
{sum+=s[i];
/************found************/
if((i+l)%5==0)
{w[k]=sum/5;sum=0;k++;}
)
returnk;
main()
{doublea[SIZE],b[SIZE/5];
inti,k;
k=fun(a,b);
printf('Theoriginaldata:\nM);
for(i=0;i<SIZE;i++)
{if(i%5==0)printf("\n");
printf(H%4.0fu,a[i|);
)
printfCAnVnTheresult:\nn);
for(i=0;i<k;i++)printf("%6.2f",b[i]);
printf('\n\nn);
請(qǐng)編寫(xiě)一個(gè)函數(shù)fun,它的功能是:比較兩個(gè)字符串的長(zhǎng)度,(不得調(diào)用C語(yǔ)言提供的
求字符串長(zhǎng)度的函數(shù)),函數(shù)返回較長(zhǎng)的字符串。若兩個(gè)字符串長(zhǎng)度相同,則返回第一個(gè)字
符串。
例如,Abeijing<CR>shanghai<CR>(vCR>為回車鍵)
函數(shù)將返回shanghaio
注意:部分源程序存在文件prog.c中。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)
的若干語(yǔ)句。
#include<stdio.h>
char*fun(char*s,char*t)
(
intfirst=0,second=0;
char*p,*q;
P=s;
q=t;
while(*p++!=、0')
first++;
while(*q++!=、()')
second++;
if(first=second)
returns;
elseif(first>second)
returns;
else
returnt;
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*fp,*wf;
inti;
chara[20],b[20];
fp二fopen("bc03.in",T');
if(fp==NULL){
printf("數(shù)據(jù)文件bc03.in不存在!”);
return;
)
wf=fopen("bc03.out",nwH);
for(i=0;i<10;i++){
fscanf(fp,n%s%s”,a,b);
fprintf(wf,n%s\nH,fun(a?b));
)
fclose(fp);
fclose(wf);
)
main()
{chara[20],b[10];
printf("Input1thstring:");
gets(a);
printf("Input2thstring:");
gets(b);
printf(n%s\nn,fun(a,b));
NONOQ;
)
第4套
人員的記錄由編號(hào)和出生年、月、H組成,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;
STUfun(STU*std,char*num)
{inti;STUa={””,9999,99,99};
for(i=0;i<N;i++)
/**********^if)und**********/
if(strcmp(std[i].num,num)==O)
/**********found**********/
return(stdfi]);
returna;
)
main()
{STUstd[N]={{H111111);1984,2,15},{,'222222n,1983,9,21},{,333333",1984,9,1),
{“444444”[983,7,15},{“555555”,1984,9,28},{“666666”,1983,11,15},
{“777777”,1983,6,22},{“888888”,1984,8,19}};
STUp;charn[10]="666666M;
p=fun(std,n);
if(p.num[0]==0)
printf("\nNotfound!\n");
else
{printf(n\nSucceed!\n");
printf(n%s%d-%d-%d\n",p.num,p.year,p.month,p.day);
)
)
給定程序modi.c中,函數(shù)fun的功能是:從s所指字符串中,找出t所指子串的個(gè)數(shù)作為
函數(shù)值返回。
例如,當(dāng)s所指字符串中的內(nèi)容為:"abcdabfab",t所指字符串的內(nèi)容為:"ab",則函
數(shù)返回整數(shù)3。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<windows.h>
intfun(char*s,char*t)
(
intn;char*p,*r;
n=0;
while(*s)
{p=s;r=t;
while(*r)
/************nd***示********/
if(*r==*p){r++;p++;}
elsebreak;
/************found***¥********/
if(*r=,\O,)
n++;
s++;
returnn;
)
main()
(
chars[100|,t|100|;intm;
system(Mclsn);
printf(n\nPleaseenterstringS:");scanf("%s”,s);
printf(M\nPleaseentersubstringt:n);scanf(n%s",t);
m=fun(s,t);
printf(n\nTheresultis:m=%d\n",m);
)
規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:使字符串最前面
連續(xù)的*號(hào)不得多于n個(gè);若多于n個(gè),則刪除多余的*號(hào);若少于或等于n個(gè),則什么也不
做,字符串中間和尾部的*號(hào)不刪除。
例如,字符串中的內(nèi)容為:*******A*BC*DEF*G****,若n的值為4,刪除后,字符
串中的內(nèi)容應(yīng)當(dāng)是:****A*BC*DEF*G****;若n的值為8,則字符串中的內(nèi)容仍為:
*******A*BC*DEF*G****。n的值在主函數(shù)中輸入。在編寫(xiě)函數(shù)時(shí),不得使用C語(yǔ)言提供
的字符串函數(shù)。
注意:部分源程序存在文件prog.c中。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)
的若干語(yǔ)句。
#include<stdio.h>
#include<conio.h>
voidfun(char*a,intn)
{charb|81J;
inti=O,j=O,s=O,k;
while(a[i]=,5!c,){s++;i++;}
if(s>n)
{for(k=0;k<n;k++)
{b[jl;j++;}
while(a[i])
{b|j]=a[i];j++;i++;}
b|j]=W;i=0;j=0;
while(b|j])
{a[i]=b[j];i++;j++;}
a[i]=W;
voidNONO()
{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件、輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),
輸出數(shù)據(jù),關(guān)閉文件。*/
chars[81];
inti,n;
FILE*rf,*wf;
rf=fopen(nb40.in'V,rM);
wf=fopen(Ha40.out",nwM);
for(i=0;i<4;i++)
{fscanf(rf,"%sM,s);
nn
fscanf(rf,%d5&n);
fun(s,n);
fprintf(wf,n%s\nn,s);
)
fclose(rf);
fclose(wf);
)
main()
{chars[81];intn;
printf("Enterastring:\nM);gets(s);
printf("Entern:n);scanf("%d",&n);
fun(s,n);
printf(HThestringafterdeleted:\nn);puts(s);
NONO();
第5套
人員的記錄由編號(hào)和出生年、月、日組成,N名人員的數(shù)據(jù)已在主函數(shù)中存入結(jié)構(gòu)體數(shù)
組std中。函數(shù)fun的功能是:找出指定出生年份的人員,將其數(shù)據(jù)放在形參k所指的數(shù)組
中,由主函數(shù)輸出,同時(shí)由函數(shù)值返回滿足指定條件的人數(shù)。
請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)
果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<stdio.h>
#defineN8
typedefstruct
{intnum;
intyear,month,day;
}STU;
intfun(STU*std,STU*k,intyear)
{inti,n=O;
for(i=0;i<N;i++)
/**********found**********/
if(std[i].year==year)
k[n++]=std[i];
return(n);
)
main()
{STUstd[N]={{1,1984,2,15},{2,1983,9,21},{3,1984,9,1},{4,1983,7,15},
{5,1985,9,28},{6,1982,11,15},{7,1982,6,22},{8,1984,8,19});
STUk[NJ;inti,n,year;
printf(nEnterayear:");scanf("%d”,&year);
n=fun(std,k,year);
if(n==0)
printf(n\nNopersonwasbornin%d\n'\year);
else
printf(n\nThesepersonswerebomin%d\nn,year);
fdr(i=O;i<n;i++)
printf(u%d%d-%d-%d\n",k[i].num,k[i].year,k[i].month,k[i].day);
給定程序modi.c中,函數(shù)fun的功能是:將十進(jìn)制正整數(shù)m轉(zhuǎn)換成k(2WkW9)進(jìn)制數(shù),
并按位輸出。
例如,若輸入8和2,則應(yīng)輸出1000(即十進(jìn)制數(shù)8轉(zhuǎn)換成二進(jìn)制表示是1000)。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<conio.h>
#include<stdio.h>
#include<windows.h>
voidfiin(intm,intk)
(
intaa|20],i;
for(i=0;m;i4-+)
{
/************found*>
aa[i]=m%k;
m/=k;
/************found************/
for(i=i-l;i>=0;i—)
printf(M%dn,aa[i]);
main()
intb,n;
systemC'cls");
printfCAnPleaseenteranumberandabase:\nn);
scanf(u%d%dH,&n,&b);
fun(n,b);
printf(,f\nn);
請(qǐng)編寫(xiě)一個(gè)函數(shù)fun,它的功能是:計(jì)算n門課程的平均分,計(jì)算結(jié)果作為函數(shù)值返回。
例如:若有5門課程的成績(jī)是:90.5,72,80,61.5,55,則函數(shù)的值為:71.80。
#include<stdio.h>
floatfun(float*a,intn)
inti;
floataverage;
doublesum=0;
for(i=0;i<n;i++)
sum+=a[i];
average=(float)sum/n;
returnaverage;
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*fp,*wf;
inti,j;
floataver,score[5];
fp=fopen(,,bc01.in,',V);
if(fp==NULL){
printf("數(shù)據(jù)文件bcOl.in不存在!”);
return;
wf=fopen(,,bc01.out,,,,'wu);
for(i=0;i<10;i++){
for(j=0;j<5;j++)fscanf(fp,"%f,”,&score[jD;
aver=fun(score,5);
fprintf(wf,n%5.2f\nn,aver);
)
fclose(fp);
fclose(wf);
)
main()
{floatscore[30]={90.5,72,80,61.5,55},aver;
aver=fun(score,5);
printf(AnAveragescoreis:%5.2f\nu,aver);
NONO();
第6套
給定程序通過(guò)定義并賦初值的方式,利用結(jié)構(gòu)體變量存儲(chǔ)了一名學(xué)生的學(xué)號(hào)、姓名和3
門課的成績(jī)。函數(shù)fun的功能是將該學(xué)生的各科成績(jī)都乘以一個(gè)系數(shù)a。
#include<stdio.h>
typedefstruct
{intnum;
charname[9];
floatscore[3];
}STU;
voidshow(STUtt)
{inti;
printf(,,%d%s:",tt.num,);
for(i=0;i<3;i++)
printf(M%5.1f',tt.score[i]);
printf("\n");
/**********tound**********/
voidmodify(STU*ss,floata)
{inti;
for(i=0;iv3;i++)
/**********^^und*****示****/
ss->score|i]*=a;
)
main()
{STUstd={l,MZhanghuaH,76.5,78.0,82.0};
floata;
printf(,r\nTheoriginalnumberandnameandscores:\n");
show(std);
printf(,f\nlnputanumber:");scanf("%r,&a);
/**********found**********/
modify(&std,a);
printf("\nAresultofmodifying:\n");
show(std);
給定程序modi.c中,函數(shù)fun的功能是:讀入一個(gè)字符串(長(zhǎng)度<20),將該字符串中
的所有字符按ASCII碼升序排序后輸出。
例如:若輸入:edcba,則應(yīng)輸出:abcdeo
#include<conio.h>
#include<stdio.h>
#include〈windows.h>
#defineM20
voidfun(chart[])
charc;
intij;
/************found****次*******/
for(i=strlen(t)-1;i;i—)
for(j=0;j<i;j++)
[卷**********nd************/
if(tU]>tU+U)
(
c=t[j];
tUHU+1];
t[j+l|=C;
main()
(
chars[81];
system(”cls");
printf(AnPleaseenteracharacterstring:'1);
gets(s);
printf(An\nBeforesortingAn\"%s\"u,s);
fun(s);
printf(,r\nAftersortingdecendinglyAn\',%s\',,,,s);
某學(xué)生的記錄由學(xué)號(hào)、8門課程成績(jī)和平均分組成,學(xué)號(hào)和8門課程的成績(jī)已在主函數(shù)
中給出。請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:求出該學(xué)生的平均分放在記錄的ave成員中。請(qǐng)自
己定義正確的形參。
例如,學(xué)生的成績(jī)是:85.5,76,69.5,85,91,72,64.5,875他的平均分應(yīng)當(dāng)是:78.875。
#include<stdio.h>
#defineN8
typedefstruct
{charnum[10];
doubles[N];
doubleave;
JSTREC;
voidfun(STREC*p)
{inti;
doubleaven=0;
for(i=0;i<N;i++)
{aver=aver+(*p).s[i];}
(*p).ave=aver/N;
)
voidNONO()
{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),
輸出數(shù)據(jù),關(guān)閉文件。*/
STRECs={nGA005n,85.5,76,69.5,85,91,72,64.5,87.5};
inti;
FILE*wf;
wf=fopen("a43.out'\"w'1);
fun(&s);
fprintf(wf,'The%s'sstudentdata:\n",s.num);
for(i=0;i<N;i++)
fprintf(wf,H%4.1f\nM,s.s[i]);
fprintf(wf,nave=%7.3f\n",s.ave);
fclose(wf);
)
main()
{STRECs={"GA005”,85.5,76,69.5,85,91,72,64.5,87.5};
inti;
fun(&s);
printf(nThe%s'sstudentdata:\nM,s.num);
for(i=0;i<N;i++)
printf(n%4.If\nn,s.s[i]);
printf(',\nave=%7.3f\n,\s.ave);
NONO();
第7套
給定程序中,函數(shù)fun的功能是:將形參指針?biāo)附Y(jié)構(gòu)體數(shù)組中的三個(gè)元素按num成
員進(jìn)行升序排列。
#include<stdio.h>
typedefstruct
{intnum;
charname[10];
}PERSON;
[**********^)und**********/
voidfun(PERSONstd[3])
/**********found**********/
PERSONtemp;
if(std[O].num>std[l].num)
{temp=std[0];std[O]=std[l];std[1l=temp;}
if(std[0].num>std[2].num)
{temp=std|OJ;std|0]=std[2];std[2]=temp;}
if(std|1].num>std[2].num)
{temp=std[l];std[l]=std[2];std[2]=temp;}
)
main()
{PERSONstd[]={5;,Zhanghu,',2;,WangLi';6;,LinMinn};
inti;
/**********^Qund**********/
fun(std);
printfCAnTheresultis:\n");
for(i=0;i<3;i++)
printf(n%d?%s\nn,std[i].num,std[i].name);
給定程序modi.c中,函數(shù)fun的功能是:通過(guò)某種方式實(shí)現(xiàn)兩個(gè)變量值的交換,規(guī)定
不允許增加語(yǔ)句和表達(dá)式。例如變量a中的值為3,b中的值原為8,程序運(yùn)行后a中的值
為8,b中的值為3。
#include<conio.h>
#include<stdio.h>
#include<windows.h>
intfun(int*x,inty)
intt;
returnt;
)
main()
(
inta=3,b=8;
system(,*clsM);
printf(n%d%d\nn,a,b);
b=fun(&a,b);
printf(n%d%d\n'\a,b);
學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)
編寫(xiě)函數(shù)fun,它的功能是:把高于等于平均分的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中,高于等于
平均分的學(xué)生人數(shù)通過(guò)形參傳回,平均分通過(guò)函數(shù)值返回。
#include<stdio.h>
#defineN12
typedefstruct
{charnum[10];
doubles;
}STREC;
doublefun(STREC*a,STREC*b,im*n)
{inti,j;
doubleaver=0;
*n=0;
for(i=0;i<N;i++)
aver=aver+a[i].s;
aver=aver/N;
for(i=0;i<N;i++)
if(a[i].s>=aver)
{b[*n].s=a[i].s;
for(j=0;j<10;j++)
b[*n].num[j]=a[i].num[j];
*n=*n+l;
return(aver);
)
main()
{STREC
s[N]={{',GA05,',85},{,,GA03,1,76},{"GA02,\69},{,,GA04,1,85},{"GA0r,,91},{,'GA07",72},{,,GA
08H,64},{,,GA06,1,87},{,,GA09,1,60},{nGAlln,79),{,,GA12n,73},{',GA10,1,90});
STREChLN];FILE*out;
inti,n;doubleave;
ave=fun(s,h,&n);
printf('The%dstudentdatawhichishigherthan%7.3f:\nn,n,ave);
fbr(i=O;i<n;i++)
printf("%s%4.1f\n'\h[i].num,h[i].s);
printfCAn");
out=fopen("outl2.dat"Jw");
fprintf(out,n%d\n%7.3f\n",n,ave);
for(i=O;i<n;i++)
fprintf(out/'%s%4.lf\nn,h[i].num,h[i].s);
fclose(out);
第8套
給定程序中,函數(shù)fun的功能是:將形參std所指結(jié)構(gòu)體數(shù)組中年齡最大者的數(shù)據(jù)作為
函數(shù)值返回,并在main函數(shù)中輸出。
#include<stdio.h>
typedefstruct
{charname[10];
intage;
}STD;
STDfun(STDstd[],intn)
{STDmax;inti;
/**********found**********/
max=*std;
for(i=l;i<n;i++)
/**********found**********/
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('\nTheresult:\nu);
/******************/
printf(u\nName:%s,Age:%d\nn,,max.age);
)
給定程序modi.c中,函數(shù)fun的功能是:計(jì)算正整數(shù)num的各位上的數(shù)字之積,例如,
若輸入:252,則輸出應(yīng)該是:20o若輸入:202,則輸出應(yīng)該是:0。
#include<stdio.h>
#include<conio.h>
#include〈windows.h>
longfun(longnum)
/享***¥******nd************/
longk=l;
do
{k*=num%10;
/不***不*******found************/
num/=10;
}while(num);
return(k);
main()
{longn;
system(,'clsn);
printf('Pleaseenteranumber:");scanf("%ld”,&n);
printf('\n%ld\n",fun(n));
)
學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)
編寫(xiě)函數(shù)fun,它的功能是:按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前。
#include<stdio.h>
#defineN16
typedefstruct
{charnum[10];
ints;
}STREC;
voidfun(STRECa[J)
{inti,j,p,t,k;
charh;
for(i=O;i<N;i++)
{P=i;
for(j=i+l;j<N;j++)/*按分?jǐn)?shù)從高到低進(jìn)行排序*/
if(a[p].s<a[j].s)p=j;
if(p!=i)
{t=a[p].s;a[p].s=a[i].s;a[i].s=t;
for(k=0;k<10;k++)
{h=a[p].num[k];
a[p].num[k]=a[i].num[k];
a[i].num[k]=h;
)
)
main()
{STREC
s[N]={{,,GA05,1,85},{uGA03n,76},{MGA02M,69},{MGA04H,84},{MGA0r,,91},{,'GA07,',72},{nGA
08,;64},{"GA06'\87},{nGA015,\89},{"GA013',,92},{"GA012,\66},{nGA014,',93},{nGA0H",90
},{"GA017”,63},{“GAO18”,61},{”GAO16",73}};
inti;FILE*out;
fun(s);
printf('Thedataaftersorted:、。');
for(i=0;i<N;i++)
{if((i)%4==0)printf(H\nn);
printf(M%s%4d",s[i].num,s[i].s);
)
printf('^\n,^);
out=fopen("outl6.dat,,,',wu);
for(i=0;i<N;i++)
{if((i)%4==0&&i)fprintf(out,n\n");
fprintf(out,"%s%4dn,s[i].num,s[i].s);
)
fprintf(out,M\nn);
fclose(out);
)
第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。
#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++)
{k=i;
/**********fiound**********/
for(j=i+l;j<M;j++)
*********found**********/
if(n[k]>n[j])k=j;
if(k!=i)
{strcpy(t,ss[i]);
strcpy(ss[i],ss[k]);
*********found**********/
strcpy(ss[k],t);
n[k]=n[i];
)
)
}
main()
{charss[M][N]={''shanghai,,,"guangzhou",",beijing","tianjing,,,',cchongqingn};
inti;
printf("\nTheoriginalstringsare:\n");
for(i=0;i<M;i++)printf(n%s\nM,ss[i]);
printfCAn");
fun(ss);
printf('\nTheresult:\nH);
for(i=0;i<M;i++)printf("%s\n",ss[i]);
)
給定程序modi.c中,函數(shù)fun的功能是:將字符串中的內(nèi)容按逆序輸出,但不改變字符串
中的內(nèi)容。
例如,若字符串為abed,則應(yīng)輸出:deba。
#include<stdio.h>
/***孝,**不****nd***,**¥*****/
fun(char*a)
{if(*a)
{fun(a+l);
/************found************/
printf("%c"*a);
main()
{chars[10]=uabcdn;
printf("處理前字符串二%s\n處理后字符串=",s);
fun(s);printf(',\nn);
函數(shù)fun的功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成一個(gè)整數(shù)放在c中。合并的
方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位匕b數(shù)的十位和個(gè)位數(shù)依次放
在c數(shù)的十位和千位上。
例如,當(dāng)a=45,b=12。調(diào)用該函數(shù)后,c=2415o
#include<conio.h>
#include<stdio.h>
#include<windows.h>
voidfun(inta,intb,long*c)
(
inta_up,a_low,b_up,b_low;
a_up=a/10;
a_low=a%10;
b_up=b/10;
b_Jow二b%10;
*c=b_low*1000+a_up*100+b_up*10+a_low;
)
voidNONO()
{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE*rf,*wf;
inti,a,b;longc;
rf=fopen("inl.datu,V);
wf=fopen("bc04.datnw");
for(i=0;i<10;i++){
fscanf(rf,"%d,%d”,&a,&b);
fun(a,b,&c);
fprintf(wf,,,a=%d,b=%d,c=%ld\nn,a,b,c);
fclose(rf);
fclose(wf);
main()
{inta,b;longc;
system(,,clsu);
printf("Inputa,b:");
scanf("%d%dM,&a,&b);
fun(a,b,&c);
printf('Theresultis:%ld\n",c);
NONO();
第10套
給定程序中,函數(shù)fun的功能是:求出形參ss所指字符串?dāng)?shù)組中最長(zhǎng)字符串的長(zhǎng)度,其余
字符串左邊用字符*補(bǔ)齊,使其與最長(zhǎng)的字符串等長(zhǎng)。字符串?dāng)?shù)組中共有M個(gè)字符串,且串
長(zhǎng)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){
/**********found**********/
n=len;k=i;
}
for(i=0;i<M;i++)
if(i!=k)
{m=n;
len=strlen(ss[i]);
/**********found**********/
for(j=len;j>=0;j-)
ss[i][m-]=ss[i][j];
for(j=0;j<n-len;j++)
/**********found*****¥****/
SS「皿士*
main()
{charsslM][N]={"shanghai",nguangzhou,V'beijing,\,,tianjingM,"cchongqing"};
inti;
printf("\nTheoriginalstringsare:\nn);
for(i=0;i<M;i++)printf(n%s\n",ss[i]);
printfCn");
fun(ss);
printf(,f\nTheresultAn");
for(i=0;i<M;i++)printf(n%s\nH,ss[i]);
)
給定程序modi.c中,函數(shù)fun的功能是:計(jì)算函數(shù)F(x,y,z)=(x+y)/(x?y)+(z+y)/(z?y)的值。其
中x和y的值不等,z和y的值不等。
例如,當(dāng)x的值為9、y的值為11、z的值為15時(shí),函數(shù)值為-3.50。
#inckide<stdio.h>
#include<math.h>
#defineFU(m,n)(m/n)
floatfun(floata,floatb,floatc)
{floatvalue;
/************found************/
value=FU((a+b),(a
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄉(xiāng)村振興產(chǎn)業(yè)基地項(xiàng)目發(fā)展前景分析報(bào)告
- 小學(xué)美術(shù)嶺南版四年級(jí)上冊(cè)17. 可愛(ài)的童帽教學(xué)設(shè)計(jì)
- 美麗城市建設(shè)的系統(tǒng)推進(jìn)策略與實(shí)踐路徑
- 激發(fā)數(shù)字經(jīng)濟(jì)創(chuàng)新潛力的關(guān)鍵策略與實(shí)踐路徑
- 丙烯酸酯行業(yè)發(fā)展動(dòng)向與未來(lái)市場(chǎng)潛力解析
- 食用菌栽培技術(shù)培訓(xùn)
- Module 4 Unit 2 Can you tell me about American festivals(教學(xué)設(shè)計(jì))-2024-2025學(xué)年外研版(一起)英語(yǔ)六年級(jí)上冊(cè)
- Unit 1 My classroom PA let's spell (教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教PEP版英語(yǔ)四年級(jí)上冊(cè)
- 注冊(cè)測(cè)繪師題庫(kù)帶答案分析2024
- 一級(jí)建造師真題答案解析2024
- 電廠環(huán)境衛(wèi)生治理方案
- 小紅書(shū)搜索推廣營(yíng)銷師認(rèn)證考試題庫(kù)(附答案)
- 政府采購(gòu)公平性保障方案
- 智慧社區(qū)數(shù)字化教育方案
- 風(fēng)力發(fā)電勞務(wù)施工合同
- 部編版歷史八年級(jí)下冊(cè)第四單元 第14課《海峽兩岸的交往》說(shuō)課稿
- 石家莊市既有建筑改造利用消防設(shè)計(jì)審查指南(2024年版)
- GB/T 30595-2024建筑保溫用擠塑聚苯板(XPS)系統(tǒng)材料
- 《中華人民共和國(guó)突發(fā)事件應(yīng)對(duì)法》知識(shí)培訓(xùn)
- 《智能家居系統(tǒng)》課件
- 《護(hù)理心理學(xué)》期末考試復(fù)習(xí)題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論