文章目录
第十单元-日考
1.字符串分割
①请按照要求输入一段话(英文)
②要求每个单词之间用空格分开
③要求可以识别单词的长度
④最后可以正确求出最长的单词长度并显示
⑤要求在主函数里实现
void test1(){
string str = "abc aaaaaa b";
string arr[10]; //{'abc','aaaaaa','b'}
int k = 0;
for(int i = 0;i<str.size();i++){
if(str[i] !=' '){
arr[k]+=str[i];
} else{
k++;
}
}
int max = 0;
for(int i = 0;i<k+1;i++){
if(max < arr[i].length()){
max = arr[i].length();
}
}
cout << max << endl;
}
2.公式:abcd*e=dcba
①请编写十进制数,a,b,c,d,e
②要求满足公式abcd*e=dcba(a非0,e非0非1)
③问可以求出多少个?
④要求输出最小的abcd
⑤输出与之相应的e。
void test10_2(){
int min = 10000; //存最小的数字
int num = 0; //计数
int e1 = 0; //保存最小数字对应的e
for(int i = 1000;i<=9999;i++){
int a = i/1000%10; //千位
int b = i/100%10; //百位
int c = i/10%10; //十位
int d = i%10; //个位
for(int e = 2;e<10;e++){
if(i*e == d*1000+c*100+b*10+a){
if(min > i){
min = i;
e1=e;
}
num++;
}
}
}
cout << min << endl;
cout<< "个数:" << num << endl;
cout<< "e:" << e1 << endl;
}
3.编一个函数GCD,求两个无符号整数的最大公约数。主函数输入两个正整数 m 和n,调用GCD,求出 m和n的最大公约数和最小公倍数.并输出。
①头文件导入正确
②正确定义函数
③在主函数中调用函数
④最大公约数和最小公倍数输出正确
⑤合理注释
void test10_3_2(){
int m = 3;
int n = 2;
int min = (m>n)?n:m; //有可能最小的这个数字是最大公约数
for(int i = min;i>=1;i--){
if(m%i == 0 && n%i == 0){
cout << "最大公约数:" << i << endl;
cout << "最小公倍数:" <<m*n/i << endl;
break;
}
}
}
5.一个人花8块钱买了一n只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11块卖给另外一个人。
①在主函数中输出
②正确导包
③请问他挣了还是赔了 挣了输出1 赔了输出0
④如果挣了,请问挣了多少钱
⑤代码规范
⑥合理注释
void test10_3_1(){
int n = 9+11-8-10;
if(n > 0){
cout << 1;
} else
cout << 0;
}
6.有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?
①导入正确包
②假如兔子都不死,问每个月的兔子总数为多少
③正确输出,代码思路清晰
④加入必要注释
int f(int n){
if(n == 1 || n==2){
return 1;
} else
{
return f(n-1)+f(n-2);
}
}
int main(){
for(int n = 1;n<=12;n++){
cout << f(n)<< endl;
}
}