B.PDF

(67 KB) Pobierz
B
A
A
1) Napisz rekurencyjną funkcję int NWD (int A, int B) , która dla liczb dodatnich zdefiniowana
jest wzorem poniŜej. JeŜeli któryś z argumentów A lub B jest ≤ 0, funkcja powinna zwrócić wynik 0.
1) Napisz rekurencyjną funkcję int NWD (int A, int B) , która dla liczb dodatnich zdefiniowana
jest wzorem poniŜej. JeŜeli któryś z argumentów A lub B jest ≤ 0, funkcja powinna zwrócić wynik 0.
A
gdy
B
=
A
>
0
A
gdy
B
=
A
>
0
NWD
(
A,B
)
=
NWD
(
A,B mod A
)
gdy
B
>
A
>
0
NWD
(
A,B
)
=
NWD
(
A,B mod A
)
gdy
B
>
A
>
0
NWD
(
A mod B,B
)
gdy
A
>
B
>
0
NWD
(
A mod B,B
)
gdy
A
>
B
>
0
2) W programie poniŜej znajdują się dwa błędy (dotyczące pojedynczych znaków). Popraw je, wiedząc,
Ŝe nagłówek funkcji fun1 jest poprawny. Napisz, co zostanie wyświetlone przez program.
2) W programie poniŜej znajdują się dwa błędy (dotyczące pojedynczych znaków). Popraw je, wiedząc,
Ŝe nagłówek funkcji fun1 jest poprawny. Napisz, co zostanie wyświetlone przez program.
int fun1 (int a, int *b, int &c)
{ static int i = a;
i += (&b) +++ (c);
i += a -++ a;
return i;
}
void main (void)
{ int a = 4, b = 3, c = 2, i = 1;
while (i <= 30)
{ i = fun1 (b, *c, i);
printf ("%d, %d, %d, %d\n", a, b, c, i);
}
}
int fun1 (int a, int *b, int &c)
{ static int i = a;
i += (&b) +++ c;
i += a -++ a;
return i;
}
void main (void)
{ int a = 4, b = 3, c = 2, i = 1;
while (i <= 30)
{ i = fun1 (b, *c, i);
printf ("%d, %d, %d, %d\n", a, b, c, i);
}
}
3) Zaimplementuj funkcję int strcmp (char str1 [], char str2 []) , która porównuje łańcu-
chy str1 i str2 . Alternatywnie moŜesz zaimplementować funkcję char *strstr (char str [],
char substr []) , która poszukuje wystąpienia łańcucha substr w łańcuchu str . W jaki sposób
przekazywane są parametry tej funkcji?
3) Zaimplementuj funkcję int strcmp (char str1 [], char str2 []) , która porównuje łańcu-
chy str1 i str2 . Alternatywnie moŜesz zaimplementować funkcję char *strstr (char str [],
char substr []) , która poszukuje wystąpienia łańcucha substr w łańcuchu str . W jaki sposób
przekazywane są parametry tej funkcji?
B
B
1) Napisz rekurencyjną funkcję double sin (double x) , która jest zdefiniowana wzorem poniŜej.
Zwróć uwagę, aby uniknąć niepotrzebnego powtarzania dwa razy tych samych obliczeń.
1) Napisz rekurencyjną funkcję double sin (double x) , która jest zdefiniowana wzorem poniŜej.
Zwróć uwagę, aby uniknąć niepotrzebnego powtarzania dwa razy tych samych obliczeń.
sin
( )
=
x
gdy
-
0
01
£
x
£
0
01
sin
( )
=
x
gdy
-
0
01
£
x
£
0
01
3
×
sin
( )
x
3
-
4
×
[
sin
( )
x
3
]
w przeciwn
ym razie
3
×
sin
( )
x
3
-
4
×
[
sin
( )
x
3
]
w przeciwn
ym razie
2) W programie poniŜej znajdują się dwa błędy (dotyczące pojedynczych znaków). Popraw je, wiedząc,
Ŝe nagłówek funkcji fun2 jest poprawny. Napisz, co zostanie wyświetlone przez program.
2) W programie poniŜej znajdują się dwa błędy (dotyczące pojedynczych znaków). Popraw je, wiedząc,
Ŝe nagłówek funkcji fun2 jest poprawny. Napisz, co zostanie wyświetlone przez program.
int fun2 (int &a, int b, int *c)
{ static int i = 1;
(&a) += (*c) -++ b;
i = i +++ b;
return i;
}
void main (void)
{ int a = 4, b = 3, c = 2, i = 1;
while (i <= 20)
{ i = fun2 (&b, i, &a);
printf ("%d, %d, %d, %d\n", a, b, c, i);
}
}
int fun2 (int &a, int b, int *c)
{ static int i = 1;
(&a) += (*c) -++ b;
i = i +++ b;
return i;
}
void main (void)
{ int a = 4, b = 3, c = 2, i = 1;
while (i <= 20)
{ i = fun2 (&b, i, &a);
printf ("%d, %d, %d, %d\n", a, b, c, i);
}
}
3) Zaimplementuj funkcję char *strncat (char dest [], char src [], int maxlen) , która
dokleja do łańcucha dest łańcuch src sprawdzając, czy nie następuje przekroczenie długości tablicy
znaków dest . W jaki sposób przekazywane są parametry tej funkcji?
3) Zaimplementuj funkcję char *strncat (char dest [], char src [], int maxlen) , która
dokleja do łańcucha dest łańcuch src sprawdzając, czy nie następuje przekroczenie długości tablicy
znaków dest . W jaki sposób przekazywane są parametry tej funkcji?
,
,
,
,
x
x
3
3
321860728.001.png
Zgłoś jeśli naruszono regulamin