起航,C语言基础内容整理
一、概念及基本格式
程序:为了解决某一个问题,而编写的一系列有序指令的集合。
算法:解决问题的具体方法和步骤。
流程图是算法的一种图形化的表达方式。流程图可以直观、清晰,更有利于人们设计与理解算法。
C语言的基本结构
#include <stdio.h>
void main()
{
printf("Hello World\n");
}
C语言中的注释:
//单行注释
/*
多行注释
*/
#include <stdio.h>
void main()
{
printf("hello world");
}
示例:
#include<stdio.h>
void main()
{
/*
printf("**************************************\n");
printf(" 成绩表 \n");
printf("**************************************\n");
printf("姓名 语文 数学 英语 体育\n");
printf("张一 10 10 10 10 \n");
printf("李二 11 11 11 11 \n");
printf("王三 11 11 11 11 \n");
printf("赵四 11 11 11 11 \n");
*/
printf("**************************************\n");
printf("\t \t成绩表\n");
printf("**************************************\n");
printf("姓名\t语文\t数学\t英语\t体育\n");
printf("张一\t10\t10\t10\t10\n");
printf("李二\t11\t11\t11\t11\n");
printf("王三\t11\t11\t11\t11\n");
printf("赵四\t11\t11\t11\t11\n");
}
二、变量和数据类型
声明变量:
数据类型 变量名=值 ;
例如:int num = 5
也可以一次声明多个变量(中间用 , 隔开):
int num = 5, i = 3;
变量的使用需要满足:先声明,后赋值,再使用。
int a;
a=10;
int a=10;
先声明,后赋值
标示符的命名规范:见名知意
1、有字母、数字和下划线组成,不能有其他特殊字符,不能以数字开头。
2、不能使用预留关键字。
3、严格区分大小写。Boy 和 boy 是两个变量。
4、建议采用驼峰命名法:首单词小写,其他单词的首字母大写(employeeName)。
数据类型:数值、非数值(char);
数值:整型、浮点型;
整型:短整型(short)、整型(int)、长整型(long);
浮点型:单精度浮点型(float)、双精度浮点型(double).
printf()、scanf():输出和输入,获取和输出与用户交互的信息。
常用的占位符:%d(int)、%f(float)、%lf(double)、%c(char)、%s(字符串)
取址符使用方法: scanf("%d",&a);
示例:
计算圆柱体积
float raduis,height,vol,pi=3.14;//声明两个变量分别用于保存半径和高
printf("请输入半径:\n");
scanf("%f",&raduis);
printf("请输入高:\n");
scanf("%f",&height);
vol = pi*raduis*raduis*height;
printf("圆柱的体积vol=%0.2f",vol);
示例2:
打印购物小票
float price=20,totalPrice,realPrice,disCount;//牙膏价格
float total,change;//付款金额和找零
int num;//要购买的牙膏的数量
printf("牙膏的价格为20元每只\n");
printf("请输入购买牙膏的数量:\n");
scanf("%d",&num);//获取输入的数量
printf("请输入折扣:\n");
scanf("%f",&disCount);//获取输入的折扣
printf("请输入付款金额:\n");
scanf("%f",&total);//获取付款金额
totalPrice = price*num;//计算总价(原价)
realPrice = (1- disCount)*totalPrice;//计算应付金额
change = total-realPrice;//计算找零
printf("***************购物小票**************\n");
printf("单价\t数量\t小计\n");
printf("%0.2f\t%d\t%0.2f\n",price,num,totalPrice);
printf("折扣:%0.2f,折扣价:%0.2f\n",disCount,disCount*totalPrice);
printf("应付:%0.2f,实付:%0.2f,找零:%0.2f\n",realPrice,total,change);
printf("************************************");
算术运算符:分为一元运算符和二元运算符
二元运算符(操作数有两个):+,-,*,/,%(求余或取模)
一元运算符(操作数只有1个):++(自加1),--(自减1)
示例:
int num=5;
printf("%d\n",num++);//5
printf("%d\n",num);//6
printf("%d\n",++num);//7
printf("%d\n",num);//7
printf("*************************\n");
printf("%d\n",num--);//7
printf("%d\n",num);//6
printf("%d\n",--num);//5
printf("%d\n",num);//5
类型转换: 自动转换和强制转换
自动转换:
1.两种数据类型相互兼容
2.目标类型大于源类型--->范围小的可以向范围大的自动转化
short--->int--->long--->float--->double
强制转换:在强制转换的过程中有可能会发生进度的丢失
语法: (数据类型)变量或数值;
示例:
int a=3,b=2;
float c,d,e,f;
c=a/b ;//1.000000
d=(float)(a/b);//1.000000
e=(float)a/b;//1.500000
f=(int)c%a;//1.000000
示例:对输入的两个数值进行交换
//1.获取用户输入的两个数值,并完成交换
int num1,num2,temp;
printf("请输入num1的值:\n");
scanf("%d",&num1);
printf("请输入num2的值:\n");
scanf("%d",&num2);
printf("交换前:num1=%d,num2=%d\n",num1,num2);
//交换num1和num2的值
temp=num1;
num1=num2;
num2=temp;
printf("交换后:num1=%d,num2=%d\n",num1,num2);
示例:根据用户输入的数值,计算梯形的面积
float top,bottom,height,s;
printf("请输入梯形的上底:\n");
scanf("%f",&top);
printf("请输入梯形的下底:\n");
scanf("%f",&bottom);
printf("请输入梯形的高:\n");
scanf("%f",&height);
s=(top+bottom)*height/2;//计算面积
printf("梯形的面积为:%0.2f",s);