wykonuje pomiar przez odjęcie od napięcia mierzonego, napięcia kondensatora ładowanego prądem o stałej wartości. Wynikiem pomiaru jest czas w jakim wynik tego porównania osiągnie wartość 0. Czas ten jest wprost proporcjonalny do mierzonego napięcia
jest inną nazwą przetwornika całkującego. Różnica polega na zastosowaniu w miejsce klasycznych kondensatorów diod pojemnościowych umożliwiających sterowanie zmianę pojemności (kompensowanie).
wykonuje pomiar przez porównanie napięcia mierzonego z napięciem odniesienia wytworzonego przez układ oparty o diodę zenera skompensowaną termicznie. Wynikiem pomiaru jest współczynnik wielokrotności napięcia mierzonego względem napięcia odniesienia uzyskiwany z obwodu ujemnego sprzężenia zwrotnego wzmacniacza operacyjnego podnoszącego wartość napięcia odniesienia
zbudowany jest z przetwornika C/A i komparatora. Wartość napięcia tego przetwornika jest cyklicznie zwiększana i porównywana z wejściowym, aż przekroczy wartość napięcia mierzonego. Wynikiem pomiaru jest ostatnia wartość jaka została podana na wejście przetwornika C/A
zbudowany jest z przetwornika C/A i komparatora. Wartość napięcia tego przetwornika jest cyklicznie zwiększana i porównywana z wejściowym, aż przekroczy wartość napięcia mierzonego. Wynikiem pomiaru jest ostatnia wartość jaka została podana na wejście przetwornika C/A
W modelu TCP/IP istnieje warstwa Aplikacji, która odpowiada warstwom:
Aplikacji, Prezentacji i Sieciowej modelu OSI/ISO
Aplikacji, Sesji i Transportu modelu OSI/ISO
Aplikacji i Łącza danych modelu OSI/ISO
Aplikacji, Prezentacji i Sesji modelu OSI/ISO
Aplikacji, Prezentacji i Sesji modelu OSI/ISO
Który z protokołów stosu TCP/IP odpowiada warstwie sieciowej modelu OSI/ISO?
Internetu
Aplikacji
Dostępu do sieci
Transportowy
Internetu
Która z warstw modelu OSI/ISO korzysta z adresów sprzętowych?
Aplikacji
Sesji
Łącza danych
Prezentacji
Łącza danych
Utworzenie gniazda realizowane jest funkcją:
write
socket
read
listen
socket
Wynikiem utworzenia gniazda jest:
wskaźnik
informacja o powodzeniu operacji
ścieżka dostępu
deskryptor
deskryptor
Do obsługi połączenia TCP, utworzone gniazdo być typu:
SOCK_DGRAM
SOCK_CONN_DGRAM
SOCK STREAM
SOCK_RAW
SOCK STREAM
Adres protokołu IPv6 zapisany jako FF0C::B1C2, jest rozumiany:
jako adres: FF0C:0:0:0:0:0:B1C2
jako adres: FF:0C:B1:C2
jako dwa adresy: FF0C oraz B1C2
jako adres: FF0C:FF:FF:FF:FF:FF:B1C2
jako adres: FF0C:0:0:0:0:0:B1C2
Jakiego rodzaju adresu, który występuje w IP4 nie ma w protokole IP6?
adresu pętli zwrotnej
adresu pojedynczego węzła
adresu rozsyłania grupowego (multicast)
adresu rozgłaszana (broadcast)
adresu rozgłaszana (broadcast)
Długości adresów dla protokołów IP wynoszą:
dla IPv4 - 64 bity, dla IPv6 - 256 bity
dla IPv4 - 32 bity, dla IPv6 - 256 bity
dla IPv4 - 32 bity, dla IPv6 - 128 bity
dla IPv4 - 64 bity, dla IPv6 - 128 bity
dla IPv4 - 32 bity, dla IPv6 - 128 bity
Jaka będzie wartość zmiennej c?
#define min( x, y ) ( ((x) &rt;= (y)) ? (x) : (y) )
int a = 2;
int b = 4;
int c = min( 1, min( a, b ) );
1
4
2
błąd wykonania
4
Proszę wskazać, jakie są różnice między paradygmatami obiektowym (object-based) i obiektowo zorientowanym (object-oriented):
Obydwa paradygmaty opisują odrębne aspekty, więc nie da się ich porównać
W paradygmatach tych odmiennie rozumie się pojęcia enkapsulacji i interfejsu.
Tylko w paradygmacie obiektowo zorientowanym występują pojęcia dziedziczenia i wielopostaciowości.
Różnice są niewielkie, i zasadniczo to jest ten sam paradygmat
Tylko w paradygmacie obiektowo zorientowanym występują pojęcia dziedziczenia i wielopostaciowości.
Jaki efekt daje poniższy fragment kodu?
int main( int argc, char** argv ) {
FILE* pHandle = fopen( *++argv, "rb" ) );
}
Otwiera plik binarny do odczytu, którego nazwa jest identyczna jak nazwa programu i jest przekazana do funkcji main
Otwiera plik binarny do odczytu, którego nazwa jest przekazana do funkcji main jako drugi argument linii komend
Otwiera plik binarny do zapisu, którego nazwa jest którego nazwa jest przekazana do funkcji main jako drugi argument linii komend
Błąd kompilacji
Błąd kompilacji
Jaki efekt daje poniższy fragment kodu :
if( ( pHandle = fopen( argv[1], "wb" ) ) ) { int x = 12;
int* p = &x;
fwrite( *(&p), sizeof( int ), 1, pHandle );
}
Zostanie zapisane do pliku binarnie liczba 12 w postaci takiej ilości bajtów ile wynosi reprezentacja zmiennej x
Błąd wykonania
Błąd kompilacji
Zostaną zapisane do pliku dwa znaki reprezentujące cyfry wartości zmiennej x
Zostanie zapisane do pliku binarnie liczba 12 w postaci takiej ilości bajtów ile wynosi reprezentacja zmiennej x
Wywołanie funkcji fclose() z parametrem, który jest uchwytem pliku:
Nie jest konieczne dla poprawnego działania programu wykonującego operacje odczytu i zapisu do pliku
Jest konieczne w przypadku zapisu i odczytu pliku, aby plik wejściowy i wyjściowy nie zostały uszkodzone (wykonana operacja _commit() )
Jest konieczne w celu poprawnego stworzenia tylko pliku tekstowego otwartego do zapisu
Jest konieczne w przypadku zapisu do pliku, aby został wyczyszczony bufor związany z uchwytem pliku (wykonywana operacja fflush() przed zamknięciem pliku)
Jest konieczne w przypadku zapisu do pliku, aby został wyczyszczony bufor związany z uchwytem pliku (wykonywana operacja fflush() przed zamknięciem pliku)
Zwraca wskaźnik do typu void do realokowanego bloku pamięci. W przypadku gdy wskaźnik p jest pusty to działa jak funkcja malloc()
Realokuje blok pamięci wskazywany przez wskaźnik p i zwraca 1 w przypadku powodzenia lub 0 w przypadku nie powodzenia. W przypadku gdy wskaźnik p jest pusty to działa jak funkcja malloc()
Przenosi blok pamięci wskazywany przez p w inne miejsce pamięci operacyjnej i zwraca wskaźnik do realokowanego bloku
Zwraca wskaźnik typu void do realokowanego bloku pamięci. W przypadku gdy wskaźnik p jest pusty to działa jak funkcja calloc()
Zwraca wskaźnik do typu void do realokowanego bloku pamięci. W przypadku gdy wskaźnik p jest pusty to działa jak funkcja malloc()
Która instrukcja alokuje pamięć na dynamiczną tablice i ją zeruje?
int* tab = calloc( 1000 * sizeof( short int ) );
int x = 12; int* tab = (int*)calloc( 1000 * sizeof( x ) );
int x = 12; int* tab = (int*)malloc( 1000 * sizeof( x ) );
int* tab = (int*)malloc( 1000 );
int* tab = calloc( 1000 * sizeof( short int ) );
int x = 12; int* tab = (int*)calloc( 1000 * sizeof( x ) );
int x = 12; int* tab = (int*)malloc( 1000 * sizeof( x ) );
int* tab = (int*)malloc( 1000 );
Jaki będzie efekt wykonania fragmentu kodu? memset( pTab, 1, 100*sizeof( int ) );
Wypełni każdy bajt dynamicznego bloku wskazywanego przez pTab wartością 1
Wypełni dynamiczną tablicę 100-tu elementową wskazywaną przez pTab wartościami 1
Wypełni 100 bajtów wskazywanych przez wskaźnik pTab wartością 1
Błąd wykonania
Wypełni każdy bajt dynamicznego bloku wskazywanego przez pTab wartością 1
Wypełni dynamiczną tablicę 100-tu elementową wskazywaną przez pTab wartościami 1
3.1 Aby skompilować kod do użycia jako bibliotekę dynamiczną (utworzenie relokowalnego kodu) należy go skompilować:
gcc -fPIC -Wall -c *.c
gcc -shared -Wall -c *.c
gcc -fpic -Wall -c *.c
gcc -lib -Wall -c *.c
gcc -fPIC -Wall -c *.c
Aby stworzyć bibliotekę libtest mając skompilowany kod relokowalny należy?