プログラミング序論(問題例)

2015/06/15水野

※演習部分が40点なので筆記試験は60点満点です

まずはを見ないで解いてみましょう。

問1 
次のプログラムについて以下の問いに答えなさい。(30点)

#include <stdio.h>
int list[]={1,2,3,4,5,6,7,-1};
void print(int max)
{
	int i;
	for(i=0;i<max;i++){ printf("%d ",list[i]); }
	printf("\n");
	return;
}
int count(void)
{
	int i;
	i=0;
	while(list[i]!=-1){ i++; }
	return i;
}
void function(int max)
{
	int i;
	for(i=0;i<max;i++){ list[i]=list[i+1]; }
	print(max);
	return;
}
int main( void )
{
	int max;
	max=count();
	print(max);
	function(max);
	return 0;
}

1) プログラムが実行される時に、関数がどのような順番で呼び出されるか示しなさい。

2) 関数countの処理内容を説明しなさい。

3) プログラムが実行された時の出力を示しなさい。.

問2 C言語に関する以下の3つの問いに具体的に答えなさい。 (30点)

1)ソースファイルから実行可能ファイルを作成するためのコンパイルとリンクはそれぞれ何を行う処理か

2) 実行の流れを分岐させる構文を具体的に説明しなさい

3) 標準関数とはどのようなものか、どのようにして利用するか説明しなさい。