PO.pdf

(2175 KB) Pobierz
115439870 UNPDF
e-Katedra Systemw i Sieci Komputerowych
http://trinh.pl/xxx/
Programowanie obiektowe
Test 1 Remik miszcz
1
Dopasuj określenia
WyraŜenie zakończone średnikiem
Realizuje skok do instrukcji poprzedzonej wybraną etykietą
case lub default zaleŜnie od wartości całkowitej
Pętla, która musi co najmniej jeden raz wykonać powtarzaną
instrukcję
ZaleŜnie od warunku wykonuje jedną z dwóch instrukcji
Średnik, którego nie poprzedza wyraŜenie
2
Zdefiniowano strukturę Osoba , zmienną A i wskaźnik p na tę zmienną:
struct Osoba { . . . // tu jakieś dane
Data d; // gdzie struct Data { short d, m, r; };
Osoba *ojciec, *matka;
} A, *p=&A;
W zmiennej A zawarto Twoje dane osobowe. Które instrukcje wyznaczą poprawnie
rok urodzenia Twojego ojca?
Wybierz co najmniej jedną odpowiedź
a. R = A . ojciec . d . r
b. R = p > ojciec > d . r Tak
c. R = p > ojciec > d > r
d. R = A . ojciec > d . r Tak
3
Dopasuj, jakie wyraŜenia dają w wyniku opisane wartości, jeśli zdefiniowano:
double A[10][8], (*p)[4], B[]={2,3,5,7,9,4,1};
Rozmiar tablicy 4 zmiennych typu double.
Rozmiar tablicy w bajtach.
Rozmiar zmiennej wskaźnikowej
Liczba elementów tablicy.
Rozmiar 8 zmiennych typu double
4
Dopasuj słowa kluczowe i operatory do wyjaśnień.
Lewym argumentem tego operatora jest wskaźnik na zmienną
strukturową.
Umieszcza w pamięci wszystkie swoje zmienne jedna na drugiej w
tym samym obszarze pamięci.
Lewym argumentem tego operatora jest zmienna strukturowa.
Umieszcza w pamięci wszystkie swoje zmienne jedna po drugiej.
5
1 of 32
2009-06-18 20:47
115439870.330.png 115439870.341.png 115439870.352.png 115439870.363.png 115439870.001.png 115439870.012.png 115439870.023.png 115439870.034.png 115439870.045.png 115439870.056.png 115439870.067.png 115439870.078.png 115439870.089.png 115439870.100.png 115439870.111.png 115439870.122.png 115439870.133.png 115439870.144.png 115439870.155.png 115439870.166.png 115439870.177.png 115439870.188.png 115439870.199.png 115439870.210.png 115439870.221.png 115439870.232.png 115439870.243.png 115439870.254.png 115439870.265.png 115439870.276.png 115439870.287.png 115439870.298.png 115439870.308.png 115439870.309.png 115439870.310.png 115439870.311.png 115439870.312.png 115439870.313.png 115439870.314.png 115439870.315.png 115439870.316.png 115439870.317.png 115439870.318.png 115439870.319.png 115439870.320.png 115439870.321.png 115439870.322.png 115439870.323.png 115439870.324.png 115439870.325.png 115439870.326.png 115439870.327.png 115439870.328.png 115439870.329.png 115439870.331.png 115439870.332.png 115439870.333.png 115439870.334.png 115439870.335.png 115439870.336.png 115439870.337.png 115439870.338.png 115439870.339.png 115439870.340.png 115439870.342.png 115439870.343.png 115439870.344.png 115439870.345.png 115439870.346.png 115439870.347.png 115439870.348.png 115439870.349.png 115439870.350.png
e-Katedra Systemw i Sieci Komputerowych
http://trinh.pl/xxx/
Dopasuj nazwy strumieni i obiektów strumieniowych do opisów.
Strumień wejściowy skojarzony domyślnie z klawiaturą
Strumień wyjściowy skojarzony domyślnie z ekranem
Obiekt strumieniowy wprowadzający dane ze strumienia stdin
Strumień wyjściowy skojarzony na stałe z ekranem
Obiekt strumieniowy wyprowadzający dane do strumienia stderr
Obiekt strumieniowy wyprowadzający dane do strumienia stdout
6
Jeśli P i S są wskaźnikami, to kiedy relacja P<S ma sens i co daje w wyniku?
Wybierz co najmniej jedną odpowiedź
a. P i S muszą wskazywać na
dowolne obiekty tego samego typu
b. P<S, gdy P wskazuje na element o
mniejszym indeksie niŜ S
Tak chodzi o porównanie połoŜenia
wskazywanych elementów w tablicy.
c. P<S, gdy P wskazuje na zmienną
zajmującą mniej bajtów niŜ S
d. P<S, gdy P wskazuje na mniej
zmiennych niŜ S
e. P i S muszą wskazywać na
elementy tej samej tablicy
Tak
7
Jeśli P i S są wskaźnikami, to kiedy róŜnica PS ma sens i co daje w wyniku?
Wybierz co najmniej jedną odpowiedź
a. PS = ile bajtów dalej wskazuje P niŜ S
b. PS = wskazanie na obszar od P do S
c. P i S muszą wskazywać dowolne obiekty tego samego
typu
d. P i S muszą wskazywać elementy tej samej tablicy Tak
e. PS = ile elementów dalej wskazuje P niŜ S
Tak wynik jest typu
int
8
Zdefiniowano wskaźnik uniwersalny void *P;
Które operacje na wskaźniku P są dozwolone i nie wygenerują błędu kompilatora?
Wybierz co najmniej jedną odpowiedź
a. P ==NULL (przyrównanie do wskaźnika
zerowego)
Operacja dozwolona.
b. P+1 (dodanie liczby całkowitej)
c. (double*)P (rzutowanie na typ double*)
Jest to wskazanie zmiennej typu
double.
d. P[2] (indeksacja elementu tablicy)
e. *P (wyłuskanie wskazywanej zmiennej)
9
Otwarto plik tekstowy zawierający tylko poprawnie zapisane liczby rzeczywiste.
Jaki będzie efekt wykonania instrukcji
for(n=0; fscanf(fp, "%lf", &x)==1; n++);
2 of 32
2009-06-18 20:47
115439870.351.png 115439870.353.png 115439870.354.png 115439870.355.png 115439870.356.png 115439870.357.png 115439870.358.png 115439870.359.png 115439870.360.png 115439870.361.png 115439870.362.png 115439870.364.png 115439870.365.png 115439870.366.png 115439870.367.png 115439870.368.png 115439870.369.png 115439870.370.png 115439870.371.png 115439870.372.png 115439870.373.png 115439870.002.png 115439870.003.png 115439870.004.png 115439870.005.png 115439870.006.png 115439870.007.png 115439870.008.png 115439870.009.png 115439870.010.png 115439870.011.png 115439870.013.png 115439870.014.png 115439870.015.png 115439870.016.png 115439870.017.png 115439870.018.png 115439870.019.png 115439870.020.png 115439870.021.png 115439870.022.png 115439870.024.png 115439870.025.png 115439870.026.png 115439870.027.png 115439870.028.png 115439870.029.png 115439870.030.png 115439870.031.png 115439870.032.png 115439870.033.png 115439870.035.png 115439870.036.png 115439870.037.png 115439870.038.png 115439870.039.png 115439870.040.png 115439870.041.png 115439870.042.png 115439870.043.png 115439870.044.png 115439870.046.png 115439870.047.png 115439870.048.png 115439870.049.png 115439870.050.png 115439870.051.png 115439870.052.png 115439870.053.png 115439870.054.png 115439870.055.png 115439870.057.png 115439870.058.png 115439870.059.png 115439870.060.png 115439870.061.png 115439870.062.png 115439870.063.png 115439870.064.png 115439870.065.png 115439870.066.png 115439870.068.png 115439870.069.png 115439870.070.png 115439870.071.png
e-Katedra Systemw i Sieci Komputerowych
http://trinh.pl/xxx/
jeŜeli zmienne n, fp, x są kolejno typu int, FILE*, double?
Wybierz co najmniej jedną odpowiedź
a. Do zmiennej x zostanie wczytana
tylko pierwsza liczba
b. Wartość n mówi, ile liczb jest w pliku. Tak, kaŜdy udany odczyt liczby
zwiększa wartość n o 1.
c. Plik ustawi się w pozycji końcowej. Tak, czytany jest do końca
d. Wartość n mówi, ile razy w pliku
występuje liczba 1
10
Połącz instrukcje w języku C z interpretacją wyniku S .
S=0; for(i=0; i<n; i++) if(A[i]>0)
S+=A[i];
S=0; for(i=0; i<n; i++) S+=A[i];
S=A[0]; for(i=1; i<n; i++)
if(S<A[i])S=A[i];
S=A[0]; for(i=1; i<n; i++)
if(S>A[i])S=A[i];
11
Aby funkcja qsort mogła sortować teksty, naleŜy sortować tablicę wskaźników na
początkowe znaki tych tekstów. Argument s funkcji porównującej jest typu const
void *s i wskazuje na element sortowanej tablicy wskaźników. Jak naleŜy
zainicjować wskaźnik ps , aby wskazywał na początkowy znak rozwaŜanego
tekstu?
Wybierz odpowiedź
a. char *ps=*s;
b. char *ps=*(char**)s; Tak, s powinno być typu char**.
c. char *ps=**(char**)s;
d. char *ps=(char*)s;
12
Drugim argumentem funkcji fopen jest tekst, który określa tryb otwarcia pliku.
Dopasuj teksty do podanych warunków otwarcia.
Otwierany plik musi istnieć.
Otwierany plik jest kasowany, jeśli istnieje, a następnie jest kreowany
jako pusty.
Otwierany jest plik do dopisywania danych binarnych.
Otwierany jest plik do edycji (odczytu i zapisu) danych binarnych.
Otwierany plik jest przewijany na koniec (gdy istnieje) lub jest
kreowany.
13
Uniwersalny wskaźnik p zdefiniowany const void *p;
przechowuje wskazanie zmiennej całkowitej typu int . Jak za pomocą tego
wskaźnika zainicjować definiowaną zmienną całkowitą?
Wybierz odpowiedź
a. int k = *(int*)p; Dobrze
b. int k = (int)p;
3 of 32
2009-06-18 20:47
115439870.072.png 115439870.073.png 115439870.074.png 115439870.075.png 115439870.076.png 115439870.077.png 115439870.079.png 115439870.080.png 115439870.081.png 115439870.082.png 115439870.083.png 115439870.084.png 115439870.085.png 115439870.086.png 115439870.087.png 115439870.088.png 115439870.090.png 115439870.091.png 115439870.092.png 115439870.093.png 115439870.094.png 115439870.095.png 115439870.096.png 115439870.097.png 115439870.098.png 115439870.099.png 115439870.101.png 115439870.102.png 115439870.103.png 115439870.104.png 115439870.105.png 115439870.106.png 115439870.107.png 115439870.108.png 115439870.109.png 115439870.110.png 115439870.112.png 115439870.113.png 115439870.114.png 115439870.115.png 115439870.116.png 115439870.117.png 115439870.118.png 115439870.119.png 115439870.120.png 115439870.121.png 115439870.123.png 115439870.124.png 115439870.125.png 115439870.126.png 115439870.127.png 115439870.128.png 115439870.129.png 115439870.130.png 115439870.131.png 115439870.132.png 115439870.134.png 115439870.135.png 115439870.136.png 115439870.137.png 115439870.138.png 115439870.139.png 115439870.140.png 115439870.141.png 115439870.142.png
e-Katedra Systemw i Sieci Komputerowych
http://trinh.pl/xxx/
c. int k = *p;
d. int k = (int*)p;
14
Dopasuj definicje wskaźników do definicji tablic tak, aby arytmetyka na wskaźniku
była zgodna z arytmetyką na nazwie tablicy (aby wskaźnik wskazywał na taki sam
typ, na jaki wskazuje nazwa tablicy).
double **q;
double (*r)[8];
double (*s)[40];
double *p;
15
Dopasuj definicje parametru k funkcji Fun
W instrukcji Fun( n ); funkcja posługuje się zmienną k tak jak
nazwą tablicy
W instrukcji Fun( n ); funkcja posługuje się zmienną n uŜywając
do niej nazwy k , ale nie wolno jej zmieniać wartości tej zmiennej
W instrukcji Fun(n+5); funkcja przypisuje własnej lokalnej
zmiennej k wartość n+5
W instrukcji Fun( n ); funkcja posługuje się zmienną n uŜywając
do niej nazwy k
16
W programie zdefiniowano int n; i wczytano wartość do zmiennej n . Jak
poprawnie przydzielić programowi pamięć na tablicę zmiennych typu double
ułoŜonych w n wierszach i 4 kolumnach?
Wybierz co najmniej jedną odpowiedź
a. double (*A)[4]; A=(double(*)[4])calloc(n, sizeof(*A)); Dobrze
b. double (*A)[4]; A=new double[n][4];
Dobrze
c. double *A; A=(double*)calloc(4*n, sizeof(*A));
d. double *A[4]; A=(double*)calloc(4*n, sizeof(*A));
17
Czym są nazwy A i B, jeŜeli zdefiniowano double A[50], B[8][4];
Wybierz co najmniej jedną odpowiedź
a. A stała wskazująca na pierwszy
element tablicy A[0].
Tak, nazwa tablicy wskazuje jej
początkowy element.
b. B stała wskazująca na
pierwszy bajt tablicy B.
c. B stała wskazująca na zmienną
typu double B[0][0].
d. B stała wskazująca pierwszy
wiersz tablicy (4 zmienne)
Tak, elementami tej tablicy są wiersze B
wskazuje na 4 zmienne typu double
e. A stała wskazująca na pierwszy
bajt tablicy A.
18
Co obliczą następujące instrukcje?
S=A[0];
4 of 32
2009-06-18 20:47
115439870.143.png 115439870.145.png 115439870.146.png 115439870.147.png 115439870.148.png 115439870.149.png 115439870.150.png 115439870.151.png 115439870.152.png 115439870.153.png 115439870.154.png 115439870.156.png 115439870.157.png 115439870.158.png 115439870.159.png 115439870.160.png 115439870.161.png 115439870.162.png 115439870.163.png 115439870.164.png 115439870.165.png 115439870.167.png 115439870.168.png 115439870.169.png 115439870.170.png 115439870.171.png 115439870.172.png 115439870.173.png 115439870.174.png 115439870.175.png 115439870.176.png 115439870.178.png 115439870.179.png 115439870.180.png 115439870.181.png 115439870.182.png 115439870.183.png 115439870.184.png 115439870.185.png 115439870.186.png 115439870.187.png 115439870.189.png 115439870.190.png 115439870.191.png 115439870.192.png 115439870.193.png 115439870.194.png 115439870.195.png 115439870.196.png 115439870.197.png 115439870.198.png 115439870.200.png 115439870.201.png 115439870.202.png 115439870.203.png 115439870.204.png 115439870.205.png 115439870.206.png 115439870.207.png 115439870.208.png 115439870.209.png 115439870.211.png 115439870.212.png 115439870.213.png 115439870.214.png 115439870.215.png 115439870.216.png 115439870.217.png 115439870.218.png 115439870.219.png 115439870.220.png 115439870.222.png 115439870.223.png 115439870.224.png 115439870.225.png 115439870.226.png 115439870.227.png 115439870.228.png
e-Katedra Systemw i Sieci Komputerowych
http://trinh.pl/xxx/
for(i=1; i<n; i++)
if(S>A[i]) S=A[i];
S=0;
for(i=0; i<n; i++) S=x*S+A[i];
S=A[0];
for(i=1; i<n; i++)
if(S<A[i]) S=A[i];
S=0;
for(i=0; i<n; i++) S+=A[i];
19
JeŜeli zdefiniowano
double A[100], *p, B[20][4], (*s)[4];
i przypisano
p=A;
s=B;
to na co wskazują p+1 oraz s+1 ?
Wybierz co najmniej jedną odpowiedź
a. s+1 wskazuje na B[0][1]
b. s+1 wskazuje 1 bajt dalej niŜ
s
c. p+1 wskazuje na A[1]
Tak, dodanie 1 przesuwa wskazanie do
następnego obiektu.
d. p+1 wskazuje 1 bajt dalej
niŜ p
e. s+1 wskazuje na wiersz
B[1][0], ..., B[1][3]
Tak, s wskazuje na początkowy wiersz, to s+1
wskazuje następny wiersz
20
UłóŜ elementy definicji funkcji w kolejności takiej, w jakiej występują one w tej
definicji.
Pozycja 1
Pozycja 2
Pozycja 4
Pozycja 3
21
Dopasuj wyraŜenia do określeń zakładając, Ŝe x , y są zmiennymi typu double .
Maksimum z {x, y}
Wartość bezwzględna z x
Minimum z {x, y}
Odległość (nieujemna róŜnica) między x a y
22
Dopasuj wyraŜenia do opisów warunków logicznych
0 < x < 80
x równe zeru lub równe 80
x róŜne od zera i róŜne od 80
x < 0 lub x > 80
5 of 32
2009-06-18 20:47
115439870.229.png 115439870.230.png 115439870.231.png 115439870.233.png 115439870.234.png 115439870.235.png 115439870.236.png 115439870.237.png 115439870.238.png 115439870.239.png 115439870.240.png 115439870.241.png 115439870.242.png 115439870.244.png 115439870.245.png 115439870.246.png 115439870.247.png 115439870.248.png 115439870.249.png 115439870.250.png 115439870.251.png 115439870.252.png 115439870.253.png 115439870.255.png 115439870.256.png 115439870.257.png 115439870.258.png 115439870.259.png 115439870.260.png 115439870.261.png 115439870.262.png 115439870.263.png 115439870.264.png 115439870.266.png 115439870.267.png 115439870.268.png 115439870.269.png 115439870.270.png 115439870.271.png 115439870.272.png 115439870.273.png 115439870.274.png 115439870.275.png 115439870.277.png 115439870.278.png 115439870.279.png 115439870.280.png 115439870.281.png 115439870.282.png 115439870.283.png 115439870.284.png 115439870.285.png 115439870.286.png 115439870.288.png 115439870.289.png 115439870.290.png 115439870.291.png 115439870.292.png 115439870.293.png 115439870.294.png 115439870.295.png 115439870.296.png 115439870.297.png 115439870.299.png 115439870.300.png 115439870.301.png 115439870.302.png 115439870.303.png 115439870.304.png 115439870.305.png 115439870.306.png 115439870.307.png
Zgłoś jeśli naruszono regulamin