Page 1
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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;
}