c语言基础代码

目录

最小程序

整数浮点类型初始化

字符及字符串类型初始化

字符

字符串

常量设置

const

define +常量名 + 值或算式

运算符 

输入输出函数

scanf() printf()

 getchar 和  putchar

分支结构

if-else

switch语句

break

循环结构

while

do-while 

for

两数交换代码


最小程序

最基础写法

#include <stdio.h>
int main()
{
	printf("嘻嘻嘻 \n"); //printf()表示输出,需要头文件stdio.h
	return 0;

}

下面代码探究没有返回值和返回值除了0的情况,前者将主函数设置成void,后者在不改变int的情况下返回值甚至可以写不是整数的值。

#include <stdio.h>
void main()//相当于设置没有返回值
{
	printf("xiaoheizhenheri");
}

#include <stdio.h>
int main()
{
    printf("xiaoher");
	return 0.1;
}

整数浮点类型初始化

利用sizeof()可求所占空间

#include <stdio.h>
int main()
{
	int age = 23;
	long a =1;
	short b =2;
	long long c =3;
	printf("%d\n",sizeof(age));
	printf("%d\n",sizeof(int));
	printf("%d\n",sizeof(long));
	printf("%d\n",sizeof(long long));
	//sizeof(数据类型)表示字符长度 或sizeof(age) sizeof age

	return 0;
}

单精度及双精度浮点数初始化及占据空间。

#include <stdio.h>
int main()
{
    float a = 4.5;//单精度数据类型
	double b=2.5;//双精度数据类型
	printf("%f\n",a);
	printf("%fl\n",b);
	printf("%d\n",sizeof(a));//单精度运行结果4
	printf("%d\n",sizeof(b));//双精度运行结果8
	return 0;
}

字符及字符串类型初始化

字符

单引号,输出用%c .

若使用%d,打印出来的是它的ASCII码值。

#include <stdio.h>
int main()
{
    char a = '1';
    printf("%d",a);
    printf("%c",a);
    return 0;
}

试试看咯

 

字符串

双引号

第一种是用指针,第二三种就是正常的定义。

#include<stdio.h>
int main()
{
	const char* c;
	char a[6]="12345";
	char b[]="12345";
	c="12345";
	printf("%s\n%s\n%s\n",a,b,c);
	return 0;
}

注意字符串空间占用的时候,会再申请一个空间\0,所以表面上a内部只有一个5个字符,实际上其作为字符串有6份空间。我们把其长度输出,得到6,如下图。

另外注意要输出字符串的时候用的是“%s” 。


常量设置

const

const int a =1;

define +常量名 + 值或算式

define ZZQ 120
define ZZQ 100 + 120

注意,代码末尾不需要加分号。

并且,define是符号常量,如果采用第二种定义的话,是同替换而不是值的替换,具体看下面的例子。

#include <stdio.h>
#define IP 6+2 //符号常量 同替换不包括计算
int c = 4; //全局变量 而下面的只能在main函数中执行
int main()
{
  const int b =48;//修饰常量
  printf("%d",b);
  printf("%d",IP*IP);//输出结果为20
  return 0;
}

注意define写在什么位置。

IP * IP不是(6+2)*(6+2)即值替换,而是6+2*6+2,即同等替换,答案是20.

运算符 

加减运算符就不用说了,谈一谈高级一点的

整除【/】:只有至少有一边是浮点数才能得到浮点数

#include <stdio.h>
int main()
{
	float c;
	c=5/2;//dedaodshi整数
	c=5.0/2;//得到的才是浮点数
	return 0;
}

取余【%】:只能用于整数


输入输出函数

scanf() printf()

printf前面都在用,先不提了,讲下scanf.也是在<stdio.h>里面的。注意取地址符号&,其中%d是因为a是整数类型,其他类型可参考printf。

int a;
scanf("%d",&a)

是严格的按格式输入的函数。注意到中间有一个空格,输入的时候必须按整数空格整数输入

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

 getchar 和  putchar

#include<stdio.h>
int main()
{
	int a,b,c;
	a=getchar();
	b=getchar();
	c=getchar();
	putchar(a);
	putchar(b);
	putchar(c);
	putchar('\n');
	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;
}

 上面两个代码完成等同功能。putchar 和getchar只能一次输出一个字符,空格也需要单独输出。但不用另外设置一些参数,有利有弊。


分支结构

if-else

if(表达式) {语句块}

else{语句块}

当if语句嵌套时,判断else是哪个if下的,重点看距离这个else的远近。它是跟随最近的if的。与python不同,它不考虑缩进。

当语句块有多条代码,需要用大括号括起来。只有一条代码则可省略

#include <stdio.h>
int main()
{
	int a,b;
	scanf("%d",&a);
	scanf("%d",&b);
	if (a==b)
			printf("ab相等");
	else
	{
			if (a>b) 
				printf("a大");
		    else 
				printf("b大");
	}
	return 0;

}

简洁表达式

条件?表达式1:表达式2;

两个表达式中间式冒号隔开。表达式1相当于if下的语句。

if (a<b) min=a;
else min=b;
min = (a<b)?a:b;

 上面两个代码等价。

switch语句

(用于表达式值为整数或字符类型)

swich(表达式)

{

case 常量1:语句1

case 常量2:语句2

default:语句n

}

可以设很多个case,一旦满足条件,则这行以后的代码都执行,例如:

#include <stdio.h>
int main()
{
	int a,b;
	scanf("%d%d",&a,&b);
	switch(a + b)
	{
	case 0:printf("等于0");
	case 1:printf("等于1");
	case 2:printf("等于2");
	default:printf("卖萌,人家只是幼儿园,要是前面答案都不对,我也不会,哭哭");
	}
	return 0;
}

输入0 1,也就是满足了case 1;则之后的语句皆输出

输入13 3,就是没有常量相等,则只执行default后面的语句

break

如果在swich里面用,就很方便像这样

要是每一句后面都加一个break,那就相当于只能走一条

注意break单独成一个语句,仔细观察里面的分号使用。

循环结构

while

while(表达式) 循环体

#include <stdio.h>
int main()
{
	int i=0,sum=0;
	while (i<10)
		{
			sum+= i;
			i++;
		}
	printf("%d",sum);
	return 0;
}

do-while 

do

        语句块

while(表达式);

注意分号。下面代码与上面的等价

#include <stdio.h>
int main()
{
	int i=0,sum=0;
	do 
		{
			sum+= i;
			i++;
		}
	while (i<10);

	printf("%d",sum);
	return 0;
}

for

for(表达式1;表达式2;表达式3)语句块


两数交换代码

//交换两个数
#include <stdio.h>
int main()
{
	int a=1,b=2,t;
	t=a;
	a=b;
	b=t;
	printf("a=%d\nb=%d",a,b);
	return 0;
}

  • 20
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值