情報科学演習 実習課題 2013.01.21

Back to text page


文字列を扱うプログラムを実行する際には必ずページャの less に処理を渡すこと.

$ ./a.out | less

実習課題

  1. 文字列の基本

    文字列の配列を用意して,それを逆順に表示するプログラムを作成せよ.

    abcdefg
    gfedcba
    

  2. 前問を改造して,以下のように表示するプログラムにせよ.

    abcdefg
     bcdefga
      cdefgab
       defgabc
        efgabcd
         fgabcde
          gabcdef
    

  3. 以前に作成したトランプのプログラムを次の配列を使用して作り替えよ.

    	char mark[14] = "A23456789XJQK";
    	char suit[4][9] = {"Spades", "Hearts", "Diamonds", "Clubs"};
    

    ただし,上の配列ではプログラムの簡略化のために数字札の10には文字Xを使用して,全ての印が1桁になるようにしてあります.

    Random number: 43
    5 of Clubs
    

  4. ランダムな文字列

    アルファベットの小文字26文字の範囲内の文字をランダムに20文字表示するプロ グラムを作成せよ.なお,文字の重複はあっても良いものとする.

    nwlrbbmqbhcdarzowkkyh
    

    教科書のp.143からのASCIIコード表を利用すると,アルファベットを数値で扱う ことが出来ます.そこでコード表にある整数値を要素として持つ int 型の配列を作り,上の例のように %c を使って教科書のp.14にある例 題2.4のようにコードから文字を表示させます.
  5. 並べ替え

    前問を改造し,アルファベット順に並べ直して表示する機能を付加せよ.

    
    nwlrbbmqbhcdarzowkky
    abbbcdhkklmnoqrrwwyz
    

  6. 文字追加表示

    以下に示す配列を用意する.

         char str[27] = "abcdefghijklmnopqrstuvwxyz";
    

    1桁の正の整数を乱数で発生させ,その文字数分のところで毎回スペースを入れ て表示せよ.

    
    4
    abcd efgh ijkl mnop qrst uvwx yz
    

    この問題では if 文と剰余の使用法がポイントです.
  7. 並べ替え2

    前問の配列を使用してプログラムを一部改造する.1桁の正の整数を乱数で発生させてその文字数分ずらし て表示せよ.

    
    3
    xyzabcdefghijklmnopqrstuvw
    

  8. 文字列に関する代入操作

    数値を値に持つ変数については,値を別の変数に代入することは等号記号 = を用いて簡単に行えるが,文字列をそのまま代入することはC言語では簡単では無い.そこで,文字列の値の代入に関する方法として,以下の2つを試せ.

    	char str1[4] = "abc";
    	char str2[4];
    

    のような2つの文字列配列を用意して,配列 str1 の中身である文字列 abc を配列 str2 に移す操作を行なう場合,for 文を使用して,1文字ずつ代入するプログラムを作成せよ.

    次に,C言語に用意されている文字列コピー関数 strcpy を使用して試せ.この関数は以下のようにして使用する.

    	char str1[4] = "abc";
    	char str2[4]
    	
    	strcpy(str2, str1);
    	
    	printf("%s\n", str2);
    


Back to text page