C語言第四次作業(yè)_第1頁
C語言第四次作業(yè)_第2頁
C語言第四次作業(yè)_第3頁
C語言第四次作業(yè)_第4頁
C語言第四次作業(yè)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第四次作業(yè):數(shù)組1. 字符篩選編寫一個程序,先輸入一個字符串str1(長度不超過20),再輸入一個單獨的字符ch,然后程序會把字符串str當(dāng)中出現(xiàn)的所有的ch字符都刪掉,從而得到一個新的字符串str2,然后把這個字符串打印出來。例如:l 輸入:字符串str1為:86字符ch為:-l 輸出:字符串str2為:861062785001程序代碼:#include<stdio.h>#include<string.h>void main()int i,j=0,length;char str121,str221,ch;printf("字符串st

2、r1為:");gets(str1);printf("字符ch為:");scanf("%c",&ch);length=strlen(str1);for(i=0;i<=length;i+)if(str1i!=ch)str2j=str1i;j+;else continue;puts(str2);2. 數(shù)據(jù)合并編寫一個程序,能夠輸入兩個預(yù)先從小到大排列的整數(shù)型數(shù)組(假設(shè)數(shù)組長度最大為20,數(shù)組輸入時遇到數(shù)字0結(jié)束);要求將這兩個數(shù)組的數(shù)字能夠合并成為一個新的從小到大順序排列的整數(shù)型數(shù)據(jù),并將新數(shù)組輸出。例如:l 輸入:請輸入第一個數(shù)組:1

3、,2,3,12,16,20,25,40,0 請輸入第二個數(shù)組:4,5,6,15,18,20,21,22,25,38,45,0l 輸出:合并后的數(shù)組為:1,2,3,4,5,6,12,15,16,18,20,20,21,22,25,25,38,40,45/*編寫一個程序,能夠輸入兩個預(yù)先從小到大排列的整數(shù)型數(shù)組(假設(shè)數(shù)組長度最大為20,數(shù)組輸入時遇到數(shù)字0結(jié)束);要求將這兩個數(shù)組的數(shù)字能夠合并成為一個新的從小到大順序排列的整數(shù)型數(shù)據(jù),并將新數(shù)組輸出。例如: 輸入:請輸入第一個數(shù)組:1,2,3,12,16,20,25,40,0 請輸入第二個數(shù)組:4,5,6,15,18,20,21,22,25,38,

4、45,0 輸出:合并后的數(shù)組為:1,2,3,4,5,6,12,15,16,18,20,20,21,22,25,25,38,40,45*/程序代碼:#include<stdio.h>#include<string.h>void main()int i,j,t,k,m,n,r;int a20,b20,c40;printf("請輸入第一個數(shù)組:");for (i=0;i+)scanf("%d",&ai);m=i-1;if (ai=0) break;printf("請輸入第二個數(shù)組:");for (j=0;j+

5、)scanf("%d",&bj);n=j-1;if (bj=0) break;for (i=0;i<=m;k+,i+)ck=ai;for (j=0;j<=n;k+,j+)ck=bj;for (r=0;r<=m+n;r+) for (k=0;k<=m+n;k+) if (ck>ck+1) t=ck; ck=ck+1; ck+1=t; for (k=0;k<=m+n;k+)printf("%d ",ck);3. 數(shù)制轉(zhuǎn)換請使用數(shù)組編寫一個程序,輸入一個二進(jìn)制的字符串(長度不超過32),然后計算出相應(yīng)的十進(jìn)制整數(shù),并

6、把它打印出來。例如,l 輸入:請輸入二進(jìn)制數(shù)字符串:111011101110111011101110l 輸出:對應(yīng)的十進(jìn)制數(shù):15658734程序代碼:#include<stdio.h>#include<string.h>#include<math.h>void main()char str32;int i,j=0,k=0;long int t=0;printf("請輸入二進(jìn)制字符串:");gets(str);j=strlen(str);for(i=j-1;i>=0;i-)t+=(stri-48)*pow(2,k);k+;print

7、f("對應(yīng)的十進(jìn)制數(shù):%dn",t);4. 對稱數(shù)字一輛汽車在開始出發(fā)前其里程表上的讀數(shù)是一個對稱數(shù),后勻速行駛兩個小時后,發(fā)現(xiàn)里程表上是一個新的對稱數(shù)。問該新的對稱數(shù)是多少?汽車的速度是多少?注:所謂對稱數(shù)是指從左向右讀與從右向左讀完全一樣的數(shù)字。請在合理的范圍內(nèi)(提示,車速別太快也不能太慢,假設(shè)介于30120公里/小時),編程解決上述問題。程序代碼:#include<stdio.h>#include<math.h>void main()int a5;int m=95859,i,s,v,t=2;for(v=30;v<=120;v+)s=m+v

8、*t;for(i=0;i<=4;i+)ai=fmod(floor(s/(pow(10,i),10);if(a0=a4&&a1=a3)printf("新的對稱數(shù)為:%d,速度為:%dn",s,v);5. 矩陣元素的運算讀入 1 個正整數(shù) n(1n10), 再讀入 n*n 階方陣 a , 計算該矩陣除副對角線、最后一列和最后一行以外的所有元素之和。(副對角線為從矩陣的右上角至左下角的連線)例:括號內(nèi)是說明,可以不輸入、不輸出。l 輸入:4 (n=4)2 3 4 15 6 1 17 1 8 11 1 1 1l 輸出:sum=35程序代碼:#include&l

9、t;stdio.h>void main()int n,i,j,sum=0;int a1010;printf("請輸入n的值:");scanf("%d",&n);printf("請輸入n*n矩陣a:n");for(i=0;i<=n-1;i+)for(j=0;j<=n-1;j+)scanf("%d",&aij);if(i+j!=n-1&&i!=n-1&&j!=n-1)sum+=aij;printf("sum=%dn",sum);6.

10、加法口訣表要求使用二維數(shù)組求解下列問題。(提示:將加數(shù)、被加數(shù)、和放入一個二維數(shù)組中, 再輸出該數(shù)組)。輸入 1 個正整數(shù) n(1n10),輸出一張 20 以內(nèi)的加法口訣表. 要求,該口訣表中的加數(shù)與被加數(shù)都不大于n, 分別存放在該表格中的第一行和第一列.樣式例如下:括號內(nèi)是說明l 輸入:6 (n=6)l 輸出:+ 1 2 3 4 5 61 22 3 43 4 5 6 4 5 6 7 8 5 6 7 8 9 10 6 7 8 9 10 11 12#include<stdio.h>void main()int a1111;int i,j,n;printf("請輸入n的值:&

11、quot;);scanf("%d",&n);for(i=0;i<=n;i+)for(j=0;j<=n;j+)if(i=0&&j!=0)aij=j;if(i!=0&&j=0)aij=i;if(i!=0&&j!=0)aij=i+j;if(i=0&&j=0)aij=43;for(i=0;i<=n;i+)for(j=0;j<=n;j+)if(i!=0&&j=0)|(j!=0&&i=0)|(i!=0&&j!=0&&j<=

12、i)printf("%4d",aij);if(i=0&&j=0)printf("%4c",aij);printf("n");7. 字符與字母 (綜合題)用戶通過鍵盤輸入一行文檔(假設(shè)最大長度不超過100個字符),直到按句號“.”鍵時,輸入結(jié)束。請編程實現(xiàn)以下的功能:(1) 字母的轉(zhuǎn)換:在用戶敲鍵盤的時候,輸入的字符,如果它是大寫字母,則回顯相應(yīng)的小寫字母;如果它是小寫字母,則回顯相應(yīng)的大寫字母;其他字符,原樣回顯輸出。(2) 字符的統(tǒng)計:分別統(tǒng)計出其中的英文字母、空格、數(shù)字和其他字符的個數(shù)。例如:l 輸入:(輸入時回顯

13、)a 19-YEAR-OLD SAYS HES READY TO MAKE A DIFFERENCE. (用戶實際輸入為:A 19-year-old says hes ready to make a difference.)l 輸出: (用戶按句號“.”后輸出,按照規(guī)則19-year-old 以及 hes 都被認(rèn)為是一個詞) 英文字母個數(shù):37 空格個數(shù)為:8 數(shù)字個數(shù)為:2 其他字符個數(shù):4 (提示,可以使用 #include <conio.h> 中的 getch()函數(shù) ,該函數(shù)在鍵盤輸入時,不緩存,不回顯)程序代碼:#include<stdio.h>#includ

14、e<conio.h>#include<string.h>#include <ctype.h>void main()int letter=0,space=0,figure=0,other=0,i;char str100;printf("請輸入字符串:n");for(i=0;i<=100;i+)if(stri=getch()!='.')if(isupper(stri)printf("%c",stri+32);letter+;else if(islower(stri)printf("%c&qu

15、ot;,stri-32);letter+;elseprintf("%c",stri);if (stri=' ')space+;else if (stri>='0'&&stri<='9')figure+;else other+;i+;else break;printf(".");other+;printf("n字符%d個,n空格%d個,n數(shù)字%d個,n其它字符%d個n",letter,space,figure,other);8. 矩陣的初始化已知,在C語言中,函

16、數(shù) srand() 與 rand()配合使用,可以生成一系列的隨機(jī)數(shù)。例如,運行下面的程序,可以生成10個0 到 99 之間的隨機(jī)數(shù)。#include <stdlib.h> #include <stdio.h> #include <time.h>int main(void) int i; printf("Ten random numbers from 0 to 99nn"); srand(time(NULL); / 以當(dāng)前的時間為基礎(chǔ),初始化生成隨機(jī)數(shù)的種子 for(i=0; i<10; i+) printf("%dn&q

17、uot;, rand() %100); /rand() 以srand()為種子,隨機(jī)生成隨機(jī)數(shù) return 0; 對于一個m*n階的整數(shù)型矩陣進(jìn)行初始化。要求:l 用戶鍵盤輸入矩陣的階,m與n (m,n在015之間如輸入=12,n=8);l 請使用上面樣例提供的隨機(jī)數(shù)生成函數(shù),用0m*n之間的隨機(jī)數(shù)分別初始化該矩陣元素;在屏幕上輸出該矩陣。程序代碼:#include <stdlib.h> #include <stdio.h> #include <time.h>void main()int a1515;int i,j,m,n;printf("請輸入

18、m,n的值:");scanf("%d,%d",&m,&n);srand(time(NULL); for(i=0;i<m;i+)for(j=0;j<n;j+)aij=rand()%m*n;printf("輸出一個隨機(jī)的m*n矩陣:n");for(i=0;i<m;i+)for(j=0;j<n;j+)printf("%4d",aij);printf("n");9. 大數(shù)求和 (選作)如你所知,在C語言中,基本數(shù)據(jù)類型中數(shù)的表示范圍有限(如整數(shù)范圍不很大)。如何求兩個很大的整數(shù)(假設(shè)整數(shù)為50位)之和,需要采取其他方法。請編程實現(xiàn)兩個大數(shù)求和的功能。例如:l 輸入:數(shù)1 :112233445566778899 數(shù)2 :998877665544332211l 輸出: 和為:1111111111111111110程序代碼:#i

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論