問題1
以下のC言語で書かれたプログラムについて考える.
ただし,// はコメントアウトを表し,// を含め,// より右の記述はプログラムに関与しない.
#include <stdio.h>
int func(int a, int b){
int i;
int s;
s = 1;
for (i = 0; i < b; i++){
s = s * a;
}
return s;
}
int main(){
int n;
char line[256];
int i;
int s;
s = 0;
gets(line);
n = atoi(line);
for(i = 1; i <= 5; i++){
s = s + func(i, n);
printf("%d %d\n", i, s); // HERE
}
printf("%d\n", s);
return(0);
}
- 問題 1-1
関数func(int a, int b) に関して,func(2, 1) ならびにfunc(3, 4)の返す値を示せ.
- 問題 1-2
関数func(int a, int b)の機能を説明せよ.
- 問題 1-3
このプログラムを実行したときに,2を入力した.このとき,コメントアウト// HEREがついている行のプリント文が出力する結果を全て書け.
- 問題 1-4
このプログラムを実行したときに,ある整数n を入力したものとする.このとき,このプログラムが最後に出力する値をn を用いた式で表せ.
このプログラムは「基礎プロくん」の課題1として実行できる.
だが, この問題はプログラムを作る問題ではないので,
まず上の問題1-1から1-4を考えてから,
確認の意味で実行してみるとよいだろう.
[page 4]
prev
index
next