C++程序设计及题集(含答案)_第1页
C++程序设计及题集(含答案)_第2页
C++程序设计及题集(含答案)_第3页
C++程序设计及题集(含答案)_第4页
C++程序设计及题集(含答案)_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE1C++程序设计及题集(含答案)本学期《程序设计基础》课程实行上机考核,现将考核有关事项通知如下:(1)考核时间:本学期最后一次上机时间为机试。(2)考核内容:C++面向过程部分,主要是算法设计与实现。考题来自本学期布置的作业、部分例题及一些补充的题目。(3)考试形式:机试前进入机房时,每人随机抽取一道题(同一个班的同学保证不抽到同一题),然后上机编程,调试通过后报告监考人员审核,审核通过后将源程序拷贝到监考人员U盘上,然后可以离开机房。源程序文件明必须是“学号姓名.cpp”,如“2012211532刘天.cpp”。(4)考试要求:机试时考试规则同课堂考试一致,不允许带书、纸张等。不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的U盘、磁盘或计算器),不能携带任何类型的通讯工具,包括无线电接收器、移动电话。(5)考试成绩:本次机试成绩将在《程序设计基础》课程成绩中占25%的比重。(6)其它有关事项由主考教师和监考人员负责处理。附:考试题集1.利用异或运算对输入的文本进行加密解密输出,用户输入一个文本(字符串,设不超过20个字符),然后输入作为密钥的字符,程序输入加密及解密的字符串。2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。(提示:对2月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除次之外都不是闰年)。3.某大桥按不同型号征收车辆过桥费:自行车免费,摩托车2元,小汽车5元,大客车与货车8元,货柜车12元。编写一个程序,按车辆的不同型号计算通过该大桥应征的过桥费。(提示:可以用整数对不同型号的车辆进行编码)4.输入一位同学的考试成绩,若是90~100分,输出“Excellent”,80~89输出“Verygood”,70~79输出“Good”,60~69输出“Pass”,60分以下输出“NoPass”。5.旅行社的订票量小于10张时,航空公司给予10%的折扣;订票量大于或等于10张且小于20张时,航空公司给予15%的折扣;订票量大于或等于20张且小于30张时,航空公司给予30%的折扣;订票量大于或等于30张时,航空公司给予最高的45%的折扣。编程输入订票张数及单张机票票价,程序输出折扣率及应付款额。6.用户输入一个整数流(输入1000表示数据输入结束),如411306-51-17-12190100编写程序统计输入流中-1、0和+1的个数。7.编写一个程序,求一个自然数中含有多少个2的因子。如,6含1个2的因子,8含3个2的因子,11不含2的因子。(提示,程序应检查用户输入的合法性)。8.编写一个程序解决爱因斯坦台阶问题:有人走以台阶,若以每步走2级则最后剩1级;若每步走3级则最后剩2级;若以每步走4级则最后剩3级;若以每步走5级则最后剩4级;若以每步走6级则最后剩5级;若以每步走7级则最后刚好不剩。问台阶共有几级?9.公鸡5元1只,母鸡3元1只,小鸡1元3只,花了100元钱买100只鸡,问公鸡、母鸡、小鸡各多少只?10.编程实现解决下述问题的算法:一位顾客在购物时,如果买4个苹果剩下4角钱.如果买5个苹果则缺5角钱,请问,该顾客带了多少钱?多少钱可以头一个苹果?11.编写程序.计算100之内可以被13整除的自然数之和。12.键盘输入m和n(10<m<n≤32000),求出m~n间所有素数且按每行8个数形式输出。13.编写程序打印乘法口诀表。14.编程实现求解最大公约数的欧几里德算法,用户输入两个任意正整数,程序输出他们的最大公约数。算法如下:步骤1:如果p<q,则交换p和q。步骤2:令r是p/q的余数。步骤3:如果r=0,则令g=q并终止;否则令p=q,q=r并转向步骤215.求不超过正整数n的2的最大幂值,如输入17,程序应输出4(24=16<17)。16.有关专家十分关注珠江渔业资源的问题。目前珠江中大约有8000万条鱼,平均每年以3.5%的速度减少。请编写一个程序,计算在多少年之后鱼的数目下降到目前的一半?多少年后下降到目前的十分之一?(提示注意整数类型的取值范围)。17.编程求解一元二次方程ax2+bx+c=0的根。要求:设计完备的测试数据集,考虑a,b,c各种取值对根的影响。18.编写一个程序,输入全班同学某门课考试成绩,计算平均成绩并找出其中最高分与最低分。(提示:批量数据通常不事先规定输入的数据数量,而是以一个特殊的标志作为输入结束。程序根据结束标志统计人数)19.编一程序模拟整数加、减、乘、除四则运算。当你在键盘上输入5+6后,程序将输出=11,当你在键盘上输入11*7后,程序将输出=77。20.把一张1元钞票换成1分、2分和5分的硬币,每种至少有1枚,问有多少种换法?21.求自然对数底(e)的近似值。e的近似值计算公式为:当余项rn<ε时停止计算。设ε=1e-822.S==1!+2!+…+7!23.S=1×2+3×4+5×6+…+39×4024.Y=X-+-+…+(-1)n+1+…的值,精确到10-6。25.编制一个程序,读入一个正整数,并反向输出。例如,读入123,输出是321。26.水仙花数问题:水仙花数是一种三位数,它的值等于每个数字的立方和。例如,153=13+53+33。编程输出小于999的水仙花数。27.求一整数的等差数列,该数列满足下述条件:头4项数的和值为26,积值为880。(提示:该数列公差为正整数,否则数列将出现负数;该数列的首项必须小于5,且其公差也小于5,否则头四项数的和将大于26。)28.完数问题:若有一数,其值等于它的因子之和,则该数称为完数。例如,6的因子为1、2、3,而6=1+2+3,故6是完数。编程输出1000之内的所有完数及其因子。29.100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马2匹驮1担。试编程计算大、中、小马的数目。30.编程产生出1到10以内的所有数对<i,j>并输出,其中i>j。31.编程求出1000以内的所有符合如下条件的数:其高位数字小于低位数字。如12,238等。但21,548不符合条件。32.求任一整数N的标准分解式,即素数因子之积。例如16=2*2*2*2,15=3*5。33.斐波那契(Fibonacci)数列问题:Fibonacci数列递归定义为:x0=0,x1=1,xi+1=xi+xi-1,i=2,3,…即从第二项开始,数列中的每一个元素等于前面两个元素之和。编程输出前20项Fibonacci数。(提示可以用递归或迭代两种方式编程)34.打印下面图形。1131135311357531135797531…13……21………3135.打印如下图形ABCDEBCDEACDEABDEABCEABCD36.正读和反读都一样的数称为回文数。编写程序输入一个整数max_num,输出从0到max_num中用二进制表示和十进制表示都是回文数的整数。定义一个函数is_circle_num()判断一个数(number)在某个进制(radius)下是否为回文数。例如,整数313就是该程序输出的一个数,因为它的二进制表示为10011001。37.编写一个递归函数:将一个整数转换为响应的字符串并输出,函数原型可声明为:voidint2str(intnumber)。38.用函数实现将一个以字符串形式表示的十六进制数转换为一个十进制整数。例如,输入”A2”转换为162。39.编写一个将十进制整数转换为十六进制字符串的函数。40.编写出判断一个整数是否为素数的函数,并求出在2000以内的有十个以上的所有连续的非素数组。41.编制一个程序,统计从标准输入设备上输入的字符流(以?结束)中每个英文字母(大小写不分开计)出现的次数。42.编程实现“冒泡排序算法”,将输入的若干整数由小到大(升序)排序输出。要求定义一个排序函数,其原型是voidbubble(intdata[],intlength)。43.给定含有m+n个元素的整型数组A(其中m>0,n>0),它分为两个互不重叠的,长度分别为m和n的子数组段,写出交换这两个子数组段的程序,要求不引入数组A以外的数组,但可引入若干中间变量。44.用数组存储数据,实现筛选法求素数问题的求解。要求求出2到1000之间的所有素数。筛选法求出2~N间的所有素数的方法是:首先将这些数全部放入一个数组中,然后重复下面的操作直到数组为空为止:a.找出其中的最小数K,则K一定是一个素数,因此可输出。b.从数组中删除K及其所有倍数。45.编程实现二分查找算法。二分(折半)查找(搜索)算法如下:数组a中的n个数从大到小(降序)的顺序排列,要检索一个数x是否在a中,折半查找算法的思路是:设查找区间为[lower,upper],初值lower=0,upper=n-1;算法步骤:(1)输入数组a的元素及x;(2)x是否为a的第一或最后一个元素。若是其中之一,算法结束;(3)将区间两等分为[lower,mid]和[mid,upper],mid为区间中点,每次取出中间项进行检查,若x=a[mid],x被检索到,算法结束;若x<a[mid],则在后半区间[mid,upper]内重复折半检索;若x>a[mid],则在前半区间[lower,mid]内重复折半检索。反复执行上述步骤,使lower和upper相等或相差1(表示未检索到x),或a[mid]=x。46.编程实现查找矩阵中最大元素的位置。要求输入一个矩阵中所有元素,输出该矩阵,并输出矩阵中最大数所在的行、列号及该元素的值。47.编写程序找出二维整形数组中所有这样的元素及其位置:它在所在的行上是最大的,在所在的列上也是最大的。设数组中的元素各不相同。(提示:先在第i行中寻找此行最大值元素,记下其行和列,然后在其所在的列判断它是否也是最大的,若是则输出结果。可以引入标志变量表示找到这个元素。)48.编程产生下列数组,并输出。12345623456034560145601256012360123449.编程产生下列数组,并输出12345621234532123443212354321265432150.编程产生下列数组,并输出。123n-102340134512n-101n-3n-2012n-2n-11.//加密字符串#include<iostream.h>voidmain(){chara[21],b,key;cout<<"请输入字符串和密钥:";cin>>a>>b;for(inti=0;a[i]!=0;i++){a[i]=a[i]^b;}cout<<"加密后:";for(intk=0;a[k]!=0;k++){cout<<a[k];}cout<<endl<<"请输入密码:";cin>>key;for(intj=0;a[j]!=0;j++){a[j]=a[j]^key;}for(intg=0;a[g]!=0;g++){cout<<a[g];}cout<<endl;}2.#include<iostream.h>main(){intyear,month,days;cout<<"请输入年份,月份:";cin>>year>>month;if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){days=31;cout<<year<<"年"<<month<<"月有"<<days<<"天\n";}elseif(month==4||month==6||month==9||month==11){days=30;cout<<year<<"年"<<month<<"月有"<<days<<"天\n";}elseif((year%4==0&&year%100!=0)||year%400==0){days=29;cout<<year<<"年"<<month<<"月有"<<days<<"天\n";}else{days=28;cout<<year<<"年"<<month<<"月有"<<days<<"天\n";}return0;}3.//收过桥费#include<iostream.h>main(){intkind;cout<<"1.自行车\n";cout<<"2.摩托车\n";cout<<"3.小汽车\n";cout<<"4.大货车或客车\n";cout<<"5.货柜车\n";cout<<"请输入汽车种类:";cin>>kind;switch(kind){case1:cout<<"thefeeis:0yuanonce."<<endl;break;case2:cout<<"thefeeis:2yuanonce."<<endl;break;case3:cout<<"thefeeis:5yuanonce."<<endl;break;case4:cout<<"thefeeis:8yuanonce."<<endl;break;case5:cout<<"thefeeis:12yuanonce."<<endl;break;default:cout<<"Error!"<<endl;}}4.#include<iostream.h>main(){intmarks;cout<<"输入考试成绩:";cin>>marks;switch(marks/10){case10:case9:cout<<"Excellent\n";break;case8:cout<<"VeryGood\n";break;case7:cout<<"Good\n";break;case6:cout<<"Pass\n";break;default:cout<<"NoPass\n";}return0;}5.//旅行社折扣#include<iostream.h>main(){intnum,price;floatdiscount,total_price;cout<<"输入购买张数和单价:";cin>>num>>price;switch(num/10){case0:discount=0.1;break;case1:discount=0.15;break;default:discount=0.3;}total_price=num*price*(1-discount);cout<<"总价格为:"<<total_price<<endl;return0;}6.//输入数流#include<iostream.h>main(){inta[100],i,j,x=0,y=0,z=0;cout<<"输入数流(以1000结束):";for(i=0;;i++){cin>>a[i];if(a[i]==1000)break;}for(j=0;a[j]!=1000;j++){if(a[j]==-1)x++;if(a[j]==0)y++;if(a[j]==1)z++;}cout<<"该数流中含-1:"<<x<<"项\n";cout<<"该数流中含0:"<<y<<"项\n";cout<<"该数流中含1:"<<z<<"项\n";return0;}7.//求2因子#include<iostream.h>main(){intx,i,n;cout<<"输入整数:";l:cin>>x;if(x<0){cout<<"输入有误!请重新输入:";gotol;}n=x;for(i=0;n%2==0;i++){n/=2;}cout<<"整数"<<x<<"含有"<<i<<"个2因子"<<endl;return0;}8.#include<iostream.h>main(){inti,n;for(i=7;!(i%2==1&&i%3==2&&i%4==3&&i%5==4&&i%6==5);i+=7){n=i;}cout<<"最小可能值是:"<<n+7<<endl;return0;}9.//百元买百鸡#include<iostream.h>main(){intcock,hen,chicken,price;for(cock=0;cock<=20;cock++){for(hen=0;hen<=33;hen++){chicken=100-cock-hen;if(chicken%3==0&&5*cock+3*hen+chicken/3==100)cout<<"符合条件的有公鸡"<<cock<<""<<"母鸡"<<hen<<""<<"小鸡"<<chicken<<endl;}}return0;}10.#include<iostream.h>main(){intmoney,i,m,n;for(i=1;;i++){if(4+4*i==5*i-5){cout<<"money="<<4+4*i<<""<<"price="<<i<<endl;break;}elsecontinue;}return0;}11.#include<iostream.h>main(){intn,i,j,s=0;for(i=1;i<=100;i++){if(i%13==0)s+=i;elsecontinue;}cout<<"100以内可以被13整除的自然数之和为:"<<s<<endl;return0;}12.//求m到n的素数#include<iostream.h>#include<math.h>intf(intn){inta,x,i,b;x=sqrt(n);if(n==2||n==3)b=1;elsefor(i=2;i<=x;i++){if(n%i==0){b=0;break;}elseif(i==x)b=1;elsecontinue;}returnb;}main(){intm,n,x,i,j;staticintk=0;l:cout<<"输入m,n(其中10<m<n≤32000):";cin>>m>>n;if(m<=10||m>=n||n>32000){cout<<"输入数据有误!请再";gotol;}for(i=m;i<=n;i++){if(f(i)){cout<<i<<"";k++;if(k%8==0)cout<<endl;}}cout<<endl;return0;}13.//打印乘法口诀表#include<iostream.h>main(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)cout<<i<<'*'<<j<<'='<<i*j<<"";cout<<endl;}return0;}14.//求最大公约数#include<iostream.h>main(){intm,n,temp;cout<<"输入两个整数:";cin>>m>>n;temp=m<n?m:n;m=m<n?n:m;n=temp;for(;;){temp=m%n;if(temp){m=n;n=temp;}else{cout<<"最大公约数是:"<<n<<endl;break;}}return0;}15.//求不超过正整数n的2的最大幂值#include<iostream.h>#include<math.h>main(){intn,i;cout<<"请输入正整数n:";cin>>n;for(i=0;pow(2,i)<=n;i++){}cout<<"满足条件的值为:"<<i-1<<endl;return0;}16.#include<iostream.h>#include<math.h>voidmain(){constdoublefishnum=800000000;doublefnum=fishnum;intn=1;while(fnum>=fishnum/2){fnum=fnum*(1-0.035);n++;}cout<<"当鱼的数目等于原来的一半时,需要"<<n<<"年\n";n=1;fnum=fishnum;while(fnum>=fishnum/10){fnum=fnum*(1-0.035);n++;}cout<<"当鱼的数目等于原来的十分之一时,需要"<<n<<"年\n";}17.//二次方程求解#include<iostream.h>#include<math.h>main(){floata,b,c;cout<<"请输入a,b,c:";cin>>a>>b>>c;floatt=b*b-4*a*c;if(a==0)if(b==0)if(c==0)cout<<"方程根为一切实数"<<endl;elsecout<<"方程无根"<<endl;elsecout<<"根是:"<<-c/b<<endl;elseif(t>0)cout<<"根x1="<<(-b+sqrt(b))/(-2*a)<<endl<<"根x2="<<(-b-sqrt(b))/(-2*a)<<endl;elseif(t==0)cout<<"根x1=x2="<<(-b+sqrt(b))/(-2*a)<<endl;elsecout<<"根x1="<<(-b)/(-2*a)<<"+"<<"("<<(sqrt(-t))/(-2*a)<<")i"<<endl<<"根x2="<<(-b)/(-2*a)<<"-"<<"("<<(sqrt(-t))/(-2*a)<<")i"<<endl;return0;}18.//班级分数#include<iostream.h>main(){inta[100],i,j,max,min,s=0;cout<<"输入同学成绩(以1000结束):";for(i=0;;i++){cin>>a[i];if(a[i]==1000)break;if(i==0){max=a[0];min=a[0];}max=max>a[i]?max:a[i];min=min<a[i]?min:a[i];s+=a[i];}cout<<"该班同学成绩中最高分为:"<<max<<"\n"<<"最低分为"<<min<<"\n"<<"平均分为"<<s/i<<"\n";return0;}19.//模拟四则运算#include<iostream.h>main(){inta,b;charx;cout<<"请输入算式:"<<endl;cin>>a>>x>>b;if(x=='+')cout<<"="<<a+b<<endl;elseif(x=='-')cout<<"="<<a-b<<endl;elseif(x=='*')cout<<"="<<a*b<<endl;elseif(x=='/')cout<<"="<<(float)a/b<<endl;elsecout<<"error!!!"<<endl;return0;}20.//兑钱#include<iostream.h>main(){inti,j,k,m=0;for(i=1;i<=20;i++){for(j=1;j<=50;j++){k=100-5*i-2*j;if(k>=1){m+=1;//cout<<"i="<<i<<""<<"j="<<j<<""<<"k="<<k<<endl;输出结果}}}cout<<"共有"<<m<<"种结果\n";return0;}21.//求e#include<iostream.h>#include<iomanip.h>main(){inti;doubletemp=1,sum=0;for(i=1;temp>=1e-8;i++){sum+=temp;temp/=i;}cout<<"e=1+1/1!+1/2!+1/3!+="<<setprecision(9)<<sum<<endl;}22.//求1!+2!~~+7!#include<iostream.h>intf(intx){intr;if(x==0)r=1;elser=x*f(x-1);returnr;}main(){inti,s=0;for(i=1;i<=7;i++){s+=f(i);}cout<<"结果是:"<<s<<endl;return0;}23.//求1×2+3×4+5×6+…+39×40#include<iostream.h>main(){inti,s=0;for(i=1;i<=39;i+=2){s+=i*(i+1);}cout<<"结果是:"<<s<<endl;return0;}24.//求值,精确到10e-6#include<iostream.h>#include<math.h>main(){inti,x;cout<<"输入整数x:";cin>>x;doubletemp=x,s=0;for(i=1;fabs(temp)>=1e-6;i+=2){s+=temp;temp=temp*(-x*x)/((float)(i+1)*(i+2));}cout<<"结果是:"<<s<<endl;return0;}25.//反向输出#include<iostream.h>#include<math.h>main(){intx,i,j;cout<<"输入整数x:";cin>>x;for(i=0;;i++)if(x/(int)pow(10,i)==0)break;inta[100];for(j=0;j<i;j++){a[j]=(x%(int)pow(10,j+1))/((int)pow(10,j));}cout<<"反向输出为:";for(intb=0;b<i;b++)cout<<a[b];cout<<endl;return0;}26.//水仙花数#include<iostream.h>main(){inti,a,b,c;for(i=100;i<=999;i++){a=i/100;b=(i-100*a)/10;c=i-100*a-10*b;if(i==a*a*a+b*b*b+c*c*c)cout<<i<<endl;}return0;}27.//等差数列#include<iostream.h>main(){intk=1,d,a1,a2,a3,a4;boolb=false;for(k=1;;k++){for(d=0;d<k;d++){a1=k-d;a2=2*k-d;a3=3*k-d;a4=4*k-d;if(a1+a2+a3+a4==26&&a1*a2*a3*a4==880){cout<<"该数列通项为:an="<<k<<"n-"<<d<<endl;b=true;break;}}if(b)break;}}28.//完数问题#include<iostream.h>intmain(){inti,s,j;for(i=1;i<=1000;i++){s=1;for(j=2;j<=(i/2);j++){if((i%j)==0)s=s+j;}if(i==s)cout<<i<<'\n';}return0;}29.(略)//马驮货30.//输出数对#include<iostream.h>main(){inti,j;for(i=1;i<10;i++)for(j=1;j<10;j++){if(i>j)cout<<'<'<<i<<','<<j<<'>'<<endl;}return0;}31.//输出数#include<iostream.h>main(){inti,j,k;for(i=10;i<1000;i++){if((i/100==0&&i/10<i%10)||(i/1000==0&&i/100<(i/10)%10&&(i/10)%10<i%10))cout<<i<<endl;}return0;}32.//标注分解N#include<iostream.h>main(){intN,n,i;cout<<"输入N:";cin>>N;n=N;cout<<N<<"=";for(i=2;i<=n/2;){if(n%i==0){cout<<i<<"*";n/=i;}elsei++;}cout<<n<<endl;return0;}33.//斐波那契(Fibonacci)数列问题#include<iostream.h>intx(inti){intr;if(i==0||i==1)r=1;elser=x(i-1)+x(i-2);returnr;}main(){intn,r,m=0;for(n=0;n<20;n++){r=x(n);cout<<r<<"";m++;if(m%5==0)cout<<endl;}return0;}34.//打印图形#include<iostream.h>#include<iomanip.h>main(){inti,j,k,l;for(i=1;i<=11;i++){for(j=1;j<=4*(11-i);j++)cout<<"";for(k=1;k<2*i-1;k+=2)cout<<setw(4)<<k;for(l=2*i-1;l>=1;l-=2)cout<<setw(4)<<l;cout<<endl;}return0;}35.//输出字符组#include<iostream.h>main(){chara[6]="ABCDE",i,j,x;for(i=0;i<=4;i++){for(j=i;j<=4;j++)cout<<a[j]<<"";for(x=0;x<i;x++)cout<<a[x]<<"";cout<<endl;}return0;}36.#include<iostream.h>#include<iomanip.h>staticintis_circle_num(intnumber,intradius);intmain(){intnum,max_num;cout<<"Pleaseinputaninteger(forexample1200):";cin>>max_num;for(num=0;num<max_num;num=num+1){if(is_circle_num(num,10)==1&&is_circle_num(num,2)==1){cout<<setw(6)<<num;cout<<"isacirclenumberindecinaiandbinarysystem!\n";}}return0;}intis_circle_num(intnumber,intradius){intleft_num,right_num;intmax_power,left_power,right_power;max_power=1;while(){max_power=max_power*radius;}left_power=max_power;right_power=radius;while(left_power>=right_power){right_num=(number%right_power)/(right_power/radius);left_num=(number/left_power)%radius;if(left_num!=right_num)return0;right_power=right_power*radius;left_power=left_power/radius;}return1;}37.#include<iostream.h>voidint2str(intnumber){inta;if(number==0)return;a=number-(number/10)*10;//或a=number%10int2str(number/10);cout<<char(a+48)<<"";}voidmain(){intnum;cout<<"Inputanumber:";cin>>num;if(num<0){num=-num;cout<<'-';}int2str(num);cout<<endl;}38//16->10#include<iostream>#include<string>#include<cmath>usingnamespacestd;boolrightFormat(string);intconvert(string);intchange2num(char);intmain(){stringhex;cout<<"输入一个十六进制数,字母用大写:"<<endl;l:cin>>hex;if(!rightFormat(hex)){cout<<"不是正确的十六进制数!请重新输入:";gotol;}cout<<"结果是:"<<convert(hex)<<endl;}boolrightFormat(strings){boolb=true;for(string::size_typei=0;i<s.size();i++){if(s[i]<'0'||(s[i]>'9'&&s[i]<'A')||s[i]>'F'){b=false;break;}}returnb;}intconvert(strings){intdec=0;for(string::size_typei=0;i<s.size();i++){dec=dec+change2num(s[i])*pow(16.0,(int)(s.size()-1-i));}returndec;}intchange2num(charc){switch(c){case'1':return1;case'2':return2;case'3':return3;case'4':return4;case'5':return5;case'6':return6;case'7':return7;case'8':return8;case'9':return9;case'A':return10;case'B':return11;case'C':return12;case'D':return13;case'E':return14;case'F':return15;default:return0;}}39.//功能:将16进制字符串转换成整数#include<iostream.h>voidcon10to16(intn,chars[]){inti=0,m=0,j=0;charc;while(n!=0){m=n%16;if(m>=0&&m<=9)s[i]=m+'0';elseif(m>=10&&m<=15)s[i]=m-10+'A';n=n/16;i++;}i--;m=i/2;for(j=0;j<=m;j++,i--){c=s[i];s[i]=s[j];s[j]=c;}}main(){chars[8]="";intn;cout<<"请输入一个整数:";cin>>n;con10to16(n,s);cout<<"转化的字符串为"<<s<<endl;}40.//输出十个以上的所有连续的非素数组#include<iostream.h>#include<math.h>intfunc(intn){inti,k=(int)sqrt(n)+1;for(i=2;i<k;i++)if(n%i==0)break;if((i==k))return1;elsereturn0;}intmain(){intm,i,j,h=0;for(m=0;m<=2000;m++){h=0;if(func(m)==1){for(i=1;;i++){if((func(m+i)==0)&&(m+i<=2000))h++;elsebreak;}m=m+i;if(h>=9){for(j=i-1;j>=-1;j--)cout<<m-j<<"";cout<<"\n";}}elsecontinue;}return0;}41.#include"iostream.h"voidmain(){intnletter[26];charch;for(inti=0;i<26;i++)nletter[i]=0;do{cin>>ch;if(ch>='A'&&ch<='Z')nletter[ch-'A']++;if(ch>='a'&&ch<='z')nletter[ch-'a']++;}while(ch!='?');for(i=0;i<26;i++)if(nletter[i])cout<<char(i+'A')<<''<<nletter[i]<<'\t';cout<<endl;}42.#include<iostream.h>voidbubble(intdata[],intlength){intsegment;//循环扫描数组的下标变量intloop;//循环扫描部分数组的下标变量inttemp;//用于交换数据时作缓冲的临时变量//将数组分段,逐段将数据冒泡排序for(segment=0;segment<=length-2;segment=segment+1){//将当前段(segment到length-1)中的最小数据浮到最上for(loop=length-2;loop>=segment;loop=loop-1){if(data[loop+1]<data[loop]){temp=data[loop];data[loop]=data[loop+1];data[loop+1]=temp;}}}}intmain(){constintmax_nums=8;//程序要处理数据的个数作为符号常量intdata[max_nums];//存放数据的数组intloop;//循环扫描数组的下标变量//由用户输入一些数据cout<<"Input"<<max_nums<<"numberstosort:\n";for(loop=0;loop<=max_nums-1;loop=loop+1){cout<<"No."<<loop+1<<":";cin>>data[loop];}//对数据排序bubble(data,max_nums);//将排序后的数据输出cout<<"Aftersorting:\n";for(loop=0;loop<=max_nums-1;loop=loop+1){cout<<"No."<<loop+1<<":"<<data[loop]<<"\n";}return0;}43.#include<iostream.h”constintMAX=100;main(){inta[MAX],m,n,i,j,t;cin>>m>>n;for(i=0;i<m+n;i++)cin>>a[i];for(i=m-1;i>=0;i--){t=a[i];for(j=0;j<n;j++)a[i+j]=a[i+j+1];a[i+n]=t;}for(i=0;i<m+n;i++)cout<<a[i]<<'';cout<<endl;}44.//筛选法求素数#include<iostream.h>intDeleteNum(int*,int,int);intmain(){constintN=998;inta[N];for(inti=0;i<N;i++)a[i]=i+2;intsize=N;while(size>0){cout<<a[0]<<endl;size=DeleteNum(a,size,a[0]);}return0;}intDeleteNum(int*p,intn,intm){inti,j;for(i=0,j=0;j<n;j++)if(p[j]%m)p[i++]=p[j];returni;}45.//二分法查找数据#include<iostream.h>intmain(){inta[10]={1,3,5,7,9,11,13,15,17,19};intx;intlower=0,upper=9;intmid;cout<<"请输入要查找的数字:";cin>>x;while(lower<=upper){mid=(lower+upper)/2;if(a[mid]==x)break;if(a[mid]<x)lower=mid+1;elseupper=mid-1;}if(lower<=upp

温馨提示

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

评论

0/150

提交评论