[C20] C Programming Language Review

Ngô Văn Tuân

Gà con
Staff member
Bài này cung cấp các câu hỏi giúp các bạn ôn tập lại kiến thức cơ về ngôn ngữ lập trình C. Xem tài liệu đính kèm để biết thêm chi tiết.

1. Constant
C:
#include <stdio.h>

const int NUMBER = 10;

int main()
{
    NUMBER = 100;
    printf("Number is: %d", NUMBER);
    return 0;
}
2. Variable
C:
#include <stdio.h>

float var3 = 10.1f;

double add(double var0, double var1) {
    double var2;
    var2 = var0 + var1;
    return var2;
}

int main()
{
    int var4 = 20;
    double var5 = add(var3, var4);
    printf("Var5 = %lf\r\n", var5);

    char var6 = 2, var7 = 3;
    int var8 = 20;
    float var9 = var6 * var7 * var8 * 1.5f;
    printf("var9 = %f\r\n", var9);

    char var10 = 127;
    var10++;
    printf("var10 = %d\r\n", var10);

    float var11 = 12.2;
    int var12 = (int)var11;
    printf("var12 = %d\r\n", var12);

    float var13 = 12.56;
    int var14 = (int)var13;
    printf("var12 = %d\r\n", var14);

    return 0;
}
3. Operator
C:
#include <stdio.h>

#define BYTE_TO_BINARY_PATTERN "%c%c%c%c%c%c%c%c"
#define BYTE_TO_BINARY(byte)  \
  (byte & 0x80 ? '1' : '0'), \
  (byte & 0x40 ? '1' : '0'), \
  (byte & 0x20 ? '1' : '0'), \
  (byte & 0x10 ? '1' : '0'), \
  (byte & 0x08 ? '1' : '0'), \
  (byte & 0x04 ? '1' : '0'), \
  (byte & 0x02 ? '1' : '0'), \
  (byte & 0x01 ? '1' : '0')

int main()
{
    char byte = 0b01010001;
    printf("byte: "BYTE_TO_BINARY_PATTERN"\r\n", BYTE_TO_BINARY(byte));

    char var0 = !byte;
    printf("var0: "BYTE_TO_BINARY_PATTERN"\r\n", BYTE_TO_BINARY(var0));

    char var1 = ~byte;
    printf("var0: "BYTE_TO_BINARY_PATTERN"\r\n", BYTE_TO_BINARY(var1));

    char var2 = byte & 0b01101100;
    printf("var2: "BYTE_TO_BINARY_PATTERN"\r\n", BYTE_TO_BINARY(var2));

    char var3 = byte && 0b01101100;
    printf("var3: "BYTE_TO_BINARY_PATTERN"\r\n", BYTE_TO_BINARY(var3));

    char var4 = byte | 0b01101100;
    printf("var4: "BYTE_TO_BINARY_PATTERN"\r\n", BYTE_TO_BINARY(var4));

    char var5 = byte || 0b01101100;
    printf("var5: "BYTE_TO_BINARY_PATTERN"\r\n", BYTE_TO_BINARY(var5));

    char var6 = byte ^ 0b01101100;
    printf("var6: "BYTE_TO_BINARY_PATTERN"\r\n", BYTE_TO_BINARY(var6));

    int C = 10;
    int D = 20;
    int E = C > D ? 1 :
        D - C > 10 ? 2 :
        D - 2 * C >= 0 ? 3 : 4;
    printf("E: %d\r\n", E);

    typedef struct {
        int age;
        float height;
        double average_score;
    }student_t;
    printf("student_t size %d", sizeof(student_t));

    return 0;
}
4. Loop
C:
#include <stdio.h>

int main() {

    int i;
    int sum = 0;
    for (i = 0; i < 10; i++) {
        if (i % 2 == 1) continue;
        if (i > 5) break;
        sum += i;
    }
    printf("sum: %d", sum);

    return 0;
}
5. Function
C:
#include <stdio.h>

void double_it(int a) {
    a = 2 * a;
}

void double_it_ptr(int *a) {
    *a = 2 * *a;
}

void foo_ptr(int *a, int *b, int c) {
    *a = 2 * c;
    *b = 3 * c;
}

int main() {
    int var0 = 5;
    double_it(var0);
    printf("var0: %d\r\n", var0);
    double_it_ptr(&var0);
    printf("var0: %d\r\n", var0);

    int var1, var2;
    foo_ptr(&var1, &var2, 10);
    printf("var1: %d\r\n", var1);
    printf("var2: %d\r\n", var2);

    return 0;
}
6. Array
C:
#include <stdio.h>

char my_name[] = "tuan";
int main() {
    printf("my nam is %s\r\n", my_name);
    printf("The third char is 0x%X\r\n", my_name[2]);
    printf("The last char is 0x%X\r\n", my_name[4]);
    return 0;
}
 

Attachments

Last edited:
Top