




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、利用指针,编写用于交换两个整型变量值的函数。程序运行结果如下:输入:5 6输出:6 5#include using namespace std; void swap(int *xp,int *yp) int tmp; tmp=*xp; *xp=*yp; *yp=tmp; int main() int a,b; cinab; swap(&a,&b); couta bendl; return 0; 2、编写主程序,将输入字符串反序输出。程序运行结果如下:输入:ABCDEFGHIJK输出:KJIHGFEDCBA#include #include using namespace std; int main() char str100; cinstr; int len; len=strlen(str); char *p=&strlen-1; while(p=str) cout*p; p-; coutendl; return 0; 3、使用指针编写一个用于对整型序列进行排序的函数,排序方法使用简单选择排序法。程序的运行结果如下所示:输入(第一个数是序列的长度):62 7 2 2 3 1输出:1 2 2 2 3 7#include using namespace std; void selectsort(int *list,int count) for(int i=0;icount-1;i+) int k=i; for(int j=i+1;jcount;j+) if(*(list+j)n; int array20; for(int j=0;jarrayj; selectsort(array,n); for(int i=0;in;i+) coutarrayi ; return 0; 4、用指针编写一个对整型数组进行冒泡排序函数。冒泡排序是指将相邻的元素进行比较,如果不符合所要求的顺序,则交换这两个元素;对整个数列中所有的元素反复运用上法,直到所有的元素都排好序为止。程序运行结果如下:输入(第一个数是数组的长度):5503 87 512 61 908输出:61 87 503 512 908#include using namespace std; void bubble_up(int *ptr,int count) for(int i=0;ii;j=j-1) if(*(ptr+j-1)*(ptr+j) int tmp=*(ptr+j-1); *(ptr+j-1)=*(ptr+j); *(ptr+j)=tmp; int main() int n; cinn; int list100; for(int x=0;xlistx; bubble_up(list,n); for(int i=0;in;i+) coutlisti ; return 0; 5、编写程序,将某一个输入的位数不确定的正整数按照标准的三位分节格式输出,例如,当用户输入82668634时,程序应该输出82,668,634。程序运行结果如下:输入:82668634输出:82,668,634#include using namespace std; int main() int n,i=1; char a20,*ptr; ptr=a; cinn; do if(i%4) *ptr=n%10+0; n=n/10; else *ptr=,; ptr+; i+; while(n); do ptr-; i-; cout1); coutendl; return 0; 6、编写程序,把10个整数赋予某个int型数组,然后用int型指针输出该数组元素的值。输入参数是待输出元素的个数。 输出: 1 2 3 4 5 6 7 8 9 10注:数组元素之间空一个空格。 #include using namespace std; int main( ) int a=1,2,3,4,5,6,7,8,9,10,*ptr; ptr=a; for(int i =0;i9;i+) cout*ptr ; ptr+; coutendl; return 0; 7、用指针编写一个程序,当输入一个字符串后,要求不仅能够统计其中字符的个数,还能分别指出其中大、小写字母、数字以及其他字符的个数。程序运行结果如下:输入:I am 21 years old.输出(五个数值依次为大、小写字母、数字、其他字符和总共含有的字符个数):1102518#include using namespace std; int main() char str100; char *ptr=str; int total,cap,sma,num,oth; total=cap=sma=num=oth=0; cin.get(ptr,100); while(*ptr!=0) total+; if(*ptr=A&*ptr=a&*ptr=0&*ptr=9)num+; else oth+; ptr+; coutcapendl; coutsmaendl; coutnumendl; coutothendl; couttotalendl; return 0; 8、编写一个函数, 用于将一个字符串转换为整型数值。其原型为:int myatoi(char *string);其中参数string为待转换的字符串(其中包括正、负号和数字),返回值为转换结果。程序运行结果如下:输入:-529输出:-529#include using namespace std; int atoi(char*string) int num=0; int s=1; if(*string=-) s=-1; string+; if(*string=+) s=1; string+; while(*string!=0&*string=0&*stringstr; coutatoi(str)endl; return 0; 9、改善模拟梵塔问题的递归程序,打印移动过程的同时,再打印每一移动后个针上的金箔的数量。初始金箔的数量由用户输入。提示:其中关于步数和状态可用静态变量。程序的运行结果如下所示:输入:3输出:Step 0A:3 B:0 C:0)Step 1:From A to C,(A:2 B:0 C:1)Step 2:From A to B,(A:1 B:1 C:1)Step 3:From C to B,(A:1 B:2 C:0)Step 4:From A to C,(A:0 B:2 C:1)Step 5:From B to A,(A:1 B:1 C:1)Step 6:From B to C,(A:1 B:0 C:2)Step 7:From A to C,(A:0 B:0 C:3)注意:冒号、逗号为英文符号,冒号、逗号后无空格。#include using namespace std; int step,x,y,z; void move(char from,char to) if (from=A) x=x-1;if (from=B) y=y-1;if (from=C) z=z-1; if (to=A) x=x+1;if (to=B) y=y+1;if(to=C) z=z+1; coutStep step:From from to to,(A:x B:y C:z)n; step=1; x=n;y=0;z=0; coutStep 0:(A:n B:0 C:0)endl; hannoi(n,A,B,C); return 0; 10、重载求数组中最大元素的函数(两个函数,一个求整数的最大值,另一个求双精度的最大值),函数名为:max_element。测试数据如下:数组A为整型,数值为19,33,69,55,77,12,52;数组B为实数,数值为10.1, 21.3, 12.4, 321.42, 5.2, 7.1, 8.3, 12.31, 70.0;程序运行结果如下:输出:77321.42#include using namespace std; int max(int a,int n) int max=a0; for(int i=0;imax?ai:max; return max; double max(double a,int n) double max=a0; for(int i=0;imax?ai:max; return max; int main() int a7=19,33,69,55,77,12,52; double b9=10.1,21.3,12.4,321.42,5.2,7.1,8.3,12.31,70.0; coutmax(a,7)endl; coutmax(b,9)endl; return 0; 11、编写一个用于在字符串中查找某字符的函数。查找成功,函数返回该字符的地址(指针),查找失败,返回的指针为NULL。编写主函数测试该函数,在主函数中输入源字符串和要查找的字符,如果找到,显示字符在源字符串中的序号;如果找不到,显示“未找到”。能找到时,程序运行结果如下:输入(第一个参数是待查找的字符串,第二个是要查找的字符):ABCDEFGHIJKLMND输出:4查找不成功的情形:输入:ABCDEFGS输出:未找到#include using namespace std; char *s(char *q,char b) while(*q!=b&*q!=0) q+; if(*q=b) return q; elsereturn NULL; int main() char a15,b; char *k=a; cina; cinb; if(*s(a,b)=b) couts(a,b)-k+1endl; elsecout0,计算X的K次方。递归函数的名称必须为power。程序运行结果如下:输入(依次为X和K):12.6 4输出:25204.7#include using namespace std; double power(double x,int k) if(x=0) return 0; else if(k=0) return 1; elsereturn x*power(x,k-1); int main() double a,b; cinab; coutpower(a,b)endl; return 0; 13、使用递归算法编写求斐波那契数列的第n项的函数,函数名必须为fib,并编出主函数进行验证。程序运行结果如下:输入:10输出:55#include using namespace std; int fib(int n) if(n=0) return 0; else if(n=1) return 1; elsereturn fib(n-1)+fib(n-2); int main() int k; cink; coutfib(k)endl; return 0; 14、编写一个函数,用于去掉字符串尾部的空格符,其原型为:char *mytrim(char *string);其中参数string为字符串,返回值为指向string的指针。编写主函数测试,带空格的字符串由用户输入。提示,输入字符串可以使用cin.getline(str,100);程序运行结果如下:输入(尾部带有空格的字符串):The art of computer programming 输出(字符串首尾加方括号):The art of computer programming The art of computer programming注意,输出中的方括号是为了看清字符串的边界,例中输入的字符串末尾有5个空格。#include using namespace std; char *mytrim(char *string) char *q=string; while(*q!=0) q+; q=q-1; while(*q= ) q-; q=q+1; *q=0; return string; int main() char a100; cin.getline(a,100); coutaendl; coutmytrim(a)endl; return 0; 15、编写一个函数,用于去掉字符串前面的空格,其原型为:char *myltrim(char *string);其中参数string为字符串,返回值为指向string的指针。编写主函数测试,开头带空格的字符串由用户输入。提示,输入字符串可以使用cin.getline(str,100);程序运行结果如下:输入:The art of computer programming输出: Th
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年陕西邮电职业技术学院招聘(4人)模拟试卷附答案详解(典型题)
- 2025-2030中国啤酒原材料价格波动对生产成本影响及采购策略优化专项研究报告
- 2025-2030中国啤酒产业并购重组趋势下鲜啤品牌生存策略
- 2025-2030中国医药电商政策松绑与商业模式创新研究报告
- 2025-2030中国医疗美容注射类产品消费行为与品牌战略报告
- 2025-2030中国区块链管理咨询市场成长潜力与投资回报评估报告
- 棋牌室经营合同书6篇
- 贵州安顺市平坝区中医院招聘制工作人员考试真题2024
- 2025湖南分公司本部面向华电集团系统内公开招聘考前自测高频考点模拟试题及1套参考答案详解
- 2025年智能制造的工业制造
- 仁爱版九年级英语上册unit2topic1复习课市公开课一等奖省课获奖课件
- 北京市国内旅游合同书
- 公司品牌建设五年规划
- 第二单元 三国两晋南北朝的民族交融与隋唐统一多民族封建国家的发展 知识清单 高中历史统编版(2019)必修中外历史纲要上册
- 居室环境的清洁与消毒
- GB/T 39766-2021人类生物样本库管理规范
- GB/T 2900.50-2008电工术语发电、输电及配电通用术语
- GB/T 2518-2008连续热镀锌钢板及钢带
- GB/T 1689-2014硫化橡胶耐磨性能的测定(用阿克隆磨耗试验机)
- 第二讲国外教育评价的发展历程
- 中外管理思想史-课件
评论
0/150
提交评论