C 語言30道例題東大期末考試+答案_第1頁
C 語言30道例題東大期末考試+答案_第2頁
C 語言30道例題東大期末考試+答案_第3頁
C 語言30道例題東大期末考試+答案_第4頁
C 語言30道例題東大期末考試+答案_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、29題號題目第幾題1編寫一個售貨機(POS)計算程序,用于水果店售貨員算賬。蘋果每千克3.2元,梨每千克1.96元,香蕉每千克3元,櫻桃每千克24元。某顧客購買1.5斤蘋果,2斤梨,3斤香蕉,1.5斤櫻桃,付給售貨員100元。要求規(guī)范輸出這位顧客購買各類水果的名稱,對應的重量和應付價錢,顯示顧客所付款項,輸出應找回的款項。#include#includevoid main() float n4,apple=3.2,pear=1.96,banana=3,Cherry=24,price,charge,money; int i; printf(請輸入水果重量蘋果 梨 香蕉 櫻桃 (不買的水果請輸入0

2、):n); for(i=0;i4;i+) scanf(%f,&ni); printf(應付錢 %.2f 元n,price=apple*n0+pear*n1+banana*n2+Cherry*n3); printf(請輸入付款數(shù):);scanf(%f,&money); printf(應找錢 %.2f 元n,money-price);12編寫一個程序,對輸入的一組整數(shù),分別統(tǒng)計其中正整數(shù)和負整數(shù)的個數(shù)(0作為結(jié)束標志)。#includemain()int i,sum1=0,sum2=0;printf(請輸入一組整數(shù),0結(jié)尾);scanf(%d,&i);while(i!=0)if(i0)sum1=s

3、um1+1;else sum2=sum2+1;scanf(%d,&i);printf(%d,%d,sum1,sum2);printf(n);13統(tǒng)計100-500之間各個數(shù)字之和為9的三位數(shù),輸出這些三位數(shù)。例如351的各個數(shù)字之和為9。#includemain()int a,b,c,t;for(t=100;t500;t+)a=t%10;b=t/100;c=(t/10)%10;if(a+b+c=9)printf(%d,t);return 0;14編程求1-1000之間的所有完數(shù)(完數(shù)定義:一個數(shù)恰好等于它的除自身外的所有因子之和)。#includemain() int m,i,s; for(m

4、=2;m1000;m+) s=1; for(i=2;i=m/2;i+) if(m%i=0) s=s+i; if(s=m) printf(%d is 完數(shù),m); printf(n); 15已知銀行整存整取存款不同期限的利率分別為:3.30%期限半年;3.50%期限一年;4.40%期限二年;5.00%期限三年;5.50%期限五年;到期利息稅為5%。要求輸入存取的本金和期限,求到期能從銀行得到的利息、本金及總和。16輸入三角形的三邊長,判斷這個三角形是否是直角三角形。17輸入一串字符(以回車鍵結(jié)束),統(tǒng)計其中數(shù)字、大寫字母、小寫字母以及其他字符的個數(shù)。18編寫程序:找出不超過1000的十位數(shù)字為1

5、,個位數(shù)字為3或7的所有數(shù)。例如:13、17、113、317等。#includemain()int a,b,c,t;for(t=10;t1000;t+)a=t%10;b=(t/10)%10;if(a=3|a=7)&b=1)printf(%d,t);printf(n); return 0;19某企業(yè)利潤提成的規(guī)則如下:1)利潤低于或等于10萬元的,可提成獎金%10;2)利潤高于10萬元,低于20萬元時,低于10萬元的部分按%10提成,另外部分可以提成7.5%;3)利潤高于20萬低于40萬元的,其中20萬元按前面的方法發(fā)放,另外的部分按5%提成;4)利潤高于40萬元的,40 萬元按前面的方法提成,

6、高于部分按3%提成。從鍵盤輸入利潤,輸出應發(fā)的提成。110利用公式e=1/1!+1/2!+1/3!+1/n!計算e的值并輸出(要求:誤差小于10-5)。#includemain()float e=1.0;int t=1,i=1;while(1.0/t0.00001) i+;e=e+1.0/t; t=i*t;printf(%fn,e);111從鍵盤輸入一個字符串str,統(tǒng)計其中大寫英文字母A,B,C,D出現(xiàn)的次數(shù)。要求輸出原始字符串,以及統(tǒng)計的結(jié)果。#includemain()char str100;int n=0,i;gets(str);for(i=0;stri!=0;i+)if(stri=A

7、|stri=B|stri=C|stri=D)n+; puts(str);printf(%d,n);212將字符串a(chǎn)中的每個字符用加3的方法加密并存入數(shù)組b中,再對b中的字符串解密存入數(shù)組c。要求:初始化字符串a(chǎn),依次輸出字符串a(chǎn)、b、c。#includemain()char a=hdckskshalsjak,b100,c100;int i,j=0,u=0;for(i=0;ai!=0;i+) bj=ai+3;j+;bj=0;for(j=0;bj!=0;j+)cu=bj-3;u+;cu=0;puts(a);puts(b);puts(c);213輸入兩個字符串str1和str2,計算并輸出str2在

8、str1中出現(xiàn)的位置(提示:從位置0開始計算,例如輸入str1為”howareyou”,str2為”are”,則位置結(jié)果為3),要求初始化字符串str1和str2,輸出原始字符串str1和str2,以及位置結(jié)果值。#includevoid main()char str1=weallhopeforsuccess,str2=for,i,j=0,k,p;for(i=0;str1i!=0;i+)if(str2j=str1i)j+;k=i;p=j-1;elsej=0;printf(%dn,k-p);puts(str1);puts(str2);214從鍵盤輸入一個字符串str和一個字符ch,刪除字符串st

9、r中和輸入字符ch相同的所有字符,輸出原始字符串str以及刪除字符ch后的字符串str。215從具有10個元素的一維整型數(shù)組中查找最小值的元素,然后與數(shù)組的第一個元素對調(diào)。要求:初始化一維數(shù)組,輸出該數(shù)組以及對調(diào)元素的數(shù)組。#includemain()int i,temp,b,a10=1,2,3,5,6,10,13,67,8,9;int max=a0;for(i=0;i10;i+)printf(%3d,ai);printf(n);for(i=0;imax)max=ai;b=i;printf(max=%dn,max);temp=ab;ab=a0;a0=temp; for(i=0;i10;i+)p

10、rintf(%3d,ai);printf(n);216在一個具有10元素的整型數(shù)組a中,刪除數(shù)組元素值為奇數(shù)的所有數(shù)組元素。要求:初始化數(shù)組a,輸出原始數(shù)組以及刪除數(shù)據(jù)的數(shù)組。#includevoid main()int a10=2,4,2,5,6,7,3,7,4,8,b10;int i,j=0,k;for(i=0;i10;i+)printf(%5d,ai);printf(n);for(i=0;i10;i+)if(ai%2=0)bj=ai;j+;k=j;for(j=0;jk;j+)printf(%5d,bj); printf(n);217將10個整數(shù)存入數(shù)組,刪除數(shù)組中指定的第n個元素。(要求

11、:數(shù)組初始化定義)#include main()int a10=1,2,3,4,5,6,7,8,9,10,i,j;for(j=0;j10;j+)if(aj=6)aj=aj+1;j+; printf(%d ,aj);218初始化一個4x5的矩陣,求其中最大元素和最小元素所在的行號,對調(diào)最大最小元素,輸出行號、列號、對調(diào)后的矩陣。#include main()int a45=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,i,j;int max=a00,min=a00,c=0,d=0,e=0,f=0;int temp;for(i=0;i4;i+

12、)for(j=0;j5;j+)printf(%4d,aij);printf(n);for(i=0;i4;i+)for(j=0;jmax)max=aij;c=i;d=j;printf(max is %d,在第%d行第%d列,max,c,d);printf(n);for(i=0;i4;i+)for(j=0;j5;j+)if(aijmin)min=aij;e=i;f=j;printf(min is %d,在第%d行第%d列,min,e,f);printf(n);temp=acd;acd=aef;aef=temp;for(i=0;i4;i+)for(j=0;j5;j+)printf(%4d,aij);

13、printf(n);219編寫函數(shù)int fun(int n),判定n是否為十位數(shù)字為1,個位數(shù)字為3或7的數(shù)。若是,函數(shù)返回1,否則返回0。(提示:例如:13、17、113、317都是這樣的數(shù)。)要求:在主函數(shù)中調(diào)用fun函數(shù),并在主函數(shù)中輸出1000之間的所有十位數(shù)字為1,個位數(shù)字為3或7的數(shù)。#includeint fun(int n)int a,b;a=n%10;b=n/10%10;if(a=3|a=7)if(b=1)return 1;elsereturn 0;elsereturn 0;main()int a,n;for(n=3;n1001;n+) a=fun(n);if(a=1)pr

14、intf(%5d,n);if(a=0)continue;220初始化數(shù)組為10個學生的某門課成績,求出其中最高成績、最低成績及平均值,統(tǒng)計成績低于60分的人數(shù)、高于平均值的人數(shù)和低于平均值的人數(shù)。要求:輸出原始成績、最高成績、最低成績、平均成績、低于60分的人數(shù)、高于平均值的人數(shù)、低于平均值的人數(shù)。221已知矩陣a44,交換矩陣中最大元素所在的列與次大元素所在的列。要求:(1)編寫函數(shù)void change(int a44)交換最大元素所在的列與次大元素所在的列;(2)在主函數(shù)中初始化原始矩陣,輸出原始矩陣以及交換發(fā)生后的矩陣。例如:初始化矩陣為: 交換后矩陣為:1 4 5 8 1 5 4 8

15、3 2 6 7 #includevoid change(int a44) int i=0,j=0,n=0,m=0,x,y,s;int max,temp1,temp2; max=a00;for(i=0;i4;i+)for(j=0;j=max)max=aij;x=i;y=j;temp1=axy; axy=0;max=a00; for(n=0;n4;n+)for(m=0;m=max)max=anm;s=m; axy=temp1;for(i=0;i4;i+)temp2=ais; ais=aiy; aiy=temp2;main()int a44=1,2,15,16,5,6,7,8,9,10,11,12,

16、13,14,3,4; int i,j;printf(Orignal:n);for(i=0;i4;i+)for(j=0;j4;j+)printf(%2d ,aij);printf(n);change(a); i=0;j=0;printf(Changed:n);for(i=0;i4;i+)for(j=0;j4;j+)printf(%2d ,aij); printf(n);322編寫函數(shù)void fun(char str30,char a),刪除字符串str中所有a代表的字符,被刪除后的字符依次向前移動。要求:在主函數(shù)中初始化字符數(shù)組,并輸入字符a,輸出原字符數(shù)組及刪除結(jié)果。例如:初始化字符數(shù)組st

17、r30=”This is a test of C language.”,輸入字符a=t,則刪除之后的結(jié)果為”This is a es of C language.”。323編寫函數(shù)int StrCount(char* str1,char* str2)。Str1和str2為兩個輸入的字符串。函數(shù)統(tǒng)計str2在str1中出現(xiàn)的次數(shù),返回該數(shù)值。要求:在主函數(shù)main中初始化str1和str2,調(diào)用函數(shù)StrCount(str1,str2)后輸出結(jié)果。如輸入str1為howareyouareGGGare,str2為are,那么調(diào)用函數(shù)StrCount后函數(shù)返回3。#includeint StrCou

18、nt(char *str1,char *str2)int i=0,j=0,ncourt=0;for(i=0;*(str1+i)!=0;i+) if(*(str1+i)=*(str2+j) for(j=0;j3;j+) if(*(str1+i+j)!=*(str2+j) break; if(j=3)j=0;ncourt+;return(ncourt);main()char a=howareyouarehhare;char b=are;int n;n=StrCount(a,b);printf(%dn,n);324編寫函數(shù)void StrMid(char* str1,int m,int n,char

19、* str2)。Str1為一個輸入的字符串,函數(shù)把str1從第m個字符開始的n個字符拷貝到str2中。函數(shù)沒有返回值。要求在主函數(shù)main中讀入str1,調(diào)用函數(shù)StrMid(str1,m,n,str2)后輸出str2的結(jié)果(m從0開始計數(shù))。如:輸入str1為goodmorning,m為1,n為3,調(diào)用函數(shù)StrMid(str1,m,n,str2)后str2為ood。#includevoid StrMid(char* str1,int m,int n,char* str2) int i=0,j=0;for(i=m;im+n;i+)*(str2+j)=*(str1+i);j+;*(str2+j

20、)=0;main()char a=goodmorning;char b10;int n,m;scanf(%d%d,&m,&n);StrMid(a,m,n,b);puts(a);puts(b);325編寫函數(shù)catStr(char str1,char str2)用于進行兩個字符串的連接,編寫函數(shù)lenStr(char str)用于統(tǒng)計一個字符串的長度,并在主函數(shù)中調(diào)用。要求:不允許使用strcat()和strlen()字符處理庫函數(shù),在主函數(shù)以直接初始化的方式輸入兩個字符串str1和str2。如輸入str1為howareyou,str2為me,調(diào)用catStr函數(shù)后str1為howareyoum

21、e,調(diào)用lenStr函數(shù)后輸出11。#include void catStr(char str1,char str2)int i=0,j;while(str1i!=0)i+;for(j=0;str2j!=0;j+) str1i+j=str2j;str1i+j=0;int lenStr(char str) int i=0;while(stri!=0)i+;return(i);main()char str1=howareyou,str2=me;int n;puts(str1);puts(str2);catStr(str1,str2); n=lenStr(str1);puts(str1);print

22、f(%dn,n);326編寫函數(shù)void fun(char *t,char a,char b),將字符串t中所有a代表的字符用b所代表的字符替換。要求:在主函數(shù)中初始化字符數(shù)組,并輸入字符a和b,輸出原字符數(shù)組及替換結(jié)果。例如:初始化字符數(shù)組str30=”This is a test of C language.”,輸入字符a=t,b=T則替換結(jié)果為”This is a TesT of C language.”。#includevoid fun(char *t,char a,char b)int i=0;for(i=0;*(t+i)!=0;i+)if(*(t+i)=a) *(t+i)=b; m

23、ain()char str20;char a,n;gets(str); scanf(%c %c,&a,&n);fun(str,a,n);puts(str);327編寫函數(shù)int fun(char *t,char a),統(tǒng)計字符串t中有多少個變量a代表的字符。要求:在主函數(shù)中初始化字符數(shù)組,并輸入字符a,輸出原字符數(shù)組及統(tǒng)計結(jié)果。例如:初始化字符數(shù)組str30=”This is a test of C language.”,輸入字符a=s,則統(tǒng)計結(jié)果為3。#includeint fun(char *t,char a)int i=0,ncount=0;for(i=0;*(t+i)!=0;i+) i

24、f(*(t+i)=a)ncount+;return(ncount);main()char str100;char c;int n;gets(str);scanf(%c,&c); n=fun(str,c);printf(%dn,n);328編寫函數(shù)void fun(int *p,int n)對于一個存放任意10個整數(shù)的一維數(shù)組,從第n(0=n=9)個數(shù)據(jù)依次向左移動一個位置。要求:在主函數(shù)中初始化數(shù)組,輸入n值,輸出原始數(shù)組和移動后的數(shù)組。例如:初始化數(shù)組為6 10 2 9 8 7 17 18 23 45,如果n=6移動后的數(shù)組為:10 2 9 8 7 7 17 18 23 45#includevoid fun(int *p,int n) int i;for(i=0;in-1;i+)*(p+i)=*(p+i+1);main()int a10=1,2,3,4,5,6,7,8,9,10;int n,i=0,j=0;for(i=0;i10;i+)printf(%d ,ai);printf(n);scanf(%d,&n

溫馨提示

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

最新文檔

評論

0/150

提交評論