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

下載本文檔

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

文檔簡(jiǎn)介

1、第四次作業(yè):數(shù)組1. 字符篩選編寫(xiě)一個(gè)程序,先輸入一個(gè)字符串str1(長(zhǎng)度不超過(guò)20),再輸入一個(gè)單獨(dú)的字符ch,然后程序會(huì)把字符串str當(dāng)中出現(xiàn)的所有的ch字符都刪掉,從而得到一個(gè)新的字符串str2,然后把這個(gè)字符串打印出來(lái)。例如: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ù)合并編寫(xiě)一個(gè)程序,能夠輸入兩個(gè)預(yù)先從小到大排列的整數(shù)型數(shù)組(假設(shè)數(shù)組長(zhǎng)度最大為20,數(shù)組輸入時(shí)遇到數(shù)字0結(jié)束);要求將這兩個(gè)數(shù)組的數(shù)字能夠合并成為一個(gè)新的從小到大順序排列的整數(shù)型數(shù)據(jù),并將新數(shù)組輸出。例如:l 輸入:請(qǐng)輸入第一個(gè)數(shù)組:1

3、,2,3,12,16,20,25,40,0 請(qǐng)輸入第二個(gè)數(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/*編寫(xiě)一個(gè)程序,能夠輸入兩個(gè)預(yù)先從小到大排列的整數(shù)型數(shù)組(假設(shè)數(shù)組長(zhǎng)度最大為20,數(shù)組輸入時(shí)遇到數(shù)字0結(jié)束);要求將這兩個(gè)數(shù)組的數(shù)字能夠合并成為一個(gè)新的從小到大順序排列的整數(shù)型數(shù)據(jù),并將新數(shù)組輸出。例如: 輸入:請(qǐng)輸入第一個(gè)數(shù)組:1,2,3,12,16,20,25,40,0 請(qǐng)輸入第二個(gè)數(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("請(qǐng)輸入第一個(gè)數(shù)組:");for (i=0;i+)scanf("%d",&ai);m=i-1;if (ai=0) break;printf("請(qǐng)輸入第二個(gè)數(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)換請(qǐng)使用數(shù)組編寫(xiě)一個(gè)程序,輸入一個(gè)二進(jìn)制的字符串(長(zhǎng)度不超過(guò)32),然后計(jì)算出相應(yīng)的十進(jìn)制整數(shù),并

6、把它打印出來(lái)。例如,l 輸入:請(qǐng)輸入二進(jìn)制數(shù)字符串:111011101110111011101110l 輸出:對(duì)應(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("請(qǐng)輸入二進(jìn)制字符串:");gets(str);j=strlen(str);for(i=j-1;i>=0;i-)t+=(stri-48)*pow(2,k);k+;print

7、f("對(duì)應(yīng)的十進(jìn)制數(shù):%dn",t);4. 對(duì)稱(chēng)數(shù)字一輛汽車(chē)在開(kāi)始出發(fā)前其里程表上的讀數(shù)是一個(gè)對(duì)稱(chēng)數(shù),后勻速行駛兩個(gè)小時(shí)后,發(fā)現(xiàn)里程表上是一個(gè)新的對(duì)稱(chēng)數(shù)。問(wèn)該新的對(duì)稱(chēng)數(shù)是多少?汽車(chē)的速度是多少?注:所謂對(duì)稱(chēng)數(shù)是指從左向右讀與從右向左讀完全一樣的數(shù)字。請(qǐng)?jiān)诤侠淼姆秶鷥?nèi)(提示,車(chē)速別太快也不能太慢,假設(shè)介于30120公里/小時(shí)),編程解決上述問(wèn)題。程序代碼:#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("新的對(duì)稱(chēng)數(shù)為:%d,速度為:%dn",s,v);5. 矩陣元素的運(yùn)算讀入 1 個(gè)正整數(shù) n(1n10), 再讀入 n*n 階方陣 a , 計(jì)算該矩陣除副對(duì)角線(xiàn)、最后一列和最后一行以外的所有元素之和。(副對(duì)角線(xiàn)為從矩陣的右上角至左下角的連線(xiàn))例:括號(hào)內(nèi)是說(shuō)明,可以不輸入、不輸出。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("請(qǐng)輸入n的值:");scanf("%d",&n);printf("請(qǐng)輸入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ù)組求解下列問(wèn)題。(提示:將加數(shù)、被加數(shù)、和放入一個(gè)二維數(shù)組中, 再輸出該數(shù)組)。輸入 1 個(gè)正整數(shù) n(1n10),輸出一張 20 以?xún)?nèi)的加法口訣表. 要求,該口訣表中的加數(shù)與被加數(shù)都不大于n, 分別存放在該表格中的第一行和第一列.樣式例如下:括號(hào)內(nèi)是說(shuō)明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("請(qǐng)輸入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. 字符與字母 (綜合題)用戶(hù)通過(guò)鍵盤(pán)輸入一行文檔(假設(shè)最大長(zhǎng)度不超過(guò)100個(gè)字符),直到按句號(hào)“.”鍵時(shí),輸入結(jié)束。請(qǐng)編程實(shí)現(xiàn)以下的功能:(1) 字母的轉(zhuǎn)換:在用戶(hù)敲鍵盤(pán)的時(shí)候,輸入的字符,如果它是大寫(xiě)字母,則回顯相應(yīng)的小寫(xiě)字母;如果它是小寫(xiě)字母,則回顯相應(yīng)的大寫(xiě)字母;其他字符,原樣回顯輸出。(2) 字符的統(tǒng)計(jì):分別統(tǒng)計(jì)出其中的英文字母、空格、數(shù)字和其他字符的個(gè)數(shù)。例如:l 輸入:(輸入時(shí)回顯

13、)a 19-YEAR-OLD SAYS HES READY TO MAKE A DIFFERENCE. (用戶(hù)實(shí)際輸入為:A 19-year-old says hes ready to make a difference.)l 輸出: (用戶(hù)按句號(hào)“.”后輸出,按照規(guī)則19-year-old 以及 hes 都被認(rèn)為是一個(gè)詞) 英文字母?jìng)€(gè)數(shù):37 空格個(gè)數(shù)為:8 數(shù)字個(gè)數(shù)為:2 其他字符個(gè)數(shù):4 (提示,可以使用 #include <conio.h> 中的 getch()函數(shù) ,該函數(shù)在鍵盤(pán)輸入時(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("請(qǐng)輸入字符串: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個(gè),n空格%d個(gè),n數(shù)字%d個(gè),n其它字符%d個(gè)n",letter,space,figure,other);8. 矩陣的初始化已知,在C語(yǔ)言中,函

16、數(shù) srand() 與 rand()配合使用,可以生成一系列的隨機(jī)數(shù)。例如,運(yùn)行下面的程序,可以生成10個(gè)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)前的時(shí)間為基礎(chǔ),初始化生成隨機(jī)數(shù)的種子 for(i=0; i<10; i+) printf("%dn&q

17、uot;, rand() %100); /rand() 以srand()為種子,隨機(jī)生成隨機(jī)數(shù) return 0; 對(duì)于一個(gè)m*n階的整數(shù)型矩陣進(jìn)行初始化。要求:l 用戶(hù)鍵盤(pán)輸入矩陣的階,m與n (m,n在015之間如輸入=12,n=8);l 請(qǐng)使用上面樣例提供的隨機(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("請(qǐng)輸入

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論