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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
http://www.orchid.co.jp/computer/cschool/clb_start.html

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

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

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

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


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

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

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

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

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

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

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

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


29デフォルトの名無しさん:2001/03/23(金) 22:59
この問題作ってる人はC言語の前に日本語をマスターするべきだと思う
何か変だ
30デフォルトの名無しさん:2001/03/24(土) 16:07
90点だった…どこが間違ったのか判らんぞ!
問題を解いているときは、日本語ちょっと変だけど、目くじら立てるほどじゃないと
思っていたが、結果が出ると日本語の解釈を間違ったとしか思えない…。
ちょっと文章練り直したほうが良いぞ、全体的に。それから、どこが間違ったのか
教えて欲しい。後、制限時間は1/4ぐらいで十分じゃないか?
31デフォルトの名無しさん:2001/03/24(土) 16:54
ですます調とである調がいり乱れてるぞ。この問題。ちなみに80点。
間違えた問題を表示しないのはかなり問題だな…
32デフォルトの名無しさん:2001/03/24(土) 18:55
俺も80点だった・・・
ちょっとショック・・・
33デフォルトの名無しさん:2001/03/24(土) 20:35
この問題作った奴呼び出してフクロにしないか
34nanacy:2001/03/24(土) 21:03
>>30
えっ? おいら、10分かかりますよ・・
やっぱ頭の回転遅いんだな・・(鬱
35名無しさん:2001/03/25(日) 02:35
90点でした。
間違えた問題と答えを表示して欲しい・・・
36VB厨房:2001/03/26(月) 16:31
一発目で70/100だった。(C実務経験0、VB3年強)
Cで飯食ってる奴にまあお遊びだとしても俺以下の点の人間がいるとは・・・
37デフォルトの名無しさん:2001/03/26(月) 17:06
あの問題での点数が実力を現すとは思わない方がいいぞ
38デフォルトの名無しさん:2001/03/26(月) 17:52
45点だった。鬱だ・・・。
39デフォルトの名無しさん:2001/03/26(月) 19:20
80点。
この問題おかしいんちゃうかと思ったのが4つほどあったので
あっちのミスにちがいない(ほんとかよ)。
40デフォルトの名無しさん:2001/03/27(火) 01:25
60点だったよ。
なんか普段気にもしないこと聞かれてびびったし、ちびった。
41デフォルトの名無しさん:2001/03/27(火) 01:51
「採点対象外」ってどう言うことだゴルァ
串通してもう1回やったら問題が違ってた。で、80点。
42デフォルトの名無しさん:2001/03/27(火) 04:36
どこが間違ってるのかわからないのがつらいな。
コメントできない。
43デフォルトの名無しさん:2001/03/27(火) 05:02
勉強一カ月、50点だった・・・。
44デフォルトの名無しさん:2001/03/27(火) 15:26
3分で回答、90点。
こんなもんか。
ほとんど感性で答えた。
45デフォルトの名無しさん:2001/03/27(火) 15:43
何重にもネストしたループの中へgoto文で入り込むことができる。
main()
{
 for(;;){
  for(;;){
   for(;;){
LABEL:
    ... ここへ移動することができる。
   }
  }
 }
 goto LABEL;
 ...
}
こんな問題に何か意味あんの?
46デフォルトの名無しさん:2001/03/28(水) 07:40
>>45
答は「できるけど、やらないほうがよい」ですかね?
47デフォルトの名無しさん:2001/03/28(水) 08:08
>>45
できるかどうかすら考えたことがなかった俺は
真っ当なプログラマ(ほんとかよ)
48デフォルトは名無しさん:2001/03/28(水) 08:53
>>45
仕様書無しで糞コードをデバッグさせられることもあるので
こういったつまらないことも知識としては重要
49デフォルトの名無しさん:2001/03/28(水) 09:49
>>46
「できるけど、やる意味など無い」の方がいいのでは?
50デフォルトの名無しさん:2001/03/28(水) 11:06
意味ないですかネ? 一応、ラベルのところに
ジャンプするんですよね?
51初心者@2週間:2001/03/28(水) 12:02
採点方法がいまいちわからん。
2問わからない、って答えて90点、ってのは
何問間違えたの?
52デフォルトの名無しさん:2001/03/28(水) 12:17
>>45
言語仕様的には出来るんだろうけど、やっちゃいかんだろ。
ループの中に飛び込むジャンプなんて。
53デフォルトの名無しさん:2001/03/28(水) 12:36
>>49
逆に聞くが、どうゆう状況で使うの?
ループから一気にでるならよく使うけど、その逆って
意味無いと思うが。
54デフォルトの名無しさん:2001/03/28(水) 12:43
>>51
その2問だけですな。
わからないの場合は -5点。
間違えて答えた場合は -10点だよ。
55デフォルトの名無しさん:2001/03/28(水) 15:06
>通常の32ビットCPU用のコンパイラでは、unsigned int型変数に0から約6万5千までの値を保持することができる。
 これに○つけたけど間違いだったのかな?
 「通常の」実装なら0x00000000 <= n <= 0xFFFFFFFFまでだから約6万5千は確実に保持できるが。
56デフォルトの名無しさん:2001/03/28(水) 15:19
>>55
合ってるんじゃないの?
57デフォルトの名無しさん:2001/03/28(水) 19:26
>>55,56 俺様の32ビットスーパーコンピュータ(ぺんち133)の電卓ちゃんは
0xFFFFFFFF=4294967295 とはじき出したぞ
58デフォルトの名無しさん:2001/03/28(水) 19:36
>>57 ん?だから合ってるってことでしょ?
問題は上限を聞いているんじゃなくて可能かどうかを聞いているんだよね。
59デフォルトの名無しさん:2001/03/28(水) 20:40
int i;
for(i;i<10;i++);

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

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

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

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

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

実行できるかどうかは
メモリ不足ってことがあるのでどうともいえません
64デフォルトの名無しさん:2001/03/29(木) 00:50
>>58
上限が約6万5千って事じゃないの?「〜までしか保持できない」とか書いてくれたら確実だけど。
65デフォルトの名無しさん:2001/03/29(木) 00:56
55で引用されている問題文を正確に解釈するとしたら、上限を述べている
文章じゃないでしょう。
あいまいな仕様書の実例みたいな感じだなぁ。
66デフォルトの名無しさん:2001/03/29(木) 01:05
>>63
・Win98が動作しているマシンなのか、Win98が動作しうるマシンなのか?
・エディタとは何か?
・何のコンパイラ?
67ディフォールトノナナシサン:2001/03/29(木) 01:05
ニホンゴノテストミタイデシタ。オモシロカッタヨ
68デフォルトの名無しさん:2001/03/29(木) 01:08
「マシン」って何?
69デフォルトの名無しさん:2001/03/29(木) 01:14
>>68
マシン は マジンカイザーの事です。
70デフォルトの名無しさん:2001/03/29(木) 01:14
>66
 そうか、これひっかけもんだいか・・。
Win98は動作可能なマシンでも、OSが入ってなかったらダメかも・・。
 いや、コンパイラが OS内蔵( ハードウェアに直接アクセスする)の
x86のソフトウェアだと、Win98 がなくてもOKね。
(8ビット時代のマシン語ゲームみたいにね・・)
 どっちにしろ、リンカがないとだめか。
71デフォルトの名無しさん:2001/03/29(木) 01:21
>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. わからない。氏のう

7271:2001/03/29(木) 01:25
ごめん。間違った。
>i=65003; の状態で始まっていても 一周して、
 この場合、for が実行されないから、i=65003 だね。
だから、「i の値は不定」が正解でしょう。

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

main(){
 func();
}
79デフォルトの名無しさん:2001/03/29(木) 11:41
>>71
i って、ためらわないことじゃなかったっけ?
80デフォルトの名無しさん:2001/03/30(金) 02:50
100点だったのでageる
81デフォルトの名無しさん
>>79
すまん。その通り、iは、ためらわないことでした。
「若さ」は、振り向かないことネ。