蓝桥杯c语言试题(3)

1、

//算式900
//
//小明的作业本上有道思考题:
//
//看下面的算式:
//
//(□□□□ - □□□□)* □□ = 900
//
//其中的小方块代表09的数字,这10个方块刚好包含了09中的所有数字。
//注意:0不能作为某个数字的首位。
//
//小明经过几天的努力,终于做出了答案!如下:
//(5012 - 4987) * 36 = 900
//
//用计算机搜索后,发现还有另外一个解,本题的任务就是:请你算出这另外的一个解。
//
//注意:提交的格式需要与示例严格一致;
//括号及运算符号不要用中文输入法;
//整个算式中不能包含空格。
//
//注意:机器评卷,不要填写任何多余的内容,比如说明文字。
//这里就是考察的全排列,可以自己写深搜,也可以调用全排列函数

#include<iostream>
#include <algorithm>
#define ll long long
using namespace std;

int main()
{
	int a[10] = { 0,1,2,3,4,5,6,7,8,9 };
	do {
		if (a[0] == 0 || a[4] == 0 || a[8] == 0) continue;
		else
		{
			int x1 = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
			int x2 = a[4] * 1000 + a[5] * 100 + a[6] * 10 + a[7];
			int x3 = a[8] * 10 + a[9];
			if ((x1 - x2) * x3 == 900) {
				printf("(%d%d%d%d-%d%d%d%d)*%d%d=900\n",
					a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]);
			}
		}
	} while (next_permutation(a, a + 10));
}

2、

//标题:贪吃蛇长度
//
//±------------------------------------------------ +
//| |
//| H###### #### |
//| # # # |
//| # # # |
//| # #### # # |
//| # # # # # |
//| ######@### # # |
//| # #### # # |
//| # # # # # |
//| ####@#######@### # # |
//| # # # # # |
//| T ##### # # # ## |
//| # # ### ### ## |
//| ################ # # #### |
//| # # # # |
//| ############## #######@########## |
//| # ### |
//| ########################### |
//±------------------------------------------------ +
//小明在爷爷的私人收藏馆里找到一台老式电脑。居然没有图形界面,只能用控制台编程。经过小明的一阵摸索,神奇地设计出了控制台上的贪食蛇游戏。
//如上图,是游戏时画面截图。 其中,H表示蛇头,T表示蛇尾。#表示蛇的身体,@表示身体交叉重叠的地方。 你能说出现在的贪吃蛇长度是多少吗? 其实,只要数出#的数目算1,数出@的数目,算2,再加上头尾各算1就计算好了。 人工数一下?太累眼睛了,聪明的你为什么不让计算机帮忙呢? 本题的要求就是: 请填写上图中贪食蛇的长度是多少?
//思路:把上图字符保存到记事本,用记事本替换功能除去无关字符,保存即可。

#include<stdio.h>
#include<stdlib.h>
int main()
{
	FILE* fp;
	char ch;
	int count = 0;
	if ((fp = fopen("abc.txt", "r")) == NULL)
	{
		printf("错误\n");
		exit(0);
	}
	while ((ch = fgetc(fp)) != EOF)
	{
		if (ch == '#' || ch == 'H' || ch == 'T')
		{
			count++;
		}
		else if (ch == '@')
		{
			count += 2;
		}
	}
	printf("%d", count);
	fclose(fp);
	return 0;
}
//答案190`

3、

//兴趣小组
//
//为丰富同学们的业余文化生活,某高校学生会创办了3个兴趣小组
//(以下称A组,B组,C组)。
//每个小组的学生名单分别在【A.txt】, 【B.txt】和【C.txt】中。
//每个文件中存储的是学生的学号。
//
//由于工作需要,我们现在想知道:
//既参加了A组,又参加了B组,但是没有参加C组的同学一共有多少人?
//
//请你统计该数字并通过浏览器提交答案。
//
//注意:答案是一个整数,不要提交任何多余的内容。
//
//笨笨有话说:
//哇塞!数字好多啊!一眼望过去就能发现相同的,好像没什么指望。
//不过,可以排序啊,要是每个文件都是有序的,那就好多了。
//
//歪歪有话说:
//排什么序啊,这么几行数字对计算机不是太轻松了吗?
//我看着需求怎么和中学学过的集合很像啊…
//
//数据:
//
//A…txt :
//
//12894792, 92774113, 59529208, 22962224, 02991600, 83340521, 87365045,
//40818286, 16400628, 39475245, 55933381, 76940287, 61366748, 95631228,
//17102313, 50682833, 61562613, 87002524, 83062019, 51743442, 61977890,
//32010762, 69680621, 87179571, 81761697, 32364296, 07833271, 36198035,
//26588918, 84046668, 43059468, 73191775, 56794101, 00454780, 11141030,
//10008994, 35072237, 44945158, 53959980, 75758119, 18560273, 35801494,
//42102550, 22496415, 03981786, 34593672, 13074905, 07733442, 42374678,
//23452507, 98586743, 30771281, 17703080, 52123562, 05898131, 56698981,
//90758589, 18238802, 18217979, 04511837, 75682969, 31135682, 55379006,
//42224598, 98263070, 40228312, 28924663, 11580163, 25686441, 45944028,
//96731602, 53675990, 03854194, 14858183, 16866794, 40677007, 73141512,
//32317341, 56641725, 43123040, 15201174, 62389950, 72887083, 76860787,
//61046319, 06923746, 17874548, 46028629, 10577743, 48747364, 05328780,
//59855415, 60965266, 20592606, 14471207, 70896866, 46938647, 33575820,
//53426294, 56093931, 51326542, 94050481, 80114017, 33010503, 72971538,
//22407422, 17305672, 78974338, 93209260, 83461794, 41247821, 26118061,
//10657376, 42198057, 15338224, 50284714, 32232841, 26716521, 76048344,
//23676625, 62897700, 69296551, 59653393, 38704390, 48481614, 69782897,
//26850668, 37471053, 88720989, 51010849, 94951571, 60024611, 29808329,
//70377786, 13899299, 09683688, 58218284, 46792829, 97221709, 45286643,
//48158629, 57367208, 26903401, 76900414, 87927040, 09926730, 01508757,
//15101101, 62491840, 43802529,
//
//B.txt:
//
//44894050, 34662733, 44141729, 92774113, 99208727, 91919833, 23727681,
//10003409, 55933381, 54443275, 13584702, 96523685, 50682833, 61562613,
//62380975, 20311684, 93200452, 23101945, 42192880, 28992561, 18460278,
//19186537, 58465301, 01111066, 62680429, 23721241, 20277631, 91708977,
//57514737, 03981786, 81541612, 07346443, 93154608, 19709455, 37446968,
//17703080, 72378958, 66200696, 30610382, 89586343, 33152171, 67040930,
//35696683, 63242065, 99948221, 96233367, 52593493, 98263070, 01418023,
//74816705, 89375940, 58405334, 96731602, 84089545, 16866794, 94737626,
//01673442, 70548494, 13638168, 08163691, 11106566, 64375392, 40267902,
//00897705, 56447313, 54532235, 94738425, 66642634, 83219544, 40546096,
//66924991, 20592606, 96037590, 73434467, 70896866, 91025618, 57892091,
//08487641, 32500082, 84412833, 23311447, 38380409, 79957822, 72971538,
//69645784, 91863314, 73099909, 93209260, 83461794, 81378487, 30423273,
//22233715, 32232841, 26716521, 03511221, 29196547, 58263562, 56233305,
//52547525, 55812835, 87253244, 52484232, 80837360, 94098464, 52028151,
//53267501, 66381929, 84381316, 59788467, 09683688, 67082008, 71605255,
//80654064, 21434307, 45286643, 76556656, 82465821, 57367208, 79218980,
//48460468, 59170479, 46046391, 43043164, 96544490, 83340521, 70837892,
//18926791, 40818286, 28936302, 11489524, 51031183, 73860337, 13241219,
//09025448, 10718828, 76360986, 26031606, 76558053, 97726139, 46473415,
//48406387, 23625539, 86756012, 35164187, 49161302, 78082834, 35072237,
//08602486, 29815841, 56562216, 77684187, 81751704, 20160464, 50407962,
//27786415, 19893526, 00934129, 37759498, 52636463, 25666982, 43262852,
//38393436, 02581136, 29323250, 56950657, 05898131, 95286262, 75574581,
//54057961, 06703896, 90758589, 57782642, 34492535, 41919697, 06395464,
//10993500, 81212949, 34017532, 69569396, 99009936, 57129610, 67401593,
//71044018, 62076698, 29533873, 71936325, 86874388, 26545032, 35695544,
//30433724, 53127345, 72887083, 25390873, 63711546, 06923746, 27783723,
//33199575, 35929698, 16491251, 18276792, 62744775, 92096155, 06336570,
//56141974, 73007273, 31416832, 00171057, 64176982, 46938647, 58460388,
//69972026, 73724304, 27435484, 51568616, 15531822, 47788699, 11818851,
//41594694, 83561325, 43107163, 56965375, 10557343, 26118061, 74650126,
//90076467, 10657376, 49901436, 03425162, 61164599, 15797769, 05427896,
//14444084, 36795868, 18079449, 59653393, 72942548, 06763077, 33895610,
//94892653, 12085268, 65174140, 79567366, 23020126, 74290047, 13498869,
//21696323, 27724594, 54941003, 38229841, 07050068,
//
//C.txt:
//
//13404901, 39952424, 47847739, 94939581, 13809950, 70966043, 11161555,
//17102313, 47079425, 50682833, 74154313, 61562613, 93200452, 37103342,
//18479435, 32502597, 36198035, 54210010, 73191775, 48358178, 85544503,
//05996766, 54651623, 52113220, 27465181, 23871783, 22496415, 54107041,
//65899605, 56528700, 82671109, 61176034, 42374678, 51612628, 63329997,
//56591652, 04552733, 12789324, 89586343, 51935014, 38611966, 43916409,
//70996050, 98263070, 01418023, 65345049, 21734275, 76846198, 71506230,
//00833171, 67128139, 41367555, 64769510, 44010700, 16475199, 93164325,
//09386162, 95324041, 80688223, 67629139, 79552617, 76219736, 50368644,
//45096021, 54972488, 63779011, 28862942, 73145521, 74078605, 66924991,
//12806850, 02171001, 70896866, 73434467, 08487641, 44415025, 32500082,
//84412833, 83896188, 52243759, 49191410, 38744339, 48079796, 44937032,
//06267501, 81866886, 38575984, 25978688, 78974338, 41247821, 12356966,
//64842303, 79127158, 02366944, 68000570, 12426275, 96409230, 00705972,
//08266503, 83820884, 08831807, 43273308, 23216105, 29196547, 95160161,
//05553537, 52182214, 32641346, 91553427, 24436506, 77433749, 01979664,
//52028151, 88985343, 01761499, 76203088, 63237368, 23405334, 59788467,
//09683688, 67755443, 29946533, 12053603, 00437479, 15200030, 45286643,
//93537527, 82465821, 57367208, 53899751, 15354933, 97760830, 68933762,
//80220545, 01892750, 39868288, 21524323, 69716610, 65083815, 78048499,
//03227391, 83340521, 87365045, 71720254, 51031183, 89168555, 08503028,
//37086236, 25103057, 87002524, 22808816, 80928090, 90741678, 15993372,
//99117082, 49938176, 21755083, 86903426, 87830263, 53959980, 75758119,
//59781354, 58679691, 25666982, 56307643, 47180521, 62776522, 78136608,
//44882734, 90758589, 08075999, 66303819, 23480347, 11580163, 87080118,
//18329165, 92514163, 89404632, 92377859, 03912329, 17499963, 59699979,
//79876366, 63894807, 37857001, 86003935, 90087123, 29433345, 80298948,
//61531153, 61046319, 37839841, 19421134, 48747364, 35196916, 62484573,
//59907079, 36845702, 21631642, 72739317, 26283700, 80114017, 76639390,
//29154110, 35159758, 47788699, 11818851, 56520669, 36396767, 36031167,
//83817428, 10657376, 90076467, 14676452, 11024560, 16327605, 76048344,
//14444084, 95452011, 99612346, 65172562, 84813675, 88618282, 38704390,
//27998014, 63859011, 33787505, 60024611, 16229880, 13899299, 35240335,
//29173227, 45036451, 66177893, 82658333, 43100730, 44520187, 74290047,
//85013538, 09926730, 27724594, 95148523, 20503000, 64390907, 26006953,
//98116293, 97457666, 29017396, 04634371, 70791589,
//
//解析:做题以前需要先利用记事本替换功能把数据中的逗号全部替换为空格,把首部为零的数中的第一个零替换成非零的数(或则把所有的零都替换掉,不会影响最终值)
//
//C代码如下:

#include<stdio.h>
int main()
{
    FILE* fp, * fp1, * fp2;
    long long arry[400];
    long long arry1[400];
    long long arry2[400];
    long long arry3[400];
    long long number;
    int len1 = 0, len2 = 0, len3 = 0, len4 = 0;
    int i = 0, j = 0;
    int num = 0, num1 = 0;
    fp = fopen("A.txt", "r");//A文件 
    fp1 = fopen("B.txt", "r");//B文件 
    fp2 = fopen("C.txt", "r");//C文件 
    while (fscanf(fp, "%lld", &number) != EOF)//把A文件的数存储到arry数组 
    {
        arry[len1++] = number;
    }
    while (fscanf(fp1, "%lld", &number) != EOF)//把B文件的数存储到arry1数组 
    {
        arry1[len2++] = number;
    }
    while (fscanf(fp2, "%lld", &number) != EOF)//把C文件的数存储到arry2数组 
    {
        arry2[len3++] = number;
    }

    for (i = 0; i < len1; i++)
    {
        for (j = 0; j < len2; j++)
        {
            if (arry[i] == arry1[j])
            {
                arry3[len4++] = arry[i];//把A,B文件的相同的数存储到arry3数组 
                num++;//A,B共有个数 
            }
        }
    }
    for (i = 0; i < len4; i++)
    {
        for (j = 0; j < len3; j++)
        {
            if (arry3[i] == arry2[j])
            {
                num1++;
            }
        }
    }
    printf("%d", num - num1);//属于A,B但不属于C 
    fclose(fp);
    return 0;
}

4、

//基础练习 杨辉三角形
//
//问题描述
//
//杨辉三角形又称Pascal三角形,它的第i + 1行是(a + b)i的展开式的系数。
//
//它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。
//
//下面给出了杨辉三角形的前4行:
//
//1
//
//1 1
//
//1 2 1
//
//1 3 3 1
//
//给出n,输出它的前n行。
//输入格式
//
//输入包含一个数n。
//输出格式
//输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
//样例输入
//4
//样例输出
//1
//1 1
//1 2 1
//1 3 3 1
//数据规模与约定
//1 <= n <= 34。

#include<stdio.h>
#define N 35

int main()
{
	int i, j, n;
	int a[N][N];
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		for (j = 0; j <= i; j++)
		{
			a[i][j] = 1; //先把所有数字置1
		}
	}
	for (i = 2; i < n; i++)
	{
		for (j = 1; j < i; j++)
		{
			a[i][j] = a[i - 1][j - 1] + a[i - 1][j];//根据杨辉三角特性:下面的数等于上两数之和
		}
	}
	for (i = 0; i < n; i++)
	{
		for (j = 0; j <= i; j++) //只输出特定位置的数字(三角形)
		{
			printf("%d ", a[i][j]);
		}
		printf("\n");
	}
	return 0;
}

5、

//字符串对比问题描述
//给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:
//1:两个字符串长度不等。比如 Beijing 和 Hebei
//2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing
//3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满
//足情况2)。比如 beijing 和 BEIjing
//4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing
//编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。
//输入格式
//包括两行,每行都是一个字符串
//输出格式
//仅有一个数字,表明这两个字符串的关系编号
//样例输入
//BEIjing
//beiJing
//样例输出
//3
//* /
//分析:
//这题思想是比较简单的,没有什么弯弯绕绕的,只要一种一种情况的判断就好了。主要的是这里要调用几个函数,strlen, strcmp, strlwr(将大写字母转化为小写字母或者strupr(将小写字母转换成大写字母)。

#include <stdio.h>
#include <string.h>
    int main()
{
    char a[100], b[100];
    int l1, l2;
    gets_s(a);
    gets_s(b);
    l1 = strlen(a);
    l2 = strlen(b);
    if (l1 != l2)
        printf("1");
    else {
        if (strcmp(a, b) == 0)
            printf("2");
        else {
            strcpy(a, strlwr(a));
            strcpy(b, strlwr(b));
            if (strcmp(a, b) == 0)
                printf("3");
            else
                printf("4");

        }


    }
    return 0;

}

6、

//字母图形问题描述
//
//利用字母可以组成一些美丽的图形,下面给出了一个例子:
//
//ABCDEFG
//
//BABCDEF
//
//CBABCDE
//
//DCBABCD
//
//EDCBABC
//
//这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
//输入格式
//输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
//输出格式
//输出n行,每个m个字符,为你的图形。
//样例输入
//5 7
//样例输出
//ABCDEFG
//BABCDEF
//CBABCDE
//DCBABCD
//EDCBABC
//数据规模与约定
//
//1 <= n, m <= 26。

#include<stdio.h>

int main()
{
    int s1[26] = { 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' };
    int m, n, i, j, l, z = 0;
    n >= 0;
    m <= 26;
    scanf("%d %d", &n, &m);
    int s2[n][m];
    for (i = 0; i < n; i++)
    {
        l = i;
        for (j = 0; j < m; j++)
        {
            if (l > 0)
            {
                printf("%c", s2[i][j] = s1[i - j]);
                l--;
            }
            else
            {
                printf("%c", s2[i][j] = s1[z]);
                z++;
            }
        }
        z = 0;
        printf("\n");
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值