2006
♣ (3)Projekt zawiera pliki x.cpp oraz y.cpp. Chcemy umieścić w obu tych plikach zmienne int a; w _______________________________________________________ ____________
XI-30
taki sposób, aby program prawidłowo się kompilował, oraz aby mogły być one używane Imię i Nazwisko
Nr albumu
INF1
Założenia wstępne { składnia: C, C++; środowisko docelowe: 32-bitowe }
niezależnie (tzn. modyfikacja zmiennej a w pliku x.cpp nie może wpłynąć na wartość zmiennej a
♣ (2)Jaka będzie wartość sizeof(t), gdy char t[] = {‘N’,‘a’,‘p’,‘i’,‘s’}; ? Odp.: _______________
widzianej się w pliku y.cpp)
♣
x.cpp
y.cpp
(6)Napisz, jakie są dziesiętne wartości tych zmiennych (wszystkie zmienne są ypu int).
a = 012;
a ==
p = 2/3;
p ==
b = 1, 2, 3;
b ==
q = 1|2;
q ==
static int c = 123;
c ==
r = 0x22;
r ==
♣ (3)Niech float x = 1e20, y = 1e-20; Jakie wyniki wyświetlone zostaną po wykonaniu:
♣ (2)char t[] = {"abcdef”}; char *x = t; x++; Jaką wartość ma x[2] ? Odp.: ________
a. printf("%f", ((y+x)-x) / y);
♣
b. printf("%f", (y+(x-x)) / y);
(2)Niech char s[5]; Czy można wykonać a) s++; [ Tak / Nie ] b) s+1 [ Tak / Nie ]
♣
♣ (2)Przekształć nieokreślony wskaźnik void * v; tak, aby stał się wskaźnikiem na konkretny typ: (2)Jakich potencjalnych problemów można się spodziewać w poniższym przypadku:
char *d = _________________________
char s[5]; sprintf(s, "Ala ma kota");
♣
Odp.: _________________________________________________________________________
(3)Korzystając z instrukcji ?:, zapisz wyrażenie o wartości bedącej mniejszą z liczb x i y.
♣
(3)Popraw powyższy fragment kodu tak, aby rozwiązać ten problem.
Odp.: _________________________________________________________________________
♣
♣ (4)Podaj przykład rekurencji (zapisz kod funkcji w języku C).
(4)Dana jest struktura x. Jakie wartości może mieć sizeof(x)? _______ Od czego to zależy?
struct x {
Odp.:
char s; short c; int i;
};
♣
♣ (3)Dane są zmienne int a oraz int b. Zapisz fragment kodu, który zamieni ich wartości (tzn. w a (4)Plik naglowek.h jest dołączany w 2 modułach pewnego projektu. Które wiersze nie mogą znajdzie się wartość z b, a w b znajdzie się wartość z a).
znaleźć się w pliku naglowek.h?
1. unsigned short int x;
3. void f() {}
2. extern int p;
4. #define n 1000
♣
(3)Podaj przykład przeciążenia funkcji o nagłówku double f(char x);
♣ (2)Utwórz dynamicznie tablicę liczb typu int, zawierającą 100 elementów.
♣
(3)Popraw poniższy kod w taki sposób, aby poprawnie wyświetlona została wartość zmiennej x: char *x = "12345"; printf("%g", x);
♣ (2) W której architekturze komputera: a) Oxfordzkiej b) Harvardzkiej pamięć kodu jest Po poprawce: _______________________________________________________________
♣
oddzielona od pamięci danych? Odp.:____
(3)Jakie wartości zostaną wyświetlone? double d = 1.0; for(; d<3.0;d+=1.0) printf("%g", d);
♣ (2)Język C jest językiem a) interpretowanym b) kompilowanym. Odp:_______
Odp.: __________________________________________
♣
♣
(2)void main() { Uzupełnij kod tak, aby to zdanie stało się komentarzem. }
(2)Pewien student umieścił w swoim programie poniższy fragment kodu. Jakie mogą być
♣ (2)Podaj przykład poprawnego identyfikatora języka C. Odp.:___________________
potencjalne (negatywne) skutki wykonania tego programu?
♣ Niech double eps = 1.0. W którym przypadku zmienna eps osiągnie mniejszą wartość?
char *t;
a) do eps = 0.5*eps; while (eps + 1 > 1);
scanf("%s", t);
♣
b) do eps = 0.5*eps; while (eps > 0);
(3)Popraw powyższy framgent kodu tak, aby rozwiązać ten problem.
♣ (3)Zapisz nagłówek funkcji, która może być podstawiona pod wskaźnik funkcyjny f: Odp.:_________________________________________________________________________
♣
double* (*f)(char);
(3)void f(int x) { x++; } int y = 5; f(y); Ile wynosi y? Odp.:________
Odp.:___________________________________________________________________
♣ (2)Liczbę 030 zapisz w systemie dwójkowym. Odp.: ______________________
♣ (3)Ile plusów (+) pojawi się na ekranie po wykonaniu tego fragmentu kodu?
♣ (3)Podaj przykład jawnego rzutowania typów w języku C.
#define N(x) (sizeof(x)/sizeof(x[0]))
♣ (3) int a=3, b = 2; int x = a ? a++ : b++; Odp.: x wynosi ________________
char t[5] = "abc"; for(i=0; i<N(t); i++) printf("+");