第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");
}
}