計算機(jī)二級上機(jī)題_第1頁
計算機(jī)二級上機(jī)題_第2頁
計算機(jī)二級上機(jī)題_第3頁
計算機(jī)二級上機(jī)題_第4頁
計算機(jī)二級上機(jī)題_第5頁
已閱讀5頁,還剩178頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第二處:判斷是否是奇數(shù),所以應(yīng)填:0。

第三處:最后通形參n來返回新數(shù)x,所以

第oi應(yīng)填:X。

給定程序中,函數(shù)fun的功能是:將形參n

所指變量中,各位上為偶數(shù)的數(shù)去給定程序MODII.C中函數(shù)fun的功能是:

除,剩余的數(shù)按原來從高位到低位的順序組計算n!。

成一個新的數(shù),并通過形參指針n傳回例如,給n輸入5,則輸出120.000000。

所指變量。請改正程序中的錯誤,使程序能輸出正確的

例如,輸入一個數(shù):27638496,新的數(shù):為結(jié)果。

739。注意:不要改動main函數(shù),不得增行或刪

請在程序的下劃線處填入正確的內(nèi)容并把行,也不得更改程序的結(jié)構(gòu)!

下劃線刪除,使程序得出正確的結(jié)給定源程序:

果。#include<stdio.h>

注意:源程序存放在考生文件夾下的doublefun(intn)

BLANK1.C中。

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!/*宏為世紀(jì)教育*/

給定源程序:

#include<stdio.h>{doubleresult=1.0;

voidfun(unsignedlong*n)/************found************/

{unsignedlongx=0,i;intt;ifn==0

i=l;return1.0;

while(*n)while(n>1&&n<170)

/****孝*****found******岑***//************found************/

{t=*n%_1_;result*=n—

/***‘******found**********/returnresult;

if(t%2!=_2_))

{x=x+t*i;i=i*10;}main()

*n=*n/10;{intn;

printf(nInputN:");

/**¥*¥¥****found*******¥**/scanf(n%dH,&n);

*n=_3_;printf(',\n\n%d!=%lf\n\n",n,fun(n));

)

main()解題思路:

{unsignedlongn=-l;第一處:條件語句書寫格式錯誤,應(yīng)改為:

while(n>99999999lln<0)if(n==0)o

{printf(nPleaseinput(O<n<100000000):");第二處:語句后缺少分號。

scanf(n%ld';&n);}

fun(&n);

printf(u\nTheresultis:%ld\nM,n);請編寫一個函數(shù)fun,它的功能是:將一個

)數(shù)字字符串轉(zhuǎn)換為一個整數(shù)(不得

解題思路:調(diào)用C語言提供的將字符串轉(zhuǎn)換為整數(shù)的

第一處:t是通過取模的方式來得到*n的個函數(shù))。例如,若輸入字符串"-1234”,則

位數(shù)字,所以應(yīng)填:10。函數(shù)把它轉(zhuǎn)換為整數(shù)值-1234。函數(shù)fun中

給出的語句僅供參考。fprintf(wf,H%ld\n",n);

注意:部分源程序存在文件PR0G1.C文件)

中。fclose(fp);

請勿改動主函數(shù)main和其它函數(shù)中的任何fclose(wf);

內(nèi)容,僅在函數(shù)fun的花括號中填)

入你編寫的若干語句。解題思路:

給定源程序:本題是將一個數(shù)字字符串轉(zhuǎn)換為一個整數(shù)。

#include<stdio.h>參考答案:

#include<string.h>#include<stdio.h>

longfun(char*p)#include<string.h>

(longfun(char*p)

/*以下代碼僅供參考*/(

inti,len,t;/*len為串長,t為正負(fù)標(biāo)識*/I*以下代碼僅供參考*/

longx=0;inti,len,t;/*len為串長,t為正負(fù)標(biāo)識*/

len=strlen(p);longx=0;

if(p[0]==v)len=strlen(p);

{t=-l;len-;p++;}if(P⑼=='-')

elset=l;{t=-l;len-;p++;}

/*以下完成數(shù)字字符串轉(zhuǎn)換為一個數(shù)字*/elset=l;

returnx*l;/*以下完成數(shù)字字符串轉(zhuǎn)換為一個數(shù)字*/

)while(*p)x=x*10-48+(*p++);

main。/*主函數(shù)*/returnx*t;

{chars[6];)

longn;main。/*主函數(shù)*/

printf(uEnterastring:\nM);{chars[6J;

gets(s);longn;

n=fun(s);printf("Enterastring:\n");

printf(n%ld\nn,n);gets(s);

/*宏為世紀(jì)教育*/n=fun(s);

printf(n%ld\nM,n);

NONO();NONO();

))

NONO()NONO()

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用

函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/函數(shù),輸出數(shù)據(jù),關(guān)閉文件。刃

FILE*fp,*wf;/*宏為世紀(jì)教育*/

inti;

chars[20];FILE*fp,*wf;

longn;inti;

fp=fopenC'czWtestWin.dat",'?");chars[20];

wf=fopen(,,c:\\test\\out.datM/'wn);longn;

for(i=0;i<10;i++){fp=fopen(,'c:\\test\\in.dat',,,'r");

fscanf(fp,H%sM,s);wf=fopen(uc:\\test\\out.dat,',,'w");

n=fun(s);for(i=0;i<10;i++){

fscanf(fp,u%sM,s);doublec=98.76;

n=fun(s);fun(a,b,c);

fprintf(wf,"%ld\nH,n);}

)解題思路:

fclose(fp);本題是考察先把給定的數(shù)據(jù)寫入到文本文

fclose(wf);件中,再從該文件讀出并顯示在屏幕上。

第一處:定義文本文件類型變量,所以應(yīng)填:

※※※※※※※FILE*。

第二處:判斷文件是否結(jié)束,所以應(yīng)填:fp。

第套

第三處:顯示讀出的字符,所以應(yīng)填:ch?

第0227:

給定程序中,函數(shù)fun的功能是將形參給定給定程序MODI1.C中函數(shù)fun的功能是:依

的字符串、整數(shù)、浮點數(shù)寫到文本次取出字符串中所有數(shù)字字符,形

文件中,再用字符方式從此文本文件中逐個成新的字符串,并取代原字符串。

讀入并顯示在終端屏幕上。請改正函數(shù)fun中指定部位的錯誤,使它能

請在程序的下劃線處填入正確的內(nèi)容并把得出正確的結(jié)果。

下劃線刪除,使程序得出正確的結(jié)注意:不要改動main函數(shù),不得增行或刪

果。行,也不得更改程序的結(jié)構(gòu)!

注意:源程序存放在考生文件夾下的給定源程序:

BLANK1.C中。#include<stdio.h>

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!voidfun(char*s)

給定源程序:{inti,j;

#include<stdio.h>for(i=0,j=0;s[i]!='\0';i++)

voidfun(char*s,inta,doublef)if(s[i]>='0'&&s[i]<='9')

/**********found**********/

/***不*****nd*******¥¥*/s[j]=s[i];

_1—fp;/**********found**********/

charch;sm="\o”;

fp=fopen(nfilel.txtu,"wn);}

fprintf(fp,M%s%d%f\nM,s,a,f);main()

fclose(fp);{charitem[80];

fp=fopen(',filel.txt,',ur");printf(M\nEnterastring:n);gets(item);

printf(u\nTheresult:\n\nn);printfCAnXnThestringis:\u%s\n\n",item);

ch=fgetc(fp);fun(item);

/**********found**********/printf(M\n\nThestringofchangingis:

while(!feof(_2_)){\"%s\“\n”,item);

/**********found********不*/}

putchar(_3_);ch=fgetc(fp);}解題思路:

pulchar('n');第一處:要求是取出原字符串中所有數(shù)字

fclose(fp);字符組成一個新的字符串,程序中是使用變

量j

main()來控制新字符串的位置,所以應(yīng)改為:

{chara[10]=HHello!H;intb=12345;sfj++]=s[i];。

第二處:置新字符串的結(jié)束符,所以應(yīng)改NONO();

為:s[j]='\O,;.

解題思路:

請編寫函數(shù)fun,函數(shù)的功能是:將M行N本題是把二維數(shù)組中的字符數(shù)據(jù)按列存放

列的二維數(shù)組中的字符數(shù)據(jù),按列的到一個字符串中。

順序依次放到一個字符串中。1.計算存放到一維數(shù)組中的位置。

例如,二維數(shù)組中的數(shù)據(jù)為:2.取出二維數(shù)組中的字符存放到一維數(shù)組

WWWW(已計算出的位置)中。

SSSS參考答案:

HHHHvoidfun(charchar*b)

則字符串中的內(nèi)容應(yīng)是:WSHWSHWSHo(

注意:部分源程序在文件PROG1.C中。/*宏為世紀(jì)教育*/

請勿改動主函數(shù)main和其它函數(shù)中的任何

內(nèi)容,僅在函數(shù)fun的花括號中填入inti,j,n=O;

你編寫的若干語句。for(i=0;i<N;i++)/*請?zhí)顚懴鄳?yīng)語句完成

給定源程序:其功能*/

#include<stdio.h>(

#defineM3for(j=0;j<M;j++){

#defineN4b[n]=s[j][i];

/*宏為世紀(jì)教育*/n=i*M+j+1;

voidfun(chars[][N|,char*b)

(b1n]='\0';

inti,j,n=O;

for(i=0;i<N;i++)/*請?zhí)顚懴鄳?yīng)語句完成

其功能*/※※※※※※※※※※※※※※※※※※

※※※※※※※

b[n]=\0';

)第03套-

main()

{char程序通過定義學(xué)生結(jié)構(gòu)體變量,存儲了學(xué)生

a[100],w[M][N]={{,W,,'W,;W';W'},{,S7S,,'S,,的學(xué)號、姓名和3門課的成績。所

有學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到文件中。

inti,j;函數(shù)fun的功能是重寫形參filename所

printf(nThematrix:\nH);指文件中最后一個學(xué)生的數(shù)據(jù),即用新的學(xué)

for(i=0;i<M;i++)生數(shù)據(jù)覆蓋該學(xué)生原來的數(shù)據(jù),其它學(xué)

{for(j=0;j<N;j++)printf(,,%3c',,wli]|jJ);生的數(shù)據(jù)不變。

printf("\nH);請在程序的下劃線處填入正確的內(nèi)容并把

)下劃線刪除,使程序得出正確的結(jié)

fun(w,a);果。

printf(uTheAstring:\nu);puts(a);/*宏為世紀(jì)教育*/

printf(n\n\nu);

注意:源程序存放在考生文件夾下的printf(n\nThedataaftermodifing:\n\n");

BLANK1.C中。fp=fopen(,'student.datM,nrbn);

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!fread(ss,sizeof(STU),N,fp);

給定源程序:fclose(fp);

#include<stdio.h>for(j=0;j<N;j++)

#defineN5{printf("\nNo:%ldName:%-8sScores:

typedefstructstudent{'\ss[j].sno,ss[j].name);

longsno;for(i=0;i<3;i++)printf(n%6.2f”,

charname[10J;ss|j].score[i]);

floatscore[3];printf(”\n");

}STU;

voidfun(char*filename,STUn)

{FILE*fp;/*宏為世紀(jì)教育*/

/**********found**********/

fp=fopen(_l_,"rb+");)

/**********found**********/)

fseek(_2_,-lL*sizeof(STU),SEEK.END);解題思路:

/***¥******found**********/本題是考察如何從文件中讀出數(shù)據(jù),再把結(jié)

fwrite(&n,sizeof(STU),1,—3—);構(gòu)中的數(shù)據(jù)寫入文件中。

fclose(fp);第一處:從指定的文件中讀出數(shù)據(jù),所以應(yīng)

)填:filenameo

main()第二處:讀取文件fp的最后一條記錄,所

{STUt[N]={{10001,MMaChao';91,92,77),以應(yīng)填:fp。

{10002,"CaoKaiH,75,60,88},第三處:再把讀出的記錄,寫入文件fp指

{10003,nLiSin,85,70,78},定的位置上,所以應(yīng)填:fp。

{10004,MFangFang",90,82,87},

{I0005JZhangSan”,95,80,88}};

STUn={10006,uZhaoSi",55,70,68},ss[N];給定程序M0DI1.C中的函數(shù)Creatlink的功

inti,j;FILE*fp;能是創(chuàng)建帶頭結(jié)點的單向鏈表,并

fp=fopen(Mstudent.datu,nwbH);為各結(jié)點數(shù)據(jù)域賦0到m-1的值。

fwrite(t,sizeof(STU),N,fp);請改正函數(shù)Creatlink中指定部位的錯誤,使

fclose(fp);它能得出正確的結(jié)果。

fp=fopen(nstudent.datH,"rbH);注意:不要改動main函數(shù),不得增行或刪

fread(ss,sizeof(STU),N,fp);行,也不得更改程序的結(jié)構(gòu)!

fclose(fp);給定源程序:

printf(n\nTheoriginaldata:\n\n");#include<stdio.h>

for(j=0;j<N;j++)#include<stdlib.h>

{printf(H\nNo:%ldName:%-8sScores:typedefstructaa

”,ss[j].sno,ss[j].name);{intdata;

for(i=0;i<3;i++)printf("%6.2f”,structaa*next;

ss[j].score[ij);}NODE;

printf(n\nH);NODE*Creatlink(intn,intm)

){NODE*h=NULL,*p,*s;

fun(nstudent.datH,n);inti;

/**¥**¥****nd**********#/注意:部分源程序在文件PROG1.C中。

p=(NODE)malloc(sizeof(NODE));請勿改動主函數(shù)main和其它函數(shù)中的任何

h=p;內(nèi)容,僅在函數(shù)fun的花括號中填入

p->next=NULL;你編寫的若干語句。

for(i=l;i<=n;i++)給定源程序:

{s=(NODE*)malloc(sizeof(NODE));#include<stdio.h>

s->data=rand()%m;s->next=p->next;#include<string.h>

p->next=s;p=p->next;#defineN80

)intfun(char*s)

/**********found***********/(

returnp;)

)main()

outlink(NODE*h){charline[N];intnum=0;

{NODE*p;printf("Enterastring:\nM);gets(line);

p=h->next;num=fun(line);

printf(M\n\nTHELIST:\n\nHEAD");printf("Thenumberofword

while(p)is:%d\n\nH,num);

{printf("->%d",p->data);NONO();

p=p->next;)

)

printf(n\nu);解題思路:

)本題是統(tǒng)計字符串中的單詞數(shù)。

main()1.利用while循環(huán)語句和指針變量,當(dāng)字符

{NODE*head;為空格時,則單詞數(shù)k加1。

head=Creatlink(8,22);2.循環(huán)結(jié)束返回k。

/*宏為世紀(jì)教育*/參考答案:

outlink(head);intfun(char*s)

)(

解題思路:intk=1;

第一處:指向剛分配的結(jié)構(gòu)指針,所以應(yīng)改while(*s){

為:p=(NODE*)malloc(sizeof(NODE));if(*s=='')k++;

第二處:在動態(tài)分配內(nèi)存的下一行語句是,s++;

使用臨時結(jié)構(gòu)指針變量h保存p指針的初始)

位置,returnk;

最后返回不能使用P,是因為p的位置已經(jīng)

發(fā)生了變化,所以應(yīng)改為返回h。

※※※※※※※※※※※※※※※※※※

※※※※※※※

請編寫函數(shù)fun,函數(shù)的功能是:統(tǒng)計一行字

符串中單詞的個數(shù),作為函數(shù)值返

回。一行字符串在主函數(shù)中輸入,規(guī)定所有第04套:

單詞由小寫字母組成,單詞之間由若干

個空格隔開,一行的開始沒有空格。程序通過定義學(xué)生結(jié)構(gòu)體變量,存儲了學(xué)生

的學(xué)號、姓名和3門課的成績。所{10002;,CaoKai,',75,60,88),

有學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到文件中。{10004;'FangFang",90,82,87},

函數(shù)fun的功能是從形參filename所指{10001,nMaChaou,9I,92,77}},ss[NJ;

的文件中讀入學(xué)生數(shù)據(jù),并按照學(xué)號從小到inti,j;FILE*fp;

大排序后,再用二進(jìn)制方式把排序后的fp=fopen("student.datn,Hwb");

學(xué)生數(shù)據(jù)輸出到filename所指的文件中,覆fwrite(t,sizeof(STU),5,fp);

蓋原來的文件內(nèi)容。fclose(fp);

請在程序的下劃線處填入正確的內(nèi)容并把printf("\n\nTheoriginaldata:\n\n");

下劃線刪除,使程序得出正確的結(jié)for(j=0;j<N;j++)

果。{printf(n\nNo:%ldName:%-8sScores:

注意:源程序存放在考生文件夾下的H,t[j].sno,t[j].name);

BLANK1.C中。for(i=0;i<3;i++)printf(n%6.2f”,

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!t[j].score[i]);

給定源程序:printfCAn'1);

#include<stdio.h>)

#defineN5fun("student.dat");

typedefstructstudent{printf(n\n\nThedataaftersorting:\n\nM);

longsno;fp=fopen(,'student.datH,Hrbn);

/*宏為世紀(jì)教育*/fread(ss,sizeof(STU),5,fp);

fclose(fp);

charname[10J;for(j=0;j<N;j++)

floatscore[3];{printf(n\nNo:%ldName:%-8sScores:

}STU;'\ss[j].sno,ss[j].name);

voidfun(char*filename)for(i=0;i<3;i++)printf("%6.2f”,

{FILE*fp;inti,j;ss[j].score[i]);

STUs[N],t;printf(n\nn);

/*******************/}

fp=fopen(filename,—1_);)

fread(s,sizeof(STU),N,fp);解題思路:

fclose(fp);本題是考察把結(jié)構(gòu)中的數(shù)據(jù)寫入文件。

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

for(j=i+l;j<N;j++)

/**********^Qund**********//*宏為世紀(jì)教育*/

if(s[i].sno_2_s[j].sno)

{t=s[i];s[i]=s[j];s[j]=t;}第一處:建立文件的類型,考慮到是把結(jié)構(gòu)

fp=fopen(filename,uwbn);中的數(shù)據(jù)(結(jié)構(gòu)中的數(shù)據(jù)包含不打印的字

/**********found**********/符)

_3_(s,sizeof(STU),N,fp);/*二進(jìn)制輸出從文件中讀出,所以應(yīng)填:"rb”。

*/第二處:判斷當(dāng)前學(xué)號是否大于剛讀出的學(xué)

fclose(fp);號進(jìn)行相比,如果大于,則進(jìn)行交換,所以

)應(yīng)

main()填:>。

{STUt[NJ={{10005;,ZhangSanH,95,80,第三處:把已排序的結(jié)構(gòu)數(shù)據(jù),重新寫入文

88},{10003,“LiSi”,85,70,78},件,所以應(yīng)填:fwrite。

給定程序M0DI1.C中函數(shù)fun的功能是:在請編寫函數(shù)fun,函數(shù)的功能是:統(tǒng)計各年齡

字符串的最前端加入n個*號,形成段的人數(shù)。N個年齡通過調(diào)用隨機(jī)

新串,并且覆蓋原串。函數(shù)獲得,并放在主函數(shù)的age數(shù)組中;要求

注意:字符串的長度最長允許為79。函數(shù)把0至9歲年齡段的人數(shù)放在d[0]

請改正函數(shù)fun中指定部位的錯誤,使它能中,把10至19歲年齡段的人數(shù)放在d[l]中,

得出正確的結(jié)果。把20至29歲年齡段的人數(shù)放在32]中,

注意:不要改動main函數(shù),不得增行或刪其余依此類推,把100歲(含100)以上年齡

行,也不得更改程序的結(jié)構(gòu)!的人數(shù)都放在310]中。結(jié)果在主函數(shù)

給定源程序:/*宏為世紀(jì)教育*/

#include<stdio.h>

#include<string.h>中輸出。

voidfun(chars[],intn)注意:部分源程序在文件PROG1.C中。

(請勿改動主函數(shù)main和其它函數(shù)中的任何

chara[80],*p;內(nèi)容,僅在函數(shù)fun的花括號中填入

inti;你編寫的若干語句。

/**********found***********/給定源程序:

s=p;#include<stdio.h>

for(i=0;i<n;i++)a[i]=*';#defineN50

do#defineM11

{a[i]=*p;voidfun(int*a,int*b)

i++;(

})

/**********found***********/doublernd()

while(*p++){statict=29,c=217,m=1024,r=0;

a[i]=0;r=(r*t+c)%m;relurn((double)r/m);

strcpy(s,a);)

)main()

main(){intage[N],i,d[M];

{intn;chars[8OJ;for(i=0;i<N;i++)age[i]=(int)(l15*md());

printf(n\nEnterastring:");gets(s);printf(nTheoriginaldata:\n");

printf(u\nThestring\n%s\n\nn,s);for(i=0;i<N;i++)

printf("\nEntern(numberof*):");printf((i+l)%10==0?,,%4d\n,,:M%4d'\age[i]);

scanf("%d”,&n);printf(n\n\nn);

fun(s,n);fun(age,d);

printf(u\nThestringafterinsert:\u%s\n\nn,s);for(i=0;i<10;i++)printf(n%4d—%4d:%4d\nn,

)i*10,i*10+9,d[i]);

解題思路:printf(HOver100:%4d\n';d[10]);

第一處:指針p應(yīng)指向s,所以應(yīng)改為:p=s;。NONO(d);

第二處:死循環(huán),當(dāng)dowhile循環(huán)執(zhí)行一次,

臨時變量p應(yīng)該指向字符串的下一位置,所

以解題思路:

應(yīng)改為:while(*p++);o本題是統(tǒng)計各年齡段的人數(shù)。

1.初始化各年齡段人數(shù)為0。

2.使用for循環(huán)以及求出各年齡的十位數(shù)字

作為存放人數(shù)的地址,如果大于值大于10,-1—fp;

則charstrflOO],str1(1001,str2[100];

存入d[10]中(大于110歲的人)。intal;doublefl;

參考答案:fp=fopen("filel.txtu,nw");

voidfun(int*a,int*b)/*宏為世紀(jì)教育*/

(

intij;fprintf(fp,n%s%d%f\n",s,a,f);

for(i=0;i<M;i++)b[i]=0;/**********found**********/

/*宏為世紀(jì)教育*/_2_;

fjp=fopenCfilel.txt",V);

for(i=0;i<N;i++){/**********tound**Y*******/

j=a[i]/10;fscanf(_3_,"%s%s%s",str,strl,str2);

if(j>10)b[M-1]++;elseb[j]++;fclose(fp);

)al=atoi(strl);

)fl=atof(str2);

doublernd()printf(n\nTheresult:\n\n%s%d%f\n",str,al,

{statict=29,c=217,m=1024,r=0;fl);

r=(r*t+c)%m;return((double)r/m);)

)main()

{chara[10]="HeIlo!n;intb=12345;

※※※※※※※※※※※※※※※※※※doublec=98.76;

※※※※※※※fun(a,b,c);

)

解題思路:

第05套-本題是考察先把給定的數(shù)據(jù)寫入到文本文

件中,再從該文件讀出并轉(zhuǎn)換成相應(yīng)的整

給定程序中,函數(shù)fun的功能是將參數(shù)給定數(shù)、浮

的字符串、整數(shù)、浮點數(shù)寫到文本點數(shù)顯示在屏幕上。

文件中,再用字符串方式從此文本文件中逐第一處:定義文本文件類型變量,所以應(yīng)填:

個讀入,并調(diào)用庫函數(shù)atoi和atof將FILE*。

字符串轉(zhuǎn)換成相應(yīng)的整數(shù)、浮點數(shù),然后將第二處:關(guān)閉剛寫入的文件,所以應(yīng)填:

其顯示在屏幕上。fclose(fp)?

請在程序的下劃線處填入正確的內(nèi)容并把第三處:從文件中讀出數(shù)據(jù),所以應(yīng)填:fp。

下劃線刪除,使程序得出正確的結(jié)

果。

注意:源程序存放在考生文件夾下的給定程序M0DI1.C中函數(shù)fun的功能是:對

BLANK1.C中。N名學(xué)生的學(xué)習(xí)成績,按從高到低的

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!順序找出前m(mW10)名學(xué)生來,并將這些

給定源程序:學(xué)生數(shù)據(jù)存放在一個動態(tài)分配的連續(xù)存

#include<stdio.h>儲區(qū)中,此存儲區(qū)的首地址作為函數(shù)值返

#include<stdlib.h>回。

voidfun(char*s,inta,doublef)請改正函數(shù)fun中指定部位的錯誤,使它能

得出正確的結(jié)果。STU*pOrder;

注意:不要改動main函數(shù),不得增行或刪inti,m;

行,也不得更改程序的結(jié)構(gòu)!printf("*****TheOriginaldata*****\n”);

給定源程序:outresult(a,stdout);

#include<stdio.h>printf(n\nGivethenumberofthestudentswho

#include<alloc.h>havebetterscore:");

#include<string.h>scanf(n%dn,&m);

#defineN10while(m>10)

typedefstructss{printf("\nGivethenumberofthestudents

{charnum[10];whohavebetterscore:");

ints;scanf("%d”,&m);

}STU;

STU*fun(STUa[],intm)pOrder=fun(a,m);

{STUb[N],*t;printf(叫****THERESULT*****\n");

inti,j,k;printf("Thetop:\nn);

/**********found**********/for(i=0;i<m;i++)

t=(STU*)calloc(sizeof(STU),m)printf(n%s%d\nH,pOrder[i].num

for(i=0;i<N;i++)b[i]=a[i];pOrder[i].s);

for(k=0;k<m;k++)free(pOrder);

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

if(b[i].s>b[jj.s)j=i;解題思路:

/**********found********不*/第一處:語句最后缺少分號。

第二處:應(yīng)該使用方括號,而不是圓括號。

像此類,使用編譯,即可發(fā)現(xiàn)。

/*宏為世紀(jì)教育*/

t(k)=b(j);請編寫函數(shù)fun,函數(shù)的功能是:刪去一維

b[j].s=O;數(shù)組中所有相同的數(shù),使之只剩一

)個。數(shù)組中的數(shù)已按由小到大的順序排列,

returnt;函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

)例如,一維數(shù)組中的數(shù)據(jù)是:22234456

outresult(STUa[LFILE*pf)66677899101010?

{inti;刪除后,數(shù)組中的內(nèi)容應(yīng)該是:23456789

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

fprintf(pf,"No=%sMark=%d\nu,注意:部分源程序在文件PROG1.C中。

a[i].num,a[i].s);請勿改動主函數(shù)main和其它函數(shù)中的任何

fprintf(pf,n\n\nn);內(nèi)容,僅在函數(shù)fun的花括號中填入

你編寫的若干語句。

main()給定源程序:

{STU#include<stdio.h>

a[N]={{“A01”,81},{“A02”,89},{“A03”,66},{#defineN80

“A04”,87},{”A05”,77},intfun(inta[],intn)

{“A06”,90},{“A07”,79},{“A08”,61},{“A09”,/*宏為世紀(jì)教育*/

80},{"A10",71}};

給定程序中,函數(shù)fun的功能是根據(jù)形參i

)的值返回某個函數(shù)的值。當(dāng)調(diào)用正

main()確時,程序輸出:

{intx1=5.000000,x2=3.000000,

a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,xl*xl+xl*x2=40.000000

10},i,n=20;請在程序的下劃線處填入正確的內(nèi)容并把

printf("Theoriginaldata:\nn);下劃線刪除,使程序得出正確的結(jié)

for(i=0;i<n;i++)printf(,,%3d,,,a[i]);果。

n=fun(a,n);注意:源程序存

溫馨提示

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

最新文檔

評論

0/150

提交評論