本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(C 言語 ) サンプル問題 知識科目 第 1 問 (

Similar documents
本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(Java) サンプル問題 知識科目 第 1 問 (

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(VBA) サンプル問題 知識科目 第 1 問 ( 知

Microsoft Word - 3new.doc

プログラミング実習I

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

Microsoft Word - Cプログラミング演習(3)

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Microsoft PowerPoint - C4(反復for).ppt

kiso2-09.key

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

program7app.ppt

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

Microsoft Word - no103.docx

講習No.9

PowerPoint Presentation

PowerPoint プレゼンテーション

1. 入力した文字列を得る 1.1. 関数 scanf() を使う まずは関数 scanf() を使ったプログラムを作ってみましょう 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: #include<stdio.h> #define SIZE 128 main(

プログラミング基礎

講習No.1

プログラミング基礎

Java講座

Microsoft Word - no15.docx

PowerPoint Presentation

Microsoft PowerPoint - CproNt02.ppt [互換モード]

Microsoft Word - Cプログラミング演習(8)

ポインタ変数

Microsoft PowerPoint - 3.ppt [互換モード]

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i

8 / 0 1 i++ i 1 i-- i C !!! C 2

1. 関数 scanf() 関数 printf() は変数の値を画面に表示しますが それに対し関数 scanf() はキーボードで入力した値を変数に代入します この関数を活用することで対話式 ( ユーザーの操作に応じて処理を行う ) プログラムを作ることができるようになります 整数の和

gengo1-11

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

cp-7. 配列

PowerPoint プレゼンテーション

gengo1-2

スライド 1

4 分岐処理と繰返し処理 ( 教科書 P.32) プログラムの基本的処理は三つある. (1) 順次処理 : 上から下に順番に処理する ぶんきそろ (2) 分岐処理 : 条件が揃えば, 処理する はんぷく (3) 反復処理 : 条件が揃うまで処理を繰り返す 全てのプログラムは (1) から (3) の

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

C 言語講座 Vol 年 5 月 29 日 CISC

Microsoft Word - no11.docx

Taro-ポインタ変数Ⅰ(公開版).j

講習No.8

新・明解C言語で学ぶアルゴリズムとデータ構造

02: 変数と標準入出力

02: 変数と標準入出力

Taro-再帰関数Ⅱ(公開版).jtd

printf("5つの整数を入力して下さい \n"); /* データ入力 */ for( /*** 02 ***/ ){ printf("%dつ目の入力 :",i+1); scanf("%d", /*** 03 ***/ ); sum=dat[0]; /* 合計値の初期設定 */ n_max= 0

第1回 プログラミング演習3 センサーアプリケーション

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =

講習No.12

初歩のC言語ターミナル_2014_May.pages

数値計算

物質工学科 田中晋

Microsoft PowerPoint - 4.ppt [互換モード]

Microsoft Word - Cプログラミング演習(12)

プログラミングA

Microsoft Word - Cプログラミング演習(11)

‚æ2›ñ C„¾„ê‡Ìš|

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

PowerPoint プレゼンテーション

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

< F2D837C E95CF CF68A4A94C5816A2E6A>

情報処理演習 B8クラス

Microsoft Word - no02.doc

Cプログラミング1(再) 第2回

Taro-リストⅠ(公開版).jtd

Microsoft PowerPoint - prog04.ppt

第2回講義:まとめ

Taro-ファイル処理(公開版).jtd

memo

Microsoft Word - Cプログラミング演習(1)_2012

PowerPoint プレゼンテーション

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Taro-プログラミングの基礎Ⅱ(公

計算機プログラミング

Microsoft PowerPoint - 説明2_演算と型(C_guide2)【2015新教材対応確認済み】.pptx

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

<4D F736F F D20438CBE8CEA8D758DC03389F0939A82C282AB2E646F63>

Prog1_15th

gengo1-8

ポインタ変数

ポインタ変数

数値計算

4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for

memo

kiso2-06.key

C 言語第 3 回 2 a と b? 関係演算子 a と b の関係 関係演算子 等しい a==b 等しくない a!=b より大きい a>b 以上 a>=b より小さい a<b 以下 a<=b 状態 真偽 値 条件が満たされた場合 TRUE( 真 ) 1(0 以外 ) 条件が満たされなかった場合 F

目次

文字列 2 前回の授業ではコンピュータ内部での文字の取り扱い 文字型の変数 文字型変数への代入方法などを学習した 今回は 前回に引き続き 文字処理を学習する 内容は 標準入出力 ( キーボード ディスプレイ ) での文字処理 文字のファイル処理 文字を取り扱うライブラリ関数である 標準入出力 Lin

memo

Microsoft PowerPoint - C_Programming(3).pptx

Microsoft PowerPoint - 11.pptx

1. 入力した正の整数を降順に並べ換えて出力するプログラムを作成せよ プログラムは個別にコンパイルし make コマンドで実行すること 入力データは 50 以下とし 以下の数が混在しているとする 16 進数 : 先頭 1 文字が x または X( エックスの小文字か大文字 ) 8 進数 : 先頭 1

プログラミング基礎

講習No.10

Microsoft PowerPoint - 説明3_if文switch文(C_guide3)【2015新教材対応確認済み】.pptx

Microsoft PowerPoint - lec4.ppt

PowerPoint プレゼンテーション

Microsoft Word - no12.doc

Microsoft PowerPoint - program.ppt [互換モード]

Transcription:

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(C 言語 ) サンプル問題 知識科目 第 1 問 ( 知識 4 択 :20 問 ) 1.C 言語ソースプログラムの拡張子は何か 1 c 2 obj 3 exe 4 tbl 2. 文の最後に記述する記号はどれか 1 ; 2 : 3, 4. 3. 整数値を格納する変数の型を何というか 1 int 2 double 3 char 4 float 4. 一文字を格納する変数の型を何というか 1 char 2 int 3 double 4 float 5. プログラム中に記述した 0x64 は 10 進数ではいくつになるか 1 100 2 144 3 64 4 32

6. 変数名として使用することができないものはどれか 1 1ban 2 bangou1 3 b1 4 b_1 7.printf 関数を呼出す際に最も関係のある #include 前処理指令はどれか 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 #include<string.h> 8.printf 関数により文字列を表示するとき 記述すべき変換指定子は何か 1 %s 2 %c 3 %f 4 %d 9. 整数値に対する演算で剰余 ( 割り算の余り ) を求める演算子は何か 1 % 2 + 3 * 4 / 10. ビットごとの論理和を求める演算子はどれか 1 2 & 3 ^ 4 ~ 11. 整数型変数に対し 右に 2 ビットシフトすると変数の値はどのように変化するか 1 4 倍 2 2 倍 3 1/2 倍 4 1/4 倍 12.x=x+2; と同等の文はどれか 1 x+=2; 2 x=+2; 3 +x=2; 4 x++;

13. 論理式において または ( 論理和 ) を表現する演算子はどれか 1 2 && 3 4 & 14. 関係演算子でないものはどれか 1 = 2 <= 3 >= 4 > 15. 論理演算子でないものはどれか 1 & 2 && 3 4! 16.t x[10]; と宣言したとき 配列要素数は何個か 1 10 2 不定 3 9 4 11 17. 数字 (0 から 9) のみで構成された文字列を数値に変換するライブラリ関数はどれか 1 atoi() 2 gets() 3 strcpy() 4 strcmp() 18. 繰り返し処理の途中で以降の処理をスキップする文はどれか 1 Continue 2 break 3 goto 4 case 19.char 型へのポインタ p に対し p++; を実行した結果について最も適当な説明はどれか 1 p の値に char 型のサイズ ( 大きさ ) を加算する 2 p の値に文字数 (p の指す先の文字列の長さ ) を加算する 3 p の指す先の値に 2 を加算する 4 p の指す先の値に int 型のサイズ ( 大きさ ) を加算する

20.C 言語が設計され 作られた目的の説明で最も適当な説明は何か 1 効率的なオペレーティングシステムを構築するため 2 事務処理が容易にできるようにするため 3 科学技術計算を容易にできるようにするため 4 コンピュータゲームを作成するため

第 2 問 ( 穴埋め :2 問 ) 問題 1 毎日貯金することを考える 1 日目は 1 円 2 日目は 2 円 3 日目は 4 円というように 毎日倍額貯金すると 貯金総額が 100 万円を超えるのは何日目かを求め表示せよ 条件 1. 自然数の範囲で考えるので 変数の型は整数型とする 実行結果

アルゴリズム 開始 S = 0 D 1 =1 n = 1 S < 1000000 S 2 S + D n 日目は d 円を貯金し 総額 S 円 を表示 d = d 3 * 2 n++ 100 万円を超えるのは N-1 4 日目です と表示 終了

以上を実行するプログラムを記述せよ #include <stdio.h> int m ain(void) { int S, d, n; S = 0; d = 11; n = 1; printf(" 日目 \t 貯金額 \t 総額 \n"); while(s < 1000000) { S = S 2 + d; printf("%2d 日目 \t%6d 円 \t%7d 円 \n",n,d,s); d * =2; 3 n++; printf("100 万円を超えるのは %d 日目です \n", n-1 4 ); return 0; 1 から 4 に入るべき適当なプログラム片を選択せよ 1 (1)d = 0 (2)d = 1 (3)d = 2 (4)d = 3 2 (1)S = 0 (2)S += n (3)S += d (4)S ++ 3 (1)d = 1 (2)d *= 2 (3)d *= d (4)d++ 4 (1)d (2)d 1 (3)n (4)n-1

問題 2 10 種類のフルーツがある 各々何個か (0~9 個 ) 購入するとき 合計金額を求め 入金額に対しておつりを計算せよ ただし 例えば以下の様に入力し 10000 1020340567 1 行目は入金額で 10000 円を示し 2 行目は 以下のフルーツの順番に購入する個数を示す 順に 0~9 の数字を文字列として入力せよ バナナ :1 個 なし :2 個 かき :3 個 すいか :4 個 もも :5 個 ぶどう :6 個 いちじく :7 個 1020340567 ^^^^^^^^^^ 12345678910 桁桁桁桁桁桁桁桁桁桁目目目目目目目目目目 <10 種類のフルーツ > バナナ みかん なし メロン かき すいか キウイ もも ぶどう いちじく 実行結果 prom pt$./a.out 10000 1020340567 バナナ : 1=> 150 なし : 2=> 380 かき : 3=> 600 すいか : 4=> 1520 もも : 5=> 1200 ぶどう : 6=> 2400 いちじく : 7=> 2450 支払総額 :8700 おつり :1300

アルゴリズム 開始 入金額と購入数量 ( 文字列 s) を入力 a = 0 i = 0 i < 10 支払総額とおつりを表示 m に s の?(i を用いて計算 ) 桁目を数字として代入 i++ 終了 m!= 0 フルーツの単価と数量をかけ 合計金額を変数 c に代入 変数 a に c の値を追加

以上を実行するプログラムを記述せよ #include <stdio.h> #include <stdlib.h> static int p[ ]={ 150, 100, 190, 500, 200, 380, 170, 240, 400, 350 ; static char * f[ ] = { " バナナ ", " みかん ", " なし ", " メロン ", " かき ", " すいか ", " キウイ ", " もも ", " ぶどう ", " いちじく " ; int m ain(void) { int i,m,a=0,b,c; char s[256]; gets 1 (s); b = atoi(s); gets 1 (s); for(i=0;i<10;i++) { m = s[i]-48; 2 if(m!=0) { c = p[i]* 3 m; a += 4 c; printf("%10s:%3d=>%6d\n",f[i],m,c); printf(" 支払総額 :%d\n",a); printf(" おつり :%d\n",b-a); return 0; 1 から 4 に入るべき適当なプログラム片を選択せよ 1 (1)getc (2)gets (3)getchar (4)putchar 2 (1)s[i]; (2)s[i] 0 ; (3)s[i] 1 ; (4)s[i] 1 ; 3 (1)p[i]*m; (2)p[m]*i; (3)p[i+1]*m; (4)p[m+1]*i; 4 (1)a *= c; (2)a += c; (3)c *= a; (4)c += a;

第 3 問 ( 読解 :1 問 ) 問題 以下のプログラムの説明で最も適切なものを選択せよ プログラム #include <stdio.h> int m ain(void) { int n, i; n=123456; for(i=2;i<353;i++) while(n% i == 0) { n/= i; printf("%d* ",i); printf("%d\n",n); return 0; 選択肢 1 123456 は 素数かどうかを判定し結果を表示する 2 123456 は 2の累乗かどうかを判定し結果を表示する 3 123456 を素因数分解したときの因数を表示する 4 123456 の約数を求め表示する

実技科目 問題 1 2 から 100 までの約数を求め 表示しなさい 条件 1. 自然数の範囲で考えるので 変数の型は整数型とする 2. 以下の様に表示する ( 抜粋 )

アルゴリズム 開始 n = 2 n <= 100 n の約数 : を表示 1 m の一部 = 2 n++ m 1 の一部 <= n n % 2 m = 0 n == 3 m m と, を表示 m と 改行 を表示 m 1 = の一部 m + 1 終了

以上を実行するプログラムを記述せよ 1 から 3 に入る適当なプログラム片を入力せよ #include <stdio.h> int main() { int n, m; for( n=2 ; n<=100 ; n++ ) { printf("%d の約数 :", n); for( m =2;m <=n;m 1 ++ ) if( n%m==0 2 ) { if( n==m 3 ) printf("%d\n",m); else printf("%d,",m); return 0;

問題 2 3 辺 a, b, c(c を斜辺とする ) の直角三角形の成立条件は a 2 + b 2 = c 2 である 各辺の長さは自然数と仮定し さらに3~N(N=100) までの範囲の値をとるものとする 条件が成立する直角三角形の辺の組を求めよ (a, b の値を交換した直角三角形は同じとする ) 条件 1. for 文を 3 重ループにし a, b, c を総当たりで調べる 2. a b c と仮定する 3. 自然数の範囲で考えるので 変数の型は整数型とする 実行結果 3, 4, 5 5, 12, 13 6, 8, 10 7, 24, 25 8, 15, 17 9, 12, 15 9, 40, 41 < 略 >

アルゴリズム 開始 a = 3 N = 100 cnt = 0 個数 (cnt) を表示 a <= N a++ 終了 b = 1 a b++ b <= N c 2 = a c <= N a*a + b*b == c*c 3 cnt++ c++ 答の一つ a b c を表示

以上を実行するプログラムを記述せよ 1 から 3 に入る適当なプログラム片を入力せよ # include <stdio.h> int m ain(void) { int a, b, c, cnt=0, N=100; for( a=3; a<=n; a++ ) for( b=a 1 ; b<=n; b++ ) for( c=a 2 ; c<=n; c++ ) if( a* a+b* 3 b==c* c ) { cnt++; printf("%d, %d, %d\n", a,b,c); printf(" 個数 :%d\n", cnt ); return 0;

問題 3 20 人の学生の英語の試験の点が以下のようであった 氏名 英語 赤井 64 安藤 82 青山 98 有吉 76 浅井 83 浅野 63 浅岡 73 千葉 9 江口 88 遠藤 94 藤井 39 藤木 45 藤原 21 福永 58 船橋 99 古川 17 二村 82 花井 38 原田 88 橋本 100 英語の試験の点のヒストグラムを作ることを考える 配列 a に英語の試験の点をあらかじめ格納し 配列 h に度数を格納した後 * を用いて度数分布表を表示しなさい ヒストグラムとは 統計で度数分布を示すグラフの一つである ここでは 横軸に度数をとり 縦軸に階級をとる 実行結果 0 :* 10 :* 20 :* 30 :** 40 :* < 略 >

アルゴリズム 開始 配列 a に英語の試験の点を格納 配列 h の初期化 i = 0 N = 20 i < N i++ r = a[i]/10 1 h[ r 2 ]++ i = 0 i <= 10 階級 : の表示 終了 改行の表示 j = 0 j < 3 h[i] * の表示 j++

以上を実行するプログラムを記述せよ 1 から 3 に入る適当なプログラム片を入力せよ #include <stdio.h> static int a[]={64,82,98,76,83,63,73,9,88,94, 39,45,21,58,99,17,82,38,88,100; int m ain(void) { int h[11]; int i,j,r, N=20; for(i=0; i<=10; i++) h[i]=0; for(i=0; i<n; i++) { r = a[i]/10; 1 h[ r 2 ]++; for(i=0; i<=10; i++) { printf("%3d: ", i* 10 ); for(j=0; j<h[i] 3 ; j++) putchar('* '); putchar('\n'); return 0;