• Tidak ada hasil yang ditemukan

プログラミング応用 練習問題(

N/A
N/A
Protected

Academic year: 2024

Membagikan "プログラミング応用 練習問題("

Copied!
11
0
0

Teks penuh

(1)

プログラミング応用  練習問題(1/5) 2005/01/27 名列番号        氏名       

問1. 次の文章の下線部および表の空欄①〜⑦を埋めてC言語とそのデータ型の説明を完成せよ。(7)

C言語は    ①      化言語である。    ①      とは、ある機能を実現した定義済み処理のことである。

C言語における        ②      文をプログラムの先頭に記述することで、標準ライブラリ    ①  を 利用できるようになる。C言語で利用できる基本的なデータ型には以下の表のようなものがある。

解答

問2. 下線部を埋めて下記の「キーボードから入力した整数の回数(例えば3)だけ、

  Hello1 Hello2 Hello3

のように表示する(各“Hello数字”  の表示は改行して表示する)」プログラムを完成せよ。(16)  

      <stdio.h> 

 

void       { 

  int  i , n; 

         ("         ",        ); 

  for( i=0 ;      ;       ){ 

    printf("       ", i+1 ); 

 

問3. 次の演算子を使った式の中で間違っているものはどれか、番号を解答欄に答えよ。(式にはif 文などで使わ れ

(1) y+1 < x+2  (2) y=y+2  (3) x+3 = 25  (4) a=b=c=d  (5) z+3 == x+4 

  }

る条件式も含まれる)(10)

(2)

プログラミング応用  練習問題(2/5) 2005/01/27 名列番号        氏名       

問4. 引数として整数 a(1<=a<=3)を受け取り、a=1 の時には"グー" 、a=2 の時には"チョキ"、a=3 の時には"

パー"と画面に表示する関数jankenをswitch case文を使って完成せよ。(5) void  janken( int  a ){ 

  swtich 

                }   

問5. 次のプログラムに適切な条件式を答えよ。(9)

(1) if( ){

変数aとbが両方とも正の数の場合の処理(0は正の数ではない)

}

(2) while(      ){

変数xとyのどちらかが負の数になったら繰り返しを終了する

(それまではこの部分を繰り返す)

}

(3) if( ){

変数rが3の倍数の場合の処理 }

問6. 以下のプログラムを実行すると画面にはどのように表示されるか答えよ。(解答は各プログラムの下に)(30) (2) 

#include <stdio.h> 

 

int  f(int a[] , int n){ 

   int  i , x=0; 

   for(i=0 ; i<n ; i++)        x = x + a[i]; 

   return  x; 

}   

void main(){ 

   int x[] = {10 , 20 , 30 }; 

   printf("ans=%d" , f(x , 3) ); 

} (1) 

#include <stdio.h> 

 

int  f(int a){ 

   int  i , x=1; 

   for(i=0 ; i<a ; i++)        x = x * 3; 

   return  x; 

}   

void main(){ 

   printf("ans=%d" , f(4) ); 

(3)

プログラミング応用  練習問題(3/5) 2005/01/27 名列番号        氏名       

問6のつづき

(4) 

#include <stdio.h> 

 

void  f(int a , int b, int *c, int *d){ 

  a = a + b; 

  *c = a; 

  *d = *c / 2; 

}   

void main(){ 

  int  a =10, b=20 , c , d; 

  f( a , b , &c , &d ); 

  printf("a=%d ", a); 

  printf("b=%d ", b); 

  printf("c=%d ", c); 

  printf("d=%d ", d); 

}  (3) 

#include <stdio.h> 

 

void  main(){ 

  int  a , b , *c , *d , *e  ; 

  a = 10 ; 

  b = 10 ; 

  c = &a ;    d = &b ; 

  e = c ; 

  *e = *e * 10 ; 

  e = d ; 

  *e = *e * -10 ;    *c = *c + *d; 

  printf("a=%d , b=%d ", a , b ); 

(6) 

#include <stdio.h> 

 

char  f( char x ){ 

  return  0x0f & x; 

}   

void main(){ 

  printf("%d" , f( 0xAA ) ); 

}   

参考:  char 型を%d で表示すると char 型を整数として 表示する 

(5) 

#include <stdio.h> 

int  a; 

 

void f1( int x ){ 

  a = x * x; 

  f2(a); 

  printf( “f1a=%d\n”, a); 

}   

void f2( int x ){ 

  int  a; 

  a = 10 + x; 

  printf( “f2a=%d\n”, a); 

}   

void main(){ 

  a = 5 ; 

  f1(a); 

  a = a+100; 

  printf( “ma=%d\n”, a); 

  f2(a); 

  printf( “ma=%d\n”, a); 

(4)

プログラミング応用  練習問題(4/5) 2005/01/27 名列番号        氏名       

問7. 空欄を埋めて以下の関数を完成せよ。(13)

(1) 引数xとnからxを計算する関数

 

int  f( int x , int n ){ 

   int  i , a=1; 

   for(      ;      ;      ){ 

      a =                       ;      } 

      ;  } 

(2) 配列とそのサイズを引数として受け取り、配列データの中の最大値を返す関数

 

int  f(      , int n ){ 

   int  i , max ; 

   max =      ; 

   for(      ;      ;      ){ 

      if(      ){ 

      ;        } 

   } 

      ;  } 

 

(5)

プログラミング応用  練習問題(5/5) 2005/01/27 名列番号        氏名       

問8. 

以下の関数を作成せよ。 (10)

(1) 配列とそのサイズおよび、配列の最大値と最小値を求めた結果を返すための変数のアドレスを 受け取り、配列に保存されたデータの最大値と最小値を求めて返す関数

(2) 2つの数値の合計と平均を一度に求める関数

(6)

プログラミング応用  練習問題 回答例(一部) 2005/01/27 名列番号        氏名       

問3. の演算子を使った式の中で間違っているものはどれか、番号を解答欄に答えよ。(式にはif文などで使わ れる条件式も含まれる)(10)

(1) y+1 < x+2  (2) y=y+2  (3) x+3 = 25  (4) a=b=c=d  (5) z+3 == x+4  解答 (3)

(7)

プログラミング応用  練習問題 回答例(一部) 2005/01/27 名列番号        氏名       

問4.引数として整数a(1<=a<=3)を受け取り、a=1の時には"グー" 、a=2の時には"チョキ"、a=3の時には"パ ー"と画面に表示する関数jankenをswitch case文を使って完成せよ。(5)

void  janken( int  a ){ 

  swtich( a ){ 

    case 1 : printf(“グー”); 

      break; 

    case 2 : printf(“チョキ”); 

      break; 

    case 3 : printf(“パー”); 

      break; 

  } 

}   

問2. 以下のプログラムを実行すると画面にはどのように表示されるか答えよ。(解答は各プログラムの下に)(30) (2) 

#include <stdio.h> 

 

int  f(int a[] , int n){ 

   int  i , x=0; 

   for(i=0 ; i<n ; i++)        x = x + a[i]; 

   return  x; 

}   

void main(){ 

   int x[] = {10 , 20 , 30 }; 

   printf("ans=%d" , f(x , 3) ); 

} (1) 

#include <stdio.h> 

 

int  f(int a){ 

   int  i , x=1; 

   for(i=0 ; i<a ; i++)        x = x * 3; 

   return  x; 

}   

void main(){ 

   printf("ans=%d" , f(4) ); 

ans=81 ans=60

問6のつづき

(4) 

#include <stdio.h> 

 

void  f(int a , int b, int *c, int *d){ 

  a = a + b; 

  *c = a; 

  *d = *c / 2; 

}   

void main(){ 

  int  a =10, b=20 , c , d; 

  f( a , b , &c , &d ); 

  printf("a=%d ", a); 

  printf("b=%d ", b); 

  printf("c=%d ", c); 

  printf("d=%d ", d); 

}  (3) 

#include <stdio.h> 

 

void  main(){ 

  int  a , b , *c , *d , *e  ; 

  a = 10 ; 

  b = 10 ; 

  c = &a ;    d = &b ; 

  e = c ; 

  *e = *e * 10 ; 

  e = d ; 

  *e = *e * -10 ;    *c = *c + *d; 

  printf("a=%d , b=%d ", a , b ); 

(8)

プログラミング応用  練習問題 回答例(一部) 2005/01/27 名列番号        氏名       

(3) (4)

a=0 , b=−100 a=10

b=20 c=30 d=15

(6) 

#include <stdio.h> 

 

char  f( char x ){ 

  return  0x0f & x; 

}   

void main(){ 

  printf("%d" , f( 0xAA ) ); 

}   

参考:  char 型を%d で表示すると char 型を整数として 表示する 

    10  (5) 

#include <stdio.h> 

int  a; 

 

void f1( int x ){ 

  a = x * x; 

  f2(a); 

  printf( “f1a=%d\n”, a); 

}   

void f2( int x ){ 

  int  a; 

  a = 10 + x; 

  printf( “f2a=%d\n”, a); 

}   

void main(){ 

  a = 5 ; 

  f1(a); 

  a = a+100; 

  printf( “ma=%d\n”, a); 

  f2(a); 

  printf( “ma=%d\n”, a); 

}       

(9)

プログラミング応用  練習問題 回答例(一部) 2005/01/27 名列番号        氏名       

問3. 空欄を埋めて以下の関数を完成せよ。(13)

a. 引数xとnからxを計算する関数

 

int  f( int x , int n ){ 

   int  i , a=1; 

   for(      ;      ;      ){ 

      a =                       ;      } 

      ;  } 

ヒント:初期値1の変数aにXをn回掛ける。(この操作はn回の繰り返しで行う)

      最後にreturn文で結果を返す

b. 配列とそのサイズを引数として受け取り、配列データの中の最大値を返す関数

 

int  f(      , int n ){ 

   int  i , max ; 

   max =      ; 

   for(      ;      ;      ){ 

      if(      ){ 

      ;        } 

   } 

      ;  } 

 

ヒント:配列としてたとえば x を受け取った場合(x[0]〜x[n-1]) 

  変数 max の初期値を x[0]にする。 

      max の意味は、 「それまでに確認したデータ内での最大値」である。 

  初期値を x[0]とするのは、まず最初のデータのみを確認したとき、その 1 個のデータ 内での最大値は、その値そのものということである。 

次に、max と x[1]を比較する。x[1]が max よりも大きければ、max に x[1]の値を記憶する。

つまり、それまでの最大値よりも x[1]が大きければ、x[1]までの最大値は x[1]ということに

(10)

プログラミング応用  練習問題 回答例(一部) 2005/01/27 名列番号        氏名       

なる。次に、max と x[2]を比較する。以後、同様の操作を繰り返していけば、最大値を求め

ることができる。最後は return max  で最大値を返す。 

(11)

プログラミング応用  練習問題 回答例(一部) 2005/01/27 名列番号        氏名       

問4. 

以下の関数を作成せよ。 (10)

c. 配列とそのサイズおよび、配列の最大値と最小値を求めた結果を返すための変数のアドレス を受け取り、配列に保存されたデータの最大値と最小値を求めて返す関数

引数としてポインタを使う。つまり

void  f( int  x[] , int  n , int *max , int *min )で始まる。 

d. 2つの数値の合計と平均を一度に求める関数

Referensi

Dokumen terkait

autotrophicumʼ の系 統的位置 (A) バクテリアとアーキア(368種) に共通な4つのタンパク質を連結し たアミノ酸配列を基に最尤法で作成 された系統樹.(B) 358種のバクテリ アに共通な16種のタンパク質を連結 したアミノ酸配列を基に最尤法で作 成された系統樹.図中の数値はブー トストラップ値. 0.3 OP1 92 100 100

― 資 料 ― 被服製作実習における基礎縫い練習の効果 古 田 貴美子 The Effects of Basic Sewing Training in Clothes Making Practice Kimiko FURUTA 要 旨 大学生の被服製作の技術を向上させるため,2016年から実習の時間内に基礎縫いの

2/2 第 3 回 8月センター試験本番レベル模試[数学Ⅱ・数学B]講評 第 2 問 微分法・積分法(30 点) 領域と最大・最小の考え方について確実に理 解しておこう。 前半は極値と最大・最小に関する問題,後半は領 域の面積と点がこの領域内を動くときの最小値を求 める問題である。平均点は 20.0 点(得点率 66.8%) であった。 設問ア~クは,3

【講習会のご案内】 われわれの住む地表空間をマネージするための リモートセンシング画像の解析とその応用 〜MultiSpecを用いたハンズオンワークショップ〜 講師 飯坂譲二(カナダ・ビクトリア大学地理学科教授) ■ワークショップの概要 地球の温暖化の問題をはじめ、地球環境問題は最近の世界の重要な関心事の一つとなって

熊本大学 数理科学総合教育センター 不偏推定量 , 一致推定量 , 最尤推定量 演習問題2 母数θの母集団からの標本をX1, X2,.. , Xn とする.ここでは統計量,推定量,推定量の不偏 性,一致性を次の意味で用いる.

熊本大学 数理科学総合教育センター §2 データリテラシー 2 演習問題 問題の難易度の目安【易】899 【基礎】889 【標準】888 1 889統計的観点からの考察 ある大学の学生の成績表には,S秀,A優,B良,C可の4種類と不合格Fのみが記載さ れている.Sは90点から100点,Aは80点から89点,Bは70点から79点,Cは60点から69

,bn}をRn の2組の基底とし,P を基底Aか ら基底Bへの基底取り替え行列とする.このとき,以下の問に答えよ. i P は正則行列であり,P−1は基底Bから基底Aへの基底取り替え行列になることを示せ. ii id : Rn →Rnを恒等写像とする.すなわち各x∈Rnに対してidx =xで定まる線形写 像である.その基底Bと基底Aに関する表現行列はP

■Color space transformations 色空間での変換 □h / hue [float] HSB色設定での色相hue(略称 h ) [実数] Adds the 'float' value to the hue color parameter for the current state.. 現在の色彩設定に対して、色相hueの数値に