Napisati C program koji na standardni izlaz ispisuje poruku Zdravo, svete u jednom redu.
2. Napisati C program (skraćeno NCP) koji na standardni izlaz ispisuje poruku Zdravo, svete, štampa prazan red i u narednom redu ispisuje poruku Bonjour, Monde.
#include <stdio.h>
main()
{
printf("Zdravo,
svete"); /*poziv f-je printf da odstampa poruku na
srpskom*/
printf("\n\n");
/*prelaz
u sledeci red i stampanje praznog reda*/
printf("Bonjour,
Monde\n"); /*poziv f-je printf da odstampa poruku
na francuskom*/
}
3.
Napisati C program (skraćeno NCP) koji zadaje vrednosti dve celobrojne promenljive i na standardni izlaz ispisuje njihovu razliku.
#include <stdio.h>
main()
{
/*deklaracija vise promenljivih istog tipa */
int
rez,pom1,pom2;
/*rezultat oduzimanja pom1-pom2 -> rez*/
pom1=20;
pom2=15;
rez=pom1-pom2;
/*ispisivanje rezultata*/
printf("Rezultat je %d-%d=%d\n",pom1,pom2,rez);
}
4.
Napisati C program (skraćeno NCP) koji na standardni izlaz ispisuje malo slovo Z u polju širine tri, a u sledećem redu veliko slovo Z u polju širine pet.
Tabela ASCII kôdova
Izlaz iz programa:
Slova
z
Z
5.
Napisati C program (skraćeno NCP) koji na standardni izlaz ispisuje malo i veliko slovo A i njihovu vrednost u standardnom setu karaktera.
Tabela ASCII kôdova
vrednost='a';
printf("%s\nkarakter=%3c\nvrednost=%3d\n","Malo",vrednost,vrednost);
}
ZA RAZMIŠLJANJE I UVEŽBAVANJE: ASCII kôd ZADACI
6.
NCP koji sadržaj standardnog ulaza štampa znak po znak na standardni izlaz sve do markera kraja ulaza.
#include <stdio.h>
main()
{
int znak;
znak=getchar(); /*promenljivoj
znak se dodeljuje znak sa ulaza
*/
while(
znak !=EOF)
{
putchar(znak); /*dodeljeni znak se kopira na izlaz */
znak=getchar();
}
}
Izlaz kod baferovanog ,npr;
1<enter>
1
^Z
II nacin:
#include <stdio.h>
main()
{
int znak;
while( (znak=getchar() ) !=EOF) putchar(znak);
}
7.
Korišćenjem makrozamene za protivrednost jednog evra u dinarima, NCP koji ispisuje na standardni izlaz dinarsku vrednost za četiri evra. Kako bi ispisali dinarsku protivvrednost jednog evra sa 0 decimala?
#include <stdio.h>
#define EURO 60.0477
main()
{
printf("4 eura ima vrednost %f dinara\n",
4*EURO);
/*printf("1 euro
ima vrednost %.0f dinara\n",EURO);*/
}
8.
NCP koji zadaje vrednosti dve realne promenljive i korišćenjem makrozamene naći kvadrat prve i maksimum njihovih vrednosti. Rezultat ispisati na standardni izlaz.
#include <stdio.h>
#define KVADRAT(x) (
(x)*(x) )
#define MAX(x,y) ( (
(x)>(y)) ? (x) : (y) )
main()
{
float
w=3.2,y=8.8 ;
printf("KVADRAT(%.2f)=%.2f\n",w,KVADRAT(
w));
printf("MAX(%.2f , %.2f)=%.2f\n",w,y,MAX(w,y));
}
9.
NCP koji će na standardni izlaz ispisati prvih 15 Fibonačijevih brojeva u 5 kolona (po 3 broja u vrsti).
#include <stdio.h>
#define
BROJ 15
main()
{
int i; /*brojac u petlji */
int fibonaci[BROJ]; /*niz koji cuva vrednosti
iz f-lacije */
/*inicijalizacije
*/
fibonaci[0]=0;
fibonaci[1]=1;
/*formiranje vrednosti clana niza u zavisnosti od vrednosti prethodnika
*/
for (i=2;i<BROJ;++i) fibonaci[i]=fibonaci[i-2]+fibonaci[i-1];
/*ispis vrednosti clanova niza u zahtevanom formatu */
for (i=0;i<BROJ;++i)
printf("%c%5d", (i%3==0) ? '\n' : ' ', fibonaci[i]);
}
10.
Šta je rezultat rada sledećeg programa?
#include <stdio.h>
main()
{
int
x=506, y=3, z=21, t=2;
printf("x=%d y=%d\n",x,y);
printf("z - t=%d\n", z-t);
printf("z / t =%d\n",z /
t);
printf("-x=%d\n",- x);
printf("x %% y=%d\n", x%y);
}
11.
Šta je rezultat rada sledećeg programa?
#include <stdio.h>
main()
{
int a=21,d=5;
float
c=8.953, b=6.0;
printf("d=%d c=%f\n",d,c);
printf("a + d/c + b=%f\n",a+ d/c + b);
printf("|%5f |%5.3f| %5.0f|%5.1f\n",c,c,c,c);
}
12.
Ispisati na standardni izlaz ukupan broj karaktera standardnog ulaza do markera kraja.
Pretpostaviti da je za ukupan broj karaktera dovoljan opseg double promenljive.
#include <stdio.h>
main()
{
double br;
for( br=0;
getchar()!=EOF; ++br ) ;
printf("Karaktera: %.0f\n",br);
}
13.
NCP koji će ispisati na standardni izlaz ukupan broj karaktera standardnog ulaza do markera kraja, kao i broj prelazaka u novi red.
Pretpostaviti da je za ukupan broj karaktera i ukupan broj prelazaka u novi red dovoljan opseg long promenljivih.
#include <stdio.h>
main()
{
int znak;
/*prihvata
znak sa ulaza */
long linije=0
; /*brojac linija */
long br_znak=0;
/*brojac
znakova na ulazu */
while ( (znak=getchar()
) != EOF)
{ br_znak++;
if (znak=='\n') linije ++;
}
printf("Prelazaka u novi
red: %ld, karaktera: %ld \n",linije,br_znak);
}
14.
NCP koji će ispisati na standardni izlaz broj pojava blanko znaka, broj pojava horizontalnog tabulatora, broj prelazaka u novi red u tekstu koji dolazi sa standardnog ulaza do markera kraja.
Pretpostaviti da je za evidenciju broja pojava dovoljan opseg int promenljivih.
#include <stdio.h>
main()
{
int znak; /*prihvata
znak sa ulaza */
int Blanks=0; /*brojac
blankova */
int Tabs=0; /*brojac
horizontalnih tabulatora */
int NewLines=0;
/*brojac
linija */
while( (znak=getchar())!=EOF
) /*ucitavanje karakter do markera kraja fajla i
...*/
if( znak==' ' ) ++Blanks; /* ... brojanje
blankova */
else
if( znak=='\t' ) ++Tabs; /* ... brojanje tab-ova
*/
else if( znak=='\n' ) ++NewLines;
/*UOCITI: blok naredbi while ciklus NIJE OGRADJEN viticastim zagradama*/
/*izdavanje rezultata na standardni
izlaz*/
printf("Blankova: %d. Tabulatora: %d. Prelazaka u
novi red: %d\n", Blanks, Tabs, NewLines);
}
Efekat tastera TAB
123456 1234 123 1234 |
1234567891234567891234567891234 |
15.
NCP koji će tekst sa standardnog ulaza ispisati na standardni izlaz tako da se umesto horizontalnog tabulatora ispiše \t, umesto znaka prelaza u novu red ispiše \n, umesto backslah (znaka obrnute kose crte) ispiše \\.
ulaz (stdin, getchar()) | izlaz (stdout, putchar()) |
---|---|
123[tab]45 abcd[tab]efg\123 [enter] ^D |
123\t45 abcd\tefg\\123 \n ^D |
znak=getchar();
} /*
while( znak!=EOF ) */
} /*main() */
kôd | efekat kôda |
---|---|
putchar('\\'); | |
putchar('t'); | |
putchar('\t'); | |
printf("Za %d ispisujem %c", '\\', '\\'); | |
printf("\n\n\\n\\\n\\\\n\n"); |
16.
NCP koji će tekst sa standardnog ulaza ispisati na standardni izlaz tako da se višestruke uzastopne pojave blanko znaka zamene jednim blankom. (sažimanje).
#include <stdio.h>
#define GRANICA '0'
main()
{
int znak;
/*tekuci
znak sa ulaza*/
int preth;
/*znak
koji prethodi tekucem */
preth=GRANICA;
while
( (znak=getchar() ) !=EOF)
{
if
(znak !=' ' || preth != ' ') putchar(znak);
preth=znak;
}
}
17.
NCP koji će u tekstu sa standardnog ulaza prebrojati koliko puta se pojavila svaka cifra dekadnog brojnog sistema, koliko puta su se pojavile beline (blanko, horizontalni tab, prelaz u novi red) i koliko puta su se pojavili ostali znaci. Rezultat ispisati na standardni izlaz.
/* inicijalizacije */
White=Ostali=0;
for(br=0; br<10; ++br)
cifra[br]=0;
/* prebrojavanje */
while( (znak=getchar())!=EOF
)
if( znak >='0'
&& znak<='9' )
/*da li je cifra */
++cifra[znak-'0'];
else if ( znak=='
' || znak=='\n' || znak=='\t' )
++White;
else
++Ostali;
/* prikaz rezultata */
for( br=0; br<10;
++br )
printf( "Cifra %d se pojavljuje %d puta\n",
br,cifra[br] );
printf("\nBelina ima: %d Ostalih: %d\n", White,
Ostali);
}
Par napomena
Jelena Grmuša | Osnovi programiranja |