Który ciąg instrukcji nada zmiennej n wartość równą ilości liczb w pliku binarnym skojarzonym ze strumieniem fp? Wymierz odpowiedź

Podobne dokumenty
Podstawy programowania skrót z wykładów:

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Podstawy Programowania C++

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Biblioteka standardowa - operacje wejścia/wyjścia

Język ludzki kod maszynowy

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Zmienne, stałe i operatory

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Wstęp do wskaźników w języku ANSI C

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Różności w C++ Marek Pudełko

Język C zajęcia nr 11. Funkcje

Część 4 życie programu

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Podstawy programowania w języku C

2 Przygotował: mgr inż. Maciej Lasota

Programowanie strukturalne i obiektowe

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

1. Wprowadzanie danych z klawiatury funkcja scanf

Wskaźniki. Informatyka

Wstęp do programowania 1

Struktury, unie, formatowanie, wskaźniki

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

tablica: dane_liczbowe

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Podstawy programowania w języku C i C++

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem.

Pliki. Informacje ogólne. Obsługa plików w języku C

Argumenty wywołania programu, operacje na plikach

Podstawy Programowania Podstawowa składnia języka C++

Tablice (jedno i wielowymiarowe), łańcuchy znaków

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Wstęp do Programowania, laboratorium 02

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Wskaźniki w C. Anna Gogolińska

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Wskaźniki. Programowanie Proceduralne 1

Podstawy programowania w języku C++

Funkcje zawarte w bibliotece < io.h >

Języki programowania - podstawy

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Stałe i zmienne znakowe. Stała znakowa: znak

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Tablice, funkcje - wprowadzenie

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Instrukcje sterujące. Programowanie Proceduralne 1

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Pliki wykład 2. Dorota Pylak

Lab 9 Podstawy Programowania

Funkcje zawarte w bibliotece < io.h >

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

I - Microsoft Visual Studio C++

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

Programowanie w języku Python. Grażyna Koba

Języki i metodyka programowania. Wprowadzenie do języka C

Programowanie komputerowe. Zajęcia 4

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

C++ wprowadzanie zmiennych

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Transkrypt:

Ile bajtów zajmuje tekst "\tansi-c\n"? a. 9 b. 10 c. 8 d. 11 Niepoprawny Ocena dla tego zadania: 0/1. Zaznacz poprawne definicje inicjujące tablice a. int M[ ] [ 4 ] = { { 1, 2 }, { 0 }, { 3, Tablica o 3 wierszach i 4 kolumnach. 4, 5, 6 } }; b. int K[ 4 ] = { 3, 7, 2, 1, 6 }; Liczba wartości przekracza rozmiar tablicy! c. int M[ ] [ ] = { { 1, 2 }, { 0 }, { 3, Nieznany typ elementu tablicy (rozmiar wiersza)! 4, 5, 6 } }; d. int K[ ] = { 3, 7, 2, 1 }; Tablica 4 zmiennych. e. int M[ ] [ 4 ] = { { 1, 2 }, { 0 }, { 3, 4, 5, 6, 7 } }; Niepoprawny Ocena dla tego zadania: 0/1. Liczba wartości podanych do trzeciego wiersza przekracza jego rozmiar! Który ciąg instrukcji nada zmiennej n wartość równą ilości liczb w pliku binarnym skojarzonym ze strumieniem fp? fseek(fp, 0, 2); n=ftell(fp)/sizeof(double); for(n=0; fscanf(fp, %lf, &x)==1; n++); fseek(fp, 0, 2); n=ftell(fp); n=fseek(fp, 0, 2) - fseek(fp, 0, 0); double Funkcja(int n) { Jaką instrukcję może tu zawierać poprawna funkcja rekurencyjna (jeżeli jest to jedyna brakująca instrukcja)? return S; } if(n>1) S = n*funkcja(n-1); else S=1; S = n*funkcja(n-1); S = n>1? n*funkcja(n-1) : 1; for(s=1; n>1; n ) S*=n;

W wyliczeniu enum Figura { Kolo, Trojkat=3, Kwadrat, Czworokat }; zdefiniowano wartości Kolo, Trojkat, Kwadrat i Czworokat. Jakie to są wartości? Kolo = 0, Trojkat = 3, Kwadrat = 4, Czworokat = 5 Kolo = 0, Trojkat = 3, Kwadrat = 1, Czworokat = 2 Kolo = 1, Trojkat = 3, Kwadrat = 4, Czworokat = 5 Kolo = 0, Trojkat = 3, Kwadrat = 2, Czworokat = 3 Instrukcja for(i=0; i<n; i++) S+=A[i]; nakazuje wykonać instrukcję S+=A[i]; dla: i = 1, 2,, n-1. i = 1, 2,, n. i = 0, 1, 2,, n. i = 0, 1, 2,, n-1. Zaznacz prawdziwe zdania, jeśli zdefiniowano double Y[50]; Y jest nazwą zmiennej typu double. Y jest stałą wskazującą na zmienną Y[0]. Y+ 5 wskazuje na zmienną Y[5]. Y+ 5 wskazuje 5 bajtów dalej niż Y 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? a. for( n=0; fscanf(fp, "%lf", A+n ) ==1; n++ ) ; b. for( n=0; n<500; n++ ) if( fscanf(fp, "%lf", A+n )!=1) break; c. n=fread( A, sizeof(*a), 500, fp ); Tak. Funkcja fread próbuje tu wczytać 500 liczb i daje w wyniku ile udało się jej wczytać. d. for( n=0; fread( A+n, sizeof(*a), 1, fp)==1; n++ ) ; 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; x = 2.9, y = 2.9 x = 3.0, y = 2.9 x = 2.0, y = 2.9 x = 2.0, y = 2.0 Które napisy są stałymi całkowitymi w C lub w C++? "A" (znak A w cudzysłowach) -15 (minus 15) 0x12 'A' (znak A w apostrofach) Które napisy są stałymi rzeczywistymi w C lub C++? a. -3.14u b. -1.2e3 c. 2e-3 Stała 0.002 typu double d. 0.05F Stała 0.05 typu float Którym elementom tablicy A poniższe instrukcje nadadzą wartości? int k = 3; A[ k++ ] = 8; A[ ++k ] = 12; a. A[ 4 ] = 8, A[ 4 ] = 12 b. A[ 4 ] = 8, A[ 5 ] = 12 c. A[ 3 ] = 8, A[ 5 ] = 12 d. A[ 3 ] = 8, A[ 4 ] = 12 Co wydrukuje instrukcja if(x>y) printf("a"); else printf("b"); gdy x=5, y=6? a. Napis "A" b. Napis "AB" c. Nic nie wydrukuje d. Napis "B" Tak. Wykona instrukcję po else, bo warunek (x>y) jest fałszywy e. Napis "BA"

Wartością stałej tekstowej "Przyklad" jest: a. Liczba znaków w tekście bez ogranicznika - liczba 8 b. Kod początkowego znaku tekstu - kod ASCII litery P c. Liczba znaków w tekście z ogranicznikiem - liczba 9 d. Wskazanie początkowego znaku tekstu - znaku P Tak Poprawnie W jakim systemie można pisać stałe całkowite? a. ósemkowym (8) Zaczynając o cyfry zero b. dwójkowym (2) Niestety nie! c. szesnastkowym (16) Zaczynając prefiksem 0x d. dziesiętnym Zaczynając od cyfry innej niż zero Zaznacz poprawne definicje tablic z tekstami. a. char *T[ 2 ] = { "Tekst 1", "Tekst 2", "Tekst 3" }; b. char T[ 5 ] = "Tekst"; c. char *T[ ] = { "Tekst 1", "Tekst 2" }; Dwuelementowa tablica wskaźników na podane teksty. d. char T[ ] = "Tekst"; Tablica 6 zmiennych: T e k s t \0 e. char T[ ][ ] = { {"Tekst 1"}, {"Tekst 2"} }; f. char T[ 10 ] = "Tekst"; Ostatnie 4 zmienne inicjowane są zerami. 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];? a. for(n=0; n<100; n++) fscanf(fp, %lf, X+n); b. for(n=0;n<100 ; n++) fread(x+n, sizeof(x[0]), 100, fp); c. for(n=0; fscanf(fp, %lf, X+n)==1 ; n++) if(n==100) break; d. n=fread(x, sizeof(x[0]), 100, fp); Czemu się równa n po zakończeniu pętli? Dlaczego argumentami funkcji scanf nazwy prostych zmiennych poprzedza się znakiem & - np. scanf("%d",&n);? a. Aby przyspieszyć obliczenia. b. Aby udostępnić zmienną do zapisu.

c. Aby powiązać tę zmienną z polem konwersji d. Aby do funkcji przekazać wartość wskaźnika na zmienną. W języku C nie nożna do funkcji przekazać zmiennej bezpośrednio w parametrach. 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: a. o mniejszej liczbie argumentów (jeśli mają różne liczby argumentów) b. z lewej strony (jeśli priorytety są jednakowe). c. o wyższym priorytecie (jeśli ich priorytety są różne). d. z lewej lub prawej strony zależnie od łączności (jeśli priorytety są jednakowe). Nie, o kolejności operacji decydują priorytety, a gdy te są jednakowe to łączność operatorów. Niestety, ale gdy priorytety są jednakowe, o kolejności decyduje łączność operatorów. O kolejności decyduje priorytet. 1. Po wczytaniu liczby wierszy i liczby kolumn tablicy A do zmiennych n oraz m należy dokonać alokacji pamięci tak, aby zmienna typu 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) a. double **A=calloc(n,sizeof(*A)); for(i=0;i<n;i++) A[i]=calloc(m,sizeof(**A)); b. double *A; A=calloc(n*m, sizeof(double)); c. double (*A)[m]; A=calloc(n,sizeof(*A)); 2. Dopasuj określenia Średnik, którego nie poprzedza wyrażenie instrukcja pusta Pętla, która musi co najmniej jeden raz wykonać powtarzaną instrukcję do-while Zależnie od warunku wykonuje jedną z dwóch instrukcji instrukcja if-else Realizuje skok do instrukcji poprzedzonej wybraną etykietą case lub default zależnie od wartości całkowitej instrukcja switch

Wyrażenie zakończone średnikiem instrukcja 3. Jeśli zdefiniowano double (*F)(double); oraz przypisano F=sin, to suma F+1: a. Wskazuje na następną funkcję, czyli na funkcję cos. b. Jest niepoprawna, bo do wskaźnika F nie można dodać liczby całkowitej. c. Wskazuje na drugi bajt kodu funkcji sin. d. Dalej wskazuje na funkcję sin, bo dodawanie liczby całkowitej do wskaźnika F nie ma efektu. 4. 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]; 5. Dopasuj wyrażenia do opisów warunków logicznych x < 0 lub x > 80 x < 80 x > 0 0 < x < 80 x > 0 && x < 80 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 6. Zakładając, że zmienna K jest całkowita i nieujemna, dopasuj wyrażenia do określeń Wartość K z wyzerowanymi trzema najmłodszymi bitami (K >> 3) << 3 Słowo mające trzy ustawione bity na pozycjach 3, 4 i 5. 7 << 3 Wartość 8*K (8 = 2 do potęgi 3) K << 3 Wartość K/8 (8 = 2 do potęgi 3) K >> 3 7. Dopasuj wyrażenia do określeń zakładając, że x, y są zmiennymi typu double. Maksimum z {x, y} x>y? x : y

Wartość bezwzględna z x x < 0? 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 8. 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) Lewym argumentem tego operatora jest wskaźnik na zmienną strukturową. -> (strzałka Umieszcza w pamięci wszystkie swoje zmienne jedna po drugiej. struci 9. Dopasuj definicje parametru k funkcji Fun W instrukcji Fun( n );funkcja posługuje się zmienną k tak jak nazwą tablicy Fun(int k[]) W instrukcji Fun( n ); 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 );funkcja posługuje się zmienną n używając do niej nazwy k Fun(int &k) W instrukcji Fun(n+5); funkcja przypisuje własnej lokalnej zmiennej k wartośćn+5 Fun(int k) 10. 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]? a. argc=4, argv[1] wskazuje na tekst "12" b. argc=12, argv[1] wskazuje na tekst "dane" c. argc=3, argv[1] wskazuje na tekst "12" d. argc=4, argv[1] wskazuje na tekst "dane" 11. Ile zmiennych typu double tworzy definicja double X[100]; i jak te zmienne należy indeksować? a. 100 zmiennych indeksowanych od 0 do 99 b. 101 zmiennych indeksowanych od 0 do 100

c. 99 zmiennych indeksowanych od 1 do 99 d. 100 zmiennych indeksowanych od 1 do 100 12. W programie zdefiniowano int n; i wczytano wartość do zmiennej n. Jak poprawnie przydzielić programowi pamięć na tablicę zmiennych typu double ułożonych w n wierszach i 4 kolumnach? a. double *A[4]; A=(double*)calloc(4*n, sizeof(*a)); b. double *A; A=(double*)calloc(4*n, sizeof(*a)); c. double (*A)[4]; A=new double[n][4]; d. double (*A)[4]; A=(double(*)[4])calloc(n, sizeof(*a)); 13. Dopasuj specyfikatory klasy pamięci i kwalifikatory do ich interpretacji. Definicja nazwy typu typedef Zmienna przeznaczona do umieszczenia w rejestrze procesora. register Zmienna, która została zdefiniowana w innej części programu (np. w innym pliku) extern Zmienna, która powstaje i znika w zależności od potrzeby. auto Zmienna, która istnieje przez cały czas pracy programu. static Zainicjowana zmienna, której wartości nie można mieniać. const 14. 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żeli zmienne n, fp, x są kolejno typu int, FILE*, double? a. Plik ustawi się w pozycji końcowej. b. Wartość n mówi, ile razy w pliku występuje liczba 1 c. Wartość n mówi, ile liczb jest w pliku. d. Do zmiennej x zostanie wczytana tylko pierwsza liczba 15. Co obliczą następujące instrukcje? S=0; for(i=0; i<n; i++) S=x*S+A[i]; S=0; for(i=0; i<n; i++) S+=A[i]; S=A[0]; for(i=1; i<n; i++) if(s<a[i]) S=A[i]; wartość wielomianu suma z A[0] + A[1] + + A[n-1] maksimum z 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 A[0], A[1],, A[n-1] 16. Zdefiniowano wskaźnik na funkcje double (*f)(double); Które operacje na wskaźniku f są dozwolone i nie wygenerują błędu kompilatora? a. f(x) (wywołanie wskazanej funkcji) b. (*f)(x) (wywołanie wyłuskanej funkcji) c. f+1 (dodanie liczby całkowitej) d. f[2] (indeksacja elementu tablicy) e. f ==NULL (przyrównanie do wskaźnika zerowego) 17. Jakie wartości zmiennej n pozwala wprowadzić instrukcja do scanf("%d",&n); while(n<2 n>50);? a. Od 2 do 50 włącznie b. Różne od 2 i różne od 50 c. Mniejsze od 2 lub wieksze od 50 d. Różne od zera 18. Dopasuj nazwy strumieni i obiektów strumieniowych do opisów. Obiekt strumieniowy wprowadzający dane ze strumienia stdin cin 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ń wyjściowy skojarzony na stałe z ekranem stderr Strumień wejściowy skojarzony domyślnie z klawiaturą Stein 19. Połącz instrukcje w języku C z interpretacją wyniku S. S=0; for(i=0; i<n; i++) S+=A[i]; Suma z n liczb A[0] + S=A[0]; for(i=1; i<n; i++) if(s>a[i])s=a[i]; Minimum z liczb A[0], A[n-1] S=A[0]; for(i=1; i<n; i++) if(s<a[i])s=a[i]; Maksimum z liczb A[0],..A[n-1] S=0; for(i=0; i<n; i++) if(a[i]>0) S+=A[i]; Suma tylko z dodatnich liczb A[0] 20. Dopasuj opisy pól konwersji do typów argumentów funkcji printf.

char (typ znakowy) %c int %d double %lf char* (wskaźnik na znak) %s 21. Jeśli P i S są wskaźnikami, to kiedy relacja P<S ma sens i co daje w wyniku? a. P i S muszą wskazywać na elementy tej samej tablicy b. P i S muszą wskazywać na dowolne obiekty tego samego typu c. P<S, gdy P wskazuje na zmienną zajmującą mniej bajtów niż S d. P<S, gdy P wskazuje na mniej zmiennych niż S e. P<S, gdy P wskazuje na element o mniejszym indeksie niż S 22. Jeśli P i S są wskaźnikami, to kiedy różnica P-S ma sens i co daje w wyniku? a. P-S = ile bajtów dalej wskazuje P niż S b. P i S muszą wskazywać dowolne obiekty tego samego typu c. P-S = wskazanie na obszar od P do S d. P i S muszą wskazywać elementy tej samej tablicy e. P-S = ile elementów dalej wskazuje P niż S 23. W programie zdefiniowano int n; i wczytano wartość do zmiennej n. Jak poprawnie przydzielić programowi pamięć na tablicę n zmiennych typu double? a. double *A; A=new double[n]; b. double *A; A=(double*)calloc(n, sizeof(*a)); c. double A[n]; d. double (*A)[n]; A=(double*)calloc(n, sizeof(*a)); 24. Ułóż elementy definicji funkcji w kolejności takiej, w jakiej występują one w tej definicji. Pozycja 3 lista parametrów Pozycja 2 nazwa funkcji Pozycja 4 instrukcja kodująca algorytm Pozycja 1 typ wyniku funkcji 25. 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 zmiennej wskaźnikowej sizeof(p) Liczba elementów tablicy. sizeof(b) / sizeof(b[0])

Rozmiar tablicy 4 zmiennych typu double. sizeof(p[0]) Rozmiar tablicy w bajtach. sizeof(b) Rozmiar 8 zmiennych typu double sizeof(a[0]) 26. 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 na początkowy znak tego tekstu? a. char *s = (char *)p; b. char *s = *(char **)p; c. char *s = *(char *)p; d. char *s = (char **)p; 27. Drugim argumentem funkcji fopen jest tekst, który określa tryb otwarcia pliku. Dopasuj teksty do podanych warunków otwarcia. Otwierany plik jest kasowany, jeśli istnieje, a następnie jest kreowany jako pusty. w Otwierany jest plik do edycji (odczytu i zapisu) danych binarnych. rb+ Otwierany plik jest przewijany na koniec (gdy istnieje) lub jest kreowany. a Otwierany plik musi istnieć. r Otwierany jest plik do dopisywania danych binarnych. ab 28. Zdefiniowano wskaźnik uniwersalny void *P; Które operacje na wskaźniku P są dozwolone i nie wygenerują błędu kompilatora? a. *P (wyłuskanie wskazywanej zmiennej) b. P[2] (indeksacja elementu tablicy) c. P+1 (dodanie liczby całkowitej) d. P ==NULL (przyrównanie do wskaźnika zerowego) e. (double*)p (rzutowanie na typ double*)

29. Dopasuj określenia Instrukcja, która powoduje wyjście z instrukcji powtarzania (for, do-while ora 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 Instrukcja powodująca wyjście z funkcji return 30. 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ą? a. int k = *p; b. int k = (int*)p; c. int k = *(int*)p; d. int k = (int)p; 31. Dopasuj słowa kluczowe do opisów 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 Typ całkowity (liczba całkowita) int Poprzedza warunek powtarzania instrukcji w instrukcji pętli (repetycyjnej) while W instrukcji if poprzedza instrukcję wykonywaną, gdy warunek w if okazuje się fałszywy (zerowy) else 32. Czym są nazwy A i B, jeżeli zdefiniowano double A[50], B[8][4]; a. B - stała wskazująca na pierwszy bajt tablicy B. b. A - stała wskazująca na pierwszy element tablicy - A[0]. c. B - stała wskazująca na zmienną typu double - B[0][0]. d. B - stała wskazująca pierwszy wiersz tablicy (4 zmienne) e. A - stała wskazująca na pierwszy bajt tablicy A. 33. 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 *p; double A[40];

double **q; double *D[40] double (*r)[8]; double B[40][8] double (*s)[40]; double C[8][40] 34. Dopasuj opisy do elementów instrukcji for(i=0; i<n; i++) S+=A[i]; Gdy prawdziwe (różne od zera) nakazuje wykonać iterację (powtarzaną instrukcję). i<n Jest powtarzaną instrukcją. S+=A[i] Jest wykonywane po każdej iteracji. i++ Wykonuje się jeden raz na początku pętli i=0 35. Aby funkcja qsort mogła sortować teksty, należy sortować 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? a. char *ps=*s; b. char *ps=(char*)s; c. char *ps=**(char**)s; d. char *ps=*(char**)s; 36. 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? a. R = A. ojciec -> d. r b. R = p -> ojciec -> d -> r c. R = A. ojciec. d. r d. R = p -> ojciec -> d. r 37. Czym są wyrażenia A, *A, A[i], jeżeli zdefiniowano double A[50][8]; a. A[i] - stała wskazująca na zmienną A[i][0]. b. *A - jest zmienną A[0][0]. c. A - stała wskazująca na pierwszy wiersz tablicy A, czyli na 8 zmiennych - A[0],., A[7]. d. Wyrażenie A[i] jest błędne, bo tablica A jest 2-indeksowa. e. *A - stała wskazująca na zmienną A[0][0].

f. A - stała wskazująca na zmienną A[0][0]. 38. 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? a. p+1 wskazuje 1 bajt dalej niż p b. p+1 wskazuje na A[1] c. s+1 wskazuje na wiersz B[1][0],..., B[1][3] d. s+1 wskazuje na B[0][1] e. s+1 wskazuje 1 bajt dalej niż s