C语言-函数练习

1,goto语句

复制代码
#include<stdio.h>
#include<string.h>
//goto语句
int main() {
again:
	printf("hehe\n");
	printf("haha\n");
	goto again;//(死循环)
	return  0;
}

#include<stdio.h>
#include<string.h>
//goto语句的应用举例
int main() {
	char input[20] = { 0 };
	system("shutdown -s -t 300");
again:
	printf("请注意,你的电脑在60秒内关机,如果输入:我是猪,就取消关机\n");
	scanf("%s", input);
	if (strcmp(input,"我是猪")==0)
	{
		system("shutdown -a");
	}
	else
	{
		goto again;
	}
	return  0;
}

2,memset应用

复制代码
#include<stdio.h>
#include<string.h>
int main() {
	//char arr1[20] = { 0 };
	//char arr2[] = "hello bit";
	//strcpy(arr1, arr2);
	//printf("%s\n", arr1);//hello bit

	char arr[20] = "hello world";
	memset(arr, 'x', 5);
	printf("%s\n", arr);//xxxxx world
	return  0;
}

3,定义一个函数,求两个数的最大值

复制代码
#include<stdio.h>
#include<string.h>
//定义一个函数,求两个数的最大值
//函数定义
int get_max(int x,int y) {
	return (x > y ? x : y);
}
int main() {
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	//求较大值
	//函数调用
	int m = get_max(a, b);

	printf("%d\n", m);

	return  0;
}

4,定义一个函数,交换两个变量

复制代码
#include<stdio.h>
#include<string.h>
////定义一个函数,交换两个变量
//void Swap(int x, int y) {
//	int z = 0;
//	z = x;
//	x = y;
//	y = z;
//}
////当实参传递给形参的时候,形参是实参的一份临时拷贝
////对形参的修改不会影响实参
//int main() {
//	int a = 0;
//	int b = 0;
//	scanf("%d%d", &a, &b);
//	//交换
//	printf("交换前:a=%d b=%d\n", a, b);
//	//a和b叫实参
//	Swap(a, b);
//	printf("交换后:a=%d b=%d\n", a, b);
//
//	return  0;
//}

//对上述代码修改后
//定义一个函数,交换两个变量
void Swap(int *px, int *py) {//指针变量存地址
	int z = *px;
	*px = *py;//真正交换了变量内容
	*py = z;
}
//当实参传递给形参的时候,形参是实参的一份临时拷贝
//对形参的修改不会影响实参
int main() {
	int a = 0;
	int b = 0;
	scanf("%d%d", &a, &b);
	//交换
	printf("交换前:a=%d b=%d\n", a, b);
	//a和b叫实参
//	Swap(a, b);//传值调用
	Swap(&a, &b);//传址调用
	printf("交换后:a=%d b=%d\n", a, b);

	return  0;
}

5,打印100-200之间的素数

复制代码
#include<stdio.h>
#include<string.h>
//打印100-200之间的素数
//素数是只能被1和他本身整除的数
//7
//1和7整除
//2 3 4 5 6 
#include<math.h>
int main() {
	int i = 0;
	for (i = 100; i <= 200; i++) {
		//判断i是否为素数
		//是素数就打印
		//拿2-(i-1)之间的数字去试除i
		int flag = 1;//flag是一,表示是素数
		int j = 0;
		//for (j = 2 ;  j<=i-1 ; j++)
		for (j = 2; j <= sqrt(i); j++)//优化  sqrt:开平方函数
		{
			if (i % j == 0) {
				flag = 0;
				break;
			}
		}
		if (flag == 1)
		{
			printf("%d  ", i);
		}
	}
	return 0;
}

6,写一个函数判断一个数是不是素数

复制代码
#include<stdio.h>
#include<string.h>
//写一个函数判断一个数是不是素数
//打印100-200之间的素数
//素数是只能被1和他本身整除的数
//7
//1和7整除
//2 3 4 5 6 
#include<math.h>
int is_prime(int n) {
	int j = 0;
	//for (j = 2 ;  j<=i-1 ; j++)
	for (j = 2; j <= sqrt(n); j++)//优化  sqrt:开平方函数
	{
		if (n % j == 0) {
			return 0;
		}
	}
	return 1;
}

int main() {
	int i = 0;
	for (i = 100; i <= 200; i++) {
		//判断i是否为素数
		//是素数就打印
		//拿2-(i-1)之间的数字去试除i
		if (is_prime(i))
			printf("%d ", i);
	}
	return 0;
}

7,指针的应用

复制代码
#include<stdio.h>
#include<string.h>
int main() {
	int a = 10;
	int* p = &a;

	a = 20;//直接改
	*p = 30;//间接改

	return  0;
}
相关推荐
我是大猴子1 小时前
异常的处理
java·开发语言
『往事』&白驹过隙;1 小时前
Linux VFS虚拟文件系统杂谈
linux·c语言·arm开发·物联网·操作系统·iot
~央千澈~1 小时前
抖音弹幕游戏开发之第16集:异常处理与稳定性·优雅草云桧·卓伊凡
开发语言·php
清水白石0081 小时前
解锁 Python 性能潜能:从基础精要到 `__getattr__` 模块级懒加载的进阶实战
服务器·开发语言·python
清水白石0081 小时前
缓存的艺术:Python 高性能编程中的策略选择与全景实战
开发语言·数据库·python
blueSatchel1 小时前
GPIO子系统源码研究
linux·c语言
JienDa1 小时前
Haio · 海鸥 - 企业级插件化应用平台
开发语言·php
Toormi1 小时前
Go 1.26在性能方面做了哪些提升?
开发语言·后端·golang
CHANG_THE_WORLD1 小时前
深入理解C语言指针运算与数据搜索
c语言·开发语言