0. Przesunięcie bitowe: 7<<3
a) Wyjście bez zastanowienia 7 << 3 7*2^3= 7*8= 56
b) Zastanawiamy się. Zamień 7 na kod binarny (dwójkowy).
7 to 111.
Teraz 111 przesuń w lewo o 3 pozycje dodając tyle zer na końcu o ile
przesunełeś/aś całość (trzy zera).
111000 111000 to 56
1. Podać wynik 3 & 7
- operator & to bitowa koniunkcja (iloczyn bitowy), więc musimy przejść na kod
dwójkowy.
3 to 11, a 7 to 111.
Iloczyn:
011
& 111
011
Wynik to: 3
2. Zadeklarować zmienną całkowitą o nazwie X, żeby była zawsze dodatnia:
- unsigned int X
3. Jaki jest rozmiar zmiennej wskaźnikowej w bajtach:
- Adres a składa się z adresu Segmentu i Offset fizycznego adresu RAM w
komputerze.
Wskaźnik zatem zajmuje 2 bajty adresu segmentu i 2 bajty adresu
offset = 4 bajty.
Wykład 2 str. 53 dr Marcina Głowackiego.
4. Do czego służą flagi otwierania plików?
Flaga otwarcia pliku, służy do wczytania pliku
5.Definicja funkcji z użyciem referencji - czy jest poprawna:
void funkcja (float z, int &d, char*tab[])
{…}
Jest poprawna bo używamy referencji przy int &d. Co prawda tylko jednej,
no ale używamy. Reszta jest poprawnie zapisana (zmienna z i wskaźnik do tablicy tab).
6. Co powoduje continue w pętli while:
- wyjście z pętli (przejście na jej koniec) i ponowne sprawdzenie warunku.
7. Co powoduje continue w instrukcji switch.
Continue w switch przechodzi na koniec case'a w którym się znajduje i rozpoczyna wykonywanie
kolejnego case'a. I NIE ROBI TEGO SAMEGO CO BREAK! BREAK NIE
WYKONAŁBY KOLEJNEGO CASE'A TYLKO SKOŃCZYŁ BY SWITCH!
8. Czym różni się Struktura od Unii (?)
W unii wszystkie składowe obiektu umieszczane są pod tym samym adresem. Zatem
w każdej chwili dostępna jest tylko jedna składowa, a struktura zawiera wszystkie dane.
9. Wartość Optymistyczna dla sortowania Quicksort:
- Wszystko o sortowaniach w 4 wykładzie dr Marcina Głowackiego.
O(n log n)
10. Podać wynik 7 >> 3
- 7 / 2^3 = 7/8 (ale „>>” działa tylko na całkowitych (zaokrągla do int)
- (b) 111, przesuwamy o 3 bity w prawo
000, a więc wynik to 0.
11. Rekurencyjne wywołanie funkcji musi być zrealizowane jako jedna z instrukcji w tej
samej funkcji?
tak/nie
12. Co przechowują zmienne wskaźnikowe: (jedna prawdziwa)
a) wskazanie na funkcję systemu operacyjnego, który kontroluje dostęp do zasobów ….
b) adresy na dowolne inne zmienne.
c) wskazania na tablice dla wszystkich innych zmiennych.
d) adresy obszarów pamięci stosu gdzie zapisane są wszystkie zmienne.
e) adresy na inne zmienne nie będące wskaźnikami
f) wskazania na miejsca, gdzie zapisane są adresy do wartości innych zmiennych
13. Do czego służy operator sizeof()
zwraca rozmiar (w bajtach) zmiennej danego typu np. sizeof(int) zwraca rozmiar int (4 bajty)
Wykład 1 dr Marcina Głowackiego
14. Co należy wstawić w miejsce XXXX:
struct student{
int album;
char *imie[20];
char nazwisko*[40];
}
int funtion Dodaj(){
student*bufor;
bufor = XXXX student;
cin >> bufor -> album;
//itd.
}
new (tworzysz nową instancję struktury
student), ale nie ma to za bardzo sensu (bo instancja ta zniknie zaraz
to wyjściu z funkcji Dodaj).
15. Ile razy wykona się insrukcja do ... while();
int i =0, j =1, k = 2;
do{
k++; // instrukcje cyklu
} while ((((i++) < 10) || (++j < 11 )) && (k > 12 ));
- Jeden raz. W pierwszym obiegu pętli k=3, nie spełnia warunku k>12
16. Jakie cechy szczególne są prawdziwe dla struktur dynamicznych nazywanych drzewami
binarnymi (wybrać prawdziwe -może być parę)
a) na początku każdego drzewa występują dwa elementy binarne.
b) niektóre drzewa posiadają specjalny element nazywany korzeniem.
c) na samej górze drzewa występują liście.
d) każdy z elementów może zawierać wskazania na nie więcej niż dwa inne elementy.
e) dla każdego elementu za wyjątkiem korzenia określony jest dokładnie jeden element
poprzedni.
f) na samym końcu drzewa może występować korzeń
17. Ile razy wykona się pętla while:
int i = 0, j = 0, k =2;
while(i < 51 || j < 101){
…..
i++;
j + = k;
}
51 razy. (Dlaczego: ponieważ liczymy od zera)
18. Rozpoznać która tablica zapełniona liczba ma charakter stogu?
{2, 3, 5, 8, 20, 25, 35}
- wszystko jest w 4 wykładzie dr Marcina Głowackiego. Bardzo proste i przyjemne.
1. Wskaż, która z odpowiedzi jest prawdziwa (jedna):
a) w plikach można dowolnie adresować każdy element podczas operacji odczytu i
zapisu.
b) dane zapisane w jednym pliku mogą być tylko jednego typu.
c) pliki binarne nie mogą przechowywać tekstów.
d) pliki można jednocześnie otwierać w trybie do odczytu i zapisu.
e) dostęp do danych w pliku odbywa się sekwencyjnie poprzez wczytywanie danych od
końca do początku.
2. Co przechowują zmienne wskaźnikowe: (jedna)
a) wskazanie na funkcję systemu operacyjnego, który kontroluje dostęp do zasobów ….
b) adresy na dowolne inne zmienne.
c) wskazania na tablice dla wszystkich innych zmiennych.
d) adresy obszarów pamięci stosu gdzie zapisane są wszystkie zmienne.
e) adresy na inne zmienne nie będące wskaźnikami
f) wskazania na miejsca, gdzie zapisane są adresy do wartości innych zmiennych.
3. Wskaż prawdziwe stwierdzenia dotyczące plików: (parę do wyboru)
a) pliki binarne przechowują kody programów uruchamialnych oraz programy
źródłowe.
b) w C++ już nie istnieją zróżnicowane typy plików.
c) pliki tekstowe przechowują teksty, dowolne struktury oraz programy źródłowe.
d) istnieje pełna dowolność - wszystko zależy od programistów.
e) można definiować nowe typy plików na bazie typów istniejących.
4. W metodzie rekurencyjnej: (jedna)?
a) wykorzystuje się instrukcję cykliczną while() dla kolejnych wywołań rekurencyjnych
b) na początku znana jest liczba kolejnych zagnieżdżeń.
c) definiuje się warunek dla kontynuacji lub przerwania rekurencji i powrotu do
poprzedniego wywołania funkcji rekurencyjnej.
d) wykorzystuje się instrukcję cykliczną for() dla kolejnych wywołań rekurencyjnych.
5. Wybierz prawdę o strukturach danych i uniach: (jedna)
a) można używać zamiennie struktur i unii o tej samej nazwie w programie.
b) struktury mogą być konwertowane do unii.
c) struktury można inicjalizować wartościami domyślnymi dla składników.
d) struktury posiadają większe rozmiary w pamięci niż unie o tych samych
składnikach.
e) unie mogą być konwertowane do struktur.
6. Jaki jest rozmiar zmiennej wskaźnikowej w pamięci wyrażonej w bajtach:(patrz zad 3 cz.I)
a) 32 b) 8 c) 2 d) żaden z wymienionych e) 16
7. Nie mogą istnieć różne funkcje o tej samej nazwie:
a) prawda b) fałsz ( istnieją funkcje przeciążone np.
int nazwa_funkcji(int zmienna1)
int nazwa_funkcji(int zmienna1, int zmienna2) )
8. Czym jest lista: (parę)
a) dynamiczną tablicą o zmiennej długości wskazań na kolejne węzły.
b) uporządkowaną sekwencją ponumerowanych elementów.
c) wektorem wskaźników ułożonych w sekwencji jeden po drugim.
(można ją tak zrobić, ale raczej to nie o to tu chodziło)
d) dowolnym grafem powiązań zmiennych dynamicznych o zdefiniowanym
początku i końcu (są też takie listy, ale to chyba nie o to chodziło)
e) sekwencyjne powiązanie ze sobą węzłów.
f) ciąg zmiennych dynamicznych powiązanych ze sobą wskaźnikami.
9. Zdefiniuj konwersję jawną istniejącej zmiennej int X do typu double na jeden z
możliwych sposobów: (podaję 3 sposoby)
(double) X double(X) static_cast<double>(X)
10. Stałe wyliczeniowe umożliwiają tworzenie nowych typów, a następnie definiowanie ich
wartości, które ograniczają się do warunków określonych w definicji:
a) prawda b) fałsz
11. czy zmienne globalne mają wartosci domyslne
Tak (0)
12. Róznica miedzy zmiennymi statycznymi i lokalnymi
statyczne pamietają swoj stan między wywołaniami funkcji ( mogą być zadeklarowane tylko w funkcji)
13. co to jest konwersja jawna
Napsiana w kodzie przez programistę
14. mamy kod:
union schowek{
char c;
int i;
double d;
}
jaki jest rozmiar tej unii?
8 bajtów (bo tyle ma typ double)
15. Złożoność obliczeniowa optymistyczna Selectionsort
odp. n^2
16. Czym różni sie char od char[],
Char to po prostu deklaracja zmiennej typu znakowego, a char [] to tablica takich znaków
1. Wartość Optymistyczna dla sortowania Quicksort
O(n log n)
2. Ile razy wykona się pętla while:
int i = 0, j = 0, k =2;
while(i < 51 || j < 101){
…..
i++;
j + = k;
}
51 razy.
3. Rozpoznać która tablica zapełniona liczba ma charakter stogu?
{32, 21, 12, 11, 9, 7, 5, 2}
4. Były rysunki algorytmow sortowania i trzeba bylo rozpoznac jaki to jest (rysunki z wykladow)
5. czym sie rozni zmienna double od float
float - 4 bajty, 7 miejsc po przecinku
double - 8 bajtów, 15 miejsc po przecinku
(Float (floating point) - zmienny przecinek, Double(double precision - podwójna dokładność)
6. czy typedef tworzy nowy typ, ktorego mozna by bylo uzywac jaka ta nowa nazwe
Nie, tworzy ona synonim danego typu
7. w jaki sposób dostac się do zmiennej i zauważyć ze można tylko do jednej (mowa o unii)
Poprzez operator "."
8. Rozpoznać sortowanie po rysunku z pdf nr 4
9. Drzewo binarne - wybrać prawidłową odp
Było pytanie o wysokość, rząd drzewa czy coś w tym stylu.
10. Stos - wybrać prawidłową odp
Nie znam odpowiedzi ale podobno wystarczy wiedzieć co to stos (malejące drzewo binarne)
11. typ wyliczeniowy czy moze przyjmowac wartosci tylko zadekarowane ?
Tak
12. Róznica miedzy zmiennymi statycznymi i lokalnymi
statyczne pamietaja swoj stan między wywołaniami funkcji
( moga byc zadeklarowane tylko w funkcji)
13. które tablice są kopcami (do wyboru kilka tablic 8-elementowych)
Wystarczy rozrysować je sobie na drzewa i zobaczyć, które maleją
- (do wyboru kilka tablic 8-elementowych) odp: ja znalazłem 2 właściwe trzeba się po
prostu przyjżeć która spełnia warunek kopca ;-) uwaga: nie tylko tablice posortowane
malejąco są kopcami, np. [34,12,29,11,4,17,15,11,1], tutaj też każdy następnik jest mniejszy
równy poprzednikowi (wystarczy sobie to rozrysować na drzewko i wtedy widać) :-)
14. Wskaż, która z odpowiedzi jest prawdziwa (jedna):
a) w plikach można dowolnie adresować każdy element podczas operacji odczytu i
zapisu.
b) dane zapisane w jednym pliku mogą być tylko jednego typu.
c) pliki binarne nie mogą przechowywać tekstów.
15. Co przechowują zmienne wskaźnikowe:
f) wskazania na miejsca, gdzie zapisane są adresy do wartości innych zmiennych.
17. Stałe wyliczeniowe umożliwiają tworzenie nowych typów, a następnie definiowanie
ich wartości, które ograniczają się do warunków określonych w definicji:
Prawda
18. Czy przed kompilacja programu trzeba zadeklarowac wszystkie zmienne?
TAK
19. Jak zadeklarowc nowe zmienne w trakcie dzialania programu?
NEW - dynamicznie tworzy zmienną w trakcie działania programu, rezerwuje miejsce w
pamięci, zmienna nie ma nazwy
20. Jak dzialaja kolejki?
Kolejka to liniowa struktura danych, w której nowe dane dopisywane są na końcu kolejki,
a z początku kolejki pobierane są dane do dalszego przetwarzania
21. mamy deklaracje:
const int c=37;
#define c 37
22. które zdanie jest prawdziwe?
a) Const int jest wygodniejsze dla kompilatora bo zna typ stałej.
b) deklaracja poprzez define zajmuje mniej miejsca
c) deklaracja poprzez const zajmuje mniej miejsca
d) obie zajmują tyle samo miejsca