• Tidak ada hasil yang ditemukan

プログラミング演習I 2008年

N/A
N/A
Protected

Academic year: 2024

Membagikan "プログラミング演習I 2008年"

Copied!
2
0
0

Teks penuh

(1)

プログラミング演習I 2008年

(問題1) 画面に「AND THEN THERE WERE NONE」と出力し て終了するプログラムを記述せよ."「"記号と"」"記号 は出力する必要はない."NONE"の後には改行コードを出 力せよ.また,「#include」なども含め,コンパイル可 能なソースコードを全て記述せよ.

(問題2) 右のソースコー ドはインデントが適切でな く,プログラムの構造を把 握しづらい状態にある.イ ンデントを適切にし,理解 しやすい形に変更せよ.

(問題3) 右のプログ ラムを実行したときに 得られる出力を記述せ よ.

(問題4) 右のプログ ラムを実行したときに 得られる出力を記述せ よ.

(問題5) for文を用いて100個の実数の和である 3.002 +

3.012 + 3.022 + 3.032 + ... + 3.982 + 3.992 を計算し,

結果を出力するプログラムを記述せよ.必ず,for文を用 いて加算を繰り返すプログラムとせよ.

( 問 題 6 ) 右 の プログラムを実 行して,右下の 出力を得るため には,プログラ ム内の空白には どのように記述 すれば良いか答 えよ.

(問題7) 右のプ ロ グ ラ ム を 実 行 し て , 右 下 の 出 力 を 得 る た め に は , プ ロ グ ラ ム 内 の 空 白 に は ど の よ う に 記 述 す れ ば 良 い か 答 え よ.

(問題8) 大きさ1000の double 型の配列 double x[100 0] を宣言し,その全てに 1.2 を代入するプログラムを 記述せよ.すなわち,x[0] = 1.2; x[1] = 1.2; x[2] = 1.2; ... x[999] = 1.2; を行う.何らかの結果を出力す る必要はない.

(問題9) 大きさ 10×20の double 型の配列 double x[1 0][20] を宣言し,配列 x の200個の要素全てに 1.2 を 代入するプログラムを記述せよ.つまり,x[0][0] = 1.2

; x[0][1] = 1.2; ... x[9][19] = 1.2; と,代入を200 回行うプログラムを記述せよ.

(問題10) 大きさ1000のint 型の配列 int x[1000] と int y[1000] がある.x を1個ずらして y にコピーする プログラムを記述せよ.つまり,x[0] を y[1] にコピー,

x[1] を y[2] にコピー,x[2] を y[3] にコピー,...

となる.また,y[0] には 0(ゼロ)を代入し,x[999] は どこにもコピーされない.x[0] ~ x[999] の初期化部は 省略しても良い.省略する場合はプログラム内に省略す ることを記せ.下の例を参考にしても良い.

(問題11) for文を用いて 12 - 22 + 32 - 42 + ... -

982 + 992 – 1002 を計算するプログラムを記述せよ.奇 数の2乗が加算され,偶数の2乗が減算される.必ず,for 文を用いて加算を繰り返すプログラムとせよ.

(問題12) 0以上1000未満の整数で,2の倍数でなく,3 の倍数でもないものが何個あるかを数え,その結果を出 力するプログラムを記述せよ.結果以外は出力しないこ と.x が 3の倍数であるか否かの調査は if ( x % 3 ==

0 ) で行える.

#include <stdio.h>

void main(){

int x, y;

for(x=1; x<=10; x++){

printf("x=%d¥n", x);

for(y=0; y<x; y++){

printf("y=%d¥n", y);

} } }

#include <stdio.h>

void main(){

int x, y;

for(x=0; x<3; x++){

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

printf("%d", x);

}

printf("¥n");

} }

#include <stdio.h>

void main(){

int x, y;

for(x=2; x<5; x++){

for(y=0; y<x; y++){

printf("%d", x);

}

printf("¥n");

} }

#include <stdio.h>

void main(){

int x, y;

for(x=0; x<4; x++){

for(y=0; y<4; y++){

printf("%d ", );

}

printf("¥n");

} }

プログラム

#include <stdio.h>

void main(){

int x, y;

for(x=0; x<4; x++){

for(y=0; y<4; y++){

printf("%d ", );

}

printf("\n");

} }

10 12 14 16 20 22 24 26 30 32 34 36 40 42 44 46

出力

#include <stdio.h>

void main(){

int x[1000], y[1000];

(x[0] ~ x[999] の初期化省略)

}

0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3

出力

(2)

(問題13) 右下のプログラムを実行したときに得られる 出力を記述せよ.

(問題14) 右下のプログラムを実行したときに得られる 出力を記述せよ.

(問題15) 引数として int 型の値を2個とり,それらの 和(int型)を戻り値として返す関数を記述せよ.関数名は add とせよ.

(問題16) 引数として int 型の値を2個とり,それらの うちの大きい値(int型)を戻り値として返す関数を記述せ よ.2個の引数の値が等しいときは,その値を戻りとして 返すようにせよ.関数名は max とせよ.

(問題17) 引数として int 型の値を3個とり,その中で 最大の値(int型)を戻り値として返す関数を記述せよ.関 数名は

max

とせよ.

(問題18) 引数として int 型の値を2個とり,その差(i

nt型)を戻り値として返す関数を記述せよ.関数名は di ff とせよ. 2個の引数のどちらが大きいかは不明とする.

「差」は負の数とはならないことに注意せよ.

(問題19) 次の関数を記述せよ.引数として int 型の 値を2個とり,それぞれ int a, int b という名前である.

a以上b以下の奇数の個数(int型)を戻り値として返す.関 数名は odd である.

(問題20) 次の関数を記述せよ.引数として int 型の 値を2個とり,それぞれ int a, int b という名前である.

下のフローチャートに従い場合分けを行い,戻り値とし て 0 , 1 , 2 のいずれかを返す.関数名は funct , 戻り値の型はint型である.

#include <stdio.h>

int squ(int n){

return n*n;

}

int cub(int n){

return n*n*n;

}

void main(){

int x, y;

x = cub(2);

y = squ(x);

printf("y=%d\n", y);

}

#include <stdio.h>

void func1(int n){

printf("func1 n=%d\n", n);

}

void func0(int n){

printf("func0 n=%d\n", n);

if( n > 0 ){

func1(n);

} }

void main(){

func0( 3 );

func0( -3 );

}

a>0 である b>0 である

戻り値は 0 戻り値は 1

戻り値は 2

No No

Yes Yes

Referensi

Dokumen terkait

卒論ゼミですから,当然のごとく全員問題意識 ははっきりと持っています。とはいえ,そこはみ んな 若きウェルテルの悩み があり,そう単純 に卒論一途というわけには行きません。なんたっ てまずは就職の「内定」をとらなければなりませ んから,ゼミの時間を会社廻りで走り,悪戦苦闘 しているなんてしょっちゅうデス。でも,今年は 世の中,景気が上向いているお陰で後期になって

2 論述部分 ◆論述問題・添削記号◆ 難関大本番レベル記述模試・日本史Bの採点では,次のような添削記号を用いています。 1.<□□□□> 加点要素 2.□□□□ 表現に難あり 3.□□∨□□ 文要素の欠落/脱字 4.□□× □□ 誤字(略字を含む) 5.□□□□× 内容に誤りあり 6.「□□□□」 設問要求に答えていない ◆論述問題・共通の基準◆

プログラミング応用 練習問題(5/5) 2005/01/27 名列番号 氏名 問8. 以下の関数を作成せよ。 10 (1) 配列とそのサイズおよび、配列の最大値と最小値を求めた結果を返すための変数のアドレスを 受け取り、配列に保存されたデータの最大値と最小値を求めて返す関数 (2) 2つの数値の合計と平均を一度に求める関数... プログラミング応用 練習問題

計算の理論 プログラム内蔵方式von Neumann型では、 プログラム・データを区別なく メモリ上に置いていたが、 プログラムとデータとは、やはり本質的に違う • プログラム: 一つの問題では固定 • データ: 可変な入力 ⇓ どんな有効なデータ入力が来ても、 所定の出力を返すことが要請される —電子計算機概論I 6—... 計算の理論

計算の理論 プログラム内蔵方式von Neumann型では、 プログラム・データを区別なく メモリ上に置いていたが、 プログラムとデータとは、やはり本質的に違う • プログラム: 一つの問題では固定 • データ: 可変な入力 ⇓ どんな有効なデータ入力が来ても、 所定の出力を返すことが要請される... 計算の理論 或る問題の「計算が可能」 m

組合せ回路 入力の組によって出力が決まる n 入力 m 出力の回路は Boole 関数 f:Xf −→{0, 1}m ここに Xf⊂{0, 1}n は許される入力全体 を定める 組合せ回路 : Boole 関数の論理素子による実現 以下では、NOT, OR, ANDを用いた実現を考える... SR-フリップフロップ Set-Reset

よって、ϕx = 2y3+ψy =C C は実数定数と書ける。 としてもよい。C を単に定数と書いた答案もあったが、C が実数でない場合は、答えが 正しくないので、C が実数であることを明記しておかなければいけない。また、ϕx を 整式や多項式と書いた答案もあったが、yで偏微分して消えれば良いだけなので、整式と は限らない。

[1-4]Rを単項イデアル整域とする。Rのイデアルは全てR自由加群であることを示せ。 [1-5]QはZ加群としてねじれがないが、自由加群ではないことを示せ。 [1-6]Rを可換環とする。多項式環R[X]は自由R加群であることを示せ。 [1-7]Rを可換環とする。べき級数環R[[X]]はRの可算個の直積とR加群として同形 であることを示せ。 [1-8]M