計算機プログラミング I (A クラス) 期末試験 (筆記) 解答例 2014 平成 26 年 8 月 1 日実施 解答作成 井上純一 注意 • 解答例以外にも正解とする, あるいは部分点を与える場合がある. • 自分の成績を知りたい者は 9 月以降に情報科学研究科棟 8-13 まで来ること. 問題 1 (1) ホームディレクトリ (2) 絶対パス指定: /home/i10/A/tmp/ 相対パス指定: ../tmp/ (3) 前半: mkdir program 後半: cp ../../i10/A/tmp/sample.c program/ (4) chmod o+r tmp/sample.c (5) /home/staff/akama/ 問題 2 (1) #include <stdio.h> #include <math.h> main() { int x,i,sum; for(i=1,sum=0; i<=10; i++){ scanf("%d",&x); if(x%2==0){ sum++; }else{ sum=sum; } } printf("%d\n",sum); } (2) // (a) の解答 #include <stdio.h> #include <math.h> #define maxi(a,b,c)(c>((b>a)?b:a)?c:(b>a)?b:a) main() { double x,y,z; scanf("%lf",&x); scanf("%lf",&y); 1 scanf("%lf",&z); printf("%lf\n", maxi(x,y,z)); } // (b) の解答 #include <stdio.h> #include <math.h> main() { int x; scanf("%d",&x); printf("%s\n",(x%2)?"odd":"even"); } (3) キャスト演算子. (double)a; 問題 3 (1) f (x, n) = f (x, n − 1) + (2) #include <stdio.h> #include <math.h> double FACT(int n) { if(n==0){ return (1.0); }else{ return (n*FACT(n-1)); } } double f(double x, int n) { if(n==0){ return (1.0); }else{ return (f(x,n-1)+pow(x,n)/FACT(n)); } } main() 2 xn n! { int n=10; double x=2; printf("%lf\n",f(x,n)); } 問題 4 (1) #include <stdio.h> #include <math.h> main() { int x; double y,t; scanf("%d",&x); scanf("%lf",&t); switch(x) { case 1: printf("%lf\n",8.6*t);break; case 2: printf("%lf\n",6.25*t);break; case 3: printf("%lf\n",4.41*t);break; case 4: printf("%lf\n",2.25*t);break; } } (2) ./a.out < input.dat > result.dat 3
© Copyright 2024 ExpyDoc