ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:26.97KB ,
资源ID:17710086      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17710086.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(上机编程题C++文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

上机编程题C++文档格式.docx

1、例如:s=1234abcdef567则:a中存储着1234567返回:7不能修改程序的其他部分,只能修改fun()函数。int fun(char* s,int a) int a1024; int len=fun(,a); for(int i=0;ilen;i+) coutai=0&si9) /判断字符是否为09的字符 aj+=si- /如果为09的字符,转换为整型return j; /返回数字个数(1)该程序功能是把字符串中出现的数字转换成数字存储在数组中,然后返回转换的个数。其中,字符和整型的ASCII差为96,即为的ASCII码值。(2)从已给部分源程序的main主函数开始入手,核心函数f

2、un实现题目中要求的功能,其中int fun(char* s,int a)中的s为要转换的字符串,a为存放转换为数字的数组,返回值为转换的个数。(1)j变量用来记录转换的个数,首先初始化为0。(2)然后利用for循环对每一个当前字符进行判断是否为数字字符。(3)如果为数字字符,就将其减去字符,即实现字符和整型的转换。并且,将j的变量值加1。3、 完成fun()函数,其功能是:求出M行N 列二维数组每行元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。#define M 2#define N 4void fun(int aMN,int *sum)void main() int xMN

3、=7,6,5,2,4,2,8,3; int s; fun(x,&s);saij)k=j; /求得每一行的最小值s+=aik; /最小值求和 *sum=s; /返回求和值(1)该程序功能是求二维数组每行元素中的最小值,并计算它们的和值。本题解题思路基本可以分为两重循环,外重循环为对二维数组的所有行进行循环,内重循环为对每一行内进行列循环,求出每一行中的最小值。最后求出这些最小值的和。(2)从已给部分源程序的main主函数开始入手,核心函数void fun(int aMN,int *sum)中的a参数为二维数组,sum为要求得的和。(1)依次访问每一行的元素。(2)在对每一行的访问过程中选出最小数

4、。(3)将选出的最小数求和。4、 请完成函数fun(int i),实现以下功能:当i等于5时,则打印如下内容。void fun(int n) int n;请输入打印的行数: cinn; if( n 1)输入的行数必须大于0 return; fun(n);int i;i+) /外层循环,要打印的行数int j; for(j=0;n-i-1;j+) /循环打印空格 for(;j+) /循环打印# /打印每一行的回车(1)该程序功能是打印题目中要求的字形状。它的解题思路,在不显示#字地方,用空格占位。(2)从已给部分源程序的main主函数开始入手,核心函数void fun(int n)中的n参数为输

5、入的要打印的行数。(1)外层循环打印每一行。(2)内层循环,分为打印空格和打印#。打印空格由第一个位置到第n-i-1。打印#,是由打印完空格开始一直到行结束。(3)最后在外循环中打印每一行的结束。5、 完成fun()函数,其功能是:将两个从小到大有序数组a和b,复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。void fun (int a,int n,int b,int m,int *c) int A=3,5,7,9,11,18,21; int B=6,15,19,21,39; int C25, i; for(i=0;25;i+) Ci = 0; cout A= for

6、 (i=0; i7; i+) cout Ai , endl;B=5; Bi fun(A,7,B,5,C);C=12; Ci int i,j; for(i=j=0;n&m;) *c+=aibj?ai+:bj+; /比较两个数组中元素大小 while(in)*c+=ai+; while(jm)*c+=bj+;(1)该程序功能是将两个从小到大有序数组a和b,复制合并出一个有序整数序列c。它的解题思路,因为要合并的数组是有序数组,所以在循环中依次比较两个数组中的元素大小,如果它比另一个数组的元素小,那么将其拷贝到c,并将其向后移动,直到数组结尾。(2)从已给部分源程序的main主函数开始入手,核心函数

7、void fun (int a,int n,int b,int m,int *c)中的a,b参数为要合并的数组,n和m为两个数组的大小,c为合并的结果。(1)首先都指向数组的第一个元素。(2)然后利用for循环对要合并的两个数组中的元素进行比较,直到两个数组结束。(3)取比较结果小的元素,并将指向这个数组的位置向后移动一位。6、 完成函数fun(int a,int n),实现递归函数fun(int a,int n)的返回值是数组a的前n个元素之和。int fun(int a,int n) int A=1,2,3,4;fun(A,sizeof(A)/sizeof(int)0)return an-

8、1+fun(a,n-1); /递归求n项的和return 0; /项数小于等于0,返回求和值0(1)该程序功能是利用递归实现数组前n项的和。函数的递归是在调用一个函数的过程中出现直接或间接调用该函数本身。(2)从已给部分源程序的main主函数开始入手,核心函数int fun(int a,int n)中调用该函数本身,利用递归调用实现计算结果,其中参数a为数组名,n为要求和的项数。(1)如果要计算的项数小于等于0,那么直接返回0。(2)否则调用递归语句an-1+fun(a,n-1),实现0到第n项的和。7、 完成空出的函数fun(int a, int* index),使函数输入n(100)个整数

9、到指定数组,求该数组中最大元素的值和此元素的下标,最大元素值以函数值返回,此元素的下标通过指针形参带回调用函数。要求函数实现以下的功能:(1)获得输入的n个整数;(2)把最大的数字的下标在第二个参数中输出;(3)把最大的数字作为返回值。#define MAXLINE 100int fun(int a,int *index) int AMAXLINE; int index; int maxdata; maxdata = fun(A,&index);the max data is:maxdatathe posion is:indexwhile(n99);coutPlease input anni+

10、) /输入数组中元素的值ai;*index=0; /元素下标值初始化for(i=1;i+) /循环找出最大值 if(a*indexai) *index=i; /记录比较大元素的下标return a*index; /返回最大的元素值,其中index为最大值的下标(1)该程序功能是求数组中最大元素的值和此元素的下标。它的解题思路,初始化记录下标变量为0,指向数组第一个元素,逐个把所有元素和标记字符进行比较,并将大值的下标赋值给记录下标变量,从而找出最大值。(2)从已给部分源程序的main主函数开始入手,核心函数int fun(int a,int *index)中的a参数为输入的数组,其中index

11、为记录最大值下标变量。(1)首先输入数组大小,然后利用循环输入数组元素。(2)利用for循环对每一个当前数组元素与index标记的元素进行大小比较。(3)循环中将求得的最大数据ai的下标标志位赋给标志位index。8、 阅读下列函数说明和C代码,完成空出部分的程序,实现函数fun(char *s1,char *s2)将字符串s2连接在字符串s1之后,构成一个首指针为s1的字符串。不能修改函数的其他部分。#define MAXLINE 1000void fun(char *s1,char *s2) char s1MAXLINE; char s2256;please input a string:

12、 cin.getline(s1,MAXLINE);please input other string: cin.getline(s2,256); fun(s1,s2);s1void fun(char *s, char *s1, char *s2)void main() char s = ABCABC fun(s, AC, ZX); std:std:char *p,*q;for(;*s;s+) /在串s中找符合条件的字符,然后替换for(p=s1,q=s2;*p;p+,q+) /让指针p,q分别指向s1和s2 if(*p=*s) /如果s中存在s1中p指向的字符 *s=*q; /那么用q指向的s

13、2中的字符替换(1)该程序功能是将已知字符串s中所有在字符串sl中也存在的字符,都用字符串s2中的对应位置的字符代替。它的解题思路,首先是找到符合替换条件的字符,然后进行替换。(2)从已给部分源程序的main主函数开始入手,核心函数void fun(char *s, char *s1, char *s2)中的s1,s2参数为要替换的字符串,s为要被替换的字符串。(1)让指针p,q分别指向s1和s2。(2)然后利用for循环对s中的每一个当前字符与p指向的字符进行比较。(3)如果(2)中的比较结果相等,那么用q指向s2中对应的字符替换。10、 阅读下列函数说明和代码,完成空出部分程序。函数fun

14、( int *arr,int n )的功能是将指定的有序数组压缩成各元素互不相同的有序数组,即相同数只保留一个,多余的被删除。并返回互不相同的元素的个数。int fun( int *a,int n )void main( ) int A=6,6,5,4,4,3,3,2,1; int j =fun(A,sizeof(A)/sizeof(int);j ; std:Aiint k=0; /指向数组第一个元素j=1; /指向数组第二个元素while(jn)/将本次循环k指向的元素依次与其他元素比较,如果不同,则存入数组 if(aj!=ak) a+k=aj; /k指向下一个元素 j+;return k+

15、1; /为新数组大小(1)该程序功能是将指定的有序数组压缩成各元素互不相同的有序数组,即相同数只保留一个,多余的被删除。它的解题思路,由第一个元素开始,利用循环将所有元素,依次与它后面的元素比较,如果不同存入数组。(2)从已给部分源程序的main主函数开始入手,核心函数int fun( int *a,int n )中的参数a为输入的数组,n为数组大小。(1)首先指向数组第一个元素ak,然后将第二元素aj与它比较,不同存入数组第二个元素(a+k)。(2)同时,将被比较的位置向后移动一位(j+)。循环直到数组的最后一个元素比较完毕。11、 阅读下列函数说明和代码。函数sort(int &m,int

16、 &n,int &l)实现将三个整数m、n、l由大到小输出。m最大,l最小。程序分析:程序实现时,可以把最大的数放到m上,先将m与n进行比较,如果mn则将m与n的值进行交换,然后再用m与l进行比较,如果ml则将m与l的值进行交换,这样能使m最大。然后再将n与l进行比较,若nl则将n与l的值互换,互换后则l最小。将函数sort(int &l)补充完整,实现三个数的排序。请勿改动主函数。void sort(int& m,int& n,int& l) int x=9; int y=13; int z=-3; sort(x,y,z);xyzint t;if (mn)t=m;m=n;n=t;/*交换x,

17、y的值*/ if(ml)m=l;l=t;/*交换x,z的值*/ if(nt=n;n=l;/*交换z,y的值*/sort函数实现3个参数的从大到小的排序,可以采用很多方法来排序,比如选择法排序、冒泡法排序等,这里要求采用比较的方法来实现排序,由于需要排序的数据较少,只有3个,逐个比较就可以找到最大最值小进行排序。(1)由审题分析可知,三次比较便可将m、n、l排序。(2)在实现时,先将m与n进行比较,如果ml则将n与l的值互换,互换后则l最小,这样就得到m最大,l最小的排序结果。(3)在sort函数内用三个if比较即可,条件成立则进行交换。12、 阅读下列函数说明和代码。函数show() 的功能是

18、将1、2、3、4四个数字,组成互不相同且无重复数字的四位数,并将这些数输出到屏幕,输出的内容如下: 1234 1243 1324 1342 1423 1432 2134 2143 2314 2341 2413 2431 3124 3142 3214 3241 3412 3421 4123 4132 4213 4231 4312 4321将函数show()补充完整。void show() show();for(int i=1;i+) for(int j=1;for(int l=1;ll+)for(int k=1;k+) if( i!=j & j!=k & i!= k &=l & k!=l) /条

19、件判断 /输出显示 函数show() 的功能是将1、2、3、4四个数字组成互不相同且无重复数字的四位数,并打印在屏幕上,可用循环来查找符合条件的四位数,用每一层循环的循环变量表示4位数当中的一个数,因此需4重循环,在最内层循环判断是否满足条件,满足条件则输出。(1)四重循环变量分别为i、j、l和k,分别从1变化至4,分别表示四位数的第一、第二、第三和第四位数。(2)在最内层循环内,如果i、j、k和l互不相同则i、j、k和l表示的四位数互不相同,把i、j、k和l打印在屏幕上。13、 阅读下列函数说明和代码。函数num(char* str)实现返回字符串中非数字的个数。abc123abc45返回输出:6将函数num()补充完整。int num(char* str) char str1024; cin.getline(str,1024);char number is num(str)int number=0;for(int i=0

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1