C语言培训_003

字符串

关键字和一些字符串函数

字符串以 ‘\0’ 结尾。

#include"windows.h"
#include"stdio.h"
 
int main()
{	
	char name[40];//替换为 char *name,有小小的区别。替换之后,内容不可改变。内存分配方式有区别。以后培训会讲到。
	printf("_______________ is my name\r");// "\r" 代表光标回到行首
	scanf("%s",name); // "%S"是字符串的控制符,name是 name[0]的首地址。
	printf("my name is %s",name);
	system("pause");
	return 0;
} 

字符串常见函数(strlen(),sizeof())

#include"windows.h"
#include"stdio.h"//strlen() 的头文件 


int main()
{	
	char a[40]="xyz";
	char b[40]="游戏开发";
	printf("%d\t%d\n",strlen(a),strlen(b));//思考,如何判断汉字相等,换成sizeof(a)和sizeof(b)会怎样
	system("pause");
	return 0;
}


宏定义

稍作了解即可。

#include"windows.h"
#include"stdio.h"

#define myname "wanghuizhang"
#define PI 3.1415926
#define getmax(a,b) (a)>(b)?(a):(b);//分号写不写看情况 
#define plus(a,b) a+b
#define CH char
#define CHA (char *) //有优点。

#define PRINT(a,b){		\
	printf("%d\n",a);	\
	printf("%d\n",b);	\
}
int main()
{	
	int a=getmax(3,4)//末尾无需分号,因为宏定义中已经生硬的替换过了 
	printf("%d",a);
	
	printf("my name is %s",myname);
	
	system("pause");
	return 0;
} 

#undef PI


limits.h宏定义表格

稍作了解即可。

CHAR_BITchar位数
CHAR_MAXchar最大
CHAR_MINchar最小
SCHAR_MAX有符号char最大
SCHAR_MIN有符号char最小
UCHAR_MAX无符号char最大
SHRT_MAXshort最大
SHRT_MINshort最小
USHRT_MAX无符号short最大
INT_MAXint型最大
INT_MINint型最小
UINT_MAX无符号int最大
LONG_MAXlong int 最大
LONG_MINlong int 最小
ULONG_MAX无符号long int 最大
LLONG_MAXlong long int 最大
LLONG_MINlong long int 最小
ULLONG_MAX无符号long long int最大
FLT_MANT_DIGfloat型尾数位数
FLT_DIGfloat型最少有效数字位数
FLT_MIN_10_EXP带有全部有效数字float型的负指数的最小
FLT_MAX_10_EXPfloat型的正指数的最大
FLT_MIN保留全部精度的float型正数的最小
FLT_MAXfloat型正数的最大
FLT_EPSILONfloat可以表示的,与1.00的最小差


printf 和 scanf 的 进一步研究和运用

常见的格式控制符

%s,字符串。

%c,单个字符。

%d,整数。%lld,长长整型。等等。(%llu无符号长长整型)

%e,%g,%f,打印浮点数。还有 %lf 等等。(%e为科学计数法打印,%f小数法打印,%g自动选择是否用科学计数法,e,f,g可以大写)

%%,打印一个百分号。

%o,八进制打印。%x十六进制打印。%p打印指针。

+,正数显示+号。(如%+10.3f)(如果+写成空格,则正好显示为空格)

-,左对齐。(如%-10.3f)

0,用0填充宽度。(如%010d,显示的是宽度为10的整数,左端无数的地方用零补齐)

#,显示进制的前置符号。(%#o,显示0开头的8进制数。%#0x,显示0x开头的16进制数)

scanf()中还有 例如 %*d的。(scanf("%d,%*d,%d",&a,&b,&c),意思是忽略 &b的输入。)

代码示例:

#include"windows.h"
#include"stdio.h"

int main()
{	
	char a[40]="xyz";
	char b='v';
	float c=3.33333;
	double d=6666.66666666666666666666;
	long int e=99999999;
	printf("%s\n",a);
	printf("%c\n",b);
	printf("%f\n",c);
	printf("%lf\n",d);
	printf("%ld\n",e);
	printf("%%\n");
	system("pause");
	return 0;
}

printf 和 scanf 的返回值 及对返回值的简单用法:(看代码后的注释)

#include"windows.h"
#include"stdio.h"

int main()
{	
	int a=printf("123\n");//a 的值为 4。因为有四个字符。 
	printf("%d",a);
	system("pause");
	return 0;
}
#include"windows.h"
#include"stdio.h"

int main()
{	
	int x,y,z; 
	int a=scanf("%d%d%d",&x,&y,&z);//a 的值为 3。因为输入3个数。
	char m[20];
	char n[20];
	int b=scanf("%s%s",m,n);//b 的值为 2,因为输入2个。 
	printf("a=%d,b=%d",a,b);
	system("pause");
	return 0;
}


printf 和 scanf 的其他用法以后再研究。现阶段无法表述。

运算符和表达式

运算符有    +   -   *   /   =   ++   --   ,    %      <<     >>    ?:    ==    >    <    等等  (用法太简单大家培训完也不会忘记,会长不写了)

代码示例:

#include"windows.h"
#include"stdio.h"
int main()
{	
	int sum=0;
	int i=0;
	while(i!=3)
	{
		i++;//i=i+1
		sum+=3;//sum=sum+3;
	}
	//循环结束后,i 等于 3,sum 等于 9 循环3次。
	
	int a=3,b=4;
	int c=a>b?a:b;//(式子含义为,a大于b吗?大于就等于a,否则就等于b) 
	
	int k1=0,k2=0;
	printf("k1=%d,k2=%d\n",k1++,++k2);//(++在前则先加后用,++在后则先用后加)
	system("pause");
	return 0;
}

#include"windows.h"
#include"stdio.h"
int main()
{	
	int i=0;
	int sum=0;
	while(i++!=100)
	{
		sum=sum+i;//sum+=i;
	}
	//循环结束后,i 等于 100,sum 等于 5050 循环101次。
	printf("%d",sum);
	
	system("pause");
	return 0;
}


优先级的了解和类型转化

类型转化的简单例子:

#include"windows.h"
#include"stdio.h"

int main()
{	
	float a=3.9998877;
	int b=(int)a; //把 a 转化成整形 再赋值给 b 。
	 
	printf("%d",b);
	system("pause");
	return 0;
}
  了解一下强制类型转化。和优先级顺序。(最简单的就是先乘除后加减了)


math.h头文件的介绍

#include"windows.h"
#include"stdio.h"
#include"math.h"//数学函数头文件 

int main()
{	
	int a1=-5;
	int a2=abs(a1);// a2 等于 a1 的绝对值 abs(),对整数取绝对值。 
	double b=fabs(-1.533);//b 等于 -1.533 的绝对值 ,fabs(),对浮点数取绝对值 
	double c=sin(3.14159);//这就不用解释了 
	double d=cos(3.14159);//这也不用解释了 
	double e1=pow(2,0.5);//2 的 0.5 次方。
	double e2=pow(10,8);//10 的 8 次方
	double f=sqrt(25);// f 等于根号下25
	int g=ceil(3.15);//ceil()向上取整,
	system("pause");//函数还有很多,没必要记住多少。
	return 0;
}


  稍作了解,知道有这些函数就行,用到的时候就翻一翻C语言手册。这些函数都是别人写好的,其实我们自己也可以写。以后的培训中教大家写,自己能写出出色的头文件说明学的还可以了。数学要好好学啊,会长我写代码的时候因为数学不好,经常写着写着就去翻数学书了。数学不好也没关系,用到的时候从新学吧。

while(),和do{}while();语句入门(C语言_005继续深入研究循环语句)

whil(),先判断再执行。do{}while();先执行一次,再循环。

#include"windows.h"
#include"stdio.h"

int main()
{	
	int i=0;
	int sum=0;
	do
	{
		i++;
		sum+=i;
	}
	while(i<100);
	
	printf("%d\n",sum);
	system("pause");
	return 0;
}


知识扩展:

1.math.h 的函数:

https://msdn.microsoft.com/zh-cn/library/system.math.aspx

2.运算符的优先级:

http://baike.baidu.com/link?url=2rtfN1gN0FLVRYif3ttZ-xJSxvoMe9q23EFaRYECkRy9Keqw-VIFZCeetPT_I8k7orlifoTd70bjOkioSbsR8_





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值