欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      C語言譚浩強第四版例題

      時間:2019-05-11 23:51:11下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《C語言譚浩強第四版例題》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《C語言譚浩強第四版例題》。

      第一篇:C語言譚浩強第四版例題

      例1.1 要求在屏幕上輸入以下一行信息.This is a C program.編寫程序: #include

      // 這是編譯預(yù)?處理命令 int main()

      // 定義主函數(shù)

      {

      // 函數(shù)開始的標(biāo)志

      printf(“This is a C program.n”);

      // 輸出所指定的一行信息

      return 0;

      // 函數(shù)執(zhí)行完畢時返回函數(shù)值0 }

      例1.2 求兩個整數(shù)之和.編寫程序: #include

      // 這是編譯預(yù)處理命令

      int main()

      // 定義主函數(shù) {

      // 函數(shù)開始

      int a,b,sum;

      // 本行是程序的聲明部分,定義a、b、sum為整型變量

      a = 123;

      // 對變量a賦值

      b = 456;

      // 對變量b賦值

      sum = a + b;

      // 進(jìn)行a+b 的運算,并把結(jié)果存放在變量sum中

      printf(“sum is %dn”,sum);

      // 輸出結(jié)果

      return 0;

      // 使函數(shù)返回值為0 }

      // 函數(shù)結(jié)束

      例1.3 求兩個整數(shù)的較大者.編寫程序: #include int main()

      // 定義主函數(shù) {

      // 主函數(shù)體開始

      int max(int x,int y);

      // 對被調(diào)用函數(shù)max的聲明

      int a,b,c;

      // 定義變量a,b,c scanf(“%d,%d”,&a,&b);

      // 輸入變量a和b的值

      c = max(a,b);

      // 調(diào)用max函數(shù),將得到的值賦給c

      printf(“max=%dn”,c);

      // 輸出c的值

      return 0;

      // 返回函數(shù)值為0 }

      int max(int x,int y)

      //定義max函數(shù),函數(shù)值為整型, 形式參數(shù)x和y為整型

      { int z;

      // max函數(shù)中的聲明部分,定義本函數(shù)中用到的變量z為整型

      if(x > y)z = x;else z = y;return(z);

      //將z的值返回,通過max帶回到調(diào)用函數(shù)的位置 } 例2.1 求1×2×3×4×5 編寫程序: #include int main(){ int i,t;t=1;i=2;while(i<=5){

      t=t*i;

      i=i+1;} printf(“%dn”,t);return 0;} 例2.2 有50個學(xué)生,要求將成績在80分以上的學(xué)生的學(xué)號和成績輸出。編寫程序:

      例2.19 求 編寫程序: #include int main(){

      int sign=1;

      double deno=2.0,sum=1.0,term;

      // 定義deno,sum,term為雙精度變量

      while(deno<=100)

      {

      sign=-sign;

      term=sign/deno;

      sum=sum+term;

      deno=deno+1;

      }

      printf(“%fn”,sum);

      return 0;}

      例3.1 有人用溫度計測量出用華氏法表示的溫度(如 F,今要求把它轉(zhuǎn)換為以攝氏法表示的溫度(如 C)。

      編寫程序: #include int main(){

      float f,c;

      // 定義f和c為單精度浮點型變量

      f=64.;

      // 指定f的值

      c=(5.0/9)*(f-32);

      // 利用公式計算c的值

      printf(“f=%fnc=%fn”,f,c);

      // 輸出c的值

      return 0;} 例3.2

      計算存款利息。有1000元,想存一年。有三種方法可選:(1)活期,年利率為r1

      (2)一年期定期,年利率為r2(3)存兩次半年定期,年利率為r3

      請分別計算出一年后按三種方法所得到的本息和。編寫程序: #include int main(){

      float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;

      p1 = p0 *(1 + r1);

      p2 = p0 *(1 + r2);

      p3 = p0 *(1 + r3/2)*(1 + r3/2);

      printf(“p1=%fnp2=%fnp3=%fn”,p1,p2,p3);

      return 0;} 1?11111??????23499100例3.3 給定一個大寫字母,要求用小寫字母輸出。編寫程序: #include int main(){

      char c1,c2;

      c1='A';

      // 將字符'A'的ASCII代碼放到c1變量中

      c2=c1+32;

      // 得到字符'a'的ASCII代碼,放在c2變量中

      printf(“%cn”,c2);

      // 輸出c2的值,是一個字符

      printf(“%dn”,c2);

      // 輸出c2的值,是字符'a'的ASCII代碼

      return 0;}

      例3.10 改寫例3.3程序,使之可以適用于任何大寫字母.從鍵盤輸入一個大寫字母,在顯示屏上顯示對應(yīng)的小寫字母.編寫程序: #include int main(){

      char c1,c2;

      c1=getchar();

      // 從鍵盤讀入一個字符,賦給字符變量c1

      c2=c1+32;

      // 得到字符'a'的ASCII代碼,放在字符變量c2中

      putchar(c2);

      // 輸出c2的值,是一個字符

      putchar('n');

      return 0;}

      #include int main(){

      char c1,c2;

      c1=getchar();

      // 從鍵盤讀入一個大寫字符,賦給字符變量c1

      c2=c1+32;

      // 得到對應(yīng)的小寫字符的ASCII代碼,放在字符變量c2中 printf(“大寫字母:%cn小寫字母:%cn”,c1,c2);// 輸出c1,c2的值---大小寫字符

      return 0;}

      例3.4 給出三角形的三邊長,求三角形面積。編寫程序: #include #include int main(){

      double a,b,c,s,area;

      // 定義各變量,均為double型

      a=3.67;

      // 對邊長a賦值

      b=5.43;

      // 對邊長b賦值

      c=6.21;

      // 對邊長c賦值

      s=(a+b+c)/2;

      // 計算s

      area=sqrt(s*(s-a)*(s-b)*(s-c));

      // 計算area

      printf(“a=%ftb=%ft%fn”,a,b,c);

      // 輸出三邊a,b,c的值

      printf(“area=%fn”,area);

      // 輸出面積area的值

      return 0;}

      例3.5 求ax

      2? bx

      ? c

      ?

      0

      方程的根。a、b、c由鍵盤輸入

      設(shè)

      b ac

      >0 ? 4編寫程序: #include #include

      // 程序中要調(diào)用求平方根函數(shù)sqrt

      int main()

      {double a,b,c,disc,x1,x2,p,q;

      // disc是判別式sqrt(b*b-4ac)

      scanf(“%lf%lf%lf”,&a,&b,&c);

      // 輸入實型變量的值要用格式聲明“%f”

      disc=b*b-4*a*c;

      if(disc<0)printf(“This equation hav't real rootsn”);

      else

      { p=-b/(2.0*a);

      q=sqrt(disc)/(2.0*a);

      x1=p+q;x2=p-q;

      // 求出方程的兩個根

      printf(“x1=%7.2fnx2=%7.2fn”,x1,x2);

      // 輸出方程的兩個根

      }

      return 0;}

      例3.6 用%f輸出實數(shù),只能得到6位小數(shù).編寫程序: #include int main(){double a=1.0;printf(“%fn”,a/3);return 0;} 例 3.7 float型數(shù)據(jù)的有效位數(shù).編寫程序: #include int main(){double a;a=10000/3.0;printf(“%fn”,a);return 0;}

      例3.8 先后輸出BOY三個字符。編寫程序: #include int main(){

      char a='B',b='O',c='Y';

      putchar(a);

      putchar(b);

      putchar(c);

      putchar('n');

      return 0;}

      #include int main(){

      char a,b,c;

      a='B';b='O';c='Y';

      putchar(a);

      putchar(b);

      putchar(c);

      putchar('n');

      return 0;}

      // 定義3個字符變量,并初始化

      // 向顯示器輸出字符B

      // 向顯示器輸出字符O

      // 向顯示器輸出字符Y

      // 向顯示器輸出一個換行符

      // 定義3個字符變量

      // 給3個字符變量賦值

      // 向顯示器輸出字符B

      // 向顯示器輸出字符O

      // 向顯示器輸出字符Y

      // 向顯示器輸出一個換行符

      例3.9 從鍵盤輸入BOY三個字符,然后把它們輸出到屏幕。編寫程序: #include int main()

      { char a,b,c;

      // 定義字符變量a,b,c

      a=getchar();

      // 從鍵盤輸入一個字符,送給字符變量a

      b=getchar();

      // 從鍵盤輸入一個字符,送給字符變量b

      c=getchar();

      // 從鍵盤輸入一個字符,送給字符變量c

      putchar(a);

      // 將變量a的值輸出

      putchar(b);

      putchar(c);

      putchar('n');

      return 0;}

      #include int main()

      {

      putchar(getchar());

      putchar(getchar());

      putchar(getchar());

      putchar('n');

      return 0;}

      // 將變量a的值輸出

      // 將變量a的值輸出

      // 換行

      // 將接收到的字符輸出

      // 將接收到的字符輸出

      // 將接收到的字符輸出

      例4.1 在例3.5的基礎(chǔ)上對程序進(jìn)行改進(jìn)。題目要求是求?

      ?

      c

      方程的根。axbx? 02由鍵盤輸入a,b,c。假設(shè)a,b,c的值任意,并不保證

      b

      ?

      4ac

      ?

      0

      。需要在程序中進(jìn)行判別,如果

      b 2

      ac

      ?

      0

      ,就計算并輸出方程的兩個實根,? 4否則就輸出“方程無實根”的信息。

      編寫程序: #include #include

      // 程序中要調(diào)用求平方根函數(shù)sqrt

      int main()

      {double a,b,c,disc,x1,x2,p,q;

      // disc是判別式sqrt(b*b-4ac)

      scanf(“%lf%lf%lf”,&a,&b,&c);

      // 輸入雙精度浮點型變量的值要用格式聲明“%lf”

      disc=b*b-4*a*c;

      if(disc<0)printf(“This equation hav't real rootsn”);

      else

      { p=-b/(2.0*a);

      q=sqrt(disc)/(2.0*a);

      x1=p+q;x2=p-q;

      // 求出方程的兩個根

      printf(“real roots:nx1=%10.6fnx2=%10.6fn”,x1,x2);

      // 輸出方程的兩個根

      }

      return 0;}

      例4.2 輸入兩個實數(shù),按代數(shù)值由小到大的順序輸出這兩個數(shù)。編寫程序: #include int main(){

      float a,b,t;

      scanf(“%f,%f”,&a,&b);

      if(a>b)

      {

      t=a;

      a=b;

      b=t;

      }

      printf(“%5.2f,%5.2fn”,a,b);

      return 0;}

      例4.3 輸入3個數(shù)a,b,c,要求按由小到大的順序輸出。編寫程序: #include int main(){

      float a,b,c,t;

      scanf(“%f,%f,%f”,&a,&b,&c);

      if(a>b)

      {

      t=a;

      a=b;

      b=t;

      }

      // 實現(xiàn)a和b的互換

      if(a>c)

      {

      t=a;

      a=c;

      c=t;

      }

      // 實現(xiàn)a和c的互換

      if(b>c)

      {

      t=b;

      b=c;

      c=t;

      }

      // 實現(xiàn)b和c的互換

      printf(“%5.2f,%5.2f,%5.2fn”,a,b,c);

      return 0;}

      例4.4 輸入一個字符,判別它是否大寫字母,如果是,將它轉(zhuǎn)換成小寫字母;如果不是,不轉(zhuǎn)換。然后輸出最后得到的字符。編寫程序: #include int main(){

      char ch;

      scanf(“%c”,&ch);

      ch=(ch>='A' && ch<='Z')?(ch+32): ch;

      printf(“%cn”,ch);

      return 0;} 例4.5有一函數(shù): ??1(x?0)? y??0(x?0)?1(x?0)?

      編一程序,輸入一個x值,要求輸出相應(yīng)的y值。編寫程序: 程序1: #include int main(){

      int x,y;

      scanf(“%d”,&x);

      if(x<0)

      y=-1;

      else

      if(x==0)y=0;

      else y=1;

      printf(“x=%d,y=%dn”,x,y);

      return 0;} 程序2: #include int main(){

      int x,y;

      scanf(“%d”,&x);

      if(x>=0)

      if(x>0)y=1;

      else

      y=0;

      else

      y=-1;

      printf(“x=%d,y=%dn”,x,y);

      return 0;}

      例4.6 要求按照考試成績的等級輸出百分制分?jǐn)?shù)段,A等為85分以上,B等為70~84分,C等為60~69分,D等為 60分以下。成績的等級由鍵盤輸入。編寫程序: #include int main(){

      char grade;

      scanf(“%c”,&grade);

      printf(“Your score:”);

      switch(grade)

      { default: printf(“data error!n”);break;

      case 'A': printf(“85~100n”);break;

      case 'B': printf(“70~84n”);break;

      case 'C': printf(“60~69n”);break;

      case 'D': printf(“<60n”);break;

      }

      return 0;}

      例4.7 編寫程序,用switch語句處理菜單命令。

      在許多應(yīng)用程序中,用菜單對流程進(jìn)行控制,例如從鍵盤輸入一個’A’或’a’字符,就會執(zhí)行A操作,輸入一個’B’或’b’字符,就會執(zhí)行B操作,等等。

      編寫程序: #include int main(){

      void action1(int,int),action2(int,int);

      char ch;

      int a=15,b=23;

      ch=getchar();

      switch(ch)

      {

      case 'a':

      case 'A': action1(a,b);break;

      case 'b':

      case 'B': action2(a,b);break;

      default: putchar('a');

      }

      return 0;}

      void action1(int x,int y){

      printf(“x+y=%dn”,x+y);}

      void action2(int x,int y){

      printf(“x*y=%dn”,x*y);}

      例4.8 寫一程序,判斷某一年是否閏年。編寫程序: 程序1: 程序2: #include

      #include int main()

      int main(){

      {

      int year,leap;

      int year,leap;

      scanf(“%d”,&year);

      scanf(“%d”,&year);

      if(year%4==0)

      if(year%4!=0)

      {

      if(year%100==0)

      {

      if(year%400==0)

      leap=1;

      else

      leap=0;

      }

      else

      leap=1;

      }

      else

      leap=0;

      if(leap)

      printf(“%d is ”,year);

      else

      printf(“%d is not ”,year);

      printf(“a leap year.n”);

      return 0;

      }

      leap=0;

      else if(year%100!=0)

      leap=1;

      else if(year%400!=0)

      leap=0;else

      leap=1;if(leap)

      printf(“%d is ”,year);else

      printf(“%d is not ”,year);printf(“a leap year.n”);return 0;}

      #include

      程序3: int main(){

      int year,leap;

      printf(“enter year:”);

      scanf(“%d”,&year);

      if((year%4==0 && year%100!=0)||(year%400==0))

      leap=1;

      else

      leap=0;

      if(leap)

      printf(“%d is ”,year);

      else

      printf(“%d is not ”,year);

      printf(“a leap year.n”);

      return 0;}

      程序4: #include

      #include int main(){

      int year;

      bool leap;

      scanf(“%d”,&year);

      if(year%4==0)

      {

      if(year%100==0){

      if(year%400==0)

      leap=true;

      else

      leap=false;}

      else

      leap=true;

      }

      else

      leap=false;

      if(leap==true)

      printf(“%d is ”,year);

      else

      printf(“%d is not ”,year);

      printf(“a leap year.n”);

      return 0;

      } 例4.9 求 ax

      ?

      ?

      c ?

      0

      方程的解。bx編寫程序: #include #include int main(){

      double a,b,c,disc,x1,x2,realpart,imagpart;

      scanf(“%lf,%lf,%lf”,&a,&b,&c);

      printf(“The equation ”);

      if(fabs(a)<=1e-6)

      printf(“is not a quadraticn”);

      else

      {

      disc=b*b-4*a*c;

      if(fabs(disc)<=1e-6)

      printf(“has two equal roots:%8.4fn”,-b/(2*a));

      else

      if(disc>1e-6)

      {

      x1=(-b+sqrt(disc))/(2*a);

      x2=(-b-sqrt(disc))/(2*a);

      printf(“has distinct real roots:%8.4f and %8.4fn”,x1,x2);

      }

      else

      {

      realpart=-b/(2*a);

      imagpart=sqrt(-disc)/(2*a);

      printf(“ has complex roots:n”);

      printf(“%8.4f+%8.4fin”,realpart,imagpart);

      printf(“%8.4f-%8.4fin”,realpart,imagpart);

      }

      }

      return 0;}

      例4.10 運輸公司對用戶計算運輸費用。路程(s km)越遠(yuǎn),每噸·千米運費越低。編寫程序: #include int main(){

      int c,s;

      float p,w,d,f;

      printf(“please enter price,weight,discount:”);

      // 提示輸入的數(shù)據(jù)

      scanf(“%f,%f,%d”,&p,&w,&s);

      // 輸入單價、重量、距離

      if(s>=3000)c=12;

      else

      c=s/250;

      switch(c)

      {

      case 0:

      d=0;break;

      case 1:

      d=2;break;

      case 2:

      case 3:

      d=5;break;

      case 4:

      case 5:

      case 6:

      case 7:

      d=8;break;

      case 8:

      case 9:

      case 10:

      case 11: d=10;break;

      case 12: d=15;break;

      }

      f = p * w * s *(1-d / 100);

      printf(“freight=%10.2fn”,f);

      return 0;}

      // 3000km以上為同一折扣

      // 3000km以下各段折扣不同,c的值不相同

      // c=0,代表250km以下,折扣d=0

      // c=1,代表250到500km以下,折扣d=2% // c=2和3,代表500到1000km以下,折扣d=5% // c=4-7,代表1000到2000km以下,折扣d=8% // c=8-11,代表2000到3000km以下,折扣d=10% // c12,代表3000km以上,折扣d=15% // 計算總運費

      // 輸出總運費,取兩位小數(shù)

      例5.1求1+2+3+?+100,即 n?1編寫程序:

      #include int main(){

      int i=1,sum=0;

      // 定義變量i的初值為1,sum的初值為0

      while(i<=100)

      // 當(dāng)i>100,條件表達(dá)式i<=100的值為假,不執(zhí)行循環(huán)體

      {

      // 循環(huán)體開始

      sum=sum+i;

      // 第一次累加后,sum的值為1

      ?n100

      i++;

      }

      printf(“sum=%dn”,sum);

      return 0;}

      例5.2 用do…while語句求:編寫程序:

      #include int main(){ int i=1,sum=0;do

      {

      sum=sum+i;

      i++;}while(i<=100);printf(“%dn”,sum);return 0;}

      // 加完后,i的值加1,為下次累加作準(zhǔn)備

      // 循環(huán)體結(jié)束

      // 輸出1+2+3?+100的累加和 1001+2+3+…+100,即 ?nn?例5.3 while和do---while循環(huán)的比較。編寫程序:

      (1)用while循環(huán) #include int main(){ int i,sum=0;printf(“please enter i,i=?”);scanf(“%d”,&i);while(i<=10)

      {

      sum=sum+i;

      i++;};printf(“sum=%dn”,sum);return 0;}

      (2)用do?while循環(huán) #include int main(){ int i,sum=0;printf(“please enter i,i=?”);scanf(“%d”,&i);do

      {

      sum=sum+i;

      i++;}while(i<=10);printf(“sum=%dn”,sum);return 0;}

      例5.4 在全系1000學(xué)生中,征集慈善募捐,當(dāng)總數(shù)達(dá)到10萬元時就結(jié)束,統(tǒng)計此時捐款的人數(shù),以及平均每人捐款的數(shù)目。編寫程序:

      #include #define SUM 100000 int main(){

      float amount,aver,total;

      int i;

      for(i=1,total=0;i<=1000;i++)

      {

      printf(“please enter amount:”);

      scanf(“%f”,&amount);

      total= total+amount;

      if(total>=SUM)break;

      }

      aver=total/i;

      printf(“num=%dnaver=%10.2fn”,i,aver);

      return 0;}

      例5.5 要求輸出100~200之間的不能被3整除的數(shù)。編寫程序:

      #include int main(){int n;for(n=100;n<=200;n++)

      {if(n%3==0)

      continue;

      printf(“%d ”,n);

      } printf(“n”);return 0;}

      例5.6 輸出以下4*5的矩陣。編寫程序:

      #include int main(){

      int i,j,n=0;

      for(i=1;i<=4;i++)

      for(j=1;j<=5;j++,n++){ if(n%5==0)printf(“n”);

      //控制在輸出5個數(shù)據(jù)后換行

      printf(“%dt”,i*j);}

      printf(“n”);

      return 0;} #include int main(){

      int i,j,n=0;

      for(i=1;i<=4;i++)

      for(j=1;j<=5;j++,n++){ if(n%5==0)printf(“n”);

      //控制在輸出5個數(shù)據(jù)后換行

      if(i==3 && j==1)break;

      //遇到第3行第1列,終止內(nèi)循環(huán)

      printf(“%dt”,i*j);}

      printf(“n”);

      return 0;} #include int main(){

      int i,j,n=0;

      for(i=1;i<=4;i++)

      for(j=1;j<=5;j++,n++){ if(n%5==0)printf(“n”);

      //控制在輸出5個數(shù)據(jù)后換行

      if(i==3 && j==1)continue;

      //遇到第3行第1列,提前結(jié)束執(zhí)行本次內(nèi)循環(huán)體

      printf(“%dt”,i*j);}

      printf(“n”);

      return 0;} 111?1?????例5.7用

      47公式求 ?

      的近似值,直到發(fā)現(xiàn)某一項的絕對值小于510*6 為止(該項不累計加)。編寫程序:

      #include #include int main(){

      int sign=1;

      // sign用來表示數(shù)值的符號

      double pi=0.0,n=1.0,term=1.0;

      // pi代表π,n代表分母,term代表當(dāng)前項的值

      while(fabs(term)>=1e-8)

      // 檢查當(dāng)前項term的絕對值是否大于或等于10的(-6)次方

      {

      pi=pi+term;

      // 把當(dāng)前項term累加到pi中

      n=n+2;

      // n+2是下一項的分母

      sign=-sign;

      // sign代表符號,下一項的符號與上一項符號相反

      term=sign/n;

      // 求出下一項的值term

      }

      pi=pi*4;

      // 多項式的和pi乘以4,才是π的近似值

      printf(“pi=%10.8fn”,pi);

      // 輸出π的近似值

      }

      #include #include int main(){

      int sign=1;

      // sign用來表示數(shù)值的符號

      int t=0;

      // t 代表當(dāng)前執(zhí)行循環(huán)體的次數(shù)

      double pi=0.0,n=1.0,term=1.0;// pi代表π,n代表分母,term代表當(dāng)前項的值

      while(fabs(term)>=1e-6)

      // 檢查當(dāng)前項term的絕對值是否大于或等于10的(-6)次方

      {t=t+1;

      // 每進(jìn)入一次循環(huán)體,t的值加1

      pi=pi+term;

      // 把當(dāng)前項term累加到pi中

      n=n+2;

      // n+2是下一項的分母

      sign=-sign;

      // sign代表符號,下一項的符號與上一項符號相反

      term=sign/n;

      // 求出下一項的值term

      }

      pi=pi*4;

      // 多項式的和pi乘以4,才是π的近似值

      printf(“pi=%10.6fn”,pi);

      // 輸出π的近似值

      }

      ?例5.8 求費波那西(Fibonacci)數(shù)列的前40個數(shù)。這個數(shù)列有如下特點:第1、2兩個數(shù)為1、1。從第3個數(shù)開始,該數(shù)是其前面兩個數(shù)之和。即:(n?1)?F1?1?(n?2)?F2?1 ?F?F?F(n?3)n?1n?2?n

      編寫程序:

      #include int main(){

      int f1=1,f2=1,f3;

      int i;

      printf(“%12dn%12dn”,f1,f2);

      for(i=1;i<=38;i++)

      {

      f3=f1+f2;

      printf(“%12dn”,f3);

      f1=f2;

      f2=f3;} return 0;}

      #include int main(){

      int f1=1,f2=1;

      int i;

      for(i=1;i<=20;i++)

      {

      printf(“%12d %12d ”,f1,f2);

      if(i%2==0)printf(“n”);

      f1=f1+f2;

      f2=f2+f1;

      }

      return 0;}

      // 每個循環(huán)中輸出2個月的數(shù)據(jù),故循環(huán)20次即可 // 輸出己知的兩個月的兔子數(shù) // 計算出下一個月的兔子數(shù),并存放在f1中 // 計算出下兩個月的兔子數(shù),并存放在f2中

      例5.9輸入一個大于3的整數(shù)n,判定它是否素數(shù)(prime,又稱質(zhì)數(shù))。編寫程序:

      #include int main(){int n,i;

      printf(“please enter a integer number,n=?”);

      scanf(“%d”,&n);

      for(i=2;i<=n-1;i++)

      if(n%i==0)break;

      if(i

      else printf(“%d is a prime number.n”,n);

      return 0;} #include #include int main(){int n,i,k;

      printf(“please enter a integer number:n=?”);

      scanf(“%d”,&n);

      k=sqrt(n);

      for(i=2;i<=k;i++)

      if(n%i==0)break;

      if(i<=k)printf(“%d is not a prime number.n”,n);

      else printf(“%d is a prime number.n”,n);

      return 0;} 例5.10 求100~200間的全部素數(shù)。編寫程序:

      # include # include int main(){int n,k,i,m=0;

      for(n=101;n<=200;n=n+2)

      // n從100變化到200,對每個n進(jìn)行判定

      { k=sqrt(n);

      for(i=2;i<=k;i++)

      if(n%i==0)break;

      // 如果n被i整除,終止內(nèi)循環(huán),此時i

      if(i>=k+1)

      // 若j>=k+1,表示n未被整除

      {printf(“%d ”,n);

      // 應(yīng)確定n是素數(shù)

      m=m+1;

      // m用來控制換行,一行內(nèi)輸出10個錄素數(shù)

      }

      if(m%10==0)printf(“n”);

      // m累計到10的倍數(shù),換行

      }

      printf(“n”);

      return 0;

      } 例5.11 譯密碼。為使電文保密,往往按一定規(guī)律將其轉(zhuǎn)換成密碼,收報人再按約定的規(guī)律將其譯回原文。

      A B C D E F G …… W X Y Z

      編寫程序:

      #include int main(){char c;

      c=getchar();

      // 輸入一個字符給字符變量c

      while(c!='n')

      // 檢查c的值是否換行符'n'

      {if((c>='a' && c<='z')||(c>='A' && c<='Z'))

      // c如果是字母

      { if(c>='W' && c<='Z' || c>='w' && c<='z')c=c-22;

      // 如果是26個字母中最后4個字母之一

      else c=c+4;

      // 如果是前面22個字母之一,就使c加4,即變成其后第4個字母

      }

      printf(“%c”,c);

      // 輸出己改變的字符

      c=getchar();

      // 再輸入下一個字符給字符變量c

      }

      printf(“n”);

      return 0;}

      #include int main(){char c;

      while((c=getchar())!='n')

      // 輸入一個字符給字符變量c并檢查它c的值是否換行符

      {if((c>='A' && c<='Z')||(c>='a' && c<='z'))

      // c如果是字母

      { c=c+4;

      // 只要是字母,都先加4

      if(c>='Z' && c<='Z'+4 || c>'z')

      // 如果是26個字母中最后4個字母之一

      c=c-26;

      // c的值改變?yōu)?6個字母中最前面的4個字母中對應(yīng)的字母

      }

      printf(“%c”,c);

      // 輸出己改變的字符

      }

      printf(“n”);

      return 0;}

      例6.1 對10個數(shù)組元素依次賦值為0,1, 2,3,4,5,6,7,8,9,要求按逆序輸出。編寫程序:

      #include int main(){

      int i,a[10];

      for(i=0;i<=9;i++)

      a[i]=i;

      for(i=9;i>=0;i--)

      printf(“%d ”,a[i]);

      printf(“n”);

      return 0;}

      例6.2 用數(shù)組處理求Fibonacci數(shù)列問題 編寫程序:

      #include int main(){

      int i;

      int f[20]={1,1};

      for(i=2;i<20;i++)

      f[i]=f[i-2]+f[i-1];

      for(i=0;i<20;i++)

      {

      if(i%5==0)printf(“n”);

      printf(“%12d”,f[i]);

      }

      printf(“n”);

      return 0;}

      例6.3 有10個地區(qū)的面積,要求對它們按由小到大的順序排列。編寫程序:

      #include int main(){

      int a[10];

      int i,j,t;

      printf(“input 10 numbers :n”);

      for(i=0;i<10;i++)

      scanf(“%d”,&a[i]);

      printf(“n”);

      for(j=0;j<9;j++)

      for(i=0;i<9-j;i++)

      if(a[i]>a[i+1])

      {t=a[i];a[i]=a[i+1];a[i+1]=t;}

      printf(“the sorted numbers :n”);

      for(i=0;i<10;i++)

      printf(“%d ”,a[i]);

      printf(“n”);

      return 0;}

      // 進(jìn)行9次循環(huán),實現(xiàn)9趟比較// 在每一趟中進(jìn)行9-j次比較

      // 相鄰兩個數(shù)比較

      例6.4 將一個二維數(shù)組行和列的元素互換,存到另一個二維數(shù)組中。

      ?14??123?a????456?

      編寫程序:

      #include int main(){

      int a[2][3]={{1,2,3},{4,5,6}};

      int b[3][2],i,j;

      printf(“array a:n”);

      for(i=0;i<=1;i++)

      {

      for(j=0;j<=2;j++)

      {

      printf(“%5d”,a[i][j]);

      b[j][i]=a[i][j];

      }

      printf(“n”);

      }

      printf(“array b:n”);

      for(i=0;i<=2;i++)

      {

      for(j=0;j<=1;j++)

      printf(“%5d”,b[i][j]);

      printf(“n”);

      }

      return 0;}

      ?b??25????36??例6.5 有一個3×4的矩陣,要求編程序求出其中值最大的那個元素的值,以及其所在的行號和列號。編寫程序:

      #include int main(){int i,j,row=0,colum=0,max;

      int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};

      // 定義數(shù)組并賦初值

      max=a[0][0];

      // 先認(rèn)為a[0][0]最大

      for(i=0;i<=2;i++)

      for(j=0;j<=3;j++)

      if(a[i][j]>max)

      // 如果某元素大于max,就取代max的原值

      {max=a[i][j];

      row=i;

      // 記下此元素的行號

      colum=j;

      // 記下此元素的列號

      }

      printf(“max=%dnrow=%dncolum=%dn”,max,row,colum);

      return 0;}

      例6.6 輸出一個已知的字符串。編寫程序:

      #include int main(){char c[15]={'I',' ','a','m',' ','a',' ','s','t','u','d','e','n','t','.'};

      int i;

      for(i=0;i<15;i++)

      printf(“%c”,c[i]);

      printf(“n”);

      return 0;}

      例6.7 輸出一個菱形圖。編寫程序:

      #include int main(){char diamond[][5]={{' ',' ','*'},{' ','*',' ','*'},{'*',' ',' ',' ','*'},{' ','*',' ','*'},{' ',' ','*'}};

      int i,j;

      for(i=0;i<5;i++)

      {for(j=0;j<5;j++)

      printf(“%c”,diamond[i][j]);

      printf(“n”);

      }

      return 0;} 例6.8 輸入一行字符,統(tǒng)計其中有多少個單詞,單詞之間用空格分隔開。編寫程序:

      #include int main()

      {

      char string[81];

      int i,num=0,word=0;

      char c;

      gets(string);

      // 輸入一個字符串給字符數(shù)組string

      for(i=0;(c=string[i])!='