Příklady v jazyku C – část 2
Napište program , který krátce pípne (řídící znak pípnutí v ASCII-tab Napište program , který krátce pípne (řídící znak pípnutí v ASCII-tab. je \007). #include <stdio.h> #include <stdlib.h> int main() { printf("Tento program kratce pipne \007\n"); system("PAUSE"); return 0; }
Napište program , který vypíše obsah první poloviny tabulky ASCII ve tvaku dekadickém, šestnáctkovém a znakovém, přičemž vynechá ze znakového zobrazení znaky „white spaces“ (první zobrazený znak je mezera) #include <stdio.h> #include <stdlib.h> int main() { int i; printf(" Ascii tabulka \n\n\n") ; for ( i=0 ; i<=126; i++ ) if (i<32) printf("%03d ... %2x\n",i,i) ; else printf("%03d ... %2x ... %c\n",i,i,i) ; system("PAUSE"); return 0; } 3
Vytiskněte 2D-pole tabulkou hodnot , kde budou ve sloupcích hodnoty úhel ve stupních - hodnoty od 90 do 180 stupnu, s krokem 10 sin(úhel) v radianech - provedte prevod parametru na radiany cos(úhel) v radianech - provedte prevod parametru na radiany log(úhel) (přirozený) - úhel je ve st.. U tisku pomocí formátu a tabelátoru zarovnejte čísla do sloupců #include <stdio.h> #include <stdlib.h> int main() { int i,stupne,pocradek; double pi=3.1415926; printf("Uhel [st]\tsin [rad]\tcos [rad]\tlog [st]\n"); printf("========================================================\n"); pocradek=(180-90)/10+1;/*Spocitame si pocet radku tabulky (~2Dpole)*/ stupne=90; /*Nastavime si prvni hodnotu stupni */ for( i=0; i<pocradek; i++ ) { printf("%3.0d st\t\t%7.4f\t\t%7.4f\t\t%7.4f\n", stupne,sin(pi/180*stupne), cos(pi/180*stupne), log(stupne)); stupne+=10; /* zvetsime hodnotu stupne o krok do dalsi iterace */ } system("PAUSE"); return 0; 4
Napište program , který zobrazí velikosti jednotlivých datových typů ( int , short int , long int , long long int , float , double , long double ) pomocí sizeof() #include <stdio.h> #include <stdlib.h> int main() { printf("%d\n\n",sizeof(int)); printf("%d\n\n",sizeof(short int)); printf("%d\n\n",sizeof(long int)); printf("%d\n\n",sizeof(long long int)); printf("%d\n\n",sizeof(float)); printf("%d\n\n",sizeof(double)); printf("%d\n\n",sizeof(long double)); system("PAUSE"); return 0; } 5
Napište program, který vypíše maximální číslo zobrazitelné v short a long . #include <stdio.h> #include <stdlib.h> int main() { short int ssi = -1; long int sli = -1; unsigned short int usi; unsigned long int uli; usi = (unsigned short int) ssi; printf("Rozsah typu 'unsigned short int': 0 .. %u\n", usi); printf("Rozsah typu 'signed short int': %d .. %d\n", usi / 2 + 1, usi / 2); uli = (unsigned long int) sli; printf("Rozsah typu 'unsigned long int': 0 .. %lu\n", uli); printf("Rozsah typu 'signed long int': %ld .. %ld\n", uli / 2 + 1, uli / 2); system("PAUSE"); return 0; }
Pozn.: (-1) signed int = unsigned int Napište program, který vypíše maximální číslo zobrazitelné v unsigned int a v signed int . Pozn.: (-1) signed int = unsigned int signed int = ½ unsigned int #include <stdio.h> #include <stdlib.h> int main() { int si = -1; unsigned int ui; ui = (unsigned int) si; printf("Rozsah typu 'unsigned int': 0 .. %u\n", ui); printf("Rozsah typu 'signed int': %d .. %d\n", ui / 2 + 1, ui / 2); system("PAUSE"); return 0; }
Napište program, který vyzkouší všechny způsoby dělení: int/int , double/int , int/double , double/double #include <stdio.h> #include <stdlib.h> int main() { int i, j; double f, g; printf("Celociselne a realne deleni\n"); printf("Delenec Delitel Cele Realne\n"); i = 7; j = 2; f = 7.0; g = 2.0; printf("%5d / %5d = %5d %5.2f\n", i, j, (int)(i/j), (double)(i/j)); printf("%5.2f / %5d = %5d %5.2f\n", f, j, (int)(f/j), (double)(f/j)); printf("%5d / %5.2f = %5d %5.2f\n", i, g, (int)(i/g), (double)(i/g)); printf("%5.2f / %5.2f = %5d %5.2f\n", f, g, (int)(f/g), (double)(f/g)); printf("\nDeleni modulo:\n"); printf("Delenec Delitel Zbytek\n"); printf("%4d %% %3d = %5d\n", i, j, i % j); printf("%4d %% %3d = %5d\n", j, i, j % i); system("PAUSE"); return 0; }
Napište program , který přečte z klávesnice 1 znak a vytiskne znak o jedničku vyšší (podle pořadí v ASCII tabulce). #include <stdio.h> #include <stdlib.h> int main() { int c; printf("Zadej znak: "); c = getchar() + 1; printf("%c (ASCII %d)\n", c, c); system("PAUSE"); return 0; }
Napište program , který připočítává k číslu na vstupu 19% daň a číslo vypíše s přesností na 2 des.místa: #include <stdio.h> #include <stdlib.h> int main() { double f; printf("Zadejte cenu bez dane: "); scanf("%lf", &f); printf("Prodejni cena s dani (19%%): %.2f\n", f * 1.19); system("PAUSE"); return 0; }
Na výstupu čísla opíše a zobrazí obsah: Napište program , který vypočte obsah obdélníka, přičemž ze vstupu přečte čísla: x , y Na výstupu čísla opíše a zobrazí obsah: #include <stdio.h> #include <stdlib.h> int main() { double x, y; printf("Zadejte delku a sirku: "); scanf("%lf %lf", &x, &y); printf("Obdelnik o delce %f a sirce %f ma obsah %f\n", x, y, x * y); system("PAUSE"); return 0; }
Jsou dány celá čísla a=2,b=2,c=1,d=0,e=4 a napište jakých hodnot nabudou výrazy v níže uvedené tabulce. Ověřte výpočty programem. a) a++ / ++c * --e b) --b * c++ - a c) -b - --c d) ++a - --e e) e / --a * b++ / c++ f) a %= b = d = 1+ e / 2
e) e / --a * b++ / c++ 8 ( 4 / 1 * 2 / 1 ) a) a++ / ++c * --e 3 ( 2 / 2 * 3 ) b) --b * c++ - a -1 ( 1 * 1 – 2 ) c) -b - --c -2 ( -2 – 0 ) d) ++a - --e 0 ( 3 – 3 ) e) e / --a * b++ / c++ 8 ( 4 / 1 * 2 / 1 ) f) a %= b = d = 1+ e / 2 2 2 % ( 1+ 4 / 2 ) #include <stdio.h> #include <stdlib.h> int main() { int a, b, c, d, e; a = 2; b = 2; c = 1; d = 0; e = 4; printf("a) %d\n", a++ / ++c * --e); printf("b) %d\n", --b * c++ - a); printf("c) %d\n", -b - --c); printf("d) %d\n", ++a - --e); printf("e) %d\n", e / --a * b++ / c++); printf("f) %d\n", a %= b = d = 1 + e / 2); system("PAUSE"); return 0; }
Napište program, který přečte 3 velká písmena a zobrazí 3 malá písmena. #include <stdio.h> #include <stdlib.h> int main() { int c1, c2, c3; printf("Zadejte 3 velka pismena: "); c1 = getchar() + 'a' - 'A'; c2 = getchar() + 'a' - 'A'; c3 = getchar() + 'a' - 'A'; printf("Mala pismena: %c%c%c\n", c1, c2, c3); system(“PAUSE”); return 0; }
Napište program, který přečte 3 malá písmena a zobrazí 3 velká písmena v obráceném pořadí. #include <stdio.h> #include <stdlib.h> int main() { int c1, c2, c3; printf("Zadejte 3 mala pismena: "); c1 = getchar() - ('a' - 'A'); c2 = getchar() - ('a' - 'A'); c3 = getchar() - ('a' - 'A'); printf("Velka pismena v obracenem poradi: %c%c%c\n", c3, c2, c1); system("PAUSE"); return 0; }
Napište program, který přečte 3 reálná čísla ze vstupu pomocí funkce scanf, a vypíše (pomocí printf ) jejich aritmetický průměr. #include <stdio.h> #include <stdlib.h> int main() { double x, y, z; printf("Zadej 3 realna cisla: "); scanf("%lf %lf %lf", &x, &y, &z); printf("Aritmeticky prumer je: %.2f\n", (x + y + z) / 3); system("PAUSE"); return 0; }