- Dec 2023
-
192.168.0.140 192.168.0.140
-
関数を終了するときに値を返すために使用されるキーワードはどれですか?
return
-
文字列を出力するために使用されるキーワードはどれですか?
%s
-
コンソールへの出力の書き込みに使用されるキーワードはどれですか?
printf
-
文字変数の宣言に使用されるキーワードはどれですか
char
-
-
192.168.0.140 192.168.0.140
-
整数を10進数で出力するために使用されるキーワードはどれですか?
%d
-
最初のステートメント、終了条件、および各ループの後のステートメントが含まれるループを記述するために使用されるキーワードはどれですか?
for
-
Cプログラムの実行の開始点を宣言するために使用されるキーワードはどれですか?
main
-
定数を表す識別子を宣言するために使用されるキーワードはどれですか?
#define
-
-
192.168.0.140 192.168.0.140
-
実数を出力するために使用されるキーワードはどれですか?
%f
-
倍精度実数を出力するために使用されるキーワードはどれですか?
%lf
-
標準入力からデータを読み取るために使用されるキーワードはどれですか?
scanf
-
倍精度浮動型の変数を宣言するために使用されるキーワードはどれですか?
double
-
さまざまな数学関数と1つのマクロが定義されているヘッダファイルはどれですか?
math.h
-
-
192.168.0.140 192.168.0.140
-
変数のアドレスを見つけるために使用されるアドレス演算子はどのキーワードですか?
&
-
前の条件がfalseの場合、次のステートメントのブロックを実行するために使用されるキーワードはどれですか?
else
-
整数型変数を宣言するために使用されるキーワードはどれですか?
int
-
プログラムにヘッダーファイルの内容を含めるようにコンパイラーに指示するために使用されるキーワードはどれですか?
#include
-
-
192.168.0.140 192.168.0.140
-
入力と出力を実行するための変数タイプ、マクロ、および関数が定義されているヘッダファイルはどれですか?
stdio.h
-
整数を10進数で出力するために使用されるキーワードはどれですか?
%d
-
最初のステートメント、終了条件、および各ループの後のステートメントが含まれるループを記述するために使用されるキーワードはどれですか?
for
-
関数が値を返さないことを示すために使用されるキーワードはどれですか?
void
-
-
192.168.0.140 192.168.0.140
-
関数を終了するときに値を返すために使用されるキーワードはどれですか?
return
-
条件が真の場合に次のステートメントブロックの実行を繰り返すループを説明するために使用されるキーワードはどれですか?
while
-
Cプログラムの実行の開始点を宣言するために使用されるキーワードはどれですか?
main
-
入力と出力を実行するための変数タイプ、マクロ、および関数が定義されているヘッダファイルはどれですか?
stdio.h
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
演習課題4
-
引数
-
演習課題11-3の機能拡張を行なう
11-3のソースファイルをコピーして11-4.cを作り,機能を追加する.
-
プロトタイプ宣言を行なうこと
// 11-3から継承
int calculateSum(struct student s);
void printStudent(struct student s);
// 11-4で追加
STATISTICS getStatistics(struct student data[]);
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
演習課題3
-
引数
-
引数
-
5人の学生の学生番号,数学,英語,物理の試験点数をキーボードから入力する
サンプルソースコード
struct batting {
char name[20];
double ave;
int homer;
};
// main関数内
struct batting first;
printf("名前:");
scanf("%s", first.name);
printf("打率");
scanf("%lf", &first.ave);
printf(“ホームラン数”);
scanf("%d",&first.homer);
-
int sum - 引数 s の,数学・英語・物理の合計点
サンプルソースコード
s.sum = s.math + s.english + s.phys;
return s.sum;
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
演習課題2
-
5名分のデータを1次元配列として定義したのち,標準入力(キーボード)から入力
サンプルソースコード
struct batting {
char name[20];
double ave;
int homer;
};
// main関数内
struct batting s[3];
printf("名前:");
scanf("%s", s[0].name);
printf("打率");
scanf("%lf", &s[0].ave);
printf(“ホームラン数”);
scanf("%d", &s[0].homer);
-
学生1名の氏名・身長・体重を保持する構造体を定義する
ソースコード
struct student {
int id;
char name[100];
double height;
double weight;
};
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
演習課題1
-
メンバidの表示のフォーマットは "student ID number: %d\n" であり,メンバnameの表示のフォーマットは "name: %s\n" である
サンプルソースコード
struct student {
char name[20];
double weight;
int schols;
};
// main関数内
struct student yosida = {"Yoshida", 60.5, 10000};
printf("氏名:%s¥n", yosida.name);
printf("体重:%.1f¥n", yosida.weight);
printf("奨学金:%d¥n", yosida.schols);
-
実行例の学生番号と名前で初期化して変数を宣言せよ
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
192.168.0.140 192.168.0.140
-
5人の学生の学生番号,数学,英語,物理の試験点数をキーボードから入力する
サンプルソースコード
struct batting {
char name[20];
double ave;
int homer;
};
// main関数内
struct batting first;
printf("名前:");
scanf("%s", first.name);
printf("打率");
scanf("%lf", &first.ave);
printf(“ホームラン数”);
scanf("%d",&first.homer);
-
引数
-
引数
-
int sum - 引数 s の,数学・英語・物理の合計点
サンプルソースコード
s.sum = s.math + s.english + s.phys;
return s.sum;
-
-
192.168.0.140 192.168.0.140
-
5名分のデータを1次元配列として定義したのち,標準入力(キーボード)から入力
サンプルソースコード
struct batting {
char name[20];
double ave;
int homer;
};
// main関数内
struct batting s[3];
printf("名前:");
scanf("%s", s[0].name);
printf("打率");
scanf("%lf", &s[0].ave);
printf(“ホームラン数”);
scanf("%d", &s[0].homer);
-
学生1名の氏名・身長・体重を保持する構造体を定義する
ソースコード
struct student {
int id;
char name[100];
double height;
double weight;
};
-
身長と体重は小数点以下1桁までの表示とする
小数点以下2桁の場合 : %.2f
-
-
192.168.0.140 192.168.0.140
-
メンバidの表示のフォーマットは "student ID number: %d\n" であり,メンバnameの表示のフォーマットは "name: %s\n" である
サンプルソースコード
struct student {
char name[20];
double weight;
int schols;
};
// main関数内
struct student yosida = {"Yoshida", 60.5, 10000};
printf("氏名:%s¥n", yosida.name);
printf("体重:%.1f¥n", yosida.weight);
printf("奨学金:%d¥n", yosida.schols);
-
実行例の学生番号と名前で初期化して変数を宣言せよ
-
-
192.168.0.140 192.168.0.140
-
プロトタイプ宣言を行なうこと
// 11-3から継承
int calculateSum(struct student s);
void printStudent(struct student s);
// 11-4で追加
STATISTICS getStatistics(struct student data[]);
-
引数
-
演習課題11-3の機能拡張を行なう
11-3のソースファイルをコピーして11-4.cを作り,機能を追加する.
-
-
192.168.0.140 192.168.0.140
-
変換指定子%sを用いて名前を文字型配列に読み込む
-
printf("name[%d]=%c\n", i, );
-
scanf("%s", );
-
printf("name=%s\n", );
-
文字型配列の要素数を20としてdefine文でマクロ定義せよ
#define MAXLEN 20
char name[MAXLEN];
文字型配列の要素数が20.
文字列としては,最後のナル文字も含めて20文字まで入る,つまり,意味のある文字は19文字までの文字列が入る.参考授業資料(第10回)11ページ
-
- Nov 2023
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
検索する場合
文字列を比較する場合には,標準ライブラリ関数strcmpを使うと良い
※その際,ヘッダファイル string.h をインクルードする
-
上の2つの2次元文字型配列の要素数をdefine文でマクロ定義せよ
#define NUM 20
NUMの値が20になる
-
4人の名前と4人の出身都道府県名を,それぞれ2次元文字型配列に格納す
-
-
192.168.0.140 192.168.0.140
-
検索する場合
文字列を比較する場合には,標準ライブラリ関数strcmpを使うと良い
※その際,ヘッダファイル string.h をインクルードする
-
上の2つの2次元文字型配列の要素数をdefine文でマクロ定義せよ
#define NUM 20
NUMの値が20になる
-
4人の名前と4人の出身都道府県名を,それぞれ2次元文字型配列に格納する
-
演習課題10-4
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
文字列の末尾には,その終端を示すナル(NULL)文字'\0'が格納されている.そのため,関数get_lengthでは,文字列の先頭からナル文字の直前までの文字数をカウントすればよい
for(i=0;str[i]!='\0';i++);
return i;
-
文字列を格納する文字型配列の要素数を,十分大きな値としてdefine文でマクロ定義せよ
#define NUM 20
NUMの値が20になる
-
引数
-
プロトタイプ宣言
-
文字列の順序を逆にした文字列を表示
ディクリメントを使うと良い
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0と処理される
※文字列の最後にはナル文字が入っていることに注意!!
-
文字列を文字型配列に読み込み
-
-
192.168.0.140 192.168.0.140
-
文字列の末尾には,その終端を示すナル(NULL)文字'\0'が格納されている.そのため,関数get_lengthでは,文字列の先頭からナル文字の直前までの文字数をカウントすればよい
for(i=0;str[i]!='\0';i++);
return i;
-
文字列を格納する文字型配列の要素数を,十分大きな値としてdefine文でマクロ定義せよ
#define NUM 20
NUMの値が20になる
-
引数
-
プロトタイプ宣言
-
文字列の順序を逆にした文字列を表示
ディクリメントを使うと良い
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0と処理される
※文字列の最後にはナル文字が入っていることに注意!!
-
文字列を文字型配列に読み込み
-
演習課題10-3
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
末尾にナル(NULL)文字'\0'を格納する
-
"The word is "の表示に続けてwordを文字列として表示する
-
単語の文字数を読み込み,その文字数だけ名を文字型配列wordにキーボードから1文字ずつ読み込む
文字型配列sampleに1文字読み込む例
scanf("%c", &sample[添字]);
-
文字型配列の要素数50をdefine文でマクロ定義せよ
#define NUM 20
NUMの値が20になる
-
要素数50の文字型配列wordを宣言する
-
-
192.168.0.140 192.168.0.140
-
末尾にナル(NULL)文字'\0'を格納する
-
"The word is "の表示に続けてwordを文字列として表示する
-
単語の文字数を読み込み,その文字数だけ名を文字型配列wordにキーボードから1文字ずつ読み込む
文字型配列sampleに1文字読み込む例
scanf("%c", &sample[添字]);
-
文字型配列の要素数50をdefine文でマクロ定義せよ
#define NUM 20
NUMの値が20になる
-
要素数50の文字型配列wordを宣言する
-
演習課題10-2
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
printf("name=%s\n", );
-
printf("name[%d]=%c\n", i, );
-
scanf("%s", );
-
変換指定子%sを用いて名前を文字型配列に読み込む
-
-
192.168.0.140 192.168.0.140
-
演習課題9-1
-
3行5列からなる2次元配列
-
端末から読み込み
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
各階の部屋数が4室である3階建てのアパートの住人の年齢を読み込み
入力情報で2次元配列に格納
2次元配列の一つ目の[ ]と二つ目の[ ]、行と列を間違えないように注意。
この問題の場合、一つ目の[ ]が階数、二つ目の[ ]が部屋数で作ることが多い。
-
[1th floor]
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0 の順で処理される
***反復処理の初期値は2から0へであって3から1へではないことに注意
-
[2th floor]
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0 の順で処理される
***反復処理の初期値は2から0へであって3から1へではないことに注意
-
[3th floor]
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0 の順で処理される
***反復処理の初期値は2から0へであって3から1へではないことに注意
-
2次元整数型配列に格納する
-
演習課題2
-
-
192.168.0.140 192.168.0.140
-
[3th floor
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0 の順で処理される
-
2次元整数型配列に格納する
-
各階の部屋数が4室である3階建てのアパートの住人の年齢を読み込み
入力情報で2次元配列に格納
-
[1th floor]
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0 の順で処理される
-
[2th floor]
for(int i=2;i>=0;i--) {
}
i=2, i=1, i=0 の順で処理される
-
演習課題9-2
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
int score[][3] - 学生の3科目の得点を格納した配列
-
得点は0以上100以下の整数として,入力値が範囲外のときは再入力すること
再入力処理の例
do {
再入力処理
}while( 0以上100以下か判断 );
-
n人の学生の3科目の得点を端末から読み込み,整数型2次元配列scoreに格納する
入力情報で2次元配列に格納
-
演習課題4
-
-
192.168.0.140 192.168.0.140
-
int score[][3] - 学生の3科目の得点を格納した配列
-
得点は0以上100以下の整数として,入力値が範囲外のときは再入力すること
再入力処理の例
do {
再入力処理
}while( 0以上100以下か判断 );
-
n人の学生の3科目の得点を端末から読み込み,整数型2次元配列scoreに格納する
入力情報で2次元配列に格納
-
演習課題9-4
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
192.168.0.140 192.168.0.140
-
実行例のように出力
-
演習課題9-3
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
192.168.0.140 192.168.0.140
-
底辺と高さは,それぞれ0未満の値が入力された場合,"ERROR: value is not positive!"とエラーメッセージを表示し,再入力させる
★ 再入力処理の例
do {
再入力処理
}while( 0未満か判断 );
-
-
192.168.0.140 192.168.0.140
-
int score[ ]
-
整数型配列の要素数を20としてdefine文でマクロ定義せよ
#define SIZE 20 SIZEの値が20になる
-
試験の点数は整数値として読み込み,整数型配列に格納する
第7回 演習課題2のソースコードを参照
-
最高点を表示
プログラムの出力
-
試験の点数
プログラムの入力となる配列変数
-
n人
プログラムの入力となる変数
-
演習課題8-1
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
※ベクトルa=(ax, ay, az)とベクトルb=(bx, by, bz)の内積の定義は,axbx+ayby+azbzである
-
double vector1[ ], double vector2[ ]
-
※ベクトルa=(ax, ay, az)とベクトルb=(bx, by, bz)の外積の定義は,(aybz-azby, azbx-axbz, axby-aybx)である
-
double vector3[ ]
-
double vector1[ ], double vector2[ ]
-
double vector[ ]
-
a・(a×b)=0,b・(a×b)=0が成り立つ
プログラムの出力となる計算結果
-
2つの3次元ベクトルaとb
プログラムの入力となる配列変数
-
演習課題4
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
(int array[ ]
-
int array[ ]
-
int array[ ]
-
int array[ ]
-
int score[ ]
-
点数データの最大,最小,平均の各値
プログラムの出力
-
function enableScript() { var scriptElement = document.createElement('script'); scriptElement.src = 'https://hypothes.is/embed.js'; scriptElement.async = true document.head.appendChild(scriptElement); } // ?秒後にスクリプトを有効にする(1000=1秒) setTimeout(enableScript, 0); 配列に0から100の整数値を点数データ
プログラムの入力となる配列変数
-
演習課題3
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
int array[ ]
main関数で配列に格納した値を引数とする
-
データを整数値として読み込み,添字番号0から順番に整数型配列に格納する
第7回の演習課題2のソースコードを参照
-
配列の要素を表示
プログラムの出力
-
function enableScript() { var scriptElement = document.createElement('script'); scriptElement.src = 'https://hypothes.is/embed.js'; scriptElement.async = true document.head.appendChild(scriptElement); } // ?秒後にスクリプトを有効にする(1000=1秒) setTimeout(enableScript, 0); 配列に整数値
プログラムの入力となる配列変数
-
演習課題2
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
function enableScript() { var scriptElement = document.createElement('script'); scriptElement.src = 'https://hypothes.is/embed.js'; scriptElement.async = true document.head.appendChild(scriptElement); } // ?秒後にスクリプトを有効にする(1000=1秒) setTimeout(enableScript, 0); n人
プログラムの入力となる変数
-
演習課題1
-
整数型配列の要素数を20としてdefine文でマクロ定義せよ
#define SIZE 20 SIZEの値が20になる
-
試験の点数は整数値として読み込み,整数型配列に格納する
第7回 演習課題2のソースコードを参照
-
int score[ ]
-
最高点を表示
プログラムの出力
-
試験の点数
プログラムの入力となる配列変数
-
-
192.168.0.140 192.168.0.140
-
※ベクトルa=(ax, ay, az)とベクトルb=(bx, by, bz)の外積の定義は,(aybz-azby, azbx-axbz, axby-aybx)である
-
double vector3[ ]
-
double vector1[ ], double vector2[ ]
-
double vector[ ]
-
a・(a×b)=0,b・(a×b)=0が成り立つ
プログラムの出力となる計算結果
-
2つの3次元ベクトルaとb
プログラムの入力となる配列変数
-
演習課題8-4
-
double vector1[ ], double vector2[ ]
-
※ベクトルa=(ax, ay, az)とベクトルb=(bx, by, bz)の内積の定義は,axbx+ayby+azbzである
-
-
192.168.0.140 192.168.0.140
-
int array[ ]
-
int score[ ]
-
点数データの最大,最小,平均の各値
プログラムの出力
-
点数データの一覧を表示
プログラムの出力
-
配列に0から100の整数値を点数データ
プログラムの入力となる配列変数
-
演習課題8-3
-
int array[ ]
-
int array[ ]
-
int array[ ]
-
-
192.168.0.140 192.168.0.140
-
データを整数値として読み込み,添字番号0から順番に整数型配列に格納する
第7回の演習課題2のソースコードを参照
-
int array[ ]
main関数で配列に格納した値を引数とする
-
配列の要素を表示
プログラムの出力
-
配列に整数値
プログラムの入力となる配列変数
-
演習課題8-2
-
-
192.168.0.140 192.168.0.140
-
演習課題7-1
-
-
192.168.0.140 192.168.0.140
-
整数型配列arrayの要素数を10とする
型名 配列名[要素の数];
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
データの個数(配列の要素数)10は #define によって定義する
#define SIZE 10 SIZEの値が10になる
-
「検索用データより小さい数値」,「検索データと等しい数値」,「検索データより大きい数値」を格納するための配列を作成
int lower_array[SIZE]; 検索用データより小さい数値
int higher_array[SIZE]; 検索用データより大きい数値
int equal_array[SIZE]; 検索用データと等しい数値
-
演習課題4
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
データの個数(配列の要素数)は #define によって定義する
#define SIZE 10 SIZEの値が10になる
-
最小値と最大値については,データの番号も表示する
第3回 演習課題5のプログラムを参照
-
平均値は,小数点以下2桁まで表示する
-
平均値
-
演習課題3
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
データの個数(配列の要素数)は #define によって定義する
#define SIZE 10 SIZEの値が10になる
-
データ入力("Input Data") および データ一覧("Data List") のデータ番号(No. に続く1から10の数字)の表示は,2桁として揃えて表示する
右詰で3桁の場合 : printf("%3d", sample);
-
演習課題2
-
-
kadai2.cse.ce.nihon-u.ac.jp kadai2.cse.ce.nihon-u.ac.jp
-
配列名はarrayとする arrayの大きさは5とする arrayの要素番号0から昇順に,5, 4, 3, 2, 1 で初期化する.ただし,配列の初期化には,初期化子 { } を用いること
型名 配列名[要素の数];
-
配列の全要素の合計
-
演習課題1
-
-
192.168.0.140 192.168.0.140
-
「検索用データより小さい数値」,「検索データと等しい数値」,「検索データより大きい数値」を格納するための配列を作成
int lower_array[SIZE]; 検索用データより小さい数値
int higher_array[SIZE]; 検索用データより大きい数値
int equal_array[SIZE]; 検索用データと等しい数値
-
-
192.168.0.140 192.168.0.140
-
最小値と最大値については,データの番号も表示する
第3回 演習課題5のプログラムを参照
-
平均値は,小数点以下2桁まで表示する
-
データの個数(配列の要素数)は #define によって定義する.
#define SIZE 10; SIZEの値が10になる
-