Preparatório EsFCEx TÉCNICAS DE PROGRAMAÇÃO a. Lógia Lógia Ap!ia"a Pro#. Riar"o Sa$t%A$a
S&'(rio
)
Introdução
*
Resolução de Exercícios
+
Conclusão
S&'(rio
)
Introdução
*
Resolução de Exercícios
+
Conclusão
I$tro"&,-o Lista
de Assuntos
2. TÉCNICAS DE PROGRAA!"O# $ %. &'(ic% &'(ic% %)lic %)lic%d%# %d%# %l(o %l(orit*os rit*os++ t,cnic%s t,cnic%s de de construçã construção o de %l(orit*os+ resolução de )ro-le*%s.
I$tro"&,-o Bibliografa
COSTA+ D%niel G. A/A e* Rede# Recursos A0%nç%dos. Rio de %neiro# 1r%s)ort+ 23. DEITE&+ 4. . A/A Co*o Pro(r%*%r. 5. ed. 6S.l.7# Editor% 1oo8*%n+ 25. GAA+ Eric9 et %l. P%dr:es de Pro;eto# Soluç:es Reutili<=0eis de So>t?%re Orient%do % O-;etos. 6S.l.7# 1oo8*%n+ 2@. GIAR"ES+ Bn(elo de our% &AGES+ Ne?ton de C%stil9o. Al(orit*os Estrutur%dos de D%dos. 6S.l.7# Editor% &TC+ F. ORGAN+ ic9%el. A/A 2 )%r% Pro(r%*%dores Pro>ission%is. 6S.l.7# Editor% Cinci% odern%+ 2. TO+ Cl%udio Adon%i. P4P H SJ& Gui% Co*)leto. 6S.l.7# 1r%s)ort+ 2F. TENEN1A+ A%ron . &ANGSA+ edidK%9 AGENSTEIN+ os9e . Estrutur%s de D%dos s%ndo C. 6S.l.7# %8ron 1oo8s+ @. /E&OSO+ P%ulo et %l. Estrutur% de D%dos. 6S.l.7# Editor% C%*)us+ 3L. MIRT4+ Ni8l%us. Al(orít*os e Estrutur%dos de D%dos. 6S.l.7# Editor% P41+ 3.
I$tro"&,-o Motivação: Questão Teoria
60 da segunda prova 2014
na or!a de "#er$%$ios
Con9eci*ento )r,0io
I$tro"&,-o #include int main(){ int i=9; i^=15; i>>=1; i<<=2; printf("%d",i); return 0; }
I$tro"&,-o #include int main(){ int i=9; i^=15; i>>=1; i<<=2; printf("%d",i); return 0; }
i=9
I$tro"&,-o #include int main(){ int i=9; i^=15; i>>=1; i<<=2; printf("%d",i); return 0; }
i^=15 i=i^15 ^
→ operador xor 0000 1001 → 9 0000 1111 → 15 0000 0110 → 6 Portanto, i=6
I$tro"&,-o #include int main(){ int i=9; i^=15; i>>=1; i<<=2; printf("%d",i); return 0; }
i>>=1 i=i>>1 >>
→ operador deslocamento 0000 0110 11 → 6 0000 0011 → 3 Portanto, i=3
I$tro"&,-o #include int main(){ int i=9; i^=15; i>>=1; i<<=2; printf("%d",i); return 0; }
i<<=2 i=i<<2 <<
→ operador deslocamento 0000 0011 → 3 → 12 0000 1100 11 Portanto, i=12
I$tro"&,-o #include int main(){ int i=9; i^=15; i>>=1; i<<=2; printf("%d",i); return 0; }
Imprime %d
→ inteiro a!da = 12
&est-o /) #include int main(){ int i=~9; printf("%d",i); return 0; }
"#al a sa!da desse c$dio &
&est-o /) #include int main(){ int i=~9; printf("%d",i); return 0; }
'perador ()complemento 'riinalmente, int tem taman*o de + -tes .epresentaremos com 2 -tes 0000 0000 0000 1001 → 9 / o #e o complemento &
&est-o /) #include int main(){ int i=~9; printf("%d",i); return 0; }
0000 0000 0000 1001 → 9 1111 1111 1111 0110 → (
/sse #m nmero neatio4 1 a es#erda444
as #e nmero esse &
#tili7a complemento 2 para representar nmeros neatios)
1111 1111 1111 0110 Inerte e soma 1 para er #e nmero neatio)
0000 0000 0000 1001
0000 0000 0000 0001 81
0000 0000 0000 1010 10 portanto 10 neatio
&est-o /* #include #include int main(){ int i = pow(2,16)1; if (!i) { printf("#$dd#i$o %d",i); } else printf("&lso! %d",i); return 0; }
"#al a sa!da desse c$dio &
&est-o /* #include #include int main(){ int i = pow(2,16)1; if (!i) { printf("#$dd#i$o %d",i); } else printf("&lso! %d",i); return 0; }
"#al esse alor & Po: → pot;ncia, o# sea,2 eleado a 16 '# sea,65536
ssim i= 65535
&est-o /* #include #include int main(){ int i = pow(2,16)1; if (!i) { printf("#$dd#i$o %d",i); } else printf("&lso! %d",i); return 0; }
/m podemos eri?icar condi@Aes com #al#er alor → ao contrBrio do Caa #e #tili7amos o tipo oolean
ssim, o alor do condicional serB ?also somente se ?or D/.' 4
' #e nos lea a crer #e, no caso dessa #estEo, o alor serB erdadeiro 4
&est-o /* #include #include int main(){ int i = pow(2,16)1; if (!i) { printf("#$dd#i$o %d",i); } else printf("&lso! %d",i); return 0; }
as antes da ariBel i existe o operador F'G H#e ?#nciona it a it ssm) i = 65535 '# sea, em inBrio, i tem o alor 1111 1111 1111 1111 ssim, 4i = 0000 0000 0000 0000 '# sea, 4i ale D/.'
Portanto serB apresentado a sa!da)
?also4 65535
&est-o /+ #include #include int main() { int i't#$' = 1; int #t#$' = i't#$'^#t#$'; printf("%d '",$#s*lt); return 0; }
"#al a sa!da desse c$dio &
&est-o /+ #include #include int main() { int i't#$' int #t#$' int $#s*lt printf("%d return 0; }
= 1; = +; = i't#$'^#t#$'; '",$#s*lt);
Foamente, lemrando #e ^ o operador xor, temos
0000 0000 0000 0001 0000 0000 0000 1000
xor
JJJJJJJJJJJJJJJJJJJJ 0000 0000 0000 1001
'# sea, res#ltado ale 94
&est-o /+ #include #include int main() { int i't#$' int #t#$' int $#s*lt printf("%d return 0; }
/..K' 4
extern → palara reserada do 4 FEo pode ser #tili7ada como nome de ariBel 4
/sse prorama nEo compila 4
= 1; = +; = i't#$'^#t#$'; '",$#s*lt);
&est-o /0
Proa) LMFIN/. J 2012 J PJKL J Perito riminal J In?ormBtica
Eo palarasJc*ae da lin#aem no padrEo FI e, portanto, nEo podem ser #tili7adas como nomes para ariBeis a t-pede?, master, core, ne:line #nion, extern, main, core c int, lon, static, oid d Lloat, Oon, ore, ontin#e e sined, #nsined, master, main
&est-o /0
Proa) LMFIN/. J 2012 J PJKL J Perito riminal J In?ormBtica
Eo palarasJc*ae da lin#aem no padrEo FI e, portanto, nEo podem ser #tili7adas como nomes para ariBeis a t-pede?, master, core, ne:line #nion, extern, main, core c int, lon, static, oid d Lloat, Oon, ore, ontin#e e sined, #nsined, master, main
&est-o /0 a#to rea case c*ar const contin#e de?a#lt do#le else en#m extern ?loat ?or oto do int lon reister ret#rn s*ort sined i? si7eo? static str#ct s:itc* t-pede? #nion #nsined oid olatile :*ile
&est-o /0
/speci?icadores de lasse de rma7enamento)
auto
extern
static
register
&est-o /0
/speci?icadores de lasse de rma7enamento)
auto $ O especificador de classe de armazenamento auto define variáveis locais. Raramente usado pois todas as variáveis do C são auto por definição #include #include int main() { int auto i = 1; int auto # = +; int auto $#s*lt = i^#; printf("%d '",$#s*lt); return 0; }
&est-o /0
/speci?icadores de lasse de rma7enamento)
extern $ O extern define variáveis que serão usadas em um arquivo apesar de terem sido declaradas em outro. int count; float sum; main (void) ... return !; "
&est-o /0
/speci?icadores de lasse de rma7enamento)
extern $ O extern define variáveis que serão usadas em um arquivo apesar de terem sido declaradas em outro. extern int count; extern float sum; int RetornaCount (void) ... return count; "
&est-o /0
/speci?icadores de lasse de rma7enamento)
static
O funcionamento das variáveis declaradas como static depende se estas são glo#ais ou locais.
$ariáveis glo#ais static funcionam como variáveis glo#ais dentro de um m%dulo& ou se'a& são variáveis glo#ais que não são (e nem podem ser) conecidas em outros m%dulos.
sto * util se quisermos isolar pedaços de um programa para evitar mudanças acidentais em variáveis glo#ais.
&est-o /0
/speci?icadores de lasse de rma7enamento)
static
$ariáveis locais static são variáveis cu'o valor * mantido de uma camada da função para a outra. $e'a o exemplo+ int count (void) static int num,!;
num--; return num;
"
função count() retorna o n/mero de vezes que ela 'á foi camada.
&est-o /0
/speci?icadores de lasse de rma7enamento)
register
O computador tem a mem%ria principal e os registradores da C01. s variáveis (assim como o programa como um todo) são armazenados na mem%ria. O modificador register diz ao compilador que a variável em questão deve ser& se possivel& usada em um registrador da C01. $ $elocidade $ 2ão pode ser glo#al $ 0edido do programador
&est-o /1 #include void func(); int i = 10; int main() { int i = 20; &*'(); printf("i= %d ", i); { int i = -0; &*'(); printf("i= %d ", i); } return 0; } void func() { printf("i = %d ", i); }
"#al a sa!da desse c$dio &
&est-o /1 #include void func(); int i = 10; int main() { int i = 20; &*'(); printf("i= %d ", i); { int i = -0; &*'(); printf("i= %d ", i); } return 0; } void func() { printf("i = %d ", i); }
/ssa #ma #estEo de escopo de ariBeis
primeira ariBel i ?oi de?inida n#m escopo loal e, portanto, tanto mainH como ?#ncH tem acesso a ela)
void func(); int i = 10; int main() { ... }
void func() { ... }
&est-o /1 #include void func(); int i = 10; int main() { int i = 20; &*'(); printf("i= %d ", i); { int i = -0; &*'(); printf("i= %d ", i); } return 0; } void func() { printf("i = %d ", i); }
/ssa ariBel i=20 local sorepAe a ariBel i loal *amamos a ?#n@Eo ?#ndH FEo *B motio para ter acesso a ariBel i declarada dentro do escopo mainH Portanto serB impresso o alor da ariBel i QO'RO) i=10
&est-o /1 #include void func(); int i = 10; int main() { int i = 20; &*'(); printf("i= %d ", i); { int i = -0; &*'(); printf("i= %d ", i); } return 0; } void func() { printf("i = %d ", i); }
ora iremos imprimir o alor da ariBel i declarada no escopo mainH J pois ela sorepAe a ariBel i QO'RO)
i=10 i=20
&est-o /1 #include void func(); int i = 10; int main() { int i = 20; &*'(); printf("i= %d ", i); { int i = -0; &*'(); printf("i= %d ", i); } return 0; } void func() { printf("i = %d ", i); }
Keclaramos #ma ariBel i dentro de #m Ss#JescopoT do main Hportanto ariBel local com o alor 30 /ssa ariBel sorepAe a ariBel i declarada dentro do escopo mainH e sorepAe a ariBel i declarada QO'RO
&est-o /1 #include void func(); int i = 10; int main() { int i = 20; &*'(); printf("i= %d ", i); { int i = -0; &*'(); printf("i= %d ", i); } return 0; } void func() { printf("i = %d ", i); }
*amamos a ?#n@Eo ?#ndH FEo *B motio para ter acesso a ariBel i declarada dentro do s#J escopo mainH
Portanto serB impresso o alor da ariBel i QO'RO)
i=10 i=20 i=10
&est-o /1 #include void func(); int i = 10; int main() { int i = 20; &*'(); printf("i= %d ", i); { int i = -0; &*'(); printf("i= %d ", i); } return 0; } void func() { printf("i = %d ", i); }
Kentro do s#Jescopo declarado em mainH a ariBel i tem alor 30, portanto esse alor serB impresso)
i=10 i=20 i=10 i=30
&est-o /2 #include func(int , int b) { int t#/p; t#/p = ; = b; b = t#/p; } int main() { int = 10, b = 20; &*'(, b); printf(" = %d, b = %d", , b); return 0; }
"#al a sa!da desse c$dio &
&est-o /2 #include func(int , int b) { int t#/p; t#/p = ; = b; b = t#/p; } int main() { int = 10, b = 20; &*'(, b); printf(" = %d, b = %d", , b); return 0; }
/sse c$dio U sore passaem de parVmetro) por alor e por re?er;ncia "#ando c*amamos a ?#n@Eo ?#nc HWa, , a passado por re?er;ncia e passado por alor Isso #er di7er #e se a ?#n@Eo ?#nc modi?icar SaT a ariBel serB realmente modi?icada e a ?#n@Eo modi?icar ST, contin#a inalterado
&est-o /2 #include func(int , int b) { int t#/p; t#/p = ; = b; b = t#/p; } int main() { int = 10, b = 20; &*'(, b); printf(" = %d, b = %d", , b); return 0; }
a=10 e =20
&est-o /2 #include func(int , int b) { int t#/p; t#/p = ; = b; b = t#/p; } int main() { int = 10, b = 20; &*'(, b); printf(" = %d, b = %d", %d" , , b); return 0; }
*amamos a ?#n@Eo ?#nc
&est-o /2 #include func(int , int b) { int t#/p; t#/p = ; = b; b = t#/p; } int main() { int = 10, b = 20; &*'(, b); printf(" = %d, b = %d", %d" , , b); return 0; }
Para as ariBeis locais da ?#n@Eo ?#nc)
temp = Xa, portanto temp=10 Xa=, portando a=20
=temp, portanto =10
&est-o /2 #include func(int , int b) { int t#/p; t#/p = ; = b; b = t#/p; } int main() { int = 10, b = 20; &*'(, b); printf(" = %d, b = %d", %d" , , b); return 0; }
o sair da ?#n@Eo ?#ncH a ariBel a do escopo mainH so?re# as altera@Aes em ?#nc o# sea, a ale 20 CB a ariBel do escopo mainH contin#o# inalterada, portanto, 20
ssim) a=20, =20
&est-o /3 #include int concurso(int 10, int ) { int i = 0; int s = 9; int /; while (i <= s) { / = i 3 (s i) 4 2; if ( == /) return /; else if ( < /) s = / 1; else i = / 3 1; } return 1; } int main(int $, char $) { int 10 = { 1, -, 5, , 9, 11, 1-, 15, 1, 19 }; printf("%d'", o'*$so(, -)); return 0; }
"#estEo de l$ica "#al a sa!da do c$dio ao lado &
&est-o /3 #include int concurso(int 10, int ) { int i = 0; int s = 9; int /; while (i <= s) { / = i 3 (s i) 4 2; if ( == /) return /; else if ( < /) s = / 1; else i = / 3 1; } return 1; } int main(int $, char $) { int 10 = { 1, -, 5, , 9, 11, 1-, 15, 1, 19 }; printf("%d'", o'*$so(, -)); return 0; }
Netor 0 1 2 3 + 5
1 3 5 Y 9 11 13 15 1Y 19
6
conc#rsoH,3
Y
Z
9
&est-o /3 #include int concurso(int 10, int ) { int i = 0; int s = 9; int /; while (i <= s) { / = i 3 (s i) 4 2; if ( == /) return /; else if ( < /) s = / 1; else i = / 3 1; } return 1; } int main(int $, char $) { int 10 = { 1, -, 5, , 9, 11, 1-, 15, 1, 19 }; printf("%d'", o'*$so(, -)); return 0; }
L#n@Eo conc#rso) I=0, s=9
[*ile Hi<=s m=08H9J0\2
m=+
c == ]m&&&
3 == ]+& 3 == 9 && nEo 4
as c<]m, portanto
s,345& s,6
&est-o /3 #include int concurso(int 10, int ) { int i = 0; int s = 9; int /; while (i <= s) { / = i 3 (s i) 4 2; if ( == /) return /; else if ( < /) s = / 1; else i = / 3 1; } return 1; } int main(int $, char $) { int 10 = { 1, -, 5, , 9, 11, 1-, 15, 1, 19 }; printf("%d'", o'*$so(, -)); return 0; }
L#n@Eo conc#rso) i=0, s=3
:*ile Hi<=s m=08H3J0\2
m=1
c == ]m&&&
3 == ]1& 3 == 3 && I4
Return m& ou se'a return 5
ssim, conc#rsoH,2 → 1
_ impresso na tela 1
&est-o /4
Proa) /Q.F.I' J 2010 J IRQ/ J nalista de istemas J #porte
Para os rec#rsos presentes na lin#aem de prorama@Eo , sEo ?eitas as a?irmatias aaixo
I J Permite acesso de aixo n!el atras da introd#@Eo de c$dio sseml- no prorama
II J passaem de parVmetros por re?er;ncia para ?#n@Aes pode ser sim#lada atras da #tili7a@Eo de ponteiros
III J ' tipo de dados t-pede? sEo estr#t#ras ariBeis #e permitem #e dados relacionados seam cominados e manip#lados como #m todo
/stBHEo corretaHs aHs a?irmatiaHs
a I, apenas
II, apenas
c III, apenas
d I e II, apenas
e I, II e III
&est-o /4
I J Permite acesso de aixo n!el atras da introd#@Eo de c$dio sseml- no prorama #include int main() { int $1=2, $2=-, dd, s*b, /*l ; __asm__ ( "ddl %%#b, %%#;" 7 "=" (dd) 7 "" ($1) , "b" ($2) ); __asm__ ( "s*bl %%#b, %%#;" 7 "=" (s*b) 7 "" ($1) , "b" ($2) ); __asm__ ( "i/*ll %%#b, %%#;" 7 "=" (/*l) 7 "" ($1) , "b" ($2) ); printf( "%d 3 %d = %d'", $1, $2, dd ); printf( "%d %d = %d'", $1, $2, s*b ); printf( "%d %d = %d'", $1, $2, /*l ); return 0 ; }
&est-o /4
II J passaem de parVmetros por re?er;ncia para ?#n@Aes pode ser sim#lada atras da #tili7a@Eo de ponteiros #include void troca(int , int b) { int t#/p; t#/p = ; = b; b = t#/p; } int main() { int = 2, b = -; printf("8't#s d# h/$ &*':o 7'=%d'b=%d'", , b); t$o(, b); printf("#pois d# h/$ &*':o7'=%d'b=%d'", , b); return 0; } 8't#s d# h/$ &*':o 7 =2 b=#pois d# h/$ &*':o7 =b=2
&est-o /4
II J passaem de parVmetros por re?er;ncia para ?#n@Aes pode ser sim#lada atras da #tili7a@Eo de ponteiros
/m P`P
<php function so/(lo$) { lo$ = lo$ 3 10; } o'tdo$ = 0; so/ ( o'tdo$ ); echo o'tdo$; >
&est-o /4
III J ' tipo de dados t-pede? sEo estr#t#ras ariBeis #e permitem #e dados relacionados seam cominados e manip#lados como #m todo #include int main(void){ typedef struct { char 'o/#-0; float /t#/ti, &isi, /#di; }8l*'os; 8l*'os l*'os-; int o*'t; for(o*'t = 0 ; o*'t < - ; o*'t33){ fflush(stdi'); &p*$#(stdi'); printf("'?o/# do l*'o %d7 ", o*'t31); gets(l*'oso*'t.'o/#); printf("?ot d# /t#/ti7 "); scanf("%&", l*'oso*'t./t#/ti); printf("?ot d# &isi7 "); scanf("%&", l*'oso*'t.&isi); l*'oso*'t./#di = (l*'oso*'t./t#/ti 3 l*'oso*'t.&isi)42; } return 0; }
&est-o /4
Proa) /Q.F.I' J 2010 J IRQ/ J nalista de istemas J #porte
Para os rec#rsos presentes na lin#aem de prorama@Eo , sEo ?eitas as a?irmatias aaixo
I J Permite acesso de aixo n!el atras da introd#@Eo de c$dio sseml- no prorama
II J passaem de parVmetros por re?er;ncia para ?#n@Aes pode ser sim#lada atras da #tili7a@Eo de ponteiros
III J ' tipo de dados t-pede? sEo estr#t#ras ariBeis #e permitem #e dados relacionados seam cominados e manip#lados como #m todo
/stBHEo corretaHs aHs a?irmatiaHs
a I, apenas
II, apenas
c III, apenas
d I e II, apenas apenas e I, II e III
&est-o /5
Proa) /P/ J 2009 J IF/G.' J nalista /xec#tio em etroloia e "#alidade J .edes J Parte II onsiderando o c$dio em lin#aem acima, #l#e o item aaixo #include #define @ABC 6 char y!tr(char s, int ', int i){ for(i=0;i<'42;i33){ s'=(s3i); si=s'i1; } (s3'i1)=(s3'); (s3')=D0D; return s; } int main(void){ char st$@ABC="bd#"; int i=0; printf("%s'",EF@t$(st$,@ABC1,i)); for(;i
' incl#de da lin*a 1 desnecessBrio nesse prorama, #ma e7 #e nEo c*amada nen*#ma ?#n@Eo da ilioteca stdio* no c$dio
erto
/rrado
&est-o /5
Proa) /P/ J 2009 J IF/G.' J nalista /xec#tio em etroloia e "#alidade J .edes J Parte II onsiderando o c$dio em lin#aem acima, #l#e o item aaixo #include #define @ABC 6 char y!tr(char s, int ', int i){ for(i=0;i<'42;i33){ s'=(s3i); si=s'i1; } (s3'i1)=(s3'); (s3')=D0D; return s; } int main(void){ char st$@ABC="bd#"; int i=0; printf("%s'",EF@t$(st$,@ABC1,i)); for(;i
' incl#de da lin*a 1 desnecessBrio nesse prorama, #ma e7 #e nEo c*amada nen*#ma ?#n@Eo da ilioteca stdio* no c$dio
erto
/rrado
&est-o )/
Proa) /P/ J 2009 J IF/G.' J nalista /xec#tio em etroloia e "#alidade J .edes J Parte II onsiderando o c$dio em lin#aem acima, #l#e o item aaixo #include #define @ABC 6 char y!tr(char s, int ', int i){ for(i=0;i<'42;i33){ s'=(s3i); si=s'i1; } (s3'i1)=(s3'); (s3')=D0D; return s; } int main(void){ char st$@ABC="bd#"; int i=0; printf("%s'",EF@t$(st$,@ABC1,i)); for(;i
?#n@Eo -tr recee tr;s parVmetros como ar#mento Godos eles sEo parVmetros por re?er;ncia
erto
/rrado
&est-o )/
Proa) /P/ J 2009 J IF/G.' J nalista /xec#tio em etroloia e "#alidade J .edes J Parte II onsiderando o c$dio em lin#aem acima, #l#e o item aaixo #include #define @ABC 6 char y!tr(char s, int ', int i){ for(i=0;i<'42;i33){ s'=(s3i); si=s'i1; } (s3'i1)=(s3'); (s3')=D0D; return s; } int main(void){ char st$@ABC="bd#"; int i=0; printf("%s'",EF@t$(st$,@ABC1,i)); for(;i
?#n@Eo -tr recee tr;s parVmetros como ar#mento Godos eles sEo parVmetros por re?er;ncia
erto
/rrado
&est-o ))
Proa) /P/ J 2009 J IF/G.' J nalista /xec#tio em etroloia e "#alidade J .edes J Parte II onsiderando o c$dio em lin#aem acima, #l#e o item aaixo #include #define @ABC 6 char y!tr(char s, int ', int i){ for(i=0;i<'42;i33){ s'=(s3i); si=s'i1; } (s3'i1)=(s3'); (s3')=D0D; return s; } int main (void){ char st$@ABC="bd#"; int i=0; printf("%s'",EF@t$(st$,@ABC1,i)); for(;i
lin*a Z, #e ?a7 parte da ?#n@Eo -tr , poderia ser retirada
sem pre#!7o ao c$dio e sa!da erada
erto
/rrado
&est-o ))
Proa) /P/ J 2009 J IF/G.' J nalista /xec#tio em etroloia e "#alidade J .edes J Parte II onsiderando o c$dio em lin#aem acima, #l#e o item aaixo #include #define @ABC 6 char y!tr(char s, int ', int i){ for(i=0;i<'42;i33){ s'=(s3i); si=s'i1; } (s3'i1)=(s3'); (s3')=D0D; return s; } int main (void){ char st$@ABC="bd#"; int i=0; printf("%s'",EF@t$(st$,@ABC1,i)); for(;i
lin*a Z, #e ?a7 parte da ?#n@Eo -tr , poderia ser retirada
sem pre#!7o ao c$dio e sa!da erada
erto
/rrado
&est-o )*
Proa) /P/ J 2009 J IF/G.' J nalista /xec#tio em etroloia e "#alidade J .edes J Parte II onsiderando o c$dio em lin#aem acima, #l#e o item aaixo #include #define @ABC 6 char y!tr(char s, int ', int i){ for(i=0;i<'42;i33){ s'=(s3i); si=s'i1; } (s3'i1)=(s3'); (s3')=D0D; return s; } int main(void){ char st$@ABC="bd#"; int i=0; printf("%s'",EF@t$(st$,@ABC1,i)); for(;i
Fa lin*a 5,s]n representa a posi@Eo do elemento #e estB
na sexta posi@Eo do arra- Xs
erto
/rrado
&est-o )*
Proa) /P/ J 2009 J IF/G.' J nalista /xec#tio em etroloia e "#alidade J .edes J Parte II onsiderando o c$dio em lin#aem acima, #l#e o item aaixo #include #define @ABC 6 char y!tr(char s, int n int n, int i){ for(i=0;i<'42;i33){ s'=(s3i); si=s'i1; } (s3'i1)=(s3'); (s3')=D0D; return s; } int main(void){ char st$@ABC="bd#"; int i=0; printf("%s'",EF@t$(st$,!$%&1,i)); for(;i
Fa lin*a 5,s]n representa a posi@Eo do elemento #e estB
na sexta posi@Eo do arra- Xs
erto
/rrado
&est-o )+
Proa) /P/ J 2009 J IF/G.' J nalista /xec#tio em etroloia e "#alidade J .edes J Parte II onsiderando o c$dio em lin#aem acima, #l#e o item aaixo #include #define @ABC 6 char y!tr(char s, int ', int i){ for(i=0;i<'42;i33){ s'=(s3i); si=s'i1; } (s3'i1)=(s3'); (s3')=D0D; return s; } int main(void){ char st$@ABC="bd#"; int i=0; printf("%s'",EF@t$(st$,@ABC1,i)); for(;i
?#n@Eo -tr retorna #m ponteiro
erto
/rrado
&est-o )+
Proa) /P/ J 2009 J IF/G.' J nalista /xec#tio em etroloia e "#alidade J .edes J Parte II onsiderando o c$dio em lin#aem acima, #l#e o item aaixo #include #define @ABC 6 char 'y!tr(char s, int ', int i){ for(i=0;i<'42;i33){ s'=(s3i); si=s'i1; } (s3'i1)=(s3'); (s3')=D0D; return s; } int main(void){ char st$@ABC="bd#"; int i=0; printf("%s'",EF@t$(st$,@ABC1,i)); for(;i
?#n@Eo -tr retorna #m ponteiro
erto
/rrado
&est-o )0
Proa) /P/ J 2009 J IF/G.' J nalista /xec#tio em etroloia e "#alidade J .edes J Parte II onsiderando o c$dio em lin#aem acima, #l#e o item aaixo #include #define @ABC 6 char y!tr(char s, int ', int i){ for(i=0;i<'42;i33){ s'=(s3i); si=s'i1; } (s3'i1)=(s3'); (s3')=D0D; return s; } int main(void){ char st$@ABC="bd#"; int i=0; printf("%s'",EF@t$(st$,@ABC1,i)); for(;i
/sse c$dio poss#i d#as sa!das, prod#7idas nas lin*as 13 e
15, #e sEo i#ais
erto
/rrado
&est-o )0
Proa) /P/ J 2009 J IF/G.' J nalista /xec#tio em etroloia e "#alidade J .edes J Parte II onsiderando o c$dio em lin#aem acima, #l#e o item aaixo #include #define @ABC 6 char y!tr(char s, int ', int i){ for(i=0;i<'42;i33){ s'=(s3i); si=s'i1; } (s3'i1)=(s3'); (s3')=D0D; return s; } int main(void){ char st$@ABC="bd#"; int i=0; printf("%s'",EF@t$(st$,@ABC1,i)); for(;i
/sse c$dio poss#i d#as sa!das, prod#7idas nas lin*as 13 e
15, #e sEo i#ais
erto
/rrado
&est-o )1
Proa) /P/ J 2009 J G./JQ' J Proramador de comp#tador
char p; float p; float ; =6.5; p=; p = (char )p;
onsiderando as de?ini@Aes em lin#aem mostradas acima, assinale a op@Eo correta
a #tili7a@Eo de Hc*arX #m cast, #e conerte #m tipo de dados em o#tro
s ariBeis px e pc apontam para posi@Aes de mem$ria di?erentes
c _ correto a?irmar #e px 8 1 e HXpc 8 1 apontam para as mesmas posi@Aes de mem$ria
d e px #m ponteiro para a ariBel x de tipo ?loat, a expressEo px 8 1 se re?ere ao -te se#inte na mem$ria, a partir do endere@o de x
&est-o )1
Proa) /P/ J 2009 J G./JQ' J Proramador de comp#tador
char p; float p; float ; =6.5; p=; p = (char )p;
onsiderando as de?ini@Aes em lin#aem mostradas acima, assinale a op@Eo correta
a #tili7a@Eo de Hc*arX #m cast, #e conerte #m tipo de dados em o#tro
G*e Prorammin Oan#ae JJ FI
Rrian [ berni*an W Kennis .itc*ie
Prentice `all, 19ZZ
Ht*e Hc*arX in t*e last line is a cast, :*ic* conerts one data t-pe to anot*er, anot*er px and pc ot* point to t*e same location in memor-JJt*e address o? xJJ#t px 8 1 and pc 8 1 point to di??erent memor- locations
&est-o )1
Proa) /P/ J 2009 J G./JQ' J Proramador de comp#tador
char p; float p; float ; =6.5; p=; p = (char )p;
onsiderando as de?ini@Aes em lin#aem mostradas acima, assinale a op@Eo correta
s ariBeis px e pc apontam para posi@Aes de mem$ria di?erentes
G*e Prorammin Oan#ae JJ FI
Rrian [ berni*an W Kennis .itc*ie
Prentice `all, 19ZZ
Ht*e Hc*arX in t*e last line is a cast, :*ic* conerts one data t-pe to anot*er, px and pc ot* point to t*e same location in memor-JJt*e address o? xJJ#t px 8 1 and pc 8 1 memorpoint to di??erent memor- locations
&est-o )1
Proa) /P/ J 2009 J G./JQ' J Proramador de comp#tador
char p; float p; float ; =6.5; p=; p = (char )p;
onsiderando as de?ini@Aes em lin#aem mostradas acima, assinale a op@Eo correta
c _ correto a?irmar #e px 8 1 e HXpc 8 1 apontam para as mesmas posi@Aes de mem$ria
FVo estB comparando endere@o de mem$ria Px #m endere@o de mem$ria e Xpc o alor n#m endere@o de mem$ria 4
&est-o )1
Proa) /P/ J 2009 J G./JQ' J Proramador de comp#tador
char p; float p; float ; =6.5; p=; p = (char )p;
onsiderando as de?ini@Aes em lin#aem mostradas acima, assinale a op@Eo correta
d e px #m ponteiro para a ariBel x de tipo ?loat, a expressEo px 8 1 se re?ere ao -te se#inte na mem$ria, a partir do endere@o de x
G*e Prorammin Oan#ae JJ FI
Rrian [ berni*an W Kennis .itc*ie
Prentice `all, 19ZZ
Ht*e Hc*arX in t*e last line is a cast, :*ic* conerts one data t-pe to anot*er, px and pc ot* point to t*e same location in memor-JJt*e address o? xJJ#t px 8 1 and pc 8 1 point to di??erent memor- locations
&est-o )2
Proa) /P/ J 2009 J G./JQ' J Proramador de comp#tador #include void echange(int , int b); int main(void) { int = 5; int b = ; #h'#(, b); printf("= %d, b= %d '", , b); } void echange(int , int b) { int t#/p; t#/p = ; = b; b = t#/p; printf("= %d, b= %d '", , b); }
om rela@Eo exec#@Eo do c$dio em lin#aem acima, assinale a op@Eo correta
a ' c$dio nEo serB exec#tado pois tem erros de sintaxe, o #e res#ltarB em erros de compila@Eo
' prorama imprimirB a = Y, = 5 em #ma lin*a e,na se#inte, a = Y, = 5
c ' prorama imprimirB a = Y, = 5 em #ma lin*a e,na lin*a se#inte, a = 5, = Y
d ' prorama imprimirB a = Y, = 5 d#as e7es na mesma lin*a
&est-o )2
Proa) /P/ J 2009 J G./JQ' J Proramador de comp#tador #include void echange(int , int b); int main(void) { int = 5; int b = ; #h'#(, b); printf("= %d, b= %d '", , b); } void echange(int , int b) { int t#/p; t#/p = ; = b; b = t#/p; printf("= %d, b= %d '", , b); }
om rela@Eo exec#@Eo do c$dio em lin#aem acima, assinale a op@Eo correta
a ' c$dio nEo serB exec#tado pois tem erros de sintaxe, o #e res#ltarB em erros de compila@Eo
' prorama imprimirB a = Y, = 5 em #ma lin*a e,na se#inte, a = Y, = 5
c ' prorama imprimirB a = Y, = 5 em #ma lin*a e,na lin*a se#inte, a = 5, = Y
d ' prorama imprimirB a = Y, = 5 d#as e7es na mesma lin*a
&est-o )3
Proa) PMJP. J 2010 J 'P/O J nalista de istemas Cnior
#al o oetio da ?#n@Eo ?:rite da lin#aem ,#e tem se# prot$tipo presente no ar#io stdio* &
Kescarrear o #??er pendente de raa@Eo em #ma stream
R Qraar #ma #antidade de -tes de #ma reiEo de mem$ria em #ma stream
Qraar #ma reiEo de mem$ria em #ma ariBel
K Qraar #ma trin in?ormada como parVmetro em #m ar#io texto MsarB o caractere terminador S0T para identi?icar o ?inal da trin
/ Qraar #ma trin in?ormada como parVmetro em #m ocet MsarB o caractere terminador S0T para identi?icar o ?inal da trin
&est-o )3
Proa) PMJP. J 2010 J 'P/O J nalista de istemas Cnior
#al o oetio da ?#n@Eo ?:rite da lin#aem ,#e tem se# prot$tipo presente no ar#io stdio* &
's ar#ios em sEo denominados G./
Mm G./ associado a #m ar#io por #ma opera@Eo de aert#ra do ar#io e, a partir da associa@Eo, todas as demais opera@Aes de escrita e leit#ra podem ser reali7adas
?:riteH ) Qraa #m con#nto de dados *etero;neos Hstr#ct no ar#io
&est-o )3
Proa) PMJP. J 2010 J 'P/O J nalista de istemas Cnior
#al o oetio da ?#n@Eo ?:rite da lin#aem ,#e tem se# prot$tipo presente no ar#io stdio* &
Kescarrear o #??er pendente de raa@Eo em #ma stream
R Qraar #ma #antidade de -tes de #ma reiEo de mem$ria em #ma stream Qraar #ma reiEo de mem$ria em #ma ariBel
K Qraar #ma trin in?ormada como parVmetro em #m ar#io texto MsarB o caractere terminador S0T para identi?icar o ?inal da trin
/ Qraar #ma trin in?ormada como parVmetro em #m ocet MsarB o caractere terminador S0T para identi?icar o ?inal da trin
&est-o )4
Proa) FM/P/ J 2009 J /KMJPI J Pro?essor J In?ormBtica
onsidere a instr#@Eo em lin#aem ) int a = si7eo?H?loatf ' alor arma7enado em a )
a 2
+
c 6
d Z
e 10
&est-o )4
Proa) FM/P/ J 2009 J /KMJPI J Pro?essor J In?ormBtica
onsidere a instr#@Eo em lin#aem ) int a = si7eo?H?loatf ' alor arma7enado em a )
a 2
+ c 6
d Z
e 10
c*ar) 1 -te
s*ort) 2 -tes
int) + -tes
lon) + -tes
?loat) + -tes
do#le ) Z -tes
&est-o )5
Proa) FM/P/ J 2009 J /KMJPI J Pro?essor J In?ormBtica
ssinale a alternatia #e mostra o operador l$ico 'M em lin#aem )
a gg
hh
c WW
d 'r
e
&est-o )5
Proa) FM/P/ J 2009 J /KMJPI J Pro?essor J In?ormBtica
ssinale a alternatia #e mostra o operador l$ico 'M em lin#aem )
a gg
hh c WW
d 'r
e
&est-o */
Proa) LMFIN/. J 2012 J PJKL J Perito riminal J In?ormBtica
Fa maioria das lin#aens de prorama@Eo, as estr#t#ras de controle de ?l#xo sEo ?#ndamentais para a cria@Eo de proramas eleantes e de ?Bcil entendimento ssinale a alternatia correta com rela@Eo aos comandos de controle de ?l#xo da lin#aem , saendo #e o comando ?or apresenta a se#inte ?orma eral) for (inicialização;condição;incremento) declaração;
a FEo permitido omitir a condi@Eo no comando ?or, pois nEo existiria maneira de parar o la@o in?inito
PodeJse omitir a declara@Eo, e, mesmo assim, o comando ?or ainda serB Blido
c em os comandos de controle de ?l#xo, s$ *aeria #ma maneira de o prorama ser exec#tado) de aixo para cima e comando por comando
d ' comando contin#e #sado dentro de #m la@o exec#ta a pr$xima lin*a de c$dio independentemente do ?ato de ela estar dentro o# ?ora do la@o
e ' comando ?or arante #e o la@o sea exec#tado pelo menos #ma e7
&est-o */
Proa) LMFIN/. J 2012 J PJKL J Perito riminal J In?ormBtica
Fa maioria das lin#aens de prorama@Eo, as estr#t#ras de controle de ?l#xo sEo ?#ndamentais para a cria@Eo de proramas eleantes e de ?Bcil entendimento ssinale a alternatia correta com rela@Eo aos comandos de controle de ?l#xo da lin#aem , saendo #e o comando ?or apresenta a se#inte ?orma eral) for (inicialização;condição;incremento) declaração;
a FEo permitido omitir a condi@Eo no comando ?or, pois nEo existiria maneira de parar o la@o in?inito
PodeJse omitir a declara@Eo, e, mesmo assim, o comando ?or ainda serB Blido
c em os comandos de controle de ?l#xo, s$ *aeria #ma maneira de o prorama ser exec#tado) de aixo para cima e comando por comando
d ' comando contin#e #sado dentro de #m la@o exec#ta a pr$xima lin*a de c$dio independentemente do ?ato de ela estar dentro o# ?ora do la@o
e ' comando ?or arante #e o la@o sea exec#tado pelo menos #ma e7
&est-o */
Proa) LMFIN/. J 2012 J PJKL J Perito riminal J In?ormBtica
Fa maioria das lin#aens de prorama@Eo, as estr#t#ras de controle de ?l#xo sEo ?#ndamentais para a cria@Eo de proramas eleantes e de ?Bcil entendimento ssinale a alternatia correta com rela@Eo aos comandos de controle de ?l#xo da lin#aem , saendo #e o comando ?or apresenta a se#inte ?orma eral) for (inicialização;condição;incremento) declaração;
a FEo permitido omitir a condi@Eo no comando ?or, pois nEo existiria maneira de parar o la@o in?inito
PodeJse omitir a declara@Eo, e, mesmo assim, o comando ?or ainda serB Blido
c em os comandos de controle de ?l#xo, s$ *aeria #ma maneira de o prorama ser exec#tado) de aixo para cima e comando por comando
d ' comando contin#e #sado dentro de #m la@o exec#ta a pr$xima lin*a de c$dio independentemente do ?ato de ela estar dentro o# ?ora do la@o
e ' comando ?or arante #e o la@o sea exec#tado pelo menos #ma e7
&est-o */
Proa) LMFIN/. J 2012 J PJKL J Perito riminal J In?ormBtica
Fa maioria das lin#aens de prorama@Eo, as estr#t#ras de controle de ?l#xo sEo ?#ndamentais para a cria@Eo de proramas eleantes e de ?Bcil entendimento ssinale a alternatia correta com rela@Eo aos comandos de controle de ?l#xo da lin#aem , saendo #e o comando ?or apresenta a se#inte ?orma eral) for (inicialização;condição;incremento) declaração;
a FEo permitido omitir a condi@Eo no comando ?or, pois nEo existiria maneira de parar o la@o in?inito
PodeJse omitir a declara@Eo, e, mesmo assim, o comando ?or ainda serB Blido
c em os comandos de controle de ?l#xo, s$ *aeria #ma maneira de o prorama ser exec#tado) de aixo para cima e comando por comando
d ' comando contin#e #sado dentro de #m la@o exec#ta a pr$xima lin*a de c$dio independentemente do ?ato de ela estar dentro o# ?ora do la@o
e ' comando ?or arante #e o la@o sea exec#tado pelo menos #ma e7
&est-o */
Proa) LMFIN/. J 2012 J PJKL J Perito riminal J In?ormBtica
Fa maioria das lin#aens de prorama@Eo, as estr#t#ras de controle de ?l#xo sEo ?#ndamentais para a cria@Eo de proramas eleantes e de ?Bcil entendimento ssinale a alternatia correta com rela@Eo aos comandos de controle de ?l#xo da lin#aem , saendo #e o comando ?or apresenta a se#inte ?orma eral) for (inicialização;condição;incremento) declaração;
a FEo permitido omitir a condi@Eo no comando ?or, pois nEo existiria maneira de parar o la@o in?inito
PodeJse omitir a declara@Eo, e, mesmo assim, o comando ?or ainda serB Blido
c em os comandos de controle de ?l#xo, s$ *aeria #ma maneira de o prorama ser exec#tado) de aixo para cima e comando por comando
d ' comando contin#e #sado dentro de #m la@o exec#ta a pr$xima lin*a de c$dio independentemente do ?ato de ela estar dentro o# ?ora do la@o
e ' comando ?or arante #e o la@o sea exec#tado pelo menos #ma e7
&est-o */
Proa) LMFIN/. J 2012 J PJKL J Perito riminal J In?ormBtica
Fa maioria das lin#aens de prorama@Eo, as estr#t#ras de controle de ?l#xo sEo ?#ndamentais para a cria@Eo de proramas eleantes e de ?Bcil entendimento ssinale a alternatia correta com rela@Eo aos comandos de controle de ?l#xo da lin#aem , saendo #e o comando ?or apresenta a se#inte ?orma eral) for (inicialização;condição;incremento) declaração;
a FEo permitido omitir a condi@Eo no comando ?or, pois nEo existiria maneira de parar o la@o in?inito
PodeJse omitir a declara@Eo, e, mesmo assim, o comando ?or ainda serB Blido
c em os comandos de controle de ?l#xo, s$ *aeria #ma maneira de o prorama ser exec#tado) de aixo para cima e comando por comando
d ' comando contin#e #sado dentro de #m la@o exec#ta a pr$xima lin*a de c$dio independentemente do ?ato de ela estar dentro o# ?ora do la@o
e ' comando ?or arante #e o la@o sea exec#tado pelo menos #ma e7
&est-o *)
/xame Facional para Inresso na P$sJQrad#a@Eo em omp#ta@Eo 30\09\2012
Fas lin#aens de prorama@Eo, #ma #estEo importante o escopo das declara@Aes Por exemplo, o escopo de #ma declara@Eo de x
a reiEo do prorama em #e os #sos de x se re?erem a essa declara@Eo Fesse sentido, a lia@Eo de #m nome a #m escopo pode ser estBtica o# dinVmica Fo prorama , a se#ir, o identi?icador x #ma macro composta pela expressEo 88- Por ser #ma macro, a resol#@Eo de x nEo reali7ada somente em termos do texto do prorama
om ase nessa exec#@Eo, assinale a alternatia #e apresenta, corretamente, a sa!da desse prorama
a 1 1
1 2
c 1 3
d 2 2
e 2 3
&est-o *)
/xame Facional para Inresso na P$sJQrad#a@Eo em omp#ta@Eo 30\09\2012
#include #define 33F int F = 2; void () { int F = 1; ", ); printf("%d ", } void () { ", ); printf("%d ", } int main() { E(); ?(); return 0; }
&est-o *)
/xame Facional para Inresso na P$sJQrad#a@Eo em omp#ta@Eo 30\09\2012
#include
int F = 2; void () { int F = 1; ", ,33F 33F); ); printf("%d " } void () { ", 33F); 33F); printf("%d ", } int main() { E(); ?(); return 0; }
&est-o *)
/xame Facional para Inresso na P$sJQrad#a@Eo em omp#ta@Eo 30\09\2012
Fas lin#aens de prorama@Eo, #ma #estEo importante o escopo das declara@Aes Por exemplo, o escopo de #ma declara@Eo de x
a reiEo do prorama em #e os #sos de x se re?erem a essa declara@Eo Fesse sentido, a lia@Eo de #m nome a #m escopo pode ser estBtica o# dinVmica Fo prorama , a se#ir, o identi?icador x #ma macro composta pela expressEo 88- Por ser #ma macro, a resol#@Eo de x nEo reali7ada somente em termos do texto do prorama
om ase nessa exec#@Eo, assinale a alternatia #e apresenta, corretamente, a sa!da desse prorama
a 1 1
1 2
c 1 3
d 2 2
e 2 3
&est-o **
/xame Facional para Inresso na P$sJQrad#a@Eo em omp#ta@Eo 2013
nalise os trec*os de c$dio em lin#aem de prorama@Eo a se#ir Hpr$ximo slide
om ase nesses trec*os, assinale a alternatia correta
a ' Grec*o 1 imprimirB os alores da matri7 mat e o Grec*o 2 indicarB #m erro de sintaxe na iniciali7a@Eo do ponteiro
' Grec*o 1 imprimirB os alores da matri7 mat e o Grec*o 2 indicarB #m erro de sintaxe no la@o de repeti@Eo
c ' Grec*o 1 imprimirB os alores da matri7 mat e o Grec*o 2 imprimirB alores descon*ecidos alocados na mem$ria
d mos os trec*os de c$dio imprimirEo o mesmo contedo na tela
e mos os trec*os de c$dio indicarEo erro de sintaxe na iniciali7a@Eo da matri7 mat
&est-o **
/xame Facional para Inresso na P$sJQrad#a@Eo em omp#ta@Eo 2013 Grec*o 1
Grec*o 2
#include
#include
int main() { int /t22 = {{1,2}, {-,G}}; int i,H; for (i=0;i<2;i33) for (H=0;H<2;H33) printf("%d'",/tiH);
int main() { int /t22 = { { 1, 2 }, { -, G } }; int p = /t00; int i; for (i = 0; i < G; i33) printf("%d'", (p 3 i)); }
}
&est-o **
/xame Facional para Inresso na P$sJQrad#a@Eo em omp#ta@Eo 2013
nalise os trec*os de c$dio em lin#aem de prorama@Eo a se#ir Hpr$ximo slide
om ase nesses trec*os, assinale a alternatia correta
a ' Grec*o 1 imprimirB os alores da matri7 mat e o Grec*o 2 indicarB #m erro de sintaxe na iniciali7a@Eo do ponteiro
' Grec*o 1 imprimirB os alores da matri7 mat e o Grec*o 2 indicarB #m erro de sintaxe no la@o de repeti@Eo
c ' Grec*o 1 imprimirB os alores da matri7 mat e o Grec*o 2 imprimirB alores descon*ecidos alocados na mem$ria
d mos os trec*os de c$dio imprimirEo o mesmo contedo na tela
e mos os trec*os de c$dio indicarEo erro de sintaxe na iniciali7a@Eo da matri7 mat
Co$!&s-o &'ega!os
a(ui )
FIM &*+A+" *+*,MA- . &/-,"AAT*,&L3 115 Blo$o & -ala 207 a 210 Asa 3orte Bras%lia +8 &" 70976505 Tel: ;61< 55400455 = >>74464 = ?1740> "!ail: $urso$idade@ii$9pro9br -ite: 9ii$9pro9br -Cpe: luiD$idade