変数

課題1

下記のプログラムをvar1.cとして書き、コンパイルした上で、表示される結果を 確認せよ。

#include <stdio.h>

int main(void) {

    double a, b;

    printf("データを2つ入れてください ");
    scanf("%lf%lf", &a,&b);

    printf("和 = %f\n", a+b);
    printf("差 = %f\n", a-b);
    printf("積 = %f\n", a*b);
    printf("商 = %f\n", a/b);

    return 0;
}
(実行結果)
% ./a.out
データを2つ入れてください 10 20
和 = 30.000000
差 = -10.000000
積 = 200.000000
商 = 0.500000

課題2

下記のプログラムをvar2.cとして書き、上記のvar1.cとの違いを認識せよ。

#include <stdio.h>

int main(void) {

    int a, b;

    printf("データを2つ入れてください ");
    scanf("%d%d", &a,&b);

    printf("和 = %d\n", a+b);
    printf("差 = %d\n", a-b);
    printf("積 = %d\n", a*b);
    printf("商 = %d\n", a/b);

    return 0;
}
(実行結果)
% ./a.out
データを2つ入れてください 10 20
和 = 30
差 = -10
積 = 200
商 = 0

課題3

var1.cを修正して作成された、整数部分3桁、小数点以下3桁までを表示する プログラムが下記に示されている。下記のプログラムをvar3.cとして書け。

#include <stdio.h>

int main(void) {

    double a, b;

    printf("データを2つ入れてください ");
    scanf("%lf%lf", &a,&b);

    printf("和 = %7.3f\n", a+b);
    printf("差 = %7.3f\n", a-b);
    printf("積 = %7.3f\n", a*b);
    printf("商 = %7.3f\n", a/b);

    return 0;
}
(実行結果)
% ./a.out
データを2つ入れてください 10 20
和 =  30.000
差 = -10.000
積 = 200.000
商 =   0.500

課題4

文字列を入力させ、表示する下記のプログラムをvar4.cとして書け。

#include <stdio.h>

int main(void) {

    char name[30];
    int age;

    printf("名前をローマ字で入力してください ");
    scanf("%s", name);

    printf("年齢を入力してください ");
    scanf("%d", &age);

    printf("%sさんは%d才です。\n", name, age);

    return 0;
}
(実行結果)
% ./a.out
名前をローマ字で入力してください susaki
年齢を入力してください 29
susakiさんは29才です。

課題5

下記のように、標準入力から打ち込まれた1文字をそのまま標 準出力するプログラムをvar5.cとして書け。

#include <stdio.h>

int main(void) {

    char x;

    printf("1文字ローマ字で入力してください ");
    scanf("%c", &x);
    printf("%c\n", x);

    return 0;
}
(実行結果)
% ./a.out
1文字ローマ字で入力してください h
h

課題6

下記のように、標準入力から打ち込まれた1文字をそのまま標 準出力するプログラムをvar6.cとして書け。ここでは、上記のプログラムと異 なり、getchar(), putchar()を使用している。

#include <stdio.h>

int main(void) {

    int x;

    printf("1文字ローマ字で入力してください ");
    x = getchar();
    putchar(x);
    putchar('\n');

    return 0;
}
(実行結果)
% ./a.out
1文字ローマ字で入力してください h
h

課題7

入力した2つの変数の値をスワップ(交換)させて出力するプログラムを var7.cとして書け。ただし、入力される値は整数とする。

(実行結果)
% ./a.out
整数を2つ入れてください 10 20
元々の値: a = 10, b = 20
交換後の値: a = 20, b = 10

課題8

var7.cを修正して、 入力した3つの変数の値をスワップ(交換)させて出力するプログラムを var8.cとして書け。ただし、入力される値は整数とする。

(実行結果)
% ./a.out
整数を3つ入れてください 10 20 30
元々の値: a = 10, b = 20, c = 30
交換後の値: a = 20, b = 30, c = 10

課題9

入力された金額の1割引きの金額を表示させるプログラムを var9.cとして書き、様々な数値で試して 正しく実行されることを確認せよ。その際に、下記の実行結果を参考にせよ。

(実行結果)
% ./a.out
金額を入力してください 6000
6000円の1割引きで5400円の支払いです。
%
% ./a.out
金額を入力してください 9999
9999円の1割引きで9000円の支払いです。
%
% ./a.out
金額を入力してください -1000
正しく金額を入力してください。

須ア純一 京都大学大学院 工学研究科社会基盤工学専攻 空間情報学講座
[C言語 演習問題トップページ] [須ア純一ホームページ]