COMP1511 19T2
COMP1511 19T2
  1. What is a bit?
    A bit is a binary value (0 or 1). The word bit is derived from binary digit.
  2. What is a byte?
    In modern computing a byte is simply 8 bits.

    If you are interested, read the more complex historical details

  3. How many distinct values can be represented with a single byte?
    2^8 = 256 possible bit patterns
  4. How would we represent integers using 4 bits? Is there some kind of scheme we could use to reliably store integer information using bits?
    This the more commonly used scheme(Two's complement):

    Bit Pattern Integer
    0000 0
    0001 1
    0010 2
    0011 3
    0100 4
    0101 5
    0110 6
    0111 7
    1000 -8
    1001 -7
    1010 -6
    1011 -5
    1100 -4
    1101 -3
    1110 -2
    1111 -1
  5. What is a file?
    A file is basically an array (sequence) of bytes stored in a semi-permanent way.
  6. Give a few examples of information that is commonly stored inside the bytes of a file, and specify an encoding that might be used for the byte values.
    File name Contents Byte encoding
    README text (English) ASCII
    a.out machine code ELF
    banner.jpg Image JPEG
    chessboard.bmp Image BMP
    main.c C program ASCII
    song.mp3 Sound (music) MP3

    ASCII and BMP will be covered in COMP1511.

  7. What is a directory?
    A directory is basically a set of files or directories.
  8. What is the syntax of C if statements? What is the role of if statements in programs?
    If statements allow branching in programs, i.e., selecting and executing different blocks of code according to certain conditions.
  9. Write a program pass_fail.c that reads in an integer and prints out "PASS" if the integer is between 50 and 100 inclusive and fail if it is between 49 and 0, inclusive. It should print out ERROR if the number is less than 0, more than 100, or if the user does not enter a number. For example:
    ./pass_fail
    Please enter your mark: 42
    FAIL
    ./pass_fail
    Please enter your mark: 50
    PASS
    ./pass_fail
    Please enter your mark: 256
    ERROR
    
    A possible solution for pass_fail.c
    #include <stdio.h>
    
    int main(void) {
        int mark;
    
        printf("Please enter your mark: ");
        scanf("%d", &mark);
    
        if (mark < 0) {
            printf("ERROR\n");
        } else if (mark > 100) {
            printf("ERROR\n");
        } else if (mark >= 50) {
            printf("PASS\n");
        } else {
            printf("FAIL\n");
        }
    
        return 0;
    }
    
    
    Another possible solution for pass_fail.c
    #include <stdio.h>
    
    int main(void) {
        int mark;
    
        printf("Please enter your mark: ");
        scanf("%d", &mark);
    
        if (mark < 0 || mark > 100) {
            printf("ERROR\n");
        } else if (mark < 50) {
            printf("FAIL\n");
        } else {
            printf("PASS\n");
        }
    
        return 0;
    }
    
    
  10. Write a program rectangle_area.c that reads in 2 integers which are the side-length of a rectangle, and then prints the area of the rectangle.

    For example:

    ./rectangle_area
    Please enter rectangle length: 3
    Please enter rectangle width: 5
    Area = 15
    ./rectangle_area
    Please enter rectangle length: 42
    Please enter rectangle width: 42
    Area = 1764
    
    A sample solution for rectangle_area.c
    // Compute area of a rectangle using ints
    // Modified 3/3/2017 by Andrew Taylor (andrewt@unsw.edu.au)
    // as a lab example for COMP1511
    
    // Note this program doesn't check whether
    // the two scanf calls successfully read a number.
    // This is covered later in the course.
    
    #include <stdio.h>
    
    int main(void) {
        int length, width, area;
    
        printf("Please enter rectangle length: ");
        scanf("%d", &length);
        printf("Please enter rectangle width: ");
        scanf("%d", &width);
    
        area = length * width;
    
        printf("Area = %d\n", area);
    
        return 0;
    }
    
    

    Revision questions

    The remaining tutorial questions are primarily intended for revision - either this week or later in session.

    Your tutor may still choose to cover some of the questions time permitting.

  11. Write a program that reads in an integer and determines if it is even or not. If the number is negative, print "NEGATIVE" instead. For example:
    ./even_or_odd
    Please enter a number: 42
    EVEN
    ./even_or_odd
    Please enter a number: 111
    ODD
    ./even_or_odd
    Please enter a number: -2
    NEGATIVE
    
    A possible solution for even_or_odd.c
    #include <stdio.h>
    
    int main(void) {
        int x;
        printf("Please enter a number: ");
        scanf("%d", &x);
    
        if (x < 0) {
            printf("NEGATIVE\n");
        } else if (x % 2 == 0) {
            printf("EVEN\n");
        } else {
            printf("ODD\n");
        }
    
        return 0;
    }