------- Treść oryginalnej wiadomości -------
Od: "Łukasz Pracki" <lukasz.pracki@gmail.com>
Do: Nemo <nemo.nemo@op.pl>
Kopia dla:
Temat: Re: Dodatkowe ćwiczenia
Data: Fri, 23 Jan 2009 19:57:38 +0100
Przesyłam Panu wersję egzaminu z programowania. Należy ten test
rozwiązać i oczekiwać prawie identycznych pytań. Tzn - może bys
zamienione zdanie twierdzące na przeczące, napewno będą trochę inne
wartości w zadaniach takich jak np. Zad 6. Tak że trzeba zrozumieć
sens tych odpowiedzi i pytań a nie nauczyć sie i założyć ze będą
dokładnie takie.
Proszę jak najszybciej rozprowadzić te materiały po reszcie grupy.
Przypuszczam że zadań bedzie troche mniej chociaż nie koniecznie.
Jeszce muszę sprawdzić jak to wygląda czasowo. Ale w końcu taki test
to zawsze szybko idzie.
1. Jak dołącza się pliki nagłówkowe do programu głównego:
a) #define math.h
b) #include <math.h>
c) #ifndef math.h
d) #include "math.h"
e) #include <iostream>
2. Projekt w Visual Studio może zawierac:
a) tylko 1 plik .cpp i wiele plikow .h
b) wiele plikow .cpp i wiele plikow .h
3. Czym różni się deklaracja od definicji funkcji:
a) deklaracja to np.
int fun(int a,float b);
b) definicja to np.
int fun(int a,float b)
{
return a+b;
}
c) definicja opisuje sposób działania funkcji
d) deklaracja wskazuje jedynie na istnienie danej funkcji o konkretnej nazwie, konkretnym typie i liczbie parametrów wejściowych
4. Zdefiniuj zmienne:
- „a” typu liczba calkowita
- „b” liczba zmiennoprzecinkowa
- „c” znak
- „w” wskaźnik zdolny do pokazywania na wartości całkowite typu „int”
- „tab_c” - statyczna tablica 10 znakow
- „tab_i” - statyczna tablica 10 wartosci całkowitych
- „tab_w” - dynamiczna tablica 10 wartosci całkowitych
* a teraz zwolnij miejsce na wczesniej zadeklarowana tablice
5. Napisać deklarację funkcji „fun” zwracającej wartość typu całkowitego przyjmującego dwa parametry - pierwszy typu zmiennoprzecinkowego, drugi tablica znaków
6. Podaj w miejscach oznaczonych „//” wynik wyświetlenia na ekranie lub opisz błąd uniemożliwiający kompilacje:
a)
main()
{
int a=1,b=2;
if(a==1)
{
b=6;
cout<<a<<b<<endl; //
}
cout<<a<<b; //
}
b)
main()
{
int a=1,b=2;
if(a=0)
{
b=6;
cout<<a<<b<<endl; //
}
cout<<a<<b; //
}
c)
main()
{
int a=1,b=2;
if(a=b)
{
b=5;
cout<<a<<b<<endl; //
}
cout<<a<<b; //
}
7. Wskaźnik:
a) przechowuje adres pamięci
b) przechowuje tablicę danych
c) nie posiada typu
d) posiada typ
e) wskaźnikiem typu int można pokazywac na zmienną typu float
f) wskaźnikiem typu int nie można pokazywac na zmienną typu float
g) stworzenie wskaznika to już stworzenie zmiennej w pamieci
h) stworzenie wskaznika to jeszcze nie stworzenie zmiennej w pamieci
8. Jak stworzyć dynamicznie zmienną w pamieci?
a) int *w;
w=new int;
b) int *w;
w=12;
c) int *w;
*w=12;
10 .Jak stworzyć dynamicznie tablicę w pamieci?
a) int *w;
w=new int;
b) int *w;
w=new int[10];
c) int *w;
int rozmiar=10;
w=new int[rozmiar];
11.Jak zwolnic miejsce po dynamicznej tablicy
a) delete w;
b) delete[] w;
12.Jak zwolnic miejsce po dynamicznie stworzonej zmiennej
a) delete w;
b) delete[] w;
13. Poprawna deklaracja klasy to:
a) class klasa1
{
int a;
float b;
void funkcja();
void funkcja2()
{
a=9;
}
void klasa1::funkcja3()
{
b=3;
}
};
b) class klasa1
{
int a;
float b;
void funkcja();
void funkcja2()
{
a=9;
}
funkcja3()
{
b=3;
}
};
c) class klasa1
{
int a;
float b;
void funkcja();
void funkcja2()
{
a=9;
}
void funkcja3()
{
b=3;
}
};
14.Czym różnią się klasy od struktur:
a) Klasa ma składniki i metody, struktura też (metoda to inaczej funkcja)
b) Klasa ma składniki, a struktura metody
c) Klasa ma składniki i metody, a struktura tylko składniki
d) Klasa ma sekcje dostępu a struktura nie
e) Domyślnie skłądniki struktury są dostępne a klasy nie
f) Domyślnie składniki struktiry są niedostępne a klasy tak
15. Co to jest klasa a co to jest obiekt:
a) obiekt to konkretna zmienna a klasa to typ złożony
b) obiekt to typ a klasa to konkretne zmienna
c) obiekt to zawężona definicja klasy
16. Jak możemy zmieniać wartości składników tej klasy?
class wektor
{
int a;
protected:
int b;
public:
int c;
void zmien_a(int par)
{
a=par;
}
void zmien_b(int par)
{
b=par;
}
void zmien_c(int par)
{
c=par;
}
};
-----------------------------------------------------
wektor p;
p.a=8;
wektor p;
p.b=8;
wektor p;
p.c=10;
wektor p;
p.zmien_a(4);
wektor p;
p.zmien_b(8);
wektor p;
p.zmien_c(10);
17.Jak definiujemy funkcje wewnatrz klasy?
class klasa1
{
void fun() a)
{
}
void fun2(); b)
fun3() c)
{
}
void klasa1::fun4() d)
{
}
};
18. Jak definiujemy funkcje poza klasą?
class klasa1
{
Void fun() a)
{
}
void fun2(); b)
fun3() c)
{
}
void fun4(); d)
}
void fun2() e)
{
}
void klasa1::fun4() f)
{
}
};
19. Sekcje dostępu danych wewnątrz klasy:
a) public - umożliwia dostęp do elementów tej sekcji obiektu przy użyciu operatora kropki z wnętrza dowolnej funkcji
a) public - umożliwia dostęp do elementów tej sekcji obiektu przy użyciu operatora kropki z wnetrza funkcji zaprzyjaźnionych
b) protected - umożliwia dostęp do elementów tej sekcji obiektu przy użyciu operatora kropki z wnętrza dowolnej funkcji
b) protected - nie umożliwia dostępu do elementów tej sekcji obiektu przy użyciu operatora kropki z wnętrza dowolnej funkcji
b) protected - umożliwia dostęp do elementów tej sekcji obiektu przy użyciu operatora kropki z wnetrza funkcji zaprzyjaźnionych
c) private - umożliwia dostęp do elementów tej sekcji obiektu przy użyciu operatora kropki z wnętrza dowolnej funkcji
b) private - nie umożliwia dostępu do elementów tej sekcji obiektu przy użyciu operatora kropki z wnętrza dowolnej funkcji
b) private - umożliwia dostęp do elementów tej sekcji obiektu przy użyciu operatora kropki z wnetrza funkcji zaprzyjaźnionych
20. Rozmiar obiektu to:
a) suma rozmiarów składników klasy
b) suma rozmiarów metod klasy
c) suma rozmiarów metod i skłądników klasy
21. Jeśli mamy następującą klasę to:
class wektor
{
public:
int rozmiar;
void fun(int rozmiar)
{
this->rozmiar=rozmiar;
}
};
Które z wyodrębnioncyh zmiennych są sobie równoważne?
czerwona i niebieska
czerwona i pomarańczowa
czerwona i zielona
niebieska i zielona
niebieska i pomarańczowa
zielona i pomarańczowa
22. Konkstruktor:
a) tworzy obiekt
b) może mieć 0 argumentów
c) może mieć dowolną ilość argumentów
c) jest metodą klasy
d) inicjalizuje już stworzony obiekt wartościami
g) jest wymagany co najmniej jeden
e) może być tylko jeden w klasie
f) może być ich wiecej niż jeden w klasie
g) może mieć dowolną nazwe
h) ma nazwę taką samą jak nazwa klasy
i) nie zwraca żadnej wartości, żadnego typu
j) zwraca wartość int
23. Destruktor:
a) musi być zdefiniowany co najmniej jeden dla klasy
b) może być tylko jeden
c) może być ich wiecej niż jeden
d) może mieć 0 argumentów
e) możę mieć dowolna liczbe argumentów
24.Wskaż wywołania konstruktorów i destruktora pisząc przy odpwoeidniej linii kodu odpoweidni znaczek (k0, k1,…)
class wektor
{
wektor(); (k0)
wektor(int par); (k1)
wektor (int par1,int par2); (k2)
wektor(wektor & par); (kk)
~wektor(); (d)
};
---------------------------------------------------------------------------
main()
{
wektor a;
wektor b(4);
wektor c(4,5);
wektor d(a);
wektor e=b;
if (4)
{
Wektor f(3);
}
wektor *g = new wektor;
delete g;
Wektor h;
h.~wektor();
}
25.Które odwołania są proawidłowe?
class wektor
{
public:
static int s;
int i;
}
----------------------------------------------------------
main()
{
Wektor p;
Wektor p2;
p.s=5;
p.i=6;
p2.s=7;
p2.i=8;
wektor.s=9;
wektor.i=10;
}
26. Przyjaźń funkcji:
a) deklaruje się wewenątrz klasy
b) deklaruje się poza klasą
c) pozwala na dostęp tej funkcji do zmiennych prywatnych klasy
d) zachodzi pomiędzy klasą a funkcją tej samej klasy
d) zachodzi pomiędzy klasą a funkcją nie należaącą do tej klasy
27. Mając zdefiniowane operatory:
class complex
{
public:
double Re;
double Im;
public:
complex(double rzeczywista=0,double urojona=0):Re(rzeczywista),Im(urojona)
{
//puste
}
complex(const complex & wzor):Re(wzor.Re),Im(wzor.Im)
{
//puste
}
complex & operator=(const complex & wzor); (1)
complex & operator=( double d); (2)
complex operator-() const; (3)
complex operator+(const complex & wzor) const; (4)
complex operator-(const complex & wzor) const; (5)
complex operator*(const complex & wzor) const; (6)
complex operator/(const complex & wzor) const; (7)
};
complex operator+( double d,const complex & wzor) const; (8)
complex operator-( double d,const complex & wzor) const; (9)
complex operator*( double d,const complex & wzor) const; (10)
complex operator/( double d,const complex & wzor) const; (11)
przypisz odpowiednim liniom kodu nery użytych w nich operatorów:
main()
{
complex a,b,c,d;
a=b;
b=4.5;
c=a+b;
d=a-c;
a=b+4.5;
c=3.4/b;
d=12.8+a;
a=-b;
}