c语言干货(一)
1,c语言的主要特点
a:语言简洁,紧凑,使用方便,灵活。
b:运算符丰富。
C. 数据结构丰富。
D. 具有结构化的控制语句。
E. 语法限制不太严格。
F. c语言允许直接访问物理地址。
G. 用c语言编写的程序可移植性好。
H. 生成目标代码的质量高。
2,c语言程序结构
a:一个程序由一个或多个源程序文件组成。
①预处理指令。
②全局声明。
③函数定义。
b:函数是c语言的主要组成部分。
c:一个函数包括两个部分。
①函数首部
②函数体(声明部分,执行部分(执行部分的程序总是从main函数开始执行。程序中要求计算机完成的操作是由函数中的c语句完成的。每个数据声明和语句的最后必须有一个分号。c语言本身不提供输入输出的语句。c语言程序应当有注释)。
3,算法的特征:①有穷性②确定性③有零个或多个输入④有一个或多个输出⑤有效性。
4,常量
①整型常量
②实型常量
③字符常量
④字符串常量
⑤符号常量
5,变量:必须先定义后使用。
6,标识符:在计算机语言中用来对变量,符号常量名,函数,数组,类型等命名的有效字符序就是标识符。由字母,数字,下划线三种字符组成。且第一个字母必须是字母或者下划线
例如下面合法的表示符号
Sum ,average,_tatal,Class,day,Student_name
例如下面是不合法的标识符号
M. G.G, *honjsh ,1254
7,最基本的数据类型①整型(int)②浮点型(单精度float,双精度 double)③字符型(char)
8,c语言的最基本的运算符
算术运算符(+ - * / % ++ --)
关系运算符号(> < == >= <= !=)
关系运算符的优先级(< <= > >=)优先级相同高(== !=)优先级相同低
逻辑运算符(!逻辑非 &&逻辑与 ||逻辑或)
逻辑运算符的优先级(逻辑非>逻辑与>逻辑或)
赋值运算符(=)
条件运算符(?;)
指针运算符(* &)
下表运算符([])
11,c语言的控制语句
①if()....else....(条件语句)
②for()...(循环语句)
③while()......(循环语句)(先判断后执行)
④do....while()...(循环语句)(先之后后判断)
⑤continue(结束本次循环语句)
⑥break(终止执行switch循环语句)
⑦switch(多分枝选择语句)
⑧return (从函数返回语句)
12,if语句的一般格式
①if(表达式) 语句1 (没有else部分)
②if(表达式)
语句1
else
语句2
③if(表达式1) (在else部分镶嵌了多层if语句)
else if(表达式) 语句1
else if(表达式) 语句2
else if(表达式) 语句3
else if(表达式n) 语句n
else 语句n+1
例题
代码部分:
#include
int main()
{
printf("这是一个简单的c语言程序\n");
printf("hello world\n") ;
printf("青春同路人");
return 0;
}
运行结果;
例题
当a=6,b=8请输出两个相加的结果
代码部分:
#include
int main()
{
int a,b,sum;
a=6;
b=8;
sum=a+b;
printf("sum=%d\n",sum);
printf("青春同路人");
return 0;
}
运行结果;
程序=算法+数据结构
例题
求1×2×3×4×5
代码部分
#include
int main()
{
int a=2,multiply=1;
for(a=1;a<=5;a++){
multiply=multiply*a;
}
printf(”5!=%d\n",multiply);
printf("青春同路人");
return 0;
}
运行结果:
例题
请输入一个年份判断是否是闰年,如果是则输出yes不是则输出NO。
代码部分
#include
int main()
{
int year;
printf("请输入一个年份");
scanf("%d",&year);//引入一个输入语句scanf 功能:将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中
if(year%4==0&&year%100!=0||year%400==0)//引入一个条件语句if
{
printf("yes\n");
}
else
{
printf("NO\n");
}
printf("青春同路人");
return 0;
}
运行结果:
例题
求1-1/2+1/3-1/4+........-1/100
代码部分
#include
int main()
{double i=-1,j,sum,x;
for(j=1;j<=100;j++)//引入for循环,for循环里面的书写规则 for(初始化表达式; 循环条件; 操作表达式){ 执行语句 … }
{
i=(-1)*i;
x=i/j;
sum=sum+x;
}
printf("sum=%lf\n",sum);
printf("青春同路人\n");
return 0;
}
运行结果;
9,自增(++)自减(--)的运算符
++i 先自增后使用 --i 先自减后使用
i++ 先使用后自增 i-- 先使用后自减法
例题
代码部分:(演示自增,自减同理)
#include
int main()
{
int i=1,j;
j=++i;
printf("j=%d\n",j);
printf("青春同路人\n");
return 0;
}
运行结果:
#include
int main()
{
int i=1,j;
j=i++;
printf("j=%d\n",j);
printf("青春同路人\n");
return 0;
}
运行结果
10,ASCⅡ值表格
例题
给定一个大写字母要求用小写字母输出变显示他的ASCⅡ值
代码部分:
#include
int main()
{
char a,b;
printf("请输入一个大写字母");
scanf("%c",&a);
b=a+32;
printf("%c\n",b);
printf("%d\n",b);
printf("青春同路人\n");
return 0;
}
运行结果:
例题
要求输入一个字符,判断该字符是否是数字,如果是,则输出汉字“正确”;如果同时满足字符为“0”这一条件,则输出其ASCII值;如果不是,则输出“error”。
代码部分
#include
int main()
{
char a;
printf("请输入一个字符");
scanf("%c",&a);
if(a>'0'&&a<='9')
{
printf("正确");
}
else if(a=='0')
{
printf("%d\n",a);
}
else
{
printf("error");
}
printf("青春同路人\n");
return 0;
}
运行结果
例题
输出所有100—999以内的3位水仙花数。
(注:所谓水仙花数是指所有位的数字的立方之和等于该数,例如:153=13+33+53)。
代码部分:
#include
int main()
{
int i,a,b,c,sum;
for(i=100;i<=999;i++)
{
a=i/100;
b=(i-(a*100))/10;
c=(i-(a*100+b*10))%10;
if(i==a*a*a+b*b*b+c*c*c)
{
printf("%d\n",i);
}
}
printf("青春同路人\n");
return 0;
}
运行结果:
例题
编写程序完成以下要求。
(1)输入一个三位数的整数,并反向输出。
(2)输入一个整数,计算它的位数并反向输出。
代码部分
#include
int main()
{
int i,a,b,c;
printf("请输入一个三位数");
scanf("%d",&i);
a=i/100;
b=(i%100)/10;
c=((i%100)%10);
i=c*100+b*10+a;
printf("%d\n",i);
printf ("青春同路人\n");
return 0;
}
运行结果
代码部分(while循环)
#include
int main()
{
int a,i;
int n=0;
printf("输入一个数:");
scanf("%d",&a);
while(a!=0)
{
i=a%10;
a=a/10;
n++;
printf("%d",i);
}
printf(" 位数=%d\n",n);
printf("青春同路人");
return 0;
}
运行结果:
do while循环、
代码部分
#include
int main()
{
int a,i;
int n=0;
printf("输入一个数:");
scanf("%d",&a);
do
{
i=a%10;
a=a/10;
n++;
printf("%d",i);
}
while(a!=0);
printf(" 位数=%d\n",n);
printf("青春同路人");
return 0;
}
运行结果:
扫码关注我们
投稿请联系qq : 2296696493