C++ 题库186道题(简缩).doc

上传人:桔**** 文档编号:558777902 上传时间:2024-01-12 格式:DOC 页数:15 大小:308KB
返回 下载 相关 举报
C++ 题库186道题(简缩).doc_第1页
第1页 / 共15页
C++ 题库186道题(简缩).doc_第2页
第2页 / 共15页
C++ 题库186道题(简缩).doc_第3页
第3页 / 共15页
C++ 题库186道题(简缩).doc_第4页
第4页 / 共15页
C++ 题库186道题(简缩).doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《C++ 题库186道题(简缩).doc》由会员分享,可在线阅读,更多相关《C++ 题库186道题(简缩).doc(15页珍藏版)》请在金锄头文库上搜索。

1、C+题库182道设计题第1题:已知有结构体类型定义: struct node int data; struct node *nextPtr; ; 请编写函数void computingList(node * head),对head 指向的单向链表,分别统计结点的data成员值为负数、0、 正数的结点个数分别存入变量negtive、zero、positive中。 答案:struct node *p;p=head;while(p!=NULL)if(p-data 0)positive+; else if (p-data data = 0)zero+; p=p-nextPtr;第2题:设计函数char

2、 capitalize(char);将小写英文字符变为对应的大写字符。答案:char capitalize(char ch)if(ch=a&ch=z)return ch-a+A;else return ch;第3题:函数mySum(int a , int m, int n)返回二维 整数数组a中所有元素的和,m、n分别为数组a的行 数、列数。填写适当的代码,使得mySum()完成正确 的功能。答案:int i, j, s=0;for (i=0; im; i+)for (j=0; jn; j+)s = s + aij;return s;第4题: 求1-1000之间同构数的个数n。同构数是: 某数

3、与其自身的平方数的后几位相同。 例如:2525625,25是同构数。答案: int i=1;k=m;j=m*m;while(k!=0)k/=10;i*=10;if(j%i=m)n+;第5题:补充函数aver的代码,该函数计算n个学生成绩(通 过参数cj传入)的平均分数。答案: int sum = 0;int i;for( i=0;in;i+)sum += cji;return (float)sum/n; 第6题:输入两个正整数m和n,求其最大公约数和最小公倍数。答案:while(r!=0)m=n;n=r;r=m%n;第7题:编程计算,计算公式如右图所示。答案:int i, k, s;s=0;f

4、or (i=1; i=20; i+)for (k=1; k=3; k+)s = s + (i+1)*(i+1)*(k+2)*(k+2);return s;第8题: 完成函数cal,该函数计算数组a中的所有数据的 最大值及最小值以及它们的差,并存入到全局变 量max、min、ca中。例如数组a中包含8,43,7, 18,2,56,37,123,25,26则max=123,min=2, ca=121。 答案:int i;max=min=a0;for(i=0; imax)max=ai;if(aimin)min=ai;ca=max-min;第9题:从文件中读入n个字符串,将其中以字母A开头的字符串复制

5、 到二维字符数组str1中。答案:for(i=0;i=0)&(strcmp(stri,B)b&ac) return a;if(ba&bc) return b;return c;第13题:邮政汇款的收费标准是汇款金额的1%,但单笔收费上限是50元。 编写一个函数double shouFei(double money),根据输入的 汇款金额money,返回所要收取的费用。 答案:double shouFei(double money)double sf = 0;if(money 50.0)sf = 50.0;return sf;第14题:请输出个、十、百位数字各不相同的所有三位数, 结果写入f2.

6、txt中,一个数一行。要求:输出时按从小到大的顺序输出。答案:for(i = 0; i 10; i+)for(j = 0; j 10; j+)for(k = 1; k 10; k+)if(i != j & j != k & i != k)output k j i;count+;if(count = 60)count = 0;output endl;elseoutput b)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;第17题:编写函数pfh,功能是返回两个实数的平方和。答案:double pfh(double x, double y) ret

7、urn x*x+y*y;第18题: 编写函数getSum()求整数m的各位数字之和并返回该值。 例如m252时,各位数字之和为9。答案:-int s=0,n;while( m!=0)n=m%10;s+=n;m=m/10;return s;-第19题:约瑟夫问题这是17世纪的法国数学家加斯帕在数目的游戏问题中讲的一个故事:15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环进行直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是非教徒。答案:-int i,j

8、,k;j=30; /*j:指向已经处理完毕的数组元素,从linki指向的人开始计数*/for(i=0;i15;i+) /*i:已扔下海的人数计数器*/for(k=0;) /*k:决定哪个人被扔下海的计数器*/if(k9)j=linkj.nextp; /*修改指针,取下一个人*/k+=linkj.no_out; /*进行计数。因已扔下海的人计标记为0*/else break; /*计数到15则停止计数*/linkj.no_out=0; /*将标记置 0,表示该人已被扔下海*/-第20题:函数compare比较两个长度为N的数组是否相等(即 两数组中下标相同的数组元素均相等)。请完成该 函数。答案

9、:for(int index = 0; index 200; index+)if(aindex != bindex)equal = false;break;第21题: 已知某文本文件 in.txt 中存放有若干整数,请将其按照 从小到大的顺序排列后存入另一文件 out.dat。 你需要完成三个函数 1. void read_in (node* & p_head, char* s_file) 负责从某个文件 s_file 中读入,并存在以 p_head 为头部指针的链表中; 2. void sort(node* p_head) 将链表内的元素按照从小到大的顺序排序; 3. void write_out(node* p_head, char* s_file) 将链表中的元素依次写入到 s_file 中 (注意,写入的元素以回车分割)。 其中,链表节点结构 node 已经定义。答案:void read_in(node* & p_head, char* s_file)n

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号