Skúška
Rrevízia pokusu 1
Test bol začatý: Monday, 28 May 2007, 13:07
Ukončené dňa: Monday, 28 May 2007, 13:51
Strávený čas: 44 min 34 sekundy/sekúnd
Hrubé skóre: 46.33/70 (66 %)
Známka: z maximálneho počtu bodov
1
Známky: 2
Pri otvorení súboru v režime zápisu ("w") funkciou fopen(), ak daný súbor existuje
Vyberte jednu odpoveď
a. ****obsah súboru sa vymaže a aktuálna pozícia pre zápis je na začiatku
b. obsah súboru sa nevymaže a aktuálna pozícia pre zápis je na začiatku súboru
c. obsah súboru sa nevymaže a aktuálna pozícia pre zápis je na konci súboru
d. vznikne chyba
Správny
Známky za odoslaný test: 2/2.
2
Známky: 2
Akého typu musí byť premenná x, aby nasledujúce volanie funkcie bolo správne: scanf("%s", x);
Vyberte jednu odpoveď
a. char x;
b.***** char x[];
c. float x;
d. int x;
Správny
Známky za odoslaný test: 2/2.
3
Známky: 2
#define LOWER 0
je definícia
Vyberte jednu odpoveď
a. najmenšieho celého čísla
b. celočíselnej premennej s počiatočnou hodnotou 0
c. celočíselnej premennej
d. *******symbolickej konštanty s hodnotou 0
Správny
Známky za odoslaný test: 2/2.
4
Známky: 2
Aká bude návratová hodnota funkcie f() pri volaní f(5);
ak definícia funkcie je nasledovná:
int f (int x)
{
if (x==0) return(1);
else return (x * f(x-1));
}
Odpoveď:
Správna odpoveď: 120
Správny
Známky za odoslaný test: 2/2.
5
Známky: 4
Nech je daný údajový typ ELEMENT a funkcia fx() nasledovne:
typedef struct element {
int value;
struct element *next;
} ELEMENT;
ELEMENT * fx(ELEMENT *element, int data) {
ELEMENT *temp = element;
if (element != NULL) {
while (element ->next != NULL) {
element = element -> next;
}
element ->next=(ELEMENT*)malloc(sizeof(ELEMENT));
if(element -> next == NULL) exit(0);
element = element -> next;
}
else {
element = (ELEMENT*)malloc(sizeof(ELEMENT));
if(element == NULL) exit(0);
}
element -> next = NULL;
element -> value = data;
return temp == NULL ? element : temp;
}
Potom funkcia fx():
Vyberte jednu odpoveď
a.******* odstraňuje položku zo spájaného zoznamu
b. pridáva položku na koniec spájaného zoznamu
c. vypisuje hodnoty položiek spájaného zoznamu
d. pridáva položku na začiatok spájaného zoznamu
Nesprávny
Známky za odoslaný test: 0/4.
6
Známky: 2
Nasledujúca definícia:
char *x[10];
určuje premennej x typ
Vyberte aspoň jednu odpoveď.
a. smerník na pole 10 znakov
b. pole 10 znakov
c. *******konštantný smerník na smerník na znak
d.******* pole 10 smerníkov na znak
Nesprávny
Známky za odoslaný test: 0/2.
7
Známky: 4
Aký výsledok bude vytlačený týmto programom?
#include <stdio.h>
main()
{
int a[10] = { 2, 8, 4, 1, 3, 7 };
printf("%d", f1(a, 6, 6));
}
int f1(int x[], int y, int z)
{
int i;
for (i = 0; i < y; i++) {
if (x == z)
return i;
}
return (-1);
}
Vyberte jednu odpoveď
a. 0
b. 6
c. 3
d. *******-1
Správny
Známky za odoslaný test: 4/4.
8
Známky: 4
Aká postupnosť bude vytlačená týmto programom?
#include <stdio.h>
main()
{
static int a[10] = { 2, 8, 4, 1, 3, 7 };
int i, k, p;
for(i=0; i<5; i++)
{ for(k=i+1; k<6; k++)
{
if (a[k] < a)
{ p = a;
a = a[k];
a[k] = p;
}
}
}
for(i=0; i<6; i++)
printf("%d, ", a);
}
Vyberte jednu odpoveď
a. ******1, 2, 3, 4, 7, 8
b. 8, 7, 4, 3, 2, 1
c. 7, 3, 1, 4, 8, 2
d. 2, 8, 4, 1, 3, 7
Správny
Známky za odoslaný test: 4/4.
9
Známky: 2
Meradlo efektívnosti metód triedenia zahrňuje:
Vyberte aspoň jednu odpoveď.
a. počet riadkov textového popisu algoritmu
b. počet blokov vývojového diagramu algoritmu
c.******* počet porovnaní kľúčov
d.******* počet presunov prvkov
Čiastočne správny
Známky za odoslaný test: 1/2.
10
Známky: 2
Ktoré z nasledujúcich prototypov deklarujú procedúry?
Vyberte aspoň jednu odpoveď.
a.****** void zamen(int *a, int *b);
b. int sucet(int a, int b);
c. long fakt();
d.****** void abc();
Správny
Známky za odoslaný test: 2/2.
11
Známky: 2
Majme deklaráciu nasledujúceho údajového typu:
struct a {
char info[100];
struct a *s1;
};
Potom typ "struct a" môže byť použitý pre implementáciu:
Vyberte aspoň jednu odpoveď.
a. obojsmerného cyklického spájaného zoznamu
b. binárneho stromu
c.****** jednosmerného cyklického spájaného zoznamu
d. obojsmerného spájaného zoznamu
e.****** jednosmerného spájaného zoznamu
Správny
Známky za odoslaný test: 2/2.
12
Známky: 2
Akú množinu hodnôt predstavuje typ double v jazyku C?
Vyberte jednu odpoveď
a. celé čísla so znamienkom
b. reálne čísla
c. celé čísla bez znamienka
d. dlhé celé čísla so znamienkom
e.******* reálne čísla s dvojnásobnou presnosťou
Správny
Známky za odoslaný test: 2/2.
13
Známky: 2
Ak je nastavená hodnota premennej i = 3, potom po vykonaní výrazu p[i++] = 5; sa hodnota 5 uloží do prvku poľa
Vyberte jednu odpoveď
a. žiadneho z uvedených
b. *******p[3]
c. p[2]
d. p[4]
Správny
Známky za odoslaný test: 2/2.
14
Známky: 4
Nech je definovaná údajová štruktúra reprezentujúca uzol binárneho stromu a nasledujúca funkcia vystup():
struct veta {
char *info;
struct veta *lavy;
struct veta *pravy;
};
void vystup(k)
struct veta *k;
{
if(k!=NULL){
printf("\n%-20s",k->info);
if(k->lavy!=NULL){
vystup(k->lavy);
vystup(k->pravy);
}
else if(k->pravy!=NULL){
vystup(k->pravy);
}
}
return;
}
Funkcia vystup()prechádza strom algoritmom:
Vyberte jednu odpoveď
a. post-order
b.******* pre-order
c. in-order
d. order
Správny
Známky za odoslaný test: 4/4.
15
Známky: 2
Nasledujúce volanie funkcie fread():
fread(elementy, sizeof(struct osoba), pocet, fp);
v prípade neúspechu vráti:
Vyberte jednu odpoveď
a. "segmentation fault"
b. *******číslo menšie ako je hodnota premennej pocet
c. NULL
d. EOF
Správny
Známky za odoslaný test: 2/2.
16
Známky: 2
Pole znakov možno inicializovať nasledovne:
Vyberte aspoň jednu odpoveď.
a. *******char p[10] = ”AHOJ”;
b. ******char p[10] = {’A’,’H’,’O’,’J’};
c. char p[10] = ’AHOJ’;
d. char p[] = ”AHOJ”;
Čiastočne správny
Známky za odoslaný test: 1.33/2.
17
Známky: 4
Po spustení sa nasledujúci program pokúsi:
#include <stdio.h>
main()
{
FILE *fp1, *fp2;
char c, s1[]="prvy", s2[]="druhy";
fp1 = fopen(s1, "r");
if (fp1 == NULL)
exit(0);
fp2 = fopen(s2, "w");
if (fp1 == NULL)
exit(0);
c = fgetc(fp1);
while (c != EOF) {
if (fputc(c, fp2) == EOF)
break;
c = fgetc(fp1);
}
fclose(fp1);
fclose(fp2);
}
Vyberte aspoň jednu odpoveď.
a.******* všetky údaje získané od používateľa zo štandardného vstupu (teda až pokiaľ nebude zadaný EOF) zapísať do súboru s menom "druhy"
b. zapísať celý obsah súborov s menom "prvy" a "druhy" na štandardný výstup
c. *******skopírovať celý obsah súboru s menom "prvy" do súboru s menom "druhy"
d. pridať celý obsah súboru s menom "druhy" do súboru s menom "prvy"
Nesprávny
Známky za odoslaný test: 0/4.
18
Známky: 2
Funkcia fgets(char *r, int n, FILE *fp) zo súboru načíta
Vyberte aspoň jednu odpoveď.
a. ********reťazec najviac n znakov od aktuálnej pozície po najbližší znak nový riadok
b. reťazec n znakov od aktuálnej pozície po najbližší znak nulový bajt
c. n reťazcov oddelených bielymi znakmi
d. reťazec najviac n znakov od aktuálnej pozície po medzeru
Správny
Známky za odoslaný test: 2/2.
19
Známky: 2
Ak pamäť nebola úspešne pridelená, vráti funkcia malloc() hodnotu
Vyberte jednu odpoveď
a. EOF
b. ******NULL
c. "not enough memory"
d. "segmentation fault"
Správny
Známky za odoslaný test: 2/2.
20
Známky: 4
Aký výsledok bude vytlačený funkciou printf( ) ?
#include <stdio.h>
int f(char*);
main()
{
char a[ ] = "Programovanie";
printf("%d \n", f(a));
}
int f(char *p)
{
int n=0;
while(*p != '\0') { p++; n++; }
return(n);
}
Vyberte jednu odpoveď
a.****** 13
b. 14
c. '\0'
d. 0
Nesprávny
Známky za odoslaný test: 0/4.
21
Známky: 4
Nech je daná nasledujúca funkcia:
int readBinary(OSOBA elementy[], int pocet) {
FILE *fp;
int x;
fp = fopen("subor1","rb");
if(fp == NULL)
exit(0);
x = fread(elementy,sizeof(OSOBA),pocet,fp);
close(fp);
return x;
}
a premenna:
OSOBA p1[10];
Ak bude pri volaní readBinary(p1, 6) vrátená hodnota menšia ako 6, môže to znamenať, že:
Vyberte aspoň jednu odpoveď.
a. súbor s menom subor1 sa nepodarilo korektne otvoriť
b.******** pri čítaní zo súboru s menom subor1 sa došlo na jeho koniec
c. súbor s menom subor1 neexistuje
d. *******pri čítaní zo súboru s menom subor1 došlo ku chybe
Čiastočne správny
Známky za odoslaný test: 2/4.
22
Známky: 2
Ak máme definované jednorozmerné pole a smerník:
int x[10], *sm=x; potom prípustné operácie sú:
Vyberte aspoň jednu odpoveď.
a. x++
b. x--
c.***** sm++
d.***** sm--
Správny
Známky za odoslaný test: 2/2.
23
Známky: 2
Nech je daná matica rozmeru 6x4 a v programe je načítaná a uložená v poli aa[ ] nasledovne:
1. int aa[6][4], i;
2. for(i=0; i < 24; i++)
3. scanf("%d", &aa[0][0] + i);
Ak i nadobudne hodnotu 16, funkcia z riadku 3 načíta prvok
Vyberte jednu odpoveď
a. aa[4][1]
b. ******aa[4][0] asi nepamatam uz
c. aa[5][0]
d. aa[5][1]
Nesprávny
Známky za odoslaný test: 0/2.
24
Známky: 2
Ak sa program spustí s argumentmi príkazového riadku a hlavná funkcia má rozhranie:
main(int argc, char *argv[])
potom
*argv bude ukazovať na:
Vyberte jednu odpoveď
a. počet argumentov povelového riadku vrátane názvu spustiteľného programu
b. reťazec prvého argumentu príkazového riadku za názvom programu
c. *******prvý znak reťazca názvu spusteného programu
d. počet argumentov povelového riadku bez názvu spustiteľného programu
Nesprávny
Známky za odoslaný test: 0/2.
25
Známky: 2
Ktorý z príkazov ukončuje najvnútornejšiu neukončenú slučku cyklu a opúšťa telo cyklu?
Vyberte aspoň jednu odpoveď.
a. *****break
b. return
c. continue
d. case
Správny
Známky za odoslaný test: 2/2.
26
Známky: 2
Ak je štruktúra deklarovaná nasledovne:
typedef struct osoba { char meno[20];
int roknarod;
} PERSON;
potom PERSON je
Vyberte aspoň jednu odpoveď.
a.****** nový názov pre typ struct osoba asi
b. nový názov pre zložku meno
c. neprípustný typ
d. premenná typu struct osoba
Nesprávny
Známky za odoslaný test: 0/2.
27
Známky: 2
Príkaz
for(i=0; i<=99;i++)
p=0;
spôsobí
Vyberte jednu odpoveď
a. *******vynulovanie prvkov poľa p[0] až p[99]
b. vykonanie prázdneho cyklu 100 krát a potom sa vynuluje prvok poľa p[100]
c. vykonanie prázdneho cyklu 100 krát a potom sa vynuluje prvok poľa p[99]
d. vynulovanie prvkov poľa p[0] až p[100]
Správny
Známky za odoslaný test: 2/2.
28
Známky: 2
Premenná typu union má v pamäti vyhradený priestor
Vyberte jednu odpoveď
a. pre všetky zložky, t.j. každá zložka má svoje miesto, zložky sú uložené za sebou
b.******* podľa veľkosti najväčšej zložky, všetky zložky sa ukladajú od začiatku tohto priestoru
c. žiaden, priestor sa musí dynamicky alokovať počas behu programu
d. podľa veľkosti najväčšej zložky, všetky zložky sa ukladajú postupne za sebou
Správny
Známky za odoslaný test: 2/2.