C语言(谭浩强版本,主讲人:小甲鱼)P1-P9

C语言

一.C语言概述

1.C语言的特点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.面对过程和面向对象豹程序设计思想

在这里插入图片描述
3.打印Hello World

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

在这里插入图片描述

#include<stdio.h>
int main()//主函数
{
	int x, y, z;//变量说明
	printf("input two number:\n");//输出
	scanf("%d%d", &x, &y);//输入x,y值
	z = max(x, y);//调用max函数
	printf("max=%d", z);//输出
	return 0;
}
int max(int a, int b)//定义max函数
{
	if (a > b)
	{
		return a;//把结果返回主调函数
	}
	else
	{
		return b;//把结果返回主调函数
	}
}

二.数据类型、运算符、表达式

1.数据类型
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
#define NAME "马云"//常量
#define AGE 50//常量
int main()
{
	printf("%s今年%d岁\n", NAME,AGE);//常量


	char name[] = "马化腾";//变量
	int age = 50;//变量
	printf("%s今年也%d岁\n", name, age);//变量

	age = age + AGE;//变量可以改变
	printf("两个人今年的一共%d岁\n",age);//变量
	return 0;
}

在这里插入图片描述
整形数据
在这里插入图片描述
在这里插入图片描述
signed意思为有符号的 ,unsigned意思为无符号的,默认为signed。

#include <stdio.h>
int main()
{
    signed short i;
    unsigned short j;
    i = -1;
    j = -1;
    printf("有符号的:%d\n",i);
    printf("无符号的:%u\n", j);
    return 0;
}
//有符号的:-1
//无符号的:65535

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//64位输出
#include<stdio.h>
int main()
{
	printf("int字节数:%d\n",sizeof(int));
	printf("short字节数:%d\n", sizeof(short));
	printf("long字节数:%d\n", sizeof(long));
	printf("short int字节数:%d\n", sizeof(short int));
	printf("long int字节数:%d\n", sizeof(long int));
	printf("unsigned int字节数:%d\n", sizeof(unsigned int));
	printf("unsigned short字节数:%d\n", sizeof(unsigned short));
	printf("unsigned long字节数:%d\n", sizeof(unsigned long));
	printf("unsigned short int字节数:%d\n", sizeof(unsigned short int));
	printf("unsigned long int字节数:%d\n", sizeof(unsigned long int));
	return 0;
}
//int字节数:4
//short字节数:2
//long字节数:4
//short int字节数:2
//long int字节数:4
//unsigned int字节数:4
//unsigned short字节数:2
//unsigned long字节数:4
//unsigned short int字节数:2
//unsigned long int字节数:4

在这里插入图片描述

#include<stdio.h>
int main()
{
	int a = 10;
	unsigned int b = -10;//无符号时使用%d输出系统会自动转换成有符号
	unsigned int c = -10;//无符号时使用%u输出系统不会自动转换成有符号
	printf("a=%d\nb=%d\nc=%u\n", a, b,c);
	return 0;
}
//a = 10
//b = -10
//c = 4294967286

浮点型数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//64位输出
#include<stdio.h>
int main()
{
	printf("float字节数:%d\n",sizeof(float));
	printf("double字节数:%d\n", sizeof(double));
	printf("long double字节数:%d\n", sizeof(long double));
	return 0;
}
//float字节数:4
//double字节数:8
//long double字节数:8

在这里插入图片描述

#include<stdio.h>
int main()
{
	float a, b;
	a = 123456.789E5;//12345678900
	b = a + 20;
	printf("%f\n",a);//超出有效范围,舍入误差生成随机数
	printf("%f\n",b);
	return 0;
}
//12345678848.000000
//12345678848.000000

字符型数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include <stdio.h>
int main()
{
    char a = 'A';
    char b = 66;
    char c = 97;
    printf("%c=%d\n", a, a);
    printf("%c=%d\n", b, b);
    printf("%c=%d\n", c, c);
    return 0;
}
//A=65
//B=66
//a=97
#include<stdio.h>
int main()
{
	char a = 'a';//97
	char b = 'A';//65
	int c = a - 32;//97-32=65--'A'
	int d = b + 32;//65+32=97--'a'
	printf("小写%c转换为大写%c\n", a, c);
	printf("大写%c转换为小写%c\n", b, d);
}
//小写a转换为大写A
//大写A转换为小写a

在这里插入图片描述

#include<stdio.h>
int main()
{
	char str1[10] = { 'A','P','P','L','E','\0' };//初始化字符数组的每个元素
	char str2[] = { 'A','P','P','L','E','\0' };//可以不写元素的个数,因为编译器会自动计算
	char str3[] = { "APPLE" };//使用字符串常量初始化字符数组
	char str4[] = "APPLE";//使用字符串常量初始化,可以省略大括号
	printf("str1=%s\n", str1);
	printf("str2=%s\n", str2);
	printf("str3=%s\n", str3);
	printf("str4=%s\n", str4);

	return 0;

}
//str1=APPLE
//str2=APPLE
//str3=APPLE
//str4=APPLE

名类数值型数据之间的混合运算
在这里插入图片描述
在这里插入图片描述
例如:int=long 右边类型自动转换成左边类型,因为右边类型大于左边类型,所以会降低精度

#include<stdio.h>
int main()
{
	float PI = 3.141596;
	int s, r = 5;
	s = r * r * PI;
	printf("s=%d\n", s);
	return 0;

}
//s=78
//5 * 5 = 25
//25 * 3.141596 = 78.5399
//%d转换成double类型,因为s为整形,故赋值也为整形,舍弃小数点部分,所以等于78

在这里插入图片描述

#include<stdio.h>
int main()
{
	float a = 31.323;
	printf("(int)a=%d\na=%f\n", (int)a,a);
	return 0;
}
//(int)a = 31
//a = 31.323000

2.运算符
在这里插入图片描述

#include<stdio.h>
int main()
{
	int a = 1;
	int b = 4;
	printf("%d\n", a + b);
	printf("%d\n", a - b);
	printf("%d\n", a * b);
	printf("%d\n", a / b);
	printf("%d\n", a % b);
	printf("%f\n", (float)a/b);
	return 0;
}
//5
//- 3
//4
//0
//1
//0.250000

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
int main()
{
	int a = 5;
	int b;
	b = ++a;
	printf("b= %d\n", b);//6

	int c = 5;
	int d;
	d = c++;
	printf("d= %d\n", d);//5
	return 0;
}

在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
int main()
{
	int a, b = 322;
	float x, y = 8.88;
	char c1 = 'k', c2;
	a = y;
	x = b;
	a = c1;
	c2 = b;
	printf("%d\n%f\n%d\n%c\n", a, x, a, c2);
	return 0;
}
//107
//322.000000
//107
//B

在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
int main()
{
	int a=10,b = 32,c=6,x,y;
	y = ((x= a + b), (b + c));
	printf("y=%d\n", y);
	printf("x=%d\n", x);
	return 0;
}
//y = 38
//x = 42

三.顺序程序设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
int main()
{
	printf("A\n");
	putchar('A');//A字符
	putchar('\n');//换行符
	putchar('\101');//八进制101 等于十进制65转换为字符为A
	return 0;
}
//A
//A
//A

在这里插入图片描述

#include<stdio.h>
int main()
{
	char d;
	d = getchar();
	putchar(d);

	//char c;
	//scanf("%c", &c);
	//printf("%c", c);
	//return 0;
}

在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
int main()
{
	int a = 15;
	float b = 123.1234567;
	double c = 12345678.1234567;
	char d = 'p';
	printf("a=%d,%5d,%o,%x\n",a,a,a,a);//a=15,   15,17,f
	printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);//b=123.123459,123.123459,123.1235,1.231235e+02
	printf("c=%lf,%f,%8.4lf\n",c,c,c);//c=12345678.123457,12345678.123457,12345678.1235
	printf("d=%c,%8c\n",d,d);//d=p,       p
	return 0;
}

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
int main()
{ 
	int a, b, c;
	scanf("%d%d%d", &a, &b, &c);
	printf("%d %d %d\n", a, b, c);
	return 0;
}

在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
int main()
{ 
	int a, b, c;
	scanf("%d%*d%d", &a, &b);
	printf("%d %d\n",a,b);
	return 0;
}
//1 2 3
//1 3
#include<stdio.h>
int main()
{ 
	int a;
	scanf("%5d", &a);
	printf("%d\n",a);
	return 0;
}
//123456789
//12345

在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
int main()
{ 
	char a, b, c;
	scanf("%c%c%c", &a, &b, &c);
	printf("%c %c %c", a, b, c);
	return 0;
}
//abc
//a b c
#include<stdio.h>
int main()
{ 
	char a, b, c;
	scanf("%c %c %c", &a, &b, &c);
	printf("%c %c %c", a, b, c);
	return 0;
}
//a b c
//a b c

在这里插入图片描述

#include<stdio.h>
int main()
{ 
	char a, b, c;
	scanf("%c,%c,%c", &a, &b, &c);
	printf("%c %c %c", a, b, c);
	return 0;
}
//a, b, d
//a b d
#include<stdio.h>
int main()
{ 
	char d, e, f;
	scanf("d=%c,e=%c,f=%c", &d, &e, &f);
	printf("%c %c %c", d, e, f);
	return 0;
}
//d = p, e = p, f = l
//p p l

在这里插入图片描述

#include<stdio.h>
#include<math.h>
int main()
{ 
	 float a, b, c;
	 float s, area;
	 printf("输入三个边长:\n");
	 scanf("%f%f%f", &a, &b, &c);
	 s = (a + b + c) / 2;
	 area = sqrt(s*(s-a)*(s-b)*(s-c));//使用sqrt必须导包math.h
	 if (a + b > c && b + c > a && a + c > b)
	 {
		 printf("%.2f", area);
	 }
	 else
	 {
		 printf("三条边无法构成三角形");
	 }
	 return 0;
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值