問題 1

5
1 問問 1 scanf() 問問問問 2 問問問問問問問問問問 問問問問問問問問問問問問問問問問 、。 % ./a.out 問 1 問問問問問問kako 問 2 問問問問問問fujio 問 1 問問問 kako 問問問問 4 問 2 問問問 fujio 問問問問 5 問問問問問問問問 kakofujio 問問問問 9 問問問問問問問問 kako 問問問問 4 % 問問問問問問問問問問問問問問1) str1, str2 問問問問問問2) str1 問 str2 問問問問問問問問問問問 問問問問問問問問 、。 3) str1 問 str2 問問問問問問問問問問問 問問問問問問問問 、。 問問問問問問問問問問問問問問問問問問問 問問問問問問問問 2 問問問問問

Upload: sylvester-york

Post on 30-Dec-2015

19 views

Category:

Documents


0 download

DESCRIPTION

問題 1. scanf() を用いて 2 つの文字列を読み込み、次の文字列操作を行うプログラム。. 1) str1, str2 の長さを表示。 2) str1 と str2 を連結した文字列を表示、その長さも表示。 3) str1 に str2 をコピーした結果を表示、その長さも表示。. 文字列操作の関数を使わないプログラムと、使うプログラムの 2 通りつくれ。. % ./a.out 第 1 文字列を入力: kako 第 2 文字列を入力: fujio 第 1 文字列 kako の長さは 4 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 問題  1

1

問題 1

scanf() を用いて 2 つの文字列を読み込み、次の文字列操作を行うプログラム。

% ./a.out第 1 文字列を入力: kako第 2 文字列を入力: fujio第 1 文字列 kako の長さは 4第 2 文字列 fujio の長さは 5連結した文字列は kakofujio で長さは 9コピーした結果は kako で長さは 4%

この色はプログラムによる出力。

1) str1, str2 の長さを表示。2) str1 と str2 を連結した文字列を表示、その長さも表示。3) str1 に str2 をコピーした結果を表示、その長さも表示。

文字列操作の関数を使わないプログラムと、使うプログラムの 2 通りつくれ。

Page 2: 問題  1

2

問題 2

入力した文字列を逆順に出力するプログラム。

% ./a.out 文字列を入力: kako kako を逆順にすると okak です。%

この色はプログラムによる出力。

Page 3: 問題  1

3

問題 3

入力した文字列を一文字ずつ回転させて出力するプログラム。文字の長さ +1 に等しい回数回転させて出力する。

% ./a.out 文字列を入力: Hello HelloelloHlloHeloHeloHellHello%

この色はプログラムによる出力。

5文字なので、6行出力する。

Page 4: 問題  1

4

問題 4

自然数を 10 進数表記で入力し、これを 2 進数表記で出力するプログラム

% ./a.out自然数を 10 進数で入力: 252 進数表記は: 11001%

この色はプログラムによる出力。

二進数で表示するには、2で割って余りを求めていく。例えば、25であれば、 25 ÷ 2= 12 余り 1 12 ÷ 2=  6 余り 0   6 ÷ 2=  3 余り 0   3 ÷ 2=  1 余り 1    1÷ 2=  0 余り 1この結果を逆に並べて 11001 が25の2進標記になる。最初に計算して得られた余りを最後に表示する必要があるので、配列を用意して置いて、それに保存する。

Page 5: 問題  1

5

問題 5

自然数を 10 進数表記で入力し、これを 16 進数表記で出力するプログラム。一旦、文字列の配列に 16 進数標記した文字を代入しておき、それを出力する。変換指定 %X を使ったものと比較すること。

% ./a.out自然数を 10 進数で入力: 2516 進数表記は: 19% ./a.out自然数を 10 進数で入力: 9016 進数表記は: 5A

この色はプログラムによる出力。

ヒント 25 = 1*16 + 9*1 だから 16 進数表記は 19

90 = 5*16 + 10*1 だから 16 進数表記は 5A

printf("%X\n", data);

整数値 data を 16 進数で出力