C語言程序設(shè)計(jì)下mooc答案.pdf_第1頁
C語言程序設(shè)計(jì)下mooc答案.pdf_第2頁
C語言程序設(shè)計(jì)下mooc答案.pdf_第3頁
C語言程序設(shè)計(jì)下mooc答案.pdf_第4頁
C語言程序設(shè)計(jì)下mooc答案.pdf_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2016.03.2806.30 2016.03.2806.30 北京理工大學(xué) 北京理工大學(xué) MOOCMOOC C C語言程序設(shè)計(jì)(下)網(wǎng)上作業(yè)答案語言程序設(shè)計(jì)(下)網(wǎng)上作業(yè)答案 第一周編程作業(yè)第一周編程作業(yè) 1 1、求最大公約數(shù)和最小公倍數(shù)(15 分) 題目內(nèi)容: 編寫程序,在主函數(shù)中輸入兩個(gè)正整數(shù) a,b,調(diào)用兩個(gè)函數(shù) fun1() 和 fun2(),分別 求 a 和 b 的最大公約數(shù)和最小公倍數(shù),在主函數(shù)中輸出結(jié)果。 輸入格式: 兩個(gè)正整數(shù) 輸出格式: 最大公約數(shù)和最小公倍數(shù) 輸入樣例: 12,40回車 輸出樣例: 最大公約數(shù):4回車 最小公倍數(shù):120回車 時(shí)間限制:500ms 內(nèi)存限制:32000kb Code: #include int fun1(int m,int n) int r; r=m%n; return r=0?n:fun1(n,r); int fun2(int m,int n) int t; t=m*n/fun1(m,n); return t; int main() int t,m,n; scanf(“%d,%d“, if(mch = zimu; ch_-next = NULL; if (node = NULL) node = ch_; else node-next = ch_; node = node-next; if (hear = NULL) hear = node; for (zimu -= 2; zimu != (a - 1); zimu-) ch_ = (CHAR_ *)malloc(sizeof(CHAR_); if (ch_ = NULL) exit(0); ch_-ch = zimu; ch_-next = NULL; node-next = ch_; node = node-next; for (node = hear, zimu = 0; node != NULL; node = node-next, zimu+) node-intch = zimu; scanf(“%c“, node = hear; if (panduanzimu = 0 break; node = node-next; else if (panduanzimu = a node = node-next; printf(“%c“, record); elseprintf(“N“); node = hear; while (node != NULL) hear = node-next; free(node); node = hear; return 0; 2、鏈表合并(15 分) 題目內(nèi)容: 實(shí)現(xiàn)兩個(gè)由單項(xiàng)鏈表存儲的有序字母數(shù)據(jù)的合并,如有重復(fù)的則只保留一個(gè)。 例如:給定a, c ,f, b, e, g合并后結(jié)果為a, b, c , e , f , g。 輸入格式: 兩個(gè)有序字母數(shù)據(jù) 輸出格式: 合并后的字母數(shù)據(jù) 輸入樣例1: a b c回車 d e f回車 輸出樣例1: a b c d e f回車 輸入樣例2: e f g回車 e g m回車 輸出樣例2: e f g m回車 時(shí)間限制:500ms 內(nèi)存限制:32000kb Code: #include #include typedef struct Node char data; struct Node *next; List,*LinkList; List* CreateLinkList() LinkList L = (LinkList)malloc(sizeof(List),P; P = L; char c; while(1) P-next = (LinkList)malloc(sizeof(List); P = P-next; scanf(“%c%c“, if(c = n) break; P-next = NULL; return L; LinkList MergeLinkList(LinkList L1,LinkList L2) LinkList P1 = L1-next, P2 = L2-next; LinkList L = (LinkList)malloc(sizeof(List),P; P = L; while(P1 P = P-next; if(P1-data P2-data) P-data = P2-data; P2 = P2-next; else if(P1-data data) P-data = P1-data; P1 = P1-next; else P-data = P1-data; P1 = P1-next; P2 = P2-next; while(P1) P-next = (LinkList)malloc(sizeof(List); P = P-next; P-data = P1-data; P1 = P1-next; while(P2) P-next = (LinkList)malloc(sizeof(List); P = P-next; P-data = P2-data; P2 = P2-next; P-next = 0; return L; void ShowList(LinkList L) LinkList P = L-next; while(P-next) printf(“%c “,P-data); P = P-next; printf(“%cn“,P-data); int main() LinkList L1,L2,L3; L1 = CreateLinkList(); L2 = CreateLinkList(); L3 = MergeLinkList(L1,L2); ShowList(L3); return 0; 第九周編程作業(yè)第九周編程作業(yè) 1、解析字符串(15 分) 題目內(nèi)容: 輸入一個(gè)字符串,要求將其中的字母n理解為回車符號n,模擬文件緩沖區(qū) 讀取的數(shù)據(jù),并按替換后的數(shù)據(jù)流解析出其中包括的字符串。(即通過n分割兩個(gè)字符 串) 輸入格式: 一個(gè)字符串 輸出格式: 其中包括的字符串 輸入樣例: abcnde回車 輸出樣例: abc回車 de回車 時(shí)間限制:500ms 內(nèi)存限制:32000kb Code: #include #include #include int main() int i,j,k; char a100; gets(a); k=strlen(a); printf(“%c“,a0); for(i=1;i=strlen(str) reverse(str,start,end-1); else if(startend) t=strstart; strstart=strend; strend=t; reverse(str,start+1,end-1); int main( ) char str100; int start, end; gets(str); start=0;end=strlen(str); reverse(str,start,end); printf(“%sn“, str); return 0; 第十周編程作業(yè)第十周編程作業(yè) 1、基本四則運(yùn)算表達(dá)式(15 分) 題目內(nèi)容: 請結(jié)合 C 語言語法知識以及對編譯過程的理解,完成一個(gè)僅含一個(gè)運(yùn)算符的基本四則運(yùn)算 表達(dá)式字符串的計(jì)算。 輸入格式: 基本四則運(yùn)算表達(dá)式字符串 輸出格式: 運(yùn)算結(jié)果 輸入樣例: 1+2 輸出樣例: 3 時(shí)間限制:500ms 內(nèi)存限制:32000kb Code: #include #include int main() char op; int i,a,b; scanf(“%d%c%d“, switch(op) case +:printf(“%d“,a+b);break; case -:printf(“%d“,a-b);break; case *:printf(“%d“,a*b);break; case /:printf(“%d“,a/b);break; case %:printf(“%d“,a%b);break; default:break; return 0; 2、遞歸的方法計(jì)算含多個(gè)運(yùn)算符的四則運(yùn)算表達(dá)式字符串的值(15 分) 題目內(nèi)容: 請?jiān)谏弦活}的基礎(chǔ)上,采用遞歸的方法,計(jì)算含多個(gè)運(yùn)算符的四則運(yùn)算表達(dá)式字符串的值 (無括號,但要考慮優(yōu)先級) 輸入格式: 多個(gè)運(yùn)算符的四則運(yùn)算表達(dá)式字符串 輸出格式: 運(yùn)算結(jié)果 輸入樣例: 3*2+3 輸出樣例: 9 時(shí)間限制:500ms 內(nèi)存限制:32000kb Code: #include #include int main() static char op100; static int i,j,k,s,p100; scanf(“%d“, p0=s; for(i=0;1;i+) scanf(“%c“, if(opi=n) break; scanf(“%d“, for(j=0;ji;j+) if(opj=*|opj=/) if(opj=*) pj*=pj+1; for(k=j;ki-1;k+) opk=opk+1; pk+1=pk+2; else pj/=pj+1; for(k=j;ki-1;

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論