C经典编程练习题.pdf

上传人:s****u 文档编号:12810639 上传时间:2020-05-25 格式:PDF 页数:11 大小:115.39KB
返回 下载 相关 举报
C经典编程练习题.pdf_第1页
第1页 / 共11页
C经典编程练习题.pdf_第2页
第2页 / 共11页
C经典编程练习题.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述
C+经典编程例题(1)1、 (已 验 证 !)计 算 铁 路 运 费 。 已 知 从 甲 地 到 乙 地 , 每 张 票 托 运 行 李 不 超 过 50公 斤 时 , 按 每公 斤 0.13 元 , 超 过 50 公 斤 , 超 过 部 分 按 每 公 斤 0.2元 计 算 。 输 入 行 李 重 量 w,计 算 运 费 y.#include using namespace std;void main()float money=0,weight;coutweight; if (weight0)cout” 数 据 错 误 !” endl;if (weight 50)money = 50 * 0.13 + (weight - 50) * 0.2;coutn总 费 用 是 :moneyendl;2、 (已 验 证 !)根 据 一 元 二 次 方 程 a*x*x+b*x+c=0求 解 方 程 。 输 入 a、 b、 c 的 值 , 求 x1、 x2 的 实 根 .#include #include using namespace std;void main() double a,b,c,p,x1,x2,D;cout请 输 入 3 个 数 : endl;couta; coutb;coutc;cout方 程 为 : ax2+bx+c=0endl; D=b*b-4*a*c;if (D0) cout方 程 无 解 !endl;if (D=0)p=-b/(2*a);x1=p+sqrt(D)/(2*a);cout方 程 有 两 个 相 同 的 实 根 。 endl;coutx1=x2=x10)p=-b/(2*a);x1=p+sqrt(D)/(2*a);x2=p-sqrt(D)/(2*a);cout方 程 有 两 个 不 同 的 实 根 。 endl;coutx1=x1endlx2=x2endl; 3、 (已 验 证 !)分 别 使 用 for和 while 求 n!.注 解 n!=1*2*3*.*n,n由 键 盘 输 入 。For:#include using namespace std;void main() int i,n,s;s=1;coutn; for (i=1;i=n;i+)s=i*s;coutsendl; While:#include using namespace std;void main() int i,n,s;s=1;i=1;coutn; while(i=n)s=i*s;+i;coutsendl;4、 (已 验 证 !)百 钱 买 百 鸡 。 1只 公 鸡 5元 , 1 只 母 鸡 3 元 , 3 只 小 鸡 1 元 , 现 有 100 元 钱 要买 100只 鸡 , 有 什 么 解 法 。 分 别 使 用 三 重 循 环 和 二 重 循 环 来 解 . 鸡 翁 , 鸡 婆 , 鸡 雏 各 : 12、 4、 84只鸡 翁 , 鸡 婆 , 鸡 雏 各 : 8、 11、 81只鸡 翁 , 鸡 婆 , 鸡 雏 各 : 4、 18、 78只鸡 翁 , 鸡 婆 , 鸡 雏 各 : 0、 25、 75只(1).三 重 循 环 :#include using namespace std;void main() const int cock=20,hen=33,chicken=100; int c,h,ck;for(c=0;c=cock;c+)for(h=0;h=hen;h+)for(ck=0;ck=chicken;ck+)if(c+h+ck)=100) (2).两 重 循 环 :#includeusing namespace std; void main() int c,h,ck;for(h=0;h33;h+)for(ck=0;ck100;ck+) c=100-h-ck;if(5*c+h*3+ck/3=100 5、 (已 验 证 !)求 所 有 水 仙 花 数 。 所 谓 水 仙 花 数 是 指 三 位 数 , 其 各 位 数 立 方 和 等 于 该 数 。 如153=1*1*1+5*5*5+3*3*3. (153 370 371 407)#include using namespace std;void main() int a,b,c,d;for (d=100;d1000;d+) a=d/100; /分 解 出 百 位 b=d/10%10;/分 解 出 十 位c=d%10;/分 解 出 个 位if (d=a*a*a+b*b*b+c*c*c)coutd ; coutendl;6、 (已 验 证 !)解 数 学 灯 迷 。 有 以 下 算 式 ABCD-CDC=ABC, 其 中 ABCD均 为 一 位 非 负 整 数 ,求 ABCD的 值 。 (1098)#include using namespace std;void main() int a,b,c,d,e;for (e=1000;e10000;e+) a=e/1000;b=e/100%10;c=e/10%10;d=e%10;if (e-(c*100+d*10+c)=a*100+b*10+c) coute; coutendl;7、 (已 验 证 !)从 键 盘 输 入 一 个 整 数 , 判 断 此 数 是 否 为 回 文 数 。 所 谓 回 文 数 就 是 从 左 到 右 读 与从 右 到 左 读 是 一 样 的 数 。 如 12321、 7887等 。#include using namespace std; bool ifn(int x) int m=0,n;n=x;while(n) m=m*10+n%10;n=n/10; if(m=x) return true;if(m!=x) return false;void main( ) int a; couta;if(ifn(a)couta是 回 文 数 !endl;elsecouta不 是 回 文 数 !endl;8、 (已 验 证 !)使 用 函 数 计 算 y=2*x+3,输 入 x,求 y 的 值 。#include using namespace std;float y(int x) return 2*x+3;void main() int x;coutx; coutY=y(x)endl;9、 (已 验 证 !)使 用 递 归 函 数 , 求 99+97+95+.+3+1之 和 。 ( 和 是 2500。 )#include using namespace std;int sum(long n,long m) if(n=m)return(m);else return(m+sum(n,m-2);void main() int n,m;cout输 入 范 围 : (nm):endl;coutn;coutm;cout从 n到 m的 和 为 :sum(n,m)endl;10、 (已 验 证 !)已 知 杨 辉 三 角 11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1.输 出 前 13行 的 值 .#include using namespace std; void main() int a11,i,j;a1=1;for(i=1;i=2;j-)aj=aj+aj-1;for(j=1;j=i;j+)coutaj ;coutn;11、 (已 验 证 !)约 瑟 夫 问 题 : n个 小 孩 围 成 一 圈 做 游 戏 , 给 定 一 个 数 m,现 从 s 个 小 孩 开 始 , 顺 时 计 数 , 每 数 到 m,该 小 孩 出 列 , 然 后 从 下 个 小 孩 重 新 数 数 , 数 到 m时 , 该 小 孩 出 列 , 如 果 反 复 ,直 到 所 以 小 孩 出 列 。 (太 复 杂 不 会 考 的 ! )#includeusing namespace std;int main() int N,M;cout请 输 入 N, MNM;int *a=new intN; for(int i=0;iN;i+)ai=i+1;int countN=0;int countM=0;for(i=0;i+)if(ai%N!=-1) countM+; if(countM=M)coutai%Nt;ai%N=-1; countN+;countM=0;if(countN=N)break;delete a;return 0; 字 符 串 编 程 :1、 (已 验 证 !)输 入 一 个 字 符 串 , 反 向 输 出 其 字 符 , 如 输 入 是 abcdef,则 反 向 输 出 fedcba.(1)、 利 用 string 流 :#include#include using namespace std; string rstring(string s)if(s.length()=1)return s;elsechar c=ss.length()-1;return c+rstring(s.substr(0,s.length()-1); void main()string str;cout输 入 一 个 字 符 串 :str;coutstr的 反 向 字 符 串 是 rstring(str)endl; (2)、 数 组 倒 序 输 出 (很 简 单 ):#includeusing namespace std;void main()char str180;int l;cout输 入 一 个 字 符 串 :str; l=strlen(str);coutstr=0;i-)coutstri;coutendl;2、 (已 验 证 !)将 输 入 字 符 串 中 所 有 的 C去 掉 , 输 出 其 他 字 符 。#include using namespace std;void main()char str180;int l;cout输 入 一 个 字 符 串 :str;l=strlen(str);cout过 滤 后 为 :;for (int i=0;il;i+) if (stri!=c coutendl; 3、 (已 验 证 !)输 入 字 符 串 , 判 断 此 字 符 串 是 否 为 回 文 , 如 abcd,正 数 为 abcd,反 数 为 dcba,不 是 回 文 ,而 aba,正 数 是 aba,反 数 也 是 aba,是 回 文 。#include using namespace std;void main( ) char str180,l;int i,t=0;coutstr; l=strlen(str);for(i=0;il/2;i+)if(stri=strl-i-1) t=1;break; if(t=0)coutstr不 是 回 文 !endl;else coutstr是 回 文 !endl;
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!