C语言在学习中的重难点:
1)运算符:自增,自减。
2)进制:各种进制转换、原码、反码、补码。
3)数组:一维数组,二维数组,多维数组。
4)循环:多重循环嵌套、查找、排序。
5)函数:普通函数调用、递归函数的调用。
6)指针:一级指针、多级指针、数组指针,指针和数组、函数、结构体、之间的关系、
7)内存管理:C语言的内存管理问题、内存泄露、野指针。
8)有参宏及条件编译。
9)多文件开发
前期学习C语言的关键输入输出函数:printf()和scanf()
a++与++a的区别:
运算的顺序就是看“++”在什么位置。如果++在前,就是先加1再计算,
如果是“++”在后则是先计算,再加1。
练习:
1 int b; int a = 5; 2 b = (++a) + (a++); 3 printf("b=%d, a=%d\n", b, a);
答案:
1 /* 2 答案: 3 本题考的是“++a”和“a++”的区别 4 ++a是先加算 然后再参与计算 此处:(++a)= 6 5 a++先计算后加算,由于刚才刚执行了“++a”所以此时 a = 6,(a++)=6 6 所以 b = (++a)+(a++) 7 b = 6 + 6 b等于12 8 a经过2次++运算此时的值是7 9 */
switch case穿透问题:
case一般要配合break关键字使用、如果不加case则进入case后其下面所有的case都会被计算机运行。
穿透案例:
1 switch(2){ 2 case 1: 3 printf(“1”); 4 case 2: 5 printf(“2”); 6 case 3: 7 printf(“3”); 8 case 4: 9 printf(“4”); 10 case 5: 11 printf(“5”); 12 default: 13 return 0; 14 }
输出结果:
//printf("2"); //printf("3"); //printf("4"); //printf("5"); //以上代码都会执行! 结果:2345
不穿透:
1 switch(2){ 2 case 1: 3 printf(“1”); 4 break; 5 case 2: 6 printf(“2”); 7 break; 8 case 3: 9 printf(“3”); 10 break; 11 case 4: 12 printf(“4”); 13 break; 14 case 5: 15 printf(“5”); 16 break; 17 default: 18 return 0; 19 }
输出结果:
1 //printf("2"); 2 结果:2
C语言各中循环的循环条件:
1 for(;true;){} 2 while(true) 3 do ....while(true) //无论如何也会循环一次。
只有当括号内为“true”时才会进入循环。所有语言都一样。
for循环应用之冒泡排序:
有两种排序方式:1、大大数下沉 2、小数上浮 区别只仅仅是for循环里的“<” “>”的不同。
代码实现:
1 #include<stdio.h> 2 void maopao(int arr[],int len){ 3 int temp; 4 for(int j = 0;j<len - 1 - i;j++){ 5 if (arr[i]>arr[j+1]) { 6 temp = arr[i]; 7 arr[j] = arr[j+1]; 8 arr[j+1] = temp; 9 } 10 } 11 }
for循环应用之选择排序:
代码实现:
1 #include<stdio.h> 2 void selectSor(int arr[],int len){ 3 int temp; 4 for(int i =0;i<len - 1;i++){ 5 for(int j = i + 1;j<len;j++){ 6 if(arr[i] > arr[j]){ 7 temp = arr[i]; 8 arr[i] = arr[j]; 9 arr[j] = temp; 10 } 11 } 12 } 13 }
时间: 2024-11-08 22:00:51