


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、專業(yè)班級:信息管理與信息系統(tǒng)2014級學(xué)號:姓名:課程編號:13031120考核方式:閉卷 考核時(shí)間:2小時(shí)大連海事大學(xué)2015-2016學(xué)年第二學(xué)期c語言課程設(shè)計(jì)試卷(a)題號'二三四總分得分25252525請通過c語言編程完成如下任務(wù),并提交試卷。一、題目概覽(共100分)請編寫如f函數(shù)1. 求某一間內(nèi)的所有“孿生素?cái)?shù)對”。(25分)2. 根據(jù)姓名查找通訊錄。(25分)3. 鏈表逆置。(25分)4. 連接兩個(gè)鏈表。(25分)二、答題步驟<1)閱讀下面對每個(gè)題的要求與給出的部分代碼;(2)在visual c+中新建一個(gè)c文件,將給出的代碼粘貼過(3)編譯、運(yùn)行現(xiàn)有代碼,如不能運(yùn)
2、行,請調(diào)整之;(4)在visual c+中完成余下的代碼:(5) 對照下面給出的程序運(yùn)行的實(shí)例,調(diào)試程序;(6) 將自己完成的代碼,粘貼到本文檔每個(gè)題目的空白 處,并保存;(7)完成一個(gè)題后,關(guān)閉visualc+。重新開啟visualc+,做新題。(8)完成所有題冃,保存本文檔,并在考試系統(tǒng)中提交。注盒:(1)每個(gè)程序只有能夠運(yùn)行并給出正確結(jié)果,才 能得滿分。(2)不要改動(dòng)現(xiàn)有代碼。三、|羊全田要求答案從visual c+中粘貼到每個(gè)題目的空白處,并存1. 求n,m內(nèi)的所有“孿生素?cái)?shù)對”(20分)。下面給出了程序運(yùn)行的兩個(gè)實(shí)例,及主函數(shù)main()的全部代碼,用 于程序的調(diào)試。請閱讀己有代碼,
3、理解程序要求,完成子函數(shù) twin_primes().將代碼粘貼到相應(yīng)位罝,并按“保存”按鈕保存木文檔?!皩\生素?cái)?shù)對”抬的是相隔為2的兩個(gè)相鄰素?cái)?shù),如(3,5)、(5,7)、(11,13)、(17,19)等。n,m內(nèi)的一個(gè)“孿生索數(shù)對”中的兩個(gè)素?cái)?shù)均在ntm之間。(1)程序運(yùn)行實(shí)例(2)程序代碼<stdio.h><math.h><stdlib.h>includeincludeincludent main ()/主函數(shù):完成數(shù)據(jù)的輸入、函數(shù)調(diào)用及結(jié)果輸出功能/注意:不要改動(dòng)主函數(shù)t twin_prirnes (intf intf int*) ;/函數(shù)聲叫int
4、 nr inr count r *pf i ; n=0;m=0;count=0;p=null;printf(”n”);/輸入整數(shù)范闌的下界n與上界m,l<n<m<1000 doprintf (”錯(cuò)在2與1000之間輸入整數(shù)范圍n,m的 、下界:n");scant (”d%d”r &n, sin);while(m-n<=0);/在內(nèi)存中動(dòng)態(tài)開辟一塊足夠大的數(shù)組,以存放n,m中的所 有"孿生素?cái)?shù)對”p=(int*)realloc(sizeof(int)*(m-n+1);/函數(shù)調(diào)用,返回n,m中的”孿生素?cái)?shù)對”個(gè)數(shù) <賦值給 count),及
5、所有的"孿生素?cái)?shù)對”(存放在p指向的內(nèi)存中) count=twin_primes (n, m, p);printf(”n”);/將結(jié)果輸出 if(count>0) printf (h在 %d 與 %d 之間有 %d 個(gè)孿生素?cái)?shù)對: n”,n, m,count):for(i=l;i<count+l;i+)printf(”6d *p) ;/輸出孿生素?cái)?shù)對中的第一個(gè)轍p=p+l/printf(n%6d ”,*p);/輸出孿生素?cái)?shù)對中的第二個(gè)素?cái)?shù)p=p+l;printf(”n");/一個(gè)”孿生素?cái)?shù)對”一行 el«s>e printf (”在 %d 與 d
6、之間沒有孿生素?cái)?shù)對(或整數(shù)范1韋1越界)n”,n, m);printf(”nn”);return 0;int twin一primes (int n zint m r int * p)/函數(shù)歷能:尋找n, in屮的所有”孿生素?cái)?shù)對”,并計(jì)算”孿生素?cái)?shù) 對”的個(gè)數(shù)/ 輸入:n為整數(shù)范圍的下界,m為上界,l<n<m<1000,p為指向足 夠大的一塊內(nèi)存的指針。/輸出:n,m中”李生素?cái)?shù)對”的個(gè)數(shù)作為函數(shù)值返回,并將所有的素?cái)?shù)存到p所指向的動(dòng)杰數(shù)組中(以返回給主函數(shù))。/請完成函數(shù)功能,并將代碼粘貼到下面。(粘貼后,注意存 盤)int count;int ir j,sfklr k2;
7、count=0;for(i=n;i<=m;i+) kl=sqrt(i); k2=sqrt(i+2);for(j=2;j<=kl;j+) if(i%j=0) break; if (j>=kl+l) for(s=2;s<=k2;s+)if(i+2)%s=0) break; if(s>=k2+l)count+;*p+=i;*p+=i+2; return (count); 2. 根據(jù)姓名査找通訊錄(20分)。下面給出了程序運(yùn)行的兩個(gè)實(shí)例,及主函數(shù)main()的全部代碼,用于程序的調(diào)試。請閱讀己有代碼,理解程序要求,完成子函數(shù)search()o將代碼粘貼到相應(yīng)位置,并按“保
8、存”按鈕保存本文檔。提示:比較字符串用strcmp函數(shù)。(1)程序運(yùn)行實(shí)例p e!debug2.exe"(2)程序代碼名"if (1strcmp(r ”#”) break;scant(”s”, ai .tel); 入電話號碼*/ i+;n+;條數(shù)*/return n;數(shù)" /*輸/*記錄的/*返回條void search(struct contact *b r char *xz int n)輸入:b指向結(jié)構(gòu)體數(shù)組,n為數(shù)組的長度,x為要杏找的字符串/函數(shù)功能:査找數(shù)據(jù)集一結(jié)構(gòu)體數(shù)組(姓名)/ 要求,如果找到了,則輸出這條記錄。如果沒找到,給出提示信
9、息。(參妃上面的例子) /請完成闌數(shù)功能,并將代碼粘貼到下面。(粘貼后,注意存 盤)int i,j=0; for(i=o;i<n;i+)if(strcmp(b->name ,x)=0)printf("name:%s tel:%sn"zxzb->tel); j=l;b+; if (j=0)printf("no found!n");/*定義結(jié)構(gòu)體數(shù)組s*/struct contact smax;int num; char name15;printf (,finput name and phone number, stop with :n”)
10、;/*調(diào)用函數(shù)num = readin(s): readin*/printf("input the name:”)/*輸入要齊找的/*調(diào)用函數(shù)scant (s”,name); 姓名" search(sr name, num); search*/3. 鏈表逆置(25分)。下面給出了程序運(yùn)行的一個(gè)實(shí)例,及主函數(shù)main()等相關(guān)代碼,用 于程序的調(diào)試。請閱讀己有代碼,完成子函數(shù)reverseo,實(shí)現(xiàn)鏈表結(jié) 點(diǎn)的逆向排列:使原來的頭結(jié)點(diǎn)成為尾節(jié)點(diǎn)、原來的尾結(jié)點(diǎn)成為頭結(jié)點(diǎn)。將代碼粘貼到相應(yīng)位罝,并按“保存”按鈕保存本文檔。捉可以遍歷原有的鏈表,保存當(dāng)前結(jié)點(diǎn)、上一個(gè)結(jié)點(diǎn)和下一個(gè) 結(jié)點(diǎn)
11、,將當(dāng)前結(jié)點(diǎn)鏈到上一個(gè)結(jié)點(diǎn),以實(shí)現(xiàn)鏈表的反向鏈接。 實(shí)際上是創(chuàng)建一個(gè)鏈表的過程,方法也有多種、(1)程序運(yùn)行實(shí)例(2)程序代碼#include<stdio.h> #include<stdlibh>struct studentint num; 員"struct student *next; 結(jié)點(diǎn)的指針*/ ;struct student *create(int n) int i;struct student head, *pl, *p2; 構(gòu)體類型的指針*/int a;head = null; 頭結(jié)點(diǎn)*/printf("the record:n”);f
12、or (i = n; i > 0;i) 建n個(gè)結(jié)點(diǎn)的鏈表*/*數(shù)據(jù)成/*指向下一個(gè)/*聲明結(jié)/*初始化/*創(chuàng)pl = (struct student* ) malloc (sizeof (struct student);scanf("%d”,&a) ;/*輸入結(jié)點(diǎn)數(shù)據(jù)*/pl->num = a;/*數(shù)據(jù)域賦值*/if (head = null)/*創(chuàng)建頭結(jié)點(diǎn)*/head = pl; p2 = pl; ) elsep2->next = pl; 定后繼指針*/p2 = pl;動(dòng)到下一個(gè)結(jié)點(diǎn)*/ p2->next = null;尾"return h
13、ead;結(jié)點(diǎn)指針*/ /指/*指針移/*鏈表結(jié)/*返回頭struct student * reverse(struct student *head)/函數(shù)功能:實(shí)現(xiàn)鏈表結(jié)點(diǎn)的逆向排列/輸入:原鏈表的頭指針/輸出:新鏈表的頭指針 /請完成函數(shù)功能,并將代碼粘貼到下面。(粘貼后,注意存盤)struct student *pof *plr *p2; po=pl=head;while(pl!=null)if(pl=head) p2=pl->next;pl->next=null;else p2=pl->next; pl->next=po; po=pl;pl=p2;ihead=po
14、;return head; void main()int n;struct student *q;體類型指針變景*/*聲明結(jié)構(gòu)printf (ninput the count of the nodes you want to creat:n);scanf("%d"r &n); q = create(n):/*創(chuàng)建單鏈表"q = reverse(q);/*單鏈表逆printf("the reserve linklist is:n”); while (q)/*輸出逆置后的單鏈表/printf(”d ”, q->num);q = q->ne
15、xt;printf(”n”);/*指針下移*/printf (nnlf);4. 連接兩個(gè)鏈表(25分)。下面給出了程序運(yùn)行的三個(gè)實(shí)例,及主函數(shù)main()等相關(guān)代碼,用 于程序的調(diào)試。請閱讀已有代碼,理解程序要求,完成子函數(shù)coalitiono,實(shí)現(xiàn)兩個(gè)鏈表的連接。將代碼粘貼到相應(yīng)位置,并按“保存”按鈕保存本文檔。注怠_當(dāng)一個(gè)或兩個(gè)鏈表為空(null)時(shí),程序也能正常運(yùn)行。(1)程序運(yùn)行實(shí)例#include <stdio.h> #include<stdlib.h> typedef struct studentint num;表結(jié)點(diǎn)的數(shù)據(jù)*/"鏈表結(jié)點(diǎn)/聲str
16、uct student *next; 指針" lnode, *linklist; 明兩個(gè)結(jié)構(gòu)體類型的變最*/linklist create(void) linklist head; 結(jié)構(gòu)體類型指針*/ lnode *plr *p2; 明結(jié)構(gòu)體類型指針*/ char a; head = null; 始化頭結(jié)點(diǎn)*/ pl=null; p2=null;/*聲明/*聲/初/*獲取輸入/*分配空間*/*數(shù)/*設(shè)k頭結(jié)點(diǎn)指針/*指向新/移/*獲取/尾/*返a = getchar(); 字符*/while (a != n,) pl =(lnode* jraalloc(sizeof(lnode);
17、pl->num = a;據(jù)域賦值*/if (head = null) head = pl;*/elsep2->next = pl;結(jié)點(diǎn)女/p2 = pl/ 動(dòng)到新結(jié)點(diǎn)*/a = getchar();輸入的字符*/if(p2!=null)p2->next = null; 結(jié)點(diǎn)指針指向空*/return head;回頭結(jié)點(diǎn)指針*/linklist coalition(linklist li, linklist l2)/函數(shù)功能:連接兩個(gè)鏈表。/輸入:兩個(gè)被連接鏈表的頭指針/輸出:連接后鏈表的頭指針 /請完成函數(shù)功能,并將代碼粘貼到下面。(粘貼后,注怠存盤)lnode *pl;pl
18、=ll;if(l1=null) l1=l2;else while(pl->next!=null) pl=pl->next;pl->next=l2;return li;void main() linklist li, l2rl3; printf("please input two linklist:n"); printf ("the first linklist: n,t); li = create():/*創(chuàng)建一個(gè)鏈表*/printf ('*the second linklist: n,t);l2 = create();/創(chuàng)建第二個(gè)鏈表*/l3=coalition(ll, l2);/*連接兩個(gè)鏈表*/printf (''the resultant linklist is : nh); while (l3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 夫妻離婚協(xié)議:財(cái)產(chǎn)分配及子女撫養(yǎng)責(zé)任協(xié)議
- 成都旅游度假居間代理合作協(xié)議
- 車輛租賃押金及違約責(zé)任協(xié)議
- 時(shí)尚街區(qū)創(chuàng)意攤位租賃與品牌入駐協(xié)議
- 研發(fā)中心場地承包與技術(shù)創(chuàng)新合作協(xié)議
- 車輛停放安全管理制度合同
- 環(huán)保設(shè)施建設(shè)場雙邊項(xiàng)目合同
- 進(jìn)口設(shè)備采購合同設(shè)備采購合同
- 家庭電器銷售安裝合同
- 人工智能驅(qū)動(dòng)的腦損傷患者行為康復(fù)個(gè)性化方案-洞察闡釋
- (三模)煙臺(tái)市2025屆高三高考診斷性測試地理試卷(含答案)
- 轉(zhuǎn)讓店鋪輪胎協(xié)議書
- 2025年遼寧省盤錦市中考數(shù)學(xué)二模試卷
- 完整版新修訂《厲行節(jié)約反對浪費(fèi)條例》(課件)
- 水權(quán)與水資源管理考試試題及答案
- 公路防汛安全培訓(xùn)課件
- (區(qū)縣版)-中小學(xué)教輔材料征訂專項(xiàng)整治工作方案
- 文員崗位筆試試題及答案
- 2025年制冷工職業(yè)技能競賽參考試題庫(共500題含答案)
- 安徽卓越縣中聯(lián)盟2024-2025學(xué)年高三下學(xué)期5月份檢測物理試題+答案
- 2024年河北承德辰飛供電服務(wù)有限公司招聘真題
評論
0/150
提交評論