Контрольные вопросы лабораторной работы No 2

© М.Л. Цымблер (mzym@susu.ru), Е.В. Аксенова (evaksen@mail.ru)


  1. Какая разница между седьмым элементом массива и элементом массива с индексом семь?
  2. Найдите ошибки в следующем фрагменте кода. Объясните, почему они возникают?
    #define MAX (10)
    
    void f(int n, int m)
    {
      int a[10];
      int b[n];
      int c[MAX];
      int d[n*2];
      int e[n * m];
    
      // ...
      return;
    }
  3. Как передать массив в качестве параметра функции?
  4. Как объвляется строка в языке Си?
  5. Что выведет на экран следующая программа? Объясните результат.
    #include <stdio.h>
    #include <string.h>
    
    void main()
    {
      char str[] = "ab\0cd\nxyz";
    
      printf("%s\n", str);
      printf("%d\n", sizeof(str));
      printf("%d\n", strlen(str));
      return;
    }
  6. Пусть в программе объявлены строки str1 и str2:
    char str1[6];
    char str2[6] = "Hello";
    
    Укажите синтаксически верный(ые) оператор(ы) из ниже приведенных:
  7. Скомпилируйте и запустите следующую программу. Объясните полученный результат. Исправьте программу так, чтобы она верно выводила строчку "Hello, World! Hello!".
    #include <stdio.h>
    #include <string.h>
    
    void main()
    {
      char str3[5] = {'W','o','r','l','d'};
      char str2[3];
      char str1[5] = {'H','e','l','l','o'};
    
      strcpy(str2, str1);
      printf("%s, %s! %s!\n", str1, str3, str2);
      return;
    }
  8. Назовите и объясните назначение параметров функции main.