第2回講義演習・課題

演習1

(1)以下のプログラムを見て、配列にどのようにデータが入っているか,配列イメージを図で書け.

(2) 配列の中のデータをすべて出力するような関数を完成させよ。

(3)フローチャートを書け

(4)2番目のデータと3番目のデータを交換したい。

    ・どうすればよいか、日本語で説 明せよ。
    ・該当部分のプログラムをかけ。


#include <stdio.h>

void kadai2_1(){

int data[2][3]= {2,4,6,1,8,3};

//(2)以下にプログラムを書け

}
コピペをしてもよいが、ゴミ(全角スペースなど)が所々入っているので削除してください
エラーメッセージで、「文字'***'は認識できません」と出てきた行には、全角文字(全角スペースなど)が含まれているはずです。


演習2

fgetsを利用して、文字列入力する下記のプログラムを動かせ

void kadai21(){
char name[21];
printf("名前を入力して下さい\t");
fgets(name, sizeof(name), stdin);
//改行コードを終端コードに置き換える
name[strlen(name) - 1] = '\0'; 
printf("\nあなたの名前は %s です。\n", name);

}


演習3

配列に数値を格納する下記のプログラムを動かせ

void kadai22(){

int i;
int value[10];
char input[10];
i=0;
do{
printf("数字を入力して下さい\t");
fgets(input, sizeof(input), stdin);
//改行コードを終端コードに置き換える
input[strlen(input) - 1] = '\0'; 
value[i] = atoi(input);
printf("入力された数値は %d です。\n", value[i]);
i++;

}while(i<10);

//出力
printf("入力された数値は以下のとおり...\n");
for(int i=0;i<10;i++){
printf("%d ",value[i]);
}

}


演習4 下記のプログラムを次の条件を満たすように完成させよ.

(1)学籍番号id(int型),名前name(*char)をメンバーとして持つ構造体 Kindaisei を宣言しなさい.
(2)構造体Kindaiseiを型とするgakuseiという配列を以下のように宣言した.3番目の学生の学籍番号と名前を出力するプログラム書け。

#include <stdio.h>
#include <stdlib.h>

 /* 構造体の定義 */
struct Kindaisei {

  (1)
};


/* 3番目の学生の番号と名前を出力する例 */

void kadai23(void){

   struct Kindaisei gakusei[] = {135, "Aさん", 85, "Bさん", 54, "Cさん", 8, "Dさん", 12, "Eさん"};

 printf(  (2)   );
}



演習5

次のプログラムでポインターを理解しよう

#include <stdio.h>
void kadai25(){

 char array[]="abcdef";
 char* pstr="abcdef";

 printf("%s\n",array);
 printf("%s\n",pstr);

}


(1)入力し実行せよ(コピペしてよい)
(2)配列arrayとポインタpstrの関係を図示せよ。
(3)それぞれを2文字目から出力するにはどうすればよいか?
(4)それぞれを3文字目だけ出力するにはどうすればよいか?

演習6
下記のような出力をするプログラムを書け(ヒントコードを完成させよ)
0 1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
2 3 4 5 6 7 8 9
3 4 5 6 7 8 9 10
4 5 6 7 8 9 10 11
5 6 7 8 9 10 11 12
6 7 8 9 10 11 12 13
7 8 9 10 11 12 13 14

ヒントコード

void kadai25(){
 int z;

 for(int i=0;i<=7;i++){
   for(int j=0;j<=7;j++){
    z= ;
    printf("%d ",z);
   }
   printf("\n");
 }
}
Comments