[セットトップ]20160129.CCPPシステム詳細(0008日)
74195 ワード
プログラムセグメント(01):関数.c+call.c+テストcppコンテンツ概要:関数
プログラムセグメント(02):C言語関数呼び出し例.c+関数c+run.c内容概要:関数の分割+関数の区分
プログラムセグメント(03):void.c+fun.c内容概要:関数の使用とパラメータ
プログラムセグメント(04):入出力.c+return.c内容概要:returnとパラメータ
内容概要(05):プロセス.c内容概要:関数実行手順
プログラムセグメント(06):go.c内容概要:関数パラメータの演算順序
プログラムセグメント(07):main.c内容概要:CodeBlocksテスト
プログラムセグメント(08):可変パラメータ.c内容概要:可変パラメータ
プログラムセグメント(09):C宣言.c+関数宣言.c+int.c+グローバルとローカルの衝突内容概要:C言語関数宣言+グローバル変数とローカル変数
プログラムセグメント(10):test.cppコンテンツ概要:宣言と定義の違い
プログラムセグメント(11):baidu.c+stack.c内容概要:関数呼び出しプロセスの簡単な再帰
プログラムセグメント(12):線形再帰.c+樹状再帰c+ハノタ.c内容概要:再帰
/// .c
#include <stdio.h>
#include <stdlib.h>
//01. :
// 1. : ,
// : ,
// : ,
int main01(void)
{
system("tasklist");
system("pause");
}
//02. :
// 1. :
// -->
// -->
// :
// 2. :
// C : (VS2015 Lib )
// ( ,
// ), ( + )
// , ( )
// : ,
// C++ :
// ,
// ,
// 3. :
// :
// , ,
// (CCPP )
// 4. :
// ,
// ,
int getres(int a, int b, int c);//
int main01(void)
{
//
int x = 11, y = 12, z = 13;
x = x*x*x;
y = y*y*y;
z = z*z*z;
int res = x + y + z;
res = getres(x, y, z);
printf("%d
", res);
int a = 10, b = 12, c = 13;
a = a*a*a;
b = b*b*b;
c = c*c*c;
int res1 = a + b + c;
res1 = getres(a, b, c);//
printf("res1 = %d
", res1);
system("pause");
}
//03. ,
// : , ( , )
// : , ( , )
int getres(int a, int b, int c)
{
return a*a*a + b*b*b + c*c*c;
}
///call.c
//01. :
// 1.VS2015 , (LIb) :
// , , C (Lib)
// ,
// :C (Lib) , C
// (LIb) , ,
// 2.C++ :
// ,
// ?
// ?
int main02(void)
{
system("calc");// ,
system("pause");
}
/// .cpp
#include <stdio.h>
#include <stdlib.h>
int add(int a, int b);//
//01. :
// 1.
// , (Lib)
// 2. :
// C :
// , (Lib) -->
// , , --> ,
// ,
// , ,
// C , ,
// , (Lib) ,
// C++ :
// , (Lib) -->
// , ,
// : ,
int main03(void)
{
add(1, 2);
printf("%d
", add(10, 20));
system("pause");
}
int add(int a, int b)
{
return a + b;
}
プログラムセグメント(02):C言語関数呼び出し例.c+関数c+run.c内容概要:関数の分割+関数の区分
///C .c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
//01. :
// 1.C abort();
// (1).
// ( : windows )
// (2). :
// , ,
// ( abort() )
// 2.C :
// !
// C++ ,
// Lambda
int main01(void)
{
int a;
int b;
scanf("%d,%d", &a, &b);
if (b == 0)
{
abort();//
}
printf("%d
", a / b);
//void go()
//{
//}
system("pause");
}
/// .c
#include <stdio.h>
#include <stdlib.h>//std: --> -->C (Lib)
#include <Windows.h>// : Windows
void run(char *path)// ,C ( ),
{//
ShellExecuteA(0, "open", path, 0, 0, 1);//
}
//01. :
// , :
//
//
int main02(void)
{//
// run("\"C:\\Program Files\\Tencent\\QQ\\QQProtect\\Bin\\QQProtect.exe\"");
// run("C:\\Users\\yincheng01\\AppData\\Roaming\\baidu\\BaiduYun\\baiduyun.exe");
system("pause");// , ,C , ,
}
///run.c
#include <stdio.h>
#include <stdlib.h>
//01. :
// :int getmax(int a, int b);--> (";")
// :int getmax(int a, int b){return a > b ? a : b;}--> ("{}")
// :int-->
// :getmax--> --> --> ( )
// C goto jump --> ( )
// C , ( )-->
// ( : )
// , ,
// --> ( <==> ) --> ( )
// :
// :(int a, int b)-->int a,int b
// :{return a > b ? a : b;}-->
// :return a > b ? a : b;-->return
int getmax(int a, int b);// , (";")
int getmax(int a, int b)
{
//int a;//
return a > b ? a : b;
}
int main03(void)
{
printf("%p
", getmax);
system("pause");
}
プログラムセグメント(03):void.c+fun.c内容概要:関数の使用とパラメータ
///void.c
#include <stdio.h>
#include <stdlib.h>
int add(int a, int b);// ,
//01.void :
// 1. ,
// :
// , return
// :
// ,
// 2.void :
// -->void *--> -->
// --> ( 4 | 8 )-->
//
// --> ,
// -->void----> ,
// --> ?
// -->
//02. :
// 1. !
// ( + )
// 2. void :
// C , ,
// C++ , ,
//03.return :
// 1. :
// 2. ( goto )
// 3.
//04. , int
// main int
// ,
int main01(void)
{
printf("%d
", add(10, 20));
//void a;//"a": "void" ,
return 1;//
// void, return , C++ ,
// C
system("pause");
}
add(int a, int b)
{
return a + b;
}
int main02(void)
{
getchar();// --> -->
getchar();// , ("")
system("pause");
}
///fun.c
#include <stdio.h>
#include <stdlib.h>
void change(int a)// :int a-->
{// ,
a = 3;
printf("&change = %p, change = %d
", &a, a);
}
int main03(void)
{
// ,
change(10);// , -->
system("pause");
}
//01. :
// 1. :
// (1). :
// ,
// ,
// (2).
//
// ( )
// 2. :
// --> --> -->
// --> --> ,
// --> --> ,
int main04(void)
{
int a = 10;
printf("&main = %p, main = %d
", &a ,a);
change(a);
printf("%d
", a);
system("pause");
}
プログラムセグメント(04):入出力.c+return.c内容概要:returnとパラメータ
/// .c
#include <stdio.h>
#include <stdlib.h>
int add(int a, int b)//int a, int b , ,
{
printf("add1 a = %d, b = %d
", a, b);
a = 19;
b = 29;// ,
printf("add2 a = %d, b = %d
", a, b);
return a + b;
}
//01. , :
// ->
// -->
int main01(void)
{
int a = 10;
int b = 20;
printf("%d
", add(a, b));
printf("%d
", add(11, 12));// , ( , )
printf("main a = %d, b = %d
", a, b);
system("pause");
}
//02. :
// add_debug(1, 2, 3);-->
// C , , ,
// add_debug(1);------->
//
// : ,
// :(int a, int b);
// :b--->a
// :
//03. :Release
// :
// : , ,
// :
// : 1, 2, 3
// (int a, int b)
// : :
// : 3 -> |
// 2 -> b
// :1 -> a
// :
// --> --> ,
int add_debug(int a, int b)
{
printf("a = %p, b = %p
", &a, &b);
printf("a = %d, b = %d
", a, b);
a = 1;
b = 2;
int x = 3;
int y = 4;
printf("x = %p, y = %p
", &x, &y);
printf("x = %d, y = %d
", x, y);
printf("
");
}
int main02(void)
{
//printf("%d
", add_debug(1));
//printf("%d
", add_debug(1, 2));
//printf("%d
", add_debug(3, 12));
printf("error = %d
",add_debug(1, 2, 3, 4, 5) );
system("pause");
}
//04. :
// C , :
// ,
// , ,
// C , ,
// C ,
int add_test(int a, int b)//int a = 11.0 ,
{
return a + b;
}
int main03(void)
{
printf("%d", add_test(11.9, 2, 3, 5, 10, 12));
system("pause");
}
//05. :
// ,
int add_test1(int a, int b)//return
{
return 13.9;
}
int main04(void)
{
printf("%d
", add_test1(1, 2));
//int a = 10;
//a + 1 = 9;
system("pause");
}
///return.c
#include <stdio.h>
#include <stdlib.h>
//01.C :
// ,
// return ,
//
int addx()
{
return 1;
}
int main05(void)
{
printf("%d
", addx());
system("pause");
}
//02. :
// (1). :
// ( --> --> --> )
// (2). :
// ( --> )+ ( --> )
int getnum()
{
int num;
printf("%p
", &num);
num = 10;
return 10.9;//return , , , , ( )
system("notepad");// , return ,
//int data = num;//
// , , |
}
void show()
{
system("notepad");
return;
}
//03. :
// goto: , ( )
// return: , ( )
void showx()
{
for (int i = 1; i < 100; i++)
{
if (i % 13 == 0)
{
printf("%d ", i);
return;// , --> goto
}
}
}
int main06(void)
{
//return;//main
printf("%d
", getnum());
showx();
system("pause");
}
//04.&getnum(); :
// 1. :
// --> --> -->
// 1.getnum();
// , ,
// ( : , )
int main07(void)
{
//printf("%d
", &getnum());// , ,
system("pause");
}
int add(int a, int b)//add(int a, int b)-->int
{
return a + b;
}
int main08(void)
{
printf("%d
", add(add(add(1, 2), 3), 4));
system("pause");
}
内容概要(05):プロセス.c内容概要:関数実行手順
#include <stdio.h>
#include <stdlib.h>
int main01(void)
{
printf("main
");
void print1();//C , ,
print1();
printf("%d
", add(-1, 0));// , ,
printf("main
");
system("pause");
}
int add(int a, int b)
{
return a + b;
}
void print1()
{
printf("print1
");
printf("print1
");
}
プログラムセグメント(06):go.c内容概要:関数パラメータの演算順序
#include <stdio.h>
#include <stdlib.h>
void show(int a, int b)
{
printf("a = %d, b = %d
", a, b);
}
int main01(void)
{
int a = 5;
show(a, a++);//6,5
system("pause");
}
//01. :
// 1. Release ( )
// 2. :
// :
// :
//
// :
//
// : :
// 3 ( )| ( )
// 2 -> b
// 1 -> a
// :
//
//
// :
//
//
//
//
//
//
//
// ( )
int add(int a, int b)
{
printf("&a = %d, &b = %d
", &a, &b);
printf("a = %d, b = %d
", a, b);
int x = 1;
int y = 2;
printf("&x = %d, &y =%d
", &x, &y);
printf("x = %d, b = %d
", x, y);
return a + b;
}
int main02(void)
{
//printf("%d
", add(1, 2));
printf("%d
", add(1, 2, 3));
system("pause");
}
プログラムセグメント(07):main.c内容概要:CodeBlocksテスト
#include <stdio.h>
#include <stdlib.h>
void show(int a, int b)
{
printf("a=%d,b=%d", a, b);
}
int main()
{//
int a = 5;
show(a, a++);
getchar();
}
プログラムセグメント(08):可変パラメータ.c内容概要:可変パラメータ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>// :
int add(int num, ...)//...
{
int res = 0;//
va_list argp;//
va_start(argp, num);// , num
for (int i = 0; i < num; i++)
{
res += va_arg(argp, int);// int
}
va_end(argp);//
return res;
}
int main01(void)
{
printf("%d
", add(3, 1, 2, 3));
printf("%d
", add(4, 1, 2, 3, 4));
printf("%d
", add(5, 1, 2, 3, 4, 5));
system("pause");
}
int main02(void)
{
printf("%d, %d, %d
", 1, 2, 3);
printf("%d, %s, %c, %d
", 1, "123", 'A', 4);
system("pause");
}
//01. :
// 1.
// 2. :
// (1). :
// #include <stdarg.h>
// (2). :
// void vatest(int count, ...);
// (3). :
// va_list argp;// ( )
// va_start(argp, count);// , count
// va_arg(argp, type);// type
// va_end(argp);//
void go(int num, ...)
{
va_list argp;//
va_start(argp, num);// , num
for (int i = 0; i < num; i++)
{
char str[50];
//sprintf(str, "%s", va_arg(argp, char *));
//system(str);// va_arg
system(va_arg(argp,char *));
// char *
}
va_end(argp);//
}
int main03(void)
{
go(3, "notepad", "calc", "tasklist & pause");
system("pause");
}
//02. :
// 1. ,
// 2. :
// (1). :
// #include <stdarg.h>//
// (2). :
// void vatest(int start, ...);//
// va_list argp;// ( )
// vastart(argp, start);//
// int argvalue = start;//
// do
// {
// int value=argvalue;//
// argvalue = va_arg(argp, int);//
// }while(argvaue != -1);
// va_end(argp);
void showint(int start, ...)
{
va_list argp;//
va_start(argp, start);// , start
int argvalue = start;//
do
{
printf("
%d", argvalue);
argvalue = va_arg(argp, int);//
} while (argvalue != -1);
va_end(argp);//
}
int main04(void)
{
//showint(1, 2, 3, 4, -1);
showint(1, 2, 3, 4, 5, -1);
system("pause");
}
プログラムセグメント(09):C宣言.c+関数宣言.c+int.c+グローバルとローカルの衝突内容概要:C言語関数宣言+グローバル変数とローカル変数
///C .c
#include <stdio.h>
#include <stdlib.h>
//01. :
// 1.()
// 2. :
// ("()")
//02.C :
// 1. VC2015
// C , , C
// VC2015 ,
// , , ( , ; , )
// 2. C VC2015
//03. :
//
// C VC2015
// C++
int main01(void)
{
printf("Hello China!
");//()
printf;//
system("pause");
}
int main02(void)
{
add(2, 3);
print();
//add;
system("pause");
}
int print(){}
int add(int a, int b)
{
return a + b;
}
/// .c
#include <stdio.h>
#include <stdlib.h>
//01.C :
// 1. ,
// 2.
//
//
// 3.
int add(int a, int b);//
int add(int x, int y);//
int add(int h, int j);//
int add(int k, int l);//
int main03(void)
{
printf("%d", add(1, 2));
system("pause");
}
int add(int a, int b)
{
return a + b;//
}
//int add(int a, int b)
//{// ,
// return a + b;//
//}
///int.c
#include <stdio.h>
#include <stdlib.h>
// :int a = 10;
//int a;// , , 0
int a;
//int a = 9;//int a;// ,int a = 10;// , ,
int main04(void)
{
printf("%d
", a);
system("pause");
}
//01. :
// 1. :
//
// ( )
// 2. :
//
// main
// 3. :
// ,
//
int main05(void)
{
//
//int a = 10;// ,
//int a;
////int a = 10;//
//int a;
//int a;
//int a;
a = 9;
system("pause");
}
void go()
{
a = 11;
}
/// .c
#include <stdio.h>
#include <stdlib.h>
//01. :
// 1.
// 2. ,
// 3. ,
// 0
// 4. :
// ( , )
// 5. ,
//
// 6.
//
//
int a;
int a;
int a = 3;
int main06(void)
{
printf("%d
", a);
system("pause");
}
int main07(void)
{
int a = 10;
printf("%d
", a);// ,
{
printf("%d
", a);
int a = 13;
printf("%d
", a);//
}
printf("%d
", a);// ,
system("pause");
}
プログラムセグメント(10):test.cppコンテンツ概要:宣言と定義の違い
#include <stdio.h>
#include <stdlib.h>
//01. :
// 1. ,
// 2. ,
// 3.
//
int add(int a, int b);//
int add(int x, int y);// , ,
int add(int a, int b)
{
return a + b;
}
int main01(void)
{
add(1, 2);
system("pause");
}
プログラムセグメント(11):baidu.c+stack.c内容概要:関数呼び出しプロセスの簡単な再帰
///baidu.c
#include <Windows.h>
//01. (Dll) + :
// (1).Dll
// (2). 360
// sys
// 360
// (3). (Dll)?
// 1).
// _declspec(dllexport)
// 2). ( )
// (.dll)
_declspec(dllexport) void go()
{
Sleep(1);
go();
}
///stack.c
#include <stdio.h>
#include <stdlib.h>
// 001:
// :
// ?
// ( , , , ) , ,
// ?
// , ,
// , ,
// for ? , , ,
// for ?
// +
// ?
// , ;
// , .
void revInt(unsigned int value)// for
{
unsigned int quotient = value / 10;// 1+ 1
if (quotient != 0)// for
revInt(quotient);// for
putchar(value % 10 + '0');// ( )--> !
}
// 002: 9, | 1~9
void printInt1(int value)
{
//putchar(value + '0');//
if (value - 1 > 0)// 2
printInt1(value - 1);
putchar(value + '0');//
}
// 003: [value1,value2]
// :( | )
// : value1-->value2|value2-->value1
void printInt2(int value1, int value2)
{
printf("%d
", value1);
if ((value1 + 1) <= value2)
printInt2(value1 + 1, value2);
}
// 004: ( )
// 1.
// 2.putchar(); printf();
// putchar();
// printf();
// 3.putchar(); ,
// ,
// 4.putchar(); ,
// ( )
//
void printStr(char *str)// for
{
if (*str)// for
{
//printStr(str + 1);// for
printStr(++str);//
putchar(*str);// for -->putchar();
}// putchar(*str); , NUT|('\0')|0
//
}
// 005:
unsigned int calFact1(unsigned int value)//int ,unsigned int num for , ,
{// : , ,
if (0 == value || 1 == value)// , , , , ( )
return 1;// return , -->return ,
calFact1(value - 1);// , ,
return value * calFact1(value - 1);// , , ,value=value*value!, , ,
}
unsigned int calFact2(unsigned int value)
{
if (0 == value || 1 == value)
return 1;
else// : , , , , , ,
return value * calFact2(value - 1);
}
// 006:
void printIntToBin1(unsigned long value)// long ( )--> int (16 2 (short),32 4 (long))-->long 4
{
unsigned long quotient = value / 2;// 1+ 1
if (0 != quotient)
printIntToBin1(quotient);// 2 ( )
putchar((value % 2) + '0');// , , 0, 0 0
}
void printIntToBin2(unsigned long value)
{
unsigned long remainder = value % 2;
if (value / 2 > 0)// 2
printIntToBin2(value / 2);
//putchar(0 + i);
putchar(remainder ? '1' : '0');
}
// 007:
// 1.
// 2. +
void loopToRecursion(long value)
{
printf("%d, %p
", value, &value);
if (value < 9)
loopToRecursion(value + 1);
}
//01. :
// 1. :
// --> -->
// --> -->
// 2 :
// :f(n)=f(n-1)+n;
// :f(n)=f(n-1)+f(n-2);
// :
//02. :
// 1. :
// +
// 2. :
//
//03. :
// (0~1) ('0');
//
// ASCII
int main01(void)
{
//revInt(1234);
//printInt1(9);
//printInt2(-55, 55);
//printStr("123456789");
//char str[10] = "123456789";//
//printStr(str);
//printf("%d
", calFact1(10));
//printf("%d
", calFact2(10));
//printIntToBin1(106);
//printIntToBin2(106);
//loopToRecursion(0);
system("pause");
}
//04.
int main02(void)
{
//system("notepad");// , ,
printf("12345");
main02();
}
//05. ,
void intPrintStr(char *str, unsigned long value)
{
if (0 == value)
return;
if (value - 1 > 0)
intPrintStr(str, --value);
printf("%s
", str);
}
//06. Notepad
void printNontepad(unsigned long value)//void: , value:for
{
if (0 == value)//value: for
{
return;
}
else
{//5->4->3->2->1: -->
system("notepad");//
printNontepad(value - 1);//
}
}
//07. N, 1~N
unsigned long addNum(unsigned long value)
{
if (1 == value)
return 1;
return addNum(value - 1) + value;
}
int main03(void)
{
//intPrintStr("notepad", 5);
//printNontepad(5);
//printf("%d
", addNum(100));
system("pause");
}
プログラムセグメント(12):線形再帰.c+樹状再帰c+ハノタ.c内容概要:再帰
/// .c
#include <stdio.h>
#include <stdlib.h>
//01. :
// 1.
// 2. :
// f(0)=0;
// f(n)=f(n-1)+x;
// : ,
// ! ,
//02.main :
// main int ,
// int 1( )
//
void main01(void)
{
main01();//
}
//03. :
void loopToRecursion(unsigned int value)
{
if (value >= 5)
return;
else
loopToRecursion(value + 1);
system("notepad");
}
//04. 0 ?
// f(100)=100+f(99);
// f(100)=100+99+f(98);
// f(100)=100+99+98+f(97);
// f(n)=n+f(n-1);
unsigned long countInt(unsigned long value)
{
if (value == 1)
return 1;
return value + countInt(value - 1);
}
void uLongToBin(unsigned long value)
{
unsigned long quotient = value / 2;
if (quotient != 0)
uLongToBin(quotient);
putchar(value % 2 ? '1' : '0');
}
int main02(void)
{
//loopToRecursion(0);
//printf("%lu
", countInt(100));
uLongToBin(100);
system("pause");
}
/// .c
#include <stdio.h>
#include <stdlib.h>
// :
// :
// 1 ,2 , ,
// :
// 1------->1
// 2------->1
// 3------->2
// 4------->3
// 5------->5
// 6------->8
// f(n)=f(n-2)+f(n-1);
// :
// f(n-2):
//
// 2 ;
//
// f(n-1):
//
// f(n):
//
unsigned long countRabbit1(unsigned long month)
{
if (1 == month || 2 == month)
return 1;
return countRabbit1(month - 2) + countRabbit1(month - 1);
}
void countRabbit2(unsigned long month)
{
if (1 == month || 2 == month)
printf("1
");
else
{
int f1 = 1;
int f2 = 2;
int f3 = f1 + f2;
for (int i = 3; i < month; i++)
{// ( )
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
printf("f3= %lu
", f3);
}
}
//02. :
// 1. , ,
// 2.
// = +
int main01(void)
{
printf("%lu
", countRabbit1(40));
countRabbit2(40);
system("pause");
}
/// .c
#include <stdio.h>
#include <stdlib.h>
//01. :
// 1. ?
//
// 2. ?
//
// 3. ?
// ;
//
void hanoiTower(unsigned long num, char x, char y, char z)// for
{// , -->void; -->hannoTower(unsigned long num, char x, char y, char z);
if (1 == num)
{// for -->
//printf("%c-->%c
", 'A', 'C');//
printf("%c-->%c
", x, z);
return;
}// -->
// for -->
hanoiTower(num - 1, x, z, y);//A-->B
printf("%c-->%c
", x, z);//A-->C
hanoiTower(num - 1, y, x, z);//B-->C
}
int main04(void)
{
hanoiTower(4, 'A', 'B', 'C');
system("pause");
}