實(shí)驗(yàn)數(shù)組習(xí)題及答案_第1頁(yè)
實(shí)驗(yàn)數(shù)組習(xí)題及答案_第2頁(yè)
實(shí)驗(yàn)數(shù)組習(xí)題及答案_第3頁(yè)
實(shí)驗(yàn)數(shù)組習(xí)題及答案_第4頁(yè)
實(shí)驗(yàn)數(shù)組習(xí)題及答案_第5頁(yè)
已閱讀5頁(yè),還剩5頁(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)介

1、實(shí)驗(yàn)5 數(shù)組班級(jí):學(xué)號(hào):姓名:日期:一、實(shí)驗(yàn)?zāi)康模?)掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出方法;(2)掌握字符數(shù)組和字符串函數(shù)的使用;(3)掌握與數(shù)組有關(guān)的算法(特別是排序算法)。二、實(shí)驗(yàn)內(nèi)容1閱讀下面程序,寫出程序運(yùn)行結(jié)果,并且上機(jī)進(jìn)行驗(yàn)證。(1) #include "stdio.h"void main()int i,n4=0,0,0,0;for(i=1;i<4;i+)if (i=3) break;ni=ni-1+1;printf("ni-1=%d ni=%dn",ni-1,ni);(2)#include "stdio.h&qu

2、ot;void main()char ch='0','1','2','3','4','5','6','7','8','9'int i=0,m=2,r,x=42; char b80;while(x)r=x%m; x/=m;bi+=chr;for(-i;i>=0;i-)printf("%c",bi);printf("n");(3)#include "stdio.h"void

3、main()int a3=9,7,5,3,1,2,4,6,8;int i,j,s1=0,s2=0;for(i=0;i<3;i+)for(j=0;j<3;j+)if(i=j) s1=s1+aij;if(i+j=2) s2=s2+aij;printf("s1=%d s2=%d",s1,s2);(4)#include "stdio.h"void main()int r5=1,2,3,4,5;int i,j,a55;for(i=0;i<=4;i+) for(j=i;j<=4;j+)aij=rj-i;for(j=0;j<i;j+)ai

4、j=ri-j;for(i=0;i<5;i+)for(j=0;j<5;j+)printf("%2d",aij);printf("n");2程序填空(根據(jù)題意在空白處填入適當(dāng)?shù)膬?nèi)容,使程序變得完整。并上機(jī)進(jìn)行調(diào)試驗(yàn)證)(1)程序說(shuō)明:下列程序完成的是插入排序功能:數(shù)組a 中存放一個(gè)遞增數(shù)列,輸入一個(gè)整數(shù)x,將它插入到數(shù)組中,使之仍為一個(gè)有序數(shù)列。#include "stdio.h"#define N 10void main()int a11=1,10,20,30,40,50,60,70,80,90 ,x,i,p;scanf(&

5、quot;%d",&x);for(i=0,p=N;i<N;i+)if(x<ai)p=i;_break_;for(i=N-1;i>=p; _i-_)ai+1=ai;_ap=x_;printf("%d",x);for(i=0;i<=N;i+)printf("%5d",ai);printf("n");(2)程序說(shuō)明:下面程序完成的是折半查找。A 數(shù)組中存放的是n 個(gè)由大到小已經(jīng)排好序的數(shù)列,從這n 個(gè)數(shù)中查找x 的值是否存在。其基本思想是:在查找范圍里,將x 與處于中間位置上的數(shù)比較,如果相等,則查

6、找成功,如果小于該元素,則在較小的一半元素里再進(jìn)行折半查找;如果x大于該元素,則在較大的一半元素里再進(jìn)行折半查找。變量top,bottom,mid 分別指向查找范圍的頂部、底部和中間位置。#include "stdio.h"#define n 10main()int an,find;int x,i,top,bottom,mid;printf("input the sorted numbers:n");for(i=0;i<n;i+)scanf("%d",_&ai_);printf("input the numbe

7、r to find:n");scanf("%d",&x);find=0;top=0;bottom=n-1;if(x<=a0 && top<=bottom)while(!find && top<=bottom)mid=mid=(bottom+top)/2;if(x=amid)find=1;printf("x=%d position=%dn",x,mid);else if(x>amid)bottom=mid-1;elsetop=mid+1;if(find=0) printf("

8、;the number %d is not in the table",x);(3)程序說(shuō)明:下面程序分別輸出方陣中主對(duì)角線、副對(duì)角線上元素的和suml 和sum2(主對(duì)角線為從矩陣的左上角至右下角的連線,副對(duì)角線為從矩陣的右上角至左下角的連線).#include"stdio.h"#define SIZE 5void main()int aSIZESIZE,m,n,sum1,sum2;for(m=0;m<SIZE;m+)for(n=0;n<SIZE;n+)scanf("%d",&amn);sum1=sum2=_0_;for(

9、m=0;m<SIZE;m+)sum1=sum1+amm;sum2=sum2+amSIZE-1-m;printf("sum1=%d sum2=%dn",sum1,sum2);(4)程序說(shuō)明:下面程序打印出如下所示的楊輝三角行(打印10 行)。11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1.#include"stdio.h"void main()int i,j,a1010=1,1,1;for(i=2;i<10;i+)ai0=1;_ aii=1;for(j=0;j<i;j+)aij=ai-1j+ ai-1j-1;

10、for(i=0;i<10;i+)for(j=0;j<=i;j+)printf("%4d",aij);printf("n");3程序設(shè)計(jì)(根據(jù)題意編寫程序并上機(jī)進(jìn)行調(diào)試)。(1)編寫程序完成如下功能:輸入10 個(gè)數(shù)存入一維數(shù)組,然后再按逆序重新存放后輸出。#include <stdio.h>void main()int a10,i,temp;for(i=0;i<10;i+)scanf("%d",&ai);for(i=0;i<10;i+)printf("%5d",ai);pr

11、intf("n");for(i=0;i<5;i+)temp=ai;ai=a9-i;a9-i=temp;for(i=0;i<10;i+)printf("%5d",ai);printf("n");(2)編寫程序完成如下功能:從鍵盤輸入兩個(gè)字符串ch2、 ch1,然后將字符串ch2 連接到字符串ch1 的后面,并輸出連接后的字符串。#include <stdio.h>#include <string.h>void main()char ch120,ch210;int i,j;scanf("%s&

12、quot;,ch1);scanf("%s",ch2);j=strlen(ch1);for(i=0;i<strlen(ch2);i+,j+)ch1j=ch2i;ch1j='0'printf("%sn",ch1);(3)編寫程序完成如下功能:現(xiàn)有兩個(gè)已按升序排好的數(shù)組,將它們合并為一個(gè)升序排序的數(shù)組(歸并排序)。算法:兩個(gè)數(shù)組合并時(shí),可為每個(gè)數(shù)組各安排一個(gè)指針,從第一個(gè)元素開始依次比較兩數(shù)組對(duì)應(yīng)元素,小的取下來(lái)順序放入新的數(shù)組,取下所指元素的指針后移,再比較,依此類推,直到其中一個(gè)數(shù)組的元素已全部放入新數(shù)組,再把另一數(shù)組余下的元素全部順

13、序放入新數(shù)組,歸并完成。編程并上機(jī)調(diào)試運(yùn)行。(1)用選擇法對(duì)10個(gè)整數(shù)排序。10個(gè)整數(shù)用scanf函數(shù)輸入。#include <stdio.h>void main() int i,j,min,temp,a11; printf("enter data:n"); for(i=1;i<=10;i+) printf("a%d=",i); scanf("%d",&ai); printf("The orginal numbers:n"); for(i=1;i<=10;i+) printf(&qu

14、ot;%5d",ai); printf("n"); for(i=1;i<=9;i+) min=i; for(j=i+1;j<=10;j+) if(amin>aj) min=j; temp=ai; ai=amin; amin=temp; printf("n The sorted numbers:n"); for(i=1;i<=10;i+) printf("%5d",ai); printf("n");(2)有15個(gè)數(shù)存放在一個(gè)數(shù)組中,輸入一個(gè)數(shù),要求用對(duì)半查找法找出該數(shù)是數(shù)組中第幾個(gè)元

15、素的值。如果該數(shù)不在數(shù)組中,則輸入“無(wú)此數(shù)”。以15個(gè)數(shù)用賦初值的方法在程序中給出。要找的數(shù)用scanf函數(shù)輸入。#include <stdio.h>void main() int i,number,top,bott,mid,loca,a15,flag=1,sign; char c; printf("enter data:n"); scanf("%d",&a0); i=1; while(i<15) scanf("%d",&ai); if(ai>=ai-1) i+; else printf(&qu

16、ot;enter this data again:n"); printf("n"); for(i=0;i<15;i+) printf("%5d",ai); printf("n"); while(flag) printf("input number to look for:"); scanf("%d",&number); sign=0; top=0; bott=14; if(number<a0) | (number>a14) loca=-1; while(!si

17、gn)&&(top<=bott) mid=(bott+top)/2; if(number=amid) loca=mid;printf("Has found %d,its postion is %dn",number,loca+1);sign=1; else if(number<amid)bott=mid-1; elsetop=mid+1; if(!sign | loca=-1) printf("can not found %d.n",number); printf("continue or not(Y/N)?&quo

18、t;); scanf("%c",&c); if(c!= 'N' | c!= 'n' | c!= 'Y' | c!= 'y') scanf("%c",&c);if(c='N' | c='n') flag=0; (3)將兩個(gè)字符串連接起來(lái),不要用strcat函數(shù)。#include <stdio.h>void main() char s180,s240; int i=0,j=0; printf("ninput string1: "); gets(s1); printf("input string2: "); gets(s2); while(s1i!='0') i+; while(s2j!='0') s1i+=s2j+; s1i='0' printf("The new string is: %s",s1);(4)找出一個(gè)二維數(shù)組的“鞍點(diǎn)”,即該位置上的元素在該行上最大,在該列上最小,也可能沒(méi)有鞍點(diǎn)。應(yīng)至少準(zhǔn)備兩組測(cè)試數(shù)據(jù):二維數(shù)組有鞍點(diǎn),例如:二維數(shù)組沒(méi)有鞍點(diǎn)

溫馨提示

  • 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)論