第一篇:C語(yǔ)言數(shù)組實(shí)習(xí)
實(shí)習(xí)六:數(shù)組實(shí)習(xí)
姓名:尹思智
學(xué)號(hào):2012014413 完成日期2013年4月
一、實(shí)習(xí)目的
1.從鍵盤輸入10個(gè)整數(shù),將最大數(shù)調(diào)到最前面,最小數(shù)調(diào)到最后面。2.已有一個(gè)已排好序的數(shù)組,今輸入一個(gè)數(shù),要求按原來(lái)排序的規(guī)律將它插入數(shù)組中
3.從鍵盤任意輸入兩個(gè)字符串,不用庫(kù)函數(shù)strcat,將兩串字符連接起來(lái)。4 輸入一個(gè)5×5的數(shù)組,分別求其主對(duì)角線和次對(duì)角線上元素之和 5.由鍵盤任意輸入10個(gè)學(xué)生的姓名(以拼音形式),將它們以字典順序從小到大排序。
6打印如下形式的楊輝三角 1 1 1 1 1 10 5 7.定義一數(shù)組(長(zhǎng)度大于10),從鍵盤輸入數(shù)組元素的值,完成下面操作:
(1)從鍵盤輸入一個(gè)數(shù),用順序查找法找出該數(shù)在數(shù)組中的位置;或者給出沒(méi)有找到的信息;
(2)對(duì)數(shù)組的元素從小到大排序;
(3)從鍵盤輸入一個(gè)數(shù),用折半查找法找出該數(shù)在數(shù)組中的位置;或者給出沒(méi)有找的信息。
8.直接選擇排序法。算法描述如下:
(1)從n個(gè)數(shù)中找到最小的數(shù),若此數(shù)不是數(shù)組的第一個(gè)元素,則與第一個(gè)元素交換位置;
(2)從剩下的n-1個(gè)數(shù)中找到最小的數(shù),若此數(shù)不是數(shù)組第二個(gè)元素,則與第二個(gè)元素交換位置;
(3)以此類推,直到完成排序
9.編寫(xiě)程序?qū)蓚€(gè)有序數(shù)組歸并。例如數(shù)組{1,3,5}和數(shù)組{2,4,6,8,10},歸并的結(jié)果是{1,2,3,4,5,6,8,10 }
二、實(shí)習(xí)步驟
1.從鍵盤輸入10個(gè)整數(shù),將最大數(shù)調(diào)到最前面,最小數(shù)調(diào)到最后面。
流程圖; 運(yùn)行圖;
2.已有一個(gè)已排好序的數(shù)組,今輸入一個(gè)數(shù),要求按原來(lái)排序的規(guī)律將它插入數(shù)組中
流程圖
運(yùn)行圖
3.從鍵盤任意輸入兩個(gè)字符串,不用庫(kù)函數(shù)strcat,將兩串字符連接起來(lái)。
流程圖 運(yùn)行圖 輸入一個(gè)5×5的數(shù)組,分別求其主對(duì)角線和次對(duì)角線上元素之和
流程圖 運(yùn)行圖
5、由鍵盤任意輸入10個(gè)學(xué)生的姓名(以拼音形式),將它們以字典順序從小到大排序。
流程圖 運(yùn)行圖
6打印如下形式的楊輝三角 1 1 1 1 1 10 5
流程圖 運(yùn)行圖
7.定義一數(shù)組(長(zhǎng)度大于10),從鍵盤輸入數(shù)組元素的值,完成下面操作:
(1)從鍵盤輸入一個(gè)數(shù),用順序查找法找出該數(shù)在數(shù)組中的位置;或者給出沒(méi)有找到的信息;
(2)對(duì)數(shù)組的元素從小到大排序;
(3)從鍵盤輸入一個(gè)數(shù),用折半查找法找出該數(shù)在數(shù)組中的位置;或者給出沒(méi)有找的信息。
流程圖 運(yùn)行圖
8.直接選擇排序法。算法描述如下:(1)從n個(gè)數(shù)中找到最小的數(shù),若此數(shù)不是數(shù)組的第一個(gè)元素,則與第一個(gè)元素交換位置;
(2)從剩下的n-1個(gè)數(shù)中找到最小的數(shù),若此數(shù)不是數(shù)組第二個(gè)元素,則與第二個(gè)元素交換位置;
(3)以此類推,直到完成排序
流程圖 運(yùn)行圖
9.編寫(xiě)程序?qū)蓚€(gè)有序數(shù)組歸并。例如數(shù)組{1,3,5}和數(shù)組{2,4,6,8,10},歸并的結(jié)果是{1,2,3,4,5,6,8,10 }
流程圖 運(yùn)行圖
三、實(shí)習(xí)總結(jié)
第二篇:C語(yǔ)言數(shù)組
實(shí)驗(yàn)九 數(shù)組 一、一維數(shù)組
1、編寫(xiě)程序,測(cè)試下列數(shù)組的定義方式是否正確(1)main(){ int n;scanf(“%d”,&n);int a[n];//…….}(2)main(){ int n=10;int a[n];a[0] = 1;//......}(3)#include
2、運(yùn)行下面的C程序,根據(jù)運(yùn)行結(jié)果,可以說(shuō)明什么? #include
3、調(diào)試下列程序,使之具有如下功能:輸入10個(gè)整數(shù),按每行3個(gè)數(shù)輸出這些整數(shù),最后輸出10個(gè)整數(shù)的平均值。寫(xiě)出調(diào)試過(guò)程。main(){ int i,n,a[10],av;
for(i=0;i for(i=0;i if(i%3= =0)printf(“n”); } for(i=0;i!=n;i++)av+=a[i]; printf(“av=%fn”,av); } //尤其注意最后一次循環(huán) 上面給出的程序是完全可以運(yùn)行的,但是運(yùn)行結(jié)果是完全錯(cuò)誤的。調(diào)試時(shí)請(qǐng)注意變量的初值問(wèn)題、輸出格式問(wèn)題等。請(qǐng)使用前面實(shí)驗(yàn)所掌握的調(diào)試工具,判斷程序中的錯(cuò)誤并改正。在程序運(yùn)行過(guò)程中,可以使用 5、編寫(xiě)程序,任意輸入10個(gè)整數(shù)的數(shù)列,先將整數(shù)按照從大到小的順序進(jìn)行排序,然后輸入一個(gè)整數(shù)插入到數(shù)列中,使數(shù)列保持從大到小的順序。分析討論 通過(guò)實(shí)驗(yàn),分析定義與引用數(shù)組的區(qū)別。二、二維數(shù)組 1.寫(xiě)出程序輸出結(jié)果(1)#include”stdio.h” main(){ int i, j, t, a[4][4]={11,22,33,44,1,2,3,4,10,20,30,40,12,22,32,42};for(i=0;i<4;i++)for(j=0;j for(j=0;j<4;j++)printf(“%d”,a[i][j]); } }(2)#include”stdio.h” main(){int i,j,m,n,a[3][4]={43,32,22,13,11,22,33,44,44,11,32,31};m=n=0;for(i=0;i<3;i++)for(j=0;j<4;j++)if(a[m][n]>a[i][j]){m=i;n=j;} printf(“a[m][n]=%d,m=%d,n=%d”,a[m][n],m,n);} 3、操作符&用以求一個(gè)變量的地址,這在函數(shù)scanf 中已經(jīng)使用過(guò)了?,F(xiàn)在要你設(shè)計(jì)一個(gè)程序,返回一個(gè)3 * 5 的二維數(shù)組各元素的地址,并由此說(shuō)明二維數(shù)組中各元素是按什么順序存儲(chǔ)的。 4、輸入4×4的數(shù)組,編寫(xiě)程序?qū)崿F(xiàn): ⑴ 求出對(duì)角線上各元素的和; ⑵ 求出對(duì)角線上行、列下標(biāo)均為偶數(shù)的各元素的積; ⑶ 找出對(duì)角線上其值最大的元素和它在數(shù)組中的位置。 三、字符數(shù)組 1.驗(yàn)證程序輸出結(jié)果 #include”stdio.h” main(){char a[ ]=“ab12cd34ef”;int i, j;for(i=j=0;a[i ];i++)if(a[ i]>=’a’&&a[ i]<=’z’)a[ j++ ]=a[ i ];a[ j ]=’