#jitoa#c语言的刷题感悟 原创
1.最基础的代码编译器:Dev-C++
要学会使用编译器,学C语言可以跟着mooc的温恺老师
2.要自己学会找错,改错
不能一遇到问题就向其他人求助,要学会直接尝试查改错误。
第一个方法就是单步调试,一步一步地调试
但是这个会比较麻烦,要一步一步地找,次数较多,对于较长的代码很不友好,我们通常不用这种
还有一种比较常用的就是用printf来调试,在需要调试的地方加上一个printf,直接看输出的结果来判断这段代码是否有误。
3.理论知识固然重要,但是实践必不可缺
讲解很容易就懂,但是当真正操作起来就很容易问题,比如:细节上的错误,知识点的正确使用,运算符号的混淆。
细节上的错误很常见,比如:for循环括号中的";“和for循环的{},每一行代码写完要加”;“,代码要用英文状态下写等等。
知识点的正确使用,比如:三个循环,for循环,while循环,do-while循环的使用区别;continue和break的区别;if-else和swith-case用法等等。
for循环:for(初始化;条件;初始值的改变),条件不满足时退出循环。
while循环:while(条件),只要不满足条件就不进行循环。
do-while循环:do{}while(条件);不管最初是否满足条件,都进行一次循环体。
if-else和switch-case:若条件判断>=3次,建议使用switch-case,不然容易代码过长。使用switch时需要注意,每一个选项后面要加break;否则容易选择多次。
break:终止所在层的循环,终止整个循环的执行。
continue:结束本次循环,而不终止整个循环的执行。而是结束本次循环,进行下一次循环。
另外,运算符要注意优先级以及其含义和使用,容易犯小错误,比如等于是”==“不是”=“,”="是赋值号;
还有一些单目运算符和三目运算符的使用:!(表示非)像5>2=2也是可以运算的,5>2为真,结果为1,1不等于2,结果为0;
4.要多刷题
c语言的基础知识点不难理解使用,但是有很多书籍上没有统一归纳的,像一些函数和算法要在刷题的时候才会遇到。
一些基本函数:strcmp(比较字符串大小),strcpy(粘贴复制),strlen,sizeof(计算字符串的长度),strcat(字符串连接函数)等等。
strcmp:strcmp(a,b);
比较a,b的ASCII码值;
strcmp的用法:
#include<stdio.h>
#include<string.h>
int main()
{
char str1[100],str2[100];
gets(str1);
gets(str2);
if(strcmp(str1,str2)>0)//正数为str1大
printf("str1比str2大");
if(strcmp(str1,str2)==0)
printf("str1和str2一样大");
if(strcmp(str1,str2)<0)//负数为str2大
printf("str1比str2小");
return 0;
}
strcpy:strcpy(a,b);
将b粘贴复制给a;(常用于字符串的赋值)
strlen,sizeof:int a=strlen(s);
这两者的区别:
#include<stdio.h>
#include<string.h>
int main()
{
int len;//长度
char str[1000];//定义一个字符串,这个字符串最多能存放1000个字节
scanf("%s",str);
len=strlen(str);//返回字符串的长度,一直遍历到"\0"停止
printf("%d\n",len);
len=sizeof(str);//能容纳实现所建立的最大对象的字节大小
printf("%d",len);
return 0;
}
strcat:strcat(a,b);
将字符串b连接到字符串a后;
算法:冒泡排序,选择排序,全排序等等。
要多多刷题,不同类型的题,甚至很多时候,刷一道题,就能学会一项知识点,就是一个新知识。