Ukázka testových příkladů (napište výsledek, označte nejlepší, najděte chyby, doplňte program)
1)
Je dáno makro #define MAKR(x,y) x*x + y, a funkce
int Fce(int x,float y) {return x*x+y;}
napište výsledky volání (hodnotu, které bude po volání
nabývat v), jestliže proměnné a,b,v jsou definovány
následujícím způsobem
int a = 2; float v; float b=1.1; 3b
v=MAKR(a ,b); ……………..……………..……………..……………..
v=MAKR(a+b,b); ……………..……………..……………..……………..
v=MAKR(a ,b)*3; ……………..……………..……………..……………..
v=MAKR(a,a+b)*3; ……………..……………..……………..……………..
v=Fce(a,b); ……………..……………..……………..……………..
v=Fce(a+b,b); ……………..……………..……………..……………..
v=Fce(a,b)*3; ……………..……………..……………..……………..
v=Fce(a,b+b)*3; ……………..……………..……………..……………..
2) Označte kód (všechny správné/možné), který smaže daný bit (unsigned int bn;) v proměnné (unsigned int aa;)
1b
A) aa &= ! (1u << bn)
B) aa &&= ~ (1u << bn)
C) aa &= ~ 1u << bn
D) aa &= ~ (1u << bn)
E) aa |= ! (1u << bn)
F) aa ||= ~ (1u << bn)
G) aa |= ~ 1u << bn
H) aa |= ~ (1u << bn)
I) aa &&= ! (1u << bn)
J) aa &&= ~ 1u << bn
K) aa &= ! 1u << bn
L) aa ||= ! (1u << bn)
M) aa ||= ~ 1u << bn
N) aa |= ! 1u << bn
3) Najděte chyby v uvedeném programu (označte přímo v textu programu). Napište správné verze chybných řádků.
#include<stdio.h>
int main(int argn, char*argv[])
{
int znak, ii = 100;
do
{
printf("%f\n", i--);
znak = getchar();
}
while( (i) & (znak != ' ') );
return(0);
}
4) Napište funkci, která okopíruje ve funkci hodnoty struktury Cplx z proměnné zdroj do proměnné cil
struct Cplx {
float re,im;
};
void CopyCplx(struct Cplx zdroj, struct Cplx *cil)
{
struct Cplx pom;
}