引言
C言語作為一種歷史長久且利用廣泛的編程言語,其富強的功能跟高效的機能使其在體系編程、嵌入式開辟等範疇佔據重要地位。為了幫助讀者深刻懂得C言語,控制實在戰技能,本文精選了一系列C言語編程功課,涵蓋基本語法、數據構造、算法等多個方面,旨在經由過程現實操縱晉升編程才能。
1. 基本語法與數據範例
1.1 變量與數據範例
任務描述:申明並初始化差別數據範例的變量,並展示其利用。
#include <stdio.h>
int main() {
int a = 10;
float b = 3.14;
char c = 'A';
printf("整型變量a的值為:%d\n", a);
printf("浮點型變量b的值為:%f\n", b);
printf("字符型變量c的值為:%c\n", c);
return 0;
}
1.2 運算符
任務描述:利用運算符停止算術運算、邏輯運算跟位運算。
#include <stdio.h>
int main() {
int a = 5, b = 3;
printf("a + b = %d\n", a + b);
printf("a - b = %d\n", a - b);
printf("a * b = %d\n", a * b);
printf("a / b = %d\n", a / b);
printf("a % b = %d\n", a % b); // 位運算
return 0;
}
2. 把持構造
2.1 前提語句
任務描述:利用if語句實現簡單的前提斷定。
#include <stdio.h>
int main() {
int age = 18;
if (age >= 18) {
printf("你曾經成年了。\n");
} else {
printf("你還未成年。\n");
}
return 0;
}
2.2 輪回構造
任務描述:利用for輪回跟while輪回實現簡單的輪回操縱。
#include <stdio.h>
int main() {
int i;
// for輪回
for (i = 0; i < 5; i++) {
printf("for輪回:%d\n", i);
}
// while輪回
i = 0;
while (i < 5) {
printf("while輪回:%d\n", i);
i++;
}
return 0;
}
3. 函數
3.1 函數定義與挪用
任務描述:定義一個函數,並在主函數中挪用它。
#include <stdio.h>
// 函數申明
void printMessage();
int main() {
// 挪用函數
printMessage();
return 0;
}
// 函數定義
void printMessage() {
printf("這是一個函數。\n");
}
4. 數組
4.1 一維數組
任務描述:申明並初始化一個一維數組,並遍歷輸出。
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d\n", i, arr[i]);
}
return 0;
}
4.2 二維數組
任務描述:申明並初始化一個二維數組,並遍歷輸出。
#include <stdio.h>
int main() {
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("arr[%d][%d] = %d\n", i, j, arr[i][j]);
}
}
return 0;
}
5. 指針
5.1 指針與數組
任務描述:利用指針拜訪數組元素。
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr; // 指針指向數組首地點
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d, *ptr = %d\n", i, arr[i], *ptr);
ptr++; // 指針挪動到下一個元素
}
return 0;
}
5.2 指針與函數
任務描述:經由過程指針轉達數組到函數,並修改數組元素。
#include <stdio.h>
void modifyArray(int *arr, int size) {
for (int i = 0; i < size; i++) {
arr[i] *= 2; // 將數組元素值翻倍
}
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
modifyArray(arr, 5);
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d\n", i, arr[i]);
}
return 0;
}
6. 字符串
6.1 字符串操縱
任務描述:利用字符串函數實現字符串的拼接、查找跟比較。
#include <stdio.h>
#include <string.h>
int main() {
char str1[100] = "Hello";
char str2[100] = "World";
char str3[100];
strcpy(str3, str1); // 拷貝字符串
strcat(str3, str2); // 拼接字符串
printf("str3 = %s\n", str3);
printf("str1跟str2的比較成果:%d\n", strcmp(str1, str2)); // 比較字符串
return 0;
}
7. 構造體
7.1 構造體定義與利用
任務描述:定義一個構造體,並創建構造體變量停止操縱。
#include <stdio.h>
// 定義構造體
typedef struct {
int id;
char name[50];
} Student;
int main() {
// 創建構造體變量
Student stu1;
stu1.id = 1;
strcpy(stu1.name, "張三");
printf("老師ID:%d, 姓名:%s\n", stu1.id, stu1.name);
return 0;
}
8. 位操縱
8.1 位運算符
任務描述:利用位運算符實現位操縱。
#include <stdio.h>
int main() {
int a = 5; // 二進制:101
int b = 3; // 二進制:011
printf("a & b = %d\n", a & b); // 與運算
printf("a | b = %d\n", a | b); // 或運算
printf("a ^ b = %d\n", a ^ b); // 異或運算
printf("a << 1 = %d\n", a << 1); // 左移運算
printf("a >> 1 = %d\n", a >> 1); // 右移運算
return 0;
}
9. 預處理器
9.1 宏定義
任務描述:利用宏定義簡化代碼。
#include <stdio.h>
#define PI 3.14159
int main() {
printf("PI的值為:%f\n", PI);
return 0;
}
10. 靜態內存分配
10.1 malloc跟free
任務描述:利用malloc跟free進舉靜態內存分配跟開釋。
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr = (int *)malloc(sizeof(int) * 5); // 分配內存
if (ptr == NULL) {
printf("內存分配掉敗。\n");
return 1;
}
for (int i = 0; i < 5; i++) {
ptr[i] = i;
}
for (int i = 0; i < 5; i++) {
printf("ptr[%d] = %d\n", i, ptr[i]);
}
free(ptr); // 開釋內存
return 0;
}
總結
本文經由過程精選功課合集,幫助讀者單方面控制C言語編程技能。在現實編程過程中,壹直練習跟總結經驗是進步編程程度的關鍵。盼望讀者經由過程這些功課,可能堅固基本知識,晉升實戰才能。