慕课网c语言入门学习笔记

#include<stdio.h>
int main()新标准中是int 而非void
一个c程序中只有一个主函数,main是唯一入口
printf();
return 是函数的返回值,函数类型不同,返回值也不同


良好规范

1、一个说明或一个语句占一行,例如:包含头文件、一个可执行语句结束都需要换行;
2、函数体内的语句要有明显缩进,通常以按一下Tab键为一个缩进;
3、括号要成对写,如果需要删除的话也要成对删除;
4、当一句 可执行 语句结束的时候末尾需要有分号;
5、代码中所有符号均为英文半角符号。
(半角全角主要是针对标点符号来说的,全角标点占两个字节,半角占一个字
,.?'! ……这些是半角的 
,。?‘! ……这些是全角的
全角是中文的标点.半角是英文的吧. 
在电脑编程语言中,只能用半角,不能全角.计算机只支持半角)

C语言注释方法有两种:

       多行注释:  /* 注释内容 */ 

       单行注释:  //注释一行

C 语言规定,标识符可以是字母(A~Z,a~z)数字(0~9)下划线_组成的字符串,并且第一个字符必须是字母或下划线。在使用标识符时还有注意以下几点:

(1)标识符的长度最好不要超过8位,因为在某些版本的C中规定标识符前8位有效,当两个标识符前8位相同时,则被认为是同一个标识符。 

(2)标识符是严格区分大小写的。例如Imooc和imooc 是两个不同的标识符。 

(3)标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。

(4)标识符不能是C语言的关键字。想了解更多C语言关键字的知识,请查阅WIKI。


变量名和标识符的命名规范完全相同。%d在后面会有详细讲解

注意:在定义中不允许连续赋值,如int a=b=c=5;是不合法的。

变量的赋值分为两种方式:1.先声明再赋值  2.声明的同时赋值





printf("小明身高%f%c\n", height, unit);注意%f%c中间没有逗号



以上是直接常量 无需声明

还有一种符号常量

 #define 标识符 常量值  常量是不可改变的 防止他人的篡改  符号常量的标示符一般习惯使用大写字母,变量的标示符一般习惯使用小写字母,加以区分。


#include <stdio.h>
#define POCKETMONEY 10    //定义常量及常量值
int main()
{   
  //  POCKETMONEY = 12;  //小明私自增加零花钱对吗?    不注销掉是不对的 因为常量不可更改
    printf("小明今天又得到%d元零花钱\n", POCKETMONEY);
    return 0;  
}


自动类型装换  字节小的可以向字节大的转换  但是反之不可以  遵守ASCALL码

#include <stdio.h>
int main()
{
    char c = 'a';
    int n = c;       //将c赋值给n
    float f =  c  ;   //将c赋值给f
    double d =  c   ; //将c赋值给d
    printf("%d\n",n);
    printf("%f\n",f);
    printf("%lf\n",d);
    return 0;    
}

强制类型转换

在使用强制转换时应注意以下问题:

1、数据类型和表达式都必须加括号,如把(int)(x/2+y)写成(int)x/2+y则成了把x转换成int型之后再除2再与y相加了。

2、转换后不会改变原数据的类型及变量值,只在本次运算中临时性转换

3、强制转换后的运算结果不遵循四舍五入原则


#include <stdio.h>
int main()
{
    double num = 2.5;      //定义浮点型变量num并赋值为2.5
    printf("num的整数部分是%d\n",(int)num);  
    return 0;
}


除法运算中注意:

如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如8/3 = 2;而两数中有一个为小数结果则为小数,如:9.0/2 = 4.500000。

取余运算中注意:

该运算只适合用两个整数进行取余运算,如:10%3 = 1;而10.0%3则是错误的;运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1。

注:C语言中没有乘方这个运算符,也不能用×,÷等算术符号。








#include <stdio.h>
int main()
{
    int x = 0;
    printf("x=%d\n",x++);
    printf("x=%d\n",++x);
    return 0;
}


%取余和/除法谁在前面先算谁

分析:定义整型变量a并赋值为3,a += 5;这个算式就等价于a = a+5; 将变量a和5相加之后再赋值给a

注意:复合运算符中运算符和等号之间是不存在空格的。


==是相等  =是赋值 !=是不等

计算机看不懂 1<x<7 应该x>7 && x<100;

&&   ||  !   

不低于 是 >=

三目运算符

表达式1?表达式2:表达式3;

先判断表达式1的值是否为真,如果是真的话执行表达式2;如果是假的话执行表达式3。

//输出y小编就打车回家了,输出n小编就不能打车回家
    printf("%c\n",money>cost?'y':'n');


判断是否是闰年:被4整,若是整数年要能被400整除


if

if else if

if else if else

#include <stdio.h>
int main() 
{
    int score = 7200;
    //完善一下代码
    if(score>=10000)//因为一个括号打成全角了 找了半天
    { 
        printf("钻石玩家");
    }
    else if(score>=5000)//不需要<10000的判断条件
    {
        printf("白金玩家");    
    }
    else if(score>=1000)
    {
        printf("青铜玩家");     
    }
    else
    {
        printf("普通玩家");    
    }
    return 0;
}


#include <stdio.h>
int main() 
{
    int sale=120; //销售业绩为120万
    int year=1; //刚刚进入公司1年
    //完善代码
    if(sale>100)
    {
        
        if(year>=2)
        {//注意这个大括号的位置,放在if前面就错了
            printf("恭喜你获得年终奖");
        }
        else
            printf("很遗憾,期望你再接再厉");
    }
    else//这个判断条件不能少
         printf("很遗憾,期望你再接再厉");
    return 0;
}


题目明显是多个条件判断,用多重if-else语句更加直观而且比较省代码量


多重   if  

 else if

 else if

else


嵌套

if

{

if()

{}

else

{}

}

else

{}


while循环

使用while语句应注意以下几点:

1、while语句中的表达式一般是关系表达或逻辑表达式,当表达式的值为假时不执行循环体,反之则循环体一直执行。

2、一定要记着在循环体中改变循环变量的值,否则会出现死循环(无休止的执行)。

3、循环体如果包括有一个以上的语句,则必须用{}括起来,组成复合语句。


100以内函数之和含100


do-while

do

{

执行;

}

while();//这里的分号不能忘;while在}外面


for循环


使用for语句应该注意

1、for循环中的“表达式1、2、3”均可可以缺省,但分号(;)不能缺省

2、省略“表达式1(循环变量赋初值)”,表示不对循环变量赋初始值。如:

3、省略“表达式2(循环条件)”,不做其它处理,循环一直执行(死循环)。如:

4、省略“表达式3(循环变量增量)”,不做其他处理,循环一直执行(死循环)。如:

注:死循环可以使用后面即将讲到的break解决

5、表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。如:

for(sum=0;num<=10;num++)

6、表达式1和表达式3可以是一个简单表达式也可以是多个表达式以逗号分割。如:

for(sum=0,num=0;num<=10;num++,sum++)

7、表达式2一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体。

8、各表达式中的变量一定要在for循环之前定义。如:for(int sum=0...)就是错的,因为要提前定义

那对于随用随定义的c++来说呢???????


//获取三位数字num百位上的数字
        hd =num/100;
        //获取三位数字num十位上的数字
        td =(num-hd*100)/10     ;//或 td=num%100/10
        //获取三位数字num个位上的数字
        sd =(num-hd*100-td*10)     ;//OR num%10

        //水仙花数的条件是什么?


while、do-while和for三种循环在具体的使用场合上是有区别的,如下:

1、在知道循环次数的情况下更适合使用for循环

2、在不知道循环次数的情况下适合使用while或者do-while循环,如果有可能一次都不循环应考虑使用while循环,如果至少循环一次应考虑使用do-while循环

但是从本质上讲,while,do-while和for循环之间是可以相互转换的





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值