C言語練習問題
C言語練習問題
環境について
C言語の練習問題です。
開発環境は以下の通り。コンパイラ、OSともに64bit環境である。
PC:MacBook Pro 2011early 15inch
OS:Windows 8.1(デュアルブート) 64bit版
メモリ:16GB(8GB x 2)
CPU:Core i7-2635QM 2.00GHz
コンパイラ:MinGW-w64 5.3.0 (posix, sjlj)
※問題文に書いてあるプログラムを実行する際は自己責任で実行してください。
※※各問題へのリンク一覧を作成しました。
問題
次のプログラムを作った。コンパイル、実行に関して以下の問いに答えよ。
プログラム(test48.c)
#include <stdio.h> int main(void){ printf("Hello World!\n\r"); return 0; }
makeファイル(Makefile)
※ブログ上では表記の都合で半角スペースでタブの代用を行うが、Makefile内ではスペースやタブの挿入、改行は適切に行われているものとし、その点はエラーの原因にならないものとする。
# Makefile all: main main: test48.o gcc -o test48 test48.o -std=c99 test48.o: test48.c gcc -c test48.c -std=c99 clean: rm test48.o
問1.次のコマンドをコマンドプロンプトから打ち込んだ。どのような結果になるか。
A,B,Cの選択肢から適切なものを選べ。また、選んだ選択肢の中の空欄を埋めよ。
なお、コマンドを入力する前はディレクトリ内のファイルはtest48.cとMakefileのみであった。また、今回の環境ではmakeコマンドの代わりにmingw32-makeコマンドを用いる。
mingw32-make mingw32-make clean
選択肢A,B,C
A.makeが実行され最終的に( 空欄1 )が生成される。
B.( 空欄1 )ためmakeが実行されない。
C.打ち込んだコマンドのうち、( 空欄1 )行目のmakeだけ実行されない。
問2.その後、次のコマンドをコマンドプロンプトから打ち込んだ。どのような結果になるか。 A,B,Cの選択肢から適切なものを選べ。また、選んだ選択肢の空欄を埋めよ。
test48
選択肢A,B,C
A.ファイルが実行され( 空欄1 )と画面に表示される。
B.( 空欄1 )というファイルがないため実行できない。
C.コンパイルはされているが、( 空欄1 )という問題があるため実行は危険である。
解答
問1
A.makeが実行され最終的に( test48.exe )が生成される。
問2
A.ファイルが実行され( Hello World! )と画面に表示される。
解説
問1,問2
今回はmakeを利用している。makefileという名前のファイルにコンパイル時の依存関係などを記して置くと、記された内容に従ってコンパイルが行われる。
今回はmakefileの内容に問題はない。また、通常はmakeコマンドでmakeが実行されるが、前述のとおり今回の環境ではmingw32-makeコマンドでmakeを実行する。そのため、コマンドにも問題はない。なお、makeはc言語以外の言語にも利用できるものがある。
makeファイルは適切に使用すればコンパイル作業が楽になる。記述方法に注意し、上手に利用すること。
実践力が身につくC言語講座 連載リンク
競技プログラミングをイメージしたライブラリ活用講座
競技プログラミング風-標準Cライブラリ入門 連載
アルゴリズムをマスターして技術力アップ!
実践アルゴリズム講座 連載
パズルゲームの解析をテーマにしたC++講座
ゲーム解析プログラミング 連載