C语言知识点梳理感悟

                              **C语言知识点梳理感悟**

一,知识点梳理
1.预处理
(1)预处理指令
(2)’#'开头的指令都被称为预处理指令
(3)预处理的作用
(4)查看预处理后的结果
(5)#include <> ,<>里加库函数
2.数据
(1)常量
(2)宏,宏定义,宏的使用,宏的缺陷
(3)变量,变量的类型,变量的赋值,变量的初始化,一个=是赋值。
(4)强制类型转换通过使用转换可以将一个 表达式强制转换成某一种类型,是一元运算符。
例:float b = 13.44;
int a = (int)b; //将float类型强制转换成int型
(5)字符型数据 char定义
(6)ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套计算机编码系统。它主要用于显示现代英语.
3输入和输出
(1) scanf格式化输入函数 ,printf格式化输出函数,cin输入流,cout输出流,
(2)%d 按十进制整型数据的实际长度输出
%ld:输出长整型数据
%o:以八进制的形式输出整数
%x:以十六进制数形式输出整数
%u:用来输出无符号型数据
%c:输出char类型 ascii
%s:字符串
%f:不指定字段宽度,由系统自动指定,使整数部分全部输出,并输出六位小数。在输出的数字中并非全部数据都是有效数字。单精度实数的有效位数一般为七位。
(3)“ ”里是什么输出什么
4运算符和表达式
(1)算术运算符,赋值运算符,条件运算符,逗号运算符,sizeof运算符
(2)运算符优先级和结合性,括号优先级最高,逗号优先级最低
(3)表达式得种类:赋值表达式,算术表达式,关系表达式,逻辑表达式,函数表达式
5顺序结构
从头到尾一句接着一句的执行下来,直到执行完最后一句;
顺序结构很简单,一般我们遇到的除了选择结构和循环结构外,都是顺序结构;
6选择结构
C语言中常用的选择结构主要有以下两种:
(1) if else:引入关键字:if  else  else if
if (值) // 如果值为真,则执行代码段1,否则执行代码段2
{
代码段1
}
else
{
      代码段2
    }
    (2) switch case:引入关键字:switch  case  break  default
    switch (变量)       // 执行到这一句时,变量的值是已知的
    {             // switch case语句执行时,会用该变量的值依次与各个case后的常数去对比,试图找到第一个匹配项,找到匹配的项目后,
       case 常数1:       // 就去执行该case对应的代码段,如果没找到则继续下一个case,直到default
         代码段1;      // 如果前面的case都未匹配,则default匹配。
         break;
       case 常数2:
         代码段2;
         break;
       ……
       default:
         代码段n;
         break;
    }
    注:第一,case中必须是常数,而且必须是整形;
      第二,一般来说,每个case中代码段后都必须有一个break;
      第三,case之后一般都会有default,虽然语法上允许没有default,最好在写代码时还是要写;
 7循环结构
   (1) for循环:
    for (循环控制变量初始化; 循环终止条件; 循环控制变量增量)
    {
      循环体
    }
    循环执行步骤:第一,先进行循环控制变量初始化;
           第二,执行循环终止条件,如果判断结果为真,则进入第三步;如果为假则循环终止并退出;
           第三,执行循环体;
           第四,执行循环控制变量增量,转入第二步;
    注:for循环()中的三部分除了循环终止条件外,其他两部分都可以省略,但标准的for循环中,应该把循环控制变量的初始化,增量都放在()当中,并且在循环体中绝对不应该更改循环控制变量;
  (2) while:
    循环控制变量初始化
    while(循环终止条件)
    {
      循环体
      循环控制变量增量
    }
    循环执行步骤:第一,先进行循环控制变量初始化(在while之前);
           第二,判断循环终止条件,如果判断结果为真,则进入第三步;如果为假则不执行循环体;
           第三,执行循环体;
           第四,执行循环控制变量增量,转入第二步;
  (3) do while:
    循环控制变量初始化
    do
    {
      循环体
      循环控制变量增量
    }while (循环终止条件);
    循环执行步骤:第一,先进行循环控制变量初始化(在do while之前);
           第二,执行循环体;
           第三,执行循环控制变量增量;
           第四,判断循环终止条件,如果判断结果为真,则返回第二步;如果为假则直接退出循环;
   (4) 总结:不管哪种循环结构,都不能缺少循环控制条件初始化,终止条件,循环控制变量增量,循环体这四部分;while循环是先判断后执行,do while循环是先执行后判断,等循环一次之后,其实都是一样的;
,知识点如何使用  
C语言的一个程序主要是由几种循环组合,数据是基础,结构是骨架,而成这几种循环可以分别解决不同的问题也可以嵌套使用。
1,顺序结构是用来解决不需要选择就可以一步执行下来的问题。
例如:给出圆的半径,求圆的直径、周长和面积。这道题就可以直接使用顺序结构。
#include<stdio.h>
int main()
{
double r,b,c,d,pi=3.14159;
scanf("%lf",&r);
b=2r;
c=2
pir;
d=pi
r*r;
printf("%.4lf %.4lf %.4lf\n",b,c,d);
return 0;
}
2,分支语句有if语句和switch语句, if else和switch case的区别:if else适合对比条件较复杂,但是分支比较少的情况,switch case适合那种对比条件简单,但是分支较多的情况;通常的做法是:在适合使用switch case的情况下会优先使用switch case,如果不适合则使用if else;
例:判断闰年这类题用if较简单
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
if(a%1000)
if(a%400
0)
printf(“Y”);
else
printf(“N”);
else if(a%4==0)
printf(“Y”);
else
printf(“N”);
return 0;
}
而判断能否被3,5,7整除这类分支较多,用if就会麻烦,用switch比较好。
#include
using namespace std;

int main()
{
int tmp;
while(cin>>tmp)
{
int k = (tmp%3 == 0) + (tmp%5 == 0)*2 +(tmp%7 == 0)4;
switch(k)
{
case 0:
cout<<“n”<<endl;
break;
case 1:
cout<<“3”<<endl;
break;
case 2:
cout<<“5”<<endl;
break;
case 3:
cout<<“3 5”<<endl;
break;
case 4:
cout<<“7”<<endl;
break;
case 5:
cout<<“3 7”<<endl;
break;
case 6:
cout<<“5 7”<<endl;
break;
case 7:
cout<<“3 5 7”<<endl;
}
}
return 0;
}
3,循环结构
循环结构适用于需要多次计算累计的问题,循环结构最常用的是for循环,for循环适用于绝大多数问题。
例:【题目描述】
输入n,输出一个n
n的正方形,正方形由符号c1和c2组成,正方形的四条边和对角线由c1组成,其余部分由c2组成。
这道题只需要用两个for循环就可以,一次来确定第几行,一次来确定是第几个。
源代码如下
#include<stdio.h>
int main()
{
int n,m,i,j,k;
char b,c;
scanf("%d %c %c",&n,&b,&c);
m=n+1;
for(i=1; i<=n; i++)
{
if(i1||in)
{
for(j=1; j<=n; j++)
{
printf("%c",b);
}
printf("\n");
}
else if(i!=1&&i!=n)
{
for(k=1; k<=n; k++)
{
if(k1||kn||ki||i+km)
{
printf("%c",b);
}
else
printf("%c",c);
}
printf("\n");
}
}
return 0;
}
以上就是目前所学知识点的使用方法。
感谢收获
学习c语言也有三个多月了,也在oj上做了四套题了,无论感受还是收获都是挺多的,就我个人而言,上课听老师讲语法知识是最重要的,老师一节课下来要讲的内容很多,所以基本上没有时间记笔记,最好记笔记的方式就是课下边回忆边总结。你能回忆起多少,就说明你这节课学到了多少。
我发现C语言也不是很陌生的名词了。下面是我学习C语言的一些方法
(1).课下一定要整理笔记,因为课上的学习只是瞬时记忆,要把它转为长期记忆。笔记也要常看。
(2).代码一定要自己写,不能只是懂了,眼高手低是不行的。
(3).重视每一次编译时出现的错误,特别是频繁出现的更要注意。出现错误也不要着急,多交流。也许别人会看到你发现不了的漏洞。
(4).多去图书馆上上自习,图书馆真的很多关于计算机各个方面的书。相信会给你带来惊喜!
(5).课本不能丢,多看看运算符的优先级和常用字符与ASCII码对照表。
(6).多上机练习,这是学习好C语言的重要的环节,无论编程学得多好,上机实现才是目的,所以,不怕要辛苦,把每一段代码都敲进计算机,让计算机来实现,这样 有助于对程序的理解,并试着修改代码,让代码更精简,效率更高。平时没事的时候,在计算机上多敲代码。
总之,C语言是基础,是饭碗,想成为一名合格的程序员C语言必须精通,对于C语言的学习就是一种“痛并快乐着”的感觉。

猜你喜欢

转载自blog.csdn.net/qq_43627087/article/details/83833609