System Flashcards

(62 cards)

1
Q

Zapisz stałą 1 w formacie o podstawie 16 (hex).

A

0x1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Jakiego formatu użyć aby wyświetlić liczbę szesnastkowo z wypełnieniem zerami (4 znaki) z prefiksem 0x?

A

0x%04x

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Podaj sygnaturę funkcji strtol.

A

long int strtol(const *char nptr, char **endptr, int base);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Jaka będzie wartość operacji bitwise or (|) na argumencach 4 i 8?

A

Obliczenie jak poniżej
0000 0100
| 0000 1000
————-
0000 1100
= 12 (dec)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Rozwiń nazwę funkcji systemowej do konwersji o nazwie strtol

A

Convert string to long integer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Jaki conajmniej rozmiar w bitach osiąga zmienna typu long int?

A

32

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Czy typ long int uwzlędnia znak?

A

Tak

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

W jakim zakresie można definiować zmienną typu long int?

A

-2^31 do 2^31 - 1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Zapisz stałą 1 w formacie o podstawie 8 (octal).

A

01

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Na jaką wartość funckja atoi skonwertuje stałą 12-?

A

Skonwertuje na wartość 12

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Co wspólnego z funkcją atoi ma funckja strtol?

A

atoi jest równe strtol(nptr, (char **) NULL, 10)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Czy funkcja atoi zwraca informację o błędach konwersji?

A

Nie, aby mieć taką możliwość należy użyć funkcji strtol

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Co należy zmienić w formacie 0x%04x aby wartości znakowe po 0x były wyświetlane jako wielkie litery?

A

0x%04X

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Podaj sygnaturę funkcji strlen.

A

size_t strlen(const char *s);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Czy funkcja strlen zwraca również znak kończący napis -> \0?

A

Nie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Podaj sygnaturę funkcji fopen.

A

FILE *fopen(const char *path, const char *mode);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Co wykonuje funkcja fopen?

A

Otwiera plik wskazany w ścieżce i zwraca do niego strumień

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Jaki tryb otwiera plik w trybie odczytu i zapisu?

A

r+

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Jaki tryb wyczyści do zera istniejący plik i spozycjonuje się na początku?

A

w

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Jaki tryb umożliwia dopisywanie do istniejącego pliku?

A

a

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

W trybie a+ od której pozycji następuje odczyt pliku?

A

Od początku

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Do czego służy funkcja perror?

A

Print system error message

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Podaj sygnaturę funkcji perror.

A

void perror(const char *error);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Które tryby tworzą plik, jeśli nie istnieje?

A

w+, a, a+

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Z jaką domyślną maską zostaną stworzone pliki przez funkcję fopen?
0666 -\> S\_IRUSR | S\_IWUSR | S\_IRGRP | S\_IWGRP | S\_IROTH | S\_IWOTH
26
Jakiego typu jest zmienna errno?
Liczba całkowita (integer)
27
Jakiej wartości zmienna errno nie przyjmuje po wywołaniu funkcji systemowej lub bibliotecznej?
0
28
Jak wygląda implementacja funkcji main w standardowej bilbiotece flex'a?
Jak poniżej ## Footnote ``` int main() { while(yylex() != 0) ; //NOP return 0; } ```
29
Czy po otwarciu pliku w trybie "w" potrzeba zatwierdzić pustą zawartość pliku?
Nie potrzeba.
30
Jaką funkcję należy wywołać przed przeprocesowaniem następnego pliku przez flex'a?
void yyrestart(FILE \*new\_file)
31
Czy można zdefiniować puste podstawienie poprzez #define?
Jest to dozwolone
32
Podaj sygnaturę funkcji malloc
void \*malloc(size\_t size);
33
Czy operator sizeof dla struktury zadziała z samą nazwą struktury?
Nie, należy podać słowo kluczowe struct przed nazwą struktury
34
Podaj sygnaturę funkcji **strcasecmp**
int strcasecmp(const char\*, const char\*);
35
W jakim pliku nagłówkowym znajdziesz funkcję strcasecmp?
W pliku strings.h
36
W jakim celu używa się funkcji strcasecmp?
W celu porównania dwóch napisów zakończonych null'em.
37
Kiedy funkcja strcasecmp zwróci 0?
Kiedy porównywane napisy są leksykograficznie równe, po translacji na małe litery
38
Kiedy funkcja **strcasecmp** zwróci wartość większą od zera?
Kiedy pierwszy porównywany napis jest leksykograficznie większy od napisu drugiego, po translacji na małe litery
39
Kiedy funkcja **strcasecmp **zwróci wartość mniejszą niż zero?
Kiedy pierwszy porównywany napis jest leksykograficznie mniejszy od napisu drugiego, po translacji na małe litery
40
Czy napisy przekazywane do **strcasecmp **są modyfikowane w tej funkcji?
Nie są, ich kopie owszem.
41
Co robi funkcja **strdup**?
Zachowuje kopie napisu.
42
Czy funkcja **strdup** alokuje pamięć, którą następnie trzeba zwolnić?
Tak, należy ją zwolnić funkcją free()
43
Podaj sygnaturę funkcji **strdup**
char \*strdup(const char \*);
44
Kiedy funkcja **strdup **zwróci wartość NULL?
W momencie braku dostępnej pamięci, jednocześnie ustawiona zostanie zmienna errno na ENOMEM
45
Kiedy używać funkcji **abort**
W momencie chęci wymuszenia nieprawdiłowego zakończenia programu.
46
Podaj sygnaturę funkcji **abort**
void abort(void);
47
Co się dzieje z otwartymi strumienia podczas wywołania funkcji abort?
Zostają opróżnione i zamknięte.
48
Jaka jest główna różnica pomiędzy **abort** a **exit**?
Wywołanie **abort** spowoduje wygenerowanie raportu poprzez "Crash Reporter", **exit** nie posiada takiego zachowania
49
Zapisz wyrażenie \*p++ z użyciem nawiasów, tak aby nie zmieniać tego wyrażenia
\***(**p++**)**
50
Który operator ma większy priorytet **\*** czy **^**
Operator mnożenia **\***
51
Jaką wartość przyjmuje stała wskaźnikowa NULL?
Wartość 0 (zero).
52
Która gałąź zostanie wykonana w przypadku poniżej? ## Footnote char \*napis; if(!napis) { gałąź 1 } else { gałąź 2 };
Gałąź 2
53
Która gałąź zostanie wykonana w przypadku poniżej? struct symbol symtab[9997]; struct symbol \*sp = &symtab[12]; if( ! sp-\>name ) { **galaz 1** ; } else { **galaz 2**; }
Gałąź 1
54
Jakie zadanie wykonuje funkcja **fputs**?
Wysyła na wyjście napis.
55
Podaj sygnaturę funkcji fputs
int fputs(const char\*, FILE \*);
56
Czy operatora sizeof używa się jak funkcji?
Tak, trzeba umieścić typ w nawiasach, np. sizeof(struct olaf)
57
Do czego aliasowany jest typ **unsigned**?
Do **unsigned int**.
58
Czy funkcja qsort sortuje elementy rosnąco czy malejąco?
Sortuje rosnąco.
59
Jaki prototyp powinna mieć funkcja do porównań używana przez **qsort**?
*static* **int** compare(**const void\***, **const void\***)
60
Podaj prototyp funkcji qsort.
void qsort(void \* base, size\_t nmemb, size\_t size, int (\*compare)(const void \*, const void \*) );
61
Czy w pętli do { .. } while (cond) potrzebny jest średnik na końcu?
Tak, jest potrzebny
62
W jaki sposób ułatwić sobie życie i wykonać ponownie w terminalu komendę zaczynającą się od litery a
**!a**