わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

C

C言語について,知っておくとよいこと

「C言語」はしばしば「C」と書かれます.

ゼロイチゼロイチ...

C

いきなりですが問題です.以下のプログラムの出力が「1 -1 1 -1 1 -1 1 -1 1 -1」となるようにするには,/* ??? */と書いた箇所にどのようなコードを書けばいいでしょうか. #include <stdio.h> int main(void) { int i, x = 1; for (i = 0; i <= 10; i++) { printf("</stdio.h>…

1e-10は定数,でも-10は定数ではない?

C

いきなりですが問題です.以下のうち,Cにおいて「定数」となるのは,どれでしょうか? 「#define RED 1」と書いたときのRED 「const int c = -10;」と宣言したときのc 「const int c = -10;」における-10 「"hello, world\n"」のような文字列定数

ツェラーの公式をCで

ifとelseを使いこなそう〜3. 曜日

C

あるアルゴリズムは,年と月と日を表す整数値を入力にとり,曜日を表す1個の整数値を求めます.1は月曜日,2は火曜日,…,6は土曜日,そして7は日曜日にそれぞれ対応します*1.年月日のうち日を表す英単語はdayなのに対し,曜日はday of weekとなりますので…

ifとelseを使いこなそう〜2. 序数の接尾辞

C

プログラムコードの前に,何をしたいかを書かないといけません.我々は英語で2種類の数を学んできたはずです.一つは,one, two, three, four, ...と数えていくもので,普通の数なのですが,「基数」と呼ばれます.もう一つの数は,first, second, third, fo…

ifとelseを使いこなそう〜1. 野球の先攻・後攻チーム

C

昨日の記事のある意味,続きです.int score[2][9];で宣言した2次元配列に,ある試合のジャイアンツとタイガース*1の各回の点数を格納しておき,文字のみでスコアボードを出力するプログラムを考えてみます.先攻となるジャイアンツの合計得点は,score[0][0…

3次元配列をつくろう

C

いきなりですが問題です. Cの2次元配列に格納するとよいデータの例を挙げてください. Cの3次元配列に格納するとよいデータの例を挙げてください. さっそくですが解答です.担当科目(1年後期のプログラミング科目)では例年,「野球のスコア」を例にとり…

%02dは,「必ず2桁」ではない

C

いきなりですが問題です.次のプログラムは,何を出力するでしょうか. #include <stdio.h> int main(void) { int x = 133; printf("%02d\n", x); return 0; } さっそくですが解答です.出力は「133」です.プログラム中の「%02d」について,そのxの値では,「%d」と</stdio.h>…

こんにちは,エラーのある世界 (6)ヘッダファイルの前後を丸カッコにしたら

C

こんにちは,エラーのある世界(0)のhello.cについて,1行目の「<stdio.h>」を,「(stdio.h)」に変更して,hello6.cという名前で保存しておきます. このファイルをコンパイルすると,エラーになります. コマンドは(実行環境1・2共通): $ cat hello6.c #include (s</stdio.h>…

こんにちは,エラーのある世界 (5)studio.hと書いたら

C

こんにちは,エラーのある世界(0)のhello.cについて,1行目の「stdio」を,「studio」に変更して,hello5.cという名前で保存しておきます. このファイルをコンパイルすると,エラーになります.今回もまた,実行環境1と実行環境2とで,エラーメッセージが一…

こんにちは,エラーのある世界 (4)日本語文字を入れたら

C

こんにちは,エラーのある世界(0)のhello.cについて,5行目の「printf」の前の空白2文字分を,日本語文字の「 」に変更して,hello4.cという名前で保存しておきます. このファイルをコンパイルすると,エラーになります.今回もまた,実行環境1と実行環境2…

こんにちは,エラーのある世界 (3)prinftと書いたら

C

こんにちは,エラーのある世界(0)のhello.cについて,5行目の「printf」を「prinft」に変更して,hello3.cという名前で保存しておきます.このファイルをコンパイルすると,エラーになります.本日は,実行環境1と実行環境2とで,エラーメッセージが一部異な…

こんにちは,エラーのある世界 (2)¥nのnがなかったら

C

こんにちは,エラーのある世界(0)のhello.cについて,5行目,「hello, world」のあとは「¥n」,そして文字列*1の終わりとなる「"」を書いていました.「n」の文字を取り除いて,hello2.cという名前で保存します.このファイルをコンパイルすると,エラーにな…

こんにちは,エラーのある世界 (1)セミコロンがなかったら

C

こんにちは,エラーのある世界(0)のhello.cについて,5行目すなわち(インデントを除いて)printfから始まる行の末尾のセミコロンを取り除き,hello1.cという名前で保存しておきます.このファイルをコンパイルすると,エラーになります. コマンドは: $ ca…

こんにちは,エラーのある世界 (0)準備

C

Cのプログラムにわざと間違いを入れて,コンパイルすると,その間違いに応じたエラーメッセージが表示されます.プログラミング学習の早い段階から,典型的なエラーを知っておくと,「何をすればよいか,何をしてはいけないか」が気づきやすくなり,コーディ…

インデントしよう!(2017年度版)

いきなりですが問題です.2重ループのインデントについて,(1)と(2)のどちらが読みやすいでしょうか. /* (1) */ for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { /* (2) */ for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { さっそくですが解答…

¥nではなく

情報処理の授業は後期も,木曜3限と4限の担当です.Linuxを使うこともあり,演習室(計算機室)で行います.3限が終わると,学生は総入れ替えとなります. C言語の授業は主に,スライドによる解説と,「写経」で構成しています*1.「写経」では,スライドに…

プログラミングと順序指導

C

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

はじめてのリターン・ゼロ

C

いきなりですが問題です.テキストエディタを使って,以下のプログラムを打ち込んでください. ファイル名はhello.cにしましょう.色は勝手についてくれます(シンタックスハイライトといいます). …という課題を授業で出しました.何割かの学生にとって,…

入力のとり方:ハードコード,scanf,コマンドライン引数,ファイル読み出し

C

いきなりですが問題です. 2つの整数を入力にとり,その和を計算して出力するプログラムを,Cで書きなさい. さっそくですが解答の前に方針です.「入力のとり方」には,Cの基本的な内容を学習する段階でも,次の4つが考えられます. ソースファイルに,入力…

関数とは

昨日は,情報処理科目の「C」に関する授業の最終回でした.次回からはVBAです. 5つのクラスで学習内容を統一するため,授業当日まで,スライドや使用するサンプルプログラム,また発展課題の動作確認コードを教員間でチェックしています. それで,前日に行…

マイナス0を作る,使う

いきなりですが問題です. wikipedia:-0を見て,Cで次のように書いたのですが,どうもマイナス0になってくれていないのです. /* minus0_test.c */ #include <stdio.h> int main(void) { double x = -0; printf("%g\n", x); return 0; } 出力は「0」なのです.「-0」</stdio.h>…

sleepから始まるシーザー暗号

C

いきなりですが問題です.以下のソースコードをご覧ください.なお文字コードはASCIIを仮定します. /* caesar.c */ #include <stdio.h> int main(void) { char text[] = "sleep"; int i, j; printf("%2d: %s\n", 0, text); for (i = 1; i <= 26; i++) { for (j = 0; </stdio.h>…

Cプログラミングは楽し

先週月曜日に実施した試験の採点を終え,昨日,成績報告処理をしました.また先ほど,解答例と解説のPDFファイルを更新しました. 採点をしていて,気になったのは,レポート課題も,試験の大問4(プログラム論述)も,十分な分量を記述していたことです.論…

関数呼び出しで4択

C

いきなりですが問題です.____に当てはまるものを選びましょう. 関数呼び出しにおいて,実引数と仮引数が同じ変数名であっても,それらは別物とみなされる.なぜなら,____からである. ① 有効範囲が異なる ② 仮引数は変数でなくてもよい ③ 関数形式マクロ…

8421を出力

C

いきなりですが問題です. int i; for (i = 8; i > 0; i /* */ 1) printf("%d", i); 「8421」と出力するためには,「/* */」のところに何を書けばよいですか.

4択3問

いきなりですが問題です.適切な文になるよう,____に当てはまる語句を1つ選んで答えなさい. (1) structとtypedefを組み合わせれば,1つの文で____を同時に宣言できる. グローバル変数とローカル変数 構造体と変数 関数原型とその実体 複数の型 (2…

指定行を日本語で説明

今年度のプログラミング授業では,終了時の小テストに,例題プログラム*1の特定の行を指示し,その内容を日本語で説明するという課題を入れています. *1:資料として配布しています.プログラムコードには行番号を振っています.

2重ループで変数の値は何回変わるか,デバッガで確認

昨日付の記事の続きです.ソースを再掲します. #include <stdio.h> int main(void) { int i = 0, j = 0; for (i = 1; i <= 9; i++) { for (j = 1; j <= 9; j++) { printf("%2d ", i * j); } printf("\n"); } return 0; } 上のプログラムを実行したとき,2重ループの</stdio.h>…