c语言基础篇(一)
2015-11-29 16:00
316 查看
一: 基本数据类型
整型 int
实型 float / double
字符型 char
// 这些数据类型是用来修饰 变量
程序运行过程中可以改变的量 //
二:变量的命名规则:
1.以字母丶下划线开头,中间可以包含数字,但不能以数字开头
2.可以使用美元符号开头($),但不建议
3.见名知意
4.不可使用系统保留字
三:赋值
1.直接赋值
int b;
b = 10;
2.通过其他变量赋值
int c = 10;
int d;
d = c;
printf("d = %d\n",d);
3.通过控制台赋值
printf("请输入一个整数:\n");
int e;
scanf("%d",&e);
printf("e = %d\n",e);
// main.c
// C_01
//
// Created by 8011 on 15/11/25.
// Copyright (c) 2015年 yong. All rights reserved.
//
#include <stdio.h>
#include <stdbool.h>
//宏的定义#define PI 3.1415 输出 printf("PI = %.4f\n",PI);
#define MAXX 10 输出 printf("MAXX = %d\n",MAXX);
int main(int argc, const char * argv[]) {
//程序默认从上至下一步一步执行printf("1\n");
printf("2\n");
printf("3\n");
printf("Hello, World!\n")
//表达式: 由变量和运算符组合而成的 叫做表达式
int a5 = 10;
int b5 = 8;
int d5 = a5 % b5;
printf("d5 = %d\n",d5);
a5++; //表示a5=a5+1;
a5--; //表示a5=a5-1;
++a5; //自加1;
--a5; //自减1;
int q = 10;
int p = q++; //先赋值,再运算 输出p=10;
//等价于
//p=q;
//q=q+1;
//int p = ++q; //先运算,再赋值 输出p=11;
//等价于
//q=q+1;
//p=q;
//算术运算符 + - * / % ++ --
//赋值运算符 = += -= *= /= %=
int z = 1+2;
int z1 = 5;
z1 += 5; 输出z1=10;
//等价于
//z1=z1+5;
/*
在C语言中有一个BOOL类型,此类型在stdbool.h(头文件)库中.
对于BOOL类型来说,它有两种取值 ture或false,其实布尔类型本质上也是整型
ture 1,false 0
对于由关系运算符组成的表达式来说,其结果为布尔类型
*/
bool flag = (5 >= 9-4);
printf("flag = %d\n",flag); 输出flag = 1(ture);
/*
对于逻辑于,前面的条件不满足,后面的条件不执行
对于逻辑或,前面的条件满足,后面的条件不执行
例 int m = 1;int n;
int r = ((n=2)<5||(m=3)>2);
*/
//强制类型转换 隐式转换 显示转换
int n1 = 4;
int n2 = 3;
//隐式转换
int result1 =n1/n2;
printf("result1 = %d\n",result1);
//显示转换
float result2 = (int)(n1/n2);
printf("result2 = %f\n",result2);
//隐形例子
int m = 5;
float n = 10.0;
c = m+n;
printf("c = %f\n",c); 输出 c = 15.0;
float c ;
//算术运算符>关系运算符>逻辑运算符>赋值运算符
练习://求a b的+ - * /
int a = 5;
int b = 10;
int sum,dif,pro,quo;
sum = a+b;
dif = a-b;
pro = a*b;
quo = b/a;
printf("a+b = %d\n",sum);
printf("a-b = %d\n",dif);
printf("a*b = %d\n",pro);
printf("b/a = %d\n",quo);
//篮球队参加66场比赛,赢41场,输25场 计算胜率以及负率
int win = 41;
int lose = 25;
float Wrate,Lrate;
Wrate = 1.0*win/(win+lose);
Lrate = 1.0*lose/(win+lose);
printf("Wrate = %.2f\n",Wrate);
printf("Lrate = %.2f\n",Lrate);
//1到200的求和
int i,sum = 0;
for (i=1;i<=200 ; i++)
{
sum+=i;
}
printf("sum = %d\n",sum);
//国外买东西需要缴税,计算总价值,应付税额,应付款额;
公式: 总值=相数*每项价值 折扣后总值=总值-(折扣率*总值)应付税额=总值*税率 应付款项=总值+应付税额
float jiazhi,xiangshu,zhekou,zongzhi,ZKHzhongzhi,suier,kuanxiang;
printf("请输入价值,项数,折扣,空格隔开:\n");
scanf("%f %f %f",&jiazhi,&xiangshu,&zhekou);
zongzhi = xiangshu*jiazhi;
ZKHzhongzhi = zongzhi - (zhekou*zongzhi);
suier = zongzhi*0.6;
kuanxiang = zongzhi + suier;
printf(" zongzhi: %.2f\n ZKHzongzhi: %.2f\n suier: %.2f\n kuanxiang: %.2f\n",zongzhi,ZKHzhongzhi,suier,kuanxiang);
//求中点
float x,x1,y,y1,x2,y2;
x1 = 10;
x2 = 20;
y1 = 5;
y2 = 10;
x = (x1+x2)/2;
y = (y1+y2)/2;
printf("x = %.2f\n,y = %.2f\n",x,y);
//年月日 输入一个年月日,求这天是这年的第几天
int year,mouth,day,i;
printf("请输入年月日(空格隔开):\n");
scanf("%d %d %d",&year,&mouth,&day);
if (year%400==0||year%4==0&&year%100!=0)
{
switch (i = mouth)
{
case 1:
i = day;
break;
case 2:
i = 30 + day;
break;
case 3:
i = 29+30 + day;
break;
case 4:
i = 31+29+30 + day;
break;
case 5:
i = 30+31+29+30+day;
break;
case 6:
i = 31+30+31+29+30+day;
break;
case 7:
i = 30+31+30+31+29+30+day;
break;
case 8:
i = 31+30+31+30+31+29+30+day;
break;
case 9:
i = 31+31+30+31+30+31+29+30+day;
break;
case 10:
i = 30+31+31+30+31+30+31+29+30+day;
break;
case 11:
i = 31+30+31+31+30+31+30+31+29+30+day;
break;
case 12:
i = 30+31+30+31+31+30+31+30+31+29+30+day;
break;
case 13:
i = 31+30+31+30+31+31+30+31+30+31+29+30+day;
break;
default:
printf("输入年月日不正确!");
break;
}
}
else
{
switch (i = mouth)
{
case 1:
i = day;
break;
case 2:
i = 30 + day;
break;
case 3:
i = 28+30 + day;
break;
case 4:
i = 31+28+30 + day;
break;
case 5:
i = 30+31+28+30+day;
break;
case 6:
i = 31+30+31+28+30+day;
break;
case 7:
i = 30+31+30+31+28+30+day;
break;
case 8:
i = 31+30+31+30+31+28+30+day;
break;
case 9:
i = 31+31+30+31+30+31+28+30+day;
break;
case 10:
i = 30+31+31+30+31+30+31+28+30+day;
break;
case 11:
i = 31+30+31+31+30+31+30+31+28+30+day;
break;
case 12:
i = 30+31+30+31+31+30+31+30+31+28+30+day;
break;
case 13:
i = 31+30+31+30+31+31+30+31+30+31+28+30+day;
break;
default:
printf("输入年月日不正确!");
break;
}
}
printf("这一天是这年的第 %d 天\n",i);
//整数从小到大输出
int x,y,z;printf("输入三个数字(空格隔开):\n");
scanf("%d %d %d",&x,&y,&z);
if (x<y&&x<z)
{
printf("%d\n",x);
if (y<z)
{
printf("%d\n",y);
printf("%d\n",z);
}
else
{
printf("%d\n",z);
printf("%d\n",y);
}
}
else if (y<x&&y<z)
{
printf("%d\n",y);
if(x<z)
{
printf("%d\n",x);
printf("%d\n",z);
}
else
{
printf("%d\n",z);
printf("%d\n",x);
}
}
else if (z<x&&z<y)
{
printf("%d\n",z);
if(x<y)
{
printf("%d\n",x);
printf("%d\n",y);
}
else
{
printf("%d\n",y);
printf("%d\n",x);
}
}
//1到100包含6的数
int a = 0;
printf("以下是1到100含6的数:\n");
for(a = 0;a <= 100;a++)
{
if(a<10&&a%6==0)
{
printf("%d ",a);
}
else if (a>10&&a%10==6)
{
printf("%d ",a);
}
}
return 0;
}
相关文章推荐
- c++11中的委派构造函数
- C语言解释器Java版-1-内存分配
- c++11中的右值引用以及移动构造
- 【C语言】递归实现栈的逆序及排序
- for循环 数组下标越界导致死循环
- c++11中的using关键字
- 编译原理(七) 算符优先分析法(构造算符优先关系表算法及C++实现)
- c++11中decltype的妙用
- bitset应用---产生1万个不重复的随机数
- c++11中的智能指针
- c++模板实现多参数任意传 - 类实现
- effective c++ 笔记之static_cast
- vs2008 dlib编译问题USER_ERROR__missing_dlib_all_source_cpp_file__OR__inconsistent_use_of_DEBUG_or_ENABLE
- 【C++】满二叉树与完全二叉树的区别及判断
- C++引用方式实现两个值的互换
- C++运算符重载
- C++抛出异常与传递参数的区别
- C++抛出异常与传递参数的区别
- C++【线程同步】-临界区同步
- c/c++进制转换