2021年5月17日
1
#include<stdio.h>//stdio.h通知编译器printf函数的功能是什么,后面才可以使用print函数
int main()//任何程序都是从main函数开始执行,从main函数退出
{ //花括号包裹的程序语句称为复合语句
printf("hahah\n"); //printf的功能室输出双撇号的内容,双撇号中的内容称为字符串
return 0; //分号结尾的是程序结束
}
2
#include<stdio.h>
int main()
{
int a,b,sum;
printf("%d,%d,%d\n",a,b,sum);//没有初始化,输出结果不确定,是3个垃圾值。
a=2; //第一次赋值,也叫做初始化
b=3;
sum=a+b;
printf("sum is %d\n",sum);//输出sum
return 0;
//选中tab向后,shift+tab向前移动
}
3
#include<stdio.h>
int f(int a) //函数返回值+函数名+参数类型和参数 ;参数叫形参。 函数的作用域
{
return a*a; //函数体
}
void g(int a,int b)
{
printf("%d\n",a+b);
}
int main()
{
printf("%d\n",f(3)); //实际调用的实参
g(3,4);
return 0;
}
4
#include<stdio.h>
void f(void);
void g(void);//函数声明,函数声明的形参变量名是可以省略的
void h()
{
}
int main()//main()函数之前的代码是为main函数执行提供信息,不一定执行
{
f();
g();
return 0;
}
//一个函数的定义不能用在一个函数体里
void g(void)
{
printf("90\n");
}
void f(void)
{
printf("80\n");//注意函数定义的先后顺序
g();
}
5求两个数的最大值
#include<stdio.h> //print和scanf的定义在库里
int main()
{
double a,b; //浮点型
printf("请输入两个数:");
scanf("%lf%lf",&a,&b); //赋值,取地址符号 ;%lf%lf中间没有逗号
printf("%lf, %lf\n",a,b);
if (a>=b)
a=a;
else
a=b;
printf("最大值是:%lf\n",a);//结果6位小数
return 0;
}
6
#include<stdio.h> //print和scanf的定义在库里
int main()
{
printf("%d\n",printf("haha\n"));//输出字符个数
int a,b;
printf("%d\n",scanf("%d%d",&a,&b));//输入几个字符就输出数字几
return 0;
}
7
#include<stdio.h>
int main()
{
double a;
printf("请输入你的成绩:");
scanf("%lf",&a);
/*
if(a>0 && a<60)
printf("不及格\n");
else if(a<=0 || a>=100)
printf("不合法成绩\n\n");
else
printf("及格\n");
*/
if(a<0 || a>100) //if只有一个,if else可以有多个,else只能有一个。
printf("不可能\n");
else
{
if(a>=0 && a<60)
printf("不及格\n");
else
printf("及格\n");
}
return 0;
}
8
#include<stdio.h>
int main()
{
printf("%d,%d\n",3>2,3<2);
if(3>2)
{
printf("hahah\n");
printf("kaka\n");
}
if(3<2)
{
printf("1\n");
}
else
{
printf("2\n");//else 属于紧挨着它上面那个if语句的内容
}
return 0;
}
#include<stdio.h>
int main()
{ /* //scanf函数输入数据为什么按回车--刷新键盘缓冲区的内容送到程序区里面的变量中。
char a='A'; //scanf遇到错误输入会停止
printf("输出:%c\n",a);
int b;
scanf("%d",&b);
scanf("%c",&a);
printf("输出:%d\n",b);
if(a=='\n')
printf("输出:a是一个换行符\n");
else if(a==' ')
printf("输出:a是一个空格\n");
else
printf("输出:%c\n",a);//b变量输入错误字符#,a就变成了错误的字符#
*/
/*int s;
scanf("%d\n",&s);
printf("%d\n",s);//格式声明;空白字符;scanf在读操作中忽略掉1个或者多个空白字符(tab、换行、空格三种)*/
/* int a ;
scanf("abc%dert",&a);//合法输入:abc23ert
printf("%d\n",a);*/
/*int a,b;
scanf("%d%d",&a,&b);
printf("%d,%d",a ,b);//输入时,中间可以有空格进行分隔,对于连续的整型、浮点型,用于空白符起间隔的作用
*/
char c1,c2;
scanf("%c%c",&c1,&c2);
printf("c1=%c,c2=%c\n",c1,c2);//连续字符自己有分隔能力
return 0;
}
9
#include<stdio.h>
int main()
{
//运算符优先级;二目运算符,单目运算符;&取地址符号,单目运算符。
//单目运算符和赋值运算符是自右往左。
printf("%d,%d\n",1+2*3,(1+2)*3);
int a=1,b=2,c=3;
a=b=c;//从右往左
printf("%d\n",a);
printf("%d,%d,%d\n",!1,!9,!0);
printf("%d\n",4*-3);//负号优先级高
return 0;
}
#include<stdio.h>
//乘号、除号、取余运算符的优先级为3,加号、减号的优先级为4,赋值运算符的优先级为14
int main()
{
printf("%d,%lf\n",5/2,5.0/2);
int a;
printf("%d\n",a=3.98);//输出3
printf("%d,%d\n",5%2,4%2);//输出1 0
printf("%d,%d,%d\n",-13%3,13%-3,-13%23);//-1 1 -13
// printf("%d\n",5.0%2);//取余运算必须为整数
int b=1,c=7;
printf("%d\n",b+=2);//3
printf("%d\n",c/=2);//3
a=1,b=2,c=3;
printf("%d\n",(a=b)=c);//3。赋值表达式的值是其左操作数的最终值,这个值为一个左值,所以这里会输出a的值为3.
return 0;
}
#include<stdio.h>
//逗号15,优先级最低;逻辑与11,逻辑或12,等于7,关系(除了等于不等于)6
//(&& || 逗号 条件)四种,必须从左向右运算
int main()
{
printf("%d\n",(1!=1,2==2,3));//逗号表达式是最右边的值3
int a=0;
a+=1,(a*=2);//顺序可能不同
printf("%d\n",a);//2
a=0;
// 0&&a=3;
0&&(a=3);
printf("%d\n",a);
a=0;
1||(a=3);//右面的表达式不执行
printf("%d\n",a);
a=0;
printf("%d\n",((a+=1)+(a*=2)));//4
return 0;
}
#include<stdio.h>
void max(int a,int b)
{
printf("%d\n",a>b?a:b);//条件运算符从左往右;表达式不能有关键字
}
int main()
{
//条件运算符,三目运算符
max(3,5);
int a=0;
0?(a+=2):2;//前面的未执行
printf("%d\n",a);
return 0;
}
10
#include<stdio.h>
#define PI 3.141592//宏定义
int main()
{
printf("%lf\n",PI);
int a;
int b=3;
printf ("%d,%d",a,b);
}
11
12
#include<stdio.h>
//算法有穷性,确定性,有零个或者多个输入,有一个或者多个输出,有效性
int main()
{/*
int i=1;
while(i<=100)
{
printf("%d\n",i);
i=i+1;
}
return 0;
*/
for(int i=1;i<=5;i++){
printf("%d\n",i);
}
int i=0;
printf("%d\n",i++);
printf("%d\n",i);
i=0;
printf("%d\n",++i);
printf("%d\n",i);
i=0;
printf("%d,%d\n",++i,i);//从右往左
return 0;
}
13
#include<stdio.h>
int main()
{
int i;
int m=1;
for(i=1;i<=5;i++){
m=m*i;
}
printf("%d\n",m);
}
14素数(质数)
#include<stdio.h>
#include<math.h>
//质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。最小的素数是2
int main()
{
int a;
printf ("输入一个整数\n");
scanf("%d",&a);
if(a<=1)
printf("不是素数\n");
else if(a==2)
printf("是素数\n");
else
{
double b=sqrt(a);//返回值类型是double型数据
for(int i=2;i<=b;i++)//
{
if(a%i==0)
{
printf("不是素数\n");
return 0;
}
}
printf("是素数\n");
}
return 0;
}
15闰年
#include<stdio.h>
//闰年 4整除不能100整除,或被400整除
int main()
{
int a;
scanf("%d",&a);
if((a%4==0 && a%100!=0) || a%400==0)
printf("是闰年\n");
else
printf("不是闰年\n");
return 0;
}
16回文数
#include<stdio.h>
//回文数
int main()
{
int a;
printf("请输入一个数\n");
scanf("%d",&a);
int s=0;
for(int i=1;i<a;i*=10)
{
s=s*10+a%(10*i)/i;
}
if(s==a)
printf("是回文数\n");
else
printf("不是回文数\n");
return 0;
}
17
#include<stdio.h>
int main(void)
{
printf("%d\n",34);
printf("%lf,%lf\n",3.24,3e-2);//0.030000
printf("%s","%dabc\n");
printf("%%dabc\n");//两个%才能输出一个%
printf("%c,%d\n",'a','a');
printf("%c,%c,%c,%c\n",'\\','\'','\?','\"');
printf("\a");//声音信号
printf("1111\babc\n");//b退格
printf("2222\r3333\n");//r回车,回到本行开头
printf("4444\t5555\n");
printf("\101\102\103\n");//八进制
printf("\x41\n");//十六进制 65A
return 0;
}
#include<stdio.h>
#define PI 3.14
#define ID 101
#define CH 'A'
#define S "haha"
int main()
{
printf("%lf,%d,%c,%s\n",PI,ID,CH,S);
const int a=45;//初始化之后的值不可以被修改;
return 0;
}
18