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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(2023年c++题库简版.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

2023年c++题库简版.doc

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)

2、{ struct node *p; int i=1; p=head; while(p!=NULL) { if(p->data > 0) cout<<"\n数据:"<data<<" 序号:"<nextPtr; } } 第2题 (10.0分) 题号:693 题目:编写一段程序,计算输入流input中第一个$之前的 字符数目,存入count变量。 答案:while (input.get(ch) && ch != '$') count++; 第3题 (10.0分) 题号:592

3、 题目: 用“辗转相除方法”计算两个数 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(str[i],"B")<0)) { strcpy(str1[j],str[i]); j++; } } 第5题 (10.

4、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和Lo

5、w中。 答案: int i=0; while (input[i]!='\0') { if(input[i]<='Z' &&input[i] >='A') Supper++; if (input[i]<='z' &&input[i] >='a') Low++; i++; } 第7题 (10.0分) 题号:628 题目:求100以内

6、不含100)能被3整除且个位数为6的所有整数, 答案: int i,count=0; for(i=0;i<100;i++) if(i%3==0 && i%10==6) { a[count++]=i; cout<

7、组a中为3 b) 调用ins(a, 1,2)后,数组a中为2,3 c) 调用ins(a, 2,6)后,数组a中为2,3,6 答案: int i; for (i=len;i>0;i--) { if (i>0 && a[i-1]>n) a[i] = a[i-1]; else break; } a[i] = n; 第9题 (10.0分) 题号:704 题目:编写函数,把一个数字字符组成的字符串转换为相应的整数(如"1234"转换为1234)。 答案:int a2i

8、char ds[]) { int v = 0; for(int i=0; ds[i] != '\0'; i++) { v = v*10 + ds[i]-'0'; } return v; } 第10题 (10.0分) 题号:728 题目:求400之内的一对密切对数。 所谓密切对数A和B,即A不等于B,且A的所有因子(如,6的因子是1、2、3) 之和等于B,B的所有因子之和等于A。 求出的密切对数存放在A和B中,且A

9、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 && a!=b) { A=a; B=b; break; } } } 第11题

10、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) {

11、 count = 0; output << endl; } else output << " "; } } 第12题 (10.0分) 题号:635 题目:3025这个数具有一种独特的性质:将它平分为二段,即30和25, 使之相加后求平方,即(30+25)*(30+25),恰好等于3025自身。 请求出具有abcd=(ab+cd)*(ab+cd)这样性质的所有四位数并使用变 量num记录满足条件的数的总个数。 规定:调用output()函数将求出的数写入文献f2.txt中,例如output(3025)。 答案:

12、 int n,a,b; for(n=1000;n<10000;n++) { a=n/100; b=n%100; if((a+b)*(a+b)==n) { cout<

13、 char* s2) 求二向量的内积。 其中,s1 和s2 分别是存放两个向量的文献名。 (向量的内积公式如图) 答案:ifstream inf1(s1,ios::in); ifstream inf2(s2,ios::in); double m, n; double s=0; while(inf1>>m && inf2>>n) s+=m*n; inf1.close(); inf2.close(); return s; 第14题 (10.0分) 题号:623 题目:试编写一个判断6位密码是否对的的函数codec,

14、 若密码对的返回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; i<6; i++) if (a[i]!=((a[i-1]+1)*(a[i-1]+1)

15、a[i-1]+1))%10) result =0; 第15题 (10.0分) 题号:616 题目: 请编写函数 int num_of_facs(int n); 计算一个正整数 n 的因子个数(涉及1和自身)。 答案: int m =0; for(int i=1;i

16、备在一家饭馆花50先令吃饭;规定每个男 人可花3先令,每个女人可花2先令,每个小孩可花1先令; 问:男人、女人和小孩可各有几人? 规定将求出的每一组解以及解的总个数都通过调用output()函 数写入文献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) {

17、 cout<

18、oat)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表达、......,以此类推 ),

19、请计算n天后是星期几,并将结果返回。 答案: return (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=a[0]; for(i=0;i<10;i++) {if(a[i]>max)max=a[i]; if(a[i]

20、递数据, 数据是四位的整数,在传递过程中是加密的, 加密规则如下:每位数字都加上5, 然后用和除以10的余数代替该数字, 再将第一位和第四位互换, 第二位和第三位互换 。 写一个函数实现这个算法, 函数原型是 int changeinfo(int info) 答案:int changeinfo(int info) { int a[4]; a[0]=info%10; a[1]=info%100/10; a[2]=info%1000/100; a[3]=info/1000; for(int i=0;i<=3;i++) { a[i]+=5;a

21、[i]%=10;} for( i=0;i<=3/2;i++) { int t=a[i]; a[i]=a[3-i]; a[3-i]=t; } return a[0]+a[1]*10+a[2]*100+a[3]*1000; } 第21题 (10.0分) 题号:588 题目: 定义函数mymult(int m),已知一个正整数m,求m的各位数字之积 f 。 答案: void mymult(int m) { while( m!=0) {n=m%10;f*=n;m=m/10;} } 第22题 (10.0分)

22、 题号:717 //自建题库第161题 题号:717 题目:从文献infile161.txt中读入20个整数,将其中为 奇数的整数输出到显示器和文献out161.txt中, 每个奇数占一行。 答案: if (num%2) { cout<arr[j]) { k=arr[

23、j+1]; arr[j+1]=arr[j]; arr[j]=k; } } } 第24题 (10.0分) 题号:622 题目: 已知某文本文献 in.txt 中存放有若干整数,请将其按照 从小到大的顺序排列后存入另一文献 out.dat。 你需要完毕三个函数 1. void read_in (node* & p_head, char* s_file) 负责从某个文献 s_file 中读入,并存在以 p_head 为头部指针的链表中;

24、 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) { node * p_tail = p_head; ifstream inf(s_f

25、ile,ios::in); int m; while(inf>>m) { node * p_new = new node; p_new->data =m; p_new->next = NULL; if(!p_head || !p_tail) { p_tail = p_head = p_new; } else { p_tail->next = p_new; p_tail=p_new; } } inf.close(); } void sort(node* p_head) { for(n

26、ode * p_i = p_head; p_i;p_i=p_i->next) { node* p_k= p_i; for(node* p_j=p_i;p_j;p_j=p_j->next) if(p_j->data < p_k->data) p_k=p_j; int x = p_i->data; p_i->data = p_k->data; p_k->data = x; } } void write_out(node* p_head, char* s_file) { ofstream ouf(s_

27、file,ios::out); for(node * p_cur = p_head; p_cur; p_cur=p_cur->next) { ouf<data<

28、 yearday+=days(term); } yearday+=days(today); 第26题 (10.0分) 题号:582 题目:在包含10个数的一维整数数组a中查找给定的数据num。 假如找到则返回1,未找到返回 0 . 答案: for (int i=0; i<10; i++) if (a[i]==num) return 1; return 0; 第27题 (10.0分) 题号:679 题目:写一个函数char myfun(int score), 实现百分制成绩与等级之间的转换关系: 90分以上为"A",80-8

29、9为"B",依次类推, 60分以下为"E",并将等级返回 答案:char myfun(int score) { switch(score/10) { case 10:case 9:return 'A'; case 8: return 'B'; case 7: return 'C'; case 6:return 'D'; default: return 'E'; } } 第28题 (10.0分) 题号:598 题目: 从文献中读入6个数到数组中,计算其中正数的平均值aver. 答案: aver=0; for(j=0;j<6;j++) {

30、 if(a[j]>0) { n++; aver+=a[j]; } } aver/=n; 第29题 (10.0分) 题号:702 题目:编写一个函数void changeString(char str[]);, 功能是把其中的大写字母变成小写字母,小写字母变成大写字母, 非字母的字符不作变换。变换结果依旧保存在str数组内。 大写字母的ASCII码值比相应的小写字母的ASCII码值小32, 如'A'的ASCII码值比'a'的ASCII码值小32。 答案:void cha

31、ngeString(char str[]) { for(int i=0; str[i] != '\0'; i++) { if(str[i]>='a' && str[i]<='z') str[i] -= 32; else if(str[i]>='A' && str[i]<='Z') str[i] += 32; } } 第30题 (10.0分) 题号:657 题目:写一个函数,计算x的n次方。 函数原型是double myfun(int x,int n) 答案: int x1=1; while(n>0) { x1=x1*x

32、 n--; } return x1; 第31题 (10.0分) 题号:645 题目:下面程序中的函数void conv(char *s);将字符串s中 的所有字符逆序存放,例如s中为”abc”时,调用该函数后 s中的字符串变为”cba”,完毕该函数。 答案: int len = strlen(s), j; for (j=0;j

33、00,000之间所有对称数的个数。 例如1221,2332都是对称数。 答案: int a,b,c,d; a=i/1000; b=i%1000/100; c=i%100/10; d=i%10; if(a==d&&c==b) { cout<

34、 i++; return i; 第34题 (10.0分) 题号:644 题目:下面的程序计算一个4*5的浮点数组s中每列的平均值, 并将结果存入到数组ave中,如第0列的平均值存入到ave[0]中。 完毕该程序。 答案: for (j=0;j<5;j++) { float m=0; for (i=0;i<4;i++) m+=s[i][j]; m = m/4; ave[j] = m; } 第35题 (10.0分) 题号:177 题目:某服装店经营套服,也单件出售。若买的不少于50套, 每套80元;若局限性50套,则每套90元;单件

35、上衣 ,每件60元;单条裤子,每条45元。 已知要买的上衣和裤子数,编写函数计算应付款。 函数原型是 int Payfor(int yifu,int kuzi); 第一个参数表达衣服的数量,第二个参数表达裤子的数量 答案:int Payfor(int yifu,int kuzi) { int tao=0; int pay=0; if (yifu<=kuzi) { tao=yifu; kuzi-=yifu; pay=45*kuzi; }else { tao=kuzi; yifu-=kuzi; pay=60*yif

36、u; } if(tao>=50) pay+=tao*80; else pay+=tao*90; return pay; } 第36题 (10.0分) 题号:659 题目:一个首项大于0的递增等差数列前四项和为26,前四项积为880, 写一个函数myfun()返回该数列的第20项的值。 提醒:假如一个数列从第二项起,每一项与它的前一项的差等于同一个常数, 这个数列就叫做等差数列,这个常数叫做等差数列的公差。 如等差数列:1,3,5,7,9,11。公差是2,该数列的第5项值是9 答案:int myfun() { int a,b,c,d,flag;

37、 for(flag=1,a=0; flag && a<5;++a) for(d=1;flag && d<5;++d) { b=a+(a+d)+(a+2*d)+(a+3*d); c=a*(a+d) *(a+2*d)*(a+3*d); if(b==26&&c==880) { return a+19*d; } } return -1; } 第37题 (10.0分) 题号:688 题目:编写一个递归函数,计算下面的级数: m(k) = 1 + 1/2 +1/3 +… + 1/k (k>=1)。 答案: double

38、 result = 0.0; if (k==1) result = 1; else result = 1.0/k + m(k-1); return result; 第38题 (10.0分) 题号:637 题目:约瑟夫问题 这是17世纪的法国数学家加斯帕在《数目的游戏问题》中讲的一个故事:15个教徒和15 个 非教徒在深海上遇险,必须将一半的人投入海中,其余的人才干幸免于难,于是想了一个 办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海, 如此循环进行直到仅余15个人为止。问如何排法,才干使每次投入大海的都是非教徒。 答案: i

39、nt i,j,k; j=30; /*j:指向已经解决完毕的数组元素,从link[i]指向的人开始计数*/ for(i=0;i<15;i++) /*i:已扔下海的人数计数器*/ { for(k=0;;) /*k:决定哪个人被扔下海的计数器*/ if(k<9) { j=link[j].nextp; /*修改指针,取下一个人*/ k+=link[j].no_out; /*进行计数。因已扔下海的人计标记为0*/ } else break; /*计数到15则停止计数*/ link[j].no_out=0; /*将标记置 0,表达该人已被扔下

40、海*/ } 第39题 (10.0分) 题号:636 题目:求202300以内的自守数。 规定编写函数selfhold,判断一个数是否是一个自守数, 若是,则返回1,否则返回0。 自守数是指一个数的平方的尾数等于该数自身的自然数。例如: 25*25=625 76*76=5776 9376*9376=87909376 答案: long mul,k,ll,kk; for(mul=number,k=1;(mul/=10)>0;k*=10); kk=k*10; mul=0; ll=10; while(k>0) {

41、 mul=(mul+(number%(k*10))*(number%ll-number%(ll/10)))%kk; k/=10; ll*=10; } if(number==mul) return 1; else return 0; 第40题 (10.0分) 题号:8 题目:编程计算个人所得税。 个人所得税率表如下:月收入1200元起征,超过起征点500元以内部分税率5%,超过500 元到2,000元部分税率10%,超过2,000元到5,000元部分税率15%,超过5,000元到20,000 元部分税率20%,超过20,

42、000元到40,000元部分税率25%,超过40,000元到60,000元部分 税率30%,超过60,000元到80,000元部分税率35%,超过80,000元到100,000元部分税率40%, 超过100,000元部分税率45%。 说明:1.应当从最高税率段开始计算,分段叠加。先算两万元以上各段,每两万为一档,采用 switch语句,注意没有使用break语句。后面各低收入段,用if语句,也没有使用else, 这两种方法是相应的。 2.要注意计算的入口处,收入减去该段的下限,进行计算,以后各段都是完整的段,

43、 计算十分简朴。 3.变量定义为双精度。 答案: double income,tax=0; int k; cout<<"请输入个人月收入:"<>income; if(income<=1200){ cout<<"免征个人所得税"<20230){ k=income/20230; switch(k){ default: tax+=(income-100000)*0.45;income=100000;

44、 case 4: tax+=(income-80000)*0.40;income=80000; case 3: tax+=(income-60000)*0.35;income=60000; case 2: tax+=(income-40000)*0.30;income=40000; case 1: tax+=(income-20230)*0.25;income=20230; } } if(income>5000){ tax+=(income-5000)*0.20; income=5000; } if(income>2023){ t

45、ax+=(income-2023)*0.15; income=2023; } if(income>500){ tax+=(income-500)*0.10; income=500; } tax+=income*0.05; cout<<"应征所得税:"<

46、name,ios::out); if(outfile.is_open()) { cout<<"Open File Error!"<

47、pen File Error!"<>i>>f>>ch>>string; cout<

48、题 (10.0分) 题号:703 题目:编写函数int calLineNumber(char * filename), 功能是求文本文献内文本的行数(等于在记事本程序内看到的行数), 文本文献的名字由参数filename传入,假定一行的字符数不会超过100。 以下给出也许用到的函数的说明: 1. int ifstream::eof() 判别文献位置指针是否到达文献结尾 2. ifstream::getline(char *buffer, int coun

49、t) 从文献最多读取count个字符存入buffer指向的内存区域, 假如碰到换行符,则读操作会提前结束。读入的内容尾部自动补上空字符。 答案:int calLineNumber(char * filename) { ifstream inFile(filename, ios::in | ios::nocreate); if(!inFile) { cerr<<"无法打开数据文献"<

50、nt = 0; while(!inFile.eof()) { char str[100]; inFile.getline(str, 100); //cout<

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服