2023年c++题库简版.doc
《2023年c++题库简版.doc》由会员分享,可在线阅读,更多相关《2023年c++题库简版.doc(94页珍藏版)》请在咨信网上搜索。
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(p-data 0) coutn数据:data 序号:nextPt
2、r;第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,str
3、i); j+; 第5题 (10.0分) 题号:639题目:从键盘输入一个正整数n,该正整数可以分解成两个正整数k1 和k2之和(允许k1和k2相等)。请编写一个函数求使两个正 整数的乘积最大的分解方案,并返回乘积max。答案: int i,max; max = 1*(n-1); for(i=2;imax) max = i*(n-i);第6题 (10.0分) 题号:686题目:写一个函数记录字符串中,大写字母和小写字母 的个数,并分别保存在全局变量Supper和Low中。答案: int i=0; while (inputi!=0) if(inputi=A) Supper+; if (inputi
4、=a) 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 & ai-1n)ai = ai-1;elsebreak;ai = n;第9题 (10.0分) 题号:704题目:编写函数,把一个数字字符组成的字符串转换为相应的整数(如1234转换为1234)。答案:int a2i(char ds)int v = 0;for(int i=0; dsi != 0; i+)v =
5、v*10 + dsi-0; 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(
6、sum_b=a & 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题 (
8、10.0分) 题号:623题目:试编写一个判断6位密码是否对的的函数codec, 若密码对的返回1,密码不对的返回0,出现错误返回-1。 密码规则是:第i位数字是第i-1位数字加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!=(ai-1+1)*(ai-1+1)*(ai-1+1)%10) result =
9、0;第15题 (10.0分) 题号: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
10、()函 数写入文献f2.txt中。例如0、20、10是一组解,则应使用 output(0);output(20);output(10)三条语句将这组解写入结果 文献f2.txt答案: for(m=0;m=10;m+)f=20-2*m; c=30-m-f; 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(outer
11、index=2; outerindexn; 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
12、 (week + n)%7;第19题 (10.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=max-min;第20题 (10.0分) 题号:680题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位互换,第二位和第三位互换 。 写一个函数实现这个算法,
13、函数原型是 int changeinfo(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=a3-i; a3-i=t;return a0+a1*10+a2*100+a3*1000; 第21题 (10.0分) 题号:588题目: 定义函数mymult(int m),已知一个正整数m,求m的各位数字之积f。答案:
14、 void mymult(int m)while( m!=0)n=m%10;f*=n;m=m/10;第22题 (10.0分) 题号:717/自建题库第161题 题号:717题目:从文献infile161.txt中读入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题
15、目: 已知某文本文献 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 中 (注意,写入的元素以回车分割)。 其中,链表节点结构
16、node 已经定义。答案:void read_in(node* & p_head, char* s_file)node * p_tail = p_head;ifstream inf(s_file,ios:in);int m;while(infm)node * p_new = new node;p_new-data =m;p_new-next = NULL;if(!p_head | !p_tail)p_tail = p_head = p_new; elsep_tail-next = p_new;p_tail=p_new;inf.close();void sort(node* p_head)for
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 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。