練習問題 1 2009年4月22日 2 練習 0 • 画面に"Hello!"と表示し,改行し,終了 するプログラムを記述せよ. 3 解答 0 #include <stdio.h> void main(){ printf("Hello!\n"); } 4 練習 1 • int型変数x, y, zの3個を用意して, xに3を,yに5を,zにx+yを代入して zを表示するプログラムを記述せよ. 5 解答 1 #include <stdio.h> void main(){ int x, y, z; x = 3; y = 5; z = x+y; printf("%d\n", z); } 6 練習 2 int a=7, b=3; if( 3 < a ){ printf("A\n"); } else { if( 2 < b ){ printf("B\n"); } printf("C\n"); } 左のプログラムを 実行したら, どの様に表されるか? 7 解答 2 A 8 練習 3 int a=2, b=3; if( 3 < a ){ printf("A\n"); } else { if( 2 < b ){ printf("B\n"); } printf("C\n"); } 左のプログラムを 実行したら, どの様に表されるか? 9 解答 3 B C 10 練習 4 int a=2, b=2; if( 3 < a ){ printf("A\n"); } else { if( 2 < b ){ printf("B\n"); } printf("C\n"); } 左のプログラムを 実行したら, どの様に表されるか? 11 解答 4 C 12 練習 5 • 画面に"Hello!\n"と10回表示するプロ グラムを記述せよ. #include <stdio.h> void main(){ この部分だけ 記述すればOK (以下,同様) } 13 解答 5 #include <stdio.h> void main(){ int i; for(i=0; i<10; i++){ printf("Hello!\n"); } } 14 練習 6 • 右図のように100個の整数を表示するプロ グラムを作成せよ. 0 必ずfor文を用いよ. 1 2 – ヒント: : – int型の変数iの値の表示の例 98 printf("%d\n", i); 99 15 解答 6 #include <stdio.h> void main(){ int i; for(i=0; i<100; i++){ printf("%d\n",i); } } 16 練習 7 • 右図のように100個の整数を表示するプロ グラムを作成せよ. 100 必ずfor文を用いよ. 101 102 : 198 199 17 解答 7 #include <stdio.h> void main(){ int i; for(i=0; i<100; i++){ printf("%d\n",i+100); } } 18 練習 8 • 下のプログラムを実行したら画面にはどの 様に表示されるか? #include <stdio.h> void main(){ int i; for(i=7; i<20; i+=3){ printf("%d\n",i); } } 19 解答 8 7 10 13 16 19 20 練習 9 • 下のプログラムを実行したら画面にはどの 様に表示されるか? #include <stdio.h> void main(){ int i; for(i=7; i<20; i+=3){ printf("%d\n",i*2); } } 21 解答 9 14 20 26 32 38 22 練習 10 • 下のプログラムを実行したら画面にはどの 様に表示されるか? #include <stdio.h> void main(){ int i; for(i=0; i<5; i++){ printf("%d\n",10000+i*10); } } 23 解答 10 10000 10010 10020 10030 10040 24 練習 11 • 下のプログラムを実行したら画面にはどの 様に表示されるか? #include <stdio.h> void main(){ int i; for(i=105; 100<=i; i--){ printf("%d\n",i); } } 25 解答 11 105 104 103 102 101 100 26 練習 12 • 右図のように100個の整数を表示するプロ グラムを作成せよ. 1000 必ずfor文を用いよ. 1005 – ヒント↓ 1010 1015 : 1495 i 0 1 2 3 4 表示 1000 1005 1010 1015 1020 n ?? 98 99 1490 1495 27 解答 12 #include <stdio.h> void main(){ int i; for(i=0; i<100; i++){ printf("%d\n",1000+5*i); } } 28 2009年05月07日 29 練習 13 下の様に出力されるプログラムは? 1000 1001 1004 1009 1016 1025 1036 1049 1064 1081 30 解答 13 int i, x; for(i=0; i<10; i++){ x = 1000 + i*i; printf("%d\n", x); } 31 練習 14 下のプログラムの出力は? int i, j; for(i=0; i<3; i++){ for(j=0; j<2; j++){ printf("i=%d, j=%d\n", i, j); } } 32 解答 14 i=0, i=0, i=1, i=1, i=2, i=2, j=0 j=1 j=0 j=1 j=0 j=1 33 練習 15 下のプログラムの出力は? int x, y; for(y=2; y<4; y++){ for(x=5; x<7; x++){ printf("x=%d, y=%d\n", x, y); } } 34 解答 15 x=5, x=6, x=5, x=6, y=2 y=2 y=3 y=3 35 練習 16 下のプログラムの出力は? int x, y, z; for(x=0; x<2; x++){ for(y=0; y<2; y++){ for(z=0; z<2; z++){ printf("%d, %d, %d\n", x, y, z); } } } 36 解答 16 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0 1 0 1 0 1 0 1 37 練習 17 下のプログラムの出力は? int x, y, z; for(y=2; y<4; y++){ for(x=5; x<7; x++){ for(z=8; z<10; z++){ printf("%d, %d, %d\n", x, y, z); } } } 38 解答 17 5, 5, 6, 6, 5, 5, 6, 6, 2, 2, 2, 2, 3, 3, 3, 3, 8 9 8 9 8 9 8 9 39 2009年05月14日 40 練習 18 • 1+2+3+…+100を求め,表示するプログラ ムを作成せよ. 41 解答 18 #include <stdio.h> void main(){ int i, sum=0; for(i=1; i<=100; i++){ sum += i; } printf("%d\n", sum); } 42 練習 19 • 1+2+3+…+100を求め,表示するプログラ ムを作成せよ. – ヒント:先ほどと全く同じ問題です. 43 解答 19 #include <stdio.h> void main(){ int i, sum=0; for(i=1; i<=100; i++){ sum += i; } printf("%d\n", sum); } 44 練習 20 • 1+2+3+…+200を求め,表示するプログラ ムを作成せよ. – ヒント:先ほどとほとんど同じ問題です. 45 解答 20 #include <stdio.h> void main(){ int i, sum=0; for(i=1; i<=200; i++){ sum += i; } printf("%d\n", sum); } 46 2009年05月21日 47 練習 21 • 100+101+102+…+199を求め,表示する プログラムを作成せよ. – ヒント:先ほどとほとんど同じ問題です. 48 解答 21 #include <stdio.h> void main(){ int i, sum=0; for(i=100; i<200; i++){ sum += i; } printf("%d\n", sum); } 49 練習 22 • 12+22+32+…+1002を求め,表示するプロ グラムを作成せよ. 50 解答 22 #include <stdio.h> void main(){ int i, sum=0; for(i=1; i<=100; i++){ sum += i*i; } printf("%d\n", sum); } 51 練習 23 • 100.02+100.22+100.42+…+119.82の 100個の実数の和を求め,表示するプログ ラムを作成せよ. 52 解答 23 #include <stdio.h> void main(){ int i; double sum=0, x; for(i=0; i<100; i++){ x = 100 + 0.2*i; sum += x*x; } printf("%lf\n", sum); } 53 2009年05月28日 54 練習 24 • aの方が大きかったら,”John”と, そうでなかったら”Paul”と表示する。 void main(){ int a=○, b=×; ここの部分を 答える。 } 55 解答 24 if( b < a ){ printf("John"); } else { printf("Paul"); } 56 練習 25 start if(y == 0) No Yes No if(x == 0) Yes printf("C"); printf("A"); void main(){ int x,y; x=○; y=×; printf("B"); ここの部分を 答える。 } 57 解答 25 if( x == 0 ){ printf("C\n"); } else { if( y == 0 ){ printf("B"); } else { printf("A"); } } 58 練習 26 • ronとensに論と演習の点数が入っている.60 点以上が合格. • 点数により分類して,右の表の様に表示するに は? void main(){ int ron=○,ens=×; ここの部分を 答える。 } 論が合格 論が不合格 演習が合格 GREAT! GOOD! 演習が不合格 COOL! Oh, my... 59 if( 60<=ron){ 解答 if( 60<=ens ){ printf("GREAT!\n"); } else { printf("COOL!\n"); } } else { if( 60<=ens ){ printf("GOOD!\n"); } else { printf("Oh, my...!\n"); } } 26 60 練習 27 • aとbの大きい方を,変数maxに代入. 同じ値だったら,その値を代入. void main(){ int a=○, b=×, max; ここの部分を 答える。 printf("max=%d",max); } 61 解答 27 if( b < a ){ max = a; } else { max = b; } 62 練習 28 • aとbとcの中で最大のものを変数maxに代 入. void main(){ int a=○, b=×, c=○, max; ここの部分を 答える。 printf("max=%d",max); } 63 解答 28 int abmax; if( a<b ){ abmax=b; } else { abmax=a; } if( abmax<c ){ max=c; } else { max=abmax; } 64 練習 29 • aとbとcとdの中で最大のものを変数max に代入. void main(){ int a,b,c,d,max; ここの部分を 答える。 printf("max=%d",max); } 65 解答 29 int x,y; if( a<b ){ x=b; } else { x=a; } if( x<c ){ y=c; } else { y=x; } if( y<d ){ max=d; } else { max=y; } 66 2009年06月04日 67 練習 30 • 4の倍数がうるう年である. 判別するプログラムを作成せよ. #include <stdio.h> void main(){ int year = 2009; if( ?? ){ printf("%d 年はうるう年である.\n", year); } else { printf("%d 年はうるう年でない.\n", year); } } 68 解答 30 • 4の倍数がうるう年である. 判別するプログラムを作成せよ. #include <stdio.h> void main(){ int year = 2009; if( year % 4 == 0 ){ printf("%d 年はうるう年である.\n", year); } else { printf("%d 年はうるう年でない.\n", year); } } 69 練習 31 • うるう年を判別するプログラムを作成せよ. – 4の倍数がうるう年である. – ただし, 4の倍数でも100の倍数は うるう年でない. #include <stdio.h> – ただし, 100の倍数でも void main(){ 400の倍数は int year = 2008; うるう年である. ここだけ記述すれば OK } 70 #include <stdio.h> void main(){ int year = 2008; if( year % 4 == 0 ){ if( year % 100 == 0 ){ if( year % 400 == 0 ){ printf("%d 年はうるう年である.\n", year); } else { printf("%d 年はうるう年でない.\n", year); } } else { printf("%d 年はうるう年である.\n", year); } } else { printf("%d 年はうるう年でない.\n", year); } } 解答 31 71 2009年06月18日 72 練習 32 • 戻り値がint型,引数がint型3個(int x, int y, int z)で,関数名がadd である関数を作成せよ.中身は,x,y,zの 値を表示して,その合計を戻り値として返 す. • この関数を引数7,8,9にてmain()から 呼び出して,戻り値を変数xに代入せよ. 73 解答 32 int add(int x, int y, int z){ printf("%d %d %d\n",x,y,z); return x+y+z; } void main(){ int x = add(7,8,9); printf("x=%d\n", x); } 74 練習 33 • 戻り値がint型で,引数がint型2個(変 数名は自由)で,関数名がmaxで,中身は 2個の引数を表示してそのうち大きい方の 値を返す関数を作成せよ. – 例:3,7を引数として呼び出すと,画面 に”3,7”と表示されて,7が戻り値として返さ れる. x=max(3,7)とするとxに7が代入さ れる. 75 解答 33 int max(int x, int y, int z){ printf("%d %d\n",x,y); if(x<y){ return x; } else { return y; } } 76 2009年06月25日 77 練習 34 • 戻り値がint型で,引数がint型2個(変 数名は自由)で,関数名がaddで,中身は 2個の引数の和を返す関数を作成せよ. – 例:3,6を引数として呼び出すと, 9が戻り値 として返される. x=add(3,6)とするとxに9 が代入される. 78 解答 34 int add(int x, int y){ return a+b; } 79 2009年07月02日 80 練習 35 • 3個の小数(double型)を引数にとり,そ れらの和(double型)を戻り値として返す 関数adddを作成し,main()の中から呼 び出せ. 81 解答 35 double addd(double a, double b, double c){ return a+b+c; } void main(){ double x; x = addd(1.2, 3.4, 5.6); printf("%lf\n", x); } 82 練習 36 • 下を実行したらどの様に表示される? void funcA(){ printf("A\n"); } void funcB(){ printf("B\n"); funcA(); } void main(){ funcB(); funcA(); } 83 解答 36 B A A 84 2009年07月09日 85 練習 37 • 長さ1000の整数の配列,int x[1000] とint y[1000]がある. • x[0]~x[999]にはデータが入っている として,x[]の1000個をy[]の1000個に コピーするプログラムは? – つまり,x[0]をy[0]にコピーして,x[1]を y[1]にコピーする. 86 解答 37 int i; for(i=0; i<1000; i++){ y[i]=x[i]; } 87 練習 38 • 長さ1000の整数の配列,int x[1000] とint y[1000]がある.x[0]~ x[999]にはデータが入っているとする. • x[500]~x[599]の100個をy[500]~ y[599]の100個にコピーするプログラム は? – つまり,x[500]をy[500]にコピーし て,x[501]をy[501]にコピーする. 88 解答 38 int i; for(i=500; i<600; i++){ y[i]=x[i]; } 89 練習 39 • 長さ1000の整数の配列,int x[1000] とint y[1000]がある.x[0]~ x[999]にはデータが入っているとする. • x[500]~x[599]の100個をy[300]~ y[399]の100個にコピーするプログラム は? – つまり,x[500]をy[300]にコピーし て,x[501]をy[301]にコピーする. 90 解答 39 int i; for(i=0; i<100; i++){ y[300+i]=x[500+i]; } 91 2009年07月16日 92 練習 40 • 次の関数を記述せよ. 引数はint型2個(int a, int b). 戻り値はint型であり, 値はa以上b未満の整数の合計. 関数名は sumint 93 解答 40 int sumint(int a, int b){ int sum, i; sum = 0; for(i=a; i<b; i++){ sum += i; } return sum; } 94
© Copyright 2025 ExpyDoc