已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北大青鸟ACCP4.0 程序逻辑和C语言实现 课本后的习题和上机题目1。 编写一个程序,用于接受用户输入的两个数(可以是整数也可以是小数),对其执行加、减、乘、除、及求余运算,然后以格式化方式显示计算结果,要求小数点保留两位,有效数字。#includevoid main()float num1,num2;float answer;printf(请输入个数字,以空格隔开:);scanf(%f%f,&num1,&num2);answer=num1+num2;printf(n%.2f+%.2f=%.2f,num1,num2,answer);answer=num1-num2;printf(n%.2f-%.2f=%.2f,num1,num2,answer);answer=num1*num2;printf(n%.2f*%.2f=%.2f,num1,num2,answer);/将数进行除法运算.answer=num1/num2;/将除法运算结果返回给用户.printf(n%.2f/%.2f=%.2f,num1,num2,answer);/将数进行求余运算./因为%运算符只作用于整数之前,所以应该先进行强制数据转换.answer=(int)num1%(int)num2;/将求余运算结果返回给用户.printf(n%.2f%.2f=%.2f,num1,num2,answer);printf(n程序结束!n);2。编写一个程序,要求输入一个数,输出该数分别与110的数相乘的结果。输出格式如下: 请输入一个数字:5 5 * 1=5 5*2=10 5*3=15 5*4=20 5*5= 25 5*6=30 5*7=35 5*8=40 5*9=45 5*10=50#includevoid main()int a,b,c;printf (请输入一个数字:);scanf (%d,&a);for(c=1;c11;c+)b=a*c;if(c%2 = 0)printf (%d * %d = %dn,a,c,b);elseprintf (%d * %d = %d ,a,c,b);3。编写一个程序,从用户输入的三个数中找到最大值,并将该最大值输出。#includevoid main()int a,b,c,max;printf(请输入三个数(用空格格开):);scanf(%d%d%d,&a,&b,&c);if(ab&ac)printf(max=%d n,a);else if(ba)&(bc)printf(max=%d n,b);elseprintf(max=%d n,c); 4。编写一个程序,验证用户输入的一个字符是否是大写字母。#includevoid main() char ch;printf(请输入一个字母:n); ch=getchar();if(ch=A & ch =a & ch =z)printf(%c 是小写字母n,ch);else printf(该字符不是字母n ); 5。 接受一个四位整数。编写一个程序,将该数的每一个数字相加并显示结果#includevoid main()int a,b,c,d,x;/a个位,b十位,c百位,d千位,x为该数printf(请输入一个四位数:);scanf(%d,&x);if(x9999)printf(输入的数值超过四位数!n);else d=x/1000;c=x%1000/100;b=x%100/10;a=x%10;printf( %d + %d + %d + %d = %dn,d,c,b,a,a+b+c+d);简单方法#includevoid main() int a,b,c,sum; printf(n请输入一个数: ); scanf(%d,&a); c=0; sum=0; while (a0) b=a%10; a=a/10; c+; sum=b+sum; printf(这些数拆开相加的结果); printf(%dn,sum);6。 接受用户输入的数值,该值表示某个字符的ASC码,使用putchar()函数显示该字符#includevoid main() int a;printf(请输入一个数值:);scanf(%d,&a);printf(转换ASC码后的字符为:);putchar(a);printf(n);7某商场打折促销商品。购买某种商品根据购买数量(x)给予不同折扣,根据用户输入的购买商品的数量及该商品的单价,输出用户应付的金额,折扣信息如表所示。数量 折扣情况X5 不大折5X10 1%折扣10X20 2%折扣20X30 4%折扣30X 6%折扣#includevoid main()int x;double price,zj;printf(请输入购买的数量:);scanf(%d,&x);printf(n请输入购买商品的价格:);scanf(%lf,&price);if(x=5 & x=10 & x=20 & x=30)zj=(x*price)*(1-0.06);elsezj=x*price; printf(n您的应付金额为:%7.2fn,zj);或#include#include void main() int x,y; float cash; printf(number is ); scanf(%d,&x); printf(nThe price is(yuan) ); scanf(%d,&y); if(x5) cash=x*y; else if(x10) cash=x*y*(1-0.1); else if(x20) cash=x*y*(1-0.02); else if(x30) cash=x*y*(1-0.04); else cash=x*y*(1-0.06); printf(nBuy %d food need %f yuan!n,x,cash);8假如一周食谱如下:星期一 :青菜星期二 :鸡星期三 :鱼星期四 :肉星期五 :鸡蛋星期六 :豆制品星期日 :海鲜 编写一个程序,要求实现用户在输入今天星期几(17)时,显示当天食谱的内容。#includevoid main()int x;printf(n请输入今天星期几(-7):);scanf(%d,&x);switch(x)case 1:printf(n今天星期一:青菜n);break;case 2:printf(n今天星期二:鸡n);break;case 3:printf(n今天星期三:鱼n);break;case 4:printf(n今天星期四:肉n);break;case 5:printf(n今天星期五:鸡蛋n);break;case 6:printf(n今天星期六:豆制品n);break;case 7:printf(n今天星期七:海鲜n);break;default:printf(n输入错误!n);printf(n);9银行提供了整存整取定期储蓄的业务,其存期分为一年,两年,三年,五年,到期凭存单支取本息。年利率如表所示。存 期 年利率一年 2.25两年 2.7三年 3.24五年 3.6 编写一个程序,用于根据存期和存款额(本金)计算利息,以及到期取款时银行应支取的本息。#include #include int main() float money,rea,reb;int year;printf(请输入存款年限,所存金额:); scanf(%d,%f,&year,&money); if(year=5) rea=0.036*year*money; reb=rea+money; else if(year=3) rea=0.0324*year*money; reb=rea+money; else if(year=2) rea=0.027*year*money; reb=rea+money; else if(year=1) rea=0.0225*year*money; reb=rea+money; printf(n利息为:%7.5f n本加息为:%7.5fn,rea,reb); printf(n);10只要顾客购买的商品数量大于等于10件,并且购物总额大于等于1000元,商店就给顾客10%的折扣。接受购物数量以及总金额,要求计算出折扣额和折扣后的应付金额。#include int main()int a;float b,c;printf(请n输入购买商品的数量:);scanf(%d,&a);printf(n请输入购买商品的价钱:);scanf(%f,&b);if (a=10)&(b=1000)c=b*0.1;b=b-c;printf(n您的折扣是:%fn n应付的金额是:%fn,c,b);elseprintf(n您没有折扣,应付的金额是:%fn,b);printf(n);11接受一个字符,例如用“+”表示加法,用“”表示减法。接受num1 和num2 两个数。如果输入的字符为“+”,则将这两个数相加并显示相应的结果。如果输入的字符为“”,则将这两个数相减并显示相应的值。#include void main() int shu1,shu2,result; char ch; printf(请输入字符(+,-,*,/):); scanf(%c,&ch); printf(请输入第一个数字:); scanf(%d,&shu1); printf(请输入第二个数字: ); scanf(%d,&shu2); if( ch=+)result = shu1+shu2; else if ( ch=-)result = shu1-shu2; else if ( ch=*)result = shu1*shu2; else if ( ch=/)result = shu1/shu2; elseprintf(输入错误!); printf(%d %c %d = %dn,shu1, ch, shu2, result); 12企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数。#includevoid main()int i;double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;printf(n 请输入企业的年利润(万):);scanf(%ld,&i);bonus1=10*0.1;bonus2=bonus1+10*0.75;bonus4=bonus2+20*0.5;bonus6=bonus4+20*0.3;bonus10=bonus6+40*0.15;if(i=10)bonus=i*0.1;else if(i=20)bonus=bonus1+(i-10)*0.075;else if(i=40)bonus=bonus2+(i-20)*0.05;else if(i=60)bonus=bonus4+(i-40)*0.03;else if(i=100)bonus=bonus6+(i-60)*0.015;elsebonus=bonus10+(i-100)*0.01;printf(n 年底发放的奖金为:%10.6f 万n,bonus);13编写一个程序,用于创建包括下列选项的菜单。A 添加详细信息B 修改详细信息C 删除详细信息D 查看详细信息E 退出请输入之间的选项:用户应保证输入的选项在 a 和e 之间,否则均为无效输入# include void main()char inp;printf(n a. 添加详细信息);printf(n b. 修改详细信息);printf(n c. 删除详细信息);printf(n d. 查询详细信息);printf(n e. 退出);printf(nn 请输入(a - e) 之间的选项: );scanf(%c,&inp);switch(inp)case a : printf(n 添加详细信息n);break;case b : printf(n 修改详细信息n);break;case c : printf(n 删除详细信息n);break;case d : printf(n 查询详细信息n);break;case e : printf(n 退出n);break;default : printf(n 请仅在a - e 之间选择: n);14输入某年某月某日,判断这一天是这一年的第几天#includevoid main()int day,month,year,sum,leap;printf(n请输入日期(年,月,日)n);scanf(%d,%d,%d,&year,&month,&day);switch(month)/*先计算某月以前月份的总天数*/case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf(data error);break;sum=sum+day;/*再加上某天的天数*/if(year%400=0|(year%4=0&year%100!=0)/*判断是不是闰年*/leap=1;elseleap=0;if(leap=1&month2)/*如果是闰年且月份大于,总天数应该加一天*/sum+;printf(这天是当年的第%d 天。n,sum); 15.某公司员工的工资包括底薪和奖金两部分,每个员工的底薪都是1000元,而奖金取决于员工的级别。不同级别的员工奖金比例如图等 级 奖金占底薪的百分比A 45%B 40%C 30%D 25%#includevoid main() char grade; int salary = 1000; double amt; printf(n 请输入员工级别:); scanf(%c,&grade); if (grade = A) amt = salary + (salary * 0.45); printf(n 级别%c 的薪水是%6.2fn, grade, amt); else if (grade = B) amt = salary + (salary * 0.40); printf(n 级别%c 的薪水是%6.2fn, grade, amt); else if (grade = C) amt = salary + (salary * 0.30); printf(n 级别%c 的薪水是%6.2fn, grade, amt); else if (grade = D) amt = salary + (salary * 0.25); printf(n 级别%c 的薪水是%6.2fn, grade, amt); else printf(n无效的等级n);16.编写一个程序,要求用户输入今天是星期几,根据用户的输入判断是工作日还是周末,并且显示合适的问候语# include void main() int day; printf(n 星期几的代号为:); printf(n 星期一 = 1 ); printf(n 星期二 = 2 ); printf(n 星期三 = 3 ); printf(n 星期四 = 4 ); printf(n 星期五 = 5 ); printf(n 星期六 = 6 ); printf(n 星期日 = 7 ); printf(n 请输入星期几的对应数字:); scanf(%d, &day);if(day 7) printf(n 请输入位于1 和7 之间的数n); if(day = 6 | day = 7) printf(n 周末愉快!n); if(day = 1 & day = 5) printf(n 工作日愉快!n); printf(n);17编写一个C程序,用于打印九九乘法表。#includevoid main()int a=1,b,jg;while (a10)b=1;while(b=a)jg=a*b;printf(%d*%d=%-2d ,a,b,jg);b+;printf(n);a+;或#includevoid main() int a, b; for(a=1;a=9;a+) for(b=1;b=a;b+) printf(%d*%d=%-2d ,b,a,a*b); printf(n);18.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。#includevoid main()int zf=0,kg=0,sz=0,qt=0; char c;printf(请输入字符串:); while (c=getchar()!=n)if(c=a&c=A&c=0 & c=9)sz+;elseqt+; printf(有%d字母,有%d数字,有%d空格,其他字符有%dn,zf,sz,kg,qt);19输入一个正整数,求该数的阶乘。询问用户是否愿意继续。#includevoid main() int num; int chengnum=1; char ch; /以while()形式出现时,char ch=y; while(ch=y) do ch= ; printf(n请输入一个阶乘顶数:); scanf(%d,&num); while(num0) chengnum*=num; num-; printf(n阶乘积为:%dn,chengnum); printf(n还要继续吗(y/n)?); fflush(stdin);/清空缓存数据。 ch=getchar(); while(ch=y | ch=Y); 20将一个正整数分解因数。例如:输入90,打印出90=2*3*3*5#include void main()int a,b;printf(n请输入一个数:n); scanf(%d,&a);printf(%d=,a);for(b=2;b=a;b+) while(a!=b)if(a%b=0)printf(%d*,b);a=a/b;elseb=b+1;printf(%dn,a);21编写一个程序,根据输入某班级学员的成绩,计算该班级学员的平均成绩。班级的人数要求用户输入。根据输入的人数,分别录入学员的成绩。计算该班级学员的平均成绩,并显示计算结果。最后询问用户是否继续,直到用户自己确定要结束程序退出。#includevoid main() int a,n,i,sum,score; /a是班级号,n是学员总数,score是成绩,sum是总成绩,i几号的成绩 char e; do printf(请输入班级号:);scanf(%d,&a);printf(请输入该班级的学员号总数:);scanf(%d,&n);i=1;sum=0;while (i=n)printf(请输入学号%d的成绩: ,i);scanf(%d,&score);sum=sum+score;i+;printf(该班级学员的平均成绩为: %.2fn,(float) sum/n); printf(是否输入另一个班级的成绩?n); fflush(stdin); e=getchar(); while(e=y|e=Y);22编写一个程序,最多接受10个数,并求出其中所有正数的和。用户可以通过输入999终止程序,统计用户输入的正数的个数,并且显示这些数的和。#includevoid main()int a,b,c;b=0;printf(n 请输入个数,或者输入中止输入.n);for(c=0;c10;c+)scanf(%d,&a);if(a=999)break;else if(a=0) continue;else b=b+a;printf(这%d 个数的和是: %dn,c,b);23编写一个程序,用于生成如图所示的输出结果,要求根据用户输入的一个整数,输出一个数字组成的图案。 请输入一个数:5555554444333221122333444455555Press any key to continue#includevoid main()int a,i,j;printf(请输入一个数: );scanf(%d,&a);for(i=a;i=1;i-)for(j=1;j=i;j+)printf(%d,i);printf(n);printf(n);for(i=1;i=a;i+)for(j=1;j=i;j+)printf(%d,i);printf(n);24.求1!+2!+3!+10!#include void main() int n,f,sum;f=1;sum=0;for(n=1;n=10;n+)f=f*n;sum=sum+f;printf(1!+2!+3!+10!= %d n,sum);25以表格格式显示1到10的乘法表X: 1 2 3 4 5 6 7 8 9 10-+-1: 1 2 3 4 5 6 7 8 9 102: 2 4 6 8 10 12 14 16 18 203: 3 6 9 12 15 18 21 24 27 304: 4 8 12 16 20 24 28 32 36 405: 5 10 15 20 25 30 35 40 45 506: 6 12 18 24 30 36 42 48 54 607: 7 14 21 28 35 42 49 56 63 708: 8 16 24 32 40 48 56 64 72 809: 9 18 27 36 45 54 63 72 81 9010: 10 20 30 40 50 60 70 80 90 100#include void main() int row; /* 行索引*/ int col; /* 列索引*/ puts(n乘法表:n); for (row = 0; row 11; row+) /* 外循环(行)*/ if (row = 0) /* 表头*/ printf( X |); for (col = 1; col 11; col+) /* 内循环(列) */ printf(%4i, col); putchar(n); printf(-+); for (col = 1; col 42; col+) /* 内循环(列) */ putchar(-); putchar(n); else /* 普通行*/ for (col = 0; col 11; col+) /* 内循环(列) */ if (col = 0) printf(%2i :, row); else printf(%4i, row * col); putchar(n); 26编写一个程序,打印如下图案: A BBB CCCC DDDDD EEEEEEE FFFFFFFFFF GGGGGGGGGGG#includevoid main()int i,j,k;char ch= A;for(i=1;i=7;i+)for(j=1;j=7-i;j+)printf( );for(k=1;k=2*i-1;k+)printf(%c,ch);ch=ch+1;printf(n);27编写一个程序,用于产生裴波那契数列的前10个数。(1,1,2,3,5,8,13。)#includevoid main() int a,b,c,i; a=0; b=1; printf(%d ,b); for(i=1;i=9;i+) c=a+b; printf(%d ,c); a=b; b=c; printf(n);28将一个数组中的元素逆序,即第一个元素和最后一个元素交换,第二个与倒数第二个元素交往例如: 原数组为:92578 逆序后的数组为:87529#include #define N 5void main() int aN,i,temp;printf(n 请输入原始数组:n);for(i=0;iN;i+)scanf(%d,&ai);for(i=0;iN/2;i+)temp=ai;ai=aN-i-1;aN-i-1=temp;printf(n 逆序后的数组为:n);for(i=0;iN;i+)printf(%4d,ai);printf(n);29求一个3*3矩形阵对角线元素之和#include void main()float a33,sum=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖北黄冈师范学院第二批专项招聘17人笔试考试参考题库及答案解析
- 财务管理2025考试试题及答案
- 吉他制作工风险评估与管理能力考核试卷含答案
- 浓硝酸工岗前常识考核试卷含答案
- 油墨加工工岗前流程考核试卷含答案
- 洗衣机装配工安全风险强化考核试卷含答案
- 2025甘肃平凉崆丰粮食有限公司招聘2人笔试历年参考题库附带答案详解
- 1,4-丁二醇装置操作工班组管理模拟考核试卷含答案
- 《书籍封面设计》教学课件-2025-2026学年人美版(北京)初中美术九年级上册
- 2025江西南昌汉代海昏侯国遗址管理局招聘国有企业正职背景调查笔试历年参考题库附带答案详解
- 2025年资助政策知识竞赛题库(含答案)
- 山东省济南市钢城区(五四学制)2024-2025学年六年级下学期7月期末数学试卷(含答案)
- 人机协作行为模式-洞察及研究
- 神经源性肠道功能障碍的护理课件
- 2025至2030中国飞机健康监测系统(AHMS)行业产业运行态势及投资规划深度研究报告
- 2025年药学三基试题
- 2025年黑龙江省绥化市初中学业水平考试中考(会考)地理试卷(真题+答案)
- 北师大版必修第二册 Unit 5 Humans and Nature Lesson 1 A sea story课件(内嵌视频)
- 楼盘亮相活动方案
- 高端别墅装修公司商业计划书
- 皮肤撕脱伤护理指南
评论
0/150
提交评论