首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
實驗六 一維數組
【目的與要求】
1.掌握一維數組的定義、賦值和輸入輸出的方法;
2.掌握字符數組的使用;
3.掌握與數組有關的算法(例如排序算法)。
【上機內容】
【一般示例】
【例1】在鍵盤上輸入N個整數,試編制程序使該數組中的數按照從大到小的次序排列。
分析:C中數組長度必須是確定大小,即指定N的值。排序的方法有多種,我們取出其中兩種作為參考。
方法一:起泡排序
從第一個數開始依次對相鄰兩數進行比較,如次序對則不做任何操作;如次序不對則使這兩個數交換位置。第一遍的(N-1)次比較后,最大的數已放在最后,第二遍只需考慮(N-1)個數,以此類推直到第(N-1)遍比較后就可以完成排序。
源程序如下:
#define N 10
#include"stdio.h"
main()
{
int a[N],i,j,temp;
printf("please input %d numbers\n",N);
for(i=0;i scanf("%d",&a[i]);
for(i=0;i for(j=0;j {
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
printf("the array after sort:\n");
for(i=0;i printf("]",a[i]);
}
方法二:選擇排序
首先找出值最小的數,然后把這個數與第一個數交換,這樣值最小的數就放到了第一個位置;然后,在從剩下的數中找值最小的,把它和第二個數互換,使得第二小的數放在第二個位置上。以此類推,直到所有的值從小到大的順序排列為止。
#include"stdio.h"
#define N 10
main()
{
int a[N],i,j,r,temp;
printf("please input %d numbers\n",N);
for(i=0;i scanf("%d",&a[i]);
for(i=0;i { r=i;
for(j=i+1;j if(a[j] r=j;
if(r!=i)
{
temp=a[r];
a[r]=a[i];
a[i]=temp;
}
}
printf("the array after sort:\n");
for(i=0;i printf("]",a[i]);
printf("\n");
}
【例2】青年歌手參加歌曲大獎賽,有10個評委對她的進行打分,試編程求這位選手的平均得分(去掉一個最高分和一個最低分)。
分析:這道題的核心是排序。將評委所打的10個分數利用數組按增序(或降序)排列,計算數組中除第一個和最后一個分數以外的數的平均分,其中排序部分這里用選擇法實現。
main()
{int i,j,min;
float temp,ave=0;
float a[11];
printf("\n輸入評委所打的分數:\n");
for(i=1;i<=10;i++)
scanf("%f",&a[i]);
for(i=1;i<=9;i++)
{min=i;
for(j=i+1;j<=10;j++)
if(a[min]>a[j])
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
for(i=2;i<=9;i++) /*注意i值的變化范圍*/
ave=ave+a[i];
printf("選手所得最后分數:%6.1f",ave/8);
printf("\n");
}
【例3】輸入一串字符,計算其中空格的個數。
#include
main( )
{char c[30];
int i,sum=0;
gets(c);
for(i=0;i if(c[i]==' ')
sum=sum+1;
printf("空格數為:%d \ n",sum);
}
【作業】
1. 已有一個已排好序的數組,今輸入一個數,要求按原來排序的規律將它插入數組中。
2. 將一個數組中的值按逆序重新存放。例如,原來順序為8,6,5,4,1。要求改為1,4,5,6,8。
3. 有15個數按由小到大順序存放在一個數組中,輸入一個數,要求用折半查找法找出該數是數組中第幾個元素的值。如果該數不在數組中,則打印出“無此數”。
4. 編一程序,將兩個字符串連接起來,不要用strcat函數。
相關推薦:2010年9月計算機等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |