中南大学C++题库电子版_第1页
中南大学C++题库电子版_第2页
中南大学C++题库电子版_第3页
中南大学C++题库电子版_第4页
中南大学C++题库电子版_第5页
已阅读5页,还剩354页未读 继续免费阅读

下载本文档

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

文档简介

四.编程题11.编写一个自定义函数:intf(intM,intN),f()的功能是:对给定的正整数M和N,找出满足方程"5x+6y=M"的正整数解中x和y都是偶数的解。要求:若M和N不都是正整数,则结束函数并返回-1;只有M和N都是正整数时,且x,y∈[1,N],才继续求解操作,并用二重循环进行求解:在函数中输出满足条件的正整数解x和y,使函数值返回满足条件的正整数解的组数。#include<iostream>usingnamespacestd;intf(intM,intN);voidmain(){cout<<f(500,650)<<endl;}12.编写一个解“一百元买鸡”问题的自定义函数:intf(intM,intN),其中M代表公鸡的单价(元/只),N代表母鸡的单价(元/只),价格由主调函数给定;购鸡方案中要求总花费刚好为100元,且不允许全部购买公鸡或全部购买母鸡(即公鸡、母鸡只数都不能为0);求解所有购鸡方案。若M和N只要有一个以上参数无意义,则函数结束执行并返回-1值;若M和N都有意义,则函数输出所有可能的购鸡方案,并返回方案的组数。要求用二重循环实现。(编号12)#include<iostream>usingnamespacestd;intf(intM,intN);voidmain(){cout<<f(15,20)<<endl;}13.编写一个自定义函数:intf(longa[],intn,longx),f()的功能是:对给定的含有n个元素的一维数组a及某个指定数x,查找数组a中是否存在元素值等于x的元素,若存在,则函数值返回找到的下标最大的那个元素的下标;若不存在,则函数值返回-1。#include<iostream>usingnamespacestd;intf(longa[],intn,longx);voidmain(){longx=7;longa[5]={3,5,2,7,9};cout<<f(a,5,x)<<endl;}16.编写一个自定义函数:intf(intN),f()的功能是:对给定的正整数N,找出满足下列方程“3x+4y=N”的正整数解。若N不是正整数,则结束函数并返回-1;若N是正整数,则函数中输出找到的所有正整数解,并且使函数值返回解的组数。用二重循环实现。#include<iostream>usingnamespacestd;intf(intN);voidmain(){cout<<f(160)<<endl;}17.编写一个解“鸡兔共笼”问题的自定义函数:intf(intN),其中N代表动物的脚总数;且笼中每种动物都至少有1只以上。若N不符合实际,则结束函数并返回-1;若N符合实际要求,则函数输出所有可能的鸡、兔数,并返回符合条件解的组数。用二重循环实现。#include<iostream>usingnamespacestd;intf(intN);voidmain(){cout<<f(160)<<endl;}18.编写一个自定义函数:intf(intM),f()的功能是:对给定的正整数M,找出满足方程"5x+6y=M"且x不超过100的正整数解。若M不是正整数,则结束函数并返回-1;若M是正整数时,则函数中输出所有的正整数解,并且使函数值返回正整数解的组数,要求使用一重循环。#include<iostream>usingnamespacestd;intf(intM);voidmain(){cout<<f(500)<<endl;}19.编写一个自定义函数:intf(intM,intN),f()的功能是:对给定的正整数M和N,找出满足方程"7x+4y=M"的正整数解中x是偶数且y是奇数的解。要求:若M和N不都是正整数,则结束函数并返回-1;只有M和N都是正整数时,且x,y∈[1,N],才继续求解操作,用二重循环进行求解:(1)在函数中输出满足条件的正整数解x和y,(2)并且使函数值返回满足条件的正整数解的组数。#include<iostream>usingnamespacestd;intf(intM,intN);voidmain(){cout<<f(500,650)<<endl;}20.编写一个自定义函数:intf(charx,intN),f()的功能是:对给定的字符c和整数N,用c代表的符号打印一个N行的图案,每行开头没有任何空格。比如,当c为'*'且N为5时,打印的图案如本题图所示。且函数值返回1。#include<iostream>usingnamespacestd;intf(charx,intN);voidmain(){f('*',5);}21.编写一个自定义函数:intf(charx,intN),f()的功能是:对给定的字符c和整数N,用c代表的符号打印一个N行的图案,每行开头没有任何空格。比如,当c为'T'且N为5时,打印的图案如本题图所示。且函数值返回1。#include<iostream>usingnamespacestd;intf(charx,intN);voidmain(){f('T',5);}22.编写一个自定义函数:intf(intN),f()的功能是:对给定的正整数N,打印一个N行N列的由'A'、'B'、'C'以及空格''符号组成的方阵图案。比如,当N为5时,打印的图案如本题图所示。且函数值返回1。#include<iostream>usingnamespacestd;intf(intN);voidmain(){f(5);}23.编写一个自定义函数:intf(intN),f()的功能是:对给定的正整数N<10,打印一个N行N列的由数字、字符'P'、'K'、空格''组成的方阵图案。比如,当N为5时,打印的图案如本题图所示。且函数值返回1。#include<iostream>usingnamespacestd;intf(intN);voidmain(){f(5);}24.本题在主函数中给定个数N,通过调用自定义函数f得到[1~N]区间中不能被3整除的数之和。请根据函数f的声明语句及其功能完成函数代码设计。#include<iostream>usingnamespacestd;intf(intm);voidmain(){intn;cout<<"pleaseentern";cin>>n;cout<<f(n);}26.本题在主函数中给定个数N,通过调用自定义函数f得到[1~N]区间的偶数和。请根据函数f的声明语句及其功能完成函数代码设计。#include<iostream>usingnamespacestd;intf(intm);main(){intn;cout<<"pleaseentern";cin>>n;cout<<f(n);}27.无28.本题在主函数中给定个数N,通过调用自定义函数f得到[1~N]区间的奇数和。请根据函数f的声明语句及其功能完成f函数代码设计。#include<iostream>usingnamespacestd;intf(intm);main(){intn;cout<<"pleaseentern";cin>>n;cout<<f(n);}35.通过调用自定义函数f求有规律的数列{1,2,4,8,16,…}中前n项之和,其中n在主函数中给定。请根据函数f的声明语句及其功能完成f函数代码设计。#include<iostream>usingnamespacestd;intf(intm);main(){intn;cout<<"pleaseentern";cin>>n;cout<<f(n);}36.通过调用自定义函数f求有规律的数列{1,4,9,16,25,…}中前n项之和,其中n在主函数中给定。请根据函数f的声明语句及其功能完成f函数代码设计。#include<iostream>usingnamespacestd;intf(intm);main(){intn;cout<<"pleaseentern";cin>>n;cout<<f(n);}37.本题在主函数中给定个数N,通过调用自定义函数f得到[1~N]区间中能被3整除的数之和。请根据函数f的声明语句及其功能完成f函数代码设计。#include<iostream>usingnamespacestd;intf(intm);main(){intn;cout<<"pleaseentern";cin>>n;cout<<f(n);}44.根据下列要求和提示,编写一个函数f(N)判断某数N是否为水仙花数,N由主函数给出;如果N是水仙花数则函数值返回1,N不是水仙花数则函数值返回0。水仙花数的定义是:它是一个三位的正整数,且它等于其各位数字的立方和。如153就是一个水仙花数。#include<iostream>usingnamespacestd;intf(intN);voidmain(){intN;cin>>N;if(f(N)==1)cout<<N<<"ShiShuiXianHuaShu!"<<endl;elsecout<<N<<"BuShiShuiXianHuaShu!"<<endl;}45.本题已给出了自定义函数isprime(a),其功能是判断一个数a是否为素数。请编写主函数,对给定的正整数m和k,找出大于或等于m且紧靠m的k个素数,输出找到的k个素数。#include<iostream>usingnamespacestd;intisprime(intt){intk;for(k=2;k<t;k++)if(t%k==0)return0;return1;}46.根据下列要求和提示,编写一个函数f(N)判断某数N是否为素数,N由主函数给出;如果N是素数则函数值返回1,N不是素数则函数值返回0。素数的定义如下:一个大于1的正整数,如果它只能被1和本身整除而不能被其它任何整数整除,则它是素数。#include<iostream>usingnamespacestd;intf(intN);voidmain(){intN;cin>>N;if(f(N)==1)cout<<N<<"ShiSuShu!"<<endl;elsecout<<N<<"BuShiSuShu!"<<endl;}47.根据下列要求和提示,编写一个函数f(N)判断某数N是否为“完全数”,N由主函数给出;如果N是“完全数”则函数值返回1,N不是“完全数”则函数值返回0。“完全数”定义如下:如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。如:6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。#include<iostream>usingnamespacestd;intf(intN);voidmain(){intN;cin>>N;if(f(N)==1)cout<<N<<"ShiWanQuanShu!"<<endl;elsecout<<N<<"BuShiWanQuanShu!"<<endl;}48.根据下列要求和提示,编写一个函数f(N)判断某数N是否为“自同构数”,N由主函数给出;如果N是“自同构数”则函数值返回1,N不是“自同构数”则函数值返回0。“自同构数”定义如下:如果一个自然数的平方的末几位恰好与该自然数相同,则称该自然数为“自同构数”。如:5就是一个“自同构数”,因为5的平方等于25,25的末尾与5相同。#include<iostream>#include<math.h>usingnamespacestd;intf(intN);voidmain(){intN;cin>>N;if(f(N)==1)cout<<N<<"ShiTongGouShu!"<<endl;elsecout<<N<<"BuShiTongGouShu!!"<<endl;}49.根据下列要求和提示,编写一个函数f(N)判断某数N是否为三位的“回文数”,N由主函数给出;如果N是三位的“回文数”则函数值返回1,N不是三位的“回文数”则函数值返回0。“回文数”是指正读和反读都是一样的正整数,如:5,121都是回文数。#include<iostream>#include<math.h>usingnamespacestd;intf(intN);voidmain(){intN;cin>>N;if(f(N)==1)cout<<N<<"ShiSanWeiHuiWenShu!"<<endl;elsecout<<N<<"BuShiSanWeiHuiWenShu!"<<endl;}50.本题要求编写一个函数intf(intn,intm,intk),求n-m之间不能被k整除的数的个数,其中n、m、k由主函数给定,请根据要求完成程序代码设计。#include<iostream>usingnamespacestd;intf(intn,intm,intk);voidmain(){inta,b,c,h;cin>>a>>b>>c;h=f(a,b,c);cout<<h;}51.本题要求输入20个数,然后求出这20个数中能被7整除的数的个数。用一个主函数实现,请根据要求完成程序代码设计。#include<iostream>usingnamespacestd;#difineN2052.本题要求输入10个数,然后求这10个数中不能被3整除的数的个数。用一个主函数实现,请根据要求完成程序代码设计。#include<iostream>usingnamespacestd;#difineN1053.本题要求输入10个数到数组a,输入给定数x,然后求数组中x出现的次数。用一个主函数实现,请根据要求完成程序代码设计。#include<iostream>usingnamespacestd;#difineN1054.本题要求输入一个班每位同学的成绩到数组a,然后求80分以上同学的人数。用一个主函数实现,请根据要求完成程序代码设计。#include<iostream>usingnamespacestd;#difineN4055.本题要求编写一个函数fac(intn),求n!的运算结果,n的值在main函数中由键盘输入。请根据要求完成程序代码。#include<iostream>usingnamespacestd;longfac(intn);56.本题求组合通过调用自定义函数fac(intn),求得n的阶乘值。请根据函数fac的声明语句及其功能实现fac函数,并完成求组合的完整程序。#include<iostream>usingnamespacestd;longintfac(intn);57.编写函数f(N)求m=1*3*5*7*9*…*N的值,N的值在主函数中给定,m值由函数f返回给主函数。请根据要求完成程序代码。#include<iostream>usingnamespacestd;longf(intN);voidmain(){intn;cin>>n;cout<<f(n);}58.编写函数f(N)求m=2*4*6*8*10*…*2N的值,N的值在主函数中给定,m值由函数f返回给主函数。请根据要求完成程序代码。#include<iostream>usingnamespacestd;longf(intN);voidmain(){intn;cin>>n;cout<<f(n);}59.求m=an的值(例如,81=34),其中a和n的值在主函数中给定,m值由函数f返回给主函数。请根据要求完成程序代码。longf(inta,intn);voidmain(){inta,n;cin>>a>>n;cout<<f(a,n);}60.编写函数f(N)求m=(a+b)n的值,其中a、b、n的值在主函数中给定,m值由函数f返回给主函数。请根据要求完成程序代码。#include<iostream>usingnamespacestd;longf(inta,intb,intn);voidmain(){inta,b,n;cin>>a>>b>>n;cout<<f(a,b,n);}61.无62.本题要求编写一个函数intf(intN,intm),求[1,N](N>100)之间能被m整除的数的个数(m是大于1的正整数),结果作为函数值返回。其中,N和m由主函数给定,完成程序代码设计。#include<iostream>usingnamespacestd;intf(intN,intm);voidmain(){intN,m;cin>>N;cin>>m;cout<<f(N,m)<<endl;}73.编写程序,求e的值,e≈1+1/1!+1/2!+1/3!+1/4!+...,取前50项。74.编写程序,求e的值,e≈1+1/1!+1/2!+1/3!+1/4!+...,最后一项的值小于1e-6。75.编写程序,输出从公元2000年至3000年间所有闰年的年号。判断公元年是否为闰年的条件是:(1)公元年数如能被4整除,而不能被100整除,是闰年。(2)公元年数能被400整除是闰年。76.请编写程序,输入一行字符(用回车结束),输出每个字符以及与之对应的ASCII代码值,每行输出三对。例如输入ABCDEF,则输出:A65B66C67D68E69F7077.请编写程序,输出由字符构成的金字塔形图案,图案的行数由输入的整数值确定(每行中字符之间没有空格)。例如输入行数5,则输出下图。78.请求出11!的个、十、百位上的数字之和。79.求方程3x-7y=1,在|x|<=100,|y|<=50内的整数解。(1)共有多少组整数解?(2)在各组解中,|x|+|y|最大值是多少?80.有十进制数字a,b,c,d和e,求满足式子:abcd*e=dcba(a非0,e非0非1)的四位数中:(1)共有多少个?(2)最小的abcd;(3)与之相对应的e。81.已知:F0=F2=1,F1=0,Fn=Fn-1-2Fn-2+Fn-3(当n>2)。当n∈[0,50]时,求:Fn中正数个数、最大正数、最小负数。要求编写函数intfun(int*max,int*min),Fn序列中正数个数作为函数返回值,max指向最大正数,min指向最小负数。main函数的定义如下:intmain(){intm=1,n=0,c;//m存放最大值,n存放最小值,c为正数个数c=fun(&m,&n);cout<<"序列中正数的个数:"<<c<<endl;cout<<"最大正数:"<<m<<"最小负数:"<<n<<endl;return0;}82.知a、b、c为正数,且a>b>c,a+b+c<100,满足:(1)共有多少组?(2)a+b+c最大的一组和最小的一组?83.求[700,800]之间的素数之和是多少?共几个?84.求s=1/2+2/3+3/4+…+(n-1)/n,,求n=30与n=50时s的值(精确到小数点后两位)?85.求出[900,1000]间有偶数个因子(这里因子不含1和自身)的数有多少个,其中最小的一个?86.已知:f(0)=0;f(1)=1;f(n)=f(n-1)+f(n-2)(当n>=2时)。求[1,5000]内f(n)为奇数的个数,其中最大的一个是多少?87.有以下表达式:分别求当n=5,8,10时表达式的值。88.已知某数列为:f(0)=f(1)=1;f(2)=0;f(n)=f(n-1)-3f(n-2)+2f(n-3),(n>2)。求f(0)到f(10)中的最大值和最小值,及值为0的个数。89.能被19整除又能被31整除且末位不是奇数的四位数有几个?最小的一个是多少?90.有一个分数序列:1/2,2/3,3/5,5/8,8/13,13/21。求:(1)这个序列的前20项之和;(2)第15项的值。91.所有能被13整除又能被17整除且末位不是偶数的三位数有几个?最大的一个?92.有一个7层灯塔,每层所点灯数都等于该层上一层的两倍,灯的总数是381盏,求:塔底灯数?第几层的灯数为48?93.设某四位数的各位数字的平方和等于100,求最大和最小的4位数是多少?共多少个?94.一球从100米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?95.求出[1,1000]间有奇数个因子的数有多少个,其中最大的一个?96.有一个分数系列:2/1,3/2,5/3,8/5,13/8,21/13,……,请求出这一数列的前20项之和。97.有3个红球,5个白球,6个黑球,从中任意取出8个球,且其中必须有白球,请求出共有多少种取法?98.请求出[10,1000]间每位数的数字乘积大于每位数字的和的数有多少个?例如:98:9*8>(9+8)。99.若用0至9之间不同的三个数构成一个三位数,请问共有多少种方法?100.鸡兔共30只,脚共有90个,请计算鸡兔各多少只?101.编写程序,求1-3+5-7+...+-99+101的值。102.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天后能卖完?103.求数列1,3,3,3,5,5,5,5,5,7,7,7,7,7,7,7……。求:第40项的值;值为17的第1个数是数列中第几项?138.完成以下主函数,在具有n个元素的一维数组a(a[0],a[1],...,a[n-1])中查找等于y的元素的个数与下标。若有多个相等的元素,则输出最后一个相等元素的下标。其中,y的值由键盘输入,变量c存贮个数,变量m存放下标。例如,在a[10]={21,33,22,33,45,46,32,21,33,4}查找33,个数为3,下标为8。#include<iostream>usingnamespacestd;voidmain(){inta[10]={21,33,22,33,45,46,32,21,33,4};inty,c,m;//----以下开始自编代码----//----以上为自编代码----cout<<"a中值为y的元素个数"<<c<<"最后一个下标为"<<m<<endl;}判断x是否为素数,若是返回1,否则返回0.intis_complet(intx){intn,s=1;for(n=2;n<x;n++)if(x%n==0)s=s+nif(x==s)return1;elsereturn0;}四.编程题13.编写一个自定义函数:intf(longa[],intn,longx),f()的功能是:对给定的含有n个元素的一维数组a及某个指定数x,查找数组a中是否存在元素值等于x的元素,若存在,则函数值返回找到的下标最大的那个元素的下标;若不存在,则函数值返回-1。#include<iostream>usingnamespacestd;intf(longa[],intn,longx);voidmain(){longx=7;longa[5]={3,5,2,7,9};cout<<f(a,5,x)<<endl;}14.编写一个自定义函数:intf(longa[],intn,longx),f()的功能是:对给定的一维数组a及某个指定数x,找出数组a中元素值等于x的元素个数,以及最后一个值为x的元素所在位置下标。在函数中输出这两个结果,并将找到的元素个数作为函数值返回。#include<iostream>usingnamespacestd;intf(longa[],intn,longx);voidmain(){longx=7;longa[5]={3,7,2,7,9};cout<<f(a,5,x)<<endl;}15.编写一个自定义函数:intf(longa[],intn,longx),f()的功能是:对给定的含有n个元素的一维数组a及某个指定数x,查找数组a中是否存在元素值等于x的元素,若存在,则函数值返回找到的下标最小的那个元素的下标;若不存在,则函数值返回-1。#include<iostream>usingnamespacestd;intf(longa[],intn,longx);voidmain(){longx=8;longa[5]={3,7,2,7,9};cout<<f(a,5,x)<<endl;}25.本题在主函数中给定数组a及其元素个数n,通过调用自定义函数f,使数组a的元素反序存放:即第1个位置的元素与倒数第1个位置的元素交换,第2个位置的元素与倒数第2个位置的元素交换,…,如此类推。交换的元素组数与元素总数n有关。要求n在主函数中给定。根据主函数代码和函数f的声明,完成自定义函数设计。#include<iostream>usingnamespacestd;voidf(intx[],intn);voidmain(){inti,a[10];for(i=0;i<=10-1;i++)cin>>a[i];f(a,10);for(i=0;i<=10-1;i++)cout<<a[i]<<',';}29.本题在主函数中给定数组a及其元素个数n,通过调用自定义函数f得到给定数组中的所有元素之和。请根据函数f的声明语句及其功能完成f函数代码设计。#include<iostream>usingnamespacestd;#defineN10intf(intx[],intn);voidmain(){inti,a[N];for(i=0;i<=N-1;i++)cin>>a[i];cout<<f(a,N);}30.本题在主函数中给定数组a及其元素个数n,通过调用自定义函数f求给定一维数组中所有下标为偶数的元素之和。请根据函数f的声明语句及其功能完成函数代码设计。#include<iostream>usingnamespacestd;#defineN10intf(intx[],intn);voidmain(){inti,a[N];for(i=0;i<=N-1;i++)cin>>a[i];cout<<f(a,N);}31.本题在主函数中给定数组a及其元素个数n,通过调用自定义函数f求给定一维数组中所有下标为奇数的元素之和。请根据函数f的声明语句及其功能完成函数代码设计。#include<iostream>usingnamespacestd;#defineN10intf(intx[],intn);voidmain(){inti,a[N];for(i=0;i<=N-1;i++)cin>>a[i];cout<<f(a,N);}32.本题在主函数中给定方阵数组a及其行数(列数)M,通过调用自定义函数f求给定二维数组中所有上三角元素(不含主对角线)之和,例如:数组a的元素如下:123456789其上三角的元素和为11。请根据函数f的声明语句及其功能完成f函数代码设计。#include<iostream>usingnamespacestd;#defineM3intf(intx[][M]);voidmain(){inti,j,a[M][M];for(i=0;i<=M-1;i++)for(j=0;j<=M-1;j++)cin>>a[i][j];cout<<f(a);}33.本题在主函数中给定方阵数组a及其行数(列数)M,通过调用自定义函数f求给定二维数组中所有下三角元素(不含主对角线)之和。请根据函数f的声明语句及其功能完成f函数代码设计。#include<iostream>usingnamespacestd;#defineM3intf(intx[][M]);voidmain(){inti,j,a[M][M];for(i=0;i<=M-1;i++)for(j=0;j<=M-1;j++)cin>>a[i][j];cout<<f(a);}34.本题在主函数中给定方阵数组a及其行数(列数)M,通过调用自定义函数f求给定二维数组中所有主对角线上元素之和。请根据函数f的声明语句及其功能完成f函数代码设计。#include<iostream>usingnamespacestd;#defineM3intf(intx[][M]);voidmain(){inti,j,a[M][M];for(i=0;i<=M-1;i++)for(j=0;j<=M-1;j++)cin>>a[i][j];cout<<f(a);}38.编写自定义函数f()的功能是找出一个数组a中第3大的元素,将该元素的值作为函数值返回,数组a及其元素个数m由主函数给定。根据自定义函数f的声明语句和功能编写f函数的代码。#include<iostream>usingnamespacestd;intf(inta[],intm);main(){inta[10]={21,33,22,23,45,46,32,21,3,4};cout<<"Theresultis"<<f(a,10)<<endl;}39.编写函数f(),求具有n个元素的一维数组a中最大元素的下标(如果有多个并列最大的元素,则以最后一个为准)。其中,数组a及其元素个数n由主函数给定。#include<iostream>usingnamespacestd;intf(inta[],intn);main(){inta[10]={21,33,22,23,45,46,32,21,3,4};cout<<"Theresultis"<<f(a,10)<<endl;}40.编写函数f(),求具有n个元素的一维数组a中最大偶数元素的下标,函数值返回该元素下标;若无偶元素,函数值返回-1。如果有多个并列最大的偶数元素,则以最后一个为准。其中,数组a及其元素个数n由主函数给定。#include<iostream>usingnamespacestd;intf(inta[],intn);main(){inta[10]={21,33,22,23,45,46,32,21,3,4};cout<<"Theresultis"<<f(a,10)<<endl;}41.编写函数f(),求具有n个元素的一维数组a中最大奇数元素的下标,函数值返回该元素下标;若无奇元素,函数值返回-1。如果有多个并列最大的奇数元素,则以最后一个为准。其中,数组a及其元素个数n由主函数给定。#include<iostream>usingnamespacestd;intf(inta[],intn);main(){inta[10]={21,33,22,23,45,46,32,21,3,4};cout<<"Theresultis"<<f(a,10)<<endl;}42.编写函数f(),求具有M行N列的二维数组中最大元数的值。其中,数组a及其行数m由主函数调用语句的实参给定。#include<iostream>usingnamespacestd;#defineM3#defineN4intf(inta[][N],intm);main(){inta[M][N];for(inti=0;i<M;i++)for(intj=0;j<N;j++)cin>>a[i][j];cout<<"Theresultis"<<f(a,M)<<endl;}43.编写函数f(),计算具有n个元素的一维数组a中每组相邻两个数的差,找出其中的最大差作为函数值返回。#include<iostream>usingnamespacestd;#defineM5intf(inta[],intn);main(){inti,a[M];for(i=0;i<M;i++)cin>>a[i];cout<<"Theresultis"<<f(a,M)<<endl;}1.编写函数intf(intx[],intn),求出20个数中的最大数,并在以下main函数中进行测试。#include<iostream.h>voidmain(){inta[]={1,4,6,7,3,9,10,30,59,32,48,72,87,13,27,45,64,8,2,6};cout<<"a中最大值为:"<<f(a,20)<<endl;}四.编程题73.编写程序,求e的值,e≈1+1/1!+1/2!+1/3!+1/4!+...,取前50项。74.编写程序,求e的值,e≈1+1/1!+1/2!+1/3!+1/4!+...,最后一项的值小于1e-6。75.编写程序,输出从公元2000年至3000年间所有闰年的年号。判断公元年是否为闰年的条件是:(1)公元年数如能被4整除,而不能被100整除,是闰年。(2)公元年数能被400整除是闰年。76.请编写程序,输入一行字符(用回车结束),输出每个字符以及与之对应的ASCII代码值,每行输出三对。例如输入ABCDEF,则输出:A65B66C67D68E69F7077.请编写程序,输出由字符构成的金字塔形图案,图案的行数由输入的整数值确定(每行中字符之间没有空格)。例如输入行数5,则输出下图。78.请求出11!的个、十、百位上的数字之和。79.求方程3x-7y=1,在|x|<=100,|y|<=50内的整数解。(1)共有多少组整数解?(2)在各组解中,|x|+|y|最大值是多少?80.有十进制数字a,b,c,d和e,求满足式子:abcd*e=dcba(a非0,e非0非1)的四位数中:(1)共有多少个?(2)最小的abcd;(3)与之相对应的e。81.已知:F0=F2=1,F1=0,Fn=Fn-1-2Fn-2+Fn-3(当n>2)。当n∈[0,50]时,求:Fn中正数个数、最大正数、最小负数。要求编写函数intfun(int*max,int*min),Fn序列中正数个数作为函数返回值,max指向最大正数,min指向最小负数。main函数的定义如下:intmain(){intm=1,n=0,c;//m存放最大值,n存放最小值,c为正数个数c=fun(&m,&n);cout<<"序列中正数的个数:"<<c<<endl;cout<<"最大正数:"<<m<<"最小负数:"<<n<<endl;return0;}82.知a、b、c为正数,且a>b>c,a+b+c<100,满足:(1)共有多少组?(2)a+b+c最大的一组和最小的一组?83.求[700,800]之间的素数之和是多少?共几个?84.求s=1/2+2/3+3/4+…+(n-1)/n,,求n=30与n=50时s的值(精确到小数点后两位)?85.求出[900,1000]间有偶数个因子(这里因子不含1和自身)的数有多少个,其中最小的一个?86.已知:f(0)=0;f(1)=1;f(n)=f(n-1)+f(n-2)(当n>=2时)。求[1,5000]内f(n)为奇数的个数,其中最大的一个是多少?87.有以下表达式:分别求当n=5,8,10时表达式的值。88.已知某数列为:f(0)=f(1)=1;f(2)=0;f(n)=f(n-1)-3f(n-2)+2f(n-3),(n>2)。求f(0)到f(10)中的最大值和最小值,及值为0的个数。89.能被19整除又能被31整除且末位不是奇数的四位数有几个?最小的一个是多少?90.有一个分数序列:1/2,2/3,3/5,5/8,8/13,13/21。求:(1)这个序列的前20项之和;(2)第15项的值。91.所有能被13整除又能被17整除且末位不是偶数的三位数有几个?最大的一个?92.有一个7层灯塔,每层所点灯数都等于该层上一层的两倍,灯的总数是381盏,求:塔底灯数?第几层的灯数为48?93.设某四位数的各位数字的平方和等于100,求最大和最小的4位数是多少?共多少个?94.一球从100米高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?95.求出[1,1000]间有奇数个因子的数有多少个,其中最大的一个?96.有一个分数系列:2/1,3/2,5/3,8/5,13/8,21/13,……,请求出这一数列的前20项之和。97.有3个红球,5个白球,6个黑球,从中任意取出8个球,且其中必须有白球,请求出共有多少种取法?98.请求出[10,1000]间每位数的数字乘积大于每位数字的和的数有多少个?例如:98:9*8>(9+8)。99.若用0至9之间不同的三个数构成一个三位数,请问共有多少种方法?100.鸡兔共30只,脚共有90个,请计算鸡兔各多少只?101.编写程序,求1-3+5-7+...+-99+101的值。102.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天后能卖完?103.求数列1,3,3,3,5,5,5,5,5,7,7,7,7,7,7,7……。求:第40项的值;值为17的第1个数是数列中第几项?138.完成以下主函数,在具有n个元素的一维数组a(a[0],a[1],...,a[n-1])中查找等于y的元素的个数与下标。若有多个相等的元素,则输出最后一个相等元素的下标。其中,y的值由键盘输入,变量c存贮个数,变量m存放下标。例如,在a[10]={21,33,22,33,45,46,32,21,33,4}查找33,个数为3,下标为8。#include<iostream>usingnamespacestd;voidmain(){inta[10]={21,33,22,33,45,46,32,21,33,4};inty,c,m;//----以下开始自编代码----//----以上为自编代码----cout<<"a中值为y的元素个数"<<c<<"最后一个下标为"<<m<<endl;}判断x是否为素数,若是返回1,否则返回0.intis_complet(intx){intn,s=1;for(n=2;n<x;n++)if(x%n==0)s=s+nif(x==s)return1;elsereturn0;}C++模拟考试题型分值题数单选题2121填空题4414问答题255编程题101一单选题(21分,21题)1.下列关于C++流的描述中,错误的是

A

cout>>'A'表达式可输出字符A

B

eof()函数可以检测是否到达文件尾

C

对磁盘文件进行流操作时,必须包含头文件fstream

D

以ios_base::out模式打开的文件不存在时,将自动建立一个新文件

参考答案

A2.下列字符串中可以用作C++标识符的是

A

2009var

B

goto

C

test-2009

D

_123

参考答案

D3.有以下程序:#include<iostream.h>charfun(charx,chary){if(x<y)returnx;returny;}voidmain(){inta='9',b='8',c='7';cout<<fun(fun(a,b),fun(b,c))<<endl;}程序的执行结果是________。A函数调用出错B8C9D7参考答案D4.已知表达式++a中的“++”是作为成员函数重载的运算符,则与++a等效的运算符函数调用形式为

A

.operator++(1)

B

operator++(a)

C

operator++(a,1)

D

a.operator++()

参考答案

D5.下列关于函数模板的描述中,错误的是

A

从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准

B

对于常规参数所对应的模板实参,任何情况下都不能省略

C

虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参

D

模板参数表不能为空

参考答案

A6.要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是

A

ifstreamfin=ifstream.open("file.dat");

B

ifstream*fin=newifstream("file.dat");

C

ifstreamfin;fin.open("file.dat");

D

ifstream*fin=newifstream();fin->open("file.dat");

参考答案

D7.执行语句序列:

intx=1,&y=x;

cout<<x<<'-'<<y<<endl;

输出的结果是(

)。

A

x-x

B

1-1

C

1-0

D

异常

参考答案

B8.有下列程序:

#include<iostream.h>

voidmain(

)

{

inti,k,a[10],p[3];

k=5;

for(i=0;i<9;i++)

a[i]=i;

for(i=0;i<3;i++)

p[i]=a[i*(i+1)];

for(i=0;i<3;i++)

k+=p[i]*2;

cout<<k;

}

其输出结果是(

)。

A

20

B

21

C

22

D

23

参考答案

B9.以下对派生类叙述不正确的是__________。

A

一个派生类可以作另一个派生类的基类

B

一个派生类可以有多个基类

C

具有继承关系时,基类成员在派生类中的访问权限不变

D

派生类的构造函数与基类的构造函数有成员初始化参数传递关系

参考答案

C10一个类的友元函数能够访问该类的__________。

A

私有成员

B

保护成员

C

公有成员

D

所有成员

参考答案

D11.派生类的成员函数不能访问基类的__________。

A

公有成员和保护成员

B

公有成员

C

私有成员

D

保护成员

参考答案

C12.下列关于动态联编的描述中,错误的是(

)。

A

动态联编是以虚函数为基础

B

动态联编是运行时确定所调用的函数代码的

C

动态联编调用函数操作是指向对象的指针或对象引用

D

动态联编是在编译时确定操作函数的

参考答案

D13.C++类体系中,不能被派生类继承的有(

)。

A

构造函数

B

虚函数

C

静态成员函数

D

赋值操作函数

参考答案

A14.定义生成非静态变量时,将(

)。

A

对变量自动赋初值

B

对变量自动赋0

C

不会对变量自动赋初值

D

变量自动赋-1

参考答案

C15下列关于c++源程序正确的说法是

A

每行只能写一个语句

B

每条语句(包括预处理命令)必须以分号结束

C

注释语句会生成机器码

D

最好向右缩进表达程序的层次结构

参考答案

D16不属于c++源程序的独立部分是_______。

A

声明部分

B

存储区分配部分

C

编辑预处理部分

D

函数部分

参考答案

B17.假定所有变量均已正确说明,下列程序段运行后,x的值是(

)。a=b=c=0;x=35;if(!a)

x--;else

if(b);

if(c)

x=3;

else

x=4;A

34

B

4

C

35

D

3

参考答案

B18.设有以下类和对象的定义:classA{public:

intk;};A

x1,x2,*p1,*p2;则下面针对成员变量k的引用,正确的是(

)。A

x1->k=1;

B

x2.k=2;

C

p1.k=3;

D

(*p2)->k=4;

参考答案

B19.有关符号常量不正确的说法是_______。

A

增加了程序执行速度

B

增强程序的可读性

C

书写简单,不易出错

D

修改程序方便

参考答案

A20.下列标识符正确的是________。

A

1asd

B

_swe

C

‘swe

D

@aws

参考答案

B21.以下各组选项中,均能正确定义二维实型数组a的选项是()。

A

floata[3][4];floata[][4];floata[3][]={{1},{0}};

B

floata(3,4);floata[3][4];floata[][]={{0},{0}};

C

floata[3][4];floata[][4]={{0},{0}};floata[][4]={{0},{0},{0}};

D

floata[3][4];floata[3][];floata[][4];

参考答案

C二填空题(44分,14题)若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为__1__。参考答案1:double类型或double型或双精度或双精度类型或双精度型或double2.有如下类定义:classSample{public:Sample();~Sample();private:staticintdata;};将静态数据成员data初始化为0的语句是__1__。参考答案1:intSample::data=0;3.以下程序显示输出倒三角图案。

#include<iostream.h>

voidmain()

{

inti,j;

for(i=0;i<4;i++)

{

for(j=0;j<i;j++)

cout<<"";

for(j=0;j<2*(3-i)-1;j++)

cout<<__1__;

cout<<__2__;

}

}

填空以完成该程序。参考答案1:"*"或'*'2:endl或'\n'或"\n"4.继承的方式有公有继承、私有继承和__1__3种。参考答案1:保护继承5.数组的指针就是数组的__1__。参考答案1:数组名或首地址或起始地址或地址6.一个变量的引用变量名是该变量的__1__。参考答案1:别名7.执行typedefintABC[10];语句把ABC定义为具有__1__个整型元素的数组类型。参考答案1:十或108.若在I/O流的输出中使用控制符setfill()设置填充字符,应包含的头文件是__1__。参考答案1:iomanip.h或iomanip9.输入一个正整数,求该数的阶乘。#include<iostream>usingnamespacestd;intmain(){inti,n;longintfact=1;cout<<"请输入一个正整数:";__1__;for(i=2;i<=n;i++)__2__*=i;cout<<n<<"!="<<fact<<endl;return0;}参考答案1:cin>>n2:fact10.用“枚举法”求解百元买百鸡问题。假定公鸡5元1只,母鸡3元1只,小鸡1元3只,现在有100元钱要买100只鸡,且需包含公鸡、母鸡和小鸡,编程列出所有可能的购鸡方案。#include<iostream>usingnamespacestd;intmain(){intx,y,z;cout<<"公鸡数\t"<<"母鸡数\t"<<"小鸡数\t"<<endl;for(x=1;x<=19;x++)for(y=1;y<=31;y++){z=__1__;if(__2__==100)cout<<x<<'\t'<<y<<'\t'<<z<<endl;}return0;}参考答案1:100-x-y2:5*x+3*y+z/3.011.输入两个整数a和b,按从小到大的顺序输出这两个数。#include<iostream>usingnamespacestd;intmain(){inta,b,t;cout<<"请输入两个整数a,b:"<<endl;cin>>a>>b;if(a>b){__1__;a=b;__2__;}cout<return0;}参考答案1:t=a2:b=t12.自加和自减的两种形式是__1__和后缀。参考答案1:前缀13.虚函数从表现形式上看是指那些被__1__关键字修饰的成员函数。参考答案1:virtual14.重载的关系运算符和逻辑运算符的返回类型应当是__1__。参考答案1:bool类型或bool型或布尔或布尔类型或布尔型或逻辑或逻辑型或逻辑类型或bool三问答题(25分,5题)1.阅读以下程序:写出当j=1时,程序运行时的输出结果:

参考答案

s=182.如下程序运行时,输出a[4]值是多少?

#include<iostream>

usingnamespacestd;int

main(){

int

i,j,a[5]={1,0,0,0,0};

for(j=0;j<5;j++)

for(i=0;i<j;++i)

a[j]=a[j]+a[i];

cout<<"a[4]="<<a[4]<<endl;

return0;}

参考答案

83.考题所在章节:数组

本题序号:27

考题难度:简单

考题说明:#include<iostream.h>

voidmain()

{inti;

inta[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++)

cout<<a[2-i][i]<<’\t’cout<<endl;

}

参考答案

7534.有如下程序:#include<iostream>usingnamespacestd;classVAC{public:

intf()const{return3;}

intf(){return5;}};intmain(){

VACv1;

constVACv2;

cout<<v1.f()<<v2.f();

return0;

}写出其运行时的输出结果。

参考答案

535.#include<iostream>#include<iomanip>usingnamespacestd;constintN=10;intmain(){inti=1;

for(;i<=N;i++)

{

if(i%5!=0)

continue;

cout<<setw(5)<<i;

}

cout<<endl;

return0;}

参考答案

510四编程题(10分,1题)编写一个自定义函数:intf(intM,intN),f()的功能是:对给定的正整数M和N,找出满足方程"5x+6y=M"的正整数解中x和y都是偶数的解。要求:若M和N不都是正整数,则结束函数并返回-1;只有M和N都是正整数时,才继续求解操作,并用二重循环进行求解:(1)在函数中输出满足条件的正整数解x和y,(2)使函数值返回满足条件的正整数解的组数。#include<iostream>usingnamespacestd;intf(intM,intN);voidmain(){

cout<<f(500,650)<<endl;

}二.填空题考题所在章节:C++基础知识本题序号:440考题难度:简单考题说明:C++中的一个三目运算符是__1__。参考答案1:?:或条件运算符或?:考题所在章节:自定义数据类型本题序号:412考题难度:简单考题说明:动态分配内存使用关键字__1__,释放内存使用关键字delete。参考答案1:new考题所在章节:多态性与虚函数本题序号:408考题难度:简单考题说明:如果一个类至少有一个纯虚函数,那么就称该类为__1__。参考答案1:抽象类考题所在章节:输入输出流本题序号:383考题难度:简单考题说明:表达式cout<<’\n’还可以表示为__1__。参考答案1:cout<<endl考题所在章节:模板本题序号:320考题难度:简单考题说明:在模板声明中用"<"和">"括起来的部分是模板的__1__。参考答案1:形参表或形参列表考题所在章节:数组本题序号:221考题难度:中等考题说明:下面函数的功能是从数组x(有n>0个元素)中找出最大元素,请将函数补充完整。intfindmax(intx[],intn){intmax=__1__;for(inti=1;i<n;i++)if(x[i]>max)__2__;returnmax;}参考答案1:x[0]2:max=x[i]考题所在章节:C++基础知识本题序号:176考题难度:简单考题说明:n个字符的字符串存储占用的字节数为__1__,结尾的ASCII码值为0。参考答案1:1+n或n+1考题所在章节:程序控制结构本题序号:148考题难度:中等考题说明:求1000内所有的完数。所谓“完数”是指与其因子之和相等的数(除本身之外)。例如:6=1+2+3,而1、2和3都是6的因子。要求以如下形式输出:6——>1,2,3。#include<iostream>usingnamespacestd;intmain(){inti,j,sum;for(i=2;i<=1000;i++){for(sum=1,j=2;j<=i/2;j++)//求i的因子和if(i%j==0)sum+=j;if(__1__)//判断i是否为完数{cout<<i<<"-->1";for(j=2;j<=i/2;j++)//按指定格式输出完数if(i%j==0)cout<<','<<__2__;cout<<endl;}}return0;}参考答案1:sum==i或i==sum2:j考题所在章节:类与对象本题序号:111考题难度:中等考题说明:已知main函数中有A类对象ab,程序的运行结果为12,请完成以下代码:#include<iostream.h>classA{public:intx,y;voiddisplay(){cout<<x<<y;}};voidmain(){__1__;ab.x=1;__2__;ab.display();}参考答案1:Aab或Aab;2:ab.y=2考题所在章节:程序控制结构本题序号:60考题难度:简单考题说明:break语句用于结束整个循环,__1__语句用于结束本次循环。参考答案1:continue评阅教师:曹岳辉考题所在章节:程序控制结构本题序号:53考题难度:简单考题说明:符合结构化原则的三种基本控制结构是:选择结构、循环结构和__1__。参考答案1:顺序结构考题所在章节:程序控制结构本题序号:29考题难度:中等考题说明:根据输入的年、月,判断该月的天数。例如,2008年2月的天数为29天,2010年5月为31天。完成以下程序:#include<iostream.h>voidmain(){intyear,month,days;cout<<"请输入年,月:";cin>>year>>month;switch(month){case1:case3:case5:case7:case8:case10:case12:days=31;__1__case4:case6:case9:case11:days=30;break;case2:if(!(year%400)||!(year%4)&&year%100)__2__;elsedays=28;}cout<<year<<"年"<<month<<"月的天数为:"<<days<<endl;}参考答案1:break;或break2:days=29或days=29;考题所在章节:类与对象本题序号:583考题难度:简单考题说明:假定用户为类AB定义了一个构造函数“AB(intaa):a(aa){}”,则定义该类的对象时,有__1__种定义格式。参考答案1:1或一考题所在章节:数组本题序号:520考题难度:复杂考题说明:以下程序从键盘输入N个整数,用选择法排序法按从小到大的次序输出。#include<iostream.h>#defineN10voidmain(){inti,j,min,temp,a[N];for(i=0;i<N;i++)//输入N个数cin>>__1__;for(i=0;__2__;i++){min=i;for(j=i;j<N;j++)if(a[min]>a[j])__3__;temp=a[i];a[i]=a[min];a[min]=temp;}for(i=0;i<N;i++)//输出排序后的数cout<<a[i]<<"\t";cout<<endl;}参考答案1:a[i]2:i<N-1或i<=N-2或N-1>i或N-2>=i3:min=j或min=j;考题所在章节:继承与派生本题序号:484考题难度:中等考题说明:虚函数不得声明为__1__函数。参考答案1:静态考题所在章节:输入输出流本题序号:405考题难度:简单考题说明:C++的文本文件格式,存取的最小信息单位为__1__。参考答案1:字节成员函数有实函数、虚函数和__1__3种。参考答案1:纯虚函数考题所在章节:模板本题序号:321考题难度:简单考题说明:有如下函数模板声明:template<typenameT>TMax(Ta,Tb){return(a>=b)?a:b;}函数模板的实例Max('A','F')的参数T的类型为__1__。(注意:用英文答题)参考答案1:char考题所在章节:指针本题序号:223考题难度:简单考题说明:有以下定义和语句inta[3][2]={1,2,3,4,5,6,},*p[3];p[0]=a[1];则输出*(p[0]+1)的值为__1__。参考答案1:4考题所在章节:C++基础知识本题序号:176考题难度:简单考题说明:n个字符的字符串存储占用的字节数为__1__,结尾的ASCII码值为0。参考答案1:1+n或n+1考题所在章节:程序控制结构本题序号:140考题难度:中等考题说明:显示输出3~100之间的所有素数。#include<iostream>#include<cmath>usingnamespacestd;intmain(){cout<<"3~100之间的素数是:"<<endl;for(intm=3;m<100;m+=2){intk=int(sqrt(m));for(inti=2;i<=k;i++)if(m%i==0)__1__;if(__2__)cout<<m<<““;}cout<<endl;return0;}参考答案1:break2:k<i或i>k考题所在章节:自定义数据类型本题序号:123考题难度:简单考题说明:数组中的每一个元素必须是同一种数据类型,结构体中允许将__1__类型的数据组合成一种数据结构。参考答案1:多种或不同考题所在章节:数组本题序号:65考题难度:简单考题说明:数组的指针就是数组的__1__。参考答案1:数组名或首地址或起始地址或地址考题所在章节:C++基础知识本题序号:48考题难度:简单考题说明:有如下程序段:for(inti=1;i<=50;i++){if(i%3!=0)continue;elseif(i%5!=0)continue;cout<<i<<",";}执行这

温馨提示

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

评论

0/150

提交评论