PowerPoint プレゼンテーション

文字配列の課題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