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;

 

 

 

      }