• ベストアンサー

問題がとけません

以下の設問に答えよ。 型はC言語の基本型でchar型を除いたもので答えよ。 1.次の演算結果の型と値を求めよ。 100/10*5 2.次の演算結果の型と値を求めよ。 1.0f/2 3.次の演算結果の型と値を答えよ。 100/10*5.0 4.次の演算結果の値を答えよ。 54321-54321/100*100 5.次の演算結果の値を答えよ。※(int)(式)は,式の値の小数点以下を切り捨ててint型に変換する。 (int)(123/5.0+0.5) 6.次の演算結果の型と値を答えよ。 5<2 7.次の演算結果の型と値を答えよ。 5.0>2 8.変数a,b,cに関して,a<b<cの真偽を評価する論理式を書け。 9.次の文が実行された後,変数i,kの値はいくらになっているか。変数はどちらもint型とする。 i=0; k=0; k=5+(++i); 10.次の文が実行された後,変数kの値はいくらになっているか。変数はどちらもint型とする。 i=5; k=5; k *= i<0 ? (-i) : i; 11.次の文Aは実行されるか。kの型はintである。文法的な誤りはない。 if(k = 0)  文A

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

違うところだけ指摘します。 ■次の演算結果の型と値を求めよ。 1.0f/2 ------- 型:double 値:0 間違いです。 1.0f の 「f」の意味を調べてください。 検索するなら、「型」と「サフィックス」 ■次の演算結果の型と値を答えよ。 5.0>2 ------- 型:double 値: 間違いです。 比較演算子の演算結果は、 必ず int になります。 5 < 2 の結果が 0 になることが わかれば、 5.0 > 2 の結果も同 じように考えることができます。 ■変数a,b,cに関して,a<b<cの真偽  を評価する論理式を書け  a < b の真偽を評価する式はそのまま a < b です。   ただし、 < は2項演算子なので  2つのものしか比較できません。  ・ a < b < c とはどういう意味でしょうか?  ・ a, b および、b, c それぞれの関係に    着目します。  ・ 2つの条件式ができますから、その2つを    つなげるための論理演算子を調べます。 i=0; k=0; k=5+(++i); ------- i=2 k=7 間違いです。 ++ という演算子の意味と、 前置・後置の違いをあわせて 調べてください。 i=5; k=5; k *= i<0 ? (-i) : i; ------- i=1 k=1073834952 間違いです。 「3項演算子」を調べてください あと、結果の型が int なら、 答えも、50 でいいですが、 結果の型が double なら、50.0 としたほうが、親切ではある でしょう。

その他の回答 (2)

回答No.2

> 演算結果の型とはなんでしょうか?  問題の中に、「型はC言語の基本型でchar型 を除いたもので答えよ」とあります。 ・テキストの中から、「型」を挙げてみましょう。 ・100 や 10 や 5 の型はどれになるか調べましょう ・調べた「型」同士の演算結果の型を調べましょう。 ・そうすると、100/5*5 の型がわかります。 ・10f や、5.0 の型も同じように調べましょう。 ・それぞれの「型」同士の演算結果の型を調べましょう。 > 値は普通に計算して100/10*5=50 > という形でよいのでしょうか? この場合はたまたま正解です。 テキストの中で、演算結果についての注意事項 を探してみましょう。 > このような計算の方法をしらないのですが テキストの中から、「比較演算子」の説明を調べましょう

naka0129
質問者

お礼

なんとかわかる範囲で解いてみました。 間違い等があるかと思います。 本日までなので、なんとか教えていただければと思います。 空欄はわからないものです。 テキストがない授業なのでこまっていたのですよ>< ■次の演算結果の型と値を求めよ。 100/10*5 ------- 型:int 値:50 ■次の演算結果の型と値を求めよ。 1.0f/2 ------- 型:double 値:0 ■次の演算結果の型と値を答えよ。 100/10*5.0 ------- 型:double 値:50 ■次の演算結果の値を答えよ。 54321-54321/100*100 ------- 型:int 値:21 ■次の演算結果の値を答えよ。 (int)(式)は,式の値の小数点以下を切り捨ててint型に変換する。 (int)(123/5.0+0.5) ------- 25 ■次の演算結果の型と値を答えよ。 5<2 ------- 型:int 値:0 ■次の演算結果の型と値を答えよ。 5.0>2 ------- 型:double 値: ■変数a,b,cに関して,a<b<cの真偽を評価する論理式を書け。 ■次の文が実行された後,変数i,kの値はいくらになっているか。変数はどちらもint型とする。 i=0; k=0; k=5+(++i); ------- i=2 k=7 ■次の文が実行された後,変数kの値はいくらになっているか。変数はどちらもint型とする。 i=5; k=5; k *= i<0 ? (-i) : i; ------- i=1 k=1073834952 ■次の文Aは実行されるか。kの型はintである。文法的な誤りはない。 if(k = 0)  文A ------- 代入演算式の値と型は、代入が実行された後の左辺の値と型になる。 よって、kに0が代入されてしまい、()内が常に偽となってしまうので実行されない。 正しくは = ↓ == とすべき

  • hidebun
  • ベストアンサー率50% (92/181)
回答No.1

補足を要求します。いったいどこがわからないんでしょうか。 ”全部”はなしで、1つ1つ、わからないところを補足願います。

naka0129
質問者

補足

質問方法が不適切でした。 申し訳ございません。 >1.次の演算結果の型と値を求めよ。 100/10*5 演算結果の型とはなんでしょうか? 値は普通に計算して100/10*5=50 という形でよいのでしょうか? >$6.次の演算結果の型と値を答えよ。 5<2 このような計算の方法をしらないのですが教えていただけますでしょうか?

関連するQ&A

専門家に質問してみよう