C语言基础知识

一、关于C语言的简单介绍

Combined Language,即组合语言,作为计算机设计语言,具有高级语言和汇编语言的特点,可以用来编写系统程序,应用程序,也可以应用到单片机及嵌入式系统的开发中。

1.C语言的特点

  1. 高效性
  2. 灵活性
  3. 功能丰富
  4. 表达力强
  5. 移植性好

2.C程序的生成过程

C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件。
源程序的扩展名为.c,目标文件的扩展名为.obj,可执行程序的扩展名为.exe。

3.一些说明

1.main()为主函数,一个C程序有且只有一个,且是程序执行的入口。
2.#include<>为预编译处理命令,不算语句。
3.注释用 /* ……*/,部分支持单行注释 //……。

二、标识符 常量 变量 数据类型

1. 标识符

(1)标识符的命名规则

  • 只能由字母数字下划线构成
  • 第一个字符必须是下划线或字母,不能是数字。
  • 区分字母的大小写。
  • 不允许使用C语言规定的关键字为标识符命名。

(2)标识符的分类

C语言的标识符分为 关键字,预定义标识符,用户标识符。

2.常量

常量按类型可划分为:整型、实型、字符、字符串、符号常量。
①. 整型常量 如6,7,-2
其中八进制以数字0开头,十六进制以0x或(0X)开头。
编译器会自动将其转换为二进制形式存储。
注:整型常量分为(unsigned) int 、(无符号)长整型常量。

②. 实型常量 如 6.3,-6.3,5.82f
指数形式:以字e 或 E 代表以10为底的指数。e 左边是数值部分,右边是指数部分,必须是整数形式。
注:实型常量(浮点数)(float \ double\ long double)

③. 字符常量 如‘7’,‘A’,‘h’(不能是中文)
特殊的字符常量:转义字符(\)
注:只能放1个字符,单引号括起来。错误写法:’ab’,’12’

④. 字符串常量 如“9”,“Hallo Word”,“我们是字符串”
注:用双引号括起来的就是字符串⑼

⑤. 符号常量
由预处理命令 “#define” 定义的常量。

3.变量

变量在使用前要定义,定义后在内存中申请一段空间用来存放变量的数值,变量的不同类型代表存储单元的大小的不同。
  1. 整型变量(括号内为VC++6.0下的字节数/B)
    int (4)、short int (2) 、long int (4)
  2. 实型变量
    float (4)、double (8)、long double(8)
  3. 字符变量
    char(1)
    注:存储是在对应的内存单元存储对应的ASCII码,字符数据进行算数运算,相当于对应的ASCII码的运算。

4.类型的自动转换与强制转换

  1. 自动转换
  2. 强制转换
    表示形式:(类型)(表达式);

三、常用的数学函数

函数名功能
sqrt(x)求x的平方根
fabs(x)绝对值
pow(x,y)x^y

四、总结性函数

【题目】键盘输入三角形的三边,利用数学库函数求三角形的面积。
编程涉及知识点:强制类型转换、数学库函数、键盘输入输出。

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

int main()
{
	float a,b,c,area;
	printf("Please input a,b,c:");
	scanf("%f%f%f",&a,&b,&c);
	s = (a+b+c) / 2;
	area = (float)sqrt(s*(s-a)*(s-b)*(s-c));

	ptintf("area = %f\n",area);
return 0;
}

Please input a,b,c:3,4,5
area = 6.000000

【程序改进思路】:判断输入的a,b,c是否能构成三角形。
练习算法提供:
【题目】:编程计算并输出一元二次方程ax²+bx+c=0的两个实根。其中a,b,c的值由用户输入。

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

int main()
{
    float a,b,c;
    double delt,x1,x2;
    printf("请输入一元二次方程的系数a,b,c的值:\n");
    scanf("%f%f%f",&a,&b,&c);

    delt = b*b-4*a*c;
    x1 = (float)(-b+sqrt(delt))/(2*a);
    x2 = (float)(-b-sqrt(delt))/(2*a);

    printf("x1 = %lf,x2 = %lf\n",x1,x2);

    return 0;
}

请输入一元二次方程的系数a,b,c的值:
1
-7
11.25
x1 = 4.500000,x2 = 2.500000

Process returned 0 (0x0)   execution time : 14.219 s
Press any key to continue.

【算法改进思路】1.判断输入的a,b,c是否有实根;2.实根求值算法进行改进;
示例:

    x1 = (float)(-b+sqrt(delt))/(2*a);
    x2 = (float)(-b-sqrt(delt))/(2*a);
    */
    这段代码改为
    p = (-b)/(2*a);
    q = (float)sqrt(delt)/(2*a);
    x1 = p+q;
    x2 = p-q;

算法还有哪些地方可以改进,欢迎留言!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值