平成17年度技術士第一次試験・情報工学部門の専門科目択一問題についてのみ語る、特設臨時掲示板です。
2005.10.11立ち上げ、2005.11.7終了。

4-1 2進数固定小数点計算 4-11 カルノー図 4-21 セキュリティ 4-31 売り上げ表
4-2 C言語プログラム実行結果 4-12 CPUのパイプライン 4-22 ソフトウェアの要求分析・設計技法 4-32 8ビットのデータ訂正
4-3 C言語プログラム実行結果 4-13 CPU性能高速化技術 4-23 単体テスト 4-33 最低限必要な圧縮率
4-4 C言語のプログラム 4-14 並列処理 4-24 プロセス評価 4-34 画像空間領域のフィルタリング
4-5 二分木 4-15 OS 4-25 テストデータ 4-35 文字集合と符号化
4-6 演算子 4-16 プロセス実行時間 4-26 モジュール分類
4-7 正規表現 4-17 ページテーブル 4-27 データベースのトランザクション
4-8 型 4-18 スレッドとプロセス 4-28 関係データベース
4-9 導出によって得られる論理式 4-19 ファイアウォール 4-29 データベースの障害回復
4-10 スタックマシン 4-20 電子メールへのヘッダ情報 4-30 [会員表」と「成績表」

  
4-1 2進数固定小数点演算 - APEC -2005-10-11 14:44:34 削除
4-1 次の2進数固定小数点演算の答えに最も近いものの十進数表示を次の中から選べ。
    0.11010110 + 0.01010011
(1) 1.12
(2) 1.13
(3) 1.14
(4) 1.15
(5) 1.16

4-1の解答 - かりん -2005-10-11 15:33:13 削除
0.11010110 + 0.01010011 = 1.00101001
1.00101001を十進数に変換すると、(2^-nは、2のマイナスn乗です)
1 + 2^-3 + 2^-5 + 2^-8
= 1 + 0.125 + 0.03125 + 0.0039062
= 1.1601562
解答は、(5)にしました。

(5) - しゅれ -2005-10-11 16:41:36 削除
僕も(5)にしました。

APECさん、情報工学部門も作っていただき感謝です。

5 - isshy -2005-10-11 18:04:24 削除
5
解答 - ケーキ君 -2005-10-11 23:01:13 削除
5にしました。

5 - くびれっと -2005-10-11 23:07:30 削除
(5)です。

【公表された正解:5】 戻る


  
4-2 C言語プログラム実行結果 - APEC -2005-10-11 14:44:16 削除
4-2 次のC言語のプログラムを実行したときに表示される結果を選べ。ただし、&は変数のアドレスを得る演算子、*はアドレスが指しているメモリの内容を得る演算子、++はメモリの内容に1を加える演算子である。

#include
int sub(int *x, int *y) {
(*x)++;
(*y)++;
return *x + *y;
}
main() {
int a = 0, b = 0;
b = sub(&a, &a);
printf(“%d %d\n”, a, b);
}

(1) 0 2
(2) 0 3
(3) 1 3
(4) 2 3
(5) 2 4

(5) - しゅれ -2005-10-11 16:42:16 削除
(5)にしました。

実際に実行しても、(5)でした。

5 - isshy -2005-10-11 18:08:20 削除
5です。
解答 - ケーキ君 -2005-10-11 23:01:50 削除
5にしました。

【公表された正解:5】 戻る


  
4-3 C言語プログラム実行結果 - APEC -2005-10-11 14:43:50 削除
4-3 次のC言語のプログラムを実行したときに、表示される結果を選べ。

#include
int x, y;
int f(int a, int x)
{
++x;
++y;
return a+y;
}
main() {
int y, z ;
y = 100;
z = f(10, y) ;
z += y ;
printf(“%d\n”, z) ;
}

(1) 11
(2) 101
(3) 110
(4) 111
(5) 211

(4) - しゅれ -2005-10-11 16:43:55 削除
(4)にしました。

実際に実行しても(4)でした。
ちなみにコンパイル環境は
Microsoft WindouwsXP Pro
Microsoft Visual C++ .Net
です。

4 - isshy -2005-10-11 18:08:45 削除
4です。
解答 - ケーキ君 -2005-10-11 23:02:07 削除
4にしました。
選択しませんでした - マジメ -2005-10-12 12:46:00 削除
この問題は怪しいと思って選択しませんでした
なぜなら、6行目で++yを実行していますが、このyの値は初期化されていません
グローバル変数yの値は動作開始時に0に初期化される
という条件がなければ4にならないと思います
いかがでしょうか?

僕も机上では不安でした。 - しゅれ -2005-10-12 13:11:48 削除
マジメ様

僕もテスト中は不安だったので実行してみました。
確かにyはサブ関数内で初期化されていません。
そこで、
int f(int a, int x)
{
printf("%d\n",y);
++x;
++y;
return a+y;
}
といれて実行してみると
y=0
になっていました。

プログラミングを本業にしていないので詳しい説明ができませんが
こうなるようです。

グローバル変数の初期値 - ノブ -2005-10-12 16:12:19 削除
確か、、、
グローバル変数は,明示的に初期化しなければ,自動的に初期値0になる.
static指定のないローカル変数は,明示的に初期化しなければ,初期値は不定.

【公表された正解:4】 戻る


  
4-4 C言語のプログラム - APEC -2005-10-11 14:43:22 削除
4-4 次のC言語のプログラムで、n ≧ 2 として関数fを呼び出したとき、fの内部でf自身が呼び出される回数をnのオーダで表したものを選べ。
int f(int n)
{
if(n < 2)
return 1 ;
else
return f(n-1) + f(n-2) ;
}

(1) O(n)
(2) O(nlogn)
(3) O(n2)
(4) O(((1+√5)/2)n)
(5) O(n!)

(3) - しゅれ -2005-10-11 16:51:29 削除
(3)にしました。

n=2の時、2回
n=3の時、3回
n=4の時、5回
n=5の時、8回
となったので連立方程式を解くと
y=0.5x^2-1.5x+3
となったので。
間違ってますかね??



4 - isshy -2005-10-11 18:05:43 削除
4にしました。
解答 - ケーキ君 -2005-10-11 23:02:38 削除
2にしました。
フィボナッチ数列ですよね? - akiko -2005-10-11 23:31:03 削除
Fn+2=Fn+1+Fn(n=1,2,3,…)
で、オーダとしては(4)じゃないですか?

【公表された正解:4】 戻る


  
4-5 二分木 - APEC -2005-10-11 14:42:55 削除
4-5 変数rootは次の図にある二分木の根を参照している。この二分木を次のC言語の関数で検索する。なお、構造体のメンバleftとrightが0のときは子がないものとする。search(root, 34)という引数で関数を呼出し、終了した場合の変数countの値を選べ。

struct nodes { int value; struct nodes *right, *left; };
typedef struct nodes *Node;

int count =0;

int search( Node node, int value ) {
count++;
if(node->value == value) return 0:
if(node->rigut != 0 && search(node->right, value)==0)
return 0:
if(node->left != 0 && search(node->left, value)==0)
return 0:
return -1;
}

(1) 1
(2) 2
(3) 4
(4) 6
(5) 8

(4) - しゅれ -2005-10-11 16:52:16 削除
(4)にしました。

【公表された正解:4】 戻る


  
4-6 演算子 - APEC -2005-10-11 14:42:15 削除
4-6 演算子の優先順位が次の表で定義されている。また、すべての演算子は右から結合するとする。

  高  #
  低  %,@

式a%b#c@d と同じ意味の式を次の中から選べ。

(1) (a%b)#(c@d)
(2) (a%(b#c))@d
(3) a%((b#c)@d)
(4) ((a%b)#c)@d
(5) a%(b#(c@d))

3 - のり -2005-10-11 19:00:37 削除
(3)にしました。
3 - くびれっと -2005-10-11 22:48:54 削除
わたしも(3)にしました。
解答 - ケーキ君 -2005-10-11 23:03:06 削除
3にしました。

【公表された正解:3】 戻る


  
4-7 正規表現 - APEC -2005-10-11 14:41:45 削除
4-7 次のような2つの文字列がある。
aabbbcddd
addccee
この両方を表す正規表現ではないものを次の中から選べ。ただし、*は0回以上の繰り返し、|は選択を表す記号とする。

(1) a*b*c*d*c*e*
(2) a*b*d*c*d*e*
(3) a*(b|d)*c*(d|e)*
(4) a*(b|d|c)*(c|d|e)*
(5) a*(b*|d*|c*)(c*|d*|e*)

(5) - しゅれ -2005-10-11 16:53:12 削除
(5)にしました。
- isshy -2005-10-11 17:57:34 削除
(3)では?
(3)かな? - しゅれ -2005-10-11 18:07:32 削除
(3)だと
上 aa(b|d)(b|d)(b|d)c(d|e)(d|e)(d|e) = aabbbcddd
下 a(b|d)(b|d)cc(d|e)(d|e) = addccee
で可能

(5)
上 aab*c* = aabbbc???
上 aac*d* = aa???cddd
下 ad*c* = addcc??
下 ac*e* = a??ccee (表現が難しい…)
となり、どちらも表現できないような気がします。

すいません5ですね。 - isshy -2005-10-11 18:16:42 削除
「〜でないもの」でした。。ミスりました。(ToT)
解答 - ケーキ君 -2005-10-11 23:03:40 削除
5にしました。
(4)だと思うのですが - Mr.X -2005-10-11 23:20:01 削除
(5)だと
上:a*b*c*d*=aabbbcddd 、下:a*d*c*e*=addccee
が作成できるのですが
(4)だと
上:a*(bc)*d*=aabcbcddd 、下:a*(dc)*e*=adcdcee
となるのでは?
よって(4)だと思うのですが
考え方間違ってるかな?

私も(4)かと - しゅう -2005-10-12 00:53:11 削除
Mr.Xさんと同感です。
「選択」と「or」は別物ですよね?(自信なし) - いそ -2005-10-12 01:41:29 削除
私は(5)を選びました。

(4)を,次のように解釈しました。
「(b|d|c)*」は(b|d|c)(b|d|c)(b|d|c)…… であり,
「(c|d|e)*」は(c|d|e)(c|d|e)(c|d|e)…… である。
そのため,2つの文字列ともに可能である。

一方(5)は,
a*(bb…またはdd…またはcc…)(cc…またはdd…またはee…)
であるから,aの後の文字は最大2種類にしかならないので不可。

選択「|」の持つ意味が,
いわゆる「or」なのか,どれか一つを「選択」であるのか…
そこが解釈の分かれ目でしょう。

5 - のり -2005-10-13 11:27:10 削除
私も「いそ」さんの考えに賛成!
「( )」内は最初に処理する… - いそ -2005-10-13 12:23:40 削除
のり様,ありがとうございます。しかし…

普通,(a+b)^nを計算するプログラムを組むなら,
「c=a+b」を計算させてから「c^n」を求めます。
(a+b)*(a+b)*(a+b)*…のような面倒なことしないですよね?

これと同様に( )内の演算を優先して行い,
 その後で( )の外の「*」の処理を行う。

というルールだとすると,

「|」は「or」を意味し,複数選択も可である

としないと(4)も(5)も不可になってしまいます。

私自身もはっきり確信がもてません。
この問題ってあんまりいい問題じゃないかも。選んで失敗しました。

こんな解釈 - のり -2005-10-14 13:53:57 削除
5の意味するところは、
(aの繰り返し)+(bかcかdの何れかの繰り返し)+(cかdかeの何れかの繰り返し)。
つまりアルファベット3種類で構成された文字列しか発生しないんじゃないでしょうか。

通りすがりですが。。。。 - goww -2005-10-14 20:32:18 削除
ご参考までに。

問題のパターンをそのままperlに突っ込んで、
上下の全部に対して、マッチするかやってみました。

結果、
1: ok
2: ok
3: ok
4: ok
5: ng
となりました。

結果から推察するに、4の解釈は、
(b|d|c)* => (b|d|c)(b|d|c)(b|d|c)(b|d|c)...
ということみたいですね。

恥ずかしながら、プログラムを書くまでは、
(4)と(5)の両方ともNGになる、と思っていました。

【公表された正解:5】 戻る


  
4-8 型 - APEC -2005-10-11 14:41:23 削除
4-8 型に関する次の説明文の中で、最も適切でないものを選べ。

(1) 静的な型検査とは、コンパイル時に型に関するエラーを検査することである。
(2) 型検査を行うことにより、エラーを発見できる可能性が高まる。
(3) オブジェクト指向言語においては、オブジェクトに対する型検査は行わない。
(4) 整数型(32bit)の値を浮動小数点型(32bit)の値に変換すると、精度の喪失が起きる可能性がある。
(5) 演算子や関数の多重定義(オーバーローディング)を許す言語では、演算の対象の型によって異なる処理を行うことができる。

3 - isshy -2005-10-11 18:28:17 削除
3にしました。
3 - のり -2005-10-11 19:01:51 削除
3にしました
3 - くびれっと -2005-10-11 23:00:49 削除
同じく(3)にしました。
解答 - ケーキ君 -2005-10-11 23:03:55 削除
3にしました。

【公表された正解:3】 戻る


  
4-9 導出によって得られる論理式 - APEC -2005-10-11 14:41:04 削除
4-9 次の2つの論理式から、導出によって得られる論理式を選べ。
    ∀x(p(x)∨q(x))
    ¬p(a)∨r(b)
ただし、p,q,rは述語記号、a,bは定数記号、x,yは変数記号とする。

(1) ¬r(b)
(2) q(a)∨r(b)
(3) q(b)∨r(b)
(4) ∀x(q(x)∨r(b))
(5) ∀x(p(x)∨¬p(a))

4-9は2? - Chun -2005-10-11 22:13:42 削除
∀x(p(x)∨q(x)) → 全てのxに対し,p(x)もしくはq(x)が真.・・・(ア)
¬p(a)∨r(b) → p(a)の否定,もしくはr(b)が真.・・・(イ)

(イ)について,以下の2ケースに分けて考える.
(イ)-1: p(a)の否定が真の場合
 (ア)で,x=a とおくことにより,
 p(a)もしくはq(a)が真であることが成り立つから,
 q(a)が真とならざるをえない.
 したがって,q(a)∨r(b)も真.

(イ)-2: p(a)の否定が真でないの場合
 この場合は,r(b)が真とならざるをえない.
 したがって,q(a)∨r(b)も真.

よって,どちらの場合もq(a)∨r(b)は真.

【公表された正解:2】 戻る


  
4-10 スタックマシン - APEC -2005-10-11 14:40:37 削除
4-10 仮想計算機で用いられるスタックマシンが次の命令を有するとする。
  push a スタックにデータaをプッシュする。
  dup スタックの最上部のデータを複製してスタックにプッシュする。
  exch スタックの最上部の2つのデータの位置を交換する。
  add スタックから2つのデータをポップし、その和をスタックにプッシュする。
  sub スタックから2つのデータをポップし、その差をスタックにプッシュする。
(スタック最上部2番目のデータから最上部のデータを引く。)
  mul スタックから2つのデータをポップし、その積をスタックにプッシュする。

このとき、次のように記述されたプログラムが最終的にスタックに残す結果は、どの式を処理したものと同じか。
  push a
  push b
  sub
  dup
  push 1
  add
  exch
  push 2
  sub
  mul

(1) (a-b+2)*1
(2) (a-b+1)*(a-b-2)
(3) (a-b-1)*(-2)
(4) (a-b+2)*(a-b-1)
(5) (a-b)*(1-2)

(2) - しゅれ -2005-10-11 16:54:06 削除
順番どおりやったら(2)になりました。
2 - isshy -2005-10-11 18:10:46 削除
2にしました。
2 - くびれっと -2005-10-11 23:03:40 削除
冷静にやったつもり、(2)でしょ。
解答 - ケーキ君 -2005-10-11 23:05:46 削除
2にしました。
2 - のり -2005-10-12 11:22:24 削除
2にしました。

【公表された正解:2】 戻る


  
4-11 カルノー図 - APEC -2005-10-11 14:40:08 削除
4-11 右のカルノー図に対応しない式を選べ。
    DC\BA 00 01 11 10
     00 1 1 1
     01 1
     11 1 1
     10 1 1 1
※アンダーラインがついている記号の後ろに「_」

(1) D_C_A_+D_BA_+C_B+DCB_+C_B_A_
(2) DCB_+C_B+C_A_+D_BA_
(3) DCB_+DC_A_+C_BA+D_C_A_+DCB_A+D_BA
(4) DCB_+DC_A_+D_C_A_+D_CBA_+C_B
(5) DCB_+DC_A_+C_BA+D_C_+C_BA

(5) - しゅれ -2005-10-11 16:57:59 削除
(5)にしました。

D_C_ が図から外れますよね。

5 - くびれっと -2005-10-11 23:12:00 削除
(5)にしました。
(1)から順番に試しながら、
どおせ5番目くらいなんだろうな・・・
と思ったら案の定・・・。

【公表された正解:5】 戻る


  
4-12 CPUのパイプライン - APEC -2005-10-11 14:39:44 削除
4-12 命令キャッシュとデータキャッシュを独立にもつパイプライン化されたCPUがある。このCPUのパイプラインは、以下の場合にのみストールする。
1.命令キャッシュがミスヒットした場合:10クロック
2.データキャッシュを読み出す際にミスヒットした場合:10クロック
3.読み出したデータを直後の命令で利用する場合:1クロック
  命令キャッシュのヒット率を99%、データキャッシュを読み出す場合のヒット率を95%、読み出し命令の生起確率を20%、読み出したデータを直後の命令で利用する可能性を50%とする時、このCPUのCPI(Clock cycles Per Instruction)に最も近い数値を選べ。

(1) 1.1
(2) 1.2
(3) 1.3
(4) 1.4
(5) 1.5

(3) - しゅれ -2005-10-11 17:02:52 削除
(3)にしました。
解答 - ケーキ君 -2005-10-11 23:15:52 削除
3にしました。

【考え方】

命令系とデータ系にわけてそれぞれについてクロック数を計算します。

A.命令系
99%の命令キャッシュヒットであり1%はミスヒットして10クロックストールするので、
0.99x1=0.99 [clk] --(1)
0.01x10=0.1 [clk] --(2)
(1)+(2)=1.09[clk] --(A)

B.データ系
20%がデータアクセス命令でありかつ95%キャッシュヒットするが、5%はミスして10クロックストールする。
また読み出し直後に命令で利用される率が50%であり、この場合も1クロックストールするので、
0.2x0.05x10=0.1 [clk] --(3)
0.2x0.5x1=0.1 [clk] --(4)
(3)+(4)=0.2[clk] --(B)

従って、(A)+(B) = 1.29 ≒ 1.3
正解は3番(1.3)

僕は@ - マジメ -2005-10-12 12:55:06 削除
Bの計算ですが、そもそも読み出し命令自体が20%しか出現しないので、読み出しミス率は
0.20×0.05=0.01 = 1%
直後の命令で使用される率も
0.20×0.50=0.10 = 10%
ではないでしょうか?
なので
1:1%の確立で10クロックストール
2:1%の確立で10クロックストール
3:10%の確立で1クロックストール
となって、結局CPIは1.1くらいだと思いました

マジメさん - ケーキ君 -2005-10-13 02:24:17 削除
ケーキです。
マジメさんの書かれた1と2と3を足すと
1%x10=0.1 --(1)
1%x10=0.1 --(2)
10%x1=0.1 --(3)
(1)+(2)+(3)=0.3 --(5)
それと通常の命令のクロックを考慮する必要が
あると思います。
命令キャッシュミス1%は3で考慮されているので
99%の確立で1クロック消費として
0.99x1 = 0.99 -- (6)
∴ (5)+(6)=1.29 ≒ 1.3
と私は考えました。

【公表された正解:3】 戻る


  
4-13 CPU性能高速化技術 - APEC -2005-10-11 14:39:19 削除
4-13 CPUの性能の高速化技術を述べた文で(a),(b),(c)に当てはまる単語の組み合わせの中で最も適切なものを選べ。
「CPUの性能は、(a)によって影響される。この点を改善するために(b)や(c)などの手法が用いられる。」

      a              b                c
(1) キャッシュのヒット率    スヌープキャッシュ       ノンブロッキングキャッシュ
(2) 動作周波数         パイプラインステージ数の増強 メモリ−メモリ型命令の採用
(3) 分岐予測の精度       予測子−修正子法        トーナメント分岐予測法
(4) 命令レベル並列性の利用   スーパースカラ方式       VLIW方式
(5) スレッドレベル並列性    SMT方式           Tomasuloのアルゴリズム

4 - isshy -2005-10-11 19:18:12 削除
4にしました。
解答 - ケーキ君 -2005-10-11 23:16:55 削除
4にしました。

【公表された正解:4】 戻る


  
4-14 並列処理 - APEC -2005-10-11 14:38:55 削除
4-14 ある問題について、その実行時間の95%は完全に並列処理が可能で、Nプロセッサを利用することによりN倍性能が向上する。しかし、残りの5%は全く並列処理を行うことができない。この問題を10台のプロセッサを用いて並列処理を行った場合、1台で実行するのに比べて何倍高速に実行することが可能か。最も近いものを選べ。

(1) 6.9倍
(2) 7.2倍
(3) 7.4倍
(4) 7.6倍
(5) 7.9倍

(1) - しゅれ -2005-10-11 17:03:30 削除
(1)にしました。
(1) - チーマン -2005-10-12 12:41:54 削除
私も(1)になりました。

【公表された正解:1】 戻る


  
4-15 OS - APEC -2005-10-11 14:38:36 削除
4-15 OS(Operating System)に関する次の記述の中で、最も不適切なものを選べ。

(1) 保護を目的として、OSはプロセッサのユーザモードで走行する。
(2) プログラムはプロセスないしはタスクにより実行される。
(3) OSは、物理装置を仮想化することで、論理的な装置を応用プログラムに提供する。
(4) ハードウェア割込みまたはソフトウェア割込みによりOSに制御が移る。
(5) 応用プログラムからOSの機能を呼び出すためにシステムコール命令が用いられる。

1 - K.S -2005-10-11 21:43:23 削除
(1)
OSは特権モードで走ります。

解答 - ケーキ君 -2005-10-11 23:17:18 削除
1にしました。

【公表された正解:1】 戻る


  
4-16 プロセス実行時間 - APEC -2005-10-11 14:38:21 削除
4-16 OSの実行可能キューに3つのプロセスA,B,Cがこの順番にあるとする。各プロセスの実行時間は、Aは1秒,Bは400m秒,Cは600m秒とする。これらのプロセスをタイムスライスで、200m秒ごとに切り替え、ラウンドロビンスケジューリングを行う。実行可能キューの先頭のプロセスから実行を開始し、1.5秒経過したとき、実行中のプロセスとその経過時間を選べ。プロセス切替の時間は無視してよい。

(1) プロセスAで500m秒
(2) プロセスAで900m秒
(3) プロセスBで300m秒
(4) プロセスCで300m秒
(5) プロセスCで500m秒

(5) - しゅれ -2005-10-11 17:04:09 削除
(5)にしました。
4-16の解答 - かりん -2005-10-11 17:43:10 削除
(5)にしました。

N(xxx,yyy):xxxm秒経過後のプロセスNの実行時間yyy

A(200,200),B(400,200),C(600,200)
A(800,400),B(1000,400),C(1200,400)
A(1400,600),C(1500,500)

5 - isshy -2005-10-11 18:12:54 削除
5にしました。
解答 - ケーキ君 -2005-10-11 23:17:39 削除
5にしました。
解答 - ケーキ君 -2005-10-11 23:17:39 削除
5にしました。

【公表された正解:5】 戻る


 
4-17 ページテーブル - APEC -2005-10-11 14:37:34 削除
4-17 仮想記憶を用いている計算機で、ページテーブルを多段に持つことがある。この理由として最も適切なものを選べ。

(1) アドレス空間を大きくする。
(2) ページテーブルに要する記憶容量を少なくする。
(3) メモリに高速にアクセスできるようにする。
(4) 仮想メモリを共有しやすくする。
(5) メモリを分割して使用する。

解答 - ケーキ君 -2005-10-11 23:17:56 削除
1にしました。
2 - くびれっと -2005-10-11 23:45:48 削除
(2)かなぁ?
2だぁ - Anonymous -2005-10-11 23:49:22 削除
2でした。答案には1と回答しましたが、文献等で調査の結果、2でした。
仮想記憶の話の復習でした。

【公表された正解:2】 戻る


  
4-18 スレッドとプロセス - APEC -2005-10-11 14:37:15 削除
4-18 一般のOSで、スレッドとプロセスを説明するものとして、最も適切なものを選べ。

(1) スレッドは一つのプロセス内でさらに並列に処理するための機構である。
(2) スレッドもプロセスも複数の処理を並列に記述するための仕組みであり、同一のものである。
(3) スレッドではスタックを共有しているが、プロセスではスタックを共有していない。
(4) スレッドは複数のプロセスにまたがって実行されるプログラムの流れである。
(5) プロセスはオペレーティングシステム内部における処理で、スレッドはユーザプログラムにおける処理である。

1 - isshy -2005-10-11 18:26:27 削除
1にしました。
- Mr.X -2005-10-12 01:01:44 削除
アスキーデジタル用語辞典のスレッドの解説に

マルチスレッドOSにおけるプログラム実行の単位。
マルチスレッドOSでは、プログラム(プロセス)の中で複数のスレッドを実行することができる。

とありました。(1)ではなでしょうか

微妙ですね・・・ - -2005-10-12 16:38:18 削除
1も正しいと思うのですが,

”最も適切なもの”
として3だとおもいます.

>>微妙 - K.S -2005-10-12 17:04:58 削除
メモリ空間が プロセスは専用、スレッドは共有で、
スタックはどちらも固有ではないですか?

解答 - ケーキ君 -2005-10-13 20:10:30 削除
1にしました。

一般にはスレッド・プロセス共にスタックを共有しないと
認識しています。
メモリ空間についてはスレッドは共有できます。
つまり各スレッドが同一のデータにアクセスできます。
一方プロセスについてはプロセス間のデータ共有は、
自分自身のメモリ空間を通してはできないのですが、
プロセス間でデータを共有させる場合には
共有メモリ等のカーネルのIPC機構を通じて、
共有させることができると認識しています。
各スレッドのメモリ空間がどういう状況で管理されるかは、
実装によると認識しています。

【公表された正解:1】 戻る


 
4-19 ファイアウォール - APEC -2005-10-11 14:36:55 削除
4-19 ネットワークのファイアウォールの機能でないものを選べ。

(1) 特定のアドレスから送られてくるパケットを排除する。
(2) パケットの内容を調べて、通信の可否を判断する。
(3) 組織の内部から外部への通信を監視する。
(4) 公開するサーバを、組織の外部からだけでなく内部からも保護する。
(5) 電子メールサービスのPOPやIMAPの認証を行う。

(5) - しゅれ -2005-10-11 17:04:46 削除
(5)にしました。
5 - くびれっと -2005-10-11 23:15:09 削除
(5)にしました。

解答 - ケーキ君 -2005-10-11 23:18:15 削除
5にしました。

【公表された正解:5】 戻る


  
4-20 電子メールのヘッダ情報 - APEC -2005-10-11 14:36:37 削除
4-20 SMTPを用いた電子メールのヘッダの情報で最も偽造しにくい情報を、次の中から選べ。

(1) Receivedフィールド中の受信箱へ投函したサーバのIPアドレス
(2) Dateフィールド中の発信時刻
(3) Reply-toフィールド中のメールアドレス
(4) Fromフィールド中の送信者アドレス
(5) Ccフィールド中のメールアドレス

(1) - しゅれ -2005-10-11 17:05:19 削除
(1)にしました。
1 - isshy -2005-10-11 18:26:14 削除
1にしました。自信ないです。
1 - くびれっと -2005-10-11 23:17:53 削除
(1)にしました。

解答 - ケーキ君 -2005-10-11 23:20:01 削除
1にしました。

【公表された正解:1】 戻る


  
4-21 セキュリティ - APEC -2005-10-11 14:36:13 削除
4-21 セキュリティに関する次の記述で誤っているものを選べ。

(1) フィッシングは、実在する機関を騙ったメールなどに偽のサイトへのリンクを貼り付け、パスワードなどの各種情報を入手する手段である。
(2) マクロウィルスとは、サイズが5MB以上のウィルスである。
(3) DoS攻撃とは、正規のサービスを利用できなくする攻撃である。
(4) SSLは、公開鍵暗号を用いて認証を行う。
(5) トロイの木馬は、特定のウィルスの名称ではない。

4-21の解答 - かりん -2005-10-11 15:43:59 削除
(2)
マクロウィルスとは、ワープロなどのマクロの機能を悪用したウィルス
でサイズとは無関係。

ちょっとこの問題はアレですね。

(2) - しゅれ -2005-10-11 17:06:00 削除
(2)にしました。

サービス問題ですね。

2 - isshy -2005-10-11 18:25:56 削除
2です。
2 - くびれっと -2005-10-11 23:18:31 削除
(2)ですね。
解答 - ケーキ君 -2005-10-11 23:20:29 削除
2にしました。

【公表された正解:2】 戻る


  
4-22 ソフトウェアの要求分析・設計技法 - APEC -2005-10-11 14:35:57 削除
4-22 ソフトウェアの要求分析・設計技法として、構造化分析技法,データ中心アプローチ,オブジェクト指向分析・設計技法などがある。以下の項目のうち、これらの技法との関連が最も弱い項目を選べ。

(1) 意味ネットワーク
(2) クラス
(3) 実体関連図
(4) データフロー図
(5) ユースケース

解答 - K.S -2005-10-11 16:49:34 削除
(1) 意味ネットワーク
(2) クラス (オブジェクト指向分析・設計技法)
(3) 実体関連図 (データ中心アプローチ)
(4) データフロー図 (構造化分析技法)
(5) ユースケース (オブジェクト指向分析・設計技法)

(1)だと思います。

(1) - しゅれ -2005-10-11 17:06:54 削除
(1)だと思うんですが
迷ったすえ、選択しませんでした。
もったいない…

1 - isshy -2005-10-11 18:25:26 削除
1にしました。

【公表された正解:1】 戻る


  
4-23 単体テスト - APEC -2005-10-11 14:35:32 削除
4-23 以下の項目のうち、単体テスト(ユニットテスト,モジュールテスト)の説明として、最も不適切な項目を選べ。

(1) 通常、被テストモジュールから呼び出されるモジュールの代わりの役割を果たすスタブを作成する必要がある。
(2) 通常、被テストモジュールを呼び出すモジュールの代わりの役割を果たすドライバを作成する必要がある。
(3) テスト作業を並行処理できるので、工数短縮に効果的である。
(4) システムテストに比べ、テストにより検出した誤りの修正コストが少なくて済む。
(5) インタフェース不良の早期発見に効果的である。

4-23の解答 - かりん -2005-10-11 15:47:48 削除
(5)にしました。
インタフェース不良の早期発見に効果的なのは、結合テストと思います。

(5) - しゅれ -2005-10-11 17:07:48 削除
(5)だと思ったんですが
迷った末、選択しませんでした。

またまた、もったいない…

5 - isshy -2005-10-11 18:25:12 削除
5にしました。
Cにしちゃって少し後悔 - マジメ -2005-10-14 19:53:35 削除
実は最初はDで、最後にCに変えちゃいました・・・
発想はこうです
・インタフェース不良=モジュール間インタフェースの認識の違いだとすると、単体テストでは発見できず、システムテストをするまで気づかないのでは?
・あれ?実は「修正コスト」はいつ発見されても同じかも?
うーむ、改めてみてみるとやっぱりDを選ぶのが素直ですね

【公表された正解:5】 戻る


 
4-24 プロセス評価 - APEC -2005-10-11 14:34:17 削除
4-24 プロセス評価に関連するCMMI(能力成熟度モデル統合)では、プロセス改善における進化の段階を表現する方法として、5段階の成熟度レベルが設定されている。以下の項目のうち、その説明として最も不適切な項目を選べ。

(1) 成熟度レベル1では、通常、プロセスは場当たり的で無秩序である。通常、組織は安定した環境を提供しない。
(2) 成熟度レベル2では、組織のプロジェクトは、要件が管理され、かつプロセスが計画され、実施され、測定され、そして制御されることを確実なものにしている。
(3) 成熟度レベル3では、プロセスは、特性が十分に明確化され、理解され、そして標準、手順、ツール、および手法の中で記述されている。
(4) 成熟度レベル4では、全体的なプロセス実績に著しく貢献するサブプロセスが選択される。これらの選択されたサブプロセスは、統計的技法およびその他の定量的技法を使用して制御されている。
(5) 成熟度レベル5では、プロセスは、最終的に完成した最適なプロセスとして確立している。

- Anonymous -2005-10-11 23:34:09 削除
5と思いました。
CMMIのレベル5は、「常に改善していくことが出来る」レベルだと思いました。

【公表された正解:5】 戻る


 
4-25 テストデータ - APEC -2005-10-11 14:33:54 削除
4-25 プログラムの中に、分岐のための判定条件として、{a>10 OR b<20}すなわち、「変数aの値が10よりも大きいか、あるいは、変数bの値が20より小さい」という式があったとする。この判定条件のテストデータを3種類作成するとして、最も適切なものを選択せよ。なお、具体的なテストデータは、(変数aの値,変数bの値)と表記している。

(1) (8,18) (9,19) (10,20)
(2) (9,21) (10,20) (11,19)
(3) (9,19) (10,20) (11,21)
(4) (10,19) (11,20) (11,21)
(5) (10,19) (11,20) (12,21)

(3) - しゅれ -2005-10-11 17:14:25 削除
(3)にしました。
3 - のり -2005-10-11 19:05:49 削除
3にしました。
3 - くびれっと -2005-10-11 23:24:07 削除
(3)にしました。
テスト素材として、
 aとb両方みたさない。
 aだけ満たす。
 bだけ満たす。
となっているのは、(3)だけで、あとは、ちぐはぐ。

3 - チーマン -2005-10-12 12:44:54 削除
私も3にしました。

【公表された正解:3】 戻る


  
4-26 モジュール分割 - APEC -2005-10-11 14:33:31 削除
4-26 通常、大きなシステムはモジュールに分割して実装される。このモジュール分割の評価基準の説明として、最も不適切なものを選べ。

(1) 個々のモジュールの凝集度(cohesion)または強度(strength)は強いほどよい。
(2) 機能的な関連は弱いが実行する時間が近い機能群を一つのモジュールにまとめる方法は避けた方がよい。
(3) モジュール間の結合度(coupling)は強いほどよい。
(4) モジュール間で共通にアクセスできるデータを介して情報をやり取りする方法は避けた方がよい。
(5) 一方のモジュールが他方のモジュールの内容に直接アクセスする方法は避けた方がよい。

解答 - K.S -2005-10-11 16:37:01 削除
(3)
モジュール結合度: 2つのモジュールの関連性を表す指標。関連が低いほど独立性が高いのでよい。

(3) - しゅれ -2005-10-11 17:15:11 削除
(3)にしました。

ちょっと自信が無かったので同じ答えに人がいてよかった。

3 - isshy -2005-10-11 18:22:40 削除
3にしました。

【公表された正解:3】 戻る


 
4-27 データベースのトランザクション - APEC -2005-10-11 14:33:16 削除
4-27 次のデータベースのトランザクションの説明で誤っているものを選べ。

(1) COMMITコマンドは、更新を確定してトランザクションを正常終了する処理である。
(2) ROLLBACKコマンドは更新の取り消しを行う処理である。
(3) 2相ロックは一度ロックを解放すると、他のロックの獲得ができない制御方式で、データベースの維持すべきACID特性の一つである原子性の特性を満たす。
(4) 共有ロックは共有ロック同士の場合のみ他のトランザクションからのアクセスを許る。
(5) 占有ロックは他のトランザクションからのアクセスを認めない。

3 - のり -2005-10-11 19:06:36 削除
3にしました。
3 - isshy -2005-10-11 19:08:45 削除
私も3です。DB苦手で自信なかったです。
解答 - ケーキ君 -2005-10-11 23:20:51 削除
3にしました。
原子性でよくないから - Anonymous -2005-10-12 00:07:13 削除
3が正解じゃないの?
誤ってるものを選ぶ問題です。

すみません - かりん -2005-10-12 00:10:47 削除
「誤っているものを選べ」に気づいて訂正しようとしたのですが、
Anonymousさんに指摘されてしまいました。
すみません。
2相ロックは、直列可能性を保障するので、原始性(atomicity)の
特性を満たすというよりも、一貫性(consistency)や独立性
(isolation)の特性を満たすように思えるので、(3)にしました。

- Anonymous -2005-10-12 00:15:42 削除
こちらこそ、余計なお世話をしてしまいましたm(_)m

【公表された正解:3】 戻る


 
4-28 関係データベース - APEC -2005-10-11 14:32:50 削除
4-28 次の関係データベースの説明で誤っているものを選べ。

(1) 各表にただ一個または一組の主キーを宣言できる。
(2) 一般に、一つの表に複数の候補キーが存在する。
(3) 外部キーは表の間の参照関係を表す。
(4) 外部キーの値はSQL文によって更新できない。
(5) ビューはANSI/SPARC3層スキーマの外部スキーマに対応する。

4-28の解答 - かりん -2005-10-11 17:02:26 削除
外部キーの値はSQL文(update文)で更新可能なので、
(4)にしました。

4 - isshy -2005-10-11 18:24:39 削除
4にしました。
解答 - ケーキ君 -2005-10-11 23:21:05 削除
4にしました。
4 - くびれっと -2005-10-11 23:25:50 削除
(4)ですね。
4 - のり -2005-10-12 11:27:20 削除
4にしました。

【公表された正解:4】 戻る


  
4-29 データベースの障害回復 - APEC -2005-10-11 14:32:30 削除
4-29 ログに基づくデータベースの障害回復について述べた次の説明で誤っているものを選べ。

(1) データベースはバックアップを定期的に取るように求められている。
(2) メディア障害の回復で、チェックポイントを利用する場合もある。
(3) 各ディスクの故障が平均年1回の独立事象と仮定すると、ディスクの二重化による同時の故障発生は数千年から数万年に一度と予測されている。
(4) メディア障害が発生しえないと仮定した場合、処理中の全トランザクションが終了すればログファイルの内容は必要なくなる。
(5) ロールフォワードはデータベースの処理をやり直して障害回復をする。

4-29の疑問 - かりん -2005-10-11 17:13:13 削除
解答は(3)と思いますが、選択肢の(4)も誤りではないでしょうか?
理由は、チェックポイント前にソフトウェア障害(メディア障害
ではない)などが原因で、終了したトランザクションの更新情報が、
データベースに反映されていない場合、ログファイルを使用して、
ロールフォワードする必要があると思うのですが。

(4) - しゅれ -2005-10-11 17:16:11 削除
(3)・(4)を迷いました。
(4)にしました。自身ありません…

3 - isshy -2005-10-11 18:24:22 削除
3にしました。
同意 - たれ -2005-10-11 18:59:09 削除
(4)も誤りに同意です。
メモリ障害時はどないやねん!と。
今時のRDBMSはメモリ上にキャッシュするのになぁ、と。

解答 - ケーキ君 -2005-10-11 23:21:49 削除
3にしました。
3 - くびれっと -2005-10-11 23:32:31 削除
(3)にしました。
年一回も壊れるのに、同時故障が数千年から数万年に一度って
ことは普通に考えてもおかしい・・・。
壊れて数秒以内に交換できるならいいが・・・。

3 - のり -2005-10-12 11:28:11 削除
3にしました。

【公表された正解:4】 戻る


  
4-30 「会員表」と「成績表」 - APEC -2005-10-11 14:32:08 削除
4-30 「会員表」と「成績表」の2つの表があり、それぞれの関係スキーマは次ぎように与えられている。
  会員表(会員ID,会員名,会員出身ID,会員出身名)
  成績表(会員ID,日時,スコア)
次のSQL文で、誤っているものを選べ。

(1) SELECT 会員表.会員ID, 会員表.会員出身名, 成績表.日時 FROM 会員表, 成績表
WHERE 会員表.会員ID = ‘1H001’ AND 会員表.会員ID = 成績表.会員ID;
(2) SELECT 会員表.会員出身名, COUNT(成績表.会員ID) FROM 会員表, 成績表
WHERE 会員表.会員ID = 成績表.会員ID GROUP BY 会員表.会員ID;
(3) SELECT 会員表.会員ID, 会員表.会員名, 成績表.スコア, 成績表.日時 
FROM 会員表, 成績表 WHERE 会員表.会員ID = 成績表.会員ID;
(4) SELECT 会員表.会員ID, AVG(成績表.スコア) FROM 会員表, 成績表
WHERE 会員表.会員ID = 成績表.会員ID GROUP BY 会員表.会員ID
HAVING AVG(成績表.スコア) > 17;
(5) SELECT M1.会員ID, M1.会員名, M2.会員ID, M2.会員名
 FROM 会員表 AS M1,  会員表 AS M2 WHERE M1.会員ID > M2.会員ID;

2 - のり -2005-10-11 19:08:03 削除
2にしました。
解答 - ケーキ君 -2005-10-11 23:22:15 削除
5にしました。
私も5! - Anonymous -2005-10-11 23:37:48 削除
(5)は、結合されてねーじゃん ←上手くいえないけど
2 - Anonymous -2005-10-11 23:55:31 削除
5はIDの組が
2 1
3 1
3 2
みたいなのができると思う。
2は出身名がGROUP BYに記述されてない。

- ギリギリ -2005-10-12 00:03:47 削除
2にしました

【公表された正解:2】 戻る


  
4-31 売り上げ表 - APEC -2005-10-11 14:31:33 削除
4-31 次の売り上げ表を第3正規形までに変換した場合、表の数の最も少ない場合は何個になるか。選択肢から選べ。

伝票ID メンバID メンバ名  日付 商品ID 商品名  単価 数量
 1     100    佐藤   07-03 2315  パットA  300  2
 1     100    佐藤   07-03 2316  パットB  350  5
 2     102    鈴木   07-04 3215  パットC  330  5

(1) 1
(2) 2
(3) 3
(4) 4
(5) 5

(3) - しゅれ -2005-10-11 17:18:29 削除
(3)にしました。

商品ID−商品名−単価
メンバID−メンバ名
伝票ID−メンバID−日付−商品ID−数量

じゃないでしょうか?ちょっと自身ありません

3 - isshy -2005-10-11 18:23:58 削除
同じく自信なしの(3)です。
4 - のり -2005-10-11 19:10:58 削除
4にしました。
商品ID−商品名−単価
メンバID−メンバ名
伝票ID−メンバID−日付
伝票ID−商品ID−数量
では?

4-31の解答 - かりん -2005-10-11 21:56:21 削除
(4)にしました。
売り上げ表は、第1正規形,候補キーは(伝票ID,商品ID)と
思うので、第2正規形へ変換します。
メンバID,メンバ名,日付は伝票IDに完全関数従属(候補キー
に部分関数従属)しているので、別表にします。
また、商品名と単価は商品IDに完全関数従属しているので、
これも別表にします。
(伝票ID,商品ID,数量)
(伝票ID,メンバID,メンバ名,日付)
(商品ID,商品名,単価)
第3正規形は、推移的関数従属が排除された状態なので、
伝票ID→メンバID→メンバ名の関係を排除します。
したがって、
(伝票ID,商品ID,数量)
(伝票ID,メンバID,日付)
(商品ID,商品名,単価)
(メンバID,メンバ名)

解答 - ケーキ君 -2005-10-11 23:22:44 削除
4にしました。
- どっち?! -2005-10-12 00:08:46 削除
3にしました
3なのでは? - Mr.X -2005-10-12 01:12:01 削除
よくわかりませんが、
「表の数の最も少ない場合」とあるのと、直感的に
一意である必要があるのは「伝票ID」と「メンバーID」と「商品ID」なので、実際に設計する上でも3つの表にすると思い。
(3)にしました。

【公表された正解:4】 戻る


  
4-32 8ビットのデータ訂正 - APEC -2005-10-11 14:30:31 削除
4-32 8ビットのデータを1ビット誤り訂正ECCコードにするためには、最低何ビットを追加する必要があるか。

(1) 1ビット
(2) 3ビット
(3) 4ビット
(4) 6ビット
(5) 8ビット

2 - ぴぐれっと -2005-10-12 09:17:02 削除
(2)にしました。

データの始まりの同期をとっている伝送路なら、
最低1ビットでいいとして、
0だとビットを起てない伝送路の場合を仮定すると、
データの構成は、
<データの始まりを示す1ビット,データ部8ビット,1ビットの誤り訂正,終わりを示す1ビット>
になるのかなぁ。
固定データ長の場合、終わりを示す1ビットは、いらないと
思いますが、2ビットは、答えにないから、
3ビットが答えかなぁと思います。

あれ?最低ならやっぱり1ビット?

3 - ぴぐれっと -2005-10-13 13:43:41 削除
(3)でしたね。

検討違いの回答でした。
8ビットそれぞれ伝送路で1ビットづつ間違えた状態には、
正しいのを含め、9通りの受信パターンがあります。
その9通りの状態をあらわすには、単純に4ビット必要です。
さらにその4ビットも1ビットづつ間違えることがありますから、
全部で12ビット13通りの受信パターンがありえます。
13通りは、4ビットの範囲内であらわせるので、
答えは4ビットです。
誤り訂正の意味を初めて理解しました・・・。

【公表された正解:3】 戻る


  
4-33 最低限必要な圧縮率 - APEC -2005-10-11 14:30:13 削除
4-33 256Kbpsの回線速度で接続された端末に映像を配信する。撮影された映像は、幅600ピクセル,高さ400ピクセルで、フレームレートは30fps,各ピクセルはYUV 4:2:2で色深度が16bit相当とする。このとき配信するために、最低限必要な圧縮率として最も適切なものを選べ。

(1) 1/5
(2) 1/10
(3) 1/50
(4) 1/100
(5) 1/500

(5) - しゅれ -2005-10-11 17:20:47 削除
(5)にしました。

600*400*16*30=115200000bit
115200kbit/256kbit=450
なので、最低必要なのは(5)ではないでしょうか。

5 - isshy -2005-10-11 18:23:30 削除
5ですね。
解答 - ケーキ君 -2005-10-11 23:23:14 削除
5にしました。
5 - くびれっと -2005-10-11 23:38:00 削除
(5)にしました。
5 - のり -2005-10-12 11:34:05 削除
5にしました。

【公表された正解:5】 戻る


  
4-34 画像空間領域のフィルタリング - APEC -2005-10-11 14:29:50 削除
4-34 画像空間領域のフィルタリングにおいて、3×3の行列から構成される画素フィルタを畳み込み関数として用いるときに、最鋭化処理を行うフィルタを選べ。

(1) 0 -1 0
  -1 5 -1
  0 -1 0

(2) 0 1/5 0
  1/5 1/5 1/5
  0 1/5 0

(3) 1/9 1/9 1/9 
  1/9 1/9 1/9 
1/9 1/9 1/9 

(4) 0 1 0
  1 -4 1
  0 1 0

(5) 0 0 0
  -1 0 1
  0 0 0

(1) - しゅれ -2005-10-11 17:21:29 削除
(1)にしました。

自信ありません。

1 - isshy -2005-10-11 18:23:13 削除
同じく自信なしで(1)にしました。
1 - くびれっと -2005-10-11 22:56:57 削除
鮮鋭化フィルタの典型ですね。
画像処理検定のテキストにもまったく同じ畳み込み関数がでてました。(1)で鉄板です。

解答 - ケーキ君 -2005-10-11 23:23:40 削除
1にしました。

【公表された正解:1】 戻る


  
3-35 文字集合と符号化 - APEC -2005-10-11 14:29:23 削除
3-35 文字集合と符号化に関する次の記述の中で、誤っているものを選べ。

(1) ASCIIは7ビット符号化文字集合である。
(2) ASCIIとJIS X0201ラテン文字(半角英字)は、まったく同じ文字集合である。
(3) Unicode(ISO 10646)は、複数の符号化方式が存在する。
(4) JIS X0208の2バイトコードの各バイトの最上位ビットを1にすると、対応するEUCコードを求めることがきる。
(5) XMLでは、使用する文字符号化方式を宣言できる。

(3) - しゅれ -2005-10-11 17:36:45 削除
(3)にしました。

ソフトウエア開発の参考書をみると。
Unicode(USC-2)
世界各国の文字を、統一された文字コードで表現する為の規格。すべての文字を2バイトで表現する。
と書いています。
統一=複数存在なし と思ったのですが安易だったかな?

(4) - zick -2005-10-11 18:30:11 削除
(4)にしました。
EUCは可変長だったと思うので、
2バイトコードを単純に変形するだけでは駄目なような気が。

ちなみに、Unicodeは符号化方式として、
UTF-8、UTF-16などがあります。

(2) - たかの -2005-10-11 19:02:44 削除
(2)にしました。

ASCIIのバックスラッシュが、JISでは\になっていると思ったからです。
が、設問の「X201ラテン文字(半角英数)」というのを改めて見て、記号は入らないのか?と今になって悩んでいます。

解答 - ケーキ君 -2005-10-11 23:25:15 削除
2にしました。
2 - くびれっと -2005-10-11 23:50:29 削除
(2)にしましたが、
たかのさんの記述が気になります・・・。

【公表された正解:2】 戻る