版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【MOOC】《C++程序设计基础》(华中科技大学)章节作业中国大学慕课答案第1章——初识C++语言:从认识变量和常量开始,数据的表示第一章编程题1.信息的输出题目内容:编写程序要求在屏幕上输出:欢迎来到"华中科技大学"!输入格式:输出格式:输入样例:输出样例:欢迎来到"华中科技大学"!注意!是中文的感叹号。
答案:【】2.输出由输入的字符组成的如下形状的图形。题目内容:程序运行时输入一个字符,输出由该字符组成的如下形状的图形。******输入格式:数入一个Ascii表中的任意字符。如*,#等。输出格式:输出图形中字符之间有2个空格隔开,最左边的字符前有5个空格。输入样例:*输出样例:******
答案:【】第一章单元测试1.单选题:存储字符串“a+b=12\n\t”所占存储空间的字节数为()
选项:
A、8
B、9
C、10
D、11
答案:【9】2.单选题:在C++语言中,自定义的标识符()。
选项:
A、能使用关键字并且不区分大小写
B、不能使用关键字并且不区分大小写
C、能使用关键字并且区分大小写
D、不能使用关键字并且区分大小写
答案:【不能使用关键字并且区分大小写】3.单选题:转义字符“反斜杠线”的表示方法正确的是()。
选项:
A、\
B、\\
C、‘\’
D、“\”
答案:【\\】4.单选题:下面的变量说明中()是正确的。
选项:
A、char:a,b,c;
B、chara;b;c;
C、chara,b,c;
D、chara,b,c,
答案:【chara,b,c;】5.单选题:各种基本数据类型的存储空间正确的长度排列为()。
选项:
A、int<char<span=""><>
B、double<span=""><>
C、char
D、int<=char<span=""><>
答案:【char】6.单选题:下列不是C++语言基本数据类型的是()。
选项:
A、字符型
B、整型
C、浮点型
D、结构体
答案:【结构体】7.单选题:C++语言中普通整型变量int在内存中占()字节。
选项:
A、1
B、2
C、3
D、4
答案:【4】8.单选题:C++语言是()
选项:
A、机器语言
B、汇编语言
C、仅具有面向对象特征的语言
D、既表现面向对象的特征,又表现面向过程的特征
答案:【既表现面向对象的特征,又表现面向过程的特征】9.单选题:C++语言源程序文件名后缀为()。
选项:
A、.EXE
B、.OBJ
C、.cpp
D、.ASM
答案:【.cpp】10.单选题:以下关于C++语言描述错误的是()
选项:
A、一个C++程序总是从main函数开始执行
B、每个语句和数据声明的最后必须有一个分号
C、C++语言的注释符是以“/*”开始并以“*/”结束的
D、一个C++程序可以包含多个main函数
答案:【一个C++程序可以包含多个main函数】第2章——计算:从数据运算开始,数据简单运算第二章单元测试1.单选题:设有a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为()
选项:
A、0
B、1
C、2
D、3
答案:【2】2.单选题:intx=5,y=6;下列表达式结果为真的是()。
选项:
A、x==y--
B、x==++y
C、x++==y
D、x==--y
答案:【x==--y】3.单选题:判断字符型变量ch是否为大写英文字母,应使用表达式()。
选项:
A、ch>='A'&ch<='Z'
B、ch<='A'||ch>='Z'
C、'A'<=ch<='Z'
D、ch>='A'&&ch<='Z'
答案:【ch>='A'&&ch<='Z'】4.单选题:若int型变量x=29,double型变量y=6.0,则表达式x/y的值为()。
选项:
A、4.83333
B、4
C、5
D、5.0
答案:【4.83333】5.单选题:执行下面程序段的输出结果是()。intx=23,y=5,z;z=2+(y++,x+8,x++);cout<<<"="""<<<=""span=""><<">
选项:
A、2425
B、2426
C、2526
D、2525
答案:【2425】6.单选题:执行以下代码后,变量x、y、z的值分别为()intx=1,z=1,y=1,k;k=x++||++y&&++z
选项:
A、211
B、222
C、122
D、112
答案:【211】7.单选题:已知下列语句中的x和y都是int型变量,其中错误的语句()。
选项:
A、x=y++;
B、x=++y;
C、(x+y)++;
D、++x==y;
答案:【(x+y)++;】8.单选题:逗号表达式a=3,a++,a+=6的值是()。
选项:
A、10
B、9
C、11
D、12
答案:【10】9.单选题:已知intx=5,y=5,z=5;执行语句x%=y+z;后,x的值是()。
选项:
A、5
B、6
C、0
D、1
答案:【5】10.单选题:执行下列语句后,输出的结果是().inta=3,b=5;doublec=b/a;cout<<<span=""><<>
选项:
A、1.66666
B、1
C、1.0
D、1.7
答案:【1】第二章编程题1.将一个正整数逆序输出。题目内容:,程序读入一个正三位数,然后倒序输出该3位数。注意,输出时如果高位是0则不输出。比如输入700,则输出7。输入格式:输入一个3位的正整数。输出格式:输出逆序的数。输入样例:251输出样例:152
答案:【】2.根据输入的字符输出对应字符的Ascii值。题目内容:程序运行时可以输入26个英文字母中(a~x)范围内一个字符,输出从该字符开始的连续3个字符对应的Ascii值。输入格式:输入26个英文字母中(a~x)范围内的一个字符.输出格式:输出连续3个字符对应的ascii值,各数值之间间隔2个空格。输入样例:b输出样例:9899100
答案:【】3.计算表达式y=2^n+1的值题目内容:题目根据输入n的值(n值的范围-10~10)计算并输出y的值。输入格式:输入-10~10范围内的一个整数。输出格式:输出计算的y值。输入样例:2输出样例:5
答案:【】第3章——分支结构:无处不在的抉择第三章编程题1.编写程序,输入一门课程的成绩输出对应的等级。题目内容:输入一门课程的成绩,若大于等于90分,输出“Agrade”;若大于等于于80分而低于90分,输出“Bgrade”;若大于等于70分而低于80分,输出“Cgrade”;若大于等于60分而低于70分,输出“Dgrade”;否则输出“Notpassed”。输入格式:直接输入课程的成绩输出格式:输出对应的等级。注意输出时如果有空格的话一律是2个空格。输入样例:90.9输出样例:Agrade
答案:【】2.编写程序,输入一个整数,判断该数是否是3或7的倍数,可分为4种情况输出。题目内容:根据输入的数判断输出下列4种情况之一。①是3的倍数但不是7的倍数。②不是3的倍数但是7的倍数。③既是3的倍数也是7的倍数。④既不是3的倍数也不是7的倍数。输入格式:输入一个整数输出格式:输出上述四种情况的一种。注意个汉字间不要有任何空格,也没有标点符号输入样例:42输出样例:既是3的倍数也是7的倍数
答案:【】3.请编写程序根据快递商品的重量,单位为公斤,计算应付运费用。题目内容:某快递公司收取快递费的标准是:5公斤(包括5公斤)以下收费10元,超过5公斤后每2公斤收费5元,不足2公斤按2公斤收费。输入格式:直接输入商品的重量,单位为公斤。输出格式:直接输出应付的快递费,单位为元。输入样例:5.5输出样例:15
答案:【】第三章单元测试1.单选题:若inta=6,则执行完下列语句后,a的值为().if(a>10)a-=5;a+=5;
选项:
A、1
B、6
C、10
D、11
答案:【11】2.单选题:下面程序的运行结果是().#includeusingnamespacestd;intmain(){inti=10;switch(i){case9:i++;case10:++i;case11:i++;default:i=i+1;}cout<<<span=""><<>return0;}
选项:
A、9
B、10
C、11
D、13
答案:【13】3.单选题:下列描述正确的是()。
选项:
A、表示m>n1或mn1&&m<span=""><>
B、switch语句结构中必须有default语句
C、if语句结构中必须有else语句
D、如果至少有一个操作数为true,则包含"||"运算符的表达式为true
答案:【如果至少有一个操作数为true,则包含"||"运算符的表达式为true】4.单选题:以下代码执行后,a、b、c的值分别为()。inta=8,b=10,c=3;if(a>b)c=a;a=b;b=c;
选项:
A、1033
B、8103
C、1088
D、10108
答案:【1033】5.单选题:与表达式if(!k)等价的是()。
选项:
A、if(k==0)
B、if(k!=1)
C、if(-k)
D、if(k!=0)
答案:【if(k==0)】6.单选题:为了避免嵌套的if-else语句的二义性,C++语言规定else总是与()组成配对关系。
选项:
A、缩排位置相同的if
B、在其之前未配对的if
C、其之前未配对的最近的if
D、同一行上的if
答案:【其之前未配对的最近的if】7.单选题:下面程序的输出结果是().#includeusingnamespacestd;intmain(){inta=2,b=-1,c=2;if(a<span=""><>if(b<0)c=0;elsec+=1;cout<<<span=""><<>return0;}
选项:
A、0
B、1
C、2
D、3
答案:【2】8.单选题:执行语句序列intn;cin>>n;switch(n++){case1:case2:cout<<'1';case3:case4:cout<<'2';break;default:cout<<'3';}时,若键盘输入1,则屏幕显示()。
选项:
A、1
B、2
C、23
D、12
答案:【12】9.单选题:若x和y是程序中的两个整型变量,则下列if语句中正确的是()。
选项:
A、if(x==0)y=1;elsey=2;
B、if(x==0)theny=1elsey=2;
C、if(x==0)y=1elsey=2;
D、ifx==0y=1;elsey=2;
答案:【if(x==0)y=1;elsey=2;】10.单选题:#includeusingnamespacestd;intmain(){inta=3;if(a=5)cout<<<span=""><<>elsecout<<<span=""><<>return0;}程序的输出是()。
选项:
A、3
B、4
C、5
D、6
答案:【6】第4章——循环结构:周而复始,求同存异第四章编程题1.求和题目内容:编程计算s=a+aa+aaa+…+aaa…a(n个a),a的取值为0~9,n的取值为0~5,a和n由键盘输入例如:a=1,n=3,则s=1+11+111=123输入格式:输入a和n输出格式:s的值输入样例:23输出样例:s=246
答案:【】2.求整数的数根题目内容:对于一个正整数n,我们将它的各个位相加,得到一个新的数字,如果这个数是一位数,我们称之为n的数根,否则重复处理,直到它成为一个一位数,这个一位数就是n的数根。一位数的数根为0例如:24,2+4=6,6是24的数根398,3+9+8=20,2+0=2,2是398的数根输入格式:输入n输出格式:n的数根输入样例:789输出样例:6
答案:【】3.求函数s(n)的值题目内容:输入n,求以下函数的值s(n)=2/1+3/2+…+(n+1)/n输入格式:输入n输出格式:输出s(n)的值输入样例:5输出样例:7.28333
答案:【】第四章练一练-----经典提高题---不计入MOOC总成绩---1.计算1分钱、2分钱、5分钱组成1元钱的组合。提示:用穷举法解题目内容:编程计算用1分钱、2分钱、5分钱组成1元钱的方式所有可能组合数,然后输出所有可能组合数。例如:100个1分+0个2分+0个5分,0个1分+50个2分+0个5分,0个1分+0个2分+20个5分均可以组成1元。输入格式:无输出格式:直接输出计算的数值,不要输出任何其他信息。输出样例2.求其最大公约数和最小公倍数。题目内容:程序输入两个整数,利用辗转相除法求出两个整数的最大公约数和最小公倍数。最后按格式要求输出结果。输入格式:输入两个整数输出格式:输出最大公约数和最大公倍数输入样例:48输出样例:最大公约数是4最小公倍数是83.用泰勒展开式求近似值题目内容:利用泰勒展开式求cos(x),要求误差。提示:该题需要用到迭代法,请参考教材求sinx的算法,关键是找出前后两项之间的关系。①设置一个累加变量sum,设置一个代表每一项的变量item,以及循环变量i。②设置好i的初值及i的增长速度,并以此为依据找出前后两项的关系③用do-while实现,误差控制item>1e−5作为循环控制条件。输入格式:输入x的值输出格式:输出计算的结果,注意结果保留4位小数。输入样例:1输出样例:0.54034.4块砝码称重题目内容:法国数学家梅齐亚克在他著名的《数字组合游戏》(1962)中提出了一个问题:一位商人有一个重40磅的砝码,一天不小心将砝码摔成了四块。后来商人称得每块的重量都是整磅数,而且发现这四块碎片可以在天平上称1至40磅之间的任意重量。请问这四块碎片各重多少?编写程序求出这四块砝码的重量,并输出这四块砝码的重量。(注意输出时由小到大的顺序输出)提示:题目中给出的条件是“在天平上”,这意味着:同一砝码既可以放在天平的左侧,也可以放在天平的右侧。若规定重物只能放在天平的左侧,则当天平平衡时有:重物重量+左侧砝码重量总和=右侧砝码重量总和由此可得:重物重量=右侧砝码重量总和-左侧砝码重量总和编程时只要根据以上公式,使“右侧砝码重量总和-左侧砝码重量总和”可以表示1到40之间的全部重量即可。编程中要注意的是:怎样采用一种简单的方法来表示一个砝码是在天平的左侧还是在天平的右侧,或是根本没有使用。注意:此题需要两次用到穷举法,第一次穷举是4个砝码的重量,分别用四个循环变量i,j,k,l来表示。第二次穷举是当i+j+k+l==40时,对重1磅到40磅共40种物品使用i,j,k,l四个秤进行组合,设置一个计数器,组合出1个计数器加1,如果能组合出40个,就是我们要找的答案。输入格式:无输出格式:有小到大的顺序直接输出四块碎片的重量,重量之间空一格(英文空格)(注意输出时由小到大的顺序输出)输入样例:输出样例:5.计算步法题目内容:从原点出发,一步只能向右走、向上走或向左走。恰好走N步且不经过已走的点共有多少种走法?提示:解题思路:要解决走N步共有多少种走法,我们在拿到题目的时候最直接的想法就是先画出当N=1、N=2、N=3。。。。。N=n时对应走法的图例,由简单到复杂、由特殊到一般的推理过程,找出规律获得解题的思路。在数学上,我们称为归纳法。如果用编程的方法来求解这样的推理题,我们把这样的求解思路(算法)称之为递推法。(1)当N=1时,绘出走法图(2)当N=2时,绘出走法图输入格式:输入迈出的第几步输出格式:可能有的步数输入样例:3输出样例:17第四章单元测试1.单选题:有如下程序段:for(inti=1;i<=50;i++){if(i%3!=0)continue;elseif(i%5!=0)continue;cout<<<",";<span=""><<",";<>}执行这个程序段的输出是()
选项:
A、15,30,45,
B、15,45,
C、15,30,
D、30,45,
答案:【15,30,45,】2.单选题:下面程序的运行结果是()。#includeusingnamespacestd;voidmain(){inti,j,a=0;for(i=0;i<2;i++){for(j=0;j<4;j++){if(j%2)break;a++;}a++;}cout<<<span=""><<>}
选项:
A、3
B、4
C、5
D、6
答案:【4】3.单选题:有如下程序:#includeusingnamespacestd;intmain(){intsum;for(inti=0;i<6;i+=3){sum=i;for(intj=i;j<6;j++)sum+=j;}cout<<<=""span="">选项:
A、3
B、10
C、12
D、15
答案:【15】4.单选题:有如下程序段:inti=1;while(1){i++;if(i==10)break;if(i%2==0)cout<<'*';}执行这个程序段输出字符*的个数是()
选项:
A、10
B、3
C、4
D、5
答案:【4】5.单选题:有如下循环语句:for(inti=50;i>20;i-=2)cout<<<',';<span=""><<',';<>运行时循环体的执行次数是()
选项:
A、14
B、15
C、30
D、27
答案:【15】6.单选题:执行完以下语句inti=0;doi++;while(i*i<10);时,do后面的循环体语句i++被执行的次数为()
选项:
A、2
B、3
C、4
D、5
答案:【4】7.单选题:有如下程序段:inti=5;while(inti=0){cout<<'*';i--;}运行时输出"*"的个数是()。
选项:
A、0
B、1
C、5
D、无穷
答案:【0】8.单选题:有如下程序:#includeusingnamespacestd;intmain(){inti,f,f1=0,f2=1;for(i=3;i<=6;i++){f=f1+f2;f1=f2;f2=f;}cout<<<=""span="">选项:
A、2
B、3
C、5
D、8
答案:【5】9.单选题:以下语句不正确的是()。
选项:
A、语句for(i=0;;)表示无限循环
B、for(;;)表示无限循环
C、for()也表示无限循环
D、while(1)表示无限循环
答案:【for()也表示无限循环】10.单选题:下面关于break语句的描述中,不正确的是().
选项:
A、break可以用于循环体内
B、break语句可以在for循环语句中出现多次
C、break语句可以在switch语句中出现多次
D、一个break语句就可以跳出多重循环
答案:【一个break语句就可以跳出多重循环】第四章练一练-----经典基础题---不计入MOOC总成绩---[vk-content]1.球队比赛题目内容:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队选手的名单。输入格式:无输出格式:输出三队比赛选手名单。输入样例:输出样例:orderisa--**,b--**,c--**(注意**代表比赛对手x,y或z,中间的分隔符均是英文字符,空格只能是1个空格,本行信息不用输出。)2.分解质因数题目内容:将一个正整数分解质因数。例如:输入90,输出90=2*3*3*5,输入5,输出5=5输入格式:输入正整数输出格式:输入样例:90输出样例:90=2*3*3*53.求最大值、平均值题目内容:编程要求输入若干不为0数据,输入0结束,求该若干数中的最大值和平均值。如果输入0个数则最大值和平均值均为0.输入格式:输入若干个数以0结束输出格式:先输出最大值,然后再输出平均值,两数据间用英文逗号隔开。注意不要输出任何别的多余字符。输入样例:232-6-10400输出样例:max=40,avg=9.84.各位数之积大于各位数之和题目内容输入任意两个整数(均在10~100之间,不包括10和100),输出这两个整数(包括这两个整数)之间所有各位数之积大于各位数之和的数,例如23,因为2*3>2+3。输入格式:输入10~100范围内的两个正整数输出格式:输出所有满足条件的数,注意:每行输出5个满足要求的整数,两个整数之间间隔两个空格,包括行末也有两个空格。输入样例1:1015输出样例1:没有这样的数输入样例2:2030输出样例2:232425262728295.关于素数的问题题目内容:给定两个整数n和m,0<=m<=200,编写程序计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。<p=""><=m<=200,编写程序计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。<>注意:是第n个素数到第m个素数,不是n和m之间的素数!输入格式:两个正整数,第一个表示n,第二个表示m。输出格式:输出所求的和。输入样例:24输出样例:15第5章——数组:实现算法的利器第五章编程题1.学校教学管理要求,每个学期末教学管理老师必须按要求整理学生成绩并输出学生成绩汇总表。题目内容:假定有学生3位,3门课程。学期末要求汇总成绩,请用一个二维数组存储这些学生的成绩数据,同时将每位学生所有课程成绩的总分、平均分和名次列入学生成绩汇总表(二维数组)中的后三列上。要求输入学生各科课程成绩数据后并输出成绩汇总表。(要求:输出每个数据间用2个英文空格隔开,且每行最后一个数据后也有2个英文空格)输入格式:在一行输入所有数据,数据间用一个空格分隔输出格式:按名次从高到低分行输出每位学生的每门课程成绩及总分、平均分及名次数据表(数据间用2个英文空格间隔,每行行末也有2个英文空格)输入样例:123456789输出样例:78924814561552123623
答案:【】2.在一堆数据中,查找特殊数据及其所处位置信息题目内容:在包含10个数的一维整数数组a中查找输入的数据num。如果找到则输出该数在数组中的所有出现的位置;若没找到则输出“数组中没有该数”字样。输入格式:在一行中输入10个数,每个数据间用空格分隔第二行输入查找数据输出格式:如果找到输出相应的位置,如果有多个位置则分行显示如果没有要找的数,输出“数组中没有该数”,(此输出信息程序中可以直接复制使用。)输入样例:1234257892输出样例:25
答案:【】3.字符转换题目内容:编写程序输入一个最大长度为80的字符串,将字符串中的所有小写字符转换成大写字符,并输出转换后的字符串和所转换的字符个数。输入格式:输入一个包含任意大、小写字母、数字字符(不包括空格字符)的字符串(不大于80个字符)输出格式:输出转换后的字符串,然后换行输出转换字符的个数输入样例:ABCqwerRTY23输出样例:ABCQWERRTY234
答案:【】第五章练一练----经典提高题-----不计入MOOC总成绩---1.谁家孩子跑得最慢题目内容:张、王、李三家各有三个小孩。一天,三家的九个孩子在一起比赛短跑,规定不分年龄大小,跑第一得9分,跑第二得8分,依次类推。比赛结果显示各家的总分相同,且这些孩子没有同时到达终点的,也没有一家的两个或三个孩子获得相连的名次。已知获第一名的是李家的孩子,获第二名的是王家的孩子。获得最后一名的是谁家的孩子?输入格式:无输出格式:按家庭输出三个孩子的得分(从大到小排列)输出最后一名孩子的家注意:数据之间用2个英文空格隔开。输入样例:无输出样例:*家****家****家***最后一名是*家孩子(注意本样例仅表示输出格式,*要变成具体的值)2.多项式加法题目内容:一个多项式可以表达为x的各次幂与系数乘积的和,比如:2x^6+3x^5+12x^3+6x+20现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。程序要处理的幂最大为10。输入格式:总共要输入两个多项式,每个多项式的输入格式如下:每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高幂,最后一行一定是0次幂。注意第一行和最后一行之间不一定按照幂次降低顺序排列;如果某个幂次的系数为0,就不出现在输入数据中了;0次幂的系数为0时还是会出现在输入数据中。输出格式:从最高幂开始依次降到0幂,如:2x^6+3x^5+12x^3-6x+20注意其中的x是小写字母x,而且所有的符号之间都没有空格,如果某个幂的系数为0则不需要有那项。输入样例:61523121502062532121600输出样例:3x^6+5x^5+12x^3+12x^2+11x+203.杨辉三角题目内容:先定义一个二维数组:a[N][N],略大于要输出的行数。再令两边的数为1,即当每行的第一个数和最后一个数为1。a[i][0]=a[i][i]=1,n为行数。除两边的数外,任何一个数为上两顶数之和,即a[i][j]=a[i-1][j-1]+a[i-1][j]。最后输出直角杨辉三角形。其中,N不大于20.为了计算机评判,请用setw(6)输出数据。输入格式:输入输出行数输出格式:按直角三角形形式输出杨辉三角输入样例:5输出样例:1111211331146414.矩阵转置题目内容:设有一矩阵为m×n阶(即m行n列),第i行j列的元素是a(i,j),需要将该矩阵转置为n×m阶的矩阵,使其中元素满足b(j,i)=a(i,j)。其中,m、n都不会超过20.输入格式:输入矩阵的行数和列数输入矩阵数据输出格式:按矩阵形式输出原矩阵数据按矩阵形式输出转置矩阵数据(注意输出是使用setw(3)控制格式,并且空格在数字前方输入样例:34123456789101112输出样例:原矩阵a123456789101112转置矩阵b1592610371148125.狼追兔子问题题目内容:一只兔子躲进了10个环形分布的洞的某一个,狼第一次在第一个洞没有找到兔子,就隔一个洞,再到第三个洞去找,也没有找到,就隔两个洞,到第六个洞去找,以后每次多隔一个洞去找兔子……这样下去,结果一直找不到兔子,编程输出第n次找洞时,兔子可能藏在哪几个洞中?提示:对于本实例中提到的问题,虽然是“兔子可能躲在哪个洞中”,但是在考虑算法时,需要知道的是狼会去哪个洞找兔子,狼第一次去的洞是第一个(表示为pos1),第二次去的是第三个(pos3),把它去的洞的代码用数字表示出来,可以推导出狼去的洞的代码是:pos(i+1)=pos(i)+i+1。由题目可知,狼没有找到兔子,因此该算法会一直持续下去。除此之外,还需要注意的是,在10个洞之后,比如狼去找第十五个洞,但第十五个洞是不存在的,因此我们用15对10求余,得到的数字才是洞的标示。输入格式:输入找洞的次数n输出格式:列出所有兔子可能在的洞,一行一个洞;注意:从开始找的那个洞看作是第一个洞,依次类推输入样例1:2输出样例1:245678910输入样例2:4输出样例2:245789第五章练一练----经典基础题-----不计入MOOC总成绩---1.矩阵的最大值及其下标题目内容:使用二维数组将一个n×m的矩阵中所有元素的最大值及其下标获取。如果数据中有相同的数据,请输出以行优先的顺序输出时先输出的那个值。通过该程序,掌握二维数组使用的相关知识。输入格式:输入矩阵的行列值输入数据输出格式:最大值及其下标输入样例:341234567999101112输出样例:max=a[1][3]=99输入样例:341234567999101199输出样例:max=a[1][3]=992.求回文数题目内容:输入m,n两个整数,10<=m具有对称性质的数(也称回文数)。输入格式:输入两个整数输出格式:输出所有这两个数之间的回文数,前面是个数,后面是回文数,两数空2个英文空格。输入样例:10100输出样例:1112223334445556667778889993.二分查找算法,折半查找算法题目内容:采用二分查找法查找特定关键字的元素。要求用户输入数组长度(该长度不会超过100),也就是有序表的数据长度,并输入有序数组元素和査找的关键字。程序输出查找成功与否,以及成功时关键字在数组中的位置。例如,在有序表11、13、18、28、39、56、69、89、98、122中査找关键字为89的元素。输入格式:输入数组长度输入有序数据输入要查找的数据输出格式:如果找到输出“查找成功!”,然后换行输出查找成功所需的查找次数,再换行输出查找的下标和数据如果没有找到输出“查找失败!”输入样例:1011131828395669899812289输出样例:查找成功!查找次数为2a[7]=894.冒泡排序算法题目内容:用冒泡排序法对任意输入的10个整数,按照从小到大的顺序进行排序。请输出冒泡算法排序后的结果和每轮未排序的数据输入格式:输入十个整数输出格式:每轮冒泡后输出数据情况,一轮一行;每一轮的轮数与数据之间隔三个英文空格;其他每个数据之间空一个英文空格冒泡排序后的数据输入样例:6632234525515694637输出样例:132234525515664637223322551545463732325515324537423515253237551523253265152325751523851595排序后的顺序是51523253237454666695.字符串加密算法题目内容:要求设计一个加密算法。在对一个长度为1000以内的指定字符串加密之后,利用解密函数能够对密文解密,显示明文信息。加密的方式是将字符串中的每个英文字母字符加上它在字符串中的位置和一个密钥值n,对于非26个英文字母字符则不需加密。以字符串“mxsoft”为例,第一个字符“m”在字符串中的位置为0,那么它对应的密文是"'m'+0+n",如果n为5,就是r;第二个字符“x”在字符串中的位置为1,那么它对应的密文是“'x'+1+n",如果n为5,就是d。(注意加密后的字符超过z后返回到第一个字符a)输入格式:输入加密的字符串密钥值输出格式:加密后的字符串解密前的字符串输入样例:ILoveHUST.5输出样例:加密后的密文是NSweoTHGI.加密前的明文是ILoveHUST.第五章单元测试1.单选题:下面程序的运行结果是().#include#includeusingnamespacestd;intmain(){chars1[10]="abc";chars2[20]="inter";intk=0,j=0;while(s2[k])k++;while(s1[j])s2[k--]=s1[j++];cout<<<span=""><<>return0;}
选项:
A、inter
B、abc
C、interabc
D、intcba
答案:【intcba】2.单选题:已知:inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是().for(i=0;i<3;i++)cout<<<"";<=""span=""><<">
选项:
A、159
B、147
C、357
D、369
答案:【357】3.单选题:以下程序运行后的输出结果是()。intmain(){chara[]="abbcabbcabbc";inti=0,j=0,k=0;while(a[i]){if(a[i]=='a')j++;if(a[i]=='b')k++;i++;}cout<<<""<<<=""span=""><<">return0;}
选项:
A、26
B、35
C、47
D、36
答案:【36】4.单选题:有如下程序段:charc[20]="examination";c[4]=0;cout<<<span=""><<>执行这个程序段的输出是()。
选项:
A、examination
B、exam
C、exa
D、exami
答案:【exam】5.单选题:下面程序的运行结果是()。charc[5]={'a','b','','c',''};cout<<span=""><>
选项:
A、1012ACF0(数组c的首地址值)
B、ab
C、abc
D、以上都不是
答案:【以上都不是】6.单选题:下面关于数组的描述错误的是()。
选项:
A、在C++语言中数组的名字就是该数组第一个元素的首地址。
B、长度为n的数组,下标的范围是0~n-1。
C、数组的大小必须在编译时确定。
D、数组元素的个数在定义时可以缺省。
答案:【数组元素的个数在定义时可以缺省。】7.单选题:以下数组的初始化,正确的是()。
选项:
A、inta[]={1,2,3,4,5};
B、inta[4]={1,2,3,4,5};
C、inta[2]={1,2,3};
D、inta[][]={1,2,3,4};
答案:【inta[]={1,2,3,4,5};】8.单选题:在下述对C++语言字符数组的描述中,有错误的是()。
选项:
A、字符数组可以存放字符串。
B、字符数组中的字符串可以进行整体输入输出。
C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值。
D、字符数组的下标从0开始。
答案:【可以在赋值语句中通过赋值运算符"="对字符数组整体赋值。】9.单选题:在C++语言中,二维数组元素在内存中的存放顺序是()。
选项:
A、按行优先存放
B、按列优先存放
C、由用户自己定义
D、由编译器决定
答案:【按行优先存放】10.单选题:要定义整型数组x,使之包括初值为0的三个元素,下列语句中错误的是()
选项:
A、intx[3]={0,0,0};
B、intx[]={0};
C、intx[3]={0};
D、intx[]={0,0,0};
答案:【intx[]={0};】第6章——指针:所向披靡的“金箍棒”魂第六章练一练经典基础题1.单选题:以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。请在黄色处选择合适的语句。#includeusingnamespacestd;intmain(){char*p,s[6];intn;p=s;cin>>p;n=*p-'0';while(!='\0')n=n*8+*p-'0';cout<<<span=""><<>return0;}
选项:
A、*++p
B、*p++
C、(*p)++
D、*p
答案:【*++p】2.单选题:阅读程序,输出结果#includeusingnamespacestd;intmain(){inta[]={11,16,13,14,15};int*ptr=a;cout<<*ptr<<""<<*(++ptr)<<p=""><>return0;}
选项:
A、1616
B、1111
C、1116
D、1112
答案:【1616】3.单选题:阅读程序,输出结果。#includeusingnamespacestd;intmain(){inta[]={11,16,13,14,15};int*ptr=a;cout<<*ptr<<p=""><>cout<<*(++ptr)<<p=""><>cout<<<p=""><<>cout<<*ptr<<p=""><>return0;}
选项:
A、11111112
B、11161116
C、11121112
D、11111116
答案:【11161116】4.单选题:阅读程序,输出结果。#includeusingnamespacestd;intmain(){inta[]={11,16,13,14,15};int*ptr=a;cout<<*ptr<<p=""><>cout<<++*ptr<<p=""><>cout<<<p=""><<>cout<<*ptr<<p=""><>return0;}
选项:
A、11111112
B、11161116
C、11121212
D、11121112
答案:【11121212】5.单选题:阅读程序,输出结果。#includeusingnamespacestd;intmain(){inta[]={11,16,13,14,15};int*ptr=a;cout<<*ptr<<p=""><>cout<<*++ptr<<p=""><>cout<<<p=""><<>cout<<*ptr<<p=""><>return0;}
选项:
A、11111116
B、11161116
C、11111112
D、11111212
答案:【11161116】6.单选题:阅读程序,输出结果。#includeusingnamespacestd;intmain(){inta[]={11,16,13,14,15};int*ptr=a;cout<<*ptr<<p=""><>cout<<*(ptr++)<<p=""><>cout<<<p=""><<>cout<<*ptr<<p=""><>return0;}
选项:
A、11111116
B、11121112
C、11161116
D、11161117
答案:【11111116】7.单选题:#includeusingnamespacestd;intmain(){inta[]={11,16,13,14,15};int*ptr=a;cout<<*ptr<<p=""><>cout<<(*ptr)++<<p=""><>cout<<<p=""><<>cout<<*ptr<<p=""><>return0;}
选项:
A、11111116
B、11111212
C、11121116
D、11161117
答案:【11111212】8.单选题:阅读程序,输出结果。#includeusingnamespacestd;intmain(){inta[]={11,16,13,14,15};int*ptr=a;cout<<*ptr<<p=""><>cout<<*ptr++<<p=""><>cout<<<p=""><<>cout<<*ptr<<p=""><>return0;}
选项:
A、11111116
B、11111211
C、11121112
D、11161117
答案:【11111116】9.单选题:阅读程序,请输出程序的结果。#includeusingnamespacestd;intmain(){inta[]={11,16,13,14,15};int*ptr=a;cout<<*ptr<<p=""><>cout<<*(ptr++)<<p=""><>return0;}
选项:
A、1111
B、1116
C、1112
D、1616
答案:【1111】10.单选题:阅读程序,请输出程序的结果。#includeusingnamespacestd;intmain(){inta[]={11,16,13,14,15};int*ptr=a;cout<<*ptr<<p=""><>cout<<*(++ptr)<<p=""><>return0;}
选项:
A、1111
B、1116
C、1112
D、1617
答案:【1116】第6章单元测试1.单选题:下面程序的运行结果是().#includeusingnamespacestd;intmain(){intaa[3][3]={{1},{2},{3}},i,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;cout<<*p<<"";}cout<
选项:
A、11
B、21
C、12
D、31
答案:【12】2.单选题:下列程序运行时的输出结果是()。#includeusingnamespacestd;intmain(){inta[7]={23,15,64,33,40,58};ints1,s2,*p;s1=s2=a[0];for(p=a+1;*p;p++){if(s1>*p)s1=*p;if(s2<*p)s2=*p;}cout<<span=""><>return0;}
选项:
A、23
B、58
C、64
D、79
答案:【64】3.单选题:已知有数组定义 char a[3][4]; 下列表达式中错误的是()。
选项:
A、a[2]="WIN" ;
B、strcpy(a[2],"WIN") ;
C、a[2][3]='W' ;
D、a[0][1]=a[0][1] ;
答案:【a[2]="WIN" ;】4.单选题:下列程序的输出结果是#includeusingnamespacestd;intmain(){chara[]="Hello,World";char*ptr=a;while(*ptr){if(*ptr>='a'&&*ptr<='z')cout<<char(*ptr+'A'-'a');elsecout<<*ptr;ptr++;}return0;}
选项:
A、HELLO,WORLD
B、Hello,World
C、hELLO,wORLD
D、hello,world
答案:【HELLO,WORLD】5.单选题:下面程序的运行结果是().#includeusingnamespacestd;voidmain(void){inta[5]={10,20,30,40,50};int*p=&a[0];p++;cout<<++*p<<span=""><>}
选项:
A、10
B、21
C、31
D、41
答案:【21】6.单选题:已知:intm=10;在下列语句中错误的是()
选项:
A、int*p=newint(m);
B、int*p=newint[m]={0};
C、float*p=newfloat(m);
D、float*p=newfloat[m];
答案:【int*p=newint[m]={0};】7.单选题:下列语句中,正确的是()。
选项:
A、char*myString="Hello-World!";
B、charmyString="Hello-World!";
C、charmyString[11]="Hello-World!";
D、charmyString[12]="Hello-World!";
答案:【char*myString="Hello-World!";】8.单选题:已知数组arr的定义如下:intarr[5]={1,2,3,4,5};下列语句中输出结果不是2的是()
选项:
A、cout<<*arr+1<<span=""><>
B、cout<<*(arr+1)<<span=""><>
C、cout<<arr[1]<<span=""><>
D、cout<<*arr<<span=""><>
答案:【cout<<*arr<<span=""><>】9.单选题:设有定义一维数组如下:inta[5],*p=a;,则下列描述中错误的是().
选项:
A、表达式p=p+1是合法的
B、表达式a=a+1是合法的
C、表达式p-a是合法的
D、表达式a+2是合法的
答案:【表达式a=a+1是合法的】10.单选题:下面程序的运行结果是().#includeusingnamespacestd;intmain(){floata=1,b=2,c;float*p1=&a,*p2;p2=&b;c=*p1+*p2;cout<<*p1<<'\n';}
选项:
A、1
B、2
C、a
D、b
答案:【1】第六章练一练经典提高题1.单选题:若定义chars[2][3]={“ab”,“cd”},*p=(char*)s;//字符型指针p存放的是字符串s的首地址,而字符串s表示的是这样一个字符串:那么下列表达式语法正确,并且其值与s[1][1]相等的表达式(并非一定与其等价)是()//根据字符串的表示,s[1][1]是字符‘d’
选项:
A、*(s+3)
B、p[1][1]
C、*(p+3)
D、char(*++p+2)
答案:【char(*++p+2)】2.单选题:阅读程序,回答下面问题:#include#includeusingnamespacestd;intmain(){inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int*p[3];//定义一个指针数组,表示一个一维数组内存放着三个指针变量,分别是p[0]、p[1]、p[2]p=a;cout<<*p<<p=""><>p++;cout<<*p<<p=""><>return0;}请问这两个输出的数据相差多少?
选项:
A、16
B、4
C、1
D、编译错误
答案:【编译错误】3.单选题:阅读程序,回答问题:#include#includeusingnamespacestd;intmain(){inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int(*p)[4];//该语句是定义一个数组指针,指向含4个元素的一维数组。p=a;cout<<*p<<span=""><>p++;cout<<*p<<span=""><>return0;}请问这两个输出的地址差是多少字节?
选项:
A、16
B、4
C、1
D、编译错误
答案:【16】4.单选题:阅读程序,输出结果#includeusingnamespacestd;intmain(){inta[3][4]={{0,1,2,10},{3,4,5,11},{6,7,8,12}};cout<<*(&a[0][0])<<span=""><>cout<<**a<<span=""><>cout<<*(&a[1][0])<<span=""><>cout<<*(a[0]+1)<<span=""><>cout<<*(a+1)<<span=""><>return0;}
选项:
A、0031第一行的首地址
B、第一个元素地址0313
C、00313
D、003131
答案:【0031第一行的首地址】5.单选题:如定义inta[3][4];下面哪个不能表示a[1][1]?
选项:
A、*(&a[0][0]+5)
B、*(*(a+1)+1)
C、*(&a[1]+1)
D、*(a[1]+1)
答案:【*(&a[1]+1)】6.单选题:有定义语句:chars[3][10],(*k)[3],*p;则对于下列赋值语句,哪个是正确的?
选项:
A、p=s[0];
B、p=s;
C、p=k;
D、k=s;
答案:【p=s[0];】7.单选题:阅读程序,输出结果#includeusingnamespacestd;intmain(){char*a[]={"work","at","alibaba"};char**pa=a;pa++;cout<<*pa<<span=""><>return0;}
选项:
A、at
B、编译错误
C、work
D、alibaba
答案:【at】8.单选题:阅读程序,输出结果。#includeusingnamespacestd;intmain(){intaa[2][5]={1,2,3,4,5,6,7,8,9,10};int*ptr1=(int*)(&aa+1);int*ptr2=(int*)(*(aa+1));cout<<*(ptr1-1)<<""<<*(ptr2-1);return0;}
选项:
A、105
B、编译错误
C、地址5
D、10地址
答案:【105】9.单选题:阅读程序,输出结果。#includeusingnamespacestd;intmain(){inta[3][2]={1,2,4,5};int*p;p=a[0];cout<<<""<<<<<""<<<""<<<span=""><<><<<<p=a[1];cout<<<""<<<<<""<<<""<<<span=""><<><<<<p=a[2];cout<<<""<<<<<""<<<""<<<span=""><<><<<<return0;}
选项:
A、1245450000不确定不确定
B、编译错误
C、1245000000不确定不确定
D、12454500不确定不确定不确定不确定
答案:【1245450000不确定不确定】10.单选题:#includeusingnamespacestd;intmain(){inta[5]={1,2,3,4,5};int*ptr=(int*)(&a+1);cout<<*(a+1)<<""<<*(ptr-1)<<span=""><>return0;}程序运行结果是什么?
选项:
A、25
B、编译错误
C、12
D、2不确定
答案:【25】第六章编程题1.运用指针技术实现,统计输入字符串的各个字母各出现了多少次。区分大小写。题目内容:运用指针技术实现,统计输入字符串的各个字母各出现了多少次。区分字母大小写。输入格式:在一行上输入所有的字符串。如下:abab输出格式:输出时,每行输出一个字符和个数,每个字符和个数数值之间空一格,按字符的ASCII码由小到大输出。a2b2输入样例:acba输出样例:a2b1c1
答案:【】2.运用指针技术实现,将输入的十六进制数的字符串转换为对应的整数数。题目内容:运用指针技术实现,将输入的十六进制数的字符串转换为对应的十进制整数并输出。输入格式:以字符串形式输入一个16进制数输出格式:输出该16进制数转换后的十进制数输入样例:12AB3d输出样例:1223485
答案:【】3.运用指针技术实现,将输入的两个字符串中第二个字符串插入到第一个字符串中指定输入数字位置字符的后面。题目内容:运用指针技术实现,将输入的两个字符串中第二个字符串插入到第一个字符串中指定输入数字位置字符的后面。输入格式:aghijkbcdef1输出格式:abcdefghijk输入样例:1234598762输出样例:129876345
答案:【】第7章函数:面向过程的基础第七章练一练---经典基础题--不计入总分---1.在字符串的指定位置插入字符题目内容:请编写一个字符串作为参数的函数来实现程序功能,程序实现以下功能:在字符串中的所有数字字符前加一个$字符。例如,输入A1B23CD45,输出A$1B$2$3CD$4$5。输入格式:输入一串不带$的字符串输出格式:输出带$字符串输入样例:a1B23CD45输出样例:a$1B$2$3CD$4$52.24点问题题目内容:在屏幕上输入1〜10范围内的4个整数(可以有重复),对它们进行加、减、乘、除四则运算后(可以任意的加括号限定计算的优先级),寻找计算结果等于24的表达式。例如输入4个整数4、5、6、7,可得到表达式:4*((5-6)+7)=24。这只是一个解,要求输出全部的解。要求表达式中数字的顺序不能改变。分析:本题最简便的解法是应用穷举法搜索整个解空间,筛选出符合题目要求的全部解。因此,关键的问题是如何确定该题的解空间。假设输入的4个整数为A、B、C、D,如果不考虑括号优先级的情况,仅用四则运算符将它们连接起来,即A+B*C/D…,则可以形成43=64种可能的表达式。如果考虑加括号的情况,而暂不考虑运算符,则共有以下5种可能的情况:①((A□B)□C)□D;②(A□(B□C))□D;③A□(B□(C□D));④A□((B□C)□D);⑤(A□B)□(C□D)。其中□代表“+、-、*、/”四种运算符中的任意一种。将上面两种情况综合起来考虑,每输入4个整数,其构成的解空间为64*5=320种表达式。也就是说,每输入4个整数,无论以什么方式或优先级进行四则运算,其结果都会在这320种答案之中。在这320种表达式中寻找出计算结果为24的表达式。输入格式:输入1--10内的整数4个输出格式:给出计算24点的表达式输入样例1:1234输出样例1:((1+2)+3)*4=24(1+(2+3))*4=24((1*2)*3)*4=24(1*(2*3))*4=241*(2*(3*4))=241*((2*3)*4)=24(1*2)*(3*4)=24输入样例2:6789输出样例2:Sorry,thefourintegercannotbecalculatedtoget243.分鱼问题题目内容:有n个人合伙夜间捕鱼,凌晨时都已经疲惫不堪,于是各自在河边的树丛中找地方睡着了。第二天日上三竿时,大家分别醒来计算自己的鱼。如果n是5的话,假定是ABCDE5个人,A第一个醒来,他将鱼平分为n份,把多余的一条扔回河中,然后拿着自己的一份回家去了;B第二个醒来,但不知道A已经拿走了一份鱼,于是他将剩下的鱼平分为n份,扔掉多余的一条,然后只拿走了自己的一份;接着C、D、E依次醒来,也都按同样的办法分鱼。如果是n个人,也依此类推,问这n人至少合伙捕到多少条鱼?每个人醒来后所看到的鱼是多少条?请用递归函数来实现。输入格式:分鱼的人数输出格式:总共的鱼数输入样例:5输出样例:31214.求梅森素数题目内容:梅森数(MersennePrime)指的是形如2n-1的正整数,其中指数n是素数,即为Mn。如果一个梅森数是素数,则称其为梅森素数。例如22-1=3、23-1=7都是梅森素数。当n=2,3,5,7时,Mn都是素数,但n=11时,Mn=M11=211-1=2047=23X89,显然不是梅森素数。1722年,瑞士数学大师欧拉证明了231-1=2147483647是一个素数,它共有10位数,成为当时世界上已知的最大素数。迄今为止,人类仅发现了47个梅森素数。梅森素数历来都是数论研究中的一项重要内容,也是当今科学探索中的热点和难点问题。试求出输入的任意两个整数指数(大于等于2的整数)之间的所有梅森素数,判断梅森素数作为函数。输入格式:输入两个整数输出格式:输出这两个整数之间的所有梅森素数(数据之间的空格是一个英文空格)以及梅森素数个数输入样例:210输出样例:M=23M=37M=531M=7127thenumberofMersennePrimeis:45.删除星号题目内容:现在有一串字符需要输入,规定输入的字符串中只包含字母和*号。请编写带有指针作为参数的函数程序,实现以下功能:除了字符串前后的*号之外,将串中其他的*号全部删除。例如,假设输入的字符串为****A*BC*DEF*G********,删除串中的*号后,字符串变为****ABDEFG********输入格式:输入带*号的字符串输出格式:删除带*号的字符串输入样例:****A*BC*DEF*G********输出样例:****ABDEFG********第7章单元测试1.单选题:以下程序的执行结果是()。intfun(intb[],intn){inti,r=1;for(i=0;i<p=""><>r=r*b[i];returnr;}voidmain(){intx,a[]={1,2,3,4,5,6,7,8};x=fun(a,3);cout<<<p=""><<>}
选项:
A、5
B、6
C、7
D、8
答案:【6】2.单选题:有如下程序:#includeusingnamespacestd;voidf1(int&x,int&y){intz=x;x=y;y=z;}voidf2(intx;inty){intz=x;x=y;y=z;}intmain(){intx=10,y=26;f1(x,y);f2(x,y);cout<<<=""span=""><return0;}运行时的输出结果是
选项:
A、10
B、16
C、26
D、36
答案:【26】3.单选题:已知函数f的原型是:voidf(int*a,long&b);变量v1、v2的定义是:intv1;longv2;,正确的调用语句是()。
选项:
A、f(v1,&v2);
B、f(v1,v2);
C、f(&v1,v2);
D、f(&v1,&v2);
答案:【f(&v1,v2);】4.单选题:下面的函数利用递归实现了求1+2+3…..+n的功能:intsum(intn){if(n==0)return0;elsereturnn+sum(n-1);}在执行sum(10)的过程中,递归调用sum函数的次数是()。
选项:
A、9
B、10
C、11
D、8
答案:【10】5.单选题:为了提高函数调用的实际运行速度,可以将较简单的函数定义为
选项:
A、内联函数
B、重载函数
C、递归函数
D、函数模板
答案:【内联函数】6.单选题:已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则
选项:
A、FA必须定义在FB之前
B、FB必须定义在FA之前
C、若FA定义在FB之后,则FA的原型必须出现在FB的定义之前
D、若FB定义在FA之后,则FB的原型必须出现在FA的定义之前
答案:【若FB定义在FA之后,则FB的原型必须出现在FA的定义之前】7.单选题:下列函数原型声明中错误的是()
选项:
A、voidFun(intx=0,inty=0);
B、voidFun(intx,inty);
C、voidFun(intx,inty=0);
D、voidFun(intx=0,inty);
答案:【voidFun(intx=0,inty);】8.单选题:已知函数fun的原型为intfun(int,int,int);下列重载函数原型中错误的是______。
选项:
A、charfun(int,int);
B、doublefun(int,int,double);
C、intfun(int,clar*);
D、floatfun(int,int,int);
答案:【floatfun(int,int,int);】9.单选题:有以下程序#includeinti=0;voidfun(){{staticinti=1;cout<<<',';<span=""><<',';<>}cout<<::i<<',';}intmain(){fun();fun();return0;}程序执行后的输出结果是()
选项:
A、0,1,1,2,
B、1,2,2,3,
C、2,0,3,0,
D、1,0,2,0,
答案:【1,0,2,0,】10.单选题:有如下程序段:inti=4;intj=1;intmain(){inti=8,j=i;cout<<<<span=""><<<>}运行时的输出结果是______。
选项:
A、44
B、41
C、88
D、81
答案:【88】第七章练一练---经典提高题---不计入总分---1.麻将清一色和牌问题题目内容:清一色是麻将番种之一,指由一种花色的序数牌组成的和牌.数字1-9,每个数字最多有4张牌我们不考虑具体花色,我们只看数字组合。刻子:三张一样的牌;如:111,222,333,…,999顺子:三张连续的牌;如:123,234,345,…,789对子:两张相同的牌;如:11,22,33,…,99需要实现一个程序,判断给定牌,是否可以和牌(胡牌)。和牌要求:麻将牌张数只能是2,5,8,11,14给定牌可以组合成,除1个对子以外其他都是刻子或顺子举例:-“11”->“11”,1对子,可以和牌“11122233”->“111”+“222”+“33”,2刻子,1对子,可以“11223344567”->“11”+“234”+“234”+“567”,1对子,3顺子,可以->“123”+“123”+“44”+“567”,另一种组合,也可以分析:可用递归的方式求解,在字符串中搜索刻子和顺子,找到之后再对去掉刻子或顺子之后的字符串进行递归搜索,直到字符串长度小于3为止,若最终剩余字符串长度为2且两个字符相同时则胡牌,否则不能胡牌。输入格式:合法字符串,只包含'1’-‘9’,且已经按从小到大顺序排好;字符串长度不超过15。同一个数字最多出现4次,与实际相符。输出格式:“yes"或者"no”输入样例:2244输出样例:no2.任意进制相互转化题目内容:求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。如果输入要转换的进制为00时,输出“停止转换”;见样例3分析:可以借用两个函数来完成进制之间的转换,并且把任意进制的数据用字符串表示1.将任意进制的数转化为十进制2.再将十进制转为任意进制输入格式:输入转换前的进制输入转换后的进制输入要转换的数据输出格式:转换后的数据输入样例1:2101100输出样例1:12输入样例2:816123输出样例2:53输入样例3:00输出样例3:停止转换3.奶牛生子的问题题目内容:一只刚出生的奶牛,4年生1只奶牛,以后每一年生1只。现在给你一只刚出生的奶牛,求n年后有多少奶牛。设计一个递归函数编程求解问题。本题主要考察读者的分析能力,已知条件有两:第一次,4年生一只。然后每年生一只。需要的结果中也提供了一个条件,就是n年。要注意的本题最难的地方是不光这只奶牛会生奶牛,它的孩子的孩子也会继续生奶牛。输入格式:输入年数输出格式:牛的数目输入样例:20输出样例:20年后牛的数目3454.矩阵转置题目内容:编写一个程序,将一个n行n列的矩阵转置,其中n是大于等于3并且小于等于20的整数。编写一个输入n行n列的矩阵函数和输出n行n列的矩
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版门面房屋租赁合同租赁房屋保险责任及赔偿4篇
- 二零二五年度米厂水稻种植与农产品溯源体系共建合同4篇
- 二零二五年度门窗行业节能门窗市场调研与报告合同2篇
- 二零二五年度室内门采购与安装服务合同4篇
- 全新2025年度软件开发与定制化服务合同3篇
- 云南旅游职业学院《智能制造》2023-2024学年第一学期期末试卷
- 云南经贸外事职业学院《框架应用开发》2023-2024学年第一学期期末试卷
- 云南交通职业技术学院《工程管理软件应用》2023-2024学年第一学期期末试卷
- 云南工贸职业技术学院《传感器原理与测试》2023-2024学年第一学期期末试卷
- 黄豆的购销合同
- GB/T 37238-2018篡改(污损)文件鉴定技术规范
- 普通高中地理课程标准简介(湘教版)
- 河道治理工程监理通知单、回复单范本
- 超分子化学简介课件
- 高二下学期英语阅读提升练习(一)
- 易制爆化学品合法用途说明
- 【PPT】压力性损伤预防敷料选择和剪裁技巧
- 大气喜庆迎新元旦晚会PPT背景
- DB13(J)∕T 242-2019 钢丝网架复合保温板应用技术规程
- 心电图中的pan-tompkins算法介绍
- 羊绒性能对织物起球的影响
评论
0/150
提交评论