過去の質問とその回答(桑田処理分)
2007年度 「基礎プログラミングおよび演習」質問とその回答
桑田 kuwada@edu.cc.uec.ac.jp
<<ガイダンス:2007.10.01>>
[Q01]: 環境設定の仕方がわかりません。
[A01]: 通常の人はすでに環境設定されています。
sun にログインして kterm を起動し(対象ファイルが日本語を含む)、
ファイル ~/.emacs や ~/.cshrc の内容を
emacs 読み込むか cat コマンドで表示して確認してください。
[確認事項]授業に関連した環境設定
設定されていない人は sun にログインして /class/ee/bin/setup_ip を実行してください。
<<第01回:2007.10.15>>
[Q02]: アクセス制限を設定してあるページを開けません。
[A02]: 前回の授業時に説明しました。
アクセス制限設定ページへのアクセスについて [アクセス制限]
[Q03]: グループの作業がよくわかりません。
[A03]: 演習問題解答の説明と報告について、
レポート課題解答の採点と報告について、
課題レポート関係情報
を参照してください。
<<第02回:2007.10.22>>
[Q04]: WebClass のコンテンツが正しく表示されません。
レポート課題のページで演習の問題が表示されます。
[A04]: 当該レポート課題の学習履歴を削除する必要があります。
「WebClass の不具合があった場合の対処について」を参照の上、申し出てください。
[Q05]: 複数のファイルを一つにまとめる方法がわかりません。
[A05]: Web ページ「複数のファイルを一つにまとめる方法について」を参照してください。
[Q06]: セミコロン(;)の意味(必要性)がわかりません。
[A06]: C言語ではセミコロンは文の終りを意味します。
if 文や while 文などの条件には式を記述する(文ではない)ので、セミコロンはつけません。
Web ページ「文」、
「C言語の式」を参照してください。
[Q07]: pad2ps でコンパイルエラーが出るのですが、原因がわかりません。
[A07]: Web ページ「PAD ソースファイル記述上の注意」を参照してください。
<<第03回:2007.10.29>>
[Q08]: PAD で三者択一構造を表現したいのですが。
[A08]: switch 文 を使用すればよいのですが、
まだ学習していませんので if-else 文
を使用してください。
<<第04回:2007.11.05>>
特になし
<<第05回:2007.11.12>>
[Q09]: Emacs で C のプログラムを作成しているとき、
文字に色がつくのですが何でしょうか。
[A09]: Emacs の カレントバッファのモード情報を見るとわかります。
Font Lock モードについてを参照してください。
[Q10]: gcc -o p05_2 p05_2.c
でコンパイルして、./p05_2.c
を実行すると
./p05_2.c: アクセス権がありません。
と表示されて、プログラムが実行できません。
[A10]: コマンドとオプションの意味を再確認しましょう。
実行ファイル名は -o
オプションで指定した p05_2
です。
./p05_2
とすれば実行できます。
[Q11]: gcc -o sample1 sample1.c -lm
の -lm
は何ですか。
[A11]: sample1.c で標準数学関数 pow(x, y)
を用いているため、
ヘッダファイル#include
を読み込んでいます。
コンパイル時に使用する数学関数のオブジェクトをリンクする必要があります。
-lname
で libname
をリンクします。
<<第06回:2007.11.19>>
特になし
<<復習1:2007.12.03>>
[Q12]: script
コマンドを実行後、キー入力して改行をすると終了します。
[A12]: script
コマンドはフォアグランド(& をつけない)で実行しましょう。
バックグラウンドで使用すると実行したターミナルからのキー入力が
script
コマンドに渡りません。
○正しい使い方:script file.log
×誤った使い方:script file.log &
<<第7回:2007.12.10>>
[Q13]: データ型の変数がそれぞれ何ビットで表現されているか
sizeof
演算子を使って printf 関数で表示する方法が
わかりません。
[A13]: sizeof
は、その被演算数の型のオブジェクトを
格納するのに必要なバイト数を整数で返すので、
次のようにするとよいでしょう。
printf("double 型変数は %d ビットで表現されています。\n", sizeof(double) * 8);
[補足]1バイト = 8ビット
<<第8回:2007.12.17>>
[Q14]: ktermi で日本語を入力する方法がわかりません。
[A14]: 情報基盤センターの教育系システムFAQを参照してください。
日本語を入力する方法は?
[Q15]: WebClass のコンテンツをカットアンドペーストでEmacs に
コピーして、保存した C プログラムソースをコンパイルし、
実行すると文字化けします。
[A15]: Emacs のモードライン(下部の反転表示部)のファイルコードが
「u」になっている場合、ファイルのコードがユニコードとなっています。
sun 上では EUCでないと正常に動作しません。
「nkf -e file.c >file2.c
」で日本語コードをEUC に変換して使用してください。
[Q16]: 「第08回 演習その2」の 8.2 のプログラムをコンパイルして実行した際、
数字の 0
を入力しても n
の値が 0
のままではないのですが。
[A16]: プログラムの while
文の条件式 a[n] != 0
の 0
は、
数字の 0
(16進数の30
に対応する文字 '0'
)で)ではなく、
文字列の終端を表すヌル文字(16進数の 00
に対応する文字'\0'
) です。
キー入力された数字の 0 は、コンピュータ内部では
ASCIIコード 30
(16進)に対応する文字コード '0'
として扱われます。