Cプログラムの実行の開始点を宣言するために使用されるキーワードはどれですか?
main
Cプログラムの実行の開始点を宣言するために使用されるキーワードはどれですか?
main
条件が真の場合に次のステートメントブロックの実行を繰り返すループを説明するために使用されるキーワードはどれですか?
while
関数を終了するときに値を返すために使用されるキーワードはどれですか?
return
入力と出力を実行するための変数タイプ、マクロ、および関数が定義されているヘッダファイルはどれですか?
stdio.h
整数を10進数で出力するために使用されるキーワードはどれですか?
%d
プログラムにヘッダーファイルの内容を含めるようにコンパイラーに指示するために使用されるキーワードはどれですか?
#include
コンソールへの出力の書き込みに使用されるキーワードはどれですか?
printf
標準入力からデータを読み取るために使用されるキーワードはどれですか?
scanf
整数型変数を宣言するために使用されるキーワードはどれですか?
int
整数を10進数で出力するために使用されるキーワードはどれですか?
%d
標準入力からデータを読み取るために使用されるキーワードはどれですか?
scanf
コンソールへの出力の書き込みに使用されるキーワードはどれですか?
printf
整数型変数を宣言するために使用されるキーワードはどれですか?
int
プログラムにヘッダーファイルの内容を含めるようにコンパイラーに指示するために使用されるキーワードはどれですか?
#include
1文字を出力するために使用されるキーワードはどれですか?
%c
1つのステートメントのブロックを、複数のブロックの中から選んで実行する必要がある場合に、条件不成立の場合に実行するブロックを記述するために使用されるキーワードはどれですか?
default
プログラムの実行を最も内側のステートメントのブロックからその外にジャンプさせることができるキーワードはどれですか?
break
1つのステートメントのブロックを、複数のブロックの中から選んで実行する必要がある場合に、条件の変数の値を記述するために使用されるキーワードはどれですか?
case
1つのステートメントのブロックを、複数のブロックの中から選んで実行する必要がある場合に、条件の変数を記述するために使用されるキーワードはどれですか?
switch
文字列を出力するために使用されるキーワードはどれですか?
%s
整数を10進で出力するために使用されるキーワードはどれですか?
%d
異なるタイプの変数を1つの名前で保持できる構造体を宣言するために使用されるキーワードはどれですか?
struct
文字列を出力するために使用されるキーワードはどれですか?
%s
指定された文字数をソース文字列から宛先文字列にコピーするために使用されるキーワードはどれですか?
strncpy
文字変数の宣言に使用されるキーワードはどれですか?
char
文字の配列を操作するための変数タイプ、マクロ、および関数が定義されているヘッダファイルはどれですか?
string.h
関数を終了するときに値を返すために使用されるキーワードはどれですか?
return
文字列を出力するために使用されるキーワードはどれですか?
%s
コンソールへの出力の書き込みに使用されるキーワードはどれですか?
printf
文字変数の宣言に使用されるキーワードはどれですか
char
整数を10進数で出力するために使用されるキーワードはどれですか?
%d
最初のステートメント、終了条件、および各ループの後のステートメントが含まれるループを記述するために使用されるキーワードはどれですか?
for
Cプログラムの実行の開始点を宣言するために使用されるキーワードはどれですか?
main
定数を表す識別子を宣言するために使用されるキーワードはどれですか?
#define
実数を出力するために使用されるキーワードはどれですか?
%f
倍精度実数を出力するために使用されるキーワードはどれですか?
%lf
標準入力からデータを読み取るために使用されるキーワードはどれですか?
scanf
倍精度浮動型の変数を宣言するために使用されるキーワードはどれですか?
double
さまざまな数学関数と1つのマクロが定義されているヘッダファイルはどれですか?
math.h
変数のアドレスを見つけるために使用されるアドレス演算子はどのキーワードですか?
&
前の条件がfalseの場合、次のステートメントのブロックを実行するために使用されるキーワードはどれですか?
else
整数型変数を宣言するために使用されるキーワードはどれですか?
int
プログラムにヘッダーファイルの内容を含めるようにコンパイラーに指示するために使用されるキーワードはどれですか?
#include
入力と出力を実行するための変数タイプ、マクロ、および関数が定義されているヘッダファイルはどれですか?
stdio.h
整数を10進数で出力するために使用されるキーワードはどれですか?
%d
最初のステートメント、終了条件、および各ループの後のステートメントが含まれるループを記述するために使用されるキーワードはどれですか?
for
関数が値を返さないことを示すために使用されるキーワードはどれですか?
void
関数を終了するときに値を返すために使用されるキーワードはどれですか?
return
条件が真の場合に次のステートメントブロックの実行を繰り返すループを説明するために使用されるキーワードはどれですか?
while
Cプログラムの実行の開始点を宣言するために使用されるキーワードはどれですか?
main
入力と出力を実行するための変数タイプ、マクロ、および関数が定義されているヘッダファイルはどれですか?
stdio.h
演習課題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[]);
演習課題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;
演習課題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;
};
演習課題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);
実行例の学生番号と名前で初期化して変数を宣言せよ
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;
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
メンバ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);
実行例の学生番号と名前で初期化して変数を宣言せよ
プロトタイプ宣言を行なうこと
// 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を作り,機能を追加する.
変換指定子%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ページ
検索する場合
文字列を比較する場合には,標準ライブラリ関数strcmpを使うと良い
※その際,ヘッダファイル string.h をインクルードする
上の2つの2次元文字型配列の要素数をdefine文でマクロ定義せよ
#define NUM 20
NUMの値が20になる
4人の名前と4人の出身都道府県名を,それぞれ2次元文字型配列に格納す
検索する場合
文字列を比較する場合には,標準ライブラリ関数strcmpを使うと良い
※その際,ヘッダファイル string.h をインクルードする
上の2つの2次元文字型配列の要素数をdefine文でマクロ定義せよ
#define NUM 20
NUMの値が20になる
4人の名前と4人の出身都道府県名を,それぞれ2次元文字型配列に格納する
演習課題10-4
文字列の末尾には,その終端を示すナル(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と処理される
※文字列の最後にはナル文字が入っていることに注意!!
文字列を文字型配列に読み込み
文字列の末尾には,その終端を示すナル(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
末尾にナル(NULL)文字'\0'を格納する
ナル文字を文字型配列sampleに意味のある文字n個の文字列を格納する例
sample[n] = '\0'; (※\nではありません!!)
"The word is "の表示に続けてwordを文字列として表示する
単語の文字数を読み込み,その文字数だけ名を文字型配列wordにキーボードから1文字ずつ読み込む
文字型配列sampleに1文字読み込む例
scanf("%c", &sample[添字]);
文字型配列の要素数50をdefine文でマクロ定義せよ
#define NUM 20
NUMの値が20になる
要素数50の文字型配列wordを宣言する
末尾にナル(NULL)文字'\0'を格納する
ナル文字を文字型配列sampleに意味のある文字n個の文字列を格納する例
sample[n] = '\0'; (※\nではありません!!)
"The word is "の表示に続けてwordを文字列として表示する
単語の文字数を読み込み,その文字数だけ名を文字型配列wordにキーボードから1文字ずつ読み込む
文字型配列sampleに1文字読み込む例
scanf("%c", &sample[添字]);
文字型配列の要素数50をdefine文でマクロ定義せよ
#define NUM 20
NUMの値が20になる
要素数50の文字型配列wordを宣言する
演習課題10-2
printf("name=%s\n", );
printf("name[%d]=%c\n", i, );
scanf("%s", );
変換指定子%sを用いて名前を文字型配列に読み込む
演習課題9-1
3行5列からなる2次元配列
端末から読み込み
各階の部屋数が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
[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
int score[][3] - 学生の3科目の得点を格納した配列
得点は0以上100以下の整数として,入力値が範囲外のときは再入力すること
再入力処理の例
do {
再入力処理
}while( 0以上100以下か判断 );
n人の学生の3科目の得点を端末から読み込み,整数型2次元配列scoreに格納する
入力情報で2次元配列に格納
演習課題4
int score[][3] - 学生の3科目の得点を格納した配列
得点は0以上100以下の整数として,入力値が範囲外のときは再入力すること
再入力処理の例
do {
再入力処理
}while( 0以上100以下か判断 );
n人の学生の3科目の得点を端末から読み込み,整数型2次元配列scoreに格納する
入力情報で2次元配列に格納
演習課題9-4
実行例のように出力
演習課題9-3
底辺と高さは,それぞれ0未満の値が入力された場合,"ERROR: value is not positive!"とエラーメッセージを表示し,再入力させる
★ 再入力処理の例
do {
再入力処理
}while( 0未満か判断 );
int score[ ]
整数型配列の要素数を20としてdefine文でマクロ定義せよ
#define SIZE 20 SIZEの値が20になる
試験の点数は整数値として読み込み,整数型配列に格納する
第7回 演習課題2のソースコードを参照
最高点を表示
プログラムの出力
試験の点数
プログラムの入力となる配列変数
n人
プログラムの入力となる変数
演習課題8-1
※ベクトル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
(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
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
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[ ]
最高点を表示
プログラムの出力
試験の点数
プログラムの入力となる配列変数
※ベクトル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
int array[ ]
int score[ ]
点数データの最大,最小,平均の各値
プログラムの出力
点数データの一覧を表示
プログラムの出力
配列に0から100の整数値を点数データ
プログラムの入力となる配列変数
データを整数値として読み込み,添字番号0から順番に整数型配列に格納する
第7回の演習課題2のソースコードを参照
int array[ ]
main関数で配列に格納した値を引数とする
配列の要素を表示
プログラムの出力
配列に整数値
プログラムの入力となる配列変数