文字配列の課題1 解説 課題1 キーボードから英文を1行入力して配列に納め、それを出力 するプログラムを作成せよ。入出力の方法はどれでもよい。 解答例 1 /*a601003*/ #include <stdio.h> main() { char mojiretu[100]; printf(“eibun wo nyuuryokuseyo\n”); gets(mojiretu); printf(“nyuuryoku sareta eibun wa %s\n”,mojiretu); } 文字配列の課題1 解説 課題1 キーボードから英文を1行入力して配列に納め、それを出力 するプログラムを作成せよ。入出力の方法はどれでもよい。 /* a601021 */ #include <stdio.h> 解答例 2 main() { char mojiretu[100]; int a=0; gets(mojiretu); while(mojiretu[a]!=‘\0’) { printf(“%c”,mojiretu[a]); a=a+1; } printf("\n"); } 文字配列の課題2 解説 課題2 課題1で、入力された文字数(空白も含める)を求めるプログラム を作れ。(‘\0’が出てくるまで文字数をカウントすればよい) 解答例 /*a601087*/ #include <stdio.h> main() { char moji[15]; int i=0; gets(moji); while(moji[i]!=‘\0’) { i++; } printf(“%d\n”,i); } 文字配列の課題3 解答例 キーボードから2行英文を入力し、 各行を別々の配列に納める。 2 個の配列の内容をつないで一つ の英文として3個目の配列に納め て内容を表示せよ。 /*a601081*/ #include <stdio.h> main() { char moji1[50],moji2[50],moji3[110]; int a=0,b=0,c=0; printf("saisyo no mojiretu wo irete kudasai\n"); gets(moji1); printf("2banme no mojiretu wo irete kudasai\n"); gets(moji2); while(moji1[a] !='\0') { moji3[a]=moji1[a]; a=a+1; } while(moji2[b] !='\0') { moji3[a+b]=moji2[b]; b=b+1; } printf("nyuuryoku sita mojiretu wo awaseta mojiretu ha\n["); while(moji3[c] !='\0') { printf("%c",moji3[c]); c=c+1; } printf("] desu\n"); } 配列を関数の引数に使う。 #include <stdio.h> void func(char str[ ]); main() { char abc[20]; abc[0]=‘a’; abc[1]=‘z’; printf(“before: abc[0]=%c,abc[1]=%c\n”,abc[0],abc[1]); func(abc); printf(“after: abc[0]=%c,abc[1]=%c\n”,abc[0],abc[1]); } void func(char str[ ]) { str[0]=‘A’; str[1]=‘Z’; } 関数の引数に配列を使うと 実行結果 関数を呼ぶ前 abc[0]=‘a’; abc[1]=‘z’; 関数から戻った後 abc[0]=‘A’; abc[1]=‘Z’; 1. 配列 を引数として関数に渡し、関数の中で引数を変化させると もどったとき配列の値が変わっている。これを call by reference (「場所呼び」または「参照による呼び出し」)という。 *普通の変数を使うと、こういうことは起こらない。普通の変数 を使った関数呼び出しをcall by value という。 2. 配列を引数に使うと、関数から任意の個数の値を戻すことが 可能 *return文による戻り値は1個だけ 課題 課題1 mainの中で I am a boy. を配列に納め、その配列を関数に渡す。 その関数の中で小文字を大文字に変えてmainに戻して表示する プログラムを作成せよ。 ヒント 文の末尾まで処理する。(配列 char m[ ] で文章を受け取るとする) while(m(i) != ‘\0’) 小文字かどうかの判定 (下記の if 文が yes なら小文字) if((m(i)>=‘a’) && (m(i)<=‘z’)) 小文字を大文字に変える。(アスキーコードの差だけずらす) m(i) = m(i) - (‘a’ - ‘A’) report.1.8.1 課題2 課題1で、文字列をキーボードから入力できるようにせよ。 report.1.8.2
© Copyright 2025 ExpyDoc