C-ohjelmointi syksy 2010


Harjoitus 1

Tehtävät käsitellään harjoitustilaisuuksissa 8-10.9.

  1. Kirjoita tiedostoon "Hello, world" ohjelma, käännä ja linkitä se. Suorita ohjelma.
    #include <stdio.h>
    
    int main(void)
    {
    printf("Hello, world!\n");
    return 0;
    }
    
  2. Luentomuistiinpanoissa on esitetty tilanne, jossa ohjelma koostuu useammasta moduulista. Kirjoita tiedostot tietokoneelle ja käännä ne erikseen ja linkitä yhteen objektitiedostot. Kirjoita myös luentomuistiinpanoissa esitetty makefile ja kokeile sen käyttöä.

  3. Mitä seuraavat c-kieliset ohjelmanpätkät tekevät?
    a)while (*q++ = *p++);
    b)if ((c=fgetc(fileHandle)) == EOF)
    c)for (i=a, j=b; i<=j; i += 2, j += 2)
    
  4. Mitä hyötyä/haittaa on siitä, että ohjelmointikielestä puuttuu roskienkeruu?
  5. Tutki oppikirjan esimerkkiohjelmaa sample.c. Listaa ne kohdat, jotka jäivät epäselviksi. (Ymmärtämistä auttaa, jos luet luvun 2.)

Itsenäisesti opiskeltavia asioita:
  1. Kääntäminen, linkittäminen ja ohjelmasuoritus Linux-ympäristössä
  2. Evaluointijärjestys

.