[セットトップ]20160129.CCPPシステム詳細(0008日)

74195 ワード

プログラムセグメント(01):関数.c+call.c+テストcppコンテンツ概要:関数
///  .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"); }