59
ÑÝÄÝ 1. ÎÐØÈË 1.1 Ñè õýëíèé à÷ õîëáîãäîë, àíãèëàë Ñè õýë íü àíõ ¿éëäëèéí ñèñòåìä çîðèóëàãäàí á¿òýýãäñýí õýë þì. UNIX ¿éëäëèéí ñèñòåìèéã á¿òýýõäýý ïðîãðàìì÷èëàëûí õ¿÷òýé îð÷èíã á¿ðä¿¿ëýõèéã çîðüñîí õ¿ì¿¿ñ ýíý õýëèéã áîëîâñðóóëæýý. UNIX ¿éëäëèéí ñèñòåìèéã äýëõèé íèéòýýð ºðãºí õýðýãëýõ áîëñíîîð ïðîãðàìì÷èëàëûí Ñè õýëíèé õýðýãëýý ÷ íýìýãäýõ áîëæýý. UNIX ¿éëäëèéí ñèñòåìèéí 90% íü ýíý õýë äýýð áè÷èãäñýí , òýð ÷ á¿¿ õýë Ñè õýëíèé ººðèéíõ êîìïèëÿòîð íü õ¿ðòýë ýíý õýë äýýð áè÷èãäæýý. ̺í UNIX ¿éëäëèéí ñèñòåìèéí áàðàã á¿õ ¿éë÷èëãýýíèé ïðîãðàìì õàíãàìæóóä, UNIX ¿éëäëèéí ñèñòåì äýýð àæèëëàõ èõýíõ õýðýãëýýíèé ïðîãðàìì õàíãàìæóóä Ñè õýë äýýð áè÷èãäñýí , öààøèä ÷ ýíý õýë äýýð áè÷èãäýõ áîëíî. Èéìýýñ Ñè õýë íü îäîî ÷ õ¿ðòýë ïðîãðàìì÷èëàëûí õ¿÷òýé çýâñýã õýìýýí òîîöîãäñîîð áàéíà. Ñè õýë áîë ñóðàõàä õÿëáàð, ìàø áàãà êîä÷èëîë õèéõ áîëîìæòîé õýë þì. 1.2 Ñè ïðîãðàììûí á¿òýö , îíöëîã øèíæ¿¿ä Ñè ïðîãðàìì íü ôóíêöóóäûí îëîíëîãîîñ á¿ðäýõ áºãººä ýäãýýð ôóíêöóóä íü íýã áóþó õýä õýäýí ýõ ôàéëä õàäãàëàãäàæ áîëíî. Ýäãýýð ýõ ôàéë á¿ð íü òóñ òóñäàà õºðâ¿¿ëýãääýã. (ìàøèíû õýëä) Ñè ïðîãðàììä çºâõºí íýã ë ôóíêö “main” íýðòýé áàéæ áîëîõ áºãººä áóñàä ôóíêöóóä íü äóðûí áàéäëààð íýðëýãäýæ áîëíî. Ñè ïðîãðàìì áè÷èõýä ÿäàæ íýã ôóíêö çààâàë áè÷èõ áºãººä ýíý íü “main” ôóíêö þì. Ñè õýëíèé ôóíêö íü áàñ ïðîöåäóðûí ¿¿ðýã ã¿éöýòãýíý. ª.õ Ñè õýë íü áóñàä õýë øèã ôóíêöèéã ôóíêö , ïðîöåäóð ãýæ ÿëãàäàãã¿é. Ñè õýë äýýð áè÷èãäñýí ïðîãðàìì “main” ôóíêöýýñ ýõýëæ àæèëëàõ áºãººä õýðâýý ïðîãðàìì õýâèéí àæèëëàñàí áîë ýíý ôóíêöýýð ¿éë àæèëëàãààãàà äóóñãàõ áîëíî. Ïðîãðàìì àæèëëëàõ ÿâöàä “main” ôóíêö íü áóñàä ôóíêöèéã äóóäàæ áîëîõ áºãººä òýð ôóíêö íü öààø ººð ôóíêö äóóäàõ ãýõ ìýò÷èëýí ¿éë àæèëëàãàà íü ¿ðãýëæèëíý. Òóõàéí ôóíêö ¿éë àæèëëàãààãàà äóóñãàìàãö ò¿¿íèéã äóóäñàí ôóíêöýä óäèðäëàãàà øèëæ¿¿ëíý. Ïðîãðàììûí æèøýý : - 1 - main() { int k; ¯íäñýí ôóíêö çàðëàõ õýñýã printf(“ Now I,ll print pi number ”); PrintfPI(); } ÑÝÄÝ 2. ÑÈ ÏÐÎÃÐÀÌÌ×ÈËÀË ÃÝÆ ÞÓ ÂÝ ? Õýðâýý òà óðüä ºìíº íü õýçýý ÷ ïðîãðàìì áè÷èæ áàéãààã¿é áîë ýíý ñýäýâ òàíä ïðîãðàìì àíõëàí áè÷èõýä ÷èíü òóñëàíà. 2.1 Ïðîãðàìì ãýæ þó âý ? Áèäíèé ñàéí ìýäýõ êîìïüþòåð áîë òèéì ÷ èõ óõààíòàé ìàøèí áèø þì. Òýð áîë çºâõºí çààâðûã ¿ã äóóã¿é äàãàäàã ñàéí òóñëàã÷ òºäèé þì. Òýðýýð òàíû ºãñºí äààëãàâðûã áèåë¿¿ëýõýýð õýäýí ÷ ºäðººð , óéòãàðëàõã¿éãýýð , àìðàõã¿éãýýð àæèëëàæ ÷àäíà. Ãýâ÷ òýð þó õèéõýý ººðºº áèå äààí øèéäâýðëýæ, áîäîæ ÷àäàõã¿é. Èéìýýñ òýäýíä þó õèéõèéã íü Ïðîãðàìì çîõèîã÷ õýëæ, çààæ ºãäºã. Ò¿¿ãýýð ÿìàð íýã àæèë õèéëãýõèéí òóëä ò¿¿íä ºã÷ áàéãàà êîìàíäóóäûí îëîíëîãèéã ïðîãðàìì ãýæ íýðëýíý. Îäîîãîîð áèäíèé àøèãëàõ áîëîìæòîé ìÿíãà ìÿíãàí ïðîãðàìì çîõèîãäîîä áàéãàà áºãººä ýäãýýð íü ìàø îëîí òºðºë , ÷èãëýëýýð çîõèîãäñîí áîëíî.

C++ gariin avlaga1

Embed Size (px)

Citation preview

  • 1. 1.1 , . UNIX . UNIX . UNIX 90% , . UNIX , UNIX , . . , . 1.2 , . . ( ) main . main . . . , . main . main . . :

    - 1 -

    main() { int k;

    printf( Now I,ll print pi number ); PrintfPI(); }

    2. ? . 2.1 ? . . , , . , . , . . , .

  • - 3 -

    2.2 ? . . . 2.3 . . ( . ) . .

    . . .

    , .

    . , . Turbo C , .

    3. 3.1 printf . printf . , , . printf . 3.2 printf : printf( [,] ); : [ ] . . [ ] . . . printf( %d,1); /* 1 */ () . . ;- . , .

  • - 4 -

    3.3 . printf( ! ); ! . printf( !); printf( !); . ! ! . . 3.4 . 3.1

    \n \a \t Tab ( ) \\ \ \ \r

    \a . 2 , 1 . \n . . printf( !\n); printf( !); \n . . : printf(\t\t.\n); /* . */ printf( . \a\n); /* . */ printf( \\ .\n); /* . */ printf(\\ .\n); /* \\ . */ 3.5 . . 3.2

    %d int . %i int . %c %s %o unsigned int (8- ) %u unsigned int

  • - 5 -

    %x unsigned int (16- ) %X unsigned int (16-) %f [-]dddd.ddd %e [-]d.ddd e [+/-]ddd %% % %p XXXX:YYYY

    %hd, %hi, %ho, %hx short int %ld, %li, %lo, %lx long int %le, %lE, %lf, %lg double

    %Le, %LE %Lf, %Lg long double : . , . : printf(%s %d %f %c\n,Hi,14,-8.76,x); . Hi 14 -8.760000 x Hi . . 8.76 -8.760000 . % f . . : printf(%f %.3f %.2f %.1f, 4.5678, 4.5678, 4.5678, 4.5678); : 4.567800 4.578 4.57 4.6

    3.6 fprintf() (,,) . : int fprintf(FILE *stream, const char *format[, argument, . . . ]); UNIX . : #include int main(void) {

    int n=3; float x=45.875; /* */ printf( ? \n); /* */ fprintf(stdprn, ? \n); /* */ printf( x=%f n=%d \n,x,n);

  • - 6 -

    /* */ fprintf(stdprn, x=%f n=%d \n,x,n);

    }

    4. , . , , . . . , . 4.1 . , , 32 . . Count, count , COUNT . , .

    far_out Toms TIME whicha$macallit age %dollar time do-it

    : . ( do, while , if , int, float ,

    case . . . ) ,

    . 4.2

    . . . :

    for FOR if IF

    4.1

    int extern else char

  • - 7 -

    register for float typedef do double static while struct goto switch union return case long sizeof default short break auto unsigned continue if asm cdecl huge interrupt pascal void const volatile enum signed _cs near _es _ss far _ds

    4.3 4 .

    int . 1 2 byte . Int : -32768 . . . 32767 ( ) unsigned int : 0 . . . 65535 ( )

    char . Char 1 byte . Char : -128 . . . 127 ( ) unsigned char : 0 . . . 255 ( )

    float . float 4 byte- 10E-38 10E+38 .

    double float 8 byte .

    4.4 .

    short int int . . int .

    long int int- 2 . 2 .

    long float float 2 double . unsigned int int .

    int 1 .

    4.2

    byte- char 1 8 int 2 16 short 2 16 long 4 32 unsigned 2 16 float 4 32

  • - 8 -

    double 8 64 short, long, unsigned int . . short int = short long int = long unsigned int = unsigned 4.5 . int cost; cost 2 & . &cost . & . 4.6 sizeof sizeof byte . int k; sizeof(k) 2 . int 2 byte . sizeof . x=s/sizeof(k); sizeof , . a=sizeof(cost); a=sizeof cost; /* 2 . */ sizeof . n=sizeof(int); 4.7 . . : :

  • - 9 -

    char ch; short i,j; . int . . int . . . 2 . 1. . int last = 32767; char capc=C; float pi = 3.141593; double expo=1.0e6; . 2. . main() {

    int last; char capc; float pi; double expo; last = 32767; capc=C; pi = 3.141593; expo=1.0e6;

    } 4.8 . 2 .

    1. #define 2. const

    #define , . #define ; - . : #define

  • - 10 -

    #define TRUE 1 #define main() . #include #define TRUE 1 #define FALSE 0 main() { . . . } const : : const =; : const float pi=3.1415; const int Max=100; . main() { pi=3.1; Max=50; pi=pi+1; } 4.9 . , . . , . . . . . long, unsigned . auto, static, register, extern . , . static . extern . Static extern . auto

  • - 11 -

    . auto . register . register . auto int k; static int i=1; register int t; extern int n; 4.10 . , . : char int . .

    float int int float

    float . char int char int

    int . float double float double

    int . int short short int

    int . int long int long . int unsigned int unsigned int- . int

    5. 5.1 scanf() . . . printf , . printf, scanf . printf , scanf . : scanf( [,]); int scanf( ,1, . . . N); scanf , , . ENTER , scanf . scanf printf- . ( \n\a\t . . . ) .

  • - 12 -

    . scanf- printf- . printf- . : printf( ?); /* */ scanf(%d,&n); scanf . scanf scanf . : int age . scanf(=%d,&n); = . scanf . scanf- , . scanf- & . scanf & . . %s , & . : int, float, char, double,long & . & . , , , . & , 2 & . scanf . scanf 2 . . #include main() { int age; float weight; char first[15], last[15];

    printf( ?); /* */ scanf(%s,first); /* & . */ printf( ?); /* */ scanf(%s,last); /* & . */ printf( ?); /* */ scanf(%d,&age); /* & . */ printf( ?); /* */ scanf(%f,&weight); /* & . */ printf( \n); printf( , : %s %s\n,last,first);

  • - 13 -

    printf( : %.0f\n,weight); /* 0 .*/ printf( : %d, age);

    } .

    ? ? ? 20 ? 60 , : : 60

    : 20 : main() { int i; char c; float f; char Name[20]; scanf(%d,&i); scanf(%c,&c); scanf(%f,&f); scanf(%s,Name); } : main() { int i,j,k; scanf(%d %d %d,&i,&j,&k); } scanf- . ,, ( 03/05/99 ) . mm/dd/yy . scanf(%d/%d/%d,&month,&day,&year); . : scanf . scanf-

    . scanf- printf- . scanf- & . scanf- & . 5.2 getchar() getchar() , putchar . , . : #include main() { int ch;

  • - 14 -

    printf( ? ); ch=getchar(); printf(\n You typed the character ); putchar(ch);

    } int . 5.3 getch() getch() . , ENTER . BACKSPACE , . getchar()- BACKSPACE . getch()- . getch()- 2 . printf( ? \n); first=getch(); second=getch(); getch() getchar() ENTER . 5.4 getche() getch() . putch . printf( ? \n); first=getch(); putch(first); second=getch(); putch(second); getche . getche . , getchar(), putchar()- . Enter getchar- .

    getch()- . char int

    . char .

  • - 15 -

    5.5

    5 .

    1. 2. 3. 4. 5.

    1. #include . : #include #include .h . c:\tc\include . :

    stdio.h - printf - scanf - . . .

    stdlib.h - , . atoi - itoa - . . .

    alloc.h , malloc.h - math.h -

    cos() - , sin() - log() - , sqrt() - pow() -

    ctype.h - , . isalpha() - . isdigit() - .

    time.h - . clock() - time() -

    conio.h - . gotoxy() - cprintf() -

    string.h - strcpy() - strcat() -

    2. , .

    1. const float pi=3.14;

  • 2. #define MAX 100 3. . : ; : int i,j; char c;

    , . 2 .

    - , , .

    - .

    4. , ( ) . . () { }

    . . 5. main . . . main .

    main() { }

    :

    #include #include #define pr printf const float pi=3.14;

    - 16 -

  • int i,j,n;

    PrintPI()

    - 17 -

    { int k; pr(=%d,k); pr(pi =%f,pi);

    } main()

    {

    int k; pr( Now I,ll print pi number ); PrintfPI(); }

    6. 6.1 , . . (x + y - 10) * 10 . . , . , . : ( ) . : ( ) .

  • - 18 -

    : -i (-) . x + y (+) . , . . . 6.2 4 +, - , *, / . , . : + - * / % : - ( Turbo C + . ) 6.3 3.4- . , . .

    ( )

    - * / + -

    . - (-3 * (5+ 2 * 6))+ (3 * 4 + 4)/ 2 - (-3 * (5+ 12))+ (3 * 4 + 4)/ 2 - (-3 * 17)+ (3 * 4 + 4)/ 2 - (-51)+ (3 * 4 + 4)/ 2 - (-51)+ (12 + 4)/ 2 - (-51)+ 16/ 2 51+ 16/ 2 51+ 8 59 / - . .

    . . : []=;

  • - 19 -

    : +, -, *, /, %, , &, ^, | . . A=2 + 3 * 4; /* : 14 */ . : a=b=c+4; c=3 * (d=12.0 / x ); . .

    = +=,-=,*=,/= . . . i = i + 2; i+=2; k=k*10; k *= 10;

    x=x*(y+1) x*=y+1 : x=20; x*=y=z=6; : x*=(y=(z=6)) /* z=6 */ x*=(y=6) /* y=6, z=6 */ x*=6 /* x=x*6 */ x=120; /* 120 */ 6.4 , (++), (--) . i++ i=i+1 . , 1- , . , . c + i ++ i- c- , i- 1- . .

    b=c + i++; b=c + i; i=i+1; ++ . : c=++i; ++ c- i- i- 1- .

    b=c + ++i; i=i+1; b=c + i; (--) (++) . (++),(--) 4 .

  • : ++, -- . . / 5++ , 5 -- , ++5 , --5 /

    II ()

    ++ -- - ( ) / * %

    + - =, +=, -= ,

    (%) . . y=5; x=12; z=x % y; : z=2 12- 5- 2 2 . float double , . 6.5 . 6 . 1. & 2. | 3. ^ XOR 4. > 6. ~ 1 0 1 2 . .

    x1 x2 x1 & x2 x1 | x2 x1^x2 ~x1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 1

    : & : 1 1 , 0 . | : 0 0 , 1 . ^ : 0 , 1 . ~ : 1 0 , 1 . XOR 2 1 , 0 .

    - 20 -

    00000001 & 00000010 ------------ 00000000 = 0

    1 : x1=1; x2=2; printf( %d , x1&x2);

  • - 21 -

    > 2- . 2 : x=1; x=x>2 ------------ 00000010 = 2 4 : x=10; x=x

  • ( ? : ) .

    - 22 -

    : ? 1 : 2

    - 1, 2 . 1 : z=(a>b) ? a : b; /* z=MAX(a,b) */ 2 : x=3, y=3, z=1 z+=xy) ? (x++) : (y++))) (z+=(y++)) (z+=3) (z=z+3) ( x=3, y=4, z=4 )

    7. 7.1 . , . . 7.1

    == != < >

  • >= 2 . , = . ==, != . ==,!= 4 . : x=5; y=2; z=0; a. x>y+z /* */ b. x+z2 . b 5 =5 1 == 0 . ASCII . ASCII :

    A-65 B-66 C-67 D-68 . . . X-88 Y-89 Z-90 a-97 b-98 c-99 d-100 . . . x-120 y-121 z-122 ASCII :

    A

  • - 24 -

    . . . done=1 if(done) printf( ); . 1 . : if(done ! =0) printf( ); if - . if( ) { 1;

    2; 3;

    } . , . : if((ch=getchar())==\n) ; . getchar , ch . ch \n- . . == = . . . ; if ( Enter ) then ;

    if else if else : if() ; else ; 2 . else . . d=b*b 4*a*c; if(d>=0) { x1=(-b + sqrt(d)) / (2*a); x2=(-b - sqrt(d)) / (2*a); printf( : %f , %f,x1, x2 ); } else printf( . );

  • - 25 -

    , . 7.3 if if . 1 if- 2- . 1 2 . if(1) if(2 ) ; . ? ! . if( ) if( ) _++; . . if(ch== ) { if( ) num++; } else { if(ch ) num++; } if- . if- . : if(1) if(2) 1; else 2; 1, 2 1 . 1 , 2 2 . . 1 2 . else if- ? . . else- if- . . : else , else if- . . /* [ . { . ( .. ) } ] */ . else if- if(2)- else . 2 . :

  • - 26 -

    if- else- if(1) { if(2) 1; } else 2;

    if(1) if(2) 1; else ; else 2;

    ; . , . . if(ch== ) { if( ) num++; } else { if(ch ) if( ) num++; } 7.4 if . && () , || () . - . && || - . : : Pascal ad . OR . ad .

    () && . int =1, =0 . : 1 && 2 . . . && . if((ch= )&&( )) num++; else { if((ch )&&( )) num++; } . if(ch= && ) .

  • - 27 -

    1 : #include int a=1,b=2; char c=k; main() { if (a=1 && b=2 && c=k) printf( ); else printf( , .); }

    () || . . : 1 | | 2 . . . : #include int a=1,b=2; char c=k; main() { if (a=1 || b=1 || c=a) printf( ); else printf( .); } . : if((ch= && ) || (ch && )) num++;

  • - 28 -

    && ||- . . if(ch= && || ch && ) num++;

    ! , 2 . . , . : ! (5 < 7) . . && || . !(52) - !(52) -

    Y ! !x

    && x&&y || x||y

    7.5

    ( ) [] -> . , ++ -- ~ ! & * () - sizeof * / % + -

  • - 29 -

    > , ,, = , == != & XOR ^ | && || ?: = += -= /= %= &= ^=

    |= =

    , 7.6 switch . : switch () { case 1 : ; ; . . . break; case 2 : ; ; . . . break; . . . default : ; break; } . 1- 1- . 2- default . switch . : break . default . break . . - int . - case

    . - . switch- break- . a=2; switch (a) { case 1 : printf( 1 \n); break; case 2 : printf( 2 \n); case 3 : printf( 3 \n);

    break; } : 2 3

  • - 30 -

    2 break . switch- break . switch(x) { case2 : case 4: case 6 : case 8: printf( \n); break; } switch, if switch . if(score>=90) grade=A; else if(score>=80) grade=B; else if(score>=70) grade=C; else if(score>=60) grade=D; else grade=F; if- switch . int n; n=score/10; switch(n) { case 10: case 9: grade=A; break; case 8: grade=B; break; case 7: grade=C; break; case 6: grade=D; break; default: grade=F; break; } :

    switch(c) { case a : printf( a \n); break; case b : printf( b \n); break; case c : printf( c \n); break;

    }

    8. . 3 .

    1. ( for ) 2. ( while ) 3. ( do . . . while )

    7.1 for . .

  • : for([];[];[]) ; - . - . . i=1

    i

  • - 32 -

    printf( . . . \n); for(i=1; i

  • - 33 -

    while . : while () { ; } . while ( ) ; . while . while- while- . ( i

  • - 34 -

    do - while . . 0 9 . main() { int count=0; int total=0; do { total+=count; printf( = %d , = %d \n , count++, total); } while (count

  • ( ) . break . : break;

    . for, while, do , switch . . break . : continue- break- .

    i=1; while(i

  • goto ; . goto .

    9. 2 . () *.h . . , .

    : () { ; . . . ; . . . return ( ); } 1.

    . void .

    2. ( ) . ( ) . .

    3. .

    4. return .

    { } .

    - 36 -

    :

    int Max(a,b)

  • - 37 -

    int a,b; { int k;

    k=(a>b) ? a : b; printf( Max= %d, k);

    return k; }

    . . Pascal . . void notice() { printf( , . . . \n); } () . return . void . . Max . Max(i,n); . k = Max(i,n); if (Max(k,100)==100) printf( Max = 100 );

    return . : return [ ( ] [ ) ]; : return a+b;

    return (a+b); return a; return (a);

    return . .

    int Sum(int a, int b) { int k; k=a+b; return k; printf(Sum=%d,k); }

  • - 38 -

    char, float, double . int- . . float round_n(); /* */ main() { round_n(123.6789, 2); /* */ } /* */ /* x n . */ float round_n(x,n) float x; int n; { float factor=1.0; int i; for(i=1;i100.0)

    ; . . : power int . . float x; x=(float)power(a,b); x=power(a,b) . int . default int void . void print_it(n)

  • - 39 -

    void . : int i,j; wizard(); . . void . int i,j; void wizard(); . Void . void . void .

    void Sum(void); main() { Sum(); } Sum()

    { printf( Sum = %d, a+b); }

    . print_n(x,y,k) int x,y,k; { } . . . . . . . printf , scanf .

    . .

  • - 40 -

    . 2 . , . 2 . . main() { float x,y,z,w,max(); i=5; j=7; m=2; n=(int)max((float)i,(float)j); /* 1 */ z=max(x,y); printf(%d %f,n,z); w=max((float)i,x); m=(int)max(y,(float)j); printf(%f %d,w,m); } float max(a,b) float a,b; { if(a>b) return a; else return b; } max float , float . n,m . (float) . sqrt double . .

    int n; double x; n=7; x=sqrt(n);

    n sqrt . 2 . a. y=(double)n;

    x=sqrt(y); b. x=sqrt((double)n);

    . . . . . .

    swap(m,n) int *m,*n; { int temp; temp=*m; *m=*n; *n=temp; }

  • - 41 -

    swap(&m,&n) . & . * , . : temp=*m; /* m temp */ *m = *n; /* n m */ *m=temp; /* temp- m */ int *m,*n; int n,m .

    . . : [] [] ; . default auto . auto . . . . , . static . , . . : static ; : #include Count() { static int k=1; printf(k=%d\n, k++); } main() { Count(); /* k = 1 */ Count(); /* k = 2 */ Count(); /* k = 3 */ Count(); /* k = 4 */ Count(); /* k = 5 */ }

  • extern . , . extern . . 9.1 , ,

    auto static register external external static

    external . Prg1.c Prg2.c

    - 42 -

    2 PRJ .

    #include int max,sum; Sum(int a,int b) { sum=a+b; } Max(int a,int b) { max=a>b?a:b; }

    #include extern int max,sum; extern int Sum(int,int),Max(int,int); main() { Sum(2,3); Max(2,3); printf(" Sum : %d\n",sum); printf(" Max : %d\n",max); }

    auto , register, static . . . int exam(a1,a2) int a1,a2; { int i, n; . . . { int i,temp; for(i=1;i

  • . . . . 2 . () . . #include void pr(long n) { if(n 1 Putchar(1)

    n=12, n%10 => 2 Putchar(2)

    Putchar(3) n=123, n%10 => 3

    Putchar(4) n=1234, n%10 => 4 :

    1. pr(1234); 8. if(1/10) /* */ 2. if(1234/10) 9. putchar(1%10+'0'); ;

    - 43 -

  • 3. pr(123); 10. putchar(12%10+'0'); ; 4. if(123/10) 11. putchar(123%10+'0'); ; 5. pr(12); 12. putchar(1234%10+'0'); ; 6. if(12/10) 13. . 7. pr(1);

    . . .

    Func1 Func2 Func1 .

    Func1()

    - 44 -

    { . . . Func2() . . . } Func2() { . . . Func1() . . . } . 1. 2. , 3.

    .

    TYPEDEF . : typedef ; : typedef float real; . , .

    void ff() { typedef short int integer; }

    10.

    , .

    int name1=101; int name2=202; int name3=303;

  • . , . . . 0 . [ ] . .

    . [] : int a[5]; int b[100]; :

    int names[4]; names[0]=101; names[1]=202; names[2]=303; names[3]=404;

    [ ] . names[2] 3- .

    . int [5] :

    A[0] A[1] A[2] A[3] A[4] . . . . . .

    sizeof - 10 . int 2 byte 5 5*2=10 byte .

    - 45 -

  • - 46 -

    . { } . int val[5]={ 10, 40, 70, 90, 120 }; .

    val[0] = 10; val[1] = 40; val[2] = 70; val[3] = 90; val[4] = 120;

    0- .

    int a[5]={1,2,3,4,5}; /* 5 */ int b[20]={0,1,2,3,4,5,6,7,8,9}; /* 10 . 0 . */ float money[10]={ 6.23, 2.45, 8.01, 2.97, 6.41 }; char grades[5]={A,B,C,D,\0};

    char 5 . . char grades[5]=ABCD; . . int ages[5]={ 5,27,40,65,92 }; /* */ int ages[]; /* */ int ages[] ={ 5,27,40,65,92 }; /* */ 0- , . float A[100]={0.0}; /* */ . 0- . 0- .

    a[1]=20; a[6]=a[2]; a[0]=i; a[1]=b[i]; x=y+a[3]*a[i]; printf( 3- : %d,a[3]); , .

  • - 47 -

    . scanf(%d,&a[1]); scanf(%d,&a[2]); scanf(%d,&a[3]); .

    int a[10], i; for(i=0;i

  • - 48 -

    . , 2 . 0- .

    (3 4 )

    A[0][0] A[0][1] A[0][2] A[0][3] A[1][0] A[1][1] A[1][2] A[1][3] A[2][0] A[2][1] A[2][2] A[2][3]

    2

    A[0][0] A[0][1] A[0][2] A[0][3] A[1][0] A[1][1] A[1][2] . . . :

    1- 2- 3

    [][]

    [][] :

    int a[3][4]; int b[2][5];

    2 1 .

    int a[3][2]={{1,2},{3,4},{5,6}};

    int b[2][3]={{1,2,3},{4,5,6},{7,8,9}}; int A[3][3]={1,2,3,4,5,6,7,8,9};

    2

    a[1][1]=20; a[6][2]=a[2][2]; a[0][2]=i; a[1][1]=b[i][1]; x=y+a[3][1]*a[i][1]; printf([1,3]- : %d,a[1][3]);

    2 .

  • - 49 -

    scanf(%d,&a[1][1]); scanf(%d,&a[2][1]); scanf(%d,&a[3][1]); 2 . . .

    int a[2][2], i,j; for(i=0; i

  • - 50 -

    11. ASCII . : : ABC. . .XYZ, abc. . . xyz : 0123456789 : + - * / | \ $ # . . . char , . char a[15]; 256 byte . byte sizeof . : printf( %d , sizeof(a)); : 15 . char a[8]=HELLO; char Name[25]=Batbold; char grades[5]={A,B,C,D,\0}; & scanf- . scanf(%d,a); \0 . grades 4- \0 . . . .

    char a[15]; a=Hello !!!; a=a+ World;

    . , .

  • - 51 -

    strcpy() : char *strcpy(char *s1, const char *s2); / s2 s1 / 1 : #include char str[]=- 1,str1[]=- 2; main() { strcpy(str,str1); /* str=str1 */ printf( = %s \n,str); } : = - 2 2 : #include char str[]=- 1; main() { strcpy(str,- 2); printf( = %s \n,str); } strcat : char *strcat(char *s1, const char *s2); : #include char str[100],str1[100]; main() { printf( str= ); scanf(%s,&str); /* - */ strcat(str,2a); /* s1=s1+s2 */ printf(%s\n,str); } : - 2 strcmp() : int strcmp(const char *s1, const char *s2); : ==0 s1==s2 ( ) >0 s1>s2 ( s1 )

  • - 52 -

    { case 0: printf( ); break; default: printf( ); } . . . strlen : int strlen(char *s); \0 . :

    #include char str[]=- 1; main() { int count; count=strlen(str); printf( = %d, count); }

    : = 7

    12.

    . , . : struct [] { [ ] [ ] [ ] . . . . . [ ] }; . struct student {

    char name[20]; int age;

    float GPA; };

    struct . .

  • :

    struct ;

    - 53 -

    :

    1. struct student sum;

    2. struct student { char name[15]; int age;

    }sum; 3. struct { char name[15];

    int age; }sum;

    . struct student sum={ , 25 };

    . . student . age = 18;

    : struct [] ; : struct student { char name[20];

    int grade; };

    struct student sw102[100];

    sw102[0].name sw102[0].grade sw102[1].name sw102[1].grade sw102[2].name sw102[2].grade

  • - 54 -

    sw102[3].name sw102[3].grade . . . . . .

    sw102[100].name sw102[100].grade

    name1 grade1 Name2 grade2 . . . : #include struct student { char name[20]; int age; float GPA; }; struct student Who; /* Who student */ int i,j; main() { printf( : ); scanf(%s,Who.name); printf( : ); scanf(%d,&Who.age); printf( : ); scanf(%f,&Who.GPA); printf( : %s \n,Who.name); printf( : %d \n,Who.age); printf( : %f \n,Who.GPA); }

    . 0 1 . 0 - , 1- . 1 byte char .

    char Sex; 0 1 8 . 1 . . : #include struct AAAAA { int Sex : 1; /* 0..1 */

  • - 55 -

    int k : 2; /* 0..3 */ int l : 5; /* 0..31*/ int s : 2; /* 0..3 */ int m : 6; /* 0..63 */ } AA; main() { AA.Sex=1; printf(%d\n,AA.Sex); AA.k=3; printf(%d\n,AA.k); AA.l=31; printf(%d\n,AA.l); AA.s=3; printf(%d\n,AA.s); AA.m=63; printf(%d\n,AA.m); printf(%u\n,AA); }

    ENUM enum . Weekdays . : #include enum DAYS { Dabaa=1, Migmar=2, Lhagva=3, Purev=4, Baasan=5, Bimba=6, Nim=0 } Weekdays; main() { int i; printf( Day = ); scanf(%d,&i); switch(i) { case Dabaa : printf();break; case Migmar : printf();break; case Lhagva : printf();break; case Purev : printf();break; case Baasan : printf();break; case Bimba : printf();break; case Nim : printf();break; default : printf( ); } }

    UNION . . temp .

  • - 56 -

    #include union TEMPERARY { int n; float m; }temp; int i=10,j=20; float k=10.1,l=20.1; main() { temp.n=i; i=j; j=temp.n; printf("%d %d\n",i,j); temp.m=k; k=l; l=temp.m; printf("%f %f\n",k,l); } struct . . #include struct TEMPERARY { int n; float m; }temp; int i=10,j=20; float k=10.1,l=20.1; main() { temp.n=i; i=j; j=temp.n; printf("%d %d\n",i,j); temp.m=k; k=l; l=temp.m; printf("%f %f\n",k,l); } struct union . temp 2byte . union , . temp 4byte . struct . union .

    13.

    . (*) .

  • . .

    int Var=10; int *pVar=&Var;

    . 900 901 902 903 904

    - 57 -

    10 901 901- Var 902- pVar

    , . . . .

    .

    int i=10; /* int */ int *k; /* int */

    (int) , . , & .

    . int i; int *p=&i; /* p i i */ . int i; int *p;

    p=&i; /* p i i */

    * . : int i=3, *p;

    p=&i; /* p i i */

    printf( i =%d, *p); /* 3 */

    *p=10; /* i=10 */

  • - 58 -

    printf( i=%d, i); /* 10 */ char . #include main() { char c = 'Q'; char *ch = &c; printf("%c %c\n", c, *ch); c = 'Z'; printf("%c %c\n", c, *ch); *ch= 'Y'; printf("%c %c\n", c, *ch); }

    1. . : int i=100,*p1,*p2; p1=&i; /* i- */ p2=p1; /* p1- */ printf(%d \n,*p1);/* 100 - */ printf(%d \n,*p2);/* 100 - */ 2. . : int x=2,y=1; int *p1, *p2; p1=&x; p2=&y; if(p1!=p2)

    printf(2 ); else printf(2 ); 3. (++), (--), (+), (-) . , .

  • int i, *p1=&i; p1++, p1--, p1+=2, p1-=2 . . . . int *p1=&i; p1++; /* = + 2 */ p1--; /* = - 2 */ p1+=2; /* = + 4 */ p1-=2; /* = - 4 */

    900 i p . 900 901 902 903 904

    - 59 -

    I i P P++ P+=2

    . . .

    int *p1=&i; ++*p1; /* i=i+1 */ (*p1)++; /* i=i+1 */ *p1=*p1+2; /* i=i+2 */ *p1-=2; /* i=i-1 */ : #include main() { int i=10, *p1=&i; printf(%d \n, ++*p1); /* 11 */ printf(%d \n, i) /* 11 */ }

    .

    : #include main() { char c[10]=ababababab; int i, *p1=c;

    for(i=0;i

  • - 60 -

    : #include main() { char c[10]=ababababab; int i, *p1=c+1; for(i=0;i