Vous êtes sur la page 1sur 6

Intra 1015 H2012

file:///U sers/pascal/Academic/Cours/IFf 10 15/H20 12/lntra_1 O

IFT1015, Hiver 2012

Professeur: Pascal Vincent

Examen Intra

Lundi 20 février 2012

Durée: lh45

Seule documentation permise: deux feuilles recto-verso (format letter, et sans loupe!) résumant le cours. L'utilisation de tout appareil électronique (ordinateur, ipad, ipod, calculatrice) est interdite durant l'examen, à l'exception d'une montre pour connaître l'heure

Prénom:

Nom:

Code permanent:

Le total de l'examen est sur 100 pts. Veuillez répondre aux questions dans les zones de blanc laissées à cet effet.

1) Variables et a1Jectations (10 pts)

Qu'affiche l'extrait de programme suivant (écrivez le en dessous de l'extrait)

int a,b,c,d;

char

ab;

a

=

10;

b

=

5;

c

=

a*b;

b

= a;

a

=

b;

ab

=

'b';

d

=

a+b+c;

System.out.println(a

+

"

"

+

b

+

"

"

+

c

+

"

"

+

d

+

"

"

+

(a+c)

+

"

"

+

ab);

2) Expressions (27 pts)

Soit un programme comportant les déclaration et initialisation de variables suivantes:

int allo

=

7;

int

b

=

2;

Strings=

"27";

Indiquez pour chacune des expressions ci-dessous (qui sont toutes valides), la valeur et le type du résultat de son évaluation.

Intra lOIS H2012

file:/1lUsers/pascal/Academic/Cours!IFf 10 l5/H20 12/Intra_l 0

Expression 1+3*2.0 allo+allo/b
Expression
1+3*2.0
allo+allo/b

b*(allo/b)+allo%b

(double)allo+allo/b

allo+(double)allo/b

"1+2*3"

r----1

~

1

~-------------

1+2*3

"(1+2)*3"

1

.---1

1

r------------------------.~.1-.~.+-2_*_3

1+"2*3"

'b'

1

.---1

'b'+s

l

s

+

allo

Integer.parselnt(s)

1.0+Integer.parselnt(s)

1+Integer.parselnt(s)+"l"

.---1

~

l

~---------~---

s.charAt(1)

s.substring(O,l)

.---------

s.substring(1,1)

b>=2

&&

b==3

l(b+2<allo)

1

--1

~

l

r-----

~--------------------------r---1

~

 

r---1

true

&&

1 true

false

11

1false

l

( "A"+s) .equals(

( "A"+b)+allo

 

r---------(-'_'A_'_'+_s_)

e_q_u_a_l_s_(

'-::'A-"-:-+_s

l e n_g:-t-h_(_)_+_a_l_l_o

r---- ~

 

7

7

l

 

3==2+1

&& (lfalse

11 b>allo)

.

 

1

Intra 1015 H2012

file:///Users/pascaUAcademic/Cours/IFf 10 15/H20 12/Intra_l 0

3) Conditions (20 pts)

Considérez le programme suivant:

public class Conditions { public static void main(String() args) { System.out.println("\n\nConditions appele
public
class
Conditions
{
public
static void main(String()
args)
{
System.out.println("\n\nConditions
appele
avec
arguments:
"+args[O]+"
"+args[l]+"
"+args[2));
int a=
Integer.parseint(args[O]);
int b = Integer.parseint(args[l]);
String c
=
args[2];
if(a==2)
{
if(a==3)
{
System.out.print("Koala
");
}
System.out.print("Licorne
");
}
el se
{
if(a==4)
{
System.out.print("Dragon
");
}
if ( a<=5)
{
System.out.print("Lion
");
}
else
if(lc.equals("lO"))
{
System.out.print( "Taureau
");
else
{
System.out.print("Chameau
");
}
System.out.print("Giraffe
");
}
if ( b<3 && ( a>b+c .length ( )
11 c. equals ("animal") ) )
System.out.print( "Elephant
el se
");
System.out.print( "Bonhomme
System.out.println();
");
}

Qu'affichera-t-il si on l'appelle des manières suivantes: (écrivez la réponse à chaque fois).

a) java Conditions 2 5 OK

b) java Conditions 3 7 animal

c) java Conditions 4 l animal

d) java Conditions 10 2 journal

Intra 1015 H2012

file://!Users/pascai/Academic/Cours/IFfi015/H2012/lntra_l0

4) Boucles (23 pts)

Écrivez, à droite de chacun des extraits de programme suivants ce qu'il afficherait à l'écran. Attention: tous ces estraits de code sont valides, compilables et peuvent être exécutés.

Extrait A: int i=5; while(i>O) { System.out.println(i); i--; Extrait B: int i 10; do System.out.println(i);
Extrait A:
int i=5;
while(i>O)
{
System.out.println(i);
i--;
Extrait B:
int
i
10;
do
System.out.println(i);
i--;
while(i==3);
System.out.println("i="+i);
Extrait C:
int
i;
for(i=lO;
i==5;
i--)
{
System.out.println(i);
System.out.println("i="+i);
Extrait D:
int p;
int v;
for(p=l,
v=2;
p<5
&&
v<20;
v=v•2,
p=p+l)
{
System.out.println(v);
}
System.out.println("p="+p);
ExtraitE:
int
i=O;
int
j=O;

while(i<3)

{

while( j<5)

{

System.out.println(j);

j++;

i++;

System.out.println("i="+i);

System.out.println("j="+j);

Écrivez d'abord à la droite de l'extraitE ce que le programme afficherait précisément dans son état actuel. Voyez-vous un oubli ou une mégarde potentielle du programmeur? Si oui, remédiez-y en apportant une légère modificaiton au programme (vous pouvez utliser un flèche pour indiquer la modification).

Intra 1015 H2012

Extrait F:

boolean c

for(int i=l;

=

true;

i<lO

&&

c;

i++)

{

 

if(i%2==0)

 

System.out.print(i);

else System.out.print("i");

if(2*i>=l6)

c

=

false;

}

System.out.println("

Fini");

file:/1lUsers/pascal/Academic/Cours/IFT 10 l5/H20 12/lntra_l O

Question G: dans l'extrait F, par quelle autre instruction simple aurait-on pu remplacer l'instruction c=false; pour obtenir un effet similaire, mais sans changer la valeur de cnide i? (Le programme produirait le même affichage)

Intra 1015 H2012

file://!Users/pascal/Academic/Cours/IFTIOI5/H2012/Intra_l0

5) Tableaux (20 pts)

Écrivez, pour chacun des extraits de programme suivants ce qu'il afficherait à l'écran

Extrait A:

int[)

tab

=new

int[10];

for(int

i=O;

i<tab.1ength;

i++)

tab[i)

=

i;

for(int

i=O;

i<tab.length;

i++)

System.out.print(tab[i]+"

");

System.out.println();

System.out.println("*****");

for(int

i=3;

i<tab.length-1;

i++)

tab[i]

= tab[i+1];

for(int

i=O;

i<tab.length;

i++)

System.out.print(tab[i]+'"

");

System.out.println();

Extrait B:

String[] chiffres= {"un","deux","trois","quAtre"}; String[] tm= new String[chiffres.length];

for(int

i=chiffres.length-1;

i>=O;

i=i-1)

{

 

String rn= chiffres[i];

String

s

=

'"'";

for (int j=m.length()-1; j>=O && m.charAt(j)I="A'; j--)

{

 

s

=

s+m.charAt(j);

 

}

tm[i]

=

s;

}

for(int

i=O;

i<tm.length;

i++)

System.out.println(tm[i));