Linux学习笔记 day3

C语言基础

小知识:

vim快捷键

ctrl+p //自动补齐

esc+ v 选中要对齐的 + = // 自动对齐选中

当在vim中编辑文本时,终端不小心关闭了,找回文件方法:

ldy@ldy:~$ ls -a
.              .config           LinuxStudy                 .viminfo  文档
..             C-Study           .local                     .vimrc    下载
.bash_history  examples.desktop  .mozilla                   公共的    音乐
.bash_logout   .gnupg            .profile                   模板      桌面
.bashrc        .hello.c.swp      .ssh                       视频
.cache         .ICEauthority     .sudo_as_admin_successful  图片
ldy@ldy:~$ vim hello.c
ldy@ldy:~$ rm .hello.c.swp 
ldy@ldy:~$ vim hello.c
#echo $?				//想知道刚刚执行的命令返回值是否成功

一、main函数

函数是C语言程序中最小的单位

main:main函数是程序的入口也是程序的出口

用法

int main()
int main(int argc , char *argv[])
int main(int argc , char **argv)

返回值

return 0 成功

return !0 失败

二、变量

定义变量的注意事项:

  1. 定义一个变量,变量不能重复定义,否则报错
  2. 定义变量,变量的作用域的范围,在当前的这个方法中有效的
  3. 在同一行上是可以定义多个变量,但是不建议
  4. 定义变量,不能以数字开头

定义:在程序运行过程中,值随时可能会发生变化的量

语法[存储类型] 数据类型 变量名 = 初始值;

拓展

printf用法:推荐man 3 printf手册 //可以参考printf用法大全,C语言printf格式控制符一览表 (biancheng.net)

scanf用法:推荐man 3 scanf手册 //可以参考C语言scanf函数用法完全攻略 (biancheng.net)

科学计数法:3.0E-23 //3.0*10^-23

数据类型占用空间有效数字范围打印格式
float(单精度浮点型)4字节7位有效数字%f
double(双精度浮点型)8字节15~16位有效数字%lf
int(整型)4字节(-2^31 ~ 2^31-1)%d

示例:

#include<stdio.h>

int main()
{
    int i = 10 , j = 300;			//定义整型变量
    float f = 3.14;					//定义实型变量(浮点型)   注意:定义变量,不能以数字开头
	int num;
    /*打印输出*/
    printf("hello world!\n");
    printf("显示每个变量的值\n");
    printf("i = %d\nj = %d\nf = %f\n",i,j,f);
    /*打印变量加法->方法一*/
    printf("显示变量i+j的和\n");
    printf("NUM = %d\n",i+j);
    /*打印变量加法->方法二*/
    num = i+j;
    printf("显示变量i+j的和\n");
    printf("num = %d\n",num);
    
    return 0;
}

演示
在这里插入图片描述

三、常量

注意:常量不可能在 = 左边

定义: 在程序运行中,值不会发生变化的量

作用: 用于记录程序中不可更改的数据

定义常量两种方式

  1. #define 宏常量: #define 常量名 常量值

    • 通常在文件上方定义,表示一个常量
    #define pi      3.14      		//定义宏常量pi
    
  2. const修饰的变量 const 数据类型 常量名 = 常量值

    • 通常在变量定义前加关键字const,修饰该变量为常量,不可修改

四、循环结构

for循环语句

作用: 满足循环条件,执行循环体语句

语法:for(初始化;循环成立条件;变化) { 循环体; }

示例:

int main() 
{
	int i , sum = 0;
	for (i=0;i<=100;i++)
	{
		sum = sum + i;
	}
	
    printf("i = %d\n",i);
    printf("sum = %d\n",sum);

	return 0;
}

五、注释

作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码

两种格式

  1. 单行注释// 描述信息
    • 通常放在一行代码的上方,或者一条语句的末尾,对该行代码说明
  2. 多行注释/* 描述信息 */
    • 通常放在一段代码的上方,对该段代码做整体说明

提示:编译器在编译代码时,会忽略注释的内容

练习

练习一

用c语言写一个计算圆的周长和面积的程序

代码:

#include <stdio.h>

/*
#define pi      3.14      		//定义宏常量pi
*/

int main()
{
    
        int r;                  //定义圆的半径
        float pi = 3.14;        //定义圆周率
        float s,c;              //定义圆的面积,周长
        printf("请输入圆的半径\n");
        scanf("%d",&r);
        s = pi*r*r;             //求圆的面积
        c = 2*pi*r;             //求圆的周长
        printf("圆的面积:%f\n",s);
        printf("圆的周长:%f\n",c);

        return 0;
}

演示:

在这里插入图片描述

各个类型进行混合计算时,向精度高的靠拢

练习二

一个水分子的质量约为3.0*10^-23g,1夸脱水大约有950g,编写一个程序,要求输入水的夸脱数,然后显示这么多水中包含多少水分子

代码:

#include <stdio.h>

#define M       3.0E-23         //定义一个水分子质量
#define water   950             //定义1夸脱水质量
#define n       (water/M)       //定义1夸脱水含有的水分子数     

int main()
{
    
        int kuatuo;						//定义要输入的夸脱数变量
        double numb; 					//定义总水分子数
        printf("请输入水的夸脱数\n");
        scanf("%d",&kuatuo);
        numb = n*kuatuo;				//计算kuatuo个夸脱数水所含有的水分子数,赋值给numb
        printf("%d夸脱水中包含水分子数为:%lf\n",kuatuo,numb);
		printf("%d夸脱水中包含水分子数为:%e\n",kuatuo,numb);	// %e->以科学计数法的方式显示
        return 0;
} 

演示:

在这里插入图片描述

练习三

求三角形的面积s 和 area

代码:

#include <stdio.h>
#include <math.h>

int main()
{
        int a,b,c;
        double s,area;
        printf("请输入三角形的边长\n");
        printf("a=");
        scanf("%d",&a);
        printf("\nb=");
        scanf("%d",&b);
        printf("\nc=");
        scanf("%d",&c);

        /*if error*/
        if(a+b <= c || b+c <= a || a+c <= b)
        {
                printf("构不成三角形\n");
                return 1;
        }
    
        s = 1.0/2*(a+b+c);
        area = sqrt(s*(s-a)*(s-b)*(s-c));
        printf("s = %lf\n",s);
        printf("area = %lf\n",area);

		return 0;

}

演示:

在这里插入图片描述

面试直击

1.请定义一个宏,宏名自取,宏体为一年的秒数

#define SEC_YEAR        (60LL*60LL*24LL*365LL)   //给每个变量加上单位

其他面试题参考:C语言面试题分类->宏定义 - 夜空释 - 博客园 (cnblogs.com)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值