Egzamin z INFORMATYKI poprawka 2005r. sem. II
Zad. 1
W który fragmencie kody programista sięgnął do niedozwolonego miejsca w pamięci.
Odp.
int *p=new int;
int *q=p;
delete p;
*q=10;
Zad. 2
Wartość początkowa Z=3. Podaj wartość zmiennej Z po wykonaniu się programu dla
F1(Z).
void F1(int &x){ x=F2(x)+F2(x); } int F2(int y){ y*=3; return y+2; }
odp. 22
Zad. 3
Ile razy zostanie wywołany konstruktor kopiujący?
Jabłko x; Jabłko y=F(F(x));
Jabłko F(Jabłko x)
{
Jabłko v(x);
return v;
}
Odp. 7 razy
Zad. 4 Który kod pozwoli odwiedzić wszystkie elementy tablicy ??
Odp. Link *temp=head ; while(temp) temp=temp->next;
Zad. 5
Drzewo zostało zbudowane z liter, którą metodą jesteśmy w stanie zbudować słowo INFORMATYKAEIT1
Odp. Inorder
Zad. 6
Programista - zamierza napisać funkcję, która sprawdza czy dwie listy zawierają dokładnie taką liczbę elementów i są one identyczne rozlokowane. Uzupełni dwa brakujące elementy.
bool ListEg(ListNode *L1, List *L2)
{
if(L1= = NULL && L2 = =NULL)return true;
if((L1= = NULL && L2 ! =NULL)||( L1!= NULL && L2 = =NULL)) return false ;
if(……………………) return false ;
return …………………….. ;
Odp. L1->data != L2-> data ; test(L->next, L2->next);
Zad. 7
Lista według schematu z zadania 4. Zbudowana z elementów
Head->5->4->3->2->1. Wywołano funkcje Show(Head) jaki będzie takiego wywołania
void show(link *L)
{
if(L!=NULL) show(L->next);
cout<< L->data;
Odp. Błąd wykonania.
Zad. 8
Było podane drzewo jak będzie wyglądać kolejność odwiedzania wierzchołków.
void order(Node *N)
{
if(N){
order(N->right)
cout<< N->data;
order(N->left);
}
Odp. 3 5 2 8 5 3 6 1 7 4
Zad. 9 Drzewo posiada 100 wierzchołków.Ile będzie miało liści ( lub warst) nie pamiętam zadania :((
Odp. ...
Zad. 10
Co zwróci poniższy program ??
int fun(tree *L)
{
If(L= =NULL) return 0;
return (L->right + L->left);
}
Odp. Zawsze 0;
Zad. 11
W jakim wypadku nastąpi błąd ponizszej funkcji. Last jest wskaźnikiem na ostatni element listy .
void Addend(int k)
{
Link *temp = New link;
temp-> data=k;
if(last!=NULL) last->next=temp;
else last=temp;
}
Odp.
Zad. 12
Jaki bedzie rezultat wykonania poniższego programu dla rysunk.
Void Travers(Node *T)
{
if(T= = NULL) return ;
Stack.push(T->data);
Travers(T->left);
Stack.pop();
Stack.push(T->data);
Travers(T->right);
}
Odp.
Zad. 13 Jakie warunki muszą zostać spełnione, dla cyklu Hamiltona
Odp. Nie ma takich warunków.