Delante de cada scanf y de cada getchar() pon lo siguiente.
while (getchar()!='\n');
esto limpiará el buffer de entrada, y ya no tendrás problemas de que se cierre justo después de darte el resultado.
int main (){
int a,b,c,i;
char cadena1[40]="milmasmil";
char cadena2[50];
char cadena3[40];
printf("escriba la operacion: ");
fgets(cadena1,40,stdin);
if (cadena1[strlen(cadena1)-1] == '\n')
cadena1[strlen(cadena1)-1] = '\0';
i= strcmp(cadena1,"milmasmil");
if (i==0){
printf("el resultado es 2000");
}
while (getchar()!='\n');
getchar();
return 0;
}
Por cierto, también cambié el gets por fgets, que es más segura.