background image

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _        _ _ _ _ _ _ _ _        _ _ _ _ _ _ _ _ _ _ _ _

Imię i nazwisko

      Numer indeksu

  Login (SPOJ)

drukowanymi literami

  

      

czas pisania: 45 minut

                 30 listopad 2010

Zad. 1. (6 pkt.) Każde z wyróżnionych pól (___) uzupełnij co najwyżej 3 znakami, różnymi od 

przecinka i średnika, tak aby program po uruchomieniu wypisywał tekst:    07 

#include <stdio.h>

int main() {

int x[] = {1, 0, 0, 7, 4, 5}, i 

= 2

;

while ( 

i <

 6 ) {

printf ("%d", x[i-1]);
i+=2;

}

}

Zad. 2. (4 pkt.) Jaki tekst zostanie wypisany przez poniższy program? 

    

Wynik: 

s:w-2-za

#include

 

<stdio.h>

void zagadka(char *s, char *d) {

int i=3, j=0;
while ( *(s+i) != '!' ) {

d[j++] = s[++i];
if ( s[i] >= 'a' && s[i] <= 'z' ) i+=4; else i-=2;

}
d[j] = '\0';

}

int main() {

char x[100] = "Sprawdz-2-razy!!!!!";
char y[100];
zagadka(x, y);
printf("s:%s", y);

}

Zad. 3. (10 pkt.) Obok każdego wywołania funkcji printf, uzupełnij tekst, który zostanie 

wypisany. Wpisz BŁĄD jeśli nie można tego jednoznacznie określić.

   

#include

 

<stdio.h>

int x;

int

 main() {

int

 a=1, b=2, c=15;

char

 s[] = {

'd'

,

'e'

,

'g'

}, *p = s+2;

printf (

"%d"

,    a < b ? 3 : 4);

3

printf (

"%d"

,    x - a);

-1

printf (

"%d"

,    7 ^ 4);

3

printf (

"%d"

,    c>>b);

3

printf (

"%d"

,    (s[b] - 'a') / b);

3

printf (

"%d"

,    b & c);

2

printf (

"%c"

,   *(--p));

e

printf (

"%d-%d"

, p[0] - 'f', c / b / (a + 1));

-1-3

printf (

"%c"

,  p[0] + 1);

f

printf (

"%c"

,    *(s) + 2);

f

printf (

"%c"

,    *(s + 2));

g

}

background image

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _        _ _ _ _ _ _ _ _        _ _ _ _ _ _ _ _ _ _ _ _

Imię i nazwisko

      Numer indeksu

  Login (SPOJ)

drukowanymi literami

  

      

czas pisania: 45 minut

                 30 listopad 2010

Zad. 1. (6 pkt.) Każde z wyróżnionych pól (___) uzupełnij co najwyżej 3 znakami, różnymi od 

przecinka i średnika, tak aby program po uruchomieniu wypisywał tekst:    17 

#include <stdio.h>

int main() {

int x[] = {1, 0, 0, 7, 4, 5}, i 

= 1

;

while ( 

i <

 7 ) {

printf ("%d", x[i-1]);
i+=3;

}

}

Zad. 2. (4 pkt.) Jaki tekst zostanie wypisany przez poniższy program? 

    

Wynik: 

s:a2-za

#include

 

<stdio.h>

void zagadka(char *s, char *d) {

int i=2, j=0;
while ( *(s+i) != '!' ) {

d[j++] = s[++i];
if ( s[i] >= 'a' && s[i] <= 'z' ) i+=4; else i-=2;

}
d[j] = '\0';

}

int main() {

char x[100] = "Sprawdz-2-razy!!!!!";
char y[100];
zagadka(x, y);
printf("s:%s", y);

}

Zad. 3. (10 pkt.) Obok każdego wywołania funkcji printf, uzupełnij tekst, który zostanie 

wypisany. Wpisz BŁĄD jeśli nie można tego jednoznacznie określić.

   

#include

 

<stdio.h>

int x;

int

 main() {

int

 a=1, b=3, c=15;

char

 s[] = {

'd'

,

'g'

,

'h'

}, *p = s+2;

printf (

"%d"

,    a < b ? 4 : 3);

4

printf (

"%d"

,    x - a);

-1

printf (

"%d"

,    6 ^ 3);

5

printf (

"%d"

,    c>>b);

1

printf (

"%d"

,    (s[a] - 'a') / b);

2

printf (

"%d"

,    b & c);

3

printf (

"%c"

,   *(--p));

g

printf (

"%d-%d"

, p[0] - 'f', c / b / (a + 1));

1-2

printf (

"%c"

,  p[0] + 1);

h

printf (

"%c"

,    *(s) + 2);

f

printf (

"%c"

,    *(s + 2));

h

}

background image

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _        _ _ _ _ _ _ _ _        _ _ _ _ _ _ _ _ _ _ _ _

Imię i nazwisko

      Numer indeksu

  Login (SPOJ)

drukowanymi literami

  

      

czas pisania: 45 minut

                 30 listopad 2010

Zad. 1. (6 pkt.) Każde z wyróżnionych pól (___) uzupełnij co najwyżej 3 znakami, różnymi od 

przecinka i średnika, tak aby program po uruchomieniu wypisywał tekst:    07 

#include <stdio.h>

int main() {

int x[] = {1, 0, 0, 7, 4, 5}, i 

= 0

;

while ( 

i <

 4 ) {

printf ("%d", x[i+1]);
i+=2;

}

}

Zad. 2. (4 pkt.) Jaki tekst zostanie wypisany przez poniższy program? 

    

Wynik: 

s:-2-za

#include

 

<stdio.h>

void zagadka(char *s, char *d) {

int i=8, j=0;
while ( *(s+i) != '!' ) {

d[j++] = s[++i];
if ( s[i] >= 'a' && s[i] <= 'z' ) i+=4; else i-=2;

}
d[j] = '\0';

}

int main() {

char x[100] = "Sprawdz-2-razy!!!!!";
char y[100];
zagadka(x, y);
printf("s:%s", y);

}

Zad. 3. (10 pkt.) Obok każdego wywołania funkcji printf, uzupełnij tekst, który zostanie 

wypisany. Wpisz BŁĄD jeśli nie można tego jednoznacznie określić.

   

#include

 

<stdio.h>

int x;

int

 main() {

int

 a=1, b=2, c=14;

char

 s[] = {

'g'

,

'd'

,

'e'

}, *p = s+2;

printf (

"%d"

,    c < b ? 4 : 5);

5

printf (

"%d"

,    x - a);

-1

printf (

"%d"

,    7 ^ 3);

4

printf (

"%d"

,    c>>b);

3

printf (

"%d"

,    (s[b] - 'a' + 1) / b);

2

printf (

"%d"

,    (b + 1) & c);

2

printf (

"%c"

,   *(--p));

d

printf (

"%d-%d"

, p[0] - 'f', c / b / (a + 1));

-2-3

printf (

"%c"

,  p[1] + 1);

f

printf (

"%c"

,    *(s) + 2);

i

printf (

"%c"

,    *(s + 2));

e

}


Document Outline