C语言基础

常量:是在程序中保持不变的量

变量:编写程序时,常常需要将数据存储在内存中,方便后面使用这个数据或者修改这个数据的值。通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。 

声明和使用变量

  • 声明变量:

Datatype variablename;

  • 定义时初始化变量:

Datatype variablename = value;

  • 定义后初始化变量:

variablename = value; 

计算长方形的面积

//声明变量:数据类型  变量名;

int width;//长方形的宽 

  width=10;//为变量赋值

    //声明并赋值

int length=50;//长方形的长 

int s=width*length;// 面积

printf("长方形的长是%d,宽是%d,面积是:%d\n",length,width,s); //%d:整形占位符

 

变量命名(标识符)

1. 什么是标识符

标识符就是在程序中自定义的一些符号和名称。要跟关键字区分开来:关键字是C语言默认提供的符号,标识符是程序员自定义的

2. 标识符的作用

1) 标识符,从字面上理解就是用来标识某些东西的符号,标识的目的就是为了将这些东西区分开来

2) 其实,标识符的作用就跟人类的名字差不多,为了区分每个人,就在每个人出生的时候起了个名字

3) C语言是由函数构成的,一个C程序中可能会有多个函数,为了区分这些函数,就给每一个函数都起了个名称。函数的名称就是标识符的一种。除了函数,以后还会学到“变量”这个概念,变量的名称也是标识符

 

 

3. 命名

1> 命名规则(一定要遵守)

l 只能由26个英文字母的大小写、10个阿拉伯数字0~9、下划线_组成

l 严格区分大小写,比如testTest2个不同的标识符

l 不能以数字开头

l 不可以使用关键字作为标识符

 

2> 命名规范(最好遵守)

l 尽量起个有意义的名称,比如一个完整的英文单词,别人一看这个名称就能才能这个标识符的作用。如果不懂英文,你也可以用拼音,尽量不要起像abcde、sfsdfsdf等这类看起来没有意义的名称

l 如果标识符中含有多个单词,可以使用驼峰标识(除开第一个单词,后面每个单词的首字母都是大写):firstName、myFirstName,或者使用下划线_来连接:first_name、my_first_name

 

4. 常见的标识符命名错误

合法标识符

非法标识符

注释

fromNo12

from#12

标识符中不能使用#符号

my_Boolean

my-Boolean

标识符中不能使用“-”符号,应使用下划线“_”代替

Obj2

2ndObj

标识符不能使用数字开头

myInt

int

“int”是内建关键字

jack_rose

jack&rose

符号“&”不能出现在标识符中

GUI

G.U.I

标识符内部需要出现“.”分隔符

基本数据类型

数值类型:  整型:(short,int,long), 非整型 (floatdouble)

非数值型: char

//计算圆的面积

   float pi=3.14;//圆周率 

   int r=3;//半径 

   float s=pi*r*r;

   printf("圆的半径%d,圆周率%f,面积是:%f\n",r,pi,s); //%f:单精度浮点float占位符

 

printf()函数和scanf()函数

   int bottom,height;

    printf("请输入三角形的底边长:");

    scanf("%d",&bottom);//将用户输入的值赋值给bottom变量 : &:取地址 

printf("请输入三角形的高:");

    scanf("%d",&height);//将用户输入的值赋值给height变量

double s=bottom*height/2;

printf("三角行的面积为:%7.2lf",s);//%lf:double的占位符  l7.2f:七位有效数字,精确到小数点后2

 

转换字符串 

说 明 

%d 

将参数按整数形式转换输出,对应参数应是int 类型

%ld 

将参数按长整数形式转换输出,对应参数应是long 类型

%c 

输出一个字符,对应参数应该是一个字符

%s 

输出一个字符串,对应参数应该是一个字符串

%f 

将参数按带小数点数形式输出,对应参数应是double 类型,默认情况下精确到 6 位小数 

 

算术运算符:

二元运算: +,-,*,/,%(取模或求余)

一元运算符: ++num,--num,num++,num

int num1 = 10;

int num2= ++num1+num1--;

printf("num2=%d",num2);//22

printf("num1=%d",num1);//10

 

表达式

如何计算

结果 (num1=5)

num2 = ++num1;

num1 = num1 + 1;

num2 = num1; 

num2 = 6;

num1 = 6; 

num2 = num1++;

num2 = num1;

num1 = num1 + 1; 

num2 = 5;

num1 = 6; 

num2 = --num1;

num1 = num1 - 1;

num2 = num1; 

num2 = 4;

num1 = 4; 

num2 = num1--;

num2 = num1;

num1 = num1 - 1; 

num2 = 5;

num1 = 4; 

 

通过中间变量实现变量交换:

   int num1,num2;

   int temp;//中间变量 

   printf("请输入的num1的值");

   scanf("%d",&num1);

   printf("请输入的num2的值");

   scanf("%d",&num2);

   printf("交换前num1=%d,num2=%d\n",num1,num2);

   temp=num1;

   num1=num2;

   num2=temp;//通过中间变量实现交换

   printf("交换后num1=%d,num2=%d\n",num1,num2);

 

类型转换

  • 自动类型转换 
    • 原则:把表示范围小的类型的值转换到表示范围大的类型的值 
    • short à int  à long  à  float  à double 
  • 强制类型转换 
    • 语法:(类型名变量或数值 
    • 例如:
      int a = 5, b = 3;
      float qu = float(a) / b; 

 

getchar()putchar()

char a,b;

   printf("请输入第一个字符:");

   a=getchar();//获取输入字符

   fflush(stdin);

   printf("请输入第二个字符:");

   b=getchar();//获取输入字符

   fflush(stdin);

   putchar(a);//输出字符 

   putchar(b);  

   putchar("\n");

  

 

作业1:

指出标识符的正确性

test1   :合格 由字母和数字组合 且不以数字开头

 Mike2jack   :合格  由字母和数字组合 且不以数字开头

 My_tExt  _test:不合格 区分大小写 

test!32  :不合格 含特殊符号

 haha(da)tt   :不合格 含特殊符号()

哈哈_text  :不合格 含中文开头 特殊符号

123haha :不合格 以数字开头

78text   :不合格 以数字开头

 a     :合格

 _123    _:不合格 含空格

作业2:

根据用户输入的底和高计算梯形的面积(精确到小数点后两位)

  • S=(a+c)*h\2

void main(){

float bottem,map,height;

printf("请输入梯形的上底:");//将用户输入的上底值,给bottem

scanf("%f",&bottem); //&取缔值 scanf 用户输入 

printf("请输入梯形的下底:");

scanf("%f",&map);

printf("请输入梯形的高:");

scanf("%f",&height);

 

float s =((bottem+map)*height)/2;

printf("梯形的面积为:%7.2f",s);

}

posted @ 2017-03-16 09:00  代鱼  阅读(315)  评论(0编辑  收藏  举报