




已閱讀5頁,還剩14頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
習題5參考解答 1數組是相同數據類型的集合,分為一維數組、二維數組及多維數組。在什么情況下使用數組?在什么情況下使用一維數組?解:當需要處理的數據為相同類型的數據的集合時,可以使用數組。如果這些數據的描述用一個量就可以,這時就用一維數組。例如,一組學生的學號,就可以使用一維數組。2數組元素又稱為下標變量,數組元素的下標有何意義?解:下標的意義是對數組的各個數組元素進行標識和區分。由數組名和下標結合起來形成數組元素的名字。 3使用字符數組來存儲字符串應注意什么問題? 解:需要注意的問題是字符數組在存儲字符串時是以0作為結束標記的。這個0是系統自動加上的。所以字符數組的長度需要比它要存儲的字符串的長度至少多1。例如,要存儲字符串abcd,因為它的長度為4,所以存儲它的字符數組的長度至少為5。 4常用的字符處理函數有哪些?解:常用的字符處理函數有以下8個。(1)puts(字符串):作用為將一個字符串輸出到終端。 (2)gets(字符數組):作用為從終端輸入一個字符串到字符數組,并且得一個函數值。 (3)strcat(字符串1,字符串2):作用為進行字符串的連接。 (4)strcpy(字符串1,字符串2):作用為進行字符串的復制。 (5)strcmp(字符串1,字符串2):作用為進行字符串的比較。 (6)strlen(字符串):作用為求字符串的長度。 (7)strlwr(字符串):作用為將字符串中的大寫字母轉換成小寫字母。 (8)strupr(字符串):作用為將字符串中的小寫字母轉換成大寫字母。5隨機產生10個兩位整數存儲到一個一維數組中,找出其中的最大數。解:#include#include#define random(x) (rand()%x)int main() int a10,max; int x; for(x=0;x10;x+) ax=random(100); max=a0; for(x=0;xmax) max=ax; printf(%4d,ax); printf(nmax=%dn,max); return 0;程序運行結果如下:41 67 34 0 69 24 78 58 62 64max=786輸入10個整數,要求按照從小到大的順序輸出。解:#includevoid main()int i,j,min,t,a10;printf(請輸入10個數:n);for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10-1;i+)min=i;for(j=i;jaj) min=j;t=ai;ai=amin;amin=t;printf(n排序結果如下:n);for(i=0;i10;i+)printf(%5d,ai);程序運行情況如下:請輸入10個數:6 90 45 56 1 15 44 78 58 101排序結果如下: 1 6 15 44 45 56 58 78 90 1017輸入10個字符,并將它們的順序顛倒后輸出。解:#include#define N 10void main()char aN,t;int i;/* 輸入10個字符并輸出*/printf(請輸入10個字符:n);for(i=0;i10;i+) scanf(%c,&ai); /*順序顛倒*/ for(i=0;iN/2;i+)t=ai;ai=aN-i-1;aN-i-1=t;printf(順序顛倒后的字符:n); for(i=0;iN;i+)printf(%c,ai);程序運行情況如下:請輸入10個字符:0123456789順序顛倒后的字符:9876543210 8寫出下列程序的運行結果。 (1)#include void fun(int b) int i=0; while(bi=10) bi+=2; i+;int main() int i,a=1,5,7,9,11,13,15; fun(a+2); for(i=0;i7;i+) printf(%5d,ai); return 0; 解: 1 5 9 11 11 13 15(2)#includeint main() int a33,i,j; for(i=0;i3;i+)for(j=0;j3;j+)aij=i; for(i=0;i3;i+)printf(%5d,a1i); return 0;解: 1 1 1(3)#include int main() int k; int a33=1,2,3,4,5,6,7,8,9; for(k=0;k3;k+) printf(%d ,ak2-k); return 0; 解: 3 5 7(4)#include #include int main() char p20=a,b,c,d,q=abc,r=abcde; strcpy(p+strlen(q),r); strcat(p,q); printf(%dn%dn,sizeof(p),strlen(p); return 0; 解: 2011 (5)#include #include void f(char p10,int n ) /* 字符串從小到大排序 */ char t10; int i,j; for(i=0;in-1;i+) for(j=i+1;j0) strcpy(t,pi); strcpy(pi,pj); strcpy(pi,t); int main() char p510=abc,aabdfg,abbd,dcdbe,cd;f(p,5); printf(%dn,strlen(p0); return 0; 解:39求一個33矩陣對角線元素之和。解:#includemain()float a33,sum=0;int i,j;printf(請輸入矩陣元素:n);for (i=0;i3;i+)for (j=0;j3;j+)scanf(%f,&aij);for (i=0;i3;i+ )sum=sum+aii;printf(對角線元素之和=%.2fn,sum);程序運行情況如下: 請輸入矩陣元素: 1 2 3 4 5 6 7 8 9 對角線元素之和=15.0010找出一個二維數組中的鞍點,所謂鞍點是指該位置上的數在該行最大,在該列最小。需要注意的是,并不是所有的二維數組都有鞍點。解:#define N 10#define M 10#include void main()int i,j,k,m,n,flag1,flag2,aNM,max,maxj;printf(n輸入行數n:);scanf(%d,&n);printf(n輸入列數m:);scanf(%d,&m);for (i=0;in ;i+ ) printf(第%d行?n,i); for (j=0;jm ;j+ ) scanf(%d,&aij);for (i=0;in ;i+ ) for (j=0;jm ;j+ ) printf(%5d,aij); printf(n);flag2=0;for (i=0;in ;i+ ) max=ai0; maxj=0; for (j=0; jmax)max=aij;maxj=j;for (k=0,flag1=1;kakmaxj)flag1=0;if (flag1)printf(n第%d行,第%d列的%d是鞍點n,i,maxj,max);flag2=1;if(!flag2)printf(n矩陣中無鞍點!n); 矩陣中有鞍點,運行情況如下:輸入行數n:2輸入列數m:2第0行?45第1行?464546第0行,第1列的5是鞍點 矩陣中無鞍點,運行情況如下:輸入行數n:2輸入列數m:2第0行?907第1行?58907 58矩陣中無鞍點!11某班有30個學生,每個學生參加了5門課程的考試,請編程顯示該班的期末成績單,并求出每個學生的所有課程的總分。解:#includevoid main()int score317;int i,j;for(i=1;i=30;i+) scorei0=i;printf(請依次輸入30個學生的五門課的成績n);for(i=1;i=30;i+) printf(請依次輸入第%d個學生的五門課的成績n,i); for(j=1;j=5;j+) scanf(%d,&scoreij);for(i=1;i=30;i+)scorei6=0; for(j=1;j=5;j+) scorei6+=scoreij;printf(期末成績單n);printf(%10s%10s%10s%10s%10s%10s%10sn,學號,課程1,課程2,課程3,課程4,課程5,總分);for(i=1;i=30;i+)for(j=0;j=6;j+)printf(%10d,scoreij);printf(n);程序運行情況如下:請依次輸入30個學生的五門課的成績請依次輸入第1個學生的五門課的成績78 89 98 96 98請依次輸入第2個學生的五門課的成績89 95 98 97 96請依次輸入第3個學生的五門課的成績78 79 74 78 75 按照上面示例自行輸入27個學生的五門課的成績。期末成績單學號 課程1 課程2 課程3 課程4 課程5 總分1 78 89 98 96 98 4592 89 95 98 97 96 4753 78 79 74 78 75 384程序將在此處依次打印出另外27個學生的成績。 12打印出如下方陣: 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4解:#include void main()int array44;int i,j;for(i=0;i=3;i+)for(j=0;j=3;j+)arrayij=(3-i)*4+(j+1);for(i=0;i=3;i+)for(j=0;j=3;j+)printf(%10d,arrayij);printf(n); 13打印出以下的楊輝三角形(要求打印出10行): 11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 解:#include#define N 11void main()int i,j,aNN;for(i=1;iN;i+)aii=1;ai1=1;for (i=3;iN;i+)for(j=2;j=i-1;j+)aij=ai-1j-1+ai-1j;for(i=1;iN;i+)for(j=1;j=i;j+)printf(%6d,aij);printf(n);printf(n);程序運行結果如下:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 114輸入5個字符串,按照ASCII碼值由小到大順序輸出。解:#include#includevoid main()int i,j,min;char t20,str520;printf(請輸入5個字符串:n);for(i=0;i5;i+)gets(stri);for(i=0;i5-1;i+)min=i;for(j=i;j0) min=j;strcpy(t,stri);strcpy(stri,strmin);strcpy(strmin,t);printf(n排序結果如下:n);for(i=0;i5;i+)puts(stri);程序運行情況如下:請輸入5個字符串:flashactionphotodreamweaver排序結果如下:actiondreamflashphotoweaver15有一篇文章,共有5行文字,每行有80個字符。要求分別統計出其中英文大寫字母、小寫字母、數字、空格以及其他字符的個數。解:#includevoid main()int i,j,uppn,lown,dign,span,othn;char text580;uppn=lown=dign=span=othn=0;for (i=0;i5;i+)printf(n請輸入第%d行:n,i);gets(texti);for (j=0;j=A&textij=a & textij=0&textij=9)dign+=1;else if(textij= )span+=1;elseothn+=1;for (i=0;i5 ;i+ )printf(%sn,texti);printf(大寫字母的個數:%dn,uppn);printf(小寫字母的個數:%dn,lown);printf(數字的個數:%dn,dign);printf(空格的個數:%dn,span);printf(其他字符的個數:%dn,othn);程序運行情況如下:請輸入第0行:abc請輸入第1行:+請輸入第2行:ABC請輸入第3行:123請輸入第4行:*大寫字母的個數:3小寫字母的個數:3數字的個數:3空格的個數:0其他字符的個數:6 16有一行電文,已按下面規律譯成密碼: A Z a z B Y b y C X c x 即第1個字母變成第26個字母,第i個字母變成第(26-i+1)個字母。非字母字符不變。要求編寫程序將密碼譯回原文,并打印出密碼和原文。解:#include main()int i,n;char ch80,tran80;printf(請輸入字符:);gets(ch);printf(n密碼是:%s,ch);i=0;while (chi!=0) if ( (chi=A)&(chi=a)&(chi=z)trani=26+96-chi+1+96;else trani=chi;i+;n=i;printf (n原文是:);for (i=0;in;i+)putchar (trani);程序運行情
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025福建省港口集團有限責任公司春季校園招聘219人筆試參考題庫附帶答案詳解
- 《客戶關系管理要點》課件
- 幼小銜接中的科學教學
- 2025至2031年中國搪瓷警告牌行業投資前景及策略咨詢研究報告
- 2025至2031年中國數據接線器行業投資前景及策略咨詢研究報告
- 教學環境與資源優化計劃
- 探索世界學期班級地理探索計劃
- 江蘇省蘇州市2023-2024學年高三上學期期末考試 化學 含解析
- 湖北省重點高中智學聯盟2023-2024學年高一12月聯考生物 含解析
- 江西省宜春市宜豐中學2023-2024學年高一下學期開學考試 歷史 含解析
- 裝配作業指導書
- 建設工程成本計劃與控制課件(原)
- IPC-A-610國際標準中英文對照(doc 17)
- 《陜文投應聘表格》word版
- 建設工程圍擋標準化管理圖集(2022年版)
- (完整word版)中小學教育質量綜合評價指標框架(試行)
- 《新概念英語》第一冊單詞表
- 半澤直樹日語字幕臺詞(一)
- 拌和站地基承載力及抗傾覆計算書
- 最新公司客戶訂單流程管理制度
- 生物分離工程第四章膜分離技術.ppt
評論
0/150
提交評論