計(jì)算機(jī)二級(jí) c++程序題 題庫(kù)_第1頁(yè)
計(jì)算機(jī)二級(jí) c++程序題 題庫(kù)_第2頁(yè)
計(jì)算機(jī)二級(jí) c++程序題 題庫(kù)_第3頁(yè)
計(jì)算機(jī)二級(jí) c++程序題 題庫(kù)_第4頁(yè)
計(jì)算機(jī)二級(jí) c++程序題 題庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩274頁(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)介

第一套

給定程序中,函數(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論