このページは 2011年度プログラミングⅠのオンライン中間テスト(過去問)です。
試験時間は40分(17:10〜17:50)とする。
教科書・プリント・参考書などは持ち込み可能である。
(量に特に制限はないが、隣の人の領域を侵犯しないようすること。
また、テスト中の物品の貸し借りは禁止する。)
使用できるソフトは、ブラウザ(Firefox 推奨・Internet Explorer 非推奨)、 エディタ(メモ帳・MkEditorなど)、 コマンド プロンプト (およびその中での cl, cd, dir などの C 言語のコンパイルと実行に必要なコマンド)である。
不正行為の定義はペーパーでのテストに準じるものとする。つまり、
メール, チャット, Messenger, FTP, WinSCP などの通信系ソフトは使用禁止、
ブラウザも掲示板、Webメールなどの他人との通信が可能なページは閲覧禁止
(もちろん課題提出用ページは除く)、
stfile のネットワークフォルダも使用禁止とする。
(Google, Yahoo など検索系のページは利用しても構わない。)
私語や携帯電話の使用などペーパーテストで禁止されていることは、オンラインテストでも禁止である。
以下の問に答えよ。
以下のプログラムは動作はする(はずだ)がインデンテーションが滅茶苦茶である。 プログラミングⅠ のインデンテーションの約束事に厳密に従って(特に 5番目のルールに注意)、インデントしなおせ。(ブレース内の字下げは4文字分とせよ。) もちろんプログラムの動作が変わらないことを確認しておくこと。
#include <stdio.h> int main(void) { int k = 0, n = 0; while (k < 20) if (k++%2==0) n += k; printf("%d", n); return 0; }
1から50までの整数 iに対して i * i - iを表示するプログラムを作成せよ。
1 * 1 - 1 = 0 2 * 2 - 2 = 2 3 * 3 - 3 = 6 4 * 4 - 4 = 12 … 50 * 50 - 50 = 2450
出力のための命令としては、
printf("%d * %d - %d = %d\n", …, …, …, …);という形(…の部分はint型の式)を1回だけ使用すること。
参考にするプログラム: List 4-11