三、編程題
1.輸入一個半徑值,分別計算圓周長、圓面積和球的體積。要求使用符號常量定義圓周率。#include int main(){ printf(“計算圓周長面積求面積n”);floatr,c,s,v;scanf(“%f”,&r);# define PI 3.14159265 c=2*PI*r;s=4*PI*r*r;v=4/3*PI*r*r*r;printf(“周長是%.2fn”,c);printf(“表面積是%.2fn”,s);printf(“體積是%.2fn”,v);return 0;} 2.假設(shè)今天是星期三,編程求20天之后是星期幾? #include int main(){ printf(“今天是星期三,20天后是星期幾?n”);int i;i=23%7;printf(“20天后是星期%dn”,i);return 0;} 3.從鍵盤輸入一個字符,然后將其按字符和整數(shù)這兩種形式輸出。#include int main(){ printf(“輸入一個字符n”);char i;scanf(“%c”,&i);printf(“整數(shù)形式是%dn”,i);printf(“字母形式是%cn”,i);return 0;} 4.輸入一個大寫英文字母,將它轉(zhuǎn)化為小寫輸出。#include int main(){ printf(“請輸入一個大寫英文字母n”);charch;scanf(“%c”,&ch);printf(“%cn”,ch+32);return 0;} 5.求一元二次方程ax^2+bx+c=0方程的兩個實(shí)根。a、b、c由鍵盤輸入。(默認(rèn)b*b-4*a*c>=0)#include #include int main(){ printf(“求兩個實(shí)數(shù)根n”);float x1,x2,a,b,c;scanf(“%f%f%f”,&a,&b,&c);x1=((-b)+sqrt(b*b-4*a*c))/2;x2=((-b)-sqrt(b*b-4*a*c))/2;printf(“%.2fn”,x1);printf(“%.2fn”,x2);return 0;} 6.輸入長方形的長和寬,編程求該長方形的周長和面積 #include int main(){ printf(“輸入長和寬n”);inta,b,c,s;scanf(“%d%d”,&a,&b);c=2*(a+b);s=a*b;printf(“周長是%dn”,c);printf(“面積是%dn”,s);return 0;} 7.要將“China”譯成密碼,譯碼規(guī)律是:用原來字母后面的第5個字母代替原來的字母。例如,字母“A”后面第5個字母是“F”,用“F”代替“A”。因此,“China”應(yīng)譯為“Hmnsf”。請編寫程序,用賦初值的方法使c1、c2、c3、c4、c5 5個變量的值分別為‘C’、‘h’、‘i’、‘n’、‘a(chǎn)’,經(jīng)過運(yùn)算,使c1、c2、c3、c4、c5分別變?yōu)椤瓾’、‘m’、‘n’、‘s’、‘f’并輸出。
#include int main(){ printf(“China到Hmnstn”);char a[5]={'C','h','i','n','a'};for(int i=0;i<=5;i++)a[i]=a[i]+5;for(int j=0;j<=5;j++)printf(“%c”,a[j]);printf(“n”);return 0;} 8.有人用溫度計測量出用華氏法表示的溫度,現(xiàn)輸入華氏溫度f,要求把它轉(zhuǎn)換為以攝氏法表示的溫度c并輸出。(c=5/9(f-32))#include int main(){ printf(“把華氏溫度轉(zhuǎn)換為攝氏溫度n”);printf(“請輸入華氏溫度:n”);floati,j;scanf(“%f”,&i);j=5*(i-32)/9;printf(“%.1fn”,j);return 0;} 9.編寫程序,輸入兩個實(shí)數(shù),按代數(shù)值由大到小的順序輸出這兩個實(shí)數(shù)。#include int main(){ printf(“將兩個實(shí)數(shù)從大到小排列n”);floati,j;scanf(“%f%f”,&i,&j);if(i>j)printf(“輸出%f %fn”,i,j);else printf(“輸出%f %fn”,j,i);return 0;} 10.編寫程序,從鍵盤輸入兩個整數(shù),輸出其中較小的數(shù)。#include int main(){ printf(“輸出較小的數(shù)n”);inti,j;scanf(“%d%d”,&i,&j);if(i int main(){ printf(“輸入一個不多于5位數(shù)的正整數(shù)n”);int i;scanf(“%d”,&i);if(i>0&&i<10)printf(“%d是一位數(shù)n”,i);if(i>=10&&i<100)printf(“%d是二位數(shù)n”,i);if(i>=100&&i<1000)printf(“%d是三位數(shù)n”,i);if(i>=1000&&i<10000)printf(“%d是四位數(shù)n”,i);return 0;} 12.編寫程序,不使用系統(tǒng)提供的數(shù)學(xué)函數(shù),編寫程序求一個實(shí)數(shù)的絕對值。#include int main(){ printf(“求一個實(shí)數(shù)的絕對值n”);int i;scanf(“%d”,&i);if(i>=0)printf(“絕對值是%dn”,i);if(i<0)printf(“絕對值是%dn”,-i);return 0;} 13.編寫程序,編寫程序?qū)崿F(xiàn)如下分段函數(shù)。當(dāng)x<-5時,f(x)=|x|+5;當(dāng)-5≤x≤5時,f(x)=x*x;當(dāng)x>5時,f(x)=6x-10。(x定義成實(shí)型數(shù)據(jù))#include int main(){ int i;scanf(“%d”,&i);if(i<-5)printf(“%dn”,-i+5);if(-5<=i&&i<=5)printf(“%dn”,i*i);else printf(“%dn”,6*i-10);return 0;} 14.編寫程序,輸入2015年的一個月份,輸出該月有多少天。(使用switch語句實(shí)現(xiàn))#include int main(){ printf(“輸入月份n”);intmonth,day;scanf(“%d”,&month);switch(month){ case 2: day=28;printf(“%dn”,day);break;case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31;printf(“%dn”,day);break;case 4: case 6: case 9: case 11: day=30;printf(“%dn”,day);break;} return 0;} 15.編寫程序,判斷某一年是否是閏年。#include int main(){ printf(“判斷某一年是否為閏年n”);int i;scanf(“%d”,&i);if(i%4==0)printf(“%d是閏年n”,i);if(i%4!=0)printf(“%d是平年n”,i);return 0;} 16.編寫程序,編寫程序,根據(jù)輸入的學(xué)生成績輸出相應(yīng)的等級。90分以上(包括90分)為A等,80~89分為B等,70~79分為C等,60~69分為D等,60分以下為E等。#include int main(){ printf(“求學(xué)生成績相應(yīng)的等級n”);int i;scanf(“%d”,&i);if(i>=90)printf(“%d是An”,i);else if(i<90&&i>=80)printf(“%d是Bn”,i);else if(i<80&&i>=70)printf(“%d是Cn”,i);else if(i<70&&i>=60)printf(“%d是Dn”,i);else printf(“%d是En”,i);return 0;} 17編寫程序,輸入一個百分制成績,若大于等于60,則輸出“恭喜!您的成績通過了!”,若小于60,則輸出“抱歉!您的成績未通過!”(要求成績只能是整數(shù))#include int main(){ printf(“請輸入您的成績n”);int i;scanf(“%d”,&i);if(i>=60)printf(“您通過了n”);else printf(“您沒通過n”);return 0;} 18.編寫程序,輸入3個整數(shù)x、y、z,輸出其中最小值。#include int main(){ printf(“輸出最小值n”);int x,y,z,min1,min;scanf(“%d%d%d”,&x,&y,&z);min1=x(s=(a+b+c)/2,三角形面積area=sqrt(s(s-a)(s-b)(s-c)))#include #include int main(){ printf(“判斷能否構(gòu)成三角形若能求面積n”);floata,b,c,d,s;scanf(“%f%f%f”,&a,&b,&c);d=(a+b+c)/2;if(a>=c+b||b>=a+c||c>=a+b)printf(“不能構(gòu)成三角形n”);else { s=sqrt(d*(d-a)*(d-b)*(d-c));printf(“面積是%.2fn”,s);} return 0;} 20.編寫程序,試編程判斷輸入的正整數(shù)是否既是5又是7的整倍數(shù)。若是,則輸出yes,否則輸出no。
#include int main(){ printf(“判斷一個正整數(shù)是否既是5又是7的倍數(shù)n”);int i;scanf(“%d”,&i);if(i%35==0)
printf(“yesn”);else
printf(“non”);return 0;} 21.編寫程序,編程實(shí)現(xiàn)以下功能:讀入兩個運(yùn)算數(shù)(data1和data2)及一個運(yùn)算符(op),計算表達(dá)式data1 op data2的值,其中op可為+,?,*,(/執(zhí)行除法運(yùn)算時假設(shè)data2不為0,用switch語句實(shí)現(xiàn))。#include int main(){ char op;float data1,data2;printf(“請輸入兩個數(shù)字n”);scanf(“%f%c%f”,&data1,&op,&data2);switch(op){ case'+':printf(“%f+%f=%.2fn”,data1,data2,data1+data2);break;case'-':printf(“%f-%f=%.2fn”,data1,data2,data1-data2);break;case'*':printf(“%f*%f=%.2fn”,data1,data2,data1*data2);break;case'/':printf(“%f/%f=%.2fn”,data1,data2,data1/data2);break;} return 0;} 22.編寫程序,編寫程序,輸入任意一個1~7之間的整數(shù),將他們轉(zhuǎn)換成對應(yīng)的表示星期幾的英文單詞。例如:1轉(zhuǎn)換成Monday,7轉(zhuǎn)換成Sunday。(使用switch語句實(shí)現(xiàn))#include int main(){ printf(“請輸入1至7之間任意整數(shù)n”);int i;scanf(“%d”,&i);switch(i){ case 1:printf(“Mondayn”);break;case 2:printf(“Tuesdayn”);break;case 3:printf(“Wednesdayn”);break;case 4:printf(“Thursdayn”);break;case 5:printf(“Fridayn”);break;case 6:printf(“Saturdayn”);break;case 7:printf(“Sundayn”);break;} return 0;} 23.輸出小寫字母的ascii碼對照表。#include int main(){ printf(“輸出小寫字母的ascii碼n”);charch;ch='a';for(int i=0;i<=25;i++)printf(“%c:%dt”,ch+i,ch+i);printf(“n”);return 0;} 24.輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其他字符的個數(shù)。#include main(){ int a=0,b=0,c=0,d=0,i=0;char s[10];printf(“請輸入一行不超過十個字的字符串:n”);gets(s);while(i<10){ if(s[i]>='0'&&s[i]<='9'){ a++;} else if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')){ b++;}
else if(s[i]==' '){ c++;}
else { d++;} i++;} printf(“數(shù)字的個數(shù)是%dn”,a);printf(“字母的個數(shù)是%dn”,b);printf(“空格的個數(shù)是%dn”,c);printf(“其他符號的個數(shù)是%dn”,d);return 0;} 25.輸出圖形
$
$$$
$$$$$
$$$$$$$ #include #include int main(){ for(int i=0;i<=3;i++){ for(int j=1;j<=7;j++){ if(j>=fabs(4-i)&&j<=fabs(4+i))printf(“$”);else printf(“ ”);} printf(“n”);} return 0;} 26.求s=1+(1+2)+(1+2+3)+? +(1+2+3+?+n),要求n從鍵盤輸入。#include main(){
int sum=0,n,i,a=1;printf(“計算1+(1+2)+(1+2+3)+??(1+2+3+n)=?n”);scanf(“%d”,&n);while(a<=n){ i=(1+a)*a/2;sum=sum+i;a++;} printf(“輸出sum=%dn”,sum);return 0;}
27.計算10!#include int main(){ int i=1,a=1;for(i=1;i<=10;i++)a=a*i;printf(“%dn”,a);return 0;} 28.輸出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個3位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如,153是一個水仙花數(shù),因?yàn)?53=1^3+5^3+3^3。#include int main(){ printf(“輸出所有的水下花數(shù)n”);for(int i=1;i<=9;i++){ for(int j=0;j<=9;j++){ for(int k=0;k<=9;k++){ if(100*i+10*j+k==i*i*i+j*j*j+k*k*k)printf(“%d%d%d ”,i,j,k);} } } printf(“n”);return 0;} 29.雞兔同籠,上數(shù)共有35個頭,下有94只腳,雞、兔各有幾只? #include int main(){ for(int x=0;x<=35;x++){ for(int y=0;y<=35;y++){ if((x+y==35)&&(2*x+4*y==94))printf(“雞有%d只,兔子有%d只n”,x,y);} } return 0;} 30.編程找10個數(shù)中的最大數(shù)以及該數(shù)在數(shù)組中的位置。#include int main(){ printf(“找10個數(shù)中最大數(shù)極其所在位置n”);int a[10],max;for(int i=0;i<=9;i++)scanf(“%d”,&a[i]);max=a[0];for(int j=1,int k=0;j<=9;j++){ if(max int main(){ printf(“找10個數(shù)中最小數(shù)極其所在位置n”);int a[10],min;for(int i=0;i<=9;i++)scanf(“%d”,&a[i]);min=a[0];for(int j=1,int k=0;j<=9;j++){ if(min>a[j]){ min=a[j];k=j+1;} } printf(“第%d位n”,k);printf(“最小是%dn”,min);return 0;} 32.編程將一個數(shù)組中的元素按逆序存放。#include int main(){ printf(“一個數(shù)組按照逆序存放n”);int a[10],b[10];for(int i=0;i<=9;i++)scanf(“%d”,&a[i]);for(int j=0;j<=9;j++){ b[j]=a[9-j];printf(“%d ”,b[j]);} printf(“n”);return 0;} 33.編程計算Fibonacci數(shù)列的前50項,并把結(jié)果存放在一個數(shù)組中。(Fibonacci數(shù)列前兩項的值是1。從第3項開始,其值為前兩項之和。)#include intmain(){ int a[50]={0,1};for(int i=2;i<50;i++){ a[i]=a[i-1]+a[i-2];} for(i=0;i<50;i++){ printf(“%ft”,a[i]);} printf(“n”);return 0;} 34.編寫程序,將兩個字符串連接起來(不使用strcat函數(shù))。#include int main(){ int i=0,j=0;printf(“將兩個字符串連接起來n”);char ch1[100],ch2[100];printf(“輸入第一個字符串:”);gets(ch1);printf(“輸入第二個字符串:”);gets(ch2);while(ch1[i]!='