1. За сите од следните тврдења заокружете вистинито ( Т ) или лажно ( F )
(секој точен одговор носи 1 поен)
a) C++ функцијата main е void функција. T F
b) void функција користи само референцни параметри. T F
c) Функција која враќа вредност, враќа само една вредност на функцијата повикувач. T F
d) Дереференцирањето на pointer променлива ја враќа мемориската адреса на променливата на која покажува pointer променливата.
T F
e) Повикувањето на void функција се врши од издвоена инструкција во функцијата повикувач, која го содржи името на функцијата и актуелните аргументи (ако постојат) во мали загради. T F
2. Што е излез од следниов програм (2 поени)
#include <iostream>
using namespace std;
void Fun2( float );
const int a = 3;
int b, c;
int main( )
{
b = 1;
c = 2;
Fun2(5.1);
cout << a << “ “ << b << “ “ << c;
return 0;
}
void Fun2( float c)
{
float b = 7.7;
cout << a << “ “ << b << “ “ << c << “ “;
}
a) 3 7.7 5.1 3 1 2 b) 3 7.7 2 3 1 2 c) 3 1 2 d) 3 7.7 2
3. Во повиканата функција треба да се користи параметар по вредност ако
протокот на податокот што се предава на параметарот е: (2 поени)
a) влезно-излезен.
b) влезен (од функцијата повикувач во повиканата функција).
c) излезен (од повиканата функција во функцијата повикувач).
d) двата понудени одговора а и b погоре.
e) двата понудени одговора b и c погоре.
4. Дадена e низа од 5000 елемента. Кој од програмските сегменти може да се користи да ги отпечати вредностите на beta[0], beta[2], beta[4] и т.н.
(Сите променливи се од int тип) (3 поени)
a. for (i = 0; i < 5000; i = i + 2)
cout << beta[i] << endl;
b. for (i = 0; i < 2500; i = i++)
cout << beta[2*i] << endl;
c. for (i = 0; i < 5000; i = i++)
cout << beta[++i] << endl;
d. сите три горепонудени одговори
e. Понудените одговори под a и b
5. Дадена декларација (3 поени)
struct Student
{
int id;
int age;
float gpa;
};
која инструкција е коректна за креирање и иницијализирање на променлива од тип Student:
Student.id = 2134; b) Student st1;
Student.age = 19; st1.id = 2134;
Student.gpa = 7.24; st1.age = 19;
st1.gpa = 7.24;
и двата понудени одговори d) ниту еден од понудените
под a и b се коректни одговори не е коректен
6. Дадени декларации: (4 поени)
struct Slog1
{
char ime1;
int broj1;
};
struct Slog2
{
char ime2;
int broj2;
};
Slog1 aSlog, bSlog;
Slog2 cSlog;
Која од следните инструкции на доделување е коректна:
aSlog = bSlog;
bSlog.ime1 = cSlog.ime2;
aSlog = cSlog;
првите два понудени одговори (a и b)
сите три претходно понудени одговори ( a, b и c)
7. Што е излез по извршување на програмскиот сегмент: (4 поени)
int arr[5], i;
for (i = 0; i < 5; i++)
{
arr[i] = i + 2;
if (i >= 3)
arr[i-1] = arr [i] + 3;
}
cout << arr[1];
a) 2 b) 3 c) 4 d) 8
8. Што е излез од следниот програмски сегмент: (5 поени)
int x = 2, sum, count = 0;
sum=1;
while(count++ <= 3)
{
sum +=x++;
cout<<sum<<" ";
}
4 8 13 19 b) 3 6 10
3 6 10 15 d) 4 8 13
9. Што е излез од следниот програмски сегмент: (5 поени)
int i;
for( i = 1; i <= 5; ++i )
{
cout << --i << " ";
i += 2;
}
a) 0 2 4 b) 1 3 5
c) 1 3 5 7 d) 0 2 4 6
10. Кој од понудените одговори за пренос на C++ низи како параметри е неточен (4 поени)
не е можно да се пренесе низа како вредносен параметар
кога декларираме низа како параметар во функција, не прикачуваме амперсанд (&) на типот на компонентите на низата
при извршување, базната адреса на низата се предава на функцијата
последниот (најголем) индекс на низата е еднаков со нејзината должина во декларацијата.
11. За дадениот програмски сегмент (4 поени)
char alpha[200];
char beta[200];
…
Copy_plus1(alpha, beta, 200); // Dodava 1 na site komponenti od beta i gi kopira
// komponentite od beta vo alfa
кој функциски heading од долу понудените е валиден:
void Copy_plus1( char arr1[ ], const char arr2[ ], int length )
void Copy_plus1( const char arr1[ ], const char arr2[ ], int length )
void Copy_plus1( char arr1[ ], char arr2[ ], int length )
void Copy_plus1( const char arr1[ ], char arr2[ ], int length )
12. За дадениот функциски heading (4 поени)
void GetNums( int howMany, float& alpha, float& beta )
кој не е валиден функциски прототип:
void GetNums( int howMany, float& alpha, float& beta );
void GetNums( int, float&, float& );
GetNums( int, float&, float& );
сите три понудени одговори се валидни
13. Дадена функциска дефиниција (5 поени)
void Twist( int a, int& b )
{
int c;
c = a * 2;
a = a + 3;
b = c + a;
}
Што е излез од следниот програмски сегмент кој ја повикува Twist (сите променливи се од тип int):
r = 1;
s = 2;
t = 3;
Twist(t, s);
cout << r << ‘ ‘ << s << ‘ ‘ << t << endl;
a) 1 2 6 b) 1 12 3 c) 1 12 6
d) 1 6 6 e) ниту еден од понудените одговори
14. (Екстра 10 поени)
Дадена низа од 1000 неподредени цели броеви. Да се напише програма која ќе ги подреди броевите по големина (почнувајќи од најмалиот кон најголемиот) и потоа ќе ја отпечати подредената низа на монитор по 10 броја во ред.