トップページ⇒tech
81コメント21KB

C言語検定試験(入門編)

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
http://www.orchid.co.jp/computer/cschool/clb_start.html

出題した内容は、関連知識として実験して
おいてほしいことを多数盛り込んであります。
点数にとらわれず、課題だと思っていろいろと
実験してみてください。
○×問題なので、簡単過ぎないようにするため
素直でない問題が多くなってしまいました。
                (以上コピペ)
0002デフォルトの名無しさんNGNG
シクシク
55点だった
0003デフォルトの名無しさんNGNG
80点でした。
まだまだ厨房だな俺。
0004名無しさん@お腹いっぱい。NGNG
100点だったよ。でも、問題に美しさが足りないと思った。
0005名無しの笛の踊りNGNG
1です。
>>2-4ご協力ありがとうございました(謎
もうちょっと、スレ題に工夫が必要ですね。
今後sagaるようならスレ題かえて出直します。
0006デフォルトの名無しさんNGNG
悪いけど問題が悪いよ。
staticには二つの意味があるのを知っているのか?
外部変数の static int a;と int a;は意味が違うんだよ。
staticをつけると別のファイルのソースから参照できなくなる。
それを知っていて出したとは思えない問題が出てきたよ。
その他細かいこといえばいろいろあるね。
K&R基準で出題したといいつつ、変数名は31文字だって?
K&Rは8文字までだよ。
君自身べんきょうしなおせやタコ。
きちんと勉強した人にとっては複数の意味に解釈できて答えようがない問題ある。
0007nanacyNGNG
60点だった。何が間違ってたのかわからにゃい。
0008デフォルトの名無しさんNGNG
変な問題が多い。回答不能なのもあった
0009nanacyNGNG
なるほど。不正解は5点減点か。
そうすると、おいらは、4問間違えたのね。
0010デフォルトの名無しさんNGNG
50点・・・

鬱打詩嚢
0011デフォルトの名無しさんNGNG
この問題のわけがわからなかった。
=================
文字定数"abcd"は、サイズが4以上の配列にしかコピーすることができない。
main()
{
char a[4], b[5];

strcpy(a, "abcd"); サイズが4以上の配列なのでコピーできる。
strcpy(b, "abcd"); サイズが4以上の配列なのでコピーできる。
}

===================
 abcd は、\0 を含めて 正常にコピーするには 5以上の配列にしかコピー
できないわけだけど・・・よくわからん問題文だ。
ズバリ「わからない」が答え?
0012デフォルトの名無しさんNGNG
「サイズ」の定義が何なのか。
0013nanacyNGNG
>>11
strcpy(a, "abcd");
この用法は間違いなわけですから「×」が正解では?
0014nanacyNGNG
問題と答はネタばれになるから、別スレでやった方がいいかも・・
0015デフォルトの名無しさんNGNG
プロ岸使った制限なんかしてんじゃねーよ。
0016デフォルトの名無しさんNGNG
70点だった
どこを間違えたのかおしえてくれりゃぁー
0017デフォルトの名無しさんNGNG
この問題作った奴ってK&RとANSIの違い全然知らないんだよな。
どちらかによって回答は違うんだけどどっちなんだよ。
何がK&Rを元に出題してますだよ嘘こけや。
問題作った奴の採点してやるよ。
ろーーーぼこん 0点
どうしてどうしてガンツ先生!


0018デフォルトの名無しさんNGNG
ちなみに、おいらは50点
しかし、PG&SE暦10年
しかも、ここ見てる一部のひとは、おいらの作ったプログラムを使っている
はず。
むはははははー 鬱だし脳
0019アマチュアNGNG
わーい、100点だったー。
でも、初歩的過ぎて、あまりうれしくないな。

ところで、上でK&Rがどーとか言ってる奴。日本語読めるか?
俺には、「K&R第2版に準拠して」と書いてあるように見えるのだが。
002019NGNG
もう1回やってみたら、90点だった。
さっきの問題が簡単過ぎたっぽい。
0021デフォルトの名無しさんNGNG
K&R弟2版なんて規格のCは無いだろう。
K&RとANSIならあるが。
書籍「プログラムミング言語C ANSI改訂版」のことをいいたいわけか?
どちらにしろ、なに考えているのかさっぱりわからんよ。
わかりたくもないけど
0022デフォルトの名無しさんNGNG
屁理屈うぜぇ。
どこにK&Rなんて「規格」があんだよ?
規格書を読ませてくれよ。
0023デフォルトの名無しさんNGNG
このスレでは、自分のアホさを指摘されて顔を真っ赤にして理屈をこねまわすアホの姿を紹介しています
0024いつでもどこでも名無しさんNGNG
問題文の日本語も変だしねえ。
「使用できる式として以下のものが使える」とか。
0025デフォルトの名無しさんNGNG
まぁ、100点取れずに言うのもなんだけど
問題ぬるすぎ。
もっと歯ごたえあるの紹介してよ。

ここは、ここで必要な人もいるのだろうからいいのだけど。
0026デフォルトの名無しさんNGNG
80点だった。。。
入門者用の問題のつもりなら、もっと素直な問題にしたほうが
良いと思った。変にこねくり回してる感じ。

やっぱ初心者にはポインタ周りをしっかり学んで欲しいから
そのへんもっと増やしてみたら?
二次元配列を関数に渡す、とか、けっこう戸惑うと思うよ。
0027デフォルトの名無しさんNGNG
1です。レスありがとうございました。
そういえば、私も変な問題に遭遇しましたね。

char *s = "abcde";
s[3] = 'a';

のように文字定数の値を変更するのは望ましくない。○or×?
なんて聞かれたんですけど。「望ましくない」って何だ????
ANSIの規格では「変更不可能」のはずですが。

まぁ、50点でも優秀な方がいらっしゃるようですし、
ほんとうの実力とは関係なさそうですね。では。
0028デフォルトの名無しさんNGNG
60点だった。鬱で死にそう。
見直してみても何が間違っているのかピンと来ない…俺、ダメかも…

ただ一つだけわかったのは(2+6)/3 → 2をみて×とつけたということかな。
疲れてるんだな…帰ろう…


0029デフォルトの名無しさんNGNG
この問題作ってる人はC言語の前に日本語をマスターするべきだと思う
何か変だ
0030デフォルトの名無しさんNGNG
90点だった…どこが間違ったのか判らんぞ!
問題を解いているときは、日本語ちょっと変だけど、目くじら立てるほどじゃないと
思っていたが、結果が出ると日本語の解釈を間違ったとしか思えない…。
ちょっと文章練り直したほうが良いぞ、全体的に。それから、どこが間違ったのか
教えて欲しい。後、制限時間は1/4ぐらいで十分じゃないか?
0031デフォルトの名無しさんNGNG
ですます調とである調がいり乱れてるぞ。この問題。ちなみに80点。
間違えた問題を表示しないのはかなり問題だな…
0032デフォルトの名無しさんNGNG
俺も80点だった・・・
ちょっとショック・・・
0033デフォルトの名無しさんNGNG
この問題作った奴呼び出してフクロにしないか
0034nanacyNGNG
>>30
えっ? おいら、10分かかりますよ・・
やっぱ頭の回転遅いんだな・・(鬱
0035名無しさんNGNG
90点でした。
間違えた問題と答えを表示して欲しい・・・
0036VB厨房NGNG
一発目で70/100だった。(C実務経験0、VB3年強)
Cで飯食ってる奴にまあお遊びだとしても俺以下の点の人間がいるとは・・・
0037デフォルトの名無しさんNGNG
あの問題での点数が実力を現すとは思わない方がいいぞ
0038デフォルトの名無しさんNGNG
45点だった。鬱だ・・・。
0039デフォルトの名無しさんNGNG
80点。
この問題おかしいんちゃうかと思ったのが4つほどあったので
あっちのミスにちがいない(ほんとかよ)。
0040デフォルトの名無しさんNGNG
60点だったよ。
なんか普段気にもしないこと聞かれてびびったし、ちびった。
0041デフォルトの名無しさんNGNG
「採点対象外」ってどう言うことだゴルァ
串通してもう1回やったら問題が違ってた。で、80点。
0042デフォルトの名無しさんNGNG
どこが間違ってるのかわからないのがつらいな。
コメントできない。
0043デフォルトの名無しさんNGNG
勉強一カ月、50点だった・・・。
0044デフォルトの名無しさんNGNG
3分で回答、90点。
こんなもんか。
ほとんど感性で答えた。
0045デフォルトの名無しさんNGNG
何重にもネストしたループの中へgoto文で入り込むことができる。
main()
{
 for(;;){
  for(;;){
   for(;;){
LABEL:
    ... ここへ移動することができる。
   }
  }
 }
 goto LABEL;
 ...
}
こんな問題に何か意味あんの?
0046デフォルトの名無しさんNGNG
>>45
答は「できるけど、やらないほうがよい」ですかね?
0047デフォルトの名無しさんNGNG
>>45
できるかどうかすら考えたことがなかった俺は
真っ当なプログラマ(ほんとかよ)
0048デフォルトは名無しさんNGNG
>>45
仕様書無しで糞コードをデバッグさせられることもあるので
こういったつまらないことも知識としては重要
0049デフォルトの名無しさんNGNG
>>46
「できるけど、やる意味など無い」の方がいいのでは?
0050デフォルトの名無しさんNGNG
意味ないですかネ? 一応、ラベルのところに
ジャンプするんですよね?
0051初心者@2週間NGNG
採点方法がいまいちわからん。
2問わからない、って答えて90点、ってのは
何問間違えたの?
0052デフォルトの名無しさんNGNG
>>45
言語仕様的には出来るんだろうけど、やっちゃいかんだろ。
ループの中に飛び込むジャンプなんて。
0053デフォルトの名無しさんNGNG
>>49
逆に聞くが、どうゆう状況で使うの?
ループから一気にでるならよく使うけど、その逆って
意味無いと思うが。
0054デフォルトの名無しさんNGNG
>>51
その2問だけですな。
わからないの場合は -5点。
間違えて答えた場合は -10点だよ。
0055デフォルトの名無しさんNGNG
>通常の32ビットCPU用のコンパイラでは、unsigned int型変数に0から約6万5千までの値を保持することができる。
 これに○つけたけど間違いだったのかな?
 「通常の」実装なら0x00000000 <= n <= 0xFFFFFFFFまでだから約6万5千は確実に保持できるが。
0056デフォルトの名無しさんNGNG
>>55
合ってるんじゃないの?
0057デフォルトの名無しさんNGNG
>>55,56 俺様の32ビットスーパーコンピュータ(ぺんち133)の電卓ちゃんは
0xFFFFFFFF=4294967295 とはじき出したぞ
0058デフォルトの名無しさんNGNG
>>57 ん?だから合ってるってことでしょ?
問題は上限を聞いているんじゃなくて可能かどうかを聞いているんだよね。
0059デフォルトの名無しさんNGNG
int i;
for(i;i<10;i++);

for文が終了する直前
の意味がわかりません
0060デフォルトの名無しさんNGNG
"アスキーコードでは英数字は、16進数で20から7Fまでの間の
一部のコードに割り当てられている。"

いくらなんでもこれをC言語の問題とするのは無茶なのでは?
0061デフォルトの名無しさんNGNG
Q.
Win98が動作するマシンとエディタとコンパイラがあればC言語のプログラムを
作成、実行できる。

・・・リンカはいいのか?
0062てんさいぷろぐらむぁ(偽)NGNG
つーか激しくガイシュツだけど、
基本的にまともなプログラマはやらないようなクソコードばっかしで、
逆に記憶から消されてる問題多いね(普段絶対しないから)

これまたガイシュツだけど
他人のクソコードいじる可能性もあるわけだから、
これを機会に言語仕様を復習することにしたよ・・・

最近とある事情で久しぶりに
int z,y,F,Q,i;
なんて宣言ばかりのソース見たら理解するのに
すごく時間がかかっちゃったよ・・・
なんか書き方うまくなるのに比例してこういった部分の実力が
衰えてることに気が付いた。
鬱だ・・・
0063デフォルトの名無しさんNGNG
Q.
Win98が動作するマシンとエディタとコンパイラがあればC言語のプログラムを
作成、実行できる。

実行できるかどうかは
メモリ不足ってことがあるのでどうともいえません
0064デフォルトの名無しさんNGNG
>>58
上限が約6万5千って事じゃないの?「〜までしか保持できない」とか書いてくれたら確実だけど。
0065デフォルトの名無しさんNGNG
55で引用されている問題文を正確に解釈するとしたら、上限を述べている
文章じゃないでしょう。
あいまいな仕様書の実例みたいな感じだなぁ。
0066デフォルトの名無しさんNGNG
>>63
・Win98が動作しているマシンなのか、Win98が動作しうるマシンなのか?
・エディタとは何か?
・何のコンパイラ?
0067ディフォールトノナナシサンNGNG
ニホンゴノテストミタイデシタ。オモシロカッタヨ
0068デフォルトの名無しさんNGNG
「マシン」って何?
0069デフォルトの名無しさんNGNG
>>68
マシン は マジンカイザーの事です。
0070デフォルトの名無しさんNGNG
>66
 そうか、これひっかけもんだいか・・。
Win98は動作可能なマシンでも、OSが入ってなかったらダメかも・・。
 いや、コンパイラが OS内蔵( ハードウェアに直接アクセスする)の
x86のソフトウェアだと、Win98 がなくてもOKね。
(8ビット時代のマシン語ゲームみたいにね・・)
 どっちにしろ、リンカがないとだめか。
0071デフォルトの名無しさんNGNG
>59

>int i;
>for(i;i<10;i++);
>文が終了する直前
>の意味がわかりません

 for が終了する直前の i の値は?って問題なの?
たしかに意味がようわからないけど10かなぁ・・・。

 i が初期化されてないから、たとえば
i=65003; の状態で始まっていても 一周して、
答えは 常に10だねぇ。

 結局、C言語ではなく、日本語検定ってことで?

これが入門だと、上級はどんなんよ?
Q.
int i;

i とはなにか? 

A, Integer の頭文字 B. Index の頭文字
C. 振り向かないことさ D. わからない。氏のう

007271NGNG
ごめん。間違った。
>i=65003; の状態で始まっていても 一周して、
 この場合、for が実行されないから、i=65003 だね。
だから、「i の値は不定」が正解でしょう。

鬱だ・・・
0073デフォルトの名無しさんNGNG
無限ループはintの上限で止まるみたいな問題があったな。
…×で合ってる?
違うなら、そこが減点対象なんだが…
0074デフォルトの名無しさんNGNG
あってんじゃん?
0075デフォルトの名無しさんNGNG
>>72
signedだから、多分この問題作成者のオツムではsizeof(int)=2なので、
65003=-533だから10で止まるかも(藁
0076デフォルトの名無しさんNGNG
for(;;)
{
// たーすーけーてー
}
printf( "止まれるモンなら止まりやがれゴルァ" );
007775NGNG
10<i<=32767だった場合10じゃないね。鬱打氏脳
0078デフォルトの名無しさんNGNG
void func(){
printf( "まだスタック生きてるヨ良かったne" );
 func();
}

main(){
 func();
}
0079デフォルトの名無しさんNGNG
>>71
i って、ためらわないことじゃなかったっけ?
0080デフォルトの名無しさんNGNG
100点だったのでageる
0081デフォルトの名無しさんNGNG
>>79
すまん。その通り、iは、ためらわないことでした。
「若さ」は、振り向かないことネ。
■ このスレッドは過去ログ倉庫に格納されています