Skip to content

程序设计和C语言(1)

1543字约5分钟

2024-07-07

1.最简单的C语言程序

#include <stdio.h>
int main()
{
	printf("C programme\n");
	return 0;
}

2.基本格式(1)

#include <stdio.h>
int f(int a)                 //函数原型/首部  返回值类型·函数名·参数及参数类型   该处参数被称为形式参数
{			     //2.函数体
	return a*a;	     
}
void g(int a,int b)          //void 空类型
{
	printf("%d\n",a+b);
	return ;             //如果函数没有返回值,可以省略return
}

int main(void)
{
	printf("%d\n",f(3));  //函数调用中的参数,称为这个函数的实际参数,简称实参
	g(3,4);
	return 0;
}

3.基本格式(2)

#include <stdio.h>
//程序编译报错,各个函数之间应该是平行的,一个函数定义不能放在另一个函数的函数体
void g(void)
{
	void h(int a)
{
	printf("%d\n",a);
}
	printf("2222\n");
}

void g(void);                //函数首部·分号 即函数声明  可以扩展函数名作用域到此
void h(int);                 //函数声明的形式变量可以省略


int main(void)               //main函数位置任意,但c99建议放在开头
{
	f9();                    //不会执行
	h(12);                     
	g();
	return 0;
}
void g(void)
{
	printf("1111\n");
}
void h(int a)
{
	printf("%d\n",a);
	g();                     //h函数的定义必须在g函数的定义域内,因为h函数有g函数的调用
}

4.求两个整数的和

#include <stdio.h>
int main()
{
	int a,b,sum;
	a=123;
	b=3;
	sum=a+b;
	printf("sum is %d\n",sum);
	return 0;
}

5.1求两个整数最大值

#include <stdio.h>
int main()
{
	int max(int x,int y);          //对被调用函数max的声明
	int a,b,c;
	printf("请输入两个整数\n");
	scanf("%d,%d",&a,&b);          //输入a,b
	c=max(a,b);                    //调用函数max,将值赋给c
	printf("max=%d\n",c);          //10进制输出c
	return 0;
}


int max(int x,int y)
{
	int z;                         //max函数声明,定义整型变量z
	if(x>y)z=x;                    //如果x>y,将x值赋给z
	else z=y;                      //否则将y的值赋给z
	return(z);                     //返回到调用max函数位置
}

5.2求两个数最大值

#include <stdio.h>                    //printf和scanf函数声明在stdio.h里
int main(void)
{
	double a,b;                       //double浮点型数据类型
	printf("请输入两个数\n");
	scanf("%lf%lf,&a,&b");            //&取地址
	printf("a is %lf,b is %lf",a,b);  //%lf是在对一个浮点型数据进行格式输入输出所用到的格式说明符

	// 方法1 表达式是数字和运算符的组合
	if(a >= b)
		printf("a是最大值,其值为:%lf\n",a);
	else
		printf("b是最大值,其值为:%lf\n",b);
	if(a < b)                         //方法2
		a = b;
	printf("最大值为:%lf\n",a);
	return 0;
}

6.scanf函数与printf函数

#include <stdio.h>
int main(void)
{
	printf("%d\n",printf("haha\n"));   //printf函数的返回值为整型,会把所输出的字符个数返回


/*输出
	haha
	5
*/
	int a,b;
	printf("%d\n",scanf("%d%d",&a,&b)); //scanf函数的会返回其按照正确格式输入的变量的个数
	return 0;
}

7.给定分数判断成绩是否合格

#include <stdio.h>
int main(void)
{
	double a;
	printf("请输入你的成绩:");    //增强程序界面友好性
	scanf("%lf",&a);

//方法1
	if(a<0 || a>=100)
		printf("成绩不可能\n");
	if(a>=0 && a<60)
		printf("成绩不及格\n");
	if(a>=60 && a<=100)
		printf("成绩合格\n");

//方法2
	if(a<0 || a>=100)
		printf("成绩不可能\n");
	else
	{
		if(a<60)
		printgf("成绩不及格\n");
		else
			printf("成绩及格\n");
	}
	return 0;

//方法3
	if(a<0 || a>100)
		printf("成绩不可能\n");
	else if(a<60)
		printf("成绩不及格\n");
	else
		printf("成绩及格\n");
	return 0;
}
//一个if语句中有且只有一个if,else if可以有多个,else语句至多只能有一个

8.if语句

#include <stdio.h>
int main()
{
	printf("%d,%d\n",3>2,3<2);     //输出1,0
	if(3)                          //表达式值为0,为假,表达式值为非0值,为真
	{                              //if语句中,控制语句如果为多句,需要加上一个花括号
		printf("hero\n");
	}
	if(0)
 		printf("英雄\n");
	else                           //多个if语句同时使用时,else属于紧挨着它上面的if语句
	{
		printf("拉拉\n");
	}
	return 0;
}

9.scanf函数注意事项

/*
(1)使用scanf函数输入数据,按回车可以刷新键盘缓冲区的内容,键盘缓冲区会有一个换行字符
(2)scanf函数遇到错误会停止
(3) scanf函数的格式字符串中的字符分类:
1格式声明(格式说明符)
2空白字符 换行、空格、tab键(\n、""、\t),scanf函数会忽略1个或者多个空白符
3非空白字符---scanf函数剔除掉与这个非空白字符一样的字符
*/
#include <stdio.h>
int main()
{
	/*学习scanf函数注意事项(1)和(2)*/
	char a='A';
	printf("%c\n",a);

	int b;
	scanf("%d",&b);
	scanf("%c",&a);
	if(a=='\n')                             //==等于号 如果两边的表达式的值为真则整个表达式为真,否则为假
		printf("a的值是一个换行符\n");       //如果正确输入b变量的值按下回车,则该句会被输出
	printf("%c\n",a);                       //如果b变量输入格式错误,程序会将值赋给a
	
	/*学习scanf函数注意事项(3)-2*/
	int c;
	scanf("%d\n",&c);                       //再次输入c变量的值后只能输入一个错误值结束
	printf("%d\n",c);
	
	/*学习scanf函数注意事项(3)-3*/
	int d;
	scanf("hero is %d",&d);                 //若d的值为12,应当输入hero is 12
	
	/*学习scanf函数注意事项(4)*/
	int e,f;
	scanf("%d%d",&e,&f);
	printf("a=%d,b=%d",e,f);                //连续整数或浮点型数据,可以用空白符间隔
	
	char ch1,ch2;
	scanf("%c%c",&ch1,&ch2);
	printf("ch1 = %c,ch2 = %c\n",ch1,ch2);   //char函数会记录空白字符,输入1个数据后不需要加空白字符
	return 0;
}