今週は,これまでのまとめとして,練習問題を課す.
各自でしっかりと復習しよう.
特に,自分で理解が不十分だと思う箇所があれば,各自でテキストおよび参考書を調べるか,または,積極的に質問をすること.
それぞれの単元をよく理解したうえで,それらを組み合わせ,順序立て,処理手順をロジカルに記述する訓練をしよう.
試行錯誤の数だけ上達します!
以下の項目がしっかり理解出来ていますか.
理解できていない項目はありませんか?
printf
, cout
等)の方法,書式指定scanf
, cin
等)の方法,書式指定if
文if-else
文if-else if-else
文switch case
文while
文do-while
文for
文また,プログラムを書くためには,文法を知っているだけでは不十分です.
などについても,よく理解していなければなりません.
以下の問それぞれに対応するプログラムを作成しなさい.
自習用なので,提出は不要.
10個の数値を入力し,そのうち奇数の和と,偶数の和に分けてそれぞれ出力.
実行例(計算結果は適当な値である.) 入力: 1 8 3 7 4 11 9 -3 8 4 出力: 15 24 入力: 2 88 40 23 18 51 34 55 32 100 出力: 151 466
下記のように,文章内の(スペース文字で区切られた)単語の先頭の文字のみを小文字に変換し,残りは大文字に変換する関数 convert
を作成せよ.
文字列の長さは最大で100文字程度とし,変換前後の文字列を画面に表示せよ.
main
関数は以下の通りとし,変更しないこと.
ヒント1:スペース文字は,' '
または該当する文字コードの値を参照.
ヒント2:大文字,小文字は文字コード値のどの範囲か?
実行例1
src:HELLO! I AM a COMputer.
dst:hELLO! i aM a cOMPUTER.
実行例2
src:PPAP
dst:pPAP
#include ...
bool IsOomoji(???)
{
// このような関数を作って置くと便利.
// またはライブラリ関数を探す?
}
void convert(...)
{
....
}
int main(void)
{
char str[101]; // 100文字+ヌル文字分
scanf("%[^\n]%*c", str); // スペースを含めて1行入力
printf("src:%s\n", str);
convert(str);
printf("dst:%s\n", str);
return 0;
}
まず配列の要素数(整数,最大で100とする)を入力し,
続いて配列データ(実数)を入力すると,配列内の値の平均値を計算して表示するプログラムを作成せよ.
(いずれも出力の値は正しいとは限らない) 実行例1 input: 5 1.0 2.0 3.0 4.0 5.0 output 3.0 実行例2 input: 90 -100.5 329.3 224.8 , ... 992.3 output: 123.4 実行例3 input: 200 ERROR! Too much datacount.
キーボードから 2 より大きい整数 n を入力すると,2 から n までの間の素数の個数を表示したうえで,それらの和を表示せよ.
n が 2 より大きい数でない場合はエラーメッセージを表示して,正しい値が入力されるまで,繰り返し再入力させるようにせよ.
実行例: n=? 2 ERROR! n=? -2 ERROR! n=? 10 number of prime number is 4 sum is 17