summaryrefslogtreecommitdiff
path: root/obsolete/macros/latex/contrib/alterqcm/examples/latex/verb.tex
blob: 207f9ca694f173081fd3fde557a935e58bffb008 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150

\documentclass[10pt]{article} 
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{alterqcm}
\usepackage{fullpage}
\usepackage{longtable}
\usepackage{verbdef}
\usepackage[frenchb]{babel}

\pagestyle{empty}
%--------------------------------------------------------------
\begin{document}
%--------------------------------------------------------------
\parindent=0pt
\begin{center}
Contrôle de langage C \\

\vspace{5mm}
Nom : \hspace{5cm}
Prénom :   \\

\vspace{5mm}
{\small Pour chaque question, 3 réponses sont proposées. Une et une seule est correcte. A vous de la trouver et de \textbf{noircir la case correspondante}. 
Bonne réponse = +1 point. Pas de réponse = 0 point. Mauvaise réponse = -0.5 point.}
\begin{alterqcm}[lq=90mm,title,num=true,alea,long] 
% rajouter ou enlever l'option correction pour voir ou non les corrections :-)
%--------------------------------------------------------------

\AQquestion{Quel était le langage précurseur du langage C ?}
{{le Fortran},%
 {le langage B},%
 {le Basic},%
 {X},%
 {Y}}
%--------------------------------------------------------------
\verbdef\arg|int a = 3 ^ 4 ;|
\AQquestion{\arg}
{{élève 3 à la puissance 4},
 {fait un OU exclusif entre 3 et 4},
 {n'est pas une instruction C}}
%--------------------------------------------------------------
\AQquestion{Quelle est la bonne syntaxe pour décaler de 8 bits à gauche l'entier \texttt{a} ?}
{{\texttt{b = lshift(a, 8) ;}},
 {\texttt{b = 8 << a ;}},
 {\texttt{b = a << 8 ;}}}
%--------------------------------------------------------------
\AQquestion{Le programme complet :	\\
\texttt{int main() \\
~~\{ printf ("bonjour") ; return 0 ; \}}}
{{affiche \texttt{bonjour}},
  {donne une erreur à la compilation},
 {donne une erreur à l'exécution}}
%--------------------------------------------------------------
\verbdef\arg|float tab[10]|
\verbdef\propa|*tab|\global\let\propa\propa
\verbdef\propb|&tab|\global\let\propb\propb
\verbdef\propc|tab|\global\let\propc\propc
\AQquestion{Soit la déclaration \arg ; \\Le premier réel du tableau  est \ldots}
{{\propa},
 {\propb},
 {\propc}}
%--------------------------------------------------------------
\AQquestion{La ligne \texttt{printf("\%c", argv[2][0]) ;} du \texttt{main} de  \texttt{monProg} exécuté ainsi : \texttt{monProg parametre}}
{{affiche \texttt{p}},
 {n'affiche rien},
 {peut provoquer un plantage}}
%--------------------------------------------------------------
\AQquestion{Quelle est la taille en mémoire d'un \texttt{long int} ?}
{{4 octets},
 {8 octets},
 {ça dépend \ldots}}
%--------------------------------------------------------------
\AQquestion{Suite à la déclaration \texttt{int * i} ;}
{{\texttt{*i} est une adresse},
 {\texttt{*i} est un entier},
 {\texttt{*i} est un pointeur}}
%--------------------------------------------------------------
\AQquestion{Suite à la déclaration \texttt{char tab[12]} ;}
{{\texttt{\&tab} est l'adresse du tableau},
 {\texttt{\&tab} est le pointeur sur le tableau},
 {\texttt{\&tab} ne signifie rien}}

%--------------------------------------------------------------
\AQquestion{Un des choix suivants n'est pas une bibliothèque standard du C}
{{\texttt{stdlib}},
 {\texttt{stdin}},
 {\texttt{math}}}
%--------------------------------------------------------------
\AQquestion{La syntaxe complète de la fonction \texttt{main} est \ldots}
{{\texttt{int main(int argc, char* argv)}},
 {\texttt{int main(int argc, char argv*[])}},
 {\texttt{int main(int argc, char* argv[])}}}
%--------------------------------------------------------------
\AQquestion{Le programme complet :
\texttt{int main()\\
\{ char a[2]="x" ; char b[2]="y" ; \\
~~return (a[0] == b[0]) ; \}
}}
{{comporte 0 erreur},
 {comporte 1 erreur},
 {comporte 2 erreurs}}

%--------------------------------------------------------------
\AQquestion{Pour libérer une zone mémoire allouée dynamiquement en C, on utilise la fonction \ldots}
{{\texttt{delete}},
 {\texttt{clear}},
 {\texttt{free}}}

%--------------------------------------------------------------
\AQquestion{L'expression  \texttt{val char[32] ; }}
{{est syntaxiquement incorrecte},
 {déclare une chaîne},
 {déclare un tableau}}

 %--------------------------------------------------------------
\verbdef\arga|char s[10] ; int i ;|
\verbdef\argb|scanf("%d, %s", \&i, s) ;|
\AQquestion{On compte dans les lignes suivantes :\\
\arga \\
\argb}
{{0 erreur de compilation},
 {1 erreur de compilation},
 {2 erreurs de compilation}}
%--------------------------------------------------------------
\AQquestion{Une variable globale est \ldots}
{{\texttt{static}},
 {stockée dans la pile},
 {initialisée avec des zéros par défaut}}
%--------------------------------------------------------------
\AQquestion{La portée d'une variable locale est \ldots}
{{la fonction},
 {le module},
 {le bloc}}
%--------------------------------------------------------------
\AQquestion{La ligne \texttt{int c = argv[1] + argv[2] ;}
 du \texttt{main} de  \texttt{monProg} exécuté ainsi : 
\verb!monProg 123 456!}
{{affecte 579 à \texttt{c}},
 {donne une erreur à la compilation},
 {affecte une valeur indéterminée à \texttt{c}}}
\end{alterqcm}
\end{center}
\end{document}

% utf8
% pdflatex
% Pascal Bertolino Alain Matthes
%