Mission 4: QCM

Mission 4. Manipulation de chaînes de caractères

Ces questions supposent que vous avez lu les sections suivantes du livre de référence JavaNotes

Les sections vues précédemment restent bien entendu d'actualité.


Question 1: Portée des variables

En Java, une déclaration de variable a comme portée la zone qui sépare la déclaration de la variable de la fin du bloc dans lequel elle apparaît. Une règle de bonne pratique est de déclarer chaque variable au début du bloc de la méthode dans laquelle elle est utilisée ou dans un bloc d'une boucle par exemple. Considérons la méthode définie comme suit

public static void showScope (int a, double r)
{
  int j=0;
  ... // ligne a
  for (int i = 0; ... ) {
  double y=0.0;
  ... // ligne c
  if(i>0) {
     boolean b=false;
     ... // ligne e
  }
  }
  ... // ligne f

}

Les propositions ci-dessous sont relatives à des instructions placées à certains lignes identifiées ci-dessus. Laquelle de ces propositions est-elle correcte ?

Question 2: Méthode contains

Laquelle des implémentations de la méthode contains dont la spécification et la signature sont reprises ci-dessous est-elle valide ?

/*
 * @pre s non vide
 * @post retourne true si le caractère c est présent dans la chaîne s et false sinon
 */

public static boolean contains(String s, char c)
Question 3: Portée des variables

Parmi les définitions de méthodes ci-dessous, quelle est celle qui affichera correctement 2012 à l'écran ?

Question 4: Surcharge de méthodes

En Java, il est possible de définir plusieurs méthodes qui ont le même nom pour autant qu'elles diffèrent par le nombre ou le type de leurs arguments. La méthode System.out.print par exemple est une méthode qui existe avec comme argument un entier, un caractères, une chaîne de caractères, un booléen. Considérons les déclarations de méthodes ci-dessous

public static void affiche(char c, int i) {
 System.out.println("char, int");
}

public static void affiche(int i, int j) {
 System.out.println("int, int");
}

public static void affiche(String s, double j) {
 System.out.println("String, double");
}

public static void affiche(String s, boolean b) {
 System.out.println("String, boolean");
}

Laquelle des séquences d'invocation suivantes affiche à l'écran

char, int
String, double
int, int
String, boolean
Question 5: Conversion de types

En Java, il existe différentes solutions pour convertir un nombre réel en un nombre entier. Considérons la variable p déclarée comme suit

double p=3.84;

Laquelle des instructions ci-dessous affiche-t-elle 3 à l'écran ?

Question 6: Conversion de types

Comme décrit dans la section 2.5.6 : Assignment Operators and Type-Casts du livre de référence, il est possible en Java de réaliser des conversions entre les nombres réels et les nombres entiers. Certaines de ces conversions sont explicites, d'autres sont implicites. Considérons le fragment de code ci-dessous

double f;
f=...; // ligne 1
System.out.println(f);

Lorsqu'il est exécuté, il affiche la valeur 2.0 à l'écran. Parmi les assignations ci-dessous, quelle est celle qui a placé la valeur 2.0 dans la variable f ?

Question 7: Chaînes de caractères

Considérons le code Java ci-dessous qui déclare et initialise des chaînes de caractères.

String s1="abcdefghijklmnopqrstuvwxyz";

Laquelle des séquences d'instructions ci-dessous affiche-t-elle OK à l'écran ?

Question 8: Extraction de chaînes de caractères

Dans la classe String, la méthode substring est une méthode efficace pour extraire une sous-chaîne d'une chaîne de caractères. En vous basant sur la description de substring dans le livre et dans la documentation Java http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html, lequel des fragments de code ci-dessous affiche-t-il la chaîne OK à l'écran ?

Question 9: Méthode indexOf

En Java, la méthode indexOf peut être utilisée pour déterminer si une chaîne de caractères est comprise dans une autre chaîne de caractères. Considérons les déclarations suivantes

String s1="abcdef";
String s2="mnopq";
String s3="abcdefijklmnopqrstuvwxyz";

Laquelle des séquences d'instructions ci-dessous affiche OK à l'écran ?

Question 10: Méthodes de la classe String

La classe String contient de nombreuses méthodes utiles de manipulation des chaînes de caractères. Certains retournent un booléen, d'autres retournent un caractère, d'autres encore retourne un String. En considérant les déclarations ci-dessous, quelle est la suite d'affirmations ci-dessous qui est vraie ?

String s1="abcdef";
String s2="mnopq";
String s3="abcdefijklmnopqrstuvwxyz";

Information

Author(s) Olivier BONAVENTURE
Deadline No deadline
Submission limit No limitation

Sign in