[题目] 定义一个类EXAM1,用于在一个指定的范围内查找能被3整除且十位数字是5的所有整数,
统计满足条件之整数的个数,并输出它们。 [编程要求]
(1)私有数据成员。
int low,up:存放给定整数范围的下限和上限。 int a[100]:存放满足条件的整数。
int count:存放满足条件的整数的个数。 (2)公有成员函数。
EXAM1(int t1, int t2):构造函数,用t1和t2初始化low和up,同时初始化count。 void fun( ):求满足条件的整数,并依次放入数组a。
void show( ):输出查找范围、满足条件的整数及其个数,每行输出5个整数。 (3)在主函数中定义一个EXAM1类的对象p,给定的查找范围为[100,500]。 通过对象p调用成员函数实现查找及输出。本题正确的输出结果为 count=14 150 153 156 159 252 255 258 351 354 357 450 453 456 459
*******************************************/
#include
#include class EXAM1 { int low,up; int a[100]; int count; public: EXAM1(int t1,int t2) { low=t1; up=t2; count=0; } void fun(); void show(); };
void EXAM1::fun() { /********** Begin **********/ /********** End ***********/ }
void EXAM1::show() { cout<<"count="< cout< void main() { EXAM1 p1(100,500); p1.fun(); p1.show(); }
【参考代码】
for(int i=low;i<=up;i++) if(!(i%3) &;&; (i%100/10==5)) a[count++]=i;
/*程序填空(12分),每空3分,共4个空。
[题目]编程实现:s=a+aa+aaa+...+aaa...aaa的值,其中a是1~9之间的某个数字,n是一个正整数。
a和n的值要求从键盘上输入。
例如:若a=2,n=5,则s=2+22+222+2222+22222=24690 */
#include "iostream.h" #include "stdio.h" void main()
{ int n,a,s,i,t; t=0;
/**********FILL**********/ cout<<"请输入a和n的值"; /**********FILL**********/
/**********FILL**********/ { t=t*10+a;
/**********FILL**********/ } cout<<"s="< 【参考答案】 s=0;
【参考答案】
cin>>a>>n; cin>>a; cin>>n; 【参考答案】
for( i=1;i<=n;i++) for(i=0;i /********************************************************************** [题目]编程将两个字符串连接成一个字符串,并将连接后的字符串按升序排列。
如字符串s1的值为"pear",字符串s2的值是"apple",连接后的字符串存入字符数组s3,排序后得到"aaeelpppr"。 [编程要求]
试建立一个类STRING,实现将两个成员数组(str1和str2)中的字符串连接成一个字符串,
并将连接后的字符串按升序排列存入成员数组str3中。如str1中字符串"pear",str2中存字符串"apple",
连接并排序后存入成员数组str3中的字符串为"aaeelpppr"。 具体要求如下:
(1)私有数据成员。 char str1[100]; char str2[100]; char str3[100];
(2)公有成员函数
STRING(char ch1[],char ch2[]):构造函数,用分别参数ch1数组初始化私有成员str1数组,参数ch2数组初始化私有成员str2数组;
void process():实现把成员数组str1和str2连接,并把连接后的字符串按升序排列后存入成员数组str3中;
void show():输出成员数组str3;
(3)在主函数中完成对该类的测试。定义一个STRING类的对象s;
分别用"pear"初始化对象s1中的成员数组str1,用"apple"初始化成员数组str2,按上述要求处理并输出结果
**********************************************************************/
#include #include #include
class STRING {
char str1[100]; char str2[100];
char str3[100]; public: STRING(char ch1[],char ch2[]) {
strcpy(str1,ch1); strcpy(str2,ch2); }
void process() { /********** Begin **********/ /********** End ***********/ }
void show() { cout< void main() {
STRING s("pear","apple"); s.process();
s.show(); }
【参考代码】 strcpy(str3,str1); strcat(str3,str2); int n;
char t; n=strlen(str3);
for(int i=0;i for(int j=i+1;j if(str3[j] /*程序填空(满分12分),每空3分,共4个空。 [题目]求满足指定条件的所有三位整数: (1)该三位整数是某一个二位数的平方;
(2)该三位数的个位、十位和百位数各不相同。 要求:每行输出五个符合以上条件的数。 */
#include
/**********FILL**********/ void main() { int i,j,n,a,b,c;
/**********FILL**********/ for(i=100;i<1000;i++) {
a=i%10;
/**********FILL**********/ c=i/100; if(a!=b&;&;a!=c&;&;b!=c) for(j=10;j<=sqrt(999);j++) {
/**********FILL**********/ { cout< 【参考答案】 #include 【参考答案】 n=0;
【参考答案】 b=i/10%10; b=i%100/10 【参考答案】 if(i==j*j) if(j*j==i)
[题目] 求取值范围内所有满足条件的x,使得x的每位数字的立方和与本身相等。 [编程要求]
试建立一个类DIF,完成求出某个范围内的所有满足条件的x,以及x的个数。 具体要求如下:
(1)私有数据成员。
int low,high:x的取值范围的下限和上限。 int a[100]:存放满足要求的x. int count:满足条件的x的个数。 (2)公有成员函数
DIF(int lw,int hi):构造函数,用参数lw和hi分别初始化low和high。缺省的取值范围是[10,1000]。 int isdiff(int x):判断参数x是否为水仙花数,若是返回1,若不是返回0。
void process():求出满足条件的所有x,并将结果存入数组a,同时统计x的个数。 void show():输出数组a及count。
(3)在主函数中完成对该类的测试。定义一个DIF类的对象v,使用100和999初始化其下限和上限,按上述要求处理并输出结果。
*******************************************/
#include #include
class DIF {
int low,high; int a[100]; int count; public: DIF(int lw=10,int hi=1000) {low=lw;high=hi;} int isdiff(int x) { /********** Begin **********/ /********** End **********/ } void process() { count=0; for(int x=low;x<=high;x++) { if(isdiff(x)) a[count++]=x; } } void show() { for(int i=0;i float income,pay;
cout<<"请输入收入";
/**********FILL**********/ n= income/400; switch(n) { case 0:
/**********FILL**********/ case 1: case 2: pay=(income-800)*0.05;break; case 3:
/**********FILL**********/ case 4: //此行填写 /**********FILL**********/ default: //此行填写 } cout<<"yay="< 【参考答案】 cin>>income;
pay=0;break;
pay=400*0.05+(income-1200)*0.08;break; pay=(income-1200)*0.08+400*0.05;break; pay=20+(income-1200)*0.08;break; pay=(income-1200)*0.08+20;break;
/*******************************************
[题目] 建立一个类NUM,求指定数据范围内的所有素数(质数)。提示:素数的定义是"只能被1和它本身整除的整数",