問題1.
xをint型、yをfloat型の変数とするとき、次の計算の結果、値がいくらになるかを示せ。
a) x = 7 + 3 * 6 / 2 - 1; b) x = 2 % 2 + 2 * 2 - 2 / 2; c) x = 2.4 / 3 + 0.5; d) y = 3 / 6 * 4; e) y = 3 * 3 / 6;
問題2
次のプログラムをwhile文に書き直せ。
do{ if (a % 2 == 0) printf("%d", a); a ++; }while(a < 100);
問題3.
以下は、abc.dat というファイルよりデータを読み込んで、その内容を、output.dat に対して、そのファイルの内容を破棄することなく、追加して書き込むプログラムである。第5, 10, 11, 15, 19行目に誤りがあるが、その誤りを修正したプログラム文を、解答欄に書け。ただし、これらの行以外には、誤りはないものとする。なお、修正すべき誤りは、1行につき1箇所とは限らない。
ファイル abc.dat の内容
Takagi Tadashi 29
1: #include <stdio.h>
2: struct person{
3: char lname[15];
4: char fname[15];
5: int age
6: };
7: main()
8: {
9: struct person x;
10: FILE ifp, ofp
11: if((ifp = fopen('abc.dat', "r")) != NULL){
12: fprintf(stderr, "Can't open abc.dat¥n");
13: exit(1);
14: }
15: if((ofp = fopen("output.dat", "w")) == NULL){
16: fprintf(stderr, "Can't open output.dat¥n");
17: exit(1);
18: }
19: fscanf(ifp,"%s %s %d",x.lname,x.fname,x.age);
20: fprintf(ofp,"%s %s %d years old¥n",
21: x.lname, x.fname, x.age);
22: fclose(ifp);
23: fclose(ofp);
24: }
問題5.
以下の1〜9のプログラム文を[ア]の部分に正しく並べかえて、選択ソートを行なう関数を作成せよ。解答は、正しい順に番号を括弧内に書け。
1: lowest = i; 2: lowest = j; lowkey = a[j]; 3: } 4: t = a[i]; a[i] = a[lowest]; a[lowest] = t; 5: for(i=0; i<n-1; i++){ 6: lowkey = a[i]; 7: for(j=i+1; j<n; j++) 8: if(a[j] < lowkey){ 9: }
void selection_sort(int a[], int n) { int i, j, t, lowest, lowkey;[ア] }
問題6.
次のプログラムについて、解答欄にある main 関数によって同じ結果を出力するように、関数 planet¥_read およびそのプロトタイプ宣言、を解答欄に書き加えよ。
scanf("%s %f %d", star.name, &star.d, &star.s);
vol = star.d*star.d*star.d/6*PI;
printf("%s has %d satellites, volume: %fkm^3¥n",
a.name, a.s, vol);
}
#include <stdio.h>
#define PI (3.14159265358979323846)
struct planet{
char name[20];
float d;
int s;
};
main()
{
struct planet star;
double vol;
解答欄
#include <stdio.h>
#define PI (3.14159265358979323846)
struct planet{
char name[20];
float d;
int s;
};
main()
{
struct planet a;
double vol;
vol = planet_read(&a);
printf("%s has %d satellites, volume: %fkm^3¥n",
a.name, a.s, vol);
}