您的位置:首页 > 编程语言 > C语言/C++

C语言的简单介绍与描述(个人见解)

2013-11-27 11:34 211 查看
c语言个人所学有限,接触较短,但是对此个人还是觉得有那么几点需要记

1.简单来说,c语言中常用的就是标示符,是用来命名字的,比如常量名、变量名、函数名、数组名、类型名等都需要c语言中标示符。而标示符只能用字母、数字、下划线三种组成,开头必须用字母或下划线,而不能用数字,切忌,对于长时间泡在这一it行业的人来说这是基础中的基础,原因是什么就不多做解释。

2.c语言中,整形 int  适用于整数运算,浮点型float double 则适合小数运算,double比float更精准,字符型 char 用于输入一组一串字符,但是要用双引号,也可以单个输出但是需要' '放入单引号

3.for循环语句,利用for循环可以输出一组图形,(记住该写分号;的地方要写,不该写的地方不要乱填)

例如:

 /*

     ******

     *****

     ****

     ***

     **

     *

 */

    

for (int i=1; i<=6; i++) //控制行数

{

 for (int j=i; j<=6; j++) 

    {

    printf("*");
//控制星号输出

  }

  for (int x=1; x<=i-1; x++)

    {

     printf(" ");
//控制间隔

   }

   printf("\n");

 }

4.活用if…else语句,如果(if)那么(else),可以来这么想,如果你不接你女朋友电话,那么你以后就不会好过。这条语句和for语句很常用,以判定成功与不成功。

如果(if)努力了就会成功,不努力,那么(else)就会失败

一个简单的实例成绩输出录入

    int cj;
//整型的cj(成绩)

    printf("请输入成绩\n");//printf是输出语句
   
scanf("%d",&cj);
//scanf 输入语句
   
if (cj>100 || cj<0)

 {
       
printf("输入错误");
    }
else
   
if (80<=cj && cj<=100)
 {
       
printf("优秀");
    }
else
if (cj>=70)
    {
       
printf("良好");
    }
else
if (cj>=60)
        {
           
printf("及格");
        }
else
        {
           
printf("不及格");
        }
不仅可以用if..else语句来写 。switch也属于一种循环语句,不过稍微比较麻烦(个人写的没改过)

    int cj2;

    printf("请输入成绩:\n");
   
scanf("%d",&cj2);
   
switch (cj2/10) {
       
case 10:
           
printf("人才");
           
break;
       
case 9:
           
printf("sss");
           
break;
       
case 8:
           
printf("优秀");
           
break;
       
case 7:
           
printf("良好");
           
break;
       
case 6:
           
printf("及格");
           
break;
       
case 5:
           
printf("不及格");
           
break;
       
case 4:
           
printf("太差");
           
break;
       
case 3:
           
printf("准备补考");
           
break;
       
case 2:
           
printf("1+1=?");
           
break;
       
case 1:
           
printf("清华大学欢迎你");
           
break;
       
case 0:
           
printf("北大欢迎你");
           
break;

            
       
default:printf("输入错误");
           
break;
    }
5.数组是一组存放相同类型得集合,合理得利用数组,输入输出,学生成绩,选出其最大值,最小值,从大到小排序,从小到大得排序以及平均值(包含总和)。

举例说明一个:

#define Num 10        //定义num为10 后面可以直接调用num
int main(int argc,
const char * argv[])
{
   
int a[Num];
   
for (int i=1; i<=Num; i++) {
//灵活运用for循环语句。
       
printf("请输入第%d学生成绩:",i);
       
scanf("%d",&a[i-1]);
    }
   
for (int i=1; i<=Num; i++) {
       
printf("第%d学生成绩%d\n",i,a[i-1]);

    }
   
int max=a[0];
//最大值
   
for (int i=1; i<Num; i++)
    {
       
if (max<a[i])
        {
            max=a[i];
        }
    }
   
printf("最大值:%d",max);

    
   
int min=a[0];
//最小值
   
for (int i=1; i<Num; i++) {
       
if (min>a[i]) {
            min=a[i];
        }
    }printf("最小值:%d",min);
   
float sum = 0;
//总分,并可直接求出平均值
   
for (int i=1; i<Num; i++)
    {
        sum+=a[i];

    }printf("十个学生得总分%.1f
平均成绩%.2f\n",sum,sum/10);

    
   
for (int i=0; i<Num-1; i++) {
//顺序排序
       
for (int j=i+1; j<Num; j++) {
           
if (a[i]<a[j]) {
               
int t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
    }
   
for (int i=1; i<=Num; i++) {
       
printf("第%d学生成绩%d\n",i,a[i-1]);}

    
   
for (int i=0; i<Num-1; i++) {
       
for (int j=i+1; j<Num; j++) {
           
if (a[i]>a[j]) {
               
int t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
    }
   
for (int i=1; i<=Num; i++) {
       
printf("第%d学生成绩%d\n",i,a[i-1]);}

 return
0;
}
注意:数组下标>=0 小于数组长度-1;定义数组得时候 类型(int)数组名(a)[长度]{11,1,22,3,4,5,6,7};

函数分为局部函数和全局函数,局部函数在main()里运用得属于局部函数,并且定义得变量是需要不断得从新定义,而全局函数,在main()上方include下面定义得属于自己得函数,定以后可直接调用。,而且全局函数可以共用,每次运行后,自动释放。

注意:定义函数为整形时,记得用return返回值。

6.指针,*p 就是指针p,学习了如何运用指针,可以指向变量得地址,取地址或是取地址中得值,利用指针学习如何指向数组中得最大值,最小值。

    int a[Num];
   
int *p; //定义整型指针p
    p=a;
   
for (int i=1; i<=Num; i++) {
       
printf("请输入第%d学生成绩:",i);
       
scanf("%d",p);
        p++;
    }
    p=a;
   
for (int i=1; i<=Num; i++) {
       
printf("第%d学生成绩%d\n",i,*p);
  //输出指针时%p是输出它的地质
        p++;

        
    }
    p=a;
   
int max;
    max=*p;
   
for (int i=1; i<Num; i++)
    {
       
if (*p<a[i])
        {
            *p=a[i];
        }
    }
   
printf("最大值:%d",*p);
    p=a;
   
int min;
    min=*p;
   
for (int i=1; i<Num; i++) {
       
if (*p>a[i]) {
            *p=a[i];
        }
    }printf("最小值:%d\n",*p);
   
float sum = 0;
   
for (int i=1; i<Num; i++)
    {
        sum+=a[i];

    }printf("十个学生得总分%.1f
平均成绩%.2f\n",sum,sum/10);

自我总结:指针用的不是很灵活,函数也马马虎虎,有关数组,心中有一个小小想法,就是利用数组和指针来做一个卡牌小游戏(有待以后自己努力实践)。指针 函数 总结的不是很完善

7.文件的创建

 printf("保存学生信息\n");
   
FILE *fp;
// 文件创建FILE

    fp=fopen("/Users/mac/Desktop/tian.txt",
"w");

//
fopen文件的打开,而双引号里逗号前放是开辟的路径,逗号后“w”是写入固定不要随意改写

  
Node *p;
    p=head;
   
while (p!=NULL) {
   
fprintf(fp," %d %s %d %d",p->stu.number,p->stu.name,p->stu.age,p->stu.cj);
//fprintf和printf一样一个能传送格式化输出到一个文件中用,一个是普通输出
 p=p->next;}
   
fclose(fp);
// fclose文件既然有打开那一定也有关闭,建议当创建文件打开时,可直接文件关闭,以防忘记
   
printf("输入成功");

 

printf("读取学生信息\n");
   
FILE *fp;

    fp=fopen("/Users/mac/Desktop/tian.txt",
"r"); //文件读取也需要从路径中打开,唯一改变的是“r”是读取
   
while (fp==0) {
       
printf("文件打开失败");
       
break;
    }
   
Node *p;
   
while (p!=NULL) {
       
fscanf(fp,
"%d %s %d %d",&p->stu.number,p->stu.name,&p->stu.age,&p->stu.cj);//fscanf读取到一个文件中用的信息
        p=p->next;}
   
fclose(fp);
//读取完也是需要关闭

对于只学到oc的我来说,就是弄明白if...else 、do...while 、while、和swich语句,开辟空间malloc,在c中每次没开辟一次空间都要用free来释放它。 

第一次写,有很多不足之处,以后会慢慢改进,万事开头难,我现在还在努力学习中。有哪里不清楚或是不对的地方尽可提,我会尽量改善完善。

取长补短方能成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言