c言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1...

39
1 (要点のみ) Q1-1 コンパイラ型はプログラムの実行速度が速いが,インタプリタ型は実行速度が遅い.しかし,プログ ラムに対して改変を行うような場合には,コンパイラ型よりもインタプリタ型の方が手軽にできる. Q1-2 exe ファイルは 0 と 1 の機械語で書かれているファイルであり,その実行のためにはライブラリファ イルを要することもある. Q1-3 Java,Perl,PHP,JavaScript,Ruby 等. (要点のみ) Q2-1 C++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である. Q2-2 フリーソフトは基本的に無料で使用に制限がないソフトを言う.これに対し,シェアウェアは有料の ソフトであり,料金を支払わないと使用できない.しかし,初めは試用期間が設けられていたり,一 部の機能が制限されている状態等の条件付きで最初は料金を払わなくても使用できる場合が多い. Q3-1 1 #include<stdio.h> 2 main() 3 { 4 printf("機械語\n アセンブリ言語\n 高水準言語"); 5 } Q3-2 1 #include<stdio.h> 2 main() 3 { 4 printf("A\nB\tC\\D\?E\'F\""); 5 } Q3-3 1 #include<stdio.h> 2 main() 3 { 4 printf("A\n\tB\n\t\tC\n\t\t\tD\n\t\t\t\tE"); 5 } Q3-4 1 #include<stdio.h> 2 main() 3 { 4 printf("A\t\t\t\tB\n\tC\t\tD\n\t\tE\n"); 5 printf("\tF\t\tG\nH\t\t\t\tI"); 6 } 楽しく学べる C 言語 演習問題解答 第3章 第1章 第2章

Upload: others

Post on 12-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

1

(要点のみ)

Q1-1 コンパイラ型はプログラムの実行速度が速いが,インタプリタ型は実行速度が遅い.しかし,プログ

ラムに対して改変を行うような場合には,コンパイラ型よりもインタプリタ型の方が手軽にできる.

Q1-2 exe ファイルは 0 と 1 の機械語で書かれているファイルであり,その実行のためにはライブラリファ

イルを要することもある.

Q1-3 Java,Perl,PHP,JavaScript,Ruby等.

(要点のみ)

Q2-1 C++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

Q2-2 フリーソフトは基本的に無料で使用に制限がないソフトを言う.これに対し,シェアウェアは有料の

ソフトであり,料金を支払わないと使用できない.しかし,初めは試用期間が設けられていたり,一

部の機能が制限されている状態等の条件付きで最初は料金を払わなくても使用できる場合が多い.

Q3-1

1 #include<stdio.h>

2 main()

3 {

4 printf("機械語\nアセンブリ言語\n高水準言語");

5 }

Q3-2

1 #include<stdio.h>

2 main()

3 {

4 printf("A\nB\tC\\D\?E\'F\"");

5 }

Q3-3

1 #include<stdio.h>

2 main()

3 {

4 printf("A\n\tB\n\t\tC\n\t\t\tD\n\t\t\t\tE");

5 }

Q3-4

1 #include<stdio.h>

2 main()

3 {

4 printf("A\t\t\t\tB\n\tC\t\tD\n\t\tE\n");

5 printf("\tF\t\tG\nH\t\t\t\tI");

6 }

楽しく学べる C言語 演習問題解答

第3章

第1章

第2章

Page 2: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

2

Q4-1

1 #include<stdio.h>

2 main()

3 {

4 int a = 55,b = 65,c = 75;

5

6 printf("%d\t%d\t%d",a,b,c);

7 }

Q4-2

1 #include<stdio.h>

2 main()

3 {

4 int a = -10;

5

6

double b = 6.52;

char c = 'G';

7

8

printf("%d\t%.2f\t%c",a,b,c);

9 }

Q4-3

1 #include<stdio.h>

2 main()

3 {

4 int a = 100,b = 10000,c = 1000000;

5

6

printf("変数に代入されている値は%dと%dと%dです",a,b,c);

7 }

Q4-4

1 #include<stdio.h>

2 main()

3 {

4 int a = 75,b = 107;

5

6

printf("%cは%d番目で、%cは%d番目です",a,a,b,b);

7 }

Q4-5

1 #include<stdio.h>

2 main()

3 {

4 char a = '|';

5

6

printf("%cは%d番目です",a,a);

7 }

第4章

Page 3: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

3

Q4-6

1 #include<stdio.h>

2 main()

3 {

4 int a = 10;

5

6

double b = 3.5;

7 printf("変数に代入した値は%fと%dです",a,b);

8

9

/*変換指定子の誤りである。変数 aの変換指定子は%d

で変数 b の変換指定子は%fでなければならない*/

10 }

Q4-7

1 #include<stdio.h>

2 main()

3 {

4 double pi = 3.14159265358979323846264338327950288;

5

6

printf("πの値は%.30fです",pi);

7 }

Q5-1

1 #include<stdio.h>

2 main()

3 {

4

5

6

7

int teihen = 5;

int takasa = 3;

double menseki;

8 menseki = teihen * takasa / 2.0;

9 printf("底辺%d高さ%dの三角形の面積は%.1f です",teihen,takasa,menseki);

7 }

Q5-2

1 #include<stdio.h>

2 main()

3 {

4

5

6

7

int goukei;

double heikin;

goukei = 65 + 59 + 71 + 81 + 77;

8 heikin = goukei / 5.0;

9 printf("これらのデータの合計は%dで平均は%fです",goukei,heikin);

10 }

第5章

Page 4: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

4

Q5-3

1 #include<stdio.h>

2 main()

3 {

4

5

6

7

int kyori = 300;

double meter;

meter = kyori * 3600 / 3937.0;

8 printf("%dヤードは%fmです",kyori,meter);

9 }

Q5-4

1 #include<stdio.h>

2 main()

3 {

4

5

6

7

int hankei = 5;

double hyoumenseki,taiseki;

double pi = 3.141592;

8 hyoumenseki = 4 * pi * hankei * hankei;

9 taiseki = 4.0 / 3 * pi * hankei * hankei * hankei;

10 printf("半径%d の球の表面積は%fで体積は%f です",hankei,hyoumenseki,taiseki);

11 }

Q5-5

1 #include<stdio.h>

2 main()

3 {

4

5

6

7

double R;

R = 1 / (( 1.0 / 5 ) + ( 1.0 / 6 ) + ( 1.0 / 7 ) + ( 1.0 / 8 ));

printf("合成抵抗 Rは%fです",R);

8 }

Q5-6

1 #include<stdio.h>

2 #include<math.h>

3 main()

4

5

6

7

{

int yzahyou;

yzahyou = pow(3,4) - 2 * pow(3,2) - 2;

8

9 printf("x座標が 3の時の y座標の値は%dです",yzahyou);

10 }

Page 5: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

5

Q5-7

1 #include<stdio.h>

2 #include<math.h>

3 main()

4

5

6

7

{

double kyori;

kyori = sqrt(( 3 - 1 ) * ( 3 - 1 ) + ( 3 - 5 ) * ( 3 - 5 ));

8

9 printf("点 1,5と点 3,3の距離は%fです",kyori);

10 }

Q5-8

1 #include<stdio.h>

2 #include<math.h>

3 main()

4

5

6

7

{

int a = 5, b = 4, kakudo = 70;

double radian,menseki;

double pi = 3.1415926535;

8

9 radian = kakudo * pi / 180;

10 menseki = 1 / 2.0 * a * b * sin(radian);

11 printf("a=%d、b=%d で挟角が%d度の三角形の面積は%.10fです",a,b,kakudo,menseki);

12 }

Q5-9

1 #include<stdio.h>

2 #include<math.h>

3 main()

4

5

6

7

{

double sahen,uhen;

sahen = log10(5);

8 uhen = log(5) / log(10);

9

10

11

printf("等式の左辺は%fで、右辺は%fです",sahen,uhen);

}

Page 6: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

6

Q5-10

1 #include<stdio.h>

2 main()

3 {

4

5

6

7

int a = 10, b = 3;

int shou,amari;

shou = a / b;

8 amari = a - shou * b;

9 printf("%d÷%dの余りは%d です",a,b,amari);

10 }

Q6-1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#include<stdio.h>

main()

{

int joutei,katei,takasa;

double menseki;

printf("台形の面積を算出します\n 上底を入力して下さい");

scanf("%d",&joutei);

printf("下底を入力して下さい");

scanf("%d",&katei);

printf("高さを入力して下さい");

scanf("%d",&takasa);

menseki = ( joutei + katei ) * takasa / 2.0;

printf("上底%d、下底%d、高さ%dの台形の面積は%.1f です",joutei,katei,takasa,menseki);

}

Q6-2

1

2

3

4

5

6

7

8

9

10

11

12

#include<stdio.h>

main()

{

double kouti,menseki;

printf("何反の耕地面積ですか");

scanf("%lf",&kouti);

menseki = kouti * 300 * 3.30578;

printf("耕地面積は%fm^2です",menseki);

}

第6章

Page 7: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

7

Q6-3

1

2

3

4

5

6

7

8

9

10

11

12

#include<stdio.h>

main()

{

int x;

double y;

printf("7x+8y-13=0 の x座標を入力して下さい");

scanf("%d",&x);

y = ( 13 - 7 * x ) / 8.0;

printf("x座標が%dの y座標は%fです",x,y);

}

Q6-4

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#include<stdio.h>

main()

{

int data1,data2,data3;

double tyouwa;

printf("調和平均を算出します\n1つめのデータを入力して下さい");

scanf("%d",&data1);

printf("2つめのデータを入力して下さい");

scanf("%d",&data2);

printf("3つめのデータを入力して下さい");

scanf("%d",&data3);

tyouwa = 1 / ((( 1.0 / data1 ) + ( 1.0 / data2 ) + ( 1.0 / data3 )) / 3 );

printf("データ%d、%d、%dの調和平均は%fです",data1,data2,data3,tyouwa);

}

Q6-5

1

2

3

4

5

6

7

8

9

10

11

12

13

#include<stdio.h>

#include<math.h>

main()

{

int x;

double V;

printf("正八面体の体積を算出します\n1辺の長さを入力して下さい");

scanf("%d",&x);

V = 1.0 / 3 * sqrt(2) * pow(x,3);

printf("1辺が%d の正八面体の体積は%f",x,V);

}

Page 8: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

8

Q6-6

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

#include<stdio.h>

#include<math.h>

main()

{

int a,b,c;

double s,T;

printf("三角形の面積を算出します\n1つめの辺の長さを入力して下さい");

scanf("%d",&a);

printf("2つめの辺の長さを入力して下さい");

scanf("%d",&b);

printf("3つめの辺の長さを入力して下さい");

scanf("%d",&c);

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

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

printf("3辺の長さが%d,%d,%dの三角形の面積は%fです",a,b,c,T);

}

Q6-7

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#include<stdio.h>

#include<math.h>

main()

{

int a,b,theta;

double radian,x;

double pi = 3.141592;

printf("三角形の 1辺の長さを入力して下さい");

scanf("%d",&a);

printf("もう 1辺の長さを入力して下さい");

scanf("%d",&b);

printf("挟角の角度を入力して下さい");

scanf("%d",&theta);

radian = pi * theta / 180;

x = sqrt( a * a + b * b - 2 * a * b * cos(radian));

printf("辺 xの長さは%fです",x);

}

Page 9: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

9

Q6-8

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#include<stdio.h>

#include<math.h>

main()

{

int v0,theta,t;

double radian,x,y;

double pi = 3.141592,g = 9.80665;

printf("初速度 v0を入力して下さい");

scanf("%d",&v0);

printf("角度を入力して下さい");

scanf("%d",&theta);

printf("時間を入力して下さい");

scanf("%d",&t);

radian = pi * theta / 180;

x = v0 * cos(radian) * t;

y = v0 * sin(radian) * t - 1 / 2.0 * g * t * t;

printf("水平方向の位置 xは%f、垂直方向の位置 yは%fです",x,y);

}

Q6-9

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

#include<stdio.h>

#include<math.h>

main()

{

int data1,data2,data3;

double heikin,hensa1,hensa2,hensa3,bunsan,hyoujun;

printf("標準偏差を算出します\n1つめのデータを入力して下さい");

scanf("%d",&data1);

printf("2つめのデータを入力して下さい");

scanf("%d",&data2);

printf("3つめのデータを入力して下さい");

scanf("%d",&data3);

heikin = ( data1 + data2 + data3 ) / 3.0;

hensa1 = data1 - heikin;

hensa2 = data2 - heikin;

hensa3 = data3 - heikin;

bunsan = ( pow( hensa1, 2 ) + pow( hensa2, 2 ) + pow( hensa3, 2 )) / 3.0;

hyoujun = sqrt( bunsan );

printf("データ%d,%d,%dの標準偏差は%fです",data1,data2,data3,hyoujun);

}

Page 10: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

10

Q7-1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#include<stdio.h>

main()

{

int seisu;

printf("整数を入力して下さい");

scanf("%d",&seisu);

if ( seisu > 0 )

{

printf("正の数です");

}

else if ( seisu < 0 )

{

printf("負の数です");

}

else

{

printf("ゼロです");

}

}

Q7-2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

#include<stdio.h>

main()

{

int seisu,amari;

printf("整数を入力して下さい");

scanf("%d",&seisu);

amari = seisu % 2;

if ( seisu == 0 )

{

printf("ゼロです");

}

else if ( amari == 0 )

{

printf("偶数です");

}

else

{

printf("奇数です");

}

}

第7章

Page 11: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

11

Q7-3

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

#include<stdio.h>

main()

{

int a,b,c,D;

printf("2 次方程式の解の判別をします\n係数 aを入力して下さい");

scanf("%d",&a);

printf("係数 bを入力して下さい");

scanf("%d",&b);

printf("係数 cを入力して下さい");

scanf("%d",&c);

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

if ( D > 0 )

{

printf("異なる 2つの実数解を持ちます");

}

else if ( D == 0 )

{

printf("重解を持ちます");

}

else

{

printf("実数解を持ちません");

}

}

Q7-4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

#include<stdio.h>

main()

{

int x,y,sa;

printf("1 つめの数字を入力して下さい");

scanf("%d",&x);

printf("2 つめの数字を入力して下さい");

scanf("%d",&y);

if ( x > y )

{

sa = x - y;

printf("差は%dです",sa);

}

else if ( y > x )

{

sa = y - x;

printf("差は%dです",sa);

}

else

{

printf("同じ数です");

}

}

Page 12: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

12

Q7-5

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

#include<stdio.h>

main()

{

int kakaku,kosuu,goukei;

printf("商品の価格を入力して下さい");

scanf("%d",&kakaku);

printf("購入個数を入力して下さい");

scanf("%d",&kosuu);

goukei = kakaku * kosuu;

if ( kosuu < 10 )

{

printf("合計金額は%d円です",goukei);

}

else if ( kosuu < 20 )

{

goukei = goukei * 0.9;

printf("合計金額は%d円です",goukei);

}

else if ( kosuu < 30 )

{

goukei = goukei * 0.8;

printf("合計金額は%d円です",goukei);

}

else if ( kosuu < 40 )

{

goukei = goukei * 0.7;

printf("合計金額は%d円です",goukei);

}

else if ( kosuu < 50 )

{

goukei = goukei * 0.6;

printf("合計金額は%d円です",goukei);

}

else

{

goukei = goukei * 0.5;

printf("合計金額は%d円です",goukei);

}

}

Page 13: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

13

Q7-6

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

#include<stdio.h>

main()

{

int x,y,z;

printf("1 つめの整数を入力して下さい");

scanf("%d",&x);

printf("2 つめの整数を入力して下さい");

scanf("%d",&y);

printf("3 つめの整数を入力して下さい");

scanf("%d",&z);

if ( x >= y && z >= y )

{

printf("最も小さい数字は%dです",y);

}

else if ( x >= y && y >= z )

{

printf("最も小さい数字は%dです",z);

}

else

{

printf("最も小さい数字は%dです",x);

}

}

Q7-7

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#include<stdio.h>

main()

{

int jikan;

printf("現在の時間を入力して下さい");

scanf("%d",&jikan);

if ( jikan <= 5 || jikan >= 18 )

{

printf("こんばんは");

}

else if ( jikan <= 11 )

{

printf("おはようございます");

}

else

{

printf("こんにちは");

}

}

Page 14: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

14

Q7-8

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

#include<stdio.h>

#include<math.h>

main()

{

int a,b,c,D;

double kai1,kai2;

printf("係数 aを入力して下さい");

scanf("%d",&a);

printf("係数 bを入力して下さい");

scanf("%d",&b);

printf("係数 cを入力して下さい");

scanf("%d",&c);

if ( a == 0 && b == 0 )

{

printf("解はありません");

}

else if ( a == 0 )

{

kai1 = (double)-c / b;

printf("解は%fです",kai1);

}

else

{

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

if ( D < 0 )

{

printf("実数解を持ちません");

}

else if ( D >= 0 )

{

kai1 = ( -b + sqrt(D)) / ( 2 * a );

kai2 = ( -b - sqrt(D)) / ( 2 * a );

if ( D == 0 )

{

printf("解は重解で%fです",kai1);

}

else

{

printf("解は%fと%fです",kai1,kai2);

}

}

}

}

Page 15: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

15

Q7-9

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

#include<stdio.h>

main()

{

int seisuu,keta3,keta2,keta1,stock,flag1,flag2,flag3;

printf("3 桁の整数を入力して下さい");

scanf("%d",&seisuu);

keta3 = seisuu / 100;

keta2 = ( seisuu - keta3 * 100 ) / 10;

keta1 = seisuu - keta3 * 100 - keta2 * 10;

if ( keta3 < keta2 )

{

if ( keta2 < keta1 )

{

stock = keta3 * 100 + keta2 * 10 + keta1;

}

else

{

stock = keta3 * 100 + keta1 * 10 + keta2;

}

}

else if ( keta1 < keta2 )

{

if ( keta2 < keta3 )

{

stock = keta1 * 100 + keta2 * 10 + keta3;

}

else

{

stock = keta1 * 100 + keta3 * 10 + keta2;

}

}

else

{

if ( keta1 < keta3 )

{

stock = keta2 * 100 + keta1 * 10 + keta3;

}

else

{

stock = keta2 * 100 + keta3 * 10 + keta1;

}

}

printf("並べ替えられた整数は%dです",stock);

}

Page 16: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

16

Q8-1

1

2

3

4

5

6

7

8

9

10

11

12

13

#include<stdio.h>

main()

{

int tyotiku = 25000;

int wa = 0;

int count;

for ( count = 0; wa < 1000000; count++ )

{

wa = wa + tyotiku;

}

printf("%d ヶ月目に%d 円貯蓄できます",count,wa);

}

Q8-2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#include<stdio.h>

main()

{

int ippankou = 2;

int wa = 0;

int count;

for ( count = 1; count <= 50; count++ )

{

printf("%d\t",ippankou);

wa = wa + ippankou;

ippankou = ippankou + 4;

}

printf("この数列の和は%dです",wa);

}

Q8-3

1

2

3

4

5

6

7

8

9

10

11

12

13

#include<stdio.h>

main()

{

double ippankou = 0.0, wa = 0.0;

while ( wa < 250 )

{

ippankou = ippankou + 0.2;

wa = wa + ippankou;

}

printf("この数列の和が 250以上になる時の一般項は%.1fです",ippankou);

}

第8章

Page 17: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

17

Q8-4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

#include<stdio.h>

main()

{

int ippankou = 501;

int wa = 0;

int zouka = 1;

while ( wa >= 0 )

{

ippankou = ippankou - zouka;

wa = wa + ippankou;

zouka++;

}

printf("この数列の和が負になる時の一般項は%dです",ippankou);

}

Q8-5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

#include<stdio.h>

main()

{

int x,y,count;

int bekijou = 1;

printf("x の y乗を算出します\nxを入力して下さい");

scanf("%d",&x);

printf("y を入力して下さい");

scanf("%d",&y);

for ( count = 1; count <= y; count++ )

{

bekijou = bekijou * x;

}

printf("x の y乗は%dです",bekijou);

}

Q8-6

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

#include<stdio.h>

main()

{

int a0,d,nankou,count;

printf("初項を入力して下さい");

scanf("%d",&a0);

printf("公差を入力して下さい");

scanf("%d",&d);

printf("第何項まで表示しますか");

scanf("%d",&nankou);

for ( count = 1; count <= nankou; count++ )

{

printf("%d\t",a0);

a0 = a0 + d;

}

}

Page 18: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

18

Q8-7

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

#include<stdio.h>

main()

{

int ippankou = 1, wa = 0, zouka = 2;

int count;

for ( count = 1; count <= 50; count++ )

{

printf("%d\t",ippankou);

wa = wa + ippankou;

ippankou = ippankou + zouka;

zouka = zouka + 2;

}

printf("この数列の和は%dです",wa);

}

Q8-8

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

#include<stdio.h>

main()

{

int ippankou = 2, wa = 0, tousa = 2, hugou = -1;

int count;

for ( count = 1; count <= 50; count++ )

{

printf("%d\t",ippankou);

wa = wa + ippankou;

tousa = tousa + 3;

ippankou = tousa * hugou;

hugou = hugou * -1;

}

printf("この数列の和は%dです",wa);

}

Q8-9

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

#include<stdio.h>

main()

{

int shokou = 0, daini = 1;

int daisan,count;

printf("%d\t%d\t",shokou,daini);

for ( count = 3; count <= 30; count++ )

{

daisan = shokou + daini;

printf("%d\t",daisan);

shokou = daini;

daini = daisan;

}

}

Page 19: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

19

Q8-10

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#include<stdio.h>

main()

{

int bunbo = 1, hugou = 1;

double wa = 0.0;

int count;

double ippankou,pi;

for ( count = 1; count <= 1000; count++ )

{

ippankou = 1.0 / bunbo * hugou;

wa = wa + ippankou;

pi = 4 * wa;

printf("%f\t",pi);

bunbo = bunbo + 2;

hugou = hugou * -1;

}

}

Q8-11

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#include<stdio.h>

main()

{

int count1,count2;

for ( count1 = 1; count1 <= 5; count1++ )

{

for ( count2 = 1; count2 <= count1; count2++ )

{

printf("+");

}

printf("\n");

}

}

Page 20: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

20

Q8-12

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

#include<stdio.h>

main()

{

int count1,count2,count3;

for ( count1 = 1; count1 <= 10; count1++ )

{

if ( count1 <= 5 )

{

count3 = count1;

}

else

{

count3 = 10 - count1;

}

for ( count2 = 1; count2 <= count3; count2++ )

{

printf("+");

}

printf("\n");

}

}

Q8-13

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

#include<stdio.h>

main()

{

int kingaku,gojuu,juu,go,iti;

int kumiawase = 0;

printf("50 円\t10円\t5円\t1円\n");

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

{

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

{

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

{

for ( iti = 0; iti <= 50; iti++ )

{

kingaku = 50 - ( 50 * gojuu + 10 * juu + 5 * go + 1 * iti );

if ( kingaku == 0 )

{

printf("%d\t%d\t%d\t%d\n",gojuu,juu,go,iti);

iti = 51;

kumiawase++;

}

}

}

}

}

printf("組み合わせの数は%dです",kumiawase);

}

Page 21: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

21

Q9-1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#include<stdio.h>

main()

{

int suuretu[30];

int goukei = 0;

int count;

for (count = 0; count <= 29; count++)

{

suuretu[count] = 2 * (count + 1);

goukei = goukei + suuretu[count];

}

printf("この数列の和は%dです",goukei);

}

Q9-2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#include<stdio.h>

main()

{

int dataA[10] = {30,45,62,25,18,51,15,73,49,68};

int dataB[10] = {56,68,75,86,35,55,24,11,73,80};

int kotae,count;

printf("加算の結果は\n");

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

{

kotae = dataA[count] + dataB[count];

printf("%d\t",kotae);

}

}

Q9-3

1

2

3

4

5

6

7

8

9

10

11

12

13

#include<stdio.h>

main()

{

int data[15] = {31,52,47,33,86,74,85,66,59,82,74,58,69,81,67};

int kotae,count;

printf("減算の結果は\n");

for ( count = 0; count <= 12; count++ )

{

kotae = data[count] - data[count+2];

printf("%d\t",kotae);

}

}

第9章

Page 22: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

22

Q9-4

1

2

3

4

5

6

7

8

9

10

11

12

13

#include<stdio.h>

main()

{

int data[15] = {31,52,47,33,86,74,85,66,59,82,74,58,69,81,67};

int kotae,count;

printf("加算の結果は\n");

for ( count = 0; count <= 6; count++ )

{

kotae = data[count] + data[14-count];

printf("%d\t",kotae);

}

}

Q9-5

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

#include<stdio.h>

main()

{

int data[20] = {31,52,47,33,86,74,85,66,59,82,74,58,69,81,67,86,97,57,13,30};

int count1,count2,stock;

for ( count1 = 0; count1 <= 19; count1++ )

{

printf("%d\t",data[count1]);

}

printf("\nを降順で並べ替えると\n");

for ( count1 = 0; count1 <= 18; count1++ )

{

for ( count2 = count1 + 1; count2 <= 19; count2++ )

{

if ( data[count1] < data[count2] )

{

stock = data[count2];

data[count2] = data[count1];

data[count1] = stock;

}

}

}

for ( count1 = 0; count1 <= 19; count1++ )

{

printf("%d\t",data[count1]);

}

}

Page 23: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

23

Q9-6

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

#include<stdio.h>

main()

{

int data[5];

int count,stock;

printf("5 つのデータを入力して下さい\n");

for ( count = 1; count <= 5; count++ )

{

printf("%d つめ",count);

scanf("%d",&data[count-1]);

}

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

{

if ( data[0] > data[count] )

{

data[0] = data[count];

}

}

printf("最小値は%dです",data[0]);

}

Q9-7

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

#include<stdio.h>

main()

{

int data[20] = {31,52,47,33,86,74,85,66,59,82,74,58,69,81,67,86,97,57,13,30};

int x,y,count;

int flag = 0;

printf("いくら以上ですか");

scanf("%d",&x);

printf("いくら以下ですか");

scanf("%d",&y);

for ( count = 0; count <= 19; count++ )

{

if ( data[count] >= x && data[count] <= y )

{

printf("%d\t",data[count]);

flag = 1;

}

if ( count == 19 && flag == 0 )

{

printf("該当データはありません");

}

}

}

Page 24: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

24

Q9-8

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

#include<stdio.h>

main()

{

int suretu[20] = {27,16,9,12,21,6,13,14,30,5,18,24,29,2,11,19,8,15,4,30};

int count1,count2,count3,stock;

for ( count1 = 1; count1 <= 19; count1++ )

{

stock = suretu[count1];

for ( count2 = 0; count2 < count1; count2++ )

{

if ( suretu[count1] < suretu[count2] )

{

for ( count3 = count1 - 1; count3 >= count2; count3-- )

{

suretu[count3 + 1] = suretu[count3];

}

suretu[count2] = stock;

break;

}

}

}

for ( count1 = 0; count1 <= 19; count1++ )

{

printf("%d\t",suretu[count1]);

}

}

Q9-9

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include<stdio.h>

main()

{

int maisu[9] = {10000,5000,1000,500,100,50,10,5,1};

int kingaku,count1,count2;

printf("5 桁の金額を入力して下さい");

scanf("%d",&kingaku);

for ( count1 = 0; count1 <= 8; count1++ )

{

for ( count2 = 0; kingaku >= maisu[count1]; count2++ )

{

kingaku = kingaku - maisu[count1];

}

printf("%d 円は%d枚\n",maisu[count1],count2);

}

}

Page 25: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

25

Q10-1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#include<stdio.h>

main()

{

int a[3][2] = {{2,5},{1,8},{7,2}};

int b[3][2] = {{1,10},{9,3},{7,5}};

int kotae[3][2],kai,heya;

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

{

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

{

kotae[kai][heya] = a[kai][heya] + b[kai][heya];

printf("%d\t",kotae[kai][heya]);

}

printf("\n");

}

}

Q10-2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include<stdio.h>

main()

{

double a[3][3] = {{2.4,5.1,2.1},{1.9,3.3,1.7},{3.0,2.4,1.8}};

double b[3][3] = {{1.8,2.4,4.1},{5.4,3.8,2.8},{1.1,2.2,1.5}};

double kotae[3][3];

int kai,heya;

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

{

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

{

kotae[kai][heya] = a[kai][heya] - b[kai][heya];

printf("%.1f\t",kotae[kai][heya]);

}

printf("\n");

}

}

第10章

Page 26: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

26

Q10-3

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

#include<stdio.h>

main()

{

int a[4][4],b[4][4],kotae[4][4];

int kai,heya;

int m = 1,n = 50;

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

{

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

{

a[kai][heya] = m;

b[kai][heya] = n;

kotae[kai][heya] = a[kai][heya] + b[kai][heya];

printf("%d\t",kotae[kai][heya]);

m = m + 2;

n++;

}

printf("\n");

m = m + 2;

n = n + 10;

}

}

Q10-4

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

#include<stdio.h>

main()

{

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

int kai,heya;

printf("行列\n");

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

{

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

{

printf("%d\t",gyoretu[kai][heya]);

}

printf("\n");

}

printf("を並び替えると\n");

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

{

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

{

printf("%d\t",gyoretu[heya][kai]);

}

printf("\n");

}

}

Page 27: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

27

Q10-5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

#include<stdio.h>

main()

{

int a[4][4], b[4][4], kotae[4][4];

int m = 1, n = 50, kisoku = 1, tyousei = 1;

int kai,heya;

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

{

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

{

a[kai][heya] = m;

b[kai][heya] = n;

kotae[kai][heya] = a[kai][heya] + b[kai][heya];

printf("%d\t",kotae[kai][heya]);

m = m + kisoku;

n = n - kisoku;

}

m = m - ( tyousei * kisoku );

n = n + ( tyousei * kisoku );

kisoku++;

tyousei++;

m = m + 10;

n = n + 10;

printf("\n");

}

}

Q10-6

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

#include<stdio.h>

main()

{

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

int kai,heya;

printf("行列\n");

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

{

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

{

printf("%d\t",gyoretu[kai][heya]);

}

printf("\n");

}

printf("を並び替えると\n");

for ( kai = 2; kai >= 0; kai-- )

{

for ( heya = 2; heya >= 0; heya-- )

{

printf("%d\t",gyoretu[heya][kai]);

}

printf("\n");

}

}

Page 28: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

28

Q10-7

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

#include<stdio.h>

main()

{

double data[4][6] = {

{44.0,43.8,44.8,42.8,43.9,0},

{37.5,39.2,38.3,37.7,37.9,0},

{41.3,42.1,41.6,41.8,40.9,0},

{0,0,0,0,0,0}

};

int kai,heya;

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

{

for ( heya = 0; heya <= 4; heya++ )

{

data[kai][5] = data[kai][5] + data[kai][heya];

}

}

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

{

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

{

data[3][heya] = data[3][heya] + data[kai][heya];

}

}

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

{

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

{

printf("%.1f\t",data[kai][heya]);

}

printf("\n");

}

}

Page 29: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

29

Q10-8

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

#include<stdio.h>

main()

{

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

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

int kotae[4][4];

int kai,heya,seki;

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

{

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

{

kotae[kai][heya] = 0;

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

{

kotae[kai][heya] = kotae[kai][heya] + a[kai][seki] * b[seki][heya];

}

printf("%d\t",kotae[kai][heya]);

}

printf("\n");

}

}

Page 30: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

30

Q10-9

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

#include<stdio.h>

#include<math.h>

main()

{

int zahyou[8][3] = {{1,3,2},{2,5,3},{3,4,3},{5,2,4},{2,3,3},{3,4,2},{4,4,1},{5,1,2}};

double kyori = 0.0;

double saidai = 0.0;

int kai,heya,stock;

for ( kai = 0; kai <= 7; kai++ )

{

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

{

kyori = kyori + zahyou[kai][heya] * zahyou[kai][heya];

}

kyori = sqrt(kyori);

if ( saidai < kyori )

{

saidai = kyori;

stock = kai;

}

kyori = 0.0;

}

printf("原点から最も離れた点は%d,%d,%d",zahyou[stock][0],zahyou[stock][1],zahyou[stock][2]);

printf("で距離は%fです",saidai);

}

Page 31: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

31

Q10-10

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

#include<stdio.h>

#include<math.h>

main()

{

int zahyou[8][3] = {{1,3,2},{2,5,3},{3,4,3},{5,2,4},{2,3,3},{3,4,2},{4,4,1},{5,1,2}};

double kyori = 0.0;

double saidai = 0.0;

int count1,count2,heya,stock1,stock2;

for ( count1 = 0; count1 <= 6; count1++ )

{

for ( count2 = count1 + 1; count2 <= 7; count2++ )

{

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

{

kyori = kyori + pow(zahyou[count1][heya] - zahyou[count2][heya],2);

}

kyori = sqrt(kyori);

if ( saidai < kyori )

{

saidai = kyori;

stock1 = count1;

stock2 = count2;

}

kyori = 0.0;

}

}

printf("最も離れた 2点は%d,%d,%d",zahyou[stock1][0],zahyou[stock1][1],zahyou[stock1][2]);

printf("と%d,%d,%d",zahyou[stock2][0],zahyou[stock2][1],zahyou[stock2][2]);

printf("で距離は%fです",saidai);

}

Page 32: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

32

Q11-1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

#include<stdio.h>

double daikei(int a, int b, int c)

{

double d;

d = ( a + b ) * c / 2.0;

return d;

}

int main(void)

{

int joutei,katei,takasa;

double menseki;

printf("台形の面積を算出します\n上底を入力して下さい");

scanf("%d",&joutei);

printf("下底を入力して下さい");

scanf("%d",&katei);

printf("高さを入力して下さい");

scanf("%d",&takasa);

menseki = daikei( joutei, katei, takasa );

printf("上底%d下底%d 高さ%dの台形の面積は%.1fです",joutei,katei,takasa,menseki);

return 0;

}

第11章

Page 33: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

33

Q11-2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

#include<stdio.h>

#define PI 3.1415926535

double taiseki(int r)

{

double V;

V = 4.0 / 3 * PI * r * r * r;

return V;

}

double hyoumenseki(int r)

{

double S;

S = 4 * PI * r * r;

return S;

}

int main(void)

{

int hankei;

double X,Y;

printf("球の体積と表面積を算出します\n半径を入力して下さい");

scanf("%d",&hankei);

X = taiseki(hankei);

Y = hyoumenseki(hankei);

printf("半径%dの球の体積は%.10fで表面積は%.10f です",hankei,X,Y);

return 0;

}

Page 34: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

34

Q11-3

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

#include<stdio.h>

#include<math.h>

#define PI 3.1415926535

double seigen(int kakudo)

{

double radian,kekka;

radian = ( kakudo * PI ) / 180;

kekka = sin(radian);

return kekka;

}

int main(void)

{

int count;

double kotae;

for ( count = 0; count <= 90; count++ )

{

kotae = seigen(count);

printf("%d 度の時の正弦値は%.10fです\n",count,kotae);

}

return 0;

}

Page 35: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

35

Q11-4

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

#include<stdio.h>

int merusennu(int x)

{

int count;

int kekka = 1;

for(count = 1; count <= x; count++ )

{

kekka = kekka * 2;

}

kekka = kekka - 1;

return kekka;

}

int main(void)

{

int count,kotae;

printf("メルセンヌ数を算出します\n");

for ( count = 1; count <= 31; count++ )

{

kotae = merusennu(count);

printf("%d\t",kotae);

}

return 0;

}

Page 36: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

36

Q11-5

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

#include<stdio.h>

int merusennu(int x)

{

int count;

int kekka = 1;

for(count = 1; count <= x; count++ )

{

kekka = kekka * 2;

}

return kekka;

}

int main(void)

{

int count1,count2,kotae;

printf("フェルマー数を算出します\n");

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

{

for ( count2 = 1; count2 <= count1; count2++ )

{

kotae = merusennu(count2);

}

kotae = merusennu(kotae);

kotae = kotae + 1;

printf("%d\t",kotae);

}

return 0;

}

Page 37: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

37

Q11-6

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

#include<stdio.h>

double bunsu(double x)

{

double kekka;

kekka = 2 + 1.0 / x;

return kekka;

}

int main(void)

{

int count,nanjuu;

double kotae = 1.0;

printf("何重の分数を算出しますか");

scanf("%d",&nanjuu);

for ( count = 1; count <= nanjuu; count++ )

{

kotae = bunsu(kotae);

}

kotae--;

printf("連分数の答えは%.10fです",kotae);

return 0;

}

Page 38: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

38

Q11-7

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

#include<stdio.h>

double bunsu(double kekka,int a)

{

if ( a >= 1 )

{

kekka = 2 + 1.0 / kekka;

a--;

kekka = bunsu(kekka,a);

return kekka;

}

else

{

return kekka;

}

}

int main(void)

{

int count,nanjuu;

double kotae = 1.0;

printf("何重の分数を算出しますか");

scanf("%d",&nanjuu);

kotae = bunsu(kotae,nanjuu);

kotae--;

printf("連分数の答えは%.10fです",kotae);

return 0;

}

Page 39: C言語 演習問題解答 - kyoritsu-pub.co.jp · q2-1 c++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.

39

Q11-8

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

#include<stdio.h>

double sessen(double a,double b)

{

double x;

x = -b / a;

return x;

}

double yzahyou(double x)

{

double y,b,z;

y = x * x - 5;

b = y - 2 * x * x;

z = sessen(2*x,b);

return z;

}

int main(void)

{

double shokiti,stock;

double sa = 1.0;

int count;

printf("初期値(x)を入力して下さい");

scanf("%lf",&shokiti);

while ( sa >= 0.0000001 )

{

stock = shokiti;

shokiti = yzahyou(shokiti);

sa = stock - shokiti;

printf("%.14f\n",shokiti);

}

return 0;

}