華科計(jì)算機(jī)保研復(fù)試機(jī)試題目2_第1頁
華科計(jì)算機(jī)保研復(fù)試機(jī)試題目2_第2頁
華科計(jì)算機(jī)保研復(fù)試機(jī)試題目2_第3頁
華科計(jì)算機(jī)保研復(fù)試機(jī)試題目2_第4頁
華科計(jì)算機(jī)保研復(fù)試機(jī)試題目2_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、華中科技大學(xué)復(fù)試機(jī)試題目2008年一.1、狼過河問題(運(yùn)用到回溯)U2、統(tǒng)計(jì)文件中單詞數(shù)目3、N階樓梯上樓問題:一次可以走兩階或一階,問有多少種上樓方式。(遞歸)4、鏈表操作二.第一個(gè)是一個(gè)上樓梯的種數(shù)的統(tǒng)計(jì),本來是一個(gè)用遞歸可以解決的問題,但是題目偏偏要求編寫快速算法,言下之意就是要求你把遞歸轉(zhuǎn)化成非遞歸。第二個(gè)題是鏈表的,要求依照給出的結(jié)構(gòu)體依次實(shí)現(xiàn)輸入鏈表,保存鏈表,刪除鏈表,從磁盤讀取鏈表,顯示鏈表這幾個(gè)操作。做這個(gè)題,如果不記得保存文件的函數(shù),很可能做不全或者做不出來。第三個(gè)是要求根據(jù)-|/四個(gè)字符來實(shí)現(xiàn)題目所規(guī)定的一個(gè)長方體。并能使這個(gè)長方體適當(dāng)?shù)姆糯?。這個(gè)是一個(gè)遞歸問題,但是我想

2、了半天也沒有做出來。20061.輸入一個(gè)數(shù)列以0位結(jié)束標(biāo)志,建立鏈?zhǔn)骄€性表,查找其中最大的數(shù)并輸出刪除釋放節(jié)點(diǎn),然后對(duì)剩余的進(jìn)行排序,并輸出釋放節(jié)點(diǎn)2.輸入一個(gè)數(shù)列以0位結(jié)束標(biāo)志,建立二叉遍歷數(shù),并對(duì)其進(jìn)行逆中序遍歷,釋放空間0第一題是對(duì)輸入的5個(gè)數(shù)排序,輸出的結(jié)果到文件里。3第二題是用鏈表去對(duì)上面的5個(gè)數(shù)字排序。第三題是輸入一個(gè)ip地址串,判斷是否合法。2005第一題:對(duì)給定的一個(gè)字符串,找出有重復(fù)的字符,并給出其位置,如:輸入:abcaaAB12ab12輸出:a,1;a,4;a,5;a,10b,2;b,111, 8;1,122, 9;2,130第二題:輸入一個(gè)四行五列的矩陣,找出每列最大的

3、兩個(gè)數(shù),如:輸入:12349-1498812987078970輸出:129989”第三題:輸入一個(gè)字符串,建立一個(gè)二叉排序樹,并中序遍歷輸出;其它年份題目/1.給出年分m和一年中的第n天,算出第n天是幾月幾號(hào)(提示中給出了判斷閏年的方法),按yyyy-mm-dd的格式打印出來42.職工有職工號(hào),姓名,年齡.輸入n個(gè)職工的信息,找出3個(gè)年齡最小的職工打印出來,n可以取63.n個(gè)人排一圈123報(bào)數(shù),報(bào)到3的人退到圈外,直到剩最后一個(gè)人為止省4.冒泡排序。5 .建立二叉樹,并中序遍歷。6 .生成一個(gè)長度為21的數(shù)組,依次存入1到21;建立一個(gè)長度為21的單向鏈表,將上述數(shù)組中的數(shù)字依次存入鏈表每個(gè)結(jié)

4、點(diǎn)中;將上述鏈表變?yōu)閱蜗蚍忾](循環(huán))鏈表;從頭結(jié)點(diǎn)開始數(shù),將第17個(gè)結(jié)點(diǎn)刪除,將它的下一個(gè)結(jié)點(diǎn)作為新的頭結(jié)點(diǎn);重復(fù)上述過程,直到該鏈表中只剩一個(gè)結(jié)點(diǎn),顯示該結(jié)點(diǎn)中存入的數(shù)字。08年的華科招收外校保送生上機(jī)試題:.(1)輸入一個(gè)十進(jìn)制數(shù),將其先轉(zhuǎn)化為八進(jìn)制數(shù),然后再輸出(2)用戶輸入一個(gè)文本名,編程實(shí)現(xiàn)輸出文本中最長的一行和最短的一行。如果最長和最短的不止一行,請(qǐng)全部輸出。(3)輸入學(xué)生信息:學(xué)號(hào),三門課程的成績(jī),學(xué)號(hào)為0時(shí)結(jié)束,將其存儲(chǔ)在鏈表A中,從中找出分?jǐn)?shù)大于平均分的學(xué)生,并將該學(xué)生信息按平均分降序排列存入到鏈表B中,最后輸出鏈表Bo08年的華科本校生保送上機(jī)試題:(1)采用命令行方式復(fù)制

5、任意多個(gè)文件內(nèi)容到一個(gè)文件中,如下所示:命令行形式:mycopy1.txt2.txt3.txt4.txt.功能:復(fù)制2.txt3.txt4.txt,的內(nèi)容到1.txt中(2)判定一個(gè)C語言變量的命名是否正確(3)建立一種數(shù)據(jù)結(jié)構(gòu),可以存儲(chǔ)任意個(gè)、任意長度的整數(shù),利用這個(gè)數(shù)據(jù)結(jié)構(gòu),輸入一串?dāng)?shù),排序,求累加和2001年保研復(fù)試題目1.統(tǒng)計(jì)一字符串字符重復(fù)的個(gè)數(shù);例如:輸入q3s4sa1aa輸出s,3;s,5a,6;a,8;a,92,輸入一個(gè)5行4列的的矩陣,輸出每列最大兩個(gè)元素3 .建立一個(gè)鏈表,以輸入0為結(jié)束,刪除其中數(shù)值最大的元素,并輸出后刪除元素后的鏈表(不能用數(shù)組)2000年1.輸入n,求

6、y1=1!+3!+.m!(m是小于等于n的最大奇數(shù))y2=2!+4!+.p!(p是小于等于n的最大偶數(shù))V2。輸入一個(gè)5X5的矩陣,判斷是否對(duì)稱33。建立一個(gè)升序鏈表并遍歷2002年4 1、編一個(gè)程序,讀入用戶輸入的,以“.”結(jié)尾的一行文字,統(tǒng)計(jì)一共有多少個(gè)單詞,并分別輸出每個(gè)單詞含有多少個(gè)字符。(凡是以一個(gè)或多個(gè)空格隔開的部分就為一個(gè)單詞)Q2、守形數(shù)是這樣一種整數(shù),它的平方的低位部分等于它本身。比如25的平方是625,低位部分是25,因此25是一個(gè)守形數(shù)。編一個(gè)程序,找出2-100之間所有的守形數(shù)。3、編一個(gè)程序,讀入用戶輸入的一串先序遍歷字符串,根據(jù)此字符串建立一個(gè)二叉樹(以指針方式存儲(chǔ)

7、)。例如如下的先序遍歷字符串:ABC#DE#G#F#其中“#”表示的是空格,空格字符代表空樹。建立起此二叉樹以后,再對(duì)二叉樹進(jìn)行中序遍歷,輸出遍歷結(jié)果。屏幕的格式化輸出:給出一幅圖形,用程序?qū)崿F(xiàn)。如下所示。AAAAABABCABAABACBABAABBAAA(輸入字符B)(輸入字符C)指針構(gòu)建鏈表結(jié)構(gòu):輸入一組數(shù)據(jù),構(gòu)建一個(gè)升序鏈表,完成插入,刪除,遍歷功能。例如,輸入18543;構(gòu)建head->1->3->4->5->8->NULL;遍歷13458;插入6遍歷134568刪除5遍歷134581。求N的階乘淇中0<=N<=1000(35分)2。求

8、最長的子序列和。比如1+3-2,結(jié)果是4;1+3-2+5,結(jié)果是7;-1-2-3,結(jié)果是-1.另外要求運(yùn)行時(shí)間不超過1s,就是要求算法的復(fù)雜度要好(25分)(40分)3。已知二叉樹的前序和中序序列,要求寫出后序序列。如果給的前序和中序序列是錯(cuò)誤的,就要輸出"NOANSWER!"/1生成一個(gè)長度為21的數(shù)組,依次存入1到21/2建立一個(gè)長度為21的單向鏈表,將上述數(shù)組中的數(shù)字依次存入鏈表每個(gè)結(jié)點(diǎn)中/3將上述鏈表變?yōu)閱蜗蚍忾](循環(huán))鏈表/4從頭結(jié)點(diǎn)開始數(shù),將第17個(gè)結(jié)點(diǎn)刪除,將它的下一個(gè)結(jié)點(diǎn)作為新的頭結(jié)點(diǎn)/5重復(fù)上述過程,直到該鏈表中只剩一個(gè)結(jié)點(diǎn),顯示該結(jié)點(diǎn)中存入的數(shù)字北航:當(dāng)

9、1.素?cái)?shù)輸入一個(gè)整數(shù),要求輸出所有從1到這個(gè)整數(shù)之間個(gè)位為1的素?cái)?shù),如果沒有則輸出-1(30分)2 .旋轉(zhuǎn)矩陣任意輸入兩個(gè)9階以下矩陣,要求判斷第二個(gè)是否是第一個(gè)的旋轉(zhuǎn)矩陣,如果是,輸出旋轉(zhuǎn)角度(0、90、180、270),如果不是,輸出-1。要求先輸入矩陣階數(shù),然后輸入兩個(gè)矩陣,每行兩個(gè)數(shù)之間可以用任意個(gè)空格分隔。行之間用回車分隔,兩個(gè)矩陣間用任意的回車分隔。(60分)3 .字符串匹配從string.in中讀入數(shù)據(jù),然后用戶輸入一個(gè)短字符串。要求查找string.in中和短字符串的所有匹配,輸出行號(hào)、匹配字符串到string.out文件中。匹配時(shí)不區(qū)分大小寫,并且可以有一個(gè)用中括號(hào)表示的模式

10、匹配。如“aa123bb,"就是說aa1bb、aa2bb、aa3bb都算匹配。(60其它:上機(jī):(一個(gè)小時(shí),時(shí)間很緊,使用VC6.0系統(tǒng)C或C+TB行)性文件操作的很多,所以文件操作要熟。第一題:兩個(gè)整數(shù)異或,然后以二進(jìn)制形式輸出異或結(jié)果。第二題:一個(gè)組合問題。大意是紅、黑、白球各若干個(gè),每次取出8個(gè),求不同的組合數(shù)。個(gè)數(shù)從鍵盤輸入,結(jié)果保存到文件。第三題:然后給定一個(gè)字符串,讀文件后查找與給定串的匹配,找到后輸出,找不到返回。第四題:一個(gè)二叉樹的結(jié)點(diǎn)信息(值、層數(shù)等,記不大清楚了)保存在文件里,讀文件建立二叉樹,好像還要遍歷一下。a、輸入一個(gè)字符串,然后對(duì)每個(gè)字符進(jìn)行奇校驗(yàn),最后輸

11、出校驗(yàn)后的二進(jìn)制數(shù)?。ㄈ?3?,輸出:10110011);b、設(shè)計(jì)8個(gè)任務(wù)函數(shù)task0()-task8()只輸出一句話:如task0()輸出“task。iscalled設(shè)計(jì)一個(gè)調(diào)度函數(shù)schedule()輸入一個(gè)字符串如"012345"然后返回一個(gè)函數(shù)指針數(shù)組和字符串的長度作為執(zhí)行函數(shù)execute()的參數(shù)進(jìn)行調(diào)度任務(wù)函數(shù)。主函數(shù)只有調(diào)度函數(shù)。(這個(gè)題難道很多同學(xué)因?yàn)楹芏嗤瑢W(xué)不知道函數(shù)指針數(shù)組怎么用??!)c、實(shí)現(xiàn)一個(gè)加法器,保證兩個(gè)加數(shù)是任意長的整數(shù)。(這個(gè)題的加數(shù)由于是任意長所以把它聲明成什么類型(long、int)的都是不對(duì)的,要用到結(jié)構(gòu)體)。(所以這應(yīng)該是個(gè)串行加

12、法器)面試的時(shí)候,基本上就是問你做了什么項(xiàng)目,什么畢業(yè)論文之類的,不會(huì)涉及專業(yè)知識(shí)!08年的華科招收研究生上機(jī)試題:(1)輸入一個(gè)十進(jìn)制數(shù),將其先轉(zhuǎn)化為八進(jìn)制數(shù),然后再輸出#include<stdio.h>main()(inta=0;printf("Pleaseenteradecimalnumber:");scanf("%d",&a);printf("%d'soctalnumberis%on",a,a);)(2)用戶輸入一個(gè)文本名,編程實(shí)現(xiàn)輸出文本中最長的一行和最短的一行。如果最長和最短的不止一行,請(qǐng)全部輸

13、出。#include<stdio.h>#include<stdlib.h>#include<string.h>#defineBUFFSIZE1000intmain()(FILE*fp;charfilename255;chartempMaxBUFFSIZE;chartempMinBUFFSIZE;inti=0;intcnt=0;printf("inputfilename:");scanf("%s",filename);if(NULL=(fp=fopen(filename,"r")(printf(&qu

14、ot;fileopenerror!");return0;charLineBUFFSIZEBUFFSIZE;while(fgets(Linei,BUFFSIZE,fp)&&i<BUFFSIZE)(printf("%s",Linei);i+;cnt+;)strcpy(tempMax,Line0);strcpy(tempMin,Line0);/printf("%sn",tempMax);for(i=1;i<cnt;i+)if(strlen(Linei)>strlen(tempMax)strcpy(tempMax,Li

15、nei);if(strlen(Linei)<strlen(tempMin)strcpy(tempMin,Linei);)printf("longeststring:n");for(i=0;i<cnt;i+)if(strlen(Linei)=strlen(tempMax)printf("%sn",Linei);printf("nnshorteststring:n");for(i=0;i<cnt;i+)(if(strlen(Linei)=strlen(tempMin)(printf("%s",Line

16、i);fclose(fp);return0;(3)輸入學(xué)生信息:學(xué)號(hào),三門課程的成績(jī),學(xué)號(hào)為0時(shí)結(jié)束,將其存儲(chǔ)在鏈表A中,從中找出分?jǐn)?shù)大于平均分的學(xué)生,并將該學(xué)生信息按平均分降序排列存入到鏈表B中,最后輸出鏈表B。#include<stdio.h>#include<stdlib.h>#include<string.h>typedefstructnodecharxuehao20;intchengji3;floatav;structnode*next;stud,*UerInfo;intmain()UerInfoui;ui=(UerInfo)malloc(size

17、of(stud);UerInfop=ui;UerInfoq=ui;UerInfotempB=ui;printf("inputstudents'information:n");intcnt=0;while(1)(printf("input學(xué)號(hào):");scanf("%s",ui->xuehao);if(strcmp(ui->xuehao,"0")=0)break;printf("input成績(jī):");scanf("%d",&ui->chengji

18、0);printf("input成績(jī):");scanf("%d",&ui->chengji1);printf("input成績(jī):");scanf("%d",&ui->chengji2);ui->av=(ui->chengji0+ui->chengji1+ui->chengji2)/3);ui->next=(UerInfo)malloc(sizeof(stud);ui=ui->next;cnt+;intchengji1=0;intchengji2=0;i

19、ntchengji3=0;while(p&&strcmp(p->xuehao,"0")!=0)chengji1+=p->chengji0;chengji2+=p->chengji1;chengji3+=p->chengji2;p=p->next;floatchengji1av=0.0;floatchengji2av=0.0;floatchengji3av=0.0;floatavfinal=0.0;if(cnt)chengji1av=(float)chengji1/(float)cnt;chengji2av=(float)chen

20、gji2/(float)cnt;chengji3av=(float)chengji3/(float)cnt;avfinal=(chengji1av+chengji2av+chengji3av)/3;)printf("高于平均分的有:n");while(q&&strcmp(q->xuehao,"0")!=0)(if(q->av>avfinal)(printf("%sn",q->xuehao);printf("%fn",q->av);)q=q->next;)print

21、f("n降序排列如下:n");UerInfos;s=(UerInfo)malloc(cnt*sizeof(stud);UerInfotemp=tempB;while(tempB&&strcmp(tempB->xuehao,"0")!=0)(sk.av=tempB->av;sk.chengji0=tempB->chengji0;sk.chengji1=tempB->chengji1;sk.chengji2=tempB->chengji2;strcpy(sk.xuehao,tempB->xuehao);te

22、mpB=tempB->next;k+;intl,m;studtemps;for(l=0;l<cnt-1;l+)(for(m=l+1;m<cnt;m+)(if(sl.av<sm.av)temps.chengji0=sl.chengji0;temps.chengji1=sl.chengji1;temps.chengji2=sl.chengji2;strcpy(temps.xuehao,sl.xuehao);sl.chengji0=sm.chengji0;sl.chengji1=sm.chengji1;sl.chengji2=sm.chengji2;strcpy(sl.xue

23、hao,sm.xuehao);sm.chengji0=temps.chengji0;sm.chengji1=temps.chengji1;sm.chengji2=temps.chengji2;strcpy(sm.xuehao,temps.xuehao);for(inti=0;i<cnt;i+)printf("學(xué)號(hào):sn",si.xuehao);printf("成績(jī):%fn",si.chengji0);printf("成績(jī):%fn",si.chengji1);printf("成績(jī):%fn",si.chengji

24、2);return0;)07年的華科招收研究生上機(jī)試題一、編寫一個(gè)程序輸入一個(gè)5X6的矩陣存儲(chǔ)并輸出,并且求出每行的最大值和每行的總和要求把每行總和放入每行最大值的位置,最后把結(jié)果矩陣,每行最大值及其原下標(biāo)及其總和輸出。#include<stdio.h>#include<stdlib.h>intgetMat(inta56,intn,intm)inti;intj;for(i=0;i<n;i+)for(j=0;j<m;j+)scanf("%d”,&aij);return0;)intgetMax(inta56,intn,intm,intb5,in

25、tc5,intd5,intsum5)(inti;intj;for(i=0;i<n;i+)(bi=0;ci=0;di=0;sumi=0;)for(i=0;i<n;i+)(intmax=ai0;intcol=0;intr=0;for(j=0;j<m;j+)if(max<aij)max=aij;r=i;col=j;)bi=max;ci=r;di=col;)for(i=0;i<n;i+)(acidi=sumi;)return0;)voiddisplayMat(inta56)(inti;intj;for(i=0;i<5;i+)(printf("n"

26、);for(j=0;j<6;j+)(printf("%d",aij);)printf("n");)intmain()(inta56;getMat(a,5,6);intc5,d5,b5,sum5;getMax(a,5,6,b,c,d,sum);printf("每行最大值:n");for(inti=0;i<5;i+)printf("第d行:n最大值:%dn歹U:%dn和:dn",i+1,bi,di,sumi);printf("結(jié)果矩陣:n");displayMat(a);return0;

27、)二、編寫程序判斷輸入的任意字符,任意長度的字符串是否回文(順讀,逆讀均相同),最后輸出原字符串和判斷結(jié)果。#include<stdio.h>#include<stdlib.h>#include<string.h>voidmain()inti;intbIsSame=1;是否相同的標(biāo)志inta=0,b;charf255;scanf("%s",f);/讀入字符串b=strlen(f)-1;/獲得最后一個(gè)字符的序號(hào)(字符串總長度減)for(i=0;i<b/2;i+)/循環(huán),從到字符串中間的字符if(fa+!=fb-)/首尾比較是否相同字符

28、(bisSame=0;/有不同的就把標(biāo)志置,并跳出循環(huán)break;)if(bisSame)/相同就輸出Yprintf("Y");else/不同就輸出Nprintf("N");getchar();/按任意鍵退出)三、輸入一個(gè)6X6的矩陣并存儲(chǔ),把該矩陣逆置并輸出。要求:不得使用任何數(shù)組地逆置)。#include<stdio.h>#include<stdlib.h>voidTwoDto1D(inta66,intb36)(inti,j;for(i=0;i<6;i+)for(j=0;j<6;j+)(b6*i+j=aij;)vo

29、idTransposeInplace(intb36,intwidth,intheight)(intfrom,to,offset,step;inti,j;for(i=to=offset=0,step=width;i<width;+i,-step,offset+=height-1)for(j=0,from=i+offset;j<height;+j,+to,from+=step)inttemp;temp=bto;bto=bfrom;bfrom=temp;/bto=bfrom;)inttemp;temp=width;width=height;height=temp;)intgetMat(i

30、nta66,intn,intm)(inti;intj;for(i=0;i<n;i+)(for(j=0;j<m;j+)(scanf("%d”,&aij);)return0;)voiddisplay(intb36)for(inti=0;i<36;i+)(if(i%6=0)(printf("n");)printf("%d",bi);)intmain()(inta66;intb36;getMat(a,6,6);TwoDto1D(a,b);intwidth=6;intheight=6;TransposeInplace(b,wid

31、th,height);display(b);return0;=»06年的華科研究生復(fù)試上機(jī)試題:(1)采用命令行方式復(fù)制任意多個(gè)文件內(nèi)容到一個(gè)文件中,如下所示:命令行形式:mycopy1.txt2.txt3.txt4.txt.功能:復(fù)制2.txt3.txt4.txt的內(nèi)容到1.txt中#include<stdio.h>#include<stdlib.h>#include<string.h>#defineBUFFERSIZE1000intmain(intargc,char*argv口)if(argc<3)printf("參數(shù)不足n&q

32、uot;);return0;)/intcnt=argc-1;inti;FILE*fp;if(NULL=(fp=fopen(argv1,"a")printf("目標(biāo)文件打開失敗!");return0;)fprintf(fp,"%s","n");FILE*fpSRC;for(i=2;i<argc;i+)(if(NULL=(fpSRC=fopen(argvi,"r")(printf("源文件打開失敗!");return0;)chartempBUFFERSIZE+1;while

33、(fgets(temp,BUFFERSIZE,fpSRC)(fprintf(fp,"%sn",temp);)fclose(fpSRC);printf("內(nèi)容復(fù)制成功!n");fclose(fp);return0;)(2)判定一個(gè)C語言變量的命名是否正確#include<stdio.h>intcheck(char*str)char*temp=str;if(!(*temp='_'|(*temp>='a'&&*temp<='z')|(*temp>='A'

34、;&&*temp<='Z')return0;)temp+;while(*temp!='0')if(!(*temp='_'|(*temp>='a'&&*temp<='z')|(*temp>='A'&&*temp<='Z')|(*temp>='0'&&*temp<='9')return0;temp+;)return1;)intmain()(while(

35、1)(printf("inputvar:");charhaha255;scanf("%s",haha);if(check(haha)printf("CORRECT'n");elseprintf("WRONG'n");)return0;)(3)建立一種數(shù)據(jù)結(jié)構(gòu),可以存儲(chǔ)任意個(gè)、任意長度的整數(shù),利用這個(gè)數(shù)據(jù)結(jié)構(gòu),輸入一串?dāng)?shù),排序,求累加和#include<stdio.h>#include<stdlib.h>#include<string.h>typedefstruct

36、node(inti;structnode*next;structnode*pre;bigIntNode,*bigInt;bigIntgetBigInt(char*s)(bigIntbi;bi=(bigInt)malloc(sizeof(bigIntNode);bi->pre=NULL;bigInttemp=bi;char*p=s;while(*p!='0')bi->i=*p-48;bi->next=(bigInt)malloc(sizeof(bigIntNode);bigIntt=bi;bi=bi->next;bi->pre=t;p+;bi->

37、;next=NULL;returntemp;intdisplay(bigIntbi)bigIntp=bi;if(P->i)printf("%d",p->i);p=p->next;while(p->next)printf("%d",p->i);p=p->next;)printf("n");return1;)bigIntadd(bigIntbi1,bigIntbi2)(bigIntp=bi1;bigIntq=bi2;while(p->next)(p=p->next;)while(q->

38、next)(q=q->next;)bigIntret=(bigInt)malloc(sizeof(bigIntNode);ret->next=NULL;ret->i=0;intfinali=0;intadd=0;while(p&&q)(inti=p->i+q->i;intt=0;intj=0;if(i>9)(j=i/10;t=i%10;else(j=0;t=i;ret->i=t;bigInttb=(bigInt)malloc(sizeof(bigIntNode);tb->i=0;tb->i+=j;ret->pre=tb

39、;tb->next=ret;ret=tb;p=p->pre;q=q->pre;finali=j;)if(p)(intf=0;while(p)(f=p->i+ret->i;intt=0;intj=0;if(f>9)(j=f/10;t=f%10;else(j=0;t=f;)ret->i=t;bigInttb=(bigInt)malloc(sizeof(bigIntNode);tb->i=0;tb->i+=j;ret->pre=tb;tb->next=ret;ret=tb;p=p->pre;)if(q)(intf=0;while

40、(q)f=q->i+ret->i;intt=0;intj=0;if(f>9)(j=f/10;t=f%10;)else(j=0;t=f;)ret->i=t;bigInttb=(bigInt)malloc(sizeof(bigIntNode);tb->i=0;tb->i+=j;ret->pre=tb;tb->next=ret;ret=tb;q=q->pre;)ret->pre=NULL;returnret;)intgetlength(bigIntbi)(bigIntp=bi;inti=0;while(p)(p=p->next;i+;

41、)returni;intcompare(bigIntbi1,bigIntbi2)(bigIntp=bi1;bigIntq=bi2;if(getlength(p)>getlength(q)(return1;elseif(getlength(p)<getlength(q)(return-1;else(for(;p&&q;p=p->next,q=q->next)(if(p->i>q->i)(return1;(return-1;)return0;)intsort(bigInt*bi,intn)(inti;intj;for(i=0;i<n-

42、1;i+)(bigInttemp;for(j=i+1;j<n;j+)(if(compare(bii,bij)=1)memcpy(temp,bii,sizeof(bigInt);/memcpy(bii,bij,sizeof(bigInt);/memcpy(bij,temp,sizeof(bigInt);temp=bii;bii=bij;bij=temp;return0;intmain()bigInt*bia;/雙重指針bia=(bigInt*)malloc(1000*sizeof(bigInt);intcnt=0;charstr1000;printf("輸入大數(shù)n");

43、inti;for(i=0;i<1000;i+)scanf("%s",str);if(strcmp(str,"0")=0)break;biai=getBigInt(str);cnt+;bigIntsum=bia0;for(i=1;i<cnt;i+)sum=add(sum,biai);printf("原來大數(shù):n");for(i=0;i<cnt;i+)display(biai);sort(bia,cnt);printf("排序后大數(shù):n");for(i=0;i<cnt;i+)display(bi

44、ai);)printf("和:n");display(sum);return0;)=»05-03年華科招收研究生復(fù)試上機(jī)試題匯總:(1)輸入一個(gè)數(shù)列以0為結(jié)束標(biāo)志,建立鏈?zhǔn)骄€性表,查找其中最大的數(shù)并輸出刪除釋放節(jié)點(diǎn),然后對(duì)剩余的進(jìn)行排序,并輸出釋放節(jié)點(diǎn)。#include<stdio.h>#include<stdlib.h>typedefstructnodeintvalue;structnode*next;LNode,*SqList;voidcreateList(SqList&L)SqListp=L;while(1)intvalue;

45、scanf("%d",&value);if(value=0)(p=NULL;return;p->value=value;p->next=(SqList)malloc(sizeof(LNode);p=p->next;voiddisplay(SqListL)(SqListp=L;while(p->value!=-1163005939)(printf("%d",p->value);SqListq=p->next;free(p);p=q;)intgetMax(SqListL)(if(L)(SqListp=L;intte

46、mp=p->value;p=p->next;while(p&&p->value!=-1163005939)(if(temp<p->value)(temp=p->value;)p=p->next;)returntemp;)voidfreeMax(SqList&L)(if(L)(SqListp=L;SqListq;while(p)(if(p->value=getMax(L)(q=p->next;free(p);L=q;break;)p=p->next;)voidSortSqList(SqList&L)(Sq

47、Listp,q,small;inttemp;for(p=L;p->next;p=p->next)(small=p;for(q=p->next;q;q=q->next)(if(q->value<small->value)small=q;if(small!=p)(temp=p->value;p->value=q->value;q->value=temp;)intmain()(SqListL;L=(SqList)malloc(sizeof(LNode);createList(L);intmax=getMax(L);printf(&qu

48、ot;最大值:dn",max);freeMax(L);SortSqList(L);printf("排序后:n");display(L);)(2)輸入一個(gè)數(shù)列以0為結(jié)束標(biāo)志,建立二叉遍歷樹,并對(duì)其進(jìn)行逆中序遍歷,釋放空間。#include<stdio.h>#include<stdlib.h>typedefstructtnode(intvalue;structtnode*lchild;structtnode*rchild;BTreeNode,*BTree;BTreecreateBTree()(intvalue;BTreet;scanf("%d",&value);if(value=0)/*判斷當(dāng)前子樹是否創(chuàng)建完成*/returnNULL;elset=(BTree)malloc(sizeof(BTreeNode);t->value=value;t->lchild=createBTree();t->rchild=createBTree();returnt;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論