IT情報@PRO人

C言語 練習問題 39

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


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)

 

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

※※各問題へのリンク一覧を作成しました。

問題

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

 

プログラム(test39.c)

#include <stdio.h>

int main(void){
  //Hello World!!
  printf("Hello World!!");
 
  return 0;
}

 

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

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

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

gcc test39.c -o test39.exe -std=c89

 

選択肢A,B,C

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

B.( 空欄1 )ためコンパイルエラーが起こる。

C.コマンドの( 空欄1 )の部分が間違っているためコンパイルが実行されない。

 

 

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

 test39

 

選択肢A,B,C

A.ファイルが実行され( 空欄1 )と画面に表示される。

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

C.コンパイルはされているが、( 空欄1 )という問題があるため実行は危険である。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

解答

問1

B.( C89では//によるコメントアウトは仕様にない )ためコンパイルエラーが起こる。

※該当内容が指摘できていれば正解とする。解説参照。

 

問2

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

 

解説
問1,問2

今回はHello World!!と表示するプログラムになっている。

一見すると全く問題ないように見えるが、//を利用した単一行のコメントアウトが規定されたのはC99であり、C89では規定されていない。

そのため、4行目のコメントアウトの部分でコンパイルエラーとなる。

 

今回のプログラムをコンパイル・実行したければ、例えばコンパイル時に-std=c99オプションを使用してC99準拠でコンパイル・実行する、などの方法を用いればよい。

プログラムは問題と同一のものを使用。

 

実行結果

>gcc test39.c -o test39.exe -std=c99

>test39

Hello World!!

 

 

 

 

他の問題へのリンク一覧はこちら

 

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

PAGE TOP