C++试题.doc_第1页
C++试题.doc_第2页
C++试题.doc_第3页
C++试题.doc_第4页
C++试题.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模拟题一:()实验题目一:求 100 999 之间所有各位数字的立方和等于 1099 的整数。假定求出三个符合要求的数 A 、 B 、 C ,则计算 (A+B+C)/3 。并按下面格式输出:(A+B+C)/3= 结果值(二)实验题目二:定义 5 5 二维数组,找出第 m 行中元素的最大值,并输出最大值元素以及所在的列号。找出第n 列中元素的最小值,并输出最小值元素以及所在的行号。(m和n均在15之间)(三)实验题目三:编写一个函数,将某个字符串中所有非字母和数字字符均用*替代。例如:字符串“ I am a gentlman_18! ”,形成字符串为“I*am*a*gentlman*18* ”其原型为 : char *mycode(char *string); 其中参数 string 为字符串,返回值为指向 string 的指针。并编出主函数进行验证。(四)实验题目四:定义勾股数类triangle,实际上就是直角三角形类,应有两个构造函数(即triangle()和triangle(int,int int) )、计算面积函数、勾股数输出函数(即输出a*a+b*b=c*c)、运算符+重载函数(注意:对应边相加,仍然形成直角三角形),判相等=重载函数。(五)实验题目五:编写一个程序,可以读入一个数据文件s_data中以NN二维数组排列的数据(N不小于3),将二维数组置逆,然后写入另一个文件t_data中。假设s_data文件中数据如下:45 87 32 34 54 56 76 78 46 78 87 23 12 32 44 56 则t_data文件中的数据如下:45 54 46 12 87 56 78 32 32 76 87 44 34 78 23 56 模拟题二:()实验题目一:计算奖金。企业利润 I 低于 5000 元,奖金为利润的;当 5000 I10000, 超过 5000 元部分奖金为 . ( 5000 元以下的仍按);当 10000 I20000 元,除 10000 以下的按上述方法计算外,超过 10000 元部分按计算奖金;当 20000 I50000 元,超过 20000 元部分按 . 计算奖金;当 I 50000 元时,超过 50000 元部分按 3.5 计算奖金。 I 由键盘输入,要求打印出相应的奖金数。评分标准:该题共 20 分。( 1 )程序能检查输入的数据 I 的正确性,当输入负数时,程序能显示 “ 输入错误 ” ( 5 分);( 2 )奖金计算正确( 10 分);( 3 )输出奖金数格式正确,即使计算结果错误也得分( 5 分)(二)实验题目二:找出从 1001 开始的 50 个素数,并求出 50 个素数的平均数。所谓素数,指该数只有 1 和其本身两个约数,再无别的约数。程序中应包含判一个整数是否为素数的函数。评分标准:(1) 判素数函数定义正确( 8 分)(2) 控制结构运用合理( 8 分)(3) 输出格式清楚,结果正确。( 4 分)(三)实验题目三:编写一个字符串处理函数,函数原型为: void PString(char *str, char *str1, char *str2) ,其功能是将字符串 str 中的所有奇数字符复制到 str1 中,偶数字符复制到 str2 中。编写主函数,从键盘输入一个字符串(可以带空格)进行测试(请使用指针操作)。评分标准:(1) 输入带空格字符串正确( 8 分)(2) 奇数字符串和偶数字符串分离正确( 8 分)(3) 主函数测试输出格式清楚,结果正确。( 4 分)(四)实验题目四:从文件 mytest.txt (自己编写生成这个文本文件)读出全部内容,统计其中的单词 ( 以空格或n为单词分隔符 ) 个数,并打印单词个数及总文件长度。评分标准:该题共 20 分。( 1 )文件打开关闭正确( 5 分);( 2 )能够从文件中读取数据,并进行统计( 10 分);( 3 )计算结果正确( 5 分)。(五)实验题目五:定义一个空心圆形球体类,要求该类包含构造函数、能计算球体容积函数、总体积函数、外面积函数和内面积函数。编写主函数加以测试。评分标准:该题共 20 分。( 1 )类数据成员定义正确( 5 分);( 2 )各种计算函数编写正确( 10 分);( 3 )测试函数编写正确( 5 分)。模拟题三:()实验题目一:输入任意 3 个大小不等的三位正整数,按如下条件形成一个新的三位数:该数的最高位为 3 个正整数中最大数的百位数字,最低位为 3 个正整数中最小数的个位数字,中间数位为 3 个正整数中剩下数的十位数字。例如输入: 123 , 345 , 259 ;输出结果: 353 。评分标准:(1) 三个正整数输入正确( 5 分)(2) 算法功能正确,控制结构运用合理( 10 分)(3) 输出格式清楚,结果正确。( 5 分)(二)实验题目二:编写函数: int count(int m); 该函数完成如下功能:输入一个整数 m ,统计并返回 m 左端连续相同数字的个数。如: 2220511 左端连续相同数字 2 的个数是 3 ; -923000 左端连续相同数字 9 的个数是 1 。编写主程序,测试该函数。评分标准:(1) 程序框架完整,代码规范( 5 分)(2) 数据类型、程序控制结构使用正确( 5 分)(3) 函数的定义和调用方法正确( 5 分)(4) 算法正确,清晰合理,运行结果正确( 5 分)(三)实验题目三:编写算术表达式分析计算程序,输入字符串: “ 168+314 ”,分析后,按表达式计算结果,并按如下格式输出: 168+314=482 。运算符号仅限于 + 、 - 、 * 、 / 、 % 。提示:将运算两边的数字字符串分离,然后调用标准函数 int atoi(char *p) ,将数字符串转换为整数, atoi() 函数在 stdlib.h 中。1 )数据类型使用正确( 5 分)2 )算法正确,清晰合理( 10 分)3 )输入和输出格式正确( 5 分)(四)实验题目四:编写一个程序,将以下的杨辉三角形写到文件 yanghui.txt 中。1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 评分标准:该题共 20 分。( 1 )程序开始执行时显示 “ Please enter a integer: ” ,开始输入任意的整数 n ,程序能正确接受该数值( 5 分);( 2 )文件打开正确( 5 分);( 3 )能够正确计算每一项杨辉三角形的数据( 5 分);( 4 )能够以上述格式输出计算结果到文件中,要求分行输出( 5 分)。(五)实验题目五:定义一个整数向量类(即整数数组类),要求有构造函数、运算符 + 重载函数、输出向量中的所有元素值函数。并编写主函数加以测试。评分标准:该题共 20 分。( 1 )类中数据成员定义正确( 5 分);( 2 )类中成员函数定义正确( 10 分);( 3 )主函数测试输出结果正确( 5 分)。参考答案:以下按我实验报告中间部分格式给出:模拟题一:()实验题目一:求 100 999 之间所有各位数字的立方和等于 1099 的整数。假定求出三个符合要求的数 A 、 B 、 C ,则计算 (A+B+C)/3 。并按下面格式输出:(A+B+C)/3= 结果值1.要点分析2.程序源代码#includeusing namespace std;int main()int a,i,j,k,jieji9,num(0),p,sum(0);for(a=100;a1000;a+) i=a/100; j=a%100/10; k=a%10; if(i*i*i+j*j*j+k*k*k=1099) jiejinum=a; num=num+1; cout(;for(p=0;pnum-1;p+)coutjiejip+;sum=sum+jiejip;sum=sum+jiejip;coutjiejip)/num=double(sum)/double(num)endl;return 0;3.实验结果(二)实验题目二:定义 5 5 二维数组,找出第 m 行中元素的最大值,并输出最大值元素以及所在的列号。找出第n 列中元素的最小值,并输出最小值元素以及所在的行号。(m和n均在15之间) 1要点分析2程序源代码#include#includeusing namespace std;int main() double array55;cout请按行一个一个元素输入这个数组:endl;for(int i=0;i5;i+)for(int j=0;jarrayij;cout5*5数组为:endl;for(int i=0;i5;i+)for(int j=0;j5;j+)coutarrayijt;coutendl;double max,min;char ru4; cout您需要m=?或n=?ru;int i,j,jilu;while(strcmp(ru,end)if(ru0=m)i=ru2-0;max=arrayi0;jilu=0;cout第i+1行;for(j=0;jmax)max=arrayij;jilu=j;cout的最大值:max所在列号:jilu+1endl; if(ru0=n)j=ru2-0;min=array0j;jilu=0;cout第j+1列;for(i=0;i5;i+)if(arrayijmin)min=arrayij;jilu=i;cout的最小值:min所在行号:jilu+1ru;return 0;3实验结果(三)实验题目三:编写一个函数,将某个字符串中所有非字母和数字字符均用*替代。例如:字符串“ I am a gentlman_18! ”,形成字符串为“I*am*a*gentlman*18* ”其原型为 : char *mycode(char *string); 其中参数 string 为字符串,返回值为指向 string 的指针。并编出主函数进行验证。1要点分析2程序源代码#include#includeusing namespace std;char *mycode(char *ptr); int main()char *ptr=new char40;cout请输入待处理字符串:endl;cin.get(ptr,40);cout处理后字符串为:mycode(ptr)endl;delete ptr;return 0;char *mycode(char *ptr)int num=strlen(ptr);for(int i=0;i=0&ptri=a&ptri=A&ptri=Z)ptri=ptri;elseptri=*;return ptr;3实验结果(四)实验题目四:定义勾股数类triangle,实际上就是直角三角形类,应有两个构造函数(即triangle()和triangle(int,int int) )、计算面积函数、勾股数输出函数(即输出a*a+b*b=c*c)、运算符+重载函数(注意:对应边相加,仍然形成直角三角形),判相等=重载函数。1要点分析2程序源代码#includeusing namespace std;class triangleprivate:int b1,b2,b3;public:int panduan(int a,int b,int c)if(a*a+b*b!=c*c)return 0;return 1;triangle()b1=3;b2=4;b3=5;triangle(int a,int b,int c)if(panduan(a,b,c)=1)b1=a;b2=b;b3=c;elsecout它不是一个直角三角形的三条边,以默认值输入!endl;b1=3;b2=4;b3=5;int area()return b1*b2;void out()coutb1*b1+b2*b2=b3*b3endl;triangle operator +(triangle b)b1=b1+b.b1;b2=b2+b.b2;b3=b3+b.b3;if(panduan(b1,b2,b3)=1)b1=b1;b2=b2;b3=b3;elsecout它不是一个直角三角形的三条边,以默认值输入!endl;triangle();return *this;int operator =(triangle b)if(b1!=b.b1|b2!=b.b2|b3!=b.b3)return 0;return 1;int main()cout先以,8,9为边输入:endl;triangle triangle1(7,8,9);cout面积是:triangle1.area()endl;triangle1.out();cout现以正确输入,12,13进行:endl;triangle triangle2(5,12,13);cout面积是:triangle2.area()endl;triangle2.out();cout把它赋给另一个对象并判相等:endl; triangle triangle3=triangle2;if(triangle3=triangle2)cout它们一致。endl;elsecout他们不一致。endl;cout加法,两者(自身)相加后:endl;triangle2+triangle3;cout面积是:triangle2.area()endl;triangle2.out();return 0;3实验结果(五)实验题目五:编写一个程序,可以读入一个数据文件s_data中以NN二维数组排列的数据(N不小于3),将二维数组置逆,然后写入另一个文件t_data中。假设s_data文件中数据如下:45 87 32 34 54 56 76 78 46 78 87 23 12 32 44 56 则t_data文件中的数据如下:45 54 46 12 87 56 78 32 32 76 87 44 34 78 23 56 1要点分析 2程序源代码#include#includeusing namespace std;int main()char name11;coutPlease input file name:name;ifstream in(name);if(!in)cout文件打开失败!endl;return 1;ofstream out(t_date.txt);if(!out)cout文件创建失败!endl;return 1;int num,i,j;char m;int array44;for(i=0;i4;i+)for(j=0;jnum;arrayij=num;for(i=0;i4;i+)for(j=i+1;j4;j+)int tmp=arrayij;arrayij=arrayji;arrayji=tmp;for(i=0;i4;i+)for(j=0;j4;j+) outarrayij ;outn;in.close();out.close();return 0;3实验结果我是分界线模拟题二:()实验题目一:计算奖金。企业利润 I 低于 5000 元,奖金为利润的;当 5000 I10000, 超过 5000 元部分奖金为 . ( 5000 元以下的仍按);当 10000 I20000 元,除 10000 以下的按上述方法计算外,超过 10000 元部分按计算奖金;当 20000 I50000 元,超过 20000 元部分按 . 计算奖金;当 I 50000 元时,超过 50000 元部分按 3.5 计算奖金。 I 由键盘输入,要求打印出相应的奖金数。评分标准:该题共 20 分。( 1 )程序能检查输入的数据 I 的正确性,当输入负数时,程序能显示 “ 输入错误 ” ( 5 分);( 2 )奖金计算正确( 10 分);( 3 )输出奖金数格式正确,即使计算结果错误也得分( 5 分)1.要点分析2.程序源代码#includeusing namespace std;double jiangjin(double lirun)double step1,step2,step3,step4,step5;if(lirun=5000)step1=lirun;step2=step3=step4=step5=0;else if(lirun=10000)step1=5000;step2=lirun-5000;step3=step4=step5=0;else if(lirun=20000)step1=step2=5000;step3=lirun-10000;step4=step5=0;else if(lirun=50000)step1=step2=5000;step3=10000;step4=lirun-20000;step5=0;elsestep1=step2=5000;step3=10000;step4=30000;step5=lirun-50000;double y;y=step1*0.01+step2*0.015+step3*0.02+step4*0.025+step5*0.035;return y;int main()double lirun;cout请输入利润:lirun;while(lirun0)cout输入错误!lirun; cout相应奖金是:jiangjin(lirun)元。endl;return 0;3.实验结果(二)实验题目二:找出从 1001 开始的 50 个素数,并求出 50 个素数的平均数。所谓素数,指该数只有 1 和其本身两个约数,再无别的约数。程序中应包含判一个整数是否为素数的函数。评分标准:(1) 判素数函数定义正确( 8 分)(2) 控制结构运用合理( 8 分)(3) 输出格式清楚,结果正确。( 4 分) 1要点分析2程序源代码#includeusing namespace std;int pansu(int a) for(int i=2;ia/2;i+)int b=a%i;if(b=0)return 0;return a;int main()int su50,p(0),pingjun(0);for(int a=1001;p50;a+)if(pansu(a)!=0)sup=a;p+;cout1001起50个素数是:endl;for(int i=0;i50;i+)pingjun=pingjun+sui;coutsuit;pingjun=pingjun/50;coutn它们的平均数是:pingjunendl;return 0;3实验结果(三)实验题目三:编写一个字符串处理函数,函数原型为: void PString(char *str, char *str1, char *str2) ,其功能是将字符串 str 中的所有奇数字符复制到 str1 中,偶数字符复制到 str2 中。编写主函数,从键盘输入一个字符串(可以带空格)进行测试(请使用指针操作)。评分标准:(1) 输入带空格字符串正确( 8 分)(2) 奇数字符串和偶数字符串分离正确( 8 分)(3) 主函数测试输出格式清楚,结果正确。( 4 分)1要点分析2程序源代码#include#includeusing namespace std;void PString(char *str, char *str1, char *str2)int length=strlen(str);int p=0,i;for(i=0;ilength;i=i+2)str1p=stri;p=p+1;str1p=0;p=0;for(i=1;ilength;i=i+2)str2p=stri;p=p+1;str2p=0;int main()char *str=new char101;char *str1=new char51;char *str2=new char51;cout请输入字符串:endl;cin.get(str,101);PString(str,str1,str2);cout原字符串为:strendl;cout取出的奇字符组是:str1endl;cout取出的偶字符组是:str2endl;delete str;delete str1;delete str2;return 0;3实验结果(四)实验题目四:从文件 mytest.txt (自己编写生成这个文本文件)读出全部内容,统计其中的单词 ( 以空格或n为单词分隔符 ) 个数,并打印单词个数及总文件长度。评分标准:该题共 20 分。( 1 )文件打开关闭正确( 5 分);( 2 )能够从文件中读取数据,并进行统计( 10 分);( 3 )计算结果正确( 5 分)。1要点分析2程序源代码#include#include#includeusing namespace std;int main()ifstream in(mytest.txt);if(!in)cout文件打开失败!endl;return 1;char word;int gs=0,length=0;in.get(word);while(in)length=length+1;if(word= |word=n)gs=gs+1;in.get(word);cout该文件总共有gs个单词;endl;cout文件总长度(包括空格、换行)为lengthendl;in.close();return 0;3实验结果(五)实验题目五:定义一个空心圆形球体类,要求该类包含构造函数、能计算球体容积函数、总体积函数、外面积函数和内面积函数。编写主函数加以测试。评分标准:该题共 20 分。( 1 )类数据成员定义正确( 5 分);( 2 )各种计算函数编写正确( 10 分);( 3 )测试函数编写正确( 5 分)。1要点分析 2程序源代码#includeusing namespace std;class ballprivate:double rin;double rout;public:double getrin()return rin;double getout()return rout;ball(double r1,double r2)rin=r1;rout=r2;ball()rin=1;rout=2;double vout()return 4*3.1416*rout*rout*rout/3;double vin()return 4*3.1416*rin*rin*rin/3;double sout()return 4*3.1416*rout*rout;double sin()return 4*3.1416*rin*rin;int main()double a,b;cout请输入空心球的内径、外径:ab;ball balla(a,b);cout您输入的球的内径是balla.getrin(),外径是balla.getout()endl;cout空心球的容积是balla.vin()endl;cout空心球的总体积是balla.vout()endl;cout空心球的内面积是balla.sin()endl;cout空心球的外面积是balla.sout()endl;return 0;3实验结果我是分界线模拟题三:()实验题目一:输入任意 3 个大小不等的三位正整数,按如下条件形成一个新的三位数:该数的最高位为 3 个正整数中最大数的百位数字,最低位为 3 个正整数中最小数的个位数字,中间数位为 3 个正整数中剩下数的十位数字。例如输入: 123 , 345 , 259 ;输出结果: 353 。评分标准:(1) 三个正整数输入正确( 5 分)(2) 算法功能正确,控制结构运用合理( 10 分)(3) 输出格式清楚,结果正确。( 5 分)1.要点分析2.程序源代码#includeusing namespace std;int main()int a3,tmp,i;cout请输入三个大小不等的三位数:endl;for(i=0;iai;while(a1999|a2999|a0999|a0=a1|a0=a2)cout输入有误,请按要求输入:endl; for(i=0;iai;for(i=0;i3;i+)for(int j=i+1;j3;j+)if(aiaj)tmp=ai;ai=aj;aj=tmp;int b3;b0=a0/100;b1=a1%100/10;b2=a2%10;cout处理后结果为:b0*100+b1*10+b2endl;return 0;3.实验结果(二)实验题目二:编写函数: int count(int m); 该函数完成如下功能:输入一个整数 m ,统计并返回 m 左端连续相同数字的个数。如: 2220511 左端连续相同数字 2 的个数是 3 ; -923000 左端连续相同数字 9 的个数是 1 。编写主程序,测试该函数。评分标准:(1) 程序框架完整,代码规范( 5 分)(2) 数据类型、程序控制结构使用正确( 5 分)(3) 函数的定义和调用方法正确( 5 分)(4) 算法正确,清晰合理,运行结果正确( 5 分) 1要点分析2程序源代码#includeusing namespace std;int count(int m)int ptr15;int i;if(m10;i+)a=m/pos;b=a%10;ptri=b;pos=pos*10;int gs(1);for(int j=i-1;j0;j-)if(ptrj!=ptrj-1)return gs;elsegs=gs+1;if(j=1)return gs;return gs;int main()int m;cout请输入要判的数:m;cout左端连续数字有count(m)个endl;return 0;3实验结果(三)实验题目三:编写算术表达式分析计算程序,输入字符串: “ 168+314 ”,分析后,按表达式计算结果,并按如下格式输出: 168+314=482 。运算符号仅限于 + 、 - 、 * 、 / 、 % 。提示:将运算两边的数字字符串分离,然后调用标准函数 int atoi(char *p) ,将数字符串转换为整数, atoi() 函数在 stdlib.h 中。1 )数据类型使用正确( 5 分)2 )算法正确,清晰合理( 10 分)3 )输入和输出格式正确( 5 分)1要点分析2程序源代码#include#include#includeusing namespace std;int sep(char a)if(a=+|a=-|a=*|a=/|a=%)return 1;elsereturn 0;int math(int x,int y,char sym)if(sym=+)return x+y;if(sym=-)return x-y;if(sym=*)return x*y;if(sym=/)return x/y;if(sym=%)return x%y;int main() char *ptr=new char60;cout请输入计算式(输入end结束):ptr;while(strcmp(ptr,end)!=0)char *p1=new char60,*p2=new char60,sym;int i,j;for(i=0;sep(ptri)!=1&ptri!=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论