IT情報@PRO人

C言語 練習問題 05

この記事は2016年6月29日に書かれたものです。内容が古い可能性がありますのでご注意ください。


C言語練習問題

C言語練習問題

環境について

C言語の練習問題です。

開発環境は以下の通り。

PC:MacBook Pro 2011early 15inch

OS:Windows 8.1(デュアルブート)

メモリ:16GB(8GB x 2)

CPU:Core i7-2635QM 2.00GHz

コンパイラ:MinGW-w64 5.3.0 (posix, sjlj)

 

※問題文に書いてあるプログラムを実行する際は自己責任で実行してください。

 

問題

次のプログラムを作った。コンパイル、実行に関して、以下の問いに答えよ。

プログラム(test05.c)

#include<stdio.h>
int main(void){
 int a = 10;
 while(true){
 printf("Hello World!");
 }
 return 0;
}

問1.次のコマンドをコマンドプロンプトから打ち込んだ。どのような結果になるか。

A,B,Cの選択肢から適切なものを選べ。また、選んだ選択肢の中の空欄を埋めよ。

なお、コマンドを入力する前はディレクトリ内のファイルはtest05.cのみであった。

gcc test05.c -o test05.exe

選択肢A,B,C

A.コンパイル成功して(空欄1)が生成される

B.(空欄1)行目でコンパイルエラー

C.コマンドの(空欄1)の部分が間違っているためコンパイルに失敗する

 

 

問2.その後、次のコマンドをコマンドプロンプトから打ち込んだ。どのような結果になるか。 A,B,Cの選択肢から適切なものを選べ。また、選んだ選択肢の空欄を埋めよ。

 test05

A.ファイルが実行されHello World!が画面表示され、(空欄1)が起こる。

B.(空欄1)というファイルがないため実行できない

C.コンパイルはされているが、実行ファイルに(空欄1)という問題があるため実行ができない

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

解答

問1

B.(4)行目でコンパイルエラー

 

問2

B.(a.exe)というファイルがないため実行できない

※実行ファイルができていないことが指摘されていれば正解とする。

解説

問1,問2

一見すると正しいように見えるが、コンパイルは失敗する。javaなどではtrueは真boolean型で、真という意味であるためコンパイル出来るが、C言語ではstdboolヘッダをincludeしていない場合、trueとfalseは使用できない。そのため、該当箇所でコンパイルエラーが起こる。

なお、stdboolやstdintはc99で追加された標準ライブラリなので、c89準拠の環境では使用しないように注意しなければならない。

 

  • このエントリーをはてなブックマークに追加

PAGE TOP