学习C语言的一点总结

来源:互联网 发布:韦东山linux百度云 编辑:程序博客网 时间:2024/06/05 18:18

在过去的半个月,我学习了C语言,作为为前端的学习打基础的入门课程,我们主要学习了C语言中的6种基本数据类型(包括short,int,long,float,double,char),基本输入输出函数(printf,scanf),C语言中的一些关键字以及这些关键字的用法,还有就是复杂数据类型包括数组,结构体,共用体,枚举等,其中着重学习了数组的应用。然后就是各种运算符,以及运算符的用法;还有就是用的很多的循环,包括while,do_while,for循环等,其中while循环多在不知道循环次数,但是知道循环结束的条件的时候使用;而do_while循环用于至少要执行一次的循环,这个用的相对较少;然后就是for循环,在知道循环次数的时候,一般会使用for循环,for循环的使用比其他两种循环使用的多。

当然,在最后我们还学习了函数的递归调用,这个主要是用于下一次的循环的起始是上一次循环的结果的时候使用,例子就是十进制转二进制,比较典型。

在for循环中,我们还学习了冒泡排序法,作为一个固定算法,在做排序的时候,很有用处,作为固定算法的固定代码,我们应该在理解了算法含义之后能够熟练的应用,冒泡排序的核心代码是:

for(i = 0; i < N; i++)         //N为数组的长度 {for(j = 0; j < n-1-i; j++){if(a[j] > a[j+1]){t = a[j];a[j] = a[j+1];a[j+1] = t;}}}
在今天,我们通过进行学习后的考试来结束了我们对C语言的入门的学习,在考试的过程中,我也发现了自己的一些问题,还有很多知识点没有掌握,还有很多的细节我没有区分开来。就比如说在常量的定义上,在考题中,有一题是选择能够编译通过的常量的定义,其中类似 #define num 122;  和 #define float PI 3.14; 和#define SRM "abc"之类的,我开始不确定对不对,所以回来的时候我就上机实践了一下,我发现第一个编译是可以通过的,也就是说常量的名称是可以用小写的,但是作为命名的潜规则,我们一般用大写,并且如果是多个单词组成则单词用大写且中间用下划线分隔;但是第二个的这种定义时错误的,不能在定义常量的时候还给他定义数据类型。第三种也是对的,这是定义了一个字符串常量。

在考题中还有很多是不确定的,例如还有一题是关于if语句的,代码如下:

#include<stdio.h>void main(){int a = 0;scanf("%d",&a);if(a > 50){printf("%d",a);}if(a> 40){printf("%d",a);}if(a > 30){printf("%d",a);}}
题目要求是如果输入的a是58,输出的结果是多少。在我上机试了一下之后确定是585858。也就是说,每一个if语句之间是不互相影响的。这个和if_else语句相区分。之前有些不确定,但是在现在已经完全区分了。

当然,在一套试题中,我还有很多的不确定,但是由于试题没有在手上,有很多都记不清了。

在上机编程考试中,两题我们都是见过的,并且我也做出来了,但是我的分数却也不高。我总结了一下,在实现strcmp和strlen函数功能的时候,特别是strcmp函数的实现,我跟老师当时讲的算法和代码基本是一致的,我并没有再思考一下还可以用别的什么方法来实现这个功能。在编程的过程中,我们要思考的不仅是怎么把题目做出来,还要思考怎么用更简单的方法来实现。同时也是在锻炼我们抽象思维的一个过程。

总的来说,只有熟悉基本知识点,同时不断积累,不断练习编程,才能得到提高。

0 0
原创粉丝点击