Vous êtes sur la page 1sur 20

Q1

Qu'advient-il si vous essayez de compiler et


exécuter ce programme?
#include <stdio.h>
int main(void){
char s[10] = "ABCDE", *p = s + 3;
printf("%d\n", p[1] - p[-1] );
return 0;
}
Q2
Qu'advient-il si vous essayez de compiler et exécuter ce
programme?
#include <stdio.h>
int main(void){
char s[] = "ABCDE", *p = s + 5;
printf("%d\n", p[-1] - *(p - 4));
return 0;
}
Q3
Qu'advient-il si vous essayez de compiler et
exécuter ce programme?
#include <stdio.h>
int main(void){
char *p = "12345", *q = p-10;
printf("%d\n", q[14] - q[13]);
return 0;
}
Q4
Qu'advient-il si vous essayez de compiler et exécuter ce
programme?
#include <stdio.h>
int main(void){
int t[] = {1, 2, 3, 4, 5},*p = t;
*p++;
(*p)++;
*p++;
printf("%d\n" ,p[-1]);
return 0;
}
Q5
Qu'advient-il si vous essayez de compiler et exécuter ce
programme?
#include <stdio.h>
int main(void){
int t[2][2] ={ 1,2,4,8};
int s = 0, i, j;
for(i = 2; i; i -= 2)
for(j = 1; j<2; j += 2)
s += t[i - 1][j];
printf("%d\n",s);
return 0;
}
Q6 Qu'advient-il si vous essayez de compiler et exécuter ce
programme?
#include <stdio.h>
int main(void){
int t[1][2][2] = {{{1, 2 }, { 3, 4}} };
int s = 0, i,j, k;

for(i = 1; i > 0; i -= 2)
for(j = 1; j < 2; j += 2)
for(k = 0; k < 3; k += 3)
s+= t[k][i - 1][j];
printf("%d\n",s);
return 0;
}
Q7 Qu'advient-il si vous essayez de compiler et exécuter ce
programme?
#include <stdio.h>
#include <stdlib.h>
int main(void){
int *p = (int *)malloc(2 * sizeof(int));
*p = 2;
*(p +1)= *(p) - 1;
*p = p[1];
printf("%d\n",*p);
free(p);
return 0;
}
Qu'advient-il si vous essayez de compiler et exécuter ce
Q8 programme?
#include <stdio.h>
#include <stdlib.h>
int main(void){
int t[] = {8, 4, 2, 1};
int *p = (int *)malloc(sizeof(t));
int i;
for(i = 0; i < 4; i++)
p[3-i]=t[i];
printf("%d\n",*(p + 2));
free(p);
return 0;
}
Qu'advient-il si vous essayez de compiler et exécuter ce
Q9 programme?
#include <stdio.h>
#include <stdlib.h>
int main(void){
int i,j;
int **p = (int **)malloc(2 * sizeof(int *));
p[0] = (int *)malloc(2 * sizeof(int));
p[1] = p[0];
for(i = 0; i < 2; i++)
for(j = 0; j < 2; j++)
p[i][j]=i+j;
printf("%d\n",p[0][0]);
return 0;
}
Qu'advient-il si vous essayez de compiler et exécuter ce
Q10 programme?
#include <stdio.h>
#include <stdlib.h>
int main(void){
int i,j;
int **p = (int **)malloc(2 * sizeof(int *));
p[0] = (int *)malloc(2 * sizeof(int));
p[1] = (int *)malloc(2 * sizeof(int));
for(i = 0; i < 2; i++)
for(j = 0; j < 2; j++)
p[i][j] = i + j;
printf("%d\n",p[0][0]);
return 0;
}
Qu'advient-il si vous essayez de compiler et
Q11 exécuter ce programme?
#include <stdio.h>
int main(void){
int *t[10];
int (*u)[10];
printf("%d\n",sizeof(t) != sizeof(u));
return 0;
}
Q12 Qu'advient-il si vous essayez de compiler
et exécuter ce programme?
#include <stdio.h>
int main(void){
int *(t[10]);
int *u[10];
printf("%d\n",sizeof(t) != sizeof(u));
return 0;
}
Qu'advient-il si vous essayez de compiler et
Q13 exécuter ce programme?
#include <stdio.h>
struct S {
int S;
};
int main(void){
struct S S;
S.S = sizeof(struct S) / sizeof(S);
printf("%d\n",S.S);
return 0;
}
Qu'advient-il si vous essayez de compiler et exécuter ce programme?
Q14 #include <stdio.h>
#include <string.h>
struct Q {
char S[3];
};
struct S {
struct Q Q;
};
int main(void){
struct S S = {'\0','\0','\0'};
S.Q.S[0] = 'A';
S.Q.S[1] = 'B';
printf("%d\n" ,(int)strlen(S.Q.S));
return 0;
}
Qu'advient-il si vous essayez de compiler et exécuter ce programme?
#include <stdio.h>
Q15 #include <string.h>
struct Q {
char S[3];
};
struct S {
struct Q Q;
};
int main(void){
struct S S = {'\0','\0','\0' };
S.Q.S[0] = 'A';
S.Q.S[2] = 'B';
printf("%d\n",(int)strlen(S.Q.S));
return 0;
}
Qu'advient-il si vous essayez de compiler et exécuter ce programme?
#include <stdio.h>
Q16 struct Q {
int a,b,c;
};
struct S {
int a,b,c;
struct Q Q;
};
int main(void){
struct Q Q = {3,2,1};
struct S S = {4,5,6};
S.Q = Q;
printf("%d\n",S.b - S.Q.b);
return 0;
}
Qu'advient-il si vous essayez de compiler et exécuter ce programme?
#include <stdio.h>
Q17 #include <stdlib.h>
struct S {
int a;
struct S *b;
};
int main(void){
struct S *x = malloc(sizeof(struct S));
struct S *y = malloc(sizeof(struct S));
x->a = 2;
x->b = y;
y->a = 4;
y->b = x;
printf("%d\n",x->b->b->b->a);
free(x);
free(y);
return 0;
}
Qu'advient-il si vous essayez de compiler et exécuter ce programme?
#include <stdio.h>
Q18 #include <stdlib.h>
struct S {
int a;
struct S *b;
};
int main(void){
struct S *x = malloc(sizeof(struct S));
struct S *y = malloc(sizeof(struct S));
struct S *p;
x->a = 2; x->b = y;
y->a = 4; y->b = x;
p = x;
p = p->b->b->b->b;
printf("%d\n",p->a);
return 0;
}
Qu'advient-il si vous essayez de compiler et exécuter ce
Q19 programme?
#include <stdio.h>
struct S {
int a[2];
};
int main(void){
struct S S[2];
int i;
for( i=0; i <2; i++)
S[i].a[1-i] =4 * !i;
printf("%d\n", S[0].a[1]);
return 0;
}
Qu'advient-il si vous essayez de compiler et exécuter ce
Q20 programme?
#include <stdio.h>
struct S {
char *p;
};
int main(void) {
char *p = "abcd";
struct S S[2];
int i;
for( i = 0; i < 2; i ++)
S[i].p = p + i;
printf ("%c\n",S[1].p[0]) ;
return 0;
}

Vous aimerez peut-être aussi