PODSTAWY PROGRAMOWANIA EGZAMIN
Co wydrukuje poniższy fragment kodu:
Int liczba = 3 ;
While (liczba > 0 )
Liczba -- ;
Printf(‘’%d\n’’, liczba);
2 1 0 B. 2 1 C. 2 D. 0 E. -1
---------------------------------------------------------------------------------------------------------------------------
Załóżmy, że dane są funkcje
Void Modyfikuj (int a, int b, int *c)
{
a = b + c;
b = 0;
c = 0;
}
Void Drukuj (int a, int b, int c)
{
Modyfikuj (a,b, &c);
Printf(‘’%d %d %d\n’’,a,b,c);
}
Funkcja drukuj wywołana jest następująco: Drukuj (1,2,3) Wynik na ekranie to :
1 2 3 B. 1 2 0 C. 4 0 0 D. 4 0 3 E. 0 0 0
---------------------------------------------------------------------------------------------------------------------------
Dane są dwie funkcje:
Int F1 (int dl)
{
Int t = 0, k = 0;
While (k < dl) { t+=k; k++;}
Return t;
}
Int F2 (int dl)
{
Int t = 0;
Int k;
For (k = 0; k < dl; k++) { t+=k;}
Return t;
}
Dla jakich argumentów funkcje zwrócą ten sam wynik ?
I.Każda < 0 II.0 III.Każda > 0
A. I B. II C. III D. I,II E. I,II,III
---------------------------------------------------------------------------------------------------------------------------
Napisać funkcję int PozMin (int A[ ], int ile) zwracającą indeks pierwszego elementu o najmniejszej wartości w tablicy A.
int PozMin(int A[], int ile)
{
int i, j=0, min = A[0];
for(i = 1; i < ile; i++)
{
if(min > A[i])
{
min = A[i];
j = i;
}
}
return j;
}
---------------------------------------------------------------------------------------------------------------------------
Tablica P zawiera opis studenta, natomiast funkcja drukuj wyświetla dane n-tego studenta. Mamy dany następujący fragment kodu:
struct Student { char nazwisko [20]; int indeks; }
P[20];
void Drukuj (Student P[ ],int n) {instrukcja}
Jaka powinna być instrukcja w powyższym kodzie aby program działał ?
printf (‘’%s’’, P.nazwisko[n]);
printf (‘’%s’’, P.Student.nazwisko[n]);
printf (‘’%s’’, P.Student[n]);
printf (‘’%s’’, P[n].Student.nazwisko);
printf (‘’%s’’, P[n].nazwisko);
---------------------------------------------------------------------------------------------------------------------------
Napisać funkcję char * zastap ( const char * napis) usuwającą z tekstu zawierającego liczby całkowite i napisy, znaki, które nie wchodzą w skład liczby. Pozostałe mają być oddalone spacją. Nowy zwracany tekst ma wyglądać jak w poniższym przykładzie :
Przed: ‘’123 zł, 50 zł 632 zł 56 zł ‘’
Po: ‘’ 123 50 632 56 ‘’
---------------------------------------------------------------------------------------------------------------------------
Czy poniższy fragment kodu jest prawidłowy ?
float v[10];
v[5] = 5.;
v[10] = 10.;
v[1] = v[5] + v[10];
Nie działa poprawnie ponieważ:
int main()
{
float v[10];
v[5] = 5.;
v[10] = 10.;
v[1] = v[5] + v[10];
printf("%f\n",&v[5]); //wypisze 0.00000
printf("%f\n",&v[10]); //wypisze 0.00000
printf("%f\n",&v[1]); //wypisze 0.00000
return 0;
}
---------------------------------------------------------------------------------------------------------------------------
Co to jest malloc ? Co zwraca ?
Każda z tych funkcji alokuje przydziela pamięć i zwraca adres tej pamięci (wskaźnik do
tej pamięci). Rozmiar przydzielanej pamięci nie musi być znany podczas kompilacji.
Funkcja malloc
Nagłówek funkcji tej ma postać następującą:
void * malloc (int);
Funkcja malloc oczekuje, jako swojego argumentu, liczby bajtów, które mają być
przydzielone w danym wywołaniu funkcji. Jeżeli przydzielenie pamięci jest możliwe, funkcja
18zwraca wskaźnik do tej pamięci, jeśli nie, funkcja zwraca NULL (zerowy wskaźnik).
Zwracany wskaźnik jest typu void*, czyli jest to wskaźnik do void. Wskaźnik ten musi
być przekształcony na wskaźnik do żądanego typu.
---------------------------------------------------------------------------------------------------------------------------
p i q wskazują na pierwszy i ostatni element tablicy int. Zadeklaruj i napisz wyrażenie, które zwraca liczbę elementów tablicy.
i = 1;
t[0] = p;
t[ilosc] = q;
for( i > 0 )
{
if( t[i] == q )
{
return i;
}
else
{
i++;
}
}
ilosc = i+1;
printf("%i",&ilosc);
---------------------------------------------------------------------------------------------------------------------------
Uzupełnij funkcję, która zwraca sumę wszystkich dodatnich nieparzystych liczb w A[ ]
int DodajNiep ( int A[ ], int n)
{
int i;
suma = 0;
instrukcja1
{
instrukcja2
suma+ = A[i];
}
return suma;
}
---------------------------------------------------------------------------------------------------------------------------
Struktura przechowuje nazwę miesiąca, jego trzyliterowy skrót, numer miesiąca i liczbę dni. Zadeklaruj tablicę 12 takich struktur, która zostanie wypełniona danymi. Napisz funkcje, która po przekazania numeru miesiąca będzie zwracać liczbę dni.
---------------------------------------------------------------------------------------------------------------------------
W strukturze
struct LZesp { double Rm, Im};
przechowywane są liczby zespolone. Napisz funkcję Drukuj( struct LZesp * liczba ), która wyświetli liczbę w postaci: Re + Im * i;
void Drukuj(struct LZesp * liczba)
{
char i;
printf("%d + %d * i\n", liczba->Rm, sam->Im);
}
---------------------------------------------------------------------------------------------------------------------------
Mamy daną strukturę:
typedef struct wezelek
{
float wart;
struct wezelek, * wlewo, * wprawo;
}wezel;
Reprezentującą węzeł binarny drzewa BST.
Napisz funkcję float MinWart (wezel * korzen), która wskaże najmniejszą wartość w drzewie. Uwzględnij wszystkie przypadki.
int MinWart(wezelek * korzen)
{
wezelek * x = korzen;
while((x->wlewo) x = x->wlewo;
return x->key;
}
Key – klucz wezla w drzewie