Programowanie.doc

(41 KB) Pobierz
Wykład C/C++

1.      Zdefiniować stałą całkowitą typu int o wartości 65 w postaci:

a) ósemkowej,              b) szesnastkowej.

 

2.      Zdefiniować stałą całkowitą typu long int o wartości 100 w postaci:

a) ósemkowej,              b) szesnastkowej.

 

3.      Zdefiniować stałą typu char o wartości 65 w postaci:

a) ósemkowej,               b) szesnastkowej.

 

4.      Podać wartość dziesiętną stałej const char z = ‘\x20’.

 

5.      Podać wartość dziesiętną stałej całkowitej 041L.

 

6.      Deklaracja unsigned x jest:

a)      deklaracją zmiennej typu całkowitego,

b)     deklaracją zmiennej typu rzeczywistego,

c)      deklaracją zmiennej typu wskaźnikowego.

 

7.      Podać wartość stałej: 0111.

 

8.      Podać wartość i typ stałej: 1.2E2f.

 

9. Podać wartości i typy wyrażeń: a) 5.0/2;                            b) 5/2;                            c)5%4/2  .

 

10. Niech int i=2. Oblicz wartości wyrażeń:  a)  k = i << 5;                            b) k=i+3>>1.

 

11. Oblicz wartości wyrażeń: a) 4<=4;              b) 7>5<2;              c) !-1.0 .

 

12. Podać wartość dziesiętną oraz wartość szesnastkową zmiennej int k = ~11 .

 

13.    Które z wyrażeń są poprawne jeśli zdefiniowano float x = 1.0f  ?

a) ~x+1;                            b) ++x – 1;              c)  ++(x+1);                            d) ~(x+1);              e) ++ x++ .

 

14.    Jakie wartości przyjmują wyrażenia w zależności od x i y ?

a) (x>y) + (x<y);                            b) (x>y) – (x<y)  .             

 

15. Uprościć wyrażenia:  a) k & (i | ~i);               b) k^~0;              c) k - k%8  (odp. k & -8) .

 

16. Obliczyć wartości wyrażeń: a) 5>0 && 3>1 && 4<=4;               b) !6 || !0 && 2 + 3 >4 .

 

17. Zadeklarowano trzy zmienne:  const int *x;   int * const y=&k;   const int* const z=&k.

      Które z poniższych zdań są prawdziwe?   

a)      wartość zmiennej x nie może być zmieniana;

b)     wartość zmiennej y może być zmieniana;

c)      wartość zmiennej z może być zmieniana;

d)     wartość zmiennej wskazywanej przez x może być zmieniana;

e)      wartość zmiennej wskazywanej przez y może być zmieniana;

f)       wartość zmiennej wskazywanej przez z może być zmieniana.

18. Które z wywołań makrodefinicji #define max(a,b)(a)<(b)?(b):(a) obliczającej max

      dwóch liczb całkowitych i,j prowadzi do błędnych wyników ?

a)      max(i,j);

b)     max(i*j, i+j);

c)      max(--i,--j);

d)     max(i+1, j-2).

 

19. Podać wartości zmiennych int x=1, y=2 po wykonaniu następującego fragmentu

      programu:

       if (x>1)

            if (++y < 3)

             { x =7;  y = 8; }

       else

           { x = 2; y=3; }

 

20. Podać formaty umożliwiające wyprowadzenie za pomocą funkcji printf danych typu:

      a) unsigned  long;     b) long double.

 

21. Podać definicję:  a) wskaźnika tablicy 5 wskaźników do zmiennych typu char;

       b) tablicy 7 wskaźników funkcji o jednym parametrze typu int i wartości typu double.

 

22. Nazwać zdefiniowane zmienne:  a) void **A;                b) int * B[4];

                                                           c) int (*C)[2][3];         d) int  (*  (* D)(int, float) )[3].

 

23. Zakładając int c, a = 1, b = 2 podać  wartość wyrażenia c = (++a)++ + b++

      oraz wartości a i b. 

 

24. Podać wartość zmiennej x:  a)  float x = 4 / 3;   b) double x  =  5.0 / 4.

 

25. Jakie wartości zostaną wyprowadzone na ekran przez następujący fragment programu ?

      void f (int &i)

     { static int k=2;  for (i;  i<k; i++) printf(”%3d”, i);  k++; }

 

      void main() { int i = 0;  f(i);  f(i); }.

 

26. Zakładając int w, x = 1, y = 2, podać wartości w, x, y po obliczeniu wyrażenia:

      w = x++ < y ? x==y ? x++ : y++ : ++x.

 

27. Zakładając int w, x = 1, y = 2 podać wartości w, x, y po obliczeniu wyrażenia:

      w = ( y +=2, x+=1, y = (y++ >x), x << y ). 

 

28. Zakładając double x oraz int k zapisz w języku C++ warunki:

      a)  x < -10  lub  x > 10;         b)  k jest podzielne przez 2 lub przez 5.

 

29. Przyjmując const int n=5;  int x=1, y;  void *v = &x;   const int *r , które z podanych

       wyrażeń są poprawne.    a) r = &x;                      b) v = (++r)++;

                                              c) y = * (int *) v;     d) int *const s = &x;    e) y = *s++.

 

30. Podać wartości przypisane identyfikatorom A, B, C, D, E przez definicję

      enum dat { A=2, B, C, D=-2, E }.

 

31. Podać zawartości tablic A i B zainicjowanych w sposób następujący:

      a)  int A[3][3] = { {1}, 2, 3, 4, 5 };              b)  int B[][4] = { {1,2}, {3}, {4}, 5, 6 }.

 

32. Zapisać za pomocą operatora indeksowania [ ] następujące wyrażenia,

      gdzie x, y są wskaźnikami, natomiast  i, j są typu int:

      a)  *(x + i + j);                            b)  * *(y + i);                            c)  x + i + j.

 

33. Zakładając  double x = -2.5;   double *v = &x,  podać wartość zmiennej w zdefiniowanej

      jako:   a)  int w = *v + 3;                            b)  int w = !(!x + 1) + 1.

 

34. Zakładając int a = 1, b = 2, c = 3 podać wartości a, b, c po wykonaniu instrukcji:

      a)  if (b > a  &&  b < c) if  (b)  c=a+b+1; else c+=a+b; else a=b;

      b)  if (a++ -b) { c=a+b;  b+=a+c; } else  if  ( !(a-2) ) { b+=a;  c=a+b; } else c=a+2.

 

35. Dla wskaźnika (0xA0E1: 0x4321):

      a) wyznaczyć adres fizyczny dla trybu rzeczywistego;              b) unormować wskaźnik.

 

36. W trybie chronionym dokonano alokacji bloku pamięci o rozmiarze 199 KB.

      Adres początku bloku zapamiętano we wskaźniku void far * p. Zakładając, że jeden

      selektor adresuje maksymalnie bloki po 64 KB oraz p = (800 : 0) (selektor =800; offset=0)

      podać wartości utworzonych selektorów i rozmiary adresowanych przez nie bloków.

 

37. Podać wartość zmiennej  int k, jeśli zdefiniowano int *s, A[8];    long *q;    char *v

      oraz  sizeof(long) = 4, sizeof(int) = 2, sizeof(char) = 1:

      a)  v = (char *) &A[3];   k = v – (char *) A;

      b)  q = (long *) A + 4;    k = (char *) q –  (char *) A.

 

38. Dla programu c:\prog.exe, w którym zdefiniowano void main( int n, char *v[] ) podać

      zawartości: n, *v[0], *v[1], ...., *v[n-1] dla wywołania prog To-jest-C++.

 

39. Zakładając, że zdefiniowano:      const int N=5;

      struct tosoba { char naz[20];  float pensja;  long id; };    tosoba Firma[N].

      Opracować funkcję obliczającą liczbę osób, których pensja należy do przedziału [ a, b ].

      Dany jest prototyp funkcji:  int  LZ(tosoba *v, int N, float a, float b). Wywołać funkcję.

 

40. Zakładając, że zdefiniowano:      const int N=5;

      struct tosoba { char naz[20];  int dzien, mies, rok;  long id; };

      tosoba Osoby[N]. Opracować funkcję obliczającą liczbę osób, których data urodzenia

      należy do przedziału [ a, b ], gdzie daty a, b są postaci: 10000L*rok + 100*mies + dzien.

      Dany jest prototyp funkcji:  int  LD(tosoba *v, int N, long a, long b). Wywołać funkcję.  

 

41. Dana jest definicja unii: union H { int x; char y; };

      Które z poniższych instrukcji są poprawne w języku  C++?

a)      H p = {‘A’};

b)     union H p = { 1 };

c)      H union p = {1};

d)     union H p { 1, ‘A’}.

 

 

...
Zgłoś jeśli naruszono regulamin