废话不多说,直接上代码。主要用c++实现,不过有的也会有c和c++混着用的情况。
#include#include #include #include #include using namespace std; //求100以内能被17整除的最大自然数 void Q1() { int i = 100; for (; i > 0; i--) { if (i % 17 == 0) { cout << i << endl; return; } } } //已知a,b,c都是1位整数,求abc+cba=1333时的abc void Q2() { for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { for (int k = 0; k < 10; k++) { if ((i * 100 + j * 10 + k) + (k * 100 + j * 10 + i) == 1333) { cout << i << j << k << endl; return; } } } } } //200到400之间不能被3整除的整数的和 void Q3() { int sum = 0; for (int i = 200; i < 401; i++) { if (i % 3 != 0) { cout << i << " "; sum += i; } } cout << sum << endl; } //输入10个数字,统计非负数的个数,计算非负数的和 void Q4(int a[],int len) { int sum = 0; int count = 0; for (int i = 0; i < len; i++) { if (a[i] < 0) { count++; sum += a[i]; } } cout << "非负数有" << count << "个,其和为:" << sum << endl; //测试函数如下 } //100以内自然偶数和 void Q5() { int sum = 0; for (int i = 0; i < 100; i++) { if (i % 2 == 0) { cout << i << " "; sum += i; } } cout << sum << endl; } //五个数求和并输出 void Q6(int a[]) { int sum = 0; for (int i = 0; i < 5; i++) { sum += a[i]; } cout << sum << endl; } //求1到101每三个一乘的和 1*2*3+3*4*5+....+99*100*101 void Q7() { int sum = 0; for (int i = 1; i <= 99; i+=2) { cout << i << "*" << i + 1 << "*" << i + 2; if (i != 99) cout << "+"; else cout << "="; sum += i * (i + 1) * (i + 2); } cout << sum << endl; } //字符串中的所有字符a用*代替 void Q8(char s[]) { int i = 0; while (s[i]!=' ') { if (s[i] == 'a') { s[i] = '*'; } i++; } } //数组[1,2,3,4,5]逆序 void Q9Reverse(int a[], int len) { int temp=0; for (int i = 0; i < len / 2; i++) { temp = a[i]; a[i] = a[len - 1 - i]; a[len - 1 - i] = temp; } } //第十题丢失 //判断输入正负、奇偶,正数输出z;负数f;偶数o,奇数j void Q11() { int a; cin >> a; if (a % 2 == 0) cout << "o" << endl; else cout << "j" << endl; if (a >= 0) cout << "z" << endl; else cout << "f" << endl; } //1-200之间不能被5整除的整数和 void Q12() { int sum = 0; for (int i = 0; i <= 200; i++) { if (i % 5 != 0) { cout << i << " "; sum += i; } } cout << endl; cout << sum; } //输入n,a,计算a+aa+aaa+....+aaaaaa(n个a) void Q13() { int n, a; int temp; cin >> n >> a; temp = a; int sum = 0; for (int i = 1; i <= n; i++) { cout << temp<< " "; sum += temp; temp = pow(10, i) * a + temp; } cout << endl; cout << sum; } //求五个数的最大值和平均值 void Q14() { int a[] = { 15,231,25,654,33 }; int max = 0; double sum = 0; for (int i = 0; i < 5; i++) { if (a[i] > max) max = a[i]; sum += a[i]; } cout << "最大值:" << max << ",平均值:" << sum / 5 << endl; } //输出200-400能被3整除且个位是6的 void Q15() { for (int i = 200; i <= 400; i++) { if ((i % 3 == 0) && (i % 10 == 6)) { cout << i << " "; } } cout << endl; } //去掉字符串之中的'a' void Q16() { //真的去掉 char s[] = "aaaaacjdalksbaaa"; int len = strlen(s); char* s1 = new char; int i = 0; int j = 0; while (s[i]) { if (s[i] != 'a') { s1[j++] = s[i]; } i++; } s1[j] = ' '; cout << s1 << endl; //假的去掉 i = 0; while (s[i]) { if (s[i] != 'a') cout << s[i]; i++; } } //200-400之间不能被7整除的整数和 void Q17() { int sum = 0; for (int i = 200; i <= 400; i++) { if (i % 7 != 0) { cout << i << " "; sum += i; } } cout << endl; cout << sum << endl; } //200-400之间不能被5整除的整数和 void Q18() { int sum = 0; for (int i = 200; i <= 400; i++) { if (i % 5 != 0) { cout << i << " "; sum += i; } } cout << endl; cout << sum << endl; } //统计十个数中非正数的个数及正数的和 void Q19() { int count = 0; int sum = 0; int a[] = { 1,-23,4,-1,5,-52,1,5,6,7 }; for (int i = 0; i < 10; i++) { if (a[i] <= 0) { count++; sum += a[i]; } } cout << "非正数有:" << count << "个,和为:" << sum << endl; } //字符串中大写字母变小写字母 void Q20() { char s1[] = "AaBbCcDd"; char index = 'A' - 'a'; int i = 0; while (s1[i]) { if (s1[i] >= 'A' && s1[i] <= 'Z') { s1[i] -= index; } i++; } cout << s1 << endl; } //打印所有水仙花数 void Q21() { int a, b, c; for (int i = 100; i < 1000; i++) { a = i % 10; b = i / 10 % 10; c = i / 100 % 10; if (pow(a, 3) + pow(b, 3) + pow(c, 3) == i) { cout << i << endl; } } } //100米自由落下的球,每次反弹原来高度一半,求第十次共经过多少米,反弹多高 void Q22() { double sum =0; double height = 100; for (int i = 0; i < 10; i++) { sum += height; height /= 2; sum += height; cout << "总路程:" << sum << "反弹高度:" << height << endl; } } //输出0-200能被3整除且个位是6的 void Q23() { for (int i = 0; i <= 200; i++) { if ((i % 3 == 0) && (i % 10 == 6)) { cout << i << " "; } } cout << endl; } //计算一个数的阶乘 int Q24(int n) { if (n == 1) return 1; else return n * Q24(n - 1); } //判断从键盘输入的字符中数字的个数,大写字母的个数,小写字母的个数,其他字符的个数 / void Q26() { int width; for (int i = 0; i < 5; i++) { width = 4 - i; while (width--) cout << " "; cout << "****" << endl; } } //数组实现字符串逆序输出 void Q27() { char s1[] = "I love China"; for (int i = strlen(s1); i >= 0; i--) { cout << s1[i]; } } //求1-1/2+1/3-1/4......+1/99-1/100 void Q28() { double sum = 0; double n = 1; double a = 1; for (int i = 1; i <= 100; i++) { a = pow(-1, i - 1) * (1 / n); sum += a; n++; } cout << endl; cout << sum << endl; } //3个学生4门课成绩,输出每个学生总分和平均分并输出,保留一位小数 void Q29() { int a1[] = { 60,70,65,75 }; int a2[] = { 75,80,75,90 }; int a3[] = { 95,75,90,65 }; double sum1=0, sum2=0, sum3=0; for (int i = 0; i < 4; i++) { sum1 += a1[i]; sum2 += a2[i]; sum3 += a3[i]; } cout << "总分为:" << sum1 << "," << sum2 << "," << sum3 << "," << endl; printf("平均分为:%.1f,%.1f,%.1f", sum1 / 4, sum2 / 4, sum3 / 4); } //求两个正整数的最大公约数 void Q30() { int a = 50, b = 75; if (a < b) { int temp = a; a = b; b = temp; } for (int i = b; i >= 1; i--) { if (b % i == 0 && a % i == 0) { cout << "最大公约数为:" << i << endl; return; } } } //100以内自然奇数之和 void Q31() { int sum = 0; for (int i = 1; i <= 100; i++) { if (i % 2 != 0) { cout << i << " "; sum += i; } } cout << sum << endl; } //200到400之间能被3整除且个位是7的整数 void Q32() { for (int i = 200; i <= 400; i++) { if (i % 3 == 0 && i % 10 == 7) { cout << i << endl; } } } //计算1*2*3+4*5*6+...+97*98*99 void Q33() { int sum = 0; for (int i = 1; i <= 97; i += 3) { sum += i * (i + 1) * (i + 2); if(i!=97) cout << i << "*" << i + 1 << "*" << i + 2<<"+"; else cout << i << "*" << i + 1 << "*" << i + 2 << "="; } cout << sum << endl; } //输入n,输出1*1+2*2+3*3+4*4+...+n*n,要求编写函数求平方 int MyPow(int a) { return a * a; } void Q34(int n) { int sum = 0; for (int i = 0; i < n; i++) { sum += MyPow(i + 1); } cout << sum << endl; } //1-200不能被3整除的整数和 void Q35() { int sum = 0; for (int i = 1; i <= 200; i++) { if (i % 3 != 0) { sum += i; } } cout << sum << endl; } //36题和29题重复 //输入华氏温度输出摄氏温度(保留两位) void Q37(double f) { double c; c = (5.0 / 9.0) * (f - 32); cout << setiosflags(ios::fixed)< = b ? (a >= c ? a : c) : (b >= c ? b : c)) << " "; cout << (a >= b ? (a >= c ? c : a) : (b >= c ? c : b)) << " "; cout << (a <= b ? (a <= c ? a : c) : (b <= c ? b : c)) << endl; } //1元兑换5分,2分,1分共50个,每种硬币最少一枚,问共有多少种方案?每种方案中三种 //硬币的数量 void Q39() { int count = 0; for (int i = 1; i < 20; i++) { for (int j = 1; j < 50; j++) { for (int k = 1; k < 100; k++) { if (i * 5 + j * 2 + k == 100&&i+j+k==50) { count++; cout << "5分" << i << "个,2分" << j << "个,1分" << k << "个" << endl; } } } } cout << "共" << count << "种方案" << endl; } //输入园半径,计算面积周长,保留两位 void Q40(double r) { double length, area; area = r * r * 3.14159265358979323846264338; length = 2 * 3.14159265358979323846264338 * r; cout << setiosflags(ios::fixed) << setprecision(2) <<"面积:" << area << ",周长:" << length << endl; } //输入字符串,整数m,n,输出字符串从m开始的n位 void Q41() { char s[] = "abcdefg"; int m = 2; int n = 3; while (n--) { cout << s[m - 1]; m++; } } //输入一个不多于5位的正整数,判断它是几位数字并且逆序输出 void Q42(int n) { int temp; if (n / 10000 != 0) { cout << "这是一个五位数" << endl; for (int i = 0; i < 5; i++) { temp = n / pow(10, i); temp %= 10; cout << temp << " "; } } else if (n / 1000 != 0) { cout << "这是一个四位数" << endl; for (int i = 0; i < 4; i++) { temp = n / pow(10, i); temp %= 10; cout << temp << " "; } } else if (n / 100 != 0) { cout << "这是一个三位数" << endl; for (int i = 0; i < 3; i++) { temp = n / pow(10, i); temp %= 10; cout << temp << " "; } } else if (n / 10 != 0) { cout << "这是一个两位数" << endl; for (int i = 0; i < 2; i++) { temp = n / pow(10, i); temp %= 10; cout << temp << " "; } } else { cout << "这是一个个位数" << endl; cout << n << endl; } } //输出Fibonacci的前40项 int Q43(int n) { if (n == 1 || n == 2) return 1; else return Q43(n - 1) + Q43(n - 2); } //判断是否闰年 void Q44(int year) { if (year % 400 == 0) { cout << "yes" << endl; } else if (year % 4 && year % 100 != 0) { cout << "yes" << endl; } else cout << "no" << endl; } //冒泡排序10个数字 太简单了不写 //判断是否素数 void Q46(int n) { if (n == 1 || n == 2) { cout << "yes" << endl; } else { for (int i = 2; i < n; i++) { if (n % i == 0) { cout << "no" << endl; return; } } cout << "yes" << endl; } } //计算1!+2!+...+10! void Q47() { //24题写过计算阶乘的方法,直接调用 long long sum = 0; for (int i = 1; i <= 10; i++) { sum += Q24(i); } cout << sum << endl; } //求前15项 1/2 3/2 5/3 8/5 的和 void Q48() { int i = 2; int j = 1; int temp=0; double sum=0; for (int k = 0; k < 15; k++) { sum += i / j; temp = i; i += j; j = temp; } cout << sum << endl; } //输入圆柱体的高和底面半径,计算表面积体积,保留两位 void Q49(double height, double r) { double area=2*3.1415926*r*r+3.1415926*2*r*height; double volume = 3.1415926 * r * r * height; printf("面积为%.2lf㎡,体积为%.2lfm³。", area, volume); } //输入十进制整数,计算各位数字之和 void Q50(int n) { int count = 0; int sum=0; int temp=n; while (temp) { count++; temp /= 10; }//获取n的位数 for (int i = 0; i < count; i++) { temp = n / pow(10, i); temp %= 10; sum += temp; } cout << sum << endl; } //51题丢失 //判断字符串是不是回文(正着读和反着读一样) void Q52() { string s = "abcdba"; int len = s.length(); for (int i = 0; i < len / 2; i++) { if (s[i] != s[len - 1 - i]) { cout << "不是" << endl; return; } } cout << "是" << endl; } //删除字符串中的数字 void Q53() { string s = "sssabc12138jjkh"; int i = 0; while (s[i]) { if (!(s[i] >= '0' && s[i] <= '9')) { cout << s[i]; } i++; } } int main() { cout << "Hello World!" << endl; return 0; }



