C语言 数据类型、运算符

http://see.xidian.edu.cn/cpp/u/c3/

C语言 数据类型、运算符
数据类型
	基本类型
		整型
		字符型
		实型(浮点型)
			单精度
			双精度
		枚举类型
	构造类型
		数组类型
		结构体类型
		共用体类型
	指针类型			不同于int,表示位置
	空类型				void
 
定义常量
#define PRICE 30
 
C语言整型数据(这个看不懂)
整型常数的后缀:在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。
十进制无符号整常数的范围为065535,有符号数为-32768+32767。
八进制无符号数的表示范围为00177777。十六进制无符号数的表示范围为0X00XFFFF0x00xFFFF。
如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。
例如:
十进制长整常数:158L (十进制为158)358000L (十进制为358000);
八进制长整常数:012L (十进制为10)、077L (十进制为63)、0200000L (十进制为65536);
十六进制长整常数:0X15L (十进制为21)、0XA5L (十进制为165)、0X10000L (十进制为65536)。
长整数158L和基本整常数158 在数值上并无区别。但对158L,因为是长整型量,C编译系统将为它分配4个字节存储空间。
而对158,因为是基本整型,只分配2 个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。
无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。例如:358u,0x38Au,235Lu均为无符号数。
前缀,后缀可同时使用以表示各种类型的数。如0XA5Lu表示十六进制无符号长整数A5,其十进制为165。
 
实型数据
标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为浮点数。如356f356.是等价的。【例3.5】说明了这种情况。
main(){
  printf("%f\n ",356.);
  printf("%f\n ",356);
  printf("%f\n ",356f);
}
 
字符常量  char a,b; //只能单引号
转义字符  \n        //回车换行
 
//整型量和字符常量可以相互输出
main()
{
	char a,b;
	a	=	120;
	b	=	121;
	printf("%c,%c\n",a,b);	
	printf("%d,%d\n",a,b);
}
 
/*
 * 变量数据类型的自动转换
 * char,short->int->unsigned->long->double
 * 在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。
 */
main()
{
  float PI	=	3.14159;
  int 	s,r	=	5;
  s	=	r*r*PI;
  printf("s=%d\n",s);
}
 
/*
 * 变量数据类型的强制转换
 */
main()
{
  float f	=	5.75;
  printf("(int)f=%d,f=%f\n",(int)f,f);
}
 
/*
 * 运算符
 * 位操作运算符:参与运算的量,按二进制位进行运算。
   包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
 * 赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)
   和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
 * 逗号运算符:用于把若干表达式组合成一个表达式(,)。
 * 指针运算符:用于取内容(*)和取地址(&)二种运算。
 */
++i    i自增1后再参与其它运算。
--i    i自减1后再参与其它运算。
i++    i参与运算后,i的值再自增1。
i--    i参与运算后,i的值再自减1
 
/*
 * 自增实例
 * p=15,q=18 	
 */
main()
{
  int i=5,j=5,p,q;
  p=(i++)+(i++)+(i++);
  q=(++j)+(++j)+(++j);
  printf("%d,%d,%d,%d",p,q,i,j);
}
 
// 整型量b赋予c2 后取其低八位成为字符型(b的低八位为01000010,即十进制66,按ASCII码对应于字符B)。
main()
{
  int a,b=322;
  float x,y=8.88;
  char c1='k',c2;
  a=y;
  x=b;
  a=c1;
  c2=b;
  printf("%d,%f,%d,%c",a,x,a,c2);
}
 
/*
 * y等于整个逗号表达式的值,也就是表达式2的值,x是第一个表达式的值。 	
 */
main()
{
  int a=2,b=4,c=6,x,y;
  y=(x=a+b),(b+c);
  printf("y=%d,x=%d",y,x);
}

C语言算法

参考 http://see.xidian.edu.cn/cpp/u/c2/

C语言算法
对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。
对操作的描述。即操作步骤,也就是算法(algorithm)。
 
计算机算法可分为两大类:
数值运算算法:求解数值;
非数值运算算法:事务管理领域。
 
//【例2.20】求1×2×3×4×5用C语言表示。
main()
{
	int i,t;
	t=1;
	i=2;
	while(i<=5)
	{
		t=t*i;
		i=i+1;
	}
	printf("%d",t);
}
 
//【例2.21】求级数的值。
main()
{
	int sigh=1;
	float deno=2.0,sum=1.0,term;
	while(deno<=100)
	{ 
		sigh	= 	-sigh;
		term	= 	sigh/deno;
		sum		=	sum+term;
		deno	=	deno+1;
	}
	printf("%f",sum);
}

C语言概述

第一个C程序
main()
{
  printf("世界,您好!\n");
}
#include<math.h>
#include<stdio.h>  //可省略
main()
{
  double x,s;
  printf("input number:\n");
  scanf("%lf",&x);
  s=sin(x);
  printf("sine of %lf is %lf\n",x,s);
 }
/*
include称为文件包含命令
扩展名为.h的文件称为头文件
定义两个实数变量,以被后面程序使用
显示提示信息
从键盘获得一个实数x
求x的正弦,并把它赋给变量s
显示程序运算结果
main函数结束
*/
 
printfscanf函数
printf("sine of %lf is %lf\n",x,s);
//其中%lf为格式字符,表示按双精度浮点数处理
 
int max(int a,int b);            	/*函数说明*/
main()                      		/*主函数*/
{
    int x,y,z;                  	/*变量说明*/
    int max(int a,int b);           /*函数说明*/
    printf("input two numbers:\n");
    scanf("%d%d",&x,&y);       		/*输入x,y值*/
    z=max(x,y);                		/*调用max函数*/
    printf("maxmum=%d",z);     		/*输出*/
 }
 
int max(int a,int b)            	/*定义max函数*/
{
    if(a>b)return a;else return b;  /*把结果返回主调函数*/
}
 
C语言的结构特点
4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。
 
C语言转义字符 http://see.xidian.edu.cn/cpp/html/11.html
转义字符	 意义	 ASCII码值(十进制)
\a	 响铃(BEL)	 007
\b	 退格(BS)	 008
\f	 换页(FF)	 012
\n	 换行(LF)	 010
\r	 回车(CR)	 013
\t	 水平制表(HT)	 009
\v	 垂直制表(VT)	 011
\\	 反斜杠	 092
 
\'	 单引号字符	 039
\"	 双引号字符	 034
\0	 空字符(NULL)	 000
\ddd	 任意字符	 三位八进制
\xhh	 任意字符	 二位十六进制