ソフトウエア演習C 前提テスト

本テストは、皆さんの現状を理解するためのものであり、成績評価とは一切関係ありません。

それぞれのチェック項目について該当する部分にチェックを入れてください。

チェック項目 何も見ないで
プログラムに
使える
テキストを見ながら
ならプログラムに
使える
忘れてしまった
よくわからない
自信がない
変数の宣言      
変数の代入      
printf文による標準出力      
scanf文による標準入力      
if, thenを用いた条件分岐      
while文を用いたループ      
for文を用いたループ      
関数の値による呼び出し      
グローバル変数とローカル変数      
配列      
文字配列      
ポインタ      
関数の参照による呼び出し      
構造体      

以下は、プログラムに関する問題が計4題あります。何も見ないでやってみてください。

問題1 下記は、元旦から数えた日数を読み込み、その日付を出力するプログラムです(うるう年は考慮してません)。【】内に適切な文を埋めなさい。

#include <stdio.h>

int main()
{
 int i;
 int day; /* 元旦からの日数 */
  /*各月の日数を配列(配列名month)で宣言し、初期値を定義:各月の日数は1月から順に、31,28,31,30,31,30,31,31,30,31,30,31である。 */
  【                                       】

 printf("Input days since Jan. 1 : ");
 scang("%d",&day); /* 元旦から数えた日数を入力 */

  /* 日付を算出および出力 */
 【                     】{  /* for文を用いて12ヶ月分繰り返す */
   if ( day <= 【         】){ 
     printf("Date is %d/%d.\n", i + 1, day);
     return 0;
   }
   day -= month[i]; /* 入力した日数から月の日数を引く */
  } /* for文終了 */

 printf("Error: Too many days\n");
 return -1; /* エラーで終了 */
}

問題2 下記は、入力した整数を2倍して出力するプログラムである。関数twiceは、引数として整数型の変数を受け取りそれを2倍して返す(戻り値も整数型)。【】内に適切な文を埋めなさい。

#include <stdio.h>

【             】

int main()
{
 int a;
 printf("a?: ");
 scanf("%d", &a);
 【                】 /*関数twiceをCall by valueで呼び出す。その結果をaに戻す/
 printf("a:%d",a);
 return 0;
}

【      】 twice(【         】)
{
 int b;
 b = c * 2;
 【         】

 

問題3 2つの変数の値を、ポインタを用いて交換する以下ののプログラムソースについて、【】内の空欄を埋めなさい。

/* int_swap.c */

#include <stdio.h>

/* 2つのint型変換の値を交換 */
void int_swap(int 【     】, int 【     】)
{
int tmp; /* 交換用 */

【    】 = 【    】 ;
【    】 = 【    】 ;
【    】 = 【    】 ;
}

int main()
{
int a, b; /* 交換する2つの変数 */

printf("a?: ");
scanf("%d", &a);
printf("b?: ");
scanf("%d", &b);

printf("a: %d, b: %d\n", 【    】 , 【    】); /* 交換前の値を表示 */
int_swap(【    】 , 【    】 ); /* Call by refernce で int_swap() 関数を呼び出し */
printf("a: %d, b: %d\n", 【    】 , 【    】); /* 交換後の値を表示 */

return 0;
}

 

問題4 構造体fruits(メンバ:int型のcode、char型のname、float型のweight)について、下表のような構造体配列(配列名はaaa)を宣言し、各要素番号と対応するように初期値を代入する。そして、その配列から一番weightの値が低いものを探して、そのnameを画面に表示するC言語プログラムを書きなさい。

構造体fruits
配列の要素番号 code name weight
0
101 apple 120.3
1
102 orange 60.5
2
103 grape 180.0
3
104 banana 90.7


 

 

 



2005/04/11 ichikawa@soft.iwate-pu.ac.jp