Relative Content

速習C言語入門3

C exercises(5) Address

ポインタの仕組み:アドレスとは ポインタはC言語(および拡張言語)に特有の概念で、C言語を学び始めた初心者が必ずといっていいほどつまづく概念でもあります。ポインタがどうしても理解できないためにC言語に挫折してしまう方もいます。 アドレスの基本 コンピュータの記憶装置(メモリ)には、アドレスが付けられている。 変数のアドレス 変数のアドレスを取得するには変数名の前にアンパサンド “&”をつけます。 int a = 123; printf(“aのアドレス : %p\n”, &a); 配列のアドレス 配列の先頭をアドレスは、配列名だけで示します。要素のアドレスは&配列名[添字]で示します。 #include <stdio.h> int main() { char str[3] = “AB”; printf(“str[0]の要素のアドレス: %p\n”, &str[0]); printf(“strのアドレス: %p\n”, str); getch(); return 0; }     二次元配列のアドレス 二次元配列の先頭アドレスは、配列名だけで示します。要素のアドレスは&配列名[行][列]で示します。 値とアドレスの表現 変数、1次元配列、2次元配列の整理 値 (要素)アドレス 先頭アドレス 変数 変数名 &変数名 1次元配列 配列名[添字] &配列名[添字] 配列名 2次元配列 配列名[行][列] &配列名[行][列] […]

C exercises (4) math and utility

数学関数 数学的な計算が必要な場合に使用する命令セットです。引数と返りは全てdouble型になります。 主なもの: sin(x):角度x(ラジアン)のsinの値を返す cos(x):角度x(ラジアン)のcosの値を返す tan(x):角度x(ラジアン)のtanの値を返す pow(x,y):xのy乗の値を返す exp(x):指数関数eのx乗の値を返す log(x):xの自然対数の値を返す log10(x):xの常用対数の値を返す sqrt(x):xの平方根の値を返す ceil(x):小数第一位を切り捨てした値を返す floor(x):小数第一位を切り上げした値を返す round(x):小数第一位を四捨五入した値を返す サンプル: #include <stdio.h> #include <math.h> //math.hのインクルードを忘れずに int main(int argc, const char * argv[]) { // insert code here… double value = 0.5; printf(“sin : %f\n”, sin(value));     printf(“sqrt : %f\n”, sqrt(value)); printf(“ceil : %d\n”, (int)ceil(value)); printf(“floor : %d\n”, (int)floor(value)); return 0; }  文字列を数値型に変換する関数 文字列を数値型にするときに使われる関数がatoi関数(整数型に変換する場合)とatof関数(小数型に変換する場合)があります。 サンプル: […]

C exercises (3) string and ctype

標準ライブラリ関数 : 文字列操作関数 string.hのヘッダファイルをincludeする 主なもの: strcpy(ss,st):文字列(文字型の配列)ssに文字列stをコピーする strlen(st):文字列stの長さを求める strcat(ss,st):文字列ssの後ろに文字列stを連結する strncpy(ss,st,n):文字列ssに文字列stの先頭n文字をコピーする strncat(ss,st,n)文字列ssの後ろに文字列stの先頭n文字を連結する サンプル: #include <stdio.h> #include <string.h> //string.hのインクルードを忘れずに int main(int argc, const char * argv[]) { // insert code here… char str[40]; char alpha1[] = “ABCDE”; char alpha2[] = “VWXYZ”; int length; printf(“alpha1 : %s\n”, alpha1); printf(“alpha2 : %s\n”, alpha2); strcpy(str, alpha1); strcat(str, alpha2); printf(“str : %s\n”, […]

C exercises (2) stdio

標準ライブラリ関数 : 標準入出力関数 標準入出力関数には(C言語プログラミング)で説明した printf() や scanf() の他にも 下のように 1文字専用の入出力関数と 1行専用の入出力関数が用意されている。 標準入力から文字入力 getchar 関数 標準出力から文字出力 putchar 関数 標準入力から文字列入力 gets 関数 標準出力から文字列出力 puts 関数 標準入力から書式付き入力 scanf 関数 標準出力から書式付き出力 printf 関数 標準入力関数(参考) getchar() int getchar(void); 標準入力(キーボード)からの入力値を「EOF」まで1文字づつ取得します。エラー時は「EOF」を返します。 gets() char *gets(char *str); 標準入力(キーボード)からの入力値を「EOF」※1まで1行づつ取得して、その文字列の先頭アドレスを引数のchar型ポインタ(*str)に渡すと共に戻り値としても返します。エラー時は「EOF」を返します。 但し現在では読み込む長さを指定できる「fgets()」の使用が推奨されています。 fgets() char *fgets(const char *str, int n, FILE *stream); 「*stream」で示されるストリーム※2から「n-1」文字を取得し「\0」を付加して、その文字列の先頭アドレスを引数のchar型ポインタ(*str)に渡すと共に戻り値としても返します。 scanf() int scanf(char *format,…) ; […]

C exercises (1) guidance

C言語プログラミングⅡの試験解説 #2015年度解答付後期C言語2プロ試験問題 C言語検定試験について 主催・認定 サーティファイ情報処理能力認定委員会 試験名 C言語プログラミング能力認定試験 (C-Language Programming Skills Qualification Test) 試験目的 C言語を駆使して応用プログラム(言語処理系、ユーティリティなど)を作成する能力を認定します。 認定基準 一級 C言語を駆使し、応用プログラム(言語処理系、ユーティリティなど)が作成できる能力を有する。 また使用しているOSについて理解をしている。 二級 小規模のプログラム(500行程度)が適切に(理路整然、簡潔、正しく、速く)書ける。 また各種基本アルゴリズムを理解している。 三級 C言語の概念を理解し、簡単なプログラムが書ける。   付録 プログラミング関連の資格 Oracle Certified Java Programmer C言語プログラミング能力認定試験 Ruby技術者認定試験制度 ORACLE MASTER Silver Oracle PL/SQL Developer IPA基本情報処理技術者試験 IPA応用情報処理技術者試験 マイクロソフト認定ソリューション デベロッパー (MCSD) CIW Web Development Professional Certification 情報検定(J検) JSTQBテスト技術者資格認定 参考サイト: http://techacademy.jp/magazine/894 2015年の人気プログラム言語比較 言語の特徴を表にまとめてみました。 用途 […]

C programming exercises

【授業の概要】 コンピュータプログラム開発言語の中で広く利用されているC言語をCプログラミング開発環境ソフト: CPad for Borland C++ Compilerを使った一人一台のPCを使い実習により学びます. 毎回問題に取り組み理解を深めます。復習問題としてプログラミング課題を出題する。 【授業要旨】 回数 題目 授業内容 学習課題 予習時間(分) 復習時間(分) 1 ガイダンス 学習目的 C言語プログラミングⅡの試験解説   C言語検定試験について 授業内容を復習する 60 2 標準ライブラリ関数1 標準入出力関数 テキスト(P186-193)を読む 授業内容を復習する 30 60 3 標準ライブラリ関数2,3 文字列操作関数  文字操作関数 テキスト(P194-208)を読む 授業内容を復習する 30 60 4 標準ライブラリ関数4,5 数学関数  一般ユーテリティ関数 atoi atof rand srand テキスト(P209-224)を読む 授業内容を復習する 30 60 5 ポインタの仕組み アドレスとは テキスト(P225-233)を読む 授業内容を復習する 30 60 6 ポインタの仕組み […]