c++题库(简版).doc
《c++题库(简版).doc》由会员分享,可在线阅读,更多相关《c++题库(简版).doc(53页珍藏版)》请在咨信网上搜索。
1、第1题 (10、0分) 题号:664题目:已知有结构体类型定义: struct node int data; struct node *nextPtr; ; 编写函数void printList(struct node * head),对head指向 得单向链表,找出data成员值为正数得所有结点,输出这些结 点在链表中得序号(第1个结点序号为1)与data成员值。答案:void printList(struct node * head)struct node *p;int i=1;p=head;while(p!=NULL)if(pdata 0) coutn数据:data 序号:nextPtr
2、;第2题 (10、0分) 题号:693题目:编写一段程序,计算输入流input中第一个$之前得 字符数目,存入count变量。答案:while (input、get(ch) & ch != $) count+;第3题 (10、0分) 题号:592题目: 用“辗转相除方法”计算两个数 x,y 得最大公约 数答案:n=x%y;while(n!=0)x=y;y=n;n=x%y;第4题 (10、0分) 题号:708题目:从文件中读入n个字符串,将其中以字母A开头得字符串复制 到二维字符数组str1中。答案:for(i=0;i=0)&(strcmp(stri,B)0) strcpy(str1j,stri
3、); j+; 第5题 (10、0分) 题号:639题目:从键盘输入一个正整数n,该正整数可以分解成两个正整数k1 与k2之与(允许k1与k2相等)。请编写一个函数求使两个正 整数得乘积最大得分解方案,并返回乘积max。答案: int i,max; max = 1*(n1); for(i=2;imax) max = i*(ni);第6题 (10、0分) 题号:686题目:写一个函数统计字符串中,大写字母与小写字母 得个数,并分别保存在全局变量Supper与Low中。答案: int i=0; while (inputi!=0) if(inputi=A) Supper+; if (inputi=a)
4、 Low+; i+; 第7题 (10、0分) 题号:628题目:求100以内(不含100)能被3整除且个位数为6得所有整数,答案:int i,count=0;for(i=0;i100;i+)if(i%3=0 & i%10=6)acount+=i;couti0;i)if (i0 & ai1n)ai = ai1;elsebreak;ai = n;第9题 (10、0分) 题号:704题目:编写函数,把一个数字字符组成得字符串转换为相应得整数(如1234转换为1234)。答案:int a2i(char ds)int v = 0;for(int i=0; dsi != 0; i+)v = v*10 +
5、dsi0; return v;第10题 (10、0分) 题号:728题目:求400之内得一对亲密对数。 所谓亲密对数A与B,即A不等于B,且A得所有因子(如,6得因子就是1、2、3) 之与等于B,B得所有因子之与等于A。 求出得亲密对数存放在A与B中,且AB。答案: for(int n=1;n400;n+) int sum_a=0,sum_b=0; int a=n,b; for(int i=1;i=a/2;i+) if(a%i=0)sum_a+=i; b=sum_a; if(b=400) for(int j=1;j=b/2;j+) if(b%j=0) sum_b+=j; if(sum_b=a
6、& a!=b) A=a; B=b; break; 第11题 (10、0分) 题号:696题目:请输出个、十、百位数字各不相同得所有三位数, 结果写入f2、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 ;第12题 (10、0分) 题号:635题目:3025这个数具有一种独特得
7、性质:将它平分为二段,即30与25,使之相加后求平方,即(30+25)*(30+25),恰好等于3025本身。请求出具有abcd=(ab+cd)*(ab+cd)这样性质得全部四位数并使用变量num记录满足条件得数得总个数。要求:调用output函数将求出得数写入文件f2、txt中,例如output(3025)。答案:int n,a,b;for(n=1000;n10000;n+) a=n/100; b=n%100; if(a+b)*(a+b)=n) coutnm & inf2n) s+=m*n;inf1、close;inf2、close;return s;第14题 (10、0分) 题号:623题
8、目:试编写一个判断6位密码就是否正确得函数codec, 若密码正确返回1,密码不正确返回0,出现错误返回1。 密码规则就是:第i位数字就是第i1位数字加1后得3次方得个位数(2=i=6)。 比如:密码272727中第2位得7就是第1位得2加1后得3次方得个位数 (2+1)得3次方为27,其个位数为7),第3位得2就是第2位得7加1后得3次方 得个位数(7+1)得3次方为512,其个位数为2),以此类推。答案:if (result != 1)for (i=1; i6; i+)if (ai!=(ai1+1)*(ai1+1)*(ai1+1)%10) result =0;第15题 (10、0分) 题号
9、:616题目: 请编写函数 int num_of_facs(int n); 计算一个正整数 n 得因子个数(包括1与自身)。答案:int m =0;for(int i=1;in;i+) if(!(n%i) m+;m+;return m;第16题 (10、0分) 题号:634题目:马克思手稿中得数学题 马克思手稿中有一道趣味数学问题:有30个人,其中可能有男 人、女人与小孩,准备在一家饭馆花50先令吃饭;规定每个男 人可花3先令,每个女人可花2先令,每个小孩可花1先令; 问:男人、女人与小孩可各有几人? 要求将求出得每一组解以及解得总个数都通过调用output函 数写入文件f2、txt中。例如0
10、、20、10就是一组解,则应使用 output(0);output(20);output(10)三条语句将这组解写入结果 文件f2、txt答案:for(m=0;m=10;m+)f=202*m; c=30mf; if(3*m+2*f+c=50) coutm f c endl;output(m);output(f);output(c);num+;第17题 (10、0分) 题号:263题目: 已知n,计算n以内得所有素数之与sum。提醒:在写程序时,可自己输入n。但就是最终提交时,请从给定得文件读入n,即不要修改不允许修改得代码。答案: for(outerindex=2; outerindexn;
11、outerindex+)prime=true;temp = (int) sqrt(float)outerindex);for(innerindex=2; innerindex=temp; innerindex+)if(outerindex%innerindex=0)prime = false;break;if(prime)sum+=outerindex;第18题 (10、0分) 题号:722题目:编写函数countWeek,根据给定得星期数(其中星 期日用0表示、星期一用1表示、,以此类推 ),请计算n天后就是星期几,并将结果返回。答案:return (week + n)%7;第19题 (10
12、、0分) 题号:266题目: 已知100个数求最大值及最小值以及它们得差。例如 8,43,7,18,2,56,37,123,25,26则 max=132,min=2,ca=130。答案: max=min=a0;for(i=0;imax)max=ai;if(aimin)min=ai;ca=maxmin;第20题 (10、0分) 题号:680题目:某个公司采用公用电话传递数据,数据就是四位得整数,在传递过程中就是加密得,加密规则如下:每位数字都加上5,然后用与除以10得余数代替该数字,再将第一位与第四位交换,第二位与第三位交换 。 写一个函数实现这个算法,函数原型就是 int changeinfo
13、(int info)答案:int changeinfo(int info) int a4; a0=info%10; a1=info%100/10; a2=info%1000/100;a3=info/1000; for(int i=0;i=3;i+) ai+=5;ai%=10; for( i=0;i=3/2;i+) int t=ai; ai=a3i; a3i=t;return a0+a1*10+a2*100+a3*1000; 第21题 (10、0分) 题号:588题目: 定义函数mymult(int m),已知一个正整数m,求m得各位数字之积f。答案: void mymult(int m)whi
14、le( m!=0)n=m%10;f*=n;m=m/10;第22题 (10、0分) 题号:717/自建题库第161题 题号:717题目:从文件in中读入20个整数,将其中为 奇数得整数输出到显示器与文件out161、txt中, 每个奇数占一行。答案:if (num%2)coutnumendl;第23题 (10、0分) 题号:594题目: 利用冒泡法将200个数按降序排列答案: for(i=0;i200;i+)for(j=0;jarrj)k=arrj+1;arrj+1=arrj;arrj=k;第24题 (10、0分) 题号:622题目: 已知某文本文件 in、txt 中存放有若干整数,请将其按照
15、从小到大得顺序排列后存入另一文件 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* &
16、 p_head, char* s_file)node * p_tail = p_head;ifstream inf(s_);int m;while(infm)node * p_new = new node;p_newdata =m;p_newnext = NULL;if(!p_head | !p_tail)p_tail = p_head = p_new; elsep_tailnext = p_new;p_tail=p_new;inf、close;void sort(node* p_head)for(node * p_i = p_head;p_i;p_i=p_inext)node* p_k= p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 题库 简版
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。