Advertisement
Guest User

Untitled

a guest
Oct 27th, 2018
300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.81 KB | None | 0 0
  1. Задача 2.
  2.  
  3. Набрать текст программы, найти в нем синтаксические ошибки и исправить их, в начало программы добавить вывод на экран адресов всех переменных, а в конец – значений всех переменных, проанализировать полученные результаты и объяснить, почему они именно такие. Заменить оператор «m+=2;» оператором «m++;», проанализировать результат.
  4.  
  5. Текст программы:
  6. #include<stdio.h>
  7. #include<stdlib.h>
  8. int main()
  9. {
  10. char *p, c;
  11. int *a, b;
  12. float *x, y = 3.5;
  13. double *m, n;
  14. printf("p = %p \tc = %p\tb = %p\ty = %p\tm = %p\tn = %p\n",&p,&c,&b,&y,&m,&n);
  15. a = &b;
  16. printf("  Enter b = ");
  17. scanf("%d",&b);
  18. printf("a = %p\t*a = %d\tb = %d\n", a, *a, b);
  19. p =(char*) a;
  20. c=*p;
  21. *p=*(p+3);
  22. *(p+3)=c;
  23. printf("p = %p\tc = %d\ta = %p\tb = %d\n", p, c, a, b);
  24. x = &y;
  25. printf("x = %p\t*x = %f\ty = %f\n", x, *x, y);
  26. a =(int*) x;
  27. *a =*x;
  28. printf("a = %p\t*a = %d\tx = %p\t*x = %f\ty = %f\n",a,*a,x,*x,y);
  29. a = &b;
  30. y = 12345,6789;
  31. printf("x = %p\t*x = %f\ty = %f\n", x, *x, y);
  32. p = (char*)x;
  33. c=*p;
  34. *p=*(p+3);
  35. *(p+3)=c;
  36. printf("p = %p\tc = %d\tx = %p\ty = %f\n", p, c, x, y);
  37. m = &n;
  38. printf("m = %p\t*m = %lf\tn = %lf\n", m, *m, n);
  39. n = 5.5;
  40. printf("m = %p\t*m = %lf\tn = %lf\n", m, *m, n);
  41. b = n = y = 1.7;
  42. printf("b = %d y = %f n = %lf\n", b, y, n);
  43. printf("*a = %d\t*x = %f\t*m = %lf\n", *a, *x, *m);
  44. m++;
  45. printf("n = %lf\tn = %p\tm = %p\n", n, &n, m);
  46. *m = (float)*a - n + (int)*x;
  47. printf("  m = %p\t*m = %lf\n", m, *m);
  48. printf("p = %p \tc = %p\tb = %p\ta = %p\tm = %p\tn = %p\tx = %p\n",p,c,b,a,m,n,x);
  49. system("pause");
  50. return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement