学破解论坛

 ★找回密码★
 ★免费注册★

QQ登录

绑定QQ,免密登录

查看: 829|回复: 1

[C/C++] 学C语言的第四天的15个练习

[复制链接] |关注本帖

  在线 

签到天数: 374

该用户今日未签到




搜狗截图21年04月22日0039_3.png
[C] 纯文本查看 复制代码
#include <stdio.h>
#define OK 0;
#include <windows.h>
#include <time.h>
#include <string.h>
int main31() {
//打印数组的变量名时为地址
	int a[5];
	printf("%#X\n", &a);
	printf("%u\n",a);
	printf("%u\n", &a);
	printf("%u\n", &a[1]); //&a+4
	printf("%u\n", a+1);
	printf("%u\n", (&a)+1);
	printf("%u\n", (&a[1])+1);
	return 0;
}
int main32() {
	//求数组的最大值
	int a[] = { 1,3,5,12,45,36,37,12,85,74,95 };
	int max = a[0];
	for (int b=1;  b <=sizeof(a)/sizeof(a[0]);b++)
	{
		if (a[b]>max)
		{
			max = a[b];
		}
	}
	printf("%d\n", max);
	return OK;
}
//数组的逆置
int main33() {
	int arr[] = {1,2,3,4,5,6,7,8,9,0};
	int i = 0;//数组开头下标
	int j = (sizeof(arr) / sizeof(arr[0])) - 1;//数组下标为实际长度减一
	int tmp = 0;//临时存放,用于交换数据
	while (i<j)
	{
		tmp = arr[i];
		arr[i] = arr[j];
		arr[j] = tmp;
		i++;
		j--;
	}
	int length=sizeof(arr) / sizeof(arr[0]);
	for (int a=0;a<length;a++)
	{
		printf("%d", arr[a]);
		if (a!=sizeof(arr)/sizeof(arr[0])-1)
		{
			printf("%s", ",");
		}

	}
	return OK;

}
//二维数组
int main34() {
	int a[3][4];//定义一个三行四列的二维数组
	int j = 0;
	printf("%d\n", sizeof(a[3][4]));
	printf("%d\n", sizeof(a));
	for (int i = 0; i <3; i++)
	{
		for (int b=0;b<4;b++)
		{
			srand(time(NULL));
			a[i][b] = rand();
			Sleep(1000);//因为执行速度太快所以睡1秒,反正随机数相同
			j++;
			printf("j=%d%d\n",j, a[i][b]);
		}
	}
	printf("%d\n",sizeof(a)/sizeof(a[0][0])  );
	return OK;

}
//二维数组
int main35() {
	int a[3][4] = {
	{1,2,3,4},//第一行
	{5,6,7,8},//第二行
	{9,10,11,12} };//第三行 
	for (int i=0;i<3;i++)
	{
		for (int j=0;j<4;j++)
		{
			printf("%d\n", a[i][j]);
		}
	}
	int c[][5] = {
		{1,2,5,7,9},
		{5,6,7,2,8},
		{1,54,7,8,9},
	};
	int d[3][4] = { {1,2,3,4} };//如果只给部分元素初始化,那么其他元素为零
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			printf("%d\n", d[i][j]);
		}
	}
	//int a[][] = {};行下标可以为空,列下标不能为空
	return OK;

}

[C] 纯文本查看 复制代码
//求数组的行,与列
int main36() {
	int a[4][5] = { {1,2,4,5,6} };
	printf("%d\n", sizeof(a[0]));//20    一行的总字节数
	printf("%d\n", sizeof(a));//80       数组的总字节数
	printf("%d\n", sizeof(a[0][0]));//4  int的字节大小
	//总行数
	int line=	sizeof(a) / sizeof(a[0]);
	printf("%d\n", line);
	//总列数
	int row = sizeof(a[0]) / sizeof(a[0][0]);
	printf("%d\n", row);
	return OK;

}
int main37() {
	int a[4][5] = { {1,2,4,5,6} };
	printf("a=%u\n", a);
	printf("a[0]=%u\n", a[0]);
	printf("a[0][0]=%u\n", a[0][0]);
	printf("a + 1=%u\n", a + 1);
	printf("a[0] + 1=%u\n", a[0] + 1);
	printf("a[0][0] + 1=%u\n", a[0][0] + 1);
	printf("&a=%u\n", &a);
	printf("&a[0]=%u\n", &a[0]);
	printf("&a[0][0]=%u\n", &a[0][0]);
	printf("&a+1=%u\n", &a+1);
	printf("&a+1=%u\n", &a+1);
	printf("&a[0]+1=%u\n", &a[0]+1);
	printf("&a[0][0]+1=%u\n", &a[0][0]+1);
	printf("&a + 1=%u\n", &a + 1);

	/*
	a=14088300
a[0]=14088300
a[0][0]=1
a + 1=14088320
a[0] + 1=14088304
a[0][0] + 1=2
&a=14088300
&a[0]=14088300
&a[0][0]=14088300
&a+1=14088380
&a+1=14088380
&a[0]+1=14088320
&a[0][0]+1=14088304
&a + 1=14088380
	*/
	printf("a=%X\n", a);
	printf("a[0]=%X\n", a[0]);
	printf("a + 1=%X\n", a + 1);
	printf("a[0] + 1=%X\n", a[0] + 1);
	printf("&a=%X\n", &a);
	printf("&a[0]=%X\n", &a[0]);
	printf("&a[0][0]=%X\n", &a[0][0]);
	printf("&a+1=%X\n", &a + 1);
	printf("&a+1=%X\n", &a + 1);
	printf("&a[0]+1=%X\n", &a[0] + 1);
	printf("&a[0][0]+1=%X\n", &a[0][0] + 1);
	printf("&a + 1=%X\n", &a + 1);
	/*
a=D6F86C
a[0]=D6F86C
a + 1=D6F880
a[0] + 1=D6F870
&a=D6F86C
&a[0]=D6F86C
&a[0][0]=D6F86C
&a+1=D6F8BC
&a+1=D6F8BC
&a[0]+1=D6F880
&a[0][0]+1=D6F870
&a + 1=D6F8BC
	*/
	return OK;

}
//求平均数,不及格人数,总分数
int main38() {
	float cores[3][4] =
	{
	{90,65,40,55},
	{40,90,80,70},
	{60,25,47,88}
	}
	;
	float sum = 0.0;//总分数
	int numer[4] = {0};//不及格人数
	float ave[4] = { 0 };//平均数
	int k = 0;
	printf("%d\n", sizeof(cores) / sizeof(cores[0]));
	printf("%d\n", sizeof(cores[0]) / sizeof(cores[0][0]));
	for (int i=0;i< sizeof(cores[0]) / sizeof(cores[0][0]);i++)
	{
		sum = 0.0;
		for (int j = 0; j < sizeof(cores) / sizeof(cores[0]); j++)
		{
			if (cores[j][i]<60)
			{
				numer[i]++;
			}
			sum += cores[j][i];
		}
		printf("%s%f\n","总成绩", sum);
		ave[k]= sum / (sizeof(cores) / sizeof(cores[0]));
		printf("%f\n", ave[k]);
		printf("%d\n", numer[i]);
		k++;
	}
	return OK;
}

int main40() {
	char ch[10];
	gets(ch); //会读取空格,
	printf("%s\n", ch);
	return OK;
}
int main39() {
	char ch[10];
	fgets(ch,sizeof(ch),stdin );//会把回车键\n读取
	printf("%s\n", ch);
	return OK;
}

[C] 纯文本查看 复制代码
int main41() {
	char buf[10]="starry8";
	int strl= strlen(buf)-1;
	buf[strl] = '\0';
	printf("%d\n",strl);
	printf("%s\n", buf);//starry
	buf[strl-1] = 0;
	printf("%s\n", buf);//starr
	return OK;
}

int main42() {
	char ch[10] = "starry";
	int i = 0;
	/*
	strlen(ch);
	while (ch[i]!='\0')
	{
		i++;
	}
	*/
	printf("%d\n", i);//6
	int num=strlen(ch);
	printf("%d\n", num);//6
	return OK;
}
int main43() {
	char luntan[10] = "夜星空";
	//puts(luntan);//把夜星空输出到控制台
	fputs(luntan, stdout);
	return OK;
}
int main44() {
	char luntan[10] = "夜星空";
	int i = 0;
	while (luntan[i]!='\0')
	{
		i++;
	}
	printf("%d\n",i);//一个中文占两个字节//6

	while (i!=0)
	{
		luntan[i] = '\0';
		i -= 2;
		fputs(luntan, stdout);
		printf("\n");
		/*
		夜星空
		夜星
		夜
		*/
	}
	return OK;
}
int main45() {
	//产生随机数
	srand(time(NULL));//因为时间每时每刻都在变,所以选择时间当随机种子
	int rdnumer = rand();
	printf("%d\n", rdnumer);
	return OK;
}
extern int my_sum(int a, int b);
extern int my_sub(int a, int b);
extern  int my_mul(int a, int b);
extern int my_div(int a, int b);
extern int my_get_max(int a, int b);
extern int my_get_min(int a, int b);
int main46() {
	printf("%d\n", my_sum(98, 100));//求和
	printf("%d\n", my_sub(200, 50));//减法
	printf("%d\n", my_mul(50, 40));//乘法
	printf("%d\n", my_div(10, 5));//除法
	printf("%d\n", my_get_max(100, 60));//求最大值
	printf("%d\n", my_get_min(40, 20));//求最小值
	return OK;
}
int my_sum(int a, int b) {
	return a + b;
}
int my_sub(int a, int b) {
	return a - b;
}
int my_mul(int a, int b) {
	return a * b;
}
int my_div(int a, int b) {
	return a / b;
}
int my_get_max(int a, int b) {
	return a > b?a:b;
}
int my_get_min(int a, int b) {
	return a < b?a:b;
}

学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!

  离线 

签到天数: 377

该用户今日未签到




可以找个OJ平台用C练下算法啥的,单纯学语法并没有什么作用,我现在做CTF题RE里限制我的一直是算法。
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
您需要登录后才可以回帖 登录 | 立即注册

获得更多积分,阅读本版加分规则

免责声明

本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者其他任何非法用途!否则,一切后果请用户自负!如有侵权请使用邮件或微信联系站长处理。

站长邮箱:SharkHeng@iCloud.com


站长微信号:SharkHeng|站长邮箱:SharkHeng@iCloud.com|鲨鱼逆向|无图版|手机版|小黑屋|FAQ|VIP破解教程|学破解论坛 ( 京公网安备 11011502002737号 | 京ICP备20003498号-3 )

GMT+8, 2021-6-14 19:05

快速回复 返回顶部 返回列表