Zestaw 2
1. Dla jakich wartości zmiennej x pętla się wykonuje?
while ((x - 21) && !x) {...}
petla wykona się dla x = 0.
2. Jaka wartość zmiennej f zostanie wyświetlona po wykonaniu fragmentu programu. Odpowiedź uzasadnij.
int f = (42.5 / 5);
printf ("%d\n",f);
wartość f = 8, zostanie odrzucona reszta dzielenia i zostanie podstawiona liczba całkowita.
3. Podaj wartość zmiennych z, a, b po wykonaniu instrukcji przypisania.
a = 3; b = 2;
z = --a * b++ * a--;
a = 1 b = 3 z = 8
4. Zadeklarowano zmienne: float temp = 2; float *chuj.
Zakreśl przypisania, które uważasz za poprawne.
a) chuj = temp;
spox b) *chuj = 2;
spox c) chuj = &temp;
d) *temp = chuj;
5. Jakie wartości zmiennej i oraz j zostaną wyświetlone po 5-krotnym wywołaniu funkcji f().
void f(){
static int i =1;
int j = 1;
cout <<i<<" "<<j;
i++; j++;
};
i = 5 j = 1
6. Podczas deklaracji przypisz wartości do tablicy char t[5].
char t[5] = {'a', 'b', 'c', 'd', 'e'};
7. Jakie wartości może przyjąć zmienna wynik. Odpowiedź uzasadnij.
int wynik = c > p;
wynik przyjmie wartość 1 lub 0, w zależności od prawdziwości warunku (odpowiednio true lub false) - takie wartości zostały ustalone w kompilatorze Borlanda. w innych kompilatorach będzie to para liczb 0 i liczba rozna od 0.
8. Zadeklaruj odpowiedni wskaźnik i wykorzystaj go do wypisania trzeciego elementu tablicy int tab[20].
int *chuj = tab;
printf("%d",*(chuj + 2));
9. Dla deklaracji:
struct PUNKT{ union PUNKT{
int suma, iloczyn; int suma, iloczyn;
char znak; char znak;
}; };
Wybierz poprawne odpowiedzi:
a) Struktura PUNKT zajmuje 2 bajty, unia 5;
b) Struktura PUNKT zajmuje 5 bajtów, unia 2;
c) Struktura PUNKT zajmuje 5 bajtów, unia 5;
d) brak właściwej odpowiedzi.
10. Wyjaśnij zapis: *chuj++ przy deklaracji char *chuj;
wskazanie na następny bajt (element typu char) w pamięci.
11. Jaką wartość przymie zmienna a, po wykonaniu przypisania: a = !(0);
a przyjmie wartość 1.
12. Opisz deklarację char (*chuj)[12].
wskaźnik do tablicy 12 elementów typu char.
Zestaw 2
13. Czy poniższy fragment programu spowoduje wydruk tekstu "warunek spełniony". Uzasadnij odpowiedź.
int d = 0;
int z = 0;
if (z < 0 || z++ || ++d) printf("\nwarunek spełniony");
Jakie są wartości zmiennych: d = 1 z =1
instrukcja printf zostanie wykonana ponieważ jest spełniony warunek ++d.
14. Jaki tekst otrzymamy na ekranie, po wykonaniufragmentu programu? Uzasadnij odpowiedź.
int chuj = 7;
switch (chuj) {
case 7: printf("Jestem w 7");
case 8: printf("Jestem w 8");
case 9: printf("Jestem w 9");
};
Jestem w 7Jestem w 8Jestem w 9 - to zobaczymy na ekranie, ponieważ brak instrukcji break po każdej instrukcji case.
15. Jaką długość będzie miał łańcuch. Odpowiedź uzasadnij.
char znaki[] = "\0Artur\0Partyka\0";
przy takiej inicjalizacji długość znaki wynosi 16 - 15 znaków wpisanych w łańcuch + znak NULL, który dostawia za nas kompilator.
16. Podaj wartość zmiennej k.
int k, i = 5;
k = i + 011;
k = 14. Uzasadnienie: 011(ósemkowy) to na dziesiętny 9.
17. Podczas deklaracji inicjalizowano tablicę, zakreśl poprawne deklaracje:
int tab[][] = {0, 1 , 10, 11 ,20 ,21 ,30, 31};
spox int tab[3][] = {0, 1 , 10, 11 ,20 ,21};
spox int tab[4][2] = {0, 1 , 10, 11 ,20 ,21, 30, 31};
spox int tab[][2] = {-1};
spox int tab[2][3] = {-1};
18. Zadeklaruj stały wskaźnik do stałego obiektu.
const int dupa = 666;
const int *const chuj = &dupa;
19. Zadeklarowano strukturę:
struct punkt{
int x, y;
char opis[12];
};
Napisz fragment programu, w którym zadeklarujesz wskaźnik do struktury punkt i wykorzystując go nadasz wartości składowym struktury.
punkt *chuj = new punkt;
chuj->x = chuj->y = 666;
strcpy(chuj->opis, "Pojebizm");
20. Zadeklarowano funkcję char *f(int, char*):
a) jak nazywamy sposób przekazania do funkcji f() jej parametrów: przez wartość i wskaźnik.
b) zadeklaruj wskaźnik do tej funkcji: char *(*chuj)(int, char*).
c) wywołaj funkcję wykorzystujące wyżej zdefiniowany wskaźnik:
chuj = f;
dupa[] = "Chuj";
chuj(666, dupa);
21. W funkcji zdefiniowano zmienną który_raz, która ma liczyć ilość wywołań funkcji. Uzupełnij deklarację:
int f(void) {
static ilość = 1;
return (ilość++);};