Previous: 7.8 Summary
Up: 7 Arrays
Next: 7.10 Problems
Previous Page: 7.8 Summary
Next Page: 7.10 Problems

7.9 Exercises

With the following declaration:

int *p, x[10];
    char *t, s[100];
Explain each of the following expressions. If there is an error, explain why it is an error.

    1. x
    2. x + i
    3. *(x + i)
    4. x++;

    1. p = x;
    2. *p
    3. p++;
    4. p++;
    5. p--;
    6. --p;

    1. p = x + 5;
    2. *p;
    3. --p;
    4. p*;

  1. scanf("%s", s);

    Input: Hello, Hello.

  2. printf("%s\n", s);

  3. scanf("%s", t);
        t = s;
        scanf("%s", t);

    Check the following problems; find and correct errors, if any. What will be the output in each case.

  4. main()
    {   int i, x[10] = { 1, 2, 3, 4};
    

    for (i = 0; i < 10; i++) { printf("%d\n", *x); x++; } }

  5. main()
    {   int i, *ptr, x[10] = { 1, 2, 3, 4};
    

    for (i = 0; i < 10; i++) { printf("%d\n", *ptr); ptr++; } }

  6. main()
    {   int i, x[10] = { 1, 2, 3, 4};
    

    for (i = 0; i < 10; i++) printf("%d\n", (x + i)); }

  7. main()
    {   int i, x[10] = { 1, 2, 3, 4};
    

    for (i = 0; i < 10; i++) printf("%d\n", *(x + i)); }

  8. main()
    {   int i, *ptr, x[10] = {1, 2, 3, 4};
    

    ptr = x; for (i = 0; i < 10; i++) { printf("%d\n", *ptr); ptr++; } }

  9. main()
    {   int i, *ptr, x[10] = {1, 2, 3, 4};
    

    ptr = x; for (i = 0; i < 10; i++) { printf("%d\n", ptr); ptr++; } }

  10. main()
    {   char x[10];
    

    x = "Hawaii; printf("%s\n", x); }

  11. main()
    {   char *ptr;
    

    ptr = "Hawaii"; printf("%s\n", ptr); }

  12. main()
    {   char *ptr, x[10] = "Hawaii";
    

    for (i = 0; i < 10; i++) printf("%d %d %d\n", x + i, *(x + i), x[i]); }

  13. main()
    {   char x[10];
    

    scanf("%s", x); printf("%s\n", x); }

    The Input is:
    Good Day to You

  14. main()
    {   char *ptr;
    

    scanf("%s", ptr); printf("%s\n", ptr); }

    The Input is:
    Good Day to You

  15. Here is the data stored in an array
    char s[100];
    

    Hawaii\0Manoa\0

    What will be printed out by the following loop?
    i = 0;
        while (s[i]) {
             putchar(s[i]);
             i++;
        }

tep@wiliki.eng.hawaii.edu
Wed Aug 17 08:56:22 HST 1994