test cpp, wsiz, sem 1

[ Pobierz całość w formacie PDF ]
1 Co wydrukuje instrukcja
if(x>y) printf(''A''); else printf(''B'');
gdy x=5, y=6?
Odpowiedź:
Napis ''B''
2 Ułóż elementy definicji funkcji w kolejności takiej, w jakiej występują one w definicji
Pozycja 1 –>
Typ wyniku funkcji
Pozycja 2 –>
Nazwa funkcji
Pozycja 3 –>
Lista parametrów
Pozycja 4 –>
Instrukcja kodująca algorytm
3 Od wywołania jakiej funkcji zaczyna wywoływać się program?
Odpowiedź:
od funkcji main
4 Dopasuj opisy do elementów instrukcji
for(i=0; i<n; i++) S+=A[i];
Jest wykonywana po każdej iteracji –>
i++
Gdy prawdziwe (różne od zera) nakazuje wykonać iterację –>
i<n
Wykonuje się jeden raz na początku pętli –>
i=0
Jest powtarzaną instrukcją –>
S+=A[i]
5 Dopasuj nazwy strumieni i obiektów strumieniowych do opisów:
Obiekt strumieniowy wyprowadzający dane do strumienia stderr –>
cerr
Strumień wyjściowy skojarzony domyślnie z ekranem –>
stdout
Obiekt strumieniowy wyprowadzający dane do strumienia stdout –>
cout
Strumień wejściowy skojarzony domyślnie z klawiaturą –>
stdin
Strumień wyjściowy skojarzony na stałe z ekranem –>
stderr
6 Dopasuj opisy pól konwersji do typów argumentów funkcji
printf
char* (wskaźnik na znak) –>
%s
double –>
%f
int –>
%d
char (typ znakowy) –>
%c
7 Połącz instrukcje w języku C z interpretacją wyniku S
S=0; for(i=0; i<n; i++) S+=A[i]; –>
Suma n liczb A[0]+A[1]+...+A[n-1]
S=A[0]; for(i=1; i<n; i++) if(S>A[i])S=A[i]; –>
Minimum z n liczb A[0], A[1],...,A[n-1]
S=0; for(i=0; i<n; i++) if(A[i]>0) S+=A[i]; –>
Suma tylko dodatnich liczba z A[0], A[1],...,A[n-1]
S=A[0]; for(i=1; i<n; i++) if(S<A[i])S=A[i]; –>
Maksimum z n liczb A[0], A[1],...,A[n-1]
8 Instrukcja
for(i=0; i<n; i++) S+=A[i];
nakazuje wykonać instrukcję
S+=A[i];
dla:
Odpowiedź:
i=0,1,2,...,n-1
9 Jakie wartości zmiennej
n
pozwala wprowadzić instrukcja
do scanf(''%d'', &n); while (n<2 || n>50);
Odpowiedź:
Od 2 do 50 włącznie
10 Zaznacz prawdziwe zdania, jeśli zdefiniowano
double Y[50]
:
Odpowiedź:
Y+5 wskazuje na zmienną Y[5]
Odpowiedź:
Y jest stałą wskazującą na zmienną Y[0]
11 Dlaczego argumentami funkcji scanf nazwy prostych zmiennych poprzedza się znakiem
& -
np. scanf(''&d'',
&n
)?
Odpowiedź:
Aby do funkcji przekazać wartość wskaźnika na zmienną
12 Ile zmiennych typu double tworzy definicja
double X[100];
i jak te zmienne należy indeksować?
Odpowiedź:
100 zmiennych indeksowanych od 0 do 99
13 Dopasuj słowa kluczowe do opisów:
W instrukcji if poprzedza instrukcję wykonywaną, gdy warunek if okazuje się fałszywy (zerowy)–>
else
Typ całkowity (liczba całkowita) –>
int
Poprzedza warunek powtarzania instrukcji w instrukcji pętli (repetycyjnej) –>
while
Typ pusty – funkcja bez wyniku –>
void
Typ rzeczywisty(liczba z ułamkiem) –>
double
Rozpoczyna instrukcję wyboru z warunkiem typu prawda/fałsz (zero/nie zero) –>
if
14 Zaproszenie do wprowadzania danych wysyłamy używając funkcji:
Odpowiedź:
fprintf(stderr,...
15 Dopasuj specyfikatory klasy pamięci i kwalifikatory do ich interpretacji.
Zmienna, która została zdefiniowana w innej części programu (np. w innym pliku) –>
extern
Definicja nazwy typu –>
typedef
Zmienna przeznaczona do umieszczenia w rejestrze procesora –>
register
Zmienna, która powstaje i znika w zależności od potrzeby –>
auto
Zainicjowana zmienna, której wartości nie można zmieniać –>
const
Zmienna, która istnieje przez cały czas pracy programu –>
static
16 Które napisy są stałymi rzeczywistymi w C lub C++?
Odpowiedź:
2e-3
Odpowiedź:
0.05F
17 W jakim systemie można pisać stałe całkowite?
Odpowiedź:
dziesiętnym
Odpowiedź:
ósemkowym
Odpowiedź:
szesnastkowy
18 Wartością stałej tekstowej ''Przykład'' jest:
Odpowiedź:
Wskazanie początkowego znaku tekstu – znak P
19 Dopasuj słowa kluczowe i operatory do wyjaśnień.
Umieszcza w pamięci wszystkie swoje zmienne jedna na drugiej w tym samym obszarze pamięci –>
union
Lewym argumentem tego operatora jest zmienna strukturowa –>
. (kropka)
Umieszcza w pamięci wszystkie swoje zmienne jedna po drugiej –>
struct
Lewym argumentem tego operatora jest wskaźnik na zmienną strukturową –>
-> (strzałka)
20 Zaznacz poprawne definicje tablic z tekstami.
Odpowiedź:
char *T[]={''Tekst 1'', ''Tekst 2''};
Odpowiedź:
char T[10]=''Tekst'';
Odpowiedź:
char T[]=''Tekst'';
21 Które napisy są
stałymi całkowitymi
w C lub C++
Odpowiedź:
0x12
Odpowiedź:
'A' (znak A w apostrofach)
22 W wyliczeniu
enum Figura {Kolo, Trojkat = 3, Kwadrat, Czworokat};
zdefiniowano wartości Kolo, Trojkat, Kwadrat, Czworokat. Jakie to są wartości?
Odpowiedź:
Kolo=0, Trojkat=3, Kwadrat=4, Czworokat=5
23 Ile bajtów zajmuje tekst ''\n\tANSI-C\n'' ?
Odpowiedź:
10
24 Zaznacz poprawne definicje inicjujące tablice
Odpowiedź:
int M[][4]={{1,2},{0},{3,4,5,6}};
Odpowiedź:
int K[]={3,7,2,1};
25 Zdefiniowano strukturę
Osoba
, zmienną
A
i wskaźnik
p
na tę zmienną:
struct Osoba {
. . . //tu jakieś dane
Data D;
//gdzie
struct Data {short d,m,r; };
Osoba *ojciec, *matka;
} A, *p=&A;
W zmiennej
A
zawarto Twoje dane osobowe. Które instrukcje wyznaczą poprawnie rok urodzenia Twojego ojca?
Odpowiedź:
R=A.ojciec->d.r
Odpowiedź:
R=p->ojciec->d.r
26 Dopasuj definicje parametru
k
funkcji
Fun
W instrukcji
Fun(n);
funkcja posługuje się zmienną
n
używając do niej nazwy
k
–>
Fun(int &k)
-,,-
funkcja posługuje się zmienną
k
tak jak nazwą tablicy –>
Funk(int k[])
-,,-
funkcja posługuje się zmienną
n
używając do niej nazwy
k
, ale nie wolno jej zmieniać wartości tej zmiennej –>
Fun(const int & k)
W instrukcji
Fun(n+5);
funkcja przypisuje własnej lokalnej zmiennej
k
wartość
n+5
–>
Fun(int k)
27 Dopasuj określenia:
Instrukcja powodująca wyjście z funkcji –>
return
Instrukcja, która powoduje wyjście z instrukcji powtarzania (for, do-while oraz while) –>
break
Instrukcja nakazująca natychmiastowe przejście do następnej iteracji w instrukcji powtarzania –>
continue
Etykieta, do której nastąpi skok w instrukcji
switch
, gdy na liście etykiet
case
nie znaleziono żądanej wartości całkowitej –>
default
28 Którym elementom tablicy
A
poniższe instrukcje nadadzą wartości?
k=3;
A[k++]=8;
A[++k]=12;
Odpowiedź:
A[3]=8, A[5]=12
29
double Funkcja(int n) {
Jaką instrukcję może tu zawierać poprawna funkcja rekurencyjna (jeżeli jest to jedyna brakująca instrukcja)?
return S;
}
Odpowiedź:
if(n>1) S=n*Funkcja(n-1); else S=1;
Odpowiedź:
S=n>1 ? n*Funkcja(n-1) : 1;
30 Dopasuj wyrażenie do określeń zakładając, że
x,y
są zmiennymi typu
double
Wartość bezwzględna z x –>
x<0 ? -x:x
Maksimum z {x,y} –>
x>y ? x:y
Odległość (nieujemna różnica) między x a y –>
x>y ? x-y : y-x
Minimum z {x,y} –>
x<y ? x:y
31 Zaznacz 2 reguły, które określają kolejność wykonywania operacji (opracowywania operatorów).
Z dwóch sąsiadujących operatorów najpierw opracowuje się operator:
Odpowiedź:
z lewej lub prawej strony zależnie od łączności (jeśli priorytety są jednakowe)
Odpowiedź:
o wyższym priorytecie (jeśli ich priorytety są różne)
32 Zdefiniowano
int k=29, n=10;
oraz
double x,y;
Jakie wartości otrzymają zmienne x oraz y po wykonaniu instrukcji
x=k/n;
y=(double)k/n;
Odpowiedź:
x=2.0, y=2.9
33 Zakładając, że zmienna K jest całkowita i nieujemna, dopasuj wyrażenia do określeń:
Wartość K/8(8=2 do potęgi 3) –>
K>>3
Słowo mające trzy ustawione bity na pozycjach 3,4 i 5 –>
7
Wartość K z wyzerowanymi trzema najmłodszymi bitami –>
(K>>3)
Wartość 8*K (8=2 do potęgi 3) –> K
34 Dopasuj wyrażenia do opisów warunków logicznych
x równe zeru lub równe 80 –>
x== 0 || x==80
x różne od zera i różne od 80 –>
x!=0 && x!=80
0 < x < 80 –>
x>0 && x<80
x < 0 lub x > 80 –>
x<0 || x>80
35 W programie
Prog
zdefiniowano
int main(int argc, char *argv[])
Linia wywołania programu ma postać...
\Prog.exe 12 dane wyniki
Jaką wartość otrzyma zmienna
argc
i zmienna
argv[1]
?
Odpowiedź:
argc=4, argv[1] wskazuje na tekst ''12''
36 Dopasuj określenia
Zależnie od warunku wykonuje jedną z dwóch instrukcji –>
if-else
Pętla, która musi co najmniej jeden raz wykonać jedną z dwóch instrukcji –>
do-while
Realizuje skok do instrukcji poprzedzonej wybraną etykietę
case
lub
default
zależnie od wartości całkowitej –>
instrukcja switch
Średnik, którego nie poprzedza wyrażenie –>
instrukcja pusta
Wyrażenie zakończone średnikiem –>
instrukcja
37 Co obliczają następujące instrukcje?
S=0;
for (i=0; i<n; i++) S=x*S+A[i]; –>
wartość wielomianu
S=A[0];
for (i=0; i<n; i++)
if (S>A[i]) S=A[i]) –>
Minimum z A[0],A[1],...,A[n-1]
S=0;
for (i=0; i<n; i++) S+=A[i]; –>
Suma A[0]+A[1]+...+A[n-1]
S=A[0];
for(i=0; i<n; i++)
if (S<A[i]) S=A[i]) –>
Maksimum z A[0],A[1],...,A[n-1]
38 Dopasuj, jakie wyrażenia dają w wyniku opisane wartości, jeśli zdefiniowano:
double A[10][8], (*p)[4], B[]={2,3,5,7,9,4,1};
Rozmiar tablicy 4 zmiennych typu double –>
sizeof(p[0])
Rozmiar zmiennej wskaźnikowej –>
sizeof(p)
Rozmiar tablicy w bajtach –>
sizeof(B)
Rozmiar 8 zmiennych typu double –>
sizeof(A[0])
Liczba elementów tablicy –>
sizeof(B)/sizeof(B[0])
39 Jeżeli zdefiniowano
double A[100], p, B[20][4], (*s)[4];
i przypisano
p=A;
s=B;
to na co wskazują
p+1
oraz
s+1
?
Odpowiedź:
s+1 wskazuje na wiersz B[1][0],...,B[1][3]
Odpowiedź:
p+1 wskazuje na A[1]
40 Czym są nazwy A i B, jeżeli zdefiniowano
double A[50], B[8][4];
Odpowiedź:
A – stała wskazująca na pierwszy element tablicy - A[0]
Odpowiedź:
B – stała wskazująca na pierwszy wiesz tablicy (4 zmienne)
41 Dopasuj definicje wskaźników do opisów
Wskaźnik na tablicę 8 zmiennych typu int –>
int (*P)[8]
Wskaźnik na zmienną typu int –>
int *p
Wskaźnik na tablicę 8 wskaźników na zmienne typu int –>
int *(*P)[8]
Wskaźnik na wskaźnik na zmienną typu int –>
int **p
Tablica 8 wskaźników na zmienne typu int –>
int *P[8]
42 Jeśli
P
i
S
są wskaźnikami, to kiedy różnica
P-S
ma sens i co daje w wyniku?
Odpowiedź:
P i S muszą wskazywać elementy tej samej tablicy
Odpowiedź:
P-S= ile elementów dalej wskazuje P niż S
43 W programie zdefiniowano
int n;
i wczytano wartość do zmiennej
n
. Jak poprawnie przydzielić programowi pamięć na tablicę
n
zmiennych typu
double
?
Odpowiedź:
double *A; A=new double[n];
Odpowiedź:
double A; A=(double)calloc(n, sizeof(*A))
44 Otwarto plik tekstowy zawierający tylko poprawnie zapisane liczby rzeczywiste. Jaki będzie efekt wykonania instrukcji
for (n=0; fscanf(fp,
''%lf'', &x)==1; n++);
jeśli zmienne
n, fp, x
są kolejno typu int, FILE*, double?
Odpowiedź:
Plik ustawi się w pozycji końcowej
Odpowiedź:
Wartość n mówi, ile liczb jest w pliku
45 Drugim argumentem funkcji
fopen
jest tekst, który określa tryb otwarcia pliku. Dopasuj teksty do podanych warunków otwarcia.
Otwierany plik jest przewijany na koniec (gdy istnieje) lub jest kreowany –>
''a''
Otwierany jest plik do edycji (odczytu i zapisu) danych binarnych –>
''rb+''
Otwierany plik musi istnieć –>
''r''
Otwierany plik jest kasowany, jeśli istnieje, a następnie jest kreowany jako pusty –>
''w''
Otwierany jest plik do dopisywania danych binarnych –>
''ab''
46 Czym są wyrażenie A, *A, A[i], jeśli zdefiniowano
double A[50][8];
Odpowiedź:
A[i] – stała wskazująca na zmienną A[i][0]
Odpowiedź:
*A – stała wskazująca na zmienną A[0][0]
Odpowiedź:
A – stała wskazująca na pierwszy wiersz tablicy A, czyli na 8 zmiennych – A[0],...,A[7]
47 Jeśli zdefiniowano
double (*F)(double);
oraz przypisano
F=sin
, to suma
F+1
:
Odpowiedź:
Jest niepoprawna, bo do wskaźnika F, nie można dodać liczby całkowitej
48 Który ciąg instrukcji nada zmiennej
n
wartość równą ilości liczb w pliku binarnym skojarzonym ze strumieniem
fp
?
Odpowiedź:
fseek(fp,0,2); n=ftell(rp)/sizeof(double);
49 Plik binarny poprawnie otwarty instrukcją
FILE*fp=fopen(nazwa,''rb'');
zawiera dane typu double. Jak poprawnie wczytać te dane do tablicy
zdefiniowanej
double X[100];
?
Odpowiedź:
n=fread(X, sizeof(X[0]), 100,fp);
50 Dopasuj definicje wskaźników do definicji tablic tak, aby arytmetyka na wskaźniku była zgodna z arytmetyką na nazwie tablicy (aby wskaźnik
wskazywał na taki sam typ, na jaki wskazuje nazwa tablicy)
double **q; –>
double *D[40];
double (*s)[40]; –>
double C[8][40];
double (*r)[8]; –>
double B[40][8];
double *p; –>
double A[40];
51 Zdefiniowano wskaźnik na funkcje:
double (*f)(double);
Które operacje na wskaźniku
f
są dozwolone i
nie
wygenerują błędu kompilatora?
Odpowiedź:
f(x) (wywołanie wskazanej funkcji)
Odpowiedź:
f==NULL (przyrównanie do wskaźnika zerowego)
Odpowiedź:
(*f)(x) (wywołanie wyłuskanej funkcji)
52 W programie zdefiniowano
int n;
i wczytano do zmiennej
n
. Jak poprawnie przydzielić programowi pamięć na tablicę typu
double
ułożonych w
n
wierszach i 4 kolumnach?
Odpowiedź:
double (*A)[4]; A=(double(*)[4])calloc(n, sizeof(*A));
Odpowiedź:
double (*A)[4]; A=new double[n][4];
53 Uniwersalny wskaźnik
p
zdefiniowany
const void *p;
przechowuje wskazanie na zmienną wskaźnikową wskazującą na początkowy znak tekstu, czyli na typ
char
. Jak za pomocą tego wskaźnika
zainicjować definiowaną zmienną wskaźnikową, aby wskazywała ona początkowy znak tego tekstu?
Odpowiedź:
char s=*(char **p);
54 Po wczytaniu liczby wierszy i liczby kolumn tablicy
A
do zmiennych
n
oraz
m
należy dokonać alokacji pamięci tak, aby zmienna
double
w
i
-
tym wierszu i
j
-tej kolumnie była wynikiem wyrażenia
A[i][j]
. Jak zaalokować taką tablicę? (W odpowiedziach pominięto rzutowania typów
wskaźników)
Odpowiedź:
double **A=calloc(n, sizeof(*A)); for(i=0; i<n; i++) A[i]=calloc(m, sizeof(**A));
55 Jeśli
P
i
S
są wskaźnikami, to kiedy relacja
P<S
ma sens i co daje w wyniku?
Odpowiedź:
P<S, gdy P wskazuje na element o mniejszym indeksie niż S
Odpowiedź:
P i S muszą wskazywać na elementy tej samej tablicy
56 Zdefiniowano wskaźnik uniwersalny
void *P;
Które operacje na wskaźniku
P
są dozwolone i nie wygenerują błędu kompilatora?
Odpowiedź:
(double*)P (rzutowanie na typ double)
Odpowiedź:
P==NULL (przyrównanie do wskaźnika zerowego)
57
Plik binarny
zawiera liczby typu
double
. Jak poprawnie wczytać te liczby do tablicy
A
, która zawiera
500
zmiennych typu double (nie wolno
wczytać więcej niż 500 liczb) i nadać zmiennej
n
wartość równą ilości wczytanych liczb?
Odpowiedź:
n=fread(A, sizeof(*A), 500, fp);
58 Aby funkcja
qsort
mogła posortować teksty, należy posortować tablicę wskaźników na początkowe znaki tych tekstów. Argument
s
funkcji
porównującej jest typu
const void *s
i wskazuje na element sortowanej tablicy wskaźników. Jak należy zainicjować wskaźnik
ps
, aby wskazywał na
początkowy znak rozważanego tekstu?
Odpowiedź:
char ps=(char**)s
59 Uniwersalny wskaźnik
p
zdefiniowany
const void *p;
przechowuje wskazanie zmiennej całkowitej typu
int
. Jak za pomocą tego wskaźnika
zainicjować definiowaną zmienną całkowitą?
Odpowiedź:
int k= (int*)p;
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • shinnobi.opx.pl