読者です 読者をやめる 読者になる 読者になる

技術士の技事録

新米技術士が、IT技術動向・高度資格試験対策等、現役SE向け情報を発信します。

技術士第一次試験専門科目 平成23年度 Ⅲ-1

問題

次のC言語のプログラムは不適切である。その理由として最も適切なものはどれか。ただし,プログラム中の左端の数字は行番号であり,プログラムには含まれない。19行目には注釈に示すようなプログラム部分(そこには不適切な内容は含まれないとする)があるが,その詳細はここでは省略した。

 1 #include<stdio.h>
 2 
 3 struct intpair {
 4  int m, n;
 5 };
 6 
 7 struct intpair f(int m, int n){
 8  struct intpair t;
 9  t.m=m;
10  t.n=n;
11  return&t;
12 }
13 
14 in七main(void){
15  struct intpair *p, *q;
16  p=f(1,2);
17  q=f(3,4);
18  printf(”%d,%d,%d,%d¥n",p->m,P一>n,q->m,q->n);
19  /*ここにpとqを用いた計算を行うプログラム部分がある。*/
20 return 0;
21 

選択肢

構造体intpairの定義の最後(5行目)に,余計な;がついている。
関数fの仮引数名と構造体in七pairのメンバ名が,重複(ともにmとn)している。
9行目及び10行目の代入の左辺が,それぞれ七一>m,t>nになっていない。
関数fが局所変数へのポインタを返している。
18行目のprintfの書式が誤っている。

 

答え

 ④

解説

 

次の問題へ専門科目TOPへ技術士TOPへ