版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2836417280實(shí)驗(yàn)四 數(shù)組一、實(shí)驗(yàn)?zāi)康募耙?. 掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法;2. 掌握字符數(shù)組和字符串函數(shù)的使用;3. 掌握與數(shù)組有關(guān)的算法(特別是排序算法)。二、實(shí)驗(yàn)學(xué)時(shí)6學(xué)時(shí)三、實(shí)驗(yàn)任務(wù)1.調(diào)試下列c50101.c程序,使之具有如下功能:輸入10個(gè)整數(shù),按每行3個(gè)數(shù)輸出這些整數(shù),最后輸出10個(gè)整數(shù)的平均值。寫出調(diào)試過程。#inclue <stdio.h>#define N 10void main( ) int i,aN,av;for(i=0;i<N;i+) scanf("
2、%d",ai); for(i=0;i<N;i+) printf("%d",ai); if(i%3=0) printf("n")
3、; for(i=0;i!=N;i+) av+=ai; printf("av=%fn",av); 上面給出的程序是完全可以運(yùn)行的,但是運(yùn)行結(jié)果是完全錯(cuò)誤的。調(diào)試時(shí)請注意數(shù)組元素的輸入問題、輸出格式問題等。請
4、使用前面實(shí)驗(yàn)所掌握的調(diào)試工具,判斷程序中的錯(cuò)誤并改正。相關(guān)知識:數(shù)組元素值的輸入;求和求平均值的相關(guān)變量初始化問題;輸出格式符的正確使用。數(shù)組元素的格式化輸出。2.下面c50102.c程序是輸入5個(gè)數(shù)據(jù),然后求它們的和并輸出結(jié)果。#include <stdio.h>void main( )int i, a5, sum = 0; scanf("%d,%d,%d,%d,%d", a ); for (i = 0; i <= 4; i +) sum += ai; printf("sum = %d n", sum);該程序中有哪些錯(cuò)誤?如何修改?
5、寫出正確運(yùn)行后的結(jié)果。相關(guān)知識:數(shù)組元素的輸入和輸出只能逐個(gè)元素操作,而不能以數(shù)組名作整體操作。3.有一個(gè)3行4列的距陣,現(xiàn)要求編程求出其中最大的那個(gè)元素的值,以及它所在的行號與列號。程序c50103.c的初始說明和輸出語句如下所示,請補(bǔ)充完成該程序。#include <stdio.h>void main( )int i, j, row, colum, max;static int a34 = 1,2,3,4, 9,8,7,6, -10,10,-5,2; printf(" Max = %d, Row = %d, Colum = %d n", max, row,
6、colum);編程點(diǎn)撥: 初始化row、colum及max。 使用for循環(huán)的雙重循環(huán)逐行把元素值與max值進(jìn)行比較,比較結(jié)果如果元素值比max值大,則改變max值,同時(shí)改變r(jià)ow和colum的值。最后輸出max,row和colum的值。相關(guān)知識:二維數(shù)組的定義和初始化;使用二重循環(huán)對二維數(shù)組元素的訪問;求最值時(shí)相關(guān)變量初值的設(shè)定。4.數(shù)組中已存互不相同的10個(gè)整數(shù),從鍵盤輸入一個(gè)整數(shù),輸出與該值相同的數(shù)組元素下標(biāo)。 編程點(diǎn)撥:輸入要查找的變量x的值;使用循環(huán)將輸入的數(shù)和數(shù)組元素逐個(gè)進(jìn)行比較,若找到,則提前退出循環(huán);根據(jù)循環(huán)是正常結(jié)束還是提前結(jié)束來判斷是否找到x。c50104.c部分源代碼:#
7、include <stdio.h>void main( ) int i, x, a10=1,2,3,4,5,6,7,8,9,10; /*輸入x變量的值 */ for ( i=0; i<10; i+ ) printf("%4d",ai); printf("n"); /* 循環(huán)查找與x相等的元素 */if ( ) printf("%dn",i); /* 輸出查找結(jié)論 ,輸出下標(biāo)值 */else printf("Not found %dn",x);5.編寫程序,任意輸入10個(gè)整數(shù)的數(shù)列,先將整數(shù)按照從大
8、到小的順序進(jìn)行排序,然后輸入一個(gè)整數(shù)插入到數(shù)列中,使數(shù)列保持從大到小的順序。編程點(diǎn)撥:定義數(shù)組時(shí)多開辟一個(gè)存儲單元;找合適的插入位置; 20 18 16 14 12 10 8 6 4 2a0123456789下標(biāo)=10k15找合適的插入位置:j=3j=3j=0 aj k? 即20 15 ? 是 j+j=1 aj k? 即18 15 ? 是 j+j=2 aj k? 即16 15 ? 是 j+j=3 aj k? 即14 15 ? 不是,結(jié)束循環(huán)while( aj>=k && j<10 ) j+;找不到比k小的元素時(shí)也要退出循環(huán) 向右移動插入點(diǎn)后的元素;先把a(bǔ)9移到a10
9、,a8移到a9,ai移到ai+1,直到把a(bǔ)j移到aj+1,即:i=j停止移動元素。 for(i=9;i>=j;i- ) ai+1=ai; 20 18 16 14 12 10 8 6 4 2a0123456789下標(biāo)=10k15插入。c50105.c部分源代碼:#include <stdio.h>#define N 11void main() int i,j,aN; printf(“Please input 10 numbers:”); for (i=0; i<N-1; i+) scanf(“%d”,&ai); /*亂序輸入10個(gè)整數(shù)*/ 相關(guān)知識:比較排序法、選
10、擇排序法和冒泡排序法;數(shù)據(jù)元素的插入。6.輸入十個(gè)互不相同的整數(shù)并存在數(shù)組中,找出最大元素,并刪除。 編程點(diǎn)撥:求最大值所在元素下標(biāo):不必用max記住最大值,只要用k記住最大值所在的元素下標(biāo);刪除最大值:從最大值開始將其后面元素依次前移一個(gè)位置。 2 8 16 14 1 10 8 16 4 20 6a0123456789下標(biāo)=10部分源代碼:k=0;if ( ak<a1 ) 真k=0; for ( i=1; i<10; i+ ) if ( ak<ai ) k=i;k=1; 執(zhí)行if ( ak<a2 ) 假k=2; 不執(zhí)行if ( ak<a3 ) 真k=3; 執(zhí)行相
11、關(guān)知識:刪除數(shù)組元素的概念;移動數(shù)組元素的算法;求最大值位置的算法。7. 以下c50107.c程序的功能是:從鍵盤上輸入若干個(gè)學(xué)生的成績,統(tǒng)計(jì)計(jì)算出平均成績,并輸出低于平均分的學(xué)生成績,用輸入負(fù)數(shù)結(jié)束輸入。請?zhí)羁眨?include <stdio.h>void main( ) float x1000, sum=0.0, ave, a; int n=0, i; printf ("Enter mark : n") ; scanf("%f", &a); while (a>=0.0 && n<1000) sum+=
12、; xn= ; n+; scanf("%f", &a); ave= ; printf ("Output : n"); printf ("ave = %fn", ave); for (i=0; i<n; i+) if ( ) printf("%fn", xi);8. 綜合編程題:打印如下楊輝三角形1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 編程點(diǎn)撥:楊輝三角形有如下特點(diǎn):只有下半三角形有確定的值;第一列和對角線上的元素值都是1;其它元素值均是前一行同一列元素與
13、前一行前一列元素之和。9.調(diào)試下列c50201.c程序,使之具有如下功能:任意輸入兩個(gè)字符串(如:“abc 123”和“china”),并存放在a,b兩個(gè)數(shù)組中。然后把較短的字符串放在a數(shù)組,較長的字符串放在b數(shù)組。并輸出。#include <stdio.h>#include <string.h> void main() char a10,b10; int c,d,k,ch; scanf("%s",&a); scanf("%s",&b); printf("a=%s,b=%sn",a,b); c=
14、strlen(a); d=strlen(b); if(c>d) for(k=0;k<d;k+) ch=ak;ak=bk;bk=ch; printf("a=%sn",a); printf("b=%sn",b); 相關(guān)知識:程序中的strlen()是庫函數(shù),功能是求字符串的長度,它的原型保存在頭文件"string.h"中。調(diào)試時(shí)注意庫函數(shù)的調(diào)用方法,不同的字符串輸入方法,通過錯(cuò)誤提示發(fā)現(xiàn)程序中的錯(cuò)誤。10.閱讀下面的c50202.c程序,然后回答后面的問題:#include <stdio.h>#include &l
15、t;string.h> void main( ) char s180, s240; int i = 0, j = 0; printf(" n Please input string1:"); scanf("%s", s1); printf(" n Please input string2:"); scanf("%s", s2); while (s1i!= '0' )i+; while (s2j!= '0' )s1i+=s2j +; s1i= '0' printf
16、("n New string: %s", s1);編輯、運(yùn)行該程序,然后分別輸入Country 和side。請問:程序執(zhí)行的結(jié)果是什么?該程序的功能是什么?相關(guān)知識: 串結(jié)束符0; 自編寫庫函數(shù)。11.填空完成c50203.c程序,使其功能是對從鍵盤上輸入的兩個(gè)字符串進(jìn)行比較,然后輸出兩個(gè)字符串中第一個(gè)不相同字符的ASCII碼之差。例如:輸入的兩個(gè)字符串分別為abcdefg和abceef,則輸出為-1。程序如下: #include <stdio.h> void main ( ) char str1100,str2100; int i,s; printf(&quo
17、t;n Input string 1:n");gets(str1); printf(“n Input string 2:n”);gets(str2); i= (1) ; while(str1i=str2i)&&(str1i!= (2) ) i+; s= (3) ; printf("%dn",s); 12.填空完成c50204.c程序,使其的功能是統(tǒng)計(jì)從終端輸入字符中每個(gè)大寫字母的個(gè)數(shù)。用#號作為輸入結(jié)束標(biāo)志。程序如下: #include <stdio.h> #include <ctype.h> void main ( ) i
18、nt num26,i; char c; for (i=0;i<26;i+) numi=0; while ( (1) != '#') /* 統(tǒng)計(jì)從終端輸入的大寫字母個(gè)數(shù)*/ if (isupper(c) numc-65 (2) ; for (i=0;i<26;i+) /* 輸出大寫字母和該字母的個(gè)數(shù)*/ if (numi)printf("%c:%dn",i (3) ,numi); 13.編寫程序,輸入若干個(gè)字符串,求出每個(gè)字符串的長度,并打印最長一個(gè)字符串的內(nèi)容。以“stop”作為輸入的最后一個(gè)字符串。 相關(guān)知識: 字符數(shù)組的輸入輸出可以有兩種方法:² 逐個(gè)字符輸入輸出。用格式符“%c”輸入或輸出一個(gè)字符,此時(shí)輸入輸出函數(shù)中的輸入輸出項(xiàng)是數(shù)組元素名,而不是字符數(shù)組名;² 將整個(gè)字符串一次輸入或輸出。用“%s”格式符,意思是輸出字符串(string),此時(shí)輸入
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度存量房屋承購經(jīng)紀(jì)服務(wù)合同碳排放管理規(guī)范3篇
- 二零二五年度二手服裝批發(fā)與零售合同規(guī)范4篇
- 二零二五年度有機(jī)棉花生產(chǎn)與銷售合同3篇
- 二零二五年度體育行業(yè)職工勞動合同及運(yùn)動員保障協(xié)議4篇
- 二零二五年度電子商務(wù)SET協(xié)議支付安全風(fēng)險(xiǎn)評估與優(yōu)化合同3篇
- 2025年度螺旋鋼管國際市場開拓與投資合作合同4篇
- 論我國壟斷協(xié)議豁免制度消極條件的完善
- 2025年度社區(qū)團(tuán)購米面糧油供應(yīng)合作協(xié)議4篇
- 2025年度個(gè)人房屋建造竣工驗(yàn)收與交付合同4篇
- 2025年度船舶涂裝工程環(huán)境影響評價(jià)合同4篇
- 骨科手術(shù)后患者營養(yǎng)情況及營養(yǎng)不良的原因分析,骨傷科論文
- GB/T 24474.1-2020乘運(yùn)質(zhì)量測量第1部分:電梯
- GB/T 12684-2006工業(yè)硼化物分析方法
- 定崗定編定員實(shí)施方案(一)
- 高血壓患者用藥的注意事項(xiàng)講義課件
- 特種作業(yè)安全監(jiān)護(hù)人員培訓(xùn)課件
- (完整)第15章-合成生物學(xué)ppt
- 太平洋戰(zhàn)爭課件
- 封條模板A4打印版
- T∕CGCC 7-2017 焙烤食品用糖漿
- 貨代操作流程及規(guī)范
評論
0/150
提交評論