Exercices sur la programmation impérative - langage C - correction, Exercices de Application informatique
Christophe
Christophe3 March 2014

Exercices sur la programmation impérative - langage C - correction, Exercices de Application informatique

PDF (93 KB)
10 pages
251Numéro de visites
Description
Exercices d’informatique sur la programmation impérative - langage C - correction. Les principaux thèmes abordés sont les suivants: exercices.
20points
Points de téléchargement necessaire pour télécharger
ce document
Télécharger le document
Aperçu3 pages / 10
Ceci c'est un aperçu avant impression
3 shown on 10 pages
Télécharger le document
Ceci c'est un aperçu avant impression
3 shown on 10 pages
Télécharger le document
Ceci c'est un aperçu avant impression
3 shown on 10 pages
Télécharger le document
Ceci c'est un aperçu avant impression
3 shown on 10 pages
Télécharger le document
en_pie2005.dvi

E.N.S.E.I.R.B.Filière Éle tronique 1ère annéeFilière Informatique 1ère annéeFilière Télé om 1ère année Année 2005-2006PROGRAMMATION IMPÉRATIVE - LANGAGE CCORRIGÉ Feuille 1Q1 . En C standard, les ommentaires s'é rivent entre :(A ) */. . . /*(B ) */. . . */ (C ) /*. . . /*(D X) /*. . . */Q2 . Un blo d'instru tions entre a olades {. . . } :(A ) Doit obligatoirement être suivi d'un point-virgule(B ) Peut éventuellement être suivi d'un point-virgule (C ) Ne doit être suivi d'un point-virgule que si 'est une dénition de fon tion(D X) Ne doit jamais être suivi d'un point-virguleQ3 . Un test s'é rit :(A ) if (expression) ; then instru tion(B X) if (expression) instru tion (C ) if [ expression ℄ ; then instru tion(D ) if (expression) then instru tionQ4 . Pour mettre le ontenu de la variable b dans la variable a si a est impair, et diviser a par 2 si a est pair,on peut é rire :(A ) a = ((a % 2) = 0) ? /= 2 : b;(B ) a = ((a % 2) == 0) ? /= 2 : b; (C X) if (a % 2) a = b; else a /= 2;(D ) a = (a % 2) ? a / 2 : b;Q5 . Pour disposer dans une fon tion f d'une variable i dont la valeur est préservée entre haque appel et quine soit pas visible de l'extérieur de la fon tion f, il faut la dénir en tant que :(A X)  stati int i;  à l'intérieur de f(B )  int i;  à l'intérieur de f (C )  stati int i;  à l'extérieur de f(D )  int i;  à l'extérieur de fQ6 . Pour ré upérer au lavier un entier et deux ara tères à pla er dans une variable i et les deux ases t[0℄et t[1℄ d'un tableau de deux ara tères, on peut é rire :1

(A X) s anf ("%d% % ", &i, t, t + 1)(B ) s anf ("%d% % ", &i, *t, *(t + 1)) (C ) s anf ("%d% % ", i, t[0℄, t[1℄)(D ) s anf ("%d% % ", &i, t)Q7 . Le orps de la bou le  for (i = 0; i <= 10; i ++) orps;  s'exé ute :(A ) 3 fois(B ) 7 fois (C ) 10 fois(D X) 11 foisQ8 . Le orps de la bou le  for (i = 1; i < 10; ) { ++ i; orps; }  s'exé ute :(A ) 3 fois(B X) 9 fois (C ) 11 fois(D ) Au une des réponses pré édentesQ9 . Le orps de la bou le  for (i = 0; i > 10; i ++) orps;  s'exé ute :(A X) 0 fois(B ) 6 fois (C ) 10 fois(D ) Au une des réponses pré édentesQ10 . Le orps de la bou le  for (i = 1; i < 10; i ++) orps; i ++;  s'exé ute :(A ) 2 fois(B ) 5 fois (C ) 10 fois(D X) Au une des réponses pré édentesQ11 . Le orps de la bou le  for (i = 0; i ++ < 10; i ++) orps;  s'exé ute :(A ) 1 fois(B X) 5 fois (C ) 9 fois(D ) 10 foisQ12 . Le orps de la bou le  for (i = 0; ++ i < 10; ) orps;  s'exé ute :(A ) 1 fois(B ) 4 fois (C X) 9 fois(D ) 10 foisQ13 . Le orps de la bou le  for (i = 1; i < 10; ) orps; i ++;  s'exé ute :(A ) 1 fois(B ) 6 fois (C ) 9 fois(D X) Au une des réponses pré édentesQ14 . Le orps de la bou le  for (i = 1; i < 10; i ++) { orps; if (i > 4) break; }  s'exé ute :(A ) 2 fois(B ) 3 fois (C ) 4 fois(D X) 5 foisQ15 . Le orps de la bou le  for (i = 1; i < 10; i ++) { orps; if (i > 4) ontinue; }  s'exé ute :(A ) 2 fois(B ) 5 fois (C X) 9 fois(D ) Au une des réponses pré édentesQ16 . Le orps de la bou le  for (i = 1; i < 10; i ++) { if (i % 2) ontinue; orps; }  s'exé ute :2

(A ) 3 fois(B X) 4 fois (C ) 9 fois(D ) Au une des réponses pré édentesQ17 . Le orps de la bou le  i = 0; while (i = 0) { orps; i ++; }  s'exé ute :(A X) 0 fois(B ) 1 fois (C ) 2 fois(D ) Au une des réponses pré édentesQ18 . Le orps de la bou le  i = 1; while (++ i < 10) orps;  s'exé ute :(A ) 7 fois(B X) 8 fois (C ) 9 fois(D ) 10 foisQ19 . Le orps de la bou le  i = 8; while (i /= 2, (i % 2) == 0) orps;  s'exé ute :(A ) 0 fois(B X) 2 fois (C ) 3 fois(D ) Au une des réponses pré édentesQ20 . Le orps de la bou le  i = 9; do orps; while (++ i < 10);  s'exé ute :(A X) 1 fois(B ) 2 fois (C ) 3 fois(D ) 4 foisQ21 . Le orps de la bou le  i = 0; do orps; while (i ++ < 10);  s'exé ute :(A ) 1 fois(B ) 9 fois (C ) 10 fois(D X) 11 foisQ22 . Le orps de la bou le imbriquée  for (i = 0; i < 3; i ++) for (j = 0; j <= i; j ++) orps; s'exé ute :(A ) 3 fois(B ) 5 fois (C X) 6 fois(D ) 10 foisQ23 . Si a et b sont dénis par  int a = 0x01011100;  et  int b = 0x11010001; , alors  (a & b) vaut :(A ) 0x11011101(B ) 0x01011001 (C X) 0x01010000(D ) 0x00000001Q24 . Si a et b sont dénis par  int a = 0x11000101;  et  int b = 0x01101110; , alors  (a | b) vaut :(A X) 0x11101111(B ) 0x01000100 (C ) 0x00000001(D ) Au une des réponses pré édentesQ25 . Si a et b sont dénis par  int a = 0x00100111;  et  int b = 0x00100110; , alors  (a  b) vaut : 3

(A ) 0x11011000(B X) 0x00000001 (C ) 0x00100111(D ) 0x00100110Q26 . Si a et b sont dénis par  int a = 0x10001011;  et  int b = 0x10110110; , alors  (a & b) vaut :(A ) 0x11110110(B X) 0x00001001 (C ) 0x00011001(D ) 0x11100110Q27 . Si a et b sont dénis par  int a = 0x01000101;  et  int b = 0x00000000; , alors  (a && b) vaut :(A ) 0x01000101(B ) 0x00000001 (C X) 0x00000000(D ) Au une des réponses pré édentesQ28 . Si i est déni par  int i; , alors  ('A' + i)  est de type :(A ) ( har)(B ) (short) (C X) (int)(D ) (long)Q29 . Si i est déni par  int i; , alors  (i * 2.0F)  est de type :(A ) (int)(B ) (long) (C X) (float)(D ) (double)Q30 . Si i est déni par  int i; , alors  ((float) i / 2.0)  est de type :(A ) (int)(B ) (long) (C ) (float)(D X) (double)Q31 . Si i est déni par  int i; , alors  i *= 2.0  est de type :(A X) (int)(B ) (long) (C ) (float)(D ) (double)Q32 . Si i et d sont dénis par  int i; double d; , alors  (a >= 0) ? i : d  est de type :(A ) (int)(B X) (double) (C ) (long)(D ) Cela dépendQ33 . Si i et d sont dénis par  int i; double d; , alors  (int) i % d  est de type :(A ) (int)(B ) (double) (C ) (long)(D X) C'est une expression erronéeQ34 . Si t est déni par  int * t; , alors  &(t[2℄ + 1)  est de type :(A ) (int *)(B ) (int **) (C ) (int)(D X) C'est une expression erronée4

Q35 . Si p est déni par  int * p; , alors  &p[1℄ + 1  est de type :(A ) (int)(B X) (int *) (C ) (int **)(D ) C'est une expression erronéeQ36 . Si t est déni par  int * t; , alors  t[*t℄  est de type :(A X) (int)(B ) (int *) (C ) (int **)(D ) C'est une expression erronéeQ37 . Si t est déni par  int * t; , alors  &t  est de type :(A ) (int)(B ) (int *) (C X) (int **)(D ) C'est une expression erronéeQ38 . Si t est déni par  int t[2℄; , alors  &t est de type :(A ) (int)(B ) (int *) (C ) (int **)(D X) C'est une expression erronéeQ39 . Si t est déni par  int t[2℄; , alors  &t[2℄ + 1  est de type :(A ) (int)(B X) (int *) (C ) (int **)(D ) C'est une expression erronéeQ40 . Si t est déni par  int * t; , alors  &(t[2℄ + 1)  est de type :(A ) (int)(B ) (int *) (C ) (int **)(D X) C'est une expression erronéeQ41 . Si t est déni par  int t[℄ = { 1, 0 }; , alors  t[t[*(t + 1)℄℄  vaut :(A X) 0(B ) 1 (C ) t(D ) C'est une expression erronéeQ42 . Si t est déni par  int t[℄ = { 1, 0 }; , alors  t[*(t + *t)℄  vaut :(A ) 0(B X) 1 (C ) t(D ) C'est une expression erronéeQ43 . Si t est déni par  int t[2℄[3℄ = { { 3, 4, 5 }, { 0, 1, 2 } }; , alors  t[0℄[4℄ vaut :(A ) 0(B X) 1 (C ) 5(D ) C'est une expression erronéeQ44 . Si t est déni par  int t[℄ = { 1, 0 }; , alors  *(*t + 1)  est de type :(A ) (int)(B ) (int *) (C ) (int **)(D X) C'est une expression erronée5

Q45 . Si t est déni par  int * t; , alors  &t  est de type :(A ) (int)(B ) (int *) (C X) (int **)(D ) C'est une expression erronéeQ46 . Si t est déni par  int t[℄ = { 1, 0 }; , alors  &t  est de type :(A ) (int)(B ) (int *) (C ) (int **)(D X) C'est une expression erronéeQ47 . Si t est déni par  int t[℄ = { 1, 0 }; , alors  *t  est de type :(A X) (int)(B ) (int *) (C ) (int **)(D ) C'est une expression erronéeQ48 . Si s et t sont dénis par  int t[℄ = { 1, 2, 3, 4, 5 }; int * s = t + 4 , alors  s[-2℄ vaut :(A ) 1(B X) 3 (C ) 4(D ) C'est une expression erronéeQ49 . Si Brol_ est dénie par  stru t Brol_ { int a; double d; }; , alors sizeof (Brol_) vaudra :(A X) Toujours au moins (sizeof(int) +sizeof(double))(B ) Toujours exa tement (sizeof(int) +sizeof(double)) (C ) Toujours au plus (sizeof(int) +sizeof(double))(D ) Au une des réponses pré édentesQ50 . Si Brol_ est dénie par  union Brol_ { int a; double d; }; , alors sizeof (Brol_) vaudra :(A ) Toujours au moins (sizeof(int) +sizeof(double))(B ) Toujours sizeof(int) (C X) Toujours sizeof(double)(D ) Au une des réponses pré édentesQ51 . Si un pointeur p sur une stru ture Brol_ est déni par  stru t Brol_ { int a; stru t { doublex, y; } t; } *p; , alors le hamp x de la stru ture Brol_ pointée par p est a édé par l'expression :(A ) p.t.x(B ) p->a.x (C ) p->t->x(D X) p->t.xQ52 . Si o1 et o2 sont deux variables de type stru turé Brol_, dénis par  stru t Brol_ { int a; stru t {double x, y; } t; } o1, o2; , alors la opie de tous les hamps de o2 dans les hamps de o1 s'é rit :(A ) o1.* = o2.*;(B X) o1 = o2; (C ) o1 <<= o2;(D ) o1 .= o2;Q53 . Si p est un pointeur sur un tableau de ara tères, alors p peut se dénir omme :(A X) har * p(B ) har * p [℄ (C ) ( har [℄) p *(D ) har ** p6

Q54 . Si p est un pointeur sur un tableau de double, alors p peut s'é rire :(A ) double ** p(B X) double * p (C ) double (* p)[℄(D ) double * p[℄Q55 . Si p est un pointeur sur un tableau de pointeurs sur des tableaux d'entiers, alors p peut s'é rire :(A ) int (* (* p)[℄)[℄(B X) int ** p (C ) int [℄[℄ *p(D ) int *** pQ56 . Si f est une fon tion prenant en paramètre un entier et ne renvoyant rien, alors le prototype de f peuts'é rire :(A X) void f (int)(B ) f (int -> void) (C ) int f (void)(D ) void (* f) (int)Q57 . Si f est une fon tion prenant en paramètre un pointeur sur un tableau de double et renvoyant unpointeur d'entier, alors le prototype de f peut s'é rire :(A ) int f (double [℄)(B ) int * f ([℄ double) (C X) int * f (double *)(D ) int (* f) (double [℄)Q58 . Pour in lure le  hier d'en-tête système  brol.h , on doit é rire :(A X) #in lude <brol.h>(B ) #in lude 'brol.h' (C ) #in lude "brol.h"(D ) #in lude brol.hQ59 . Si l'on in lut le  hier d'en-tête  brol.h  au moyen de la dire tive  #in lude "brol.h" , le  hiersera her hé :(A ) Dans les répertoires système seulement(B ) Dans les répertoires système puis dans lesrépertoires spé iés par l'utilisateur (C ) Dans les répertoires spé iés par l'utilisateurpuis dans les répertoires système(D X) Dans les répertoires spé iés par l'utilisateurseulementQ60 . Pour dénir une ma ro PI égale à π à la inquième dé imale et utilisable dans des expressions mathéma-tiques, on é rit :(A ) #define PI 3,14159;(B X) #define PI 3.14159 (C ) #define PI = 3.14159;(D ) #define PI 3.14159;Q61 . Pour dénir une ma ro PRODUIT qui al ule le produit des deux arguments qui lui sont passés, quellesque soient les expressions qui lui sont passées, on é rit :(A ) #define PRODUIT (a,b) ((a)*(b))(B ) #define PRODUIT(a,b) (a*b) (C X) #define PRODUIT(a,b) ((a)*(b))(D ) #define PRODUIT(a,b) ((a)*(b));Q62 . Pour n'in lure le fragment de ode frag que si la ma ro BROL est dénie, il ne faut pas é rire : 7

(A ) #if defined BROLfrag#endif(B X) #if defined BROL#elsefrag#endif (C ) #ifdef BROLfrag#endif(D ) #ifndef BROL#elsefrag#endifQ63 . Dans le Programme 1 situé à la n du test, la valeur a hée après L1 est :(A ) 0(B X) 1 (C ) 2(D ) 3Q64 . Dans le Programme 1 situé à la n du test, la valeur a hée après L2 est :(A X) 0(B ) 1 (C ) 2(D ) 3Q65 . Dans le Programme 1 situé à la n du test, la valeur a hée après L3 est :(A X) 0(B ) 1 (C ) 2(D ) 3Q66 . Dans le Programme 1 situé à la n du test, la valeur a hée après L4 est :(A X) 0(B ) 1 (C ) 2(D ) 3Q67 . Dans le Programme 1 situé à la n du test, la valeur a hée après L5 est :(A ) 0(B X) 1 (C ) 2(D ) 3Q68 . Dans le Programme 1 situé à la n du test, la valeur a hée après L6 est :(A ) 0(B ) 1 (C ) 2(D X) 3Q69 . Dans le Programme 1 situé à la n du test, la valeur a hée après L7 est :(A ) 1(B ) 3 (C X) 4(D ) 5Q70 . Dans le Programme 1 situé à la n du test, la valeur a hée après L8 est :(A ) 6(B ) 7 (C ) 9(D X) 10Q71 . Dans le Programme 1 situé à la n du test, la valeur a hée après L9 est :8

(A ) 1(B X) 3 (C ) 5(D ) 7Q72 . Dans le Programme 1 situé à la n du test, la valeur a hée après L10 est :(A ) 2(B ) 4 (C X) 5(D ) 8Q73 . Dans le Programme 1 situé à la n du test, la valeur a hée après L11 est :(A ) 7(B X) 10 (C ) 12(D ) 13Q74 . Dans le Programme 1 situé à la n du test, la valeur a hée après L12 est :(A X) 3(B ) 6 (C ) 7(D ) 9

9

Programme 1stati int a = 2;int b = 3;int f1 (int i) { return (i + 1); }int f2 (int i) { return (i ++); }int f3 (int * i) { return ((*i) ++); }int f4 (int a){ return (a ++ + b ++);}int f5 (int * a, int ){ stati int d = 1;int e = 0;return ((*a) ++ + + d ++)}int f6 (int * b, int ){ int d = 1;return ((*b) ++ + + d ++)}main (){ int e = 0;printf ("L1: %d\n", f1 (e));printf ("L2: %d\n", f2 (e));printf ("L3: %d\n", f2 (e));e = 0;printf ("L4: %d\n", f3 (&e));printf ("L5: %d\n", f3 (&e));e = 0;printf ("L6: %d\n", f4 (e));printf ("L7: %d\n", f4 (e));printf ("L8: %d\n", f4 (b));e = 0;printf ("L9: %d\n", f5 (&a, e));printf ("L10: %d\n", f5 (&e, a));printf ("L11: %d\n", f6 (&b, a));printf ("L12: %d\n", f6 (&e, e));} 10

commentaires (0)
Aucun commentaire n'a été pas fait
Écrire ton premier commentaire
Ceci c'est un aperçu avant impression
3 shown on 10 pages
Télécharger le document