c语言机试经典编程题重点!!!
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void main(){
float m,n,j;
printf("请输入工作的起止时间:\n");
scanf("%f%f",&m,&n);
if(n<=18||n>24||m<18||m>24)
printf("输入的时间无效!\n");
else{
if(m>=18&&n<=21.5)
j=(n-m)*2;
else
if(m<21.5&&n>21.5)
j=(21.5-m)*2+(n-21.5)*4;
else
j=(n-m)*4;
printf("您获得的钱数为%f元\n",j);
}
}
13.编写程序,按下述公式求自然对数底e的近似值。
#include<stdio.h>
#define eps 1e-5
void main(){
本学期《程序设计基础》课程实行上机考核,现将考核有关事项通知如下:
(1)考核时间:本学期最后一次上机时间为机试。
(2)考核内容:主要是算法设计与实现。考题来自本学期布置的作业、例题及一些补充的题目。
(3)考试形式:机试前进入机房时,每人随机抽取一道题(同一个组的同学保证不抽到同一题),然后上机编程,调试通过后报告监考人员审核,审核通过后将源程序拷贝到监考人员U盘上,然后可以离开机房。源程序文件明必须是“学号姓名.cpp”,如“王梓丞.cpp”。
}
printf("您需缴纳的费用为:%f元",n);
}
12.一个临时照顾孩子的人的收费标准是:18:00到21:30间每小时2元,21:30到午夜间每小时4元,18:00以前和午夜以后不照顾孩子。
编写程序,输入开始时间和结束时间,计算并输出某一个雇工的薪酬。程序应检查无效的开始和结束时间。
#include<stdio.h>
printf("%d能被5整数\n",x);
if((x%3!=0)&&(x%5!=0)&&(x%7!=0))
printf("%d不能被3、5、7整除\n",x);
}
11.邮局寄包裹的费用是根据包裹的重量来收取的。一个重量为2kg或低于2kg的包裹收取3.25元。高于2kg的包裹,超出部分每千克收取1.05元,超出部分不足1kg按1kg计算。因此如果发件人发送重达5.63kg的包裹,就需要缴纳7.45元。编写程序,输入包裹的重量,计算并输出发件人须缴纳的费用。(笔记本调试不成功)
printf("请输入车辆行驶的公里数:\n");
scanf("%f",&a);\
switch(b){
case 1:c=0.5*a;break;
case 2:c=1.0*a;break;
case 3:c=1.5*a;
}
printf("收费额为:%3f元",c);
}
6.设计一个模拟单步计算器的程序,设该计算器只能作加、减、乘、除运算。用户输入形如
int n;
float e,r;
e=1.0;
n=1;
r=1.0;
while(r>eps){
e=e+r;
n=n+1;
r=r/n;
}
printf("e=%f\n",e);
}
14.编写程序,统计以100位结束符的整数输入流中-1、0、1的出现次数并将其输出。
#include<stdio.h>
printf("%2f",m/n);
else
printf("分母为0无意义!\n");}}
}
}
7.编写程序,输入一个4位自然数n,判断n是否是降序数。降序数是指对于n=d1d2…dk有:
d1≥d2≥…≥dk
#include<stdio.h>
void main(){
int n,a,b,c,d;
printf("请输入一个四位自然数:\n");
(4)考试要求:机试时考试规则同课堂考试一致,不允许带书、纸张等。不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的U盘、磁盘或计算器),不能携带任何类型的通讯工具,包括无线电接收器、移动电话。
(5)考试成绩:本次机试成绩将在《程序设计基础》课程成绩中占25%的比重。
(6)其它有关事项由主考教师和监考人员负责处理。
#include<stdio.h>
void main(){
int n,a,b,c,d,e;
printf("请输入一个五位数:\n");
scanf("%d",&n);\
a=n/10000;
b=n%10000/1000;
c=n%1000/100;
d=n%100/10;
e=n%10;
if((a==e)&&(b==d))
printf("%d能同时被3、5整数\n",x);
if((x%3!=0)&&(x%5!=0)&&(x%7==0))
printf("%d能被7整数\n",x);
if((x%3==0)&&(x%5!=0)&&(x%7!=0))
printf("%d能被3整数\n",x);
if((x%3!=0)&&(x%5==0)&&(x%7!=0))
scanf("%d",&m);
printf("请选择获奖情况:1 获奖;2 未获奖\n");
scanf("%d",&n);
switch (n){
case 1: m=m+5;break;
case ຫໍສະໝຸດ Baidu: m;
}
if(m>100)
m=100;
printf("你的最终成绩为:%d\n",m);
}
2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。(提示:对2月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除此之外都不是闰年)。
#include<stdio.h>
void main(){
float m,n;
int a;
printf("请输入包裹的重量:\n");
scanf("%f",&m);
if(m<=2)
n=3.25;
else{
a=m/1;
if(m-a==0)
n=3.25+(a-2)*1.05;
else
n=3.25+(a-1)*1.05;
小汽车(car)0.50元
卡车(truck)1.00元
大客车(bus)1.50元
编程序,为某高速公路收费站计算各种车辆的收费额。
#include<stdio.h>
void main(){
float a,c;
int b;
printf("请选择车辆类型:1 小汽车;2 卡车; 3 大客车\n");
scanf("%d",&b);
(1)能同时被3、5、7整数。
(2)能同时被两个数整数,并指明是被哪两个数整除。
(3)能被一个数整数,并指明这是哪个数。
(4)不能被所有3个数整除。
#include<stdio.h>
void main(){
int x;
printf("请输入一个整数x:");
scanf("%d",&x);
if((x%3==0)&&(x%5==0)&&(x%7==0))
else
if(d==0)
printf("x1=x2=%f",(-b)/2*a);
else
printf("x1=%f+%fi,x2=%f-%fi",-b/2*a,sqrt(-d)/2*a,-b/2*a,sqrt(-d)/2*a);
}
else
if(b!=0)
printf("x=%f\n",-c/b);
else
if(a==2){
if((year%4==0)&&(year%100!=0)||(year%400==0))
printf("这个月有29天\n");
else
printf("这个月有28天\n");
}
else
printf("这个月有30天\n");
}
}
3.求一元二次方程ax2+bx+c=0的根。(要考虑a、b、c三个系数不同的取值)
printf("该五位数为对称数");
else
printf("该五位数不是对称数");
}
9.编写程序,判断给定的3位数是否为Armstrong数。Armstrong数是指其值等于它每位数字立方和的数,如153就是一个Armstrong数。
#include<stdio.h>
void main(){
int n,a,b,c;
printf("请输入一个三位数:\n");
scanf("%d",&n);
a=n/100;
b=n%100/10;
c=n%10;
if(n==a*a*a+b*b*b+c*c*c)
printf("该三位数为armstrong数");
else
printf("该三位数不是armstrong数");
}
10.编写程序,输入一个整数,判断它能否被3、5、7整数,并输出如下信息。
if(c==0)
printf("0=0!\n");
else
printf("%f=0矛盾\n",c);
}
4.学校曾经组织一次“程序设计大奖赛”,规定本学期“程序设计”课程的成绩可以根据大奖赛的成绩适度加分。加分规则是:参赛者加5分,三等奖加15分,二等奖加20分,一等奖加30分,总分不超过100分。编程序,输入某同学的考试成绩,回答在竞赛中获奖等级,计算并输出该某同学的程序设计课成绩。
case 0:break;
case 1:a=a+5;break;
case 2:a=a+15;break;
case 3:a=a+20;break;
case 4:a=a+30;}
if(a>100)
a=100;
printf("你的最终成绩为:%d",a);
}
5.高速公路每公里的收费标准按不同种类汽车如下:
printf("您输入的运算符不合法!\n");
else
{switch(ch){
case '+':printf("%2f",m+n);break;
case '-':printf("%2f",m-n);break;
case '*':printf("%2f",m*n);break;
case '/':{if(n!=0)
scanf("%d",&n);
a=n/1000;
b=n%1000/100;
c=n%100/10;
d=n%10;
if(a>b&&b>c&&c>d)
printf("该四位数为降序数!\n");
else
printf("该四位数不是降序数!\n");
}
8.编写程序,输入一个5位自然数n,判断n是否对称数。对称数是指正序和反序读都相等的整数,如96769为对称数。
printf("%d能同时被3、5、7整数\n",x);
if((x%3!=0)&&(x%5==0)&&(x%7==0))
printf("%d能同时被5、7整数\n",x);
if((x%3==0)&&(x%5!=0)&&(x%7==0))
printf("%d能同时被3、7整数\n",x);
if((x%3==0)&&(x%5==0)&&(x%7!=0))
m#n
的算式,其中m、n为运算数,#为运算符。(需考虑运算符不合法,及除数为0的情况)
#include<stdio.h>
void main(){
float m,n;
char ch;
printf("请输入运算式:m#n\n");
scanf("%f%c%f",&m,&ch,&n);
if((ch!='+')&&(ch!='-')&&(ch!='*')&&(ch!='/'))
附:考试题集
1.学校曾经组织一次“程序设计大奖赛”,规定本学期“程序设计”课程的成绩可以因为在大奖赛上获奖而加5分,总分不超过100分。编程序,输入某同学的考试成绩,回答是否在竞赛中获奖,计算并输出该某同学的程序设计课成绩。
#include<stdio.h>
void main(){
int m,n;
printf("请输入考试成绩:\n");
#include<stdio.h>
void main(){
int a,b;
printf("请输入你的考试成绩:\n");
scanf("%d",&a);
printf("请选择你程序设计情况:0 未参加 1 参赛 2 三等奖 3 二等奖 4 一等奖\n");
scanf("%d",&b);
switch(b){
#include<stdio.h>
#include<math.h>
void main(){
float a,b,c,d;
printf("请输入一元二次方程的三个系数a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
if(a!=0){
d=b*b-4*a*c;
if(d>0)
printf("x1=%f,x2=%f",(-b+sqrt(d))/2*a,(-b-sqrt(d)/2*a));
#include<stdio.h>
int year,a;
void main(){
printf("请输入年份 月份:");
scanf("%d%d",&year,&a);
if(a==1||a==3||a==5||a==7||a==8||a==10||a==12)
printf("这个月有31天\n");
else{
float m,n,j;
printf("请输入工作的起止时间:\n");
scanf("%f%f",&m,&n);
if(n<=18||n>24||m<18||m>24)
printf("输入的时间无效!\n");
else{
if(m>=18&&n<=21.5)
j=(n-m)*2;
else
if(m<21.5&&n>21.5)
j=(21.5-m)*2+(n-21.5)*4;
else
j=(n-m)*4;
printf("您获得的钱数为%f元\n",j);
}
}
13.编写程序,按下述公式求自然对数底e的近似值。
#include<stdio.h>
#define eps 1e-5
void main(){
本学期《程序设计基础》课程实行上机考核,现将考核有关事项通知如下:
(1)考核时间:本学期最后一次上机时间为机试。
(2)考核内容:主要是算法设计与实现。考题来自本学期布置的作业、例题及一些补充的题目。
(3)考试形式:机试前进入机房时,每人随机抽取一道题(同一个组的同学保证不抽到同一题),然后上机编程,调试通过后报告监考人员审核,审核通过后将源程序拷贝到监考人员U盘上,然后可以离开机房。源程序文件明必须是“学号姓名.cpp”,如“王梓丞.cpp”。
}
printf("您需缴纳的费用为:%f元",n);
}
12.一个临时照顾孩子的人的收费标准是:18:00到21:30间每小时2元,21:30到午夜间每小时4元,18:00以前和午夜以后不照顾孩子。
编写程序,输入开始时间和结束时间,计算并输出某一个雇工的薪酬。程序应检查无效的开始和结束时间。
#include<stdio.h>
printf("%d能被5整数\n",x);
if((x%3!=0)&&(x%5!=0)&&(x%7!=0))
printf("%d不能被3、5、7整除\n",x);
}
11.邮局寄包裹的费用是根据包裹的重量来收取的。一个重量为2kg或低于2kg的包裹收取3.25元。高于2kg的包裹,超出部分每千克收取1.05元,超出部分不足1kg按1kg计算。因此如果发件人发送重达5.63kg的包裹,就需要缴纳7.45元。编写程序,输入包裹的重量,计算并输出发件人须缴纳的费用。(笔记本调试不成功)
printf("请输入车辆行驶的公里数:\n");
scanf("%f",&a);\
switch(b){
case 1:c=0.5*a;break;
case 2:c=1.0*a;break;
case 3:c=1.5*a;
}
printf("收费额为:%3f元",c);
}
6.设计一个模拟单步计算器的程序,设该计算器只能作加、减、乘、除运算。用户输入形如
int n;
float e,r;
e=1.0;
n=1;
r=1.0;
while(r>eps){
e=e+r;
n=n+1;
r=r/n;
}
printf("e=%f\n",e);
}
14.编写程序,统计以100位结束符的整数输入流中-1、0、1的出现次数并将其输出。
#include<stdio.h>
printf("%2f",m/n);
else
printf("分母为0无意义!\n");}}
}
}
7.编写程序,输入一个4位自然数n,判断n是否是降序数。降序数是指对于n=d1d2…dk有:
d1≥d2≥…≥dk
#include<stdio.h>
void main(){
int n,a,b,c,d;
printf("请输入一个四位自然数:\n");
(4)考试要求:机试时考试规则同课堂考试一致,不允许带书、纸张等。不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的U盘、磁盘或计算器),不能携带任何类型的通讯工具,包括无线电接收器、移动电话。
(5)考试成绩:本次机试成绩将在《程序设计基础》课程成绩中占25%的比重。
(6)其它有关事项由主考教师和监考人员负责处理。
#include<stdio.h>
void main(){
int n,a,b,c,d,e;
printf("请输入一个五位数:\n");
scanf("%d",&n);\
a=n/10000;
b=n%10000/1000;
c=n%1000/100;
d=n%100/10;
e=n%10;
if((a==e)&&(b==d))
printf("%d能同时被3、5整数\n",x);
if((x%3!=0)&&(x%5!=0)&&(x%7==0))
printf("%d能被7整数\n",x);
if((x%3==0)&&(x%5!=0)&&(x%7!=0))
printf("%d能被3整数\n",x);
if((x%3!=0)&&(x%5==0)&&(x%7!=0))
scanf("%d",&m);
printf("请选择获奖情况:1 获奖;2 未获奖\n");
scanf("%d",&n);
switch (n){
case 1: m=m+5;break;
case ຫໍສະໝຸດ Baidu: m;
}
if(m>100)
m=100;
printf("你的最终成绩为:%d\n",m);
}
2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。(提示:对2月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除此之外都不是闰年)。
#include<stdio.h>
void main(){
float m,n;
int a;
printf("请输入包裹的重量:\n");
scanf("%f",&m);
if(m<=2)
n=3.25;
else{
a=m/1;
if(m-a==0)
n=3.25+(a-2)*1.05;
else
n=3.25+(a-1)*1.05;
小汽车(car)0.50元
卡车(truck)1.00元
大客车(bus)1.50元
编程序,为某高速公路收费站计算各种车辆的收费额。
#include<stdio.h>
void main(){
float a,c;
int b;
printf("请选择车辆类型:1 小汽车;2 卡车; 3 大客车\n");
scanf("%d",&b);
(1)能同时被3、5、7整数。
(2)能同时被两个数整数,并指明是被哪两个数整除。
(3)能被一个数整数,并指明这是哪个数。
(4)不能被所有3个数整除。
#include<stdio.h>
void main(){
int x;
printf("请输入一个整数x:");
scanf("%d",&x);
if((x%3==0)&&(x%5==0)&&(x%7==0))
else
if(d==0)
printf("x1=x2=%f",(-b)/2*a);
else
printf("x1=%f+%fi,x2=%f-%fi",-b/2*a,sqrt(-d)/2*a,-b/2*a,sqrt(-d)/2*a);
}
else
if(b!=0)
printf("x=%f\n",-c/b);
else
if(a==2){
if((year%4==0)&&(year%100!=0)||(year%400==0))
printf("这个月有29天\n");
else
printf("这个月有28天\n");
}
else
printf("这个月有30天\n");
}
}
3.求一元二次方程ax2+bx+c=0的根。(要考虑a、b、c三个系数不同的取值)
printf("该五位数为对称数");
else
printf("该五位数不是对称数");
}
9.编写程序,判断给定的3位数是否为Armstrong数。Armstrong数是指其值等于它每位数字立方和的数,如153就是一个Armstrong数。
#include<stdio.h>
void main(){
int n,a,b,c;
printf("请输入一个三位数:\n");
scanf("%d",&n);
a=n/100;
b=n%100/10;
c=n%10;
if(n==a*a*a+b*b*b+c*c*c)
printf("该三位数为armstrong数");
else
printf("该三位数不是armstrong数");
}
10.编写程序,输入一个整数,判断它能否被3、5、7整数,并输出如下信息。
if(c==0)
printf("0=0!\n");
else
printf("%f=0矛盾\n",c);
}
4.学校曾经组织一次“程序设计大奖赛”,规定本学期“程序设计”课程的成绩可以根据大奖赛的成绩适度加分。加分规则是:参赛者加5分,三等奖加15分,二等奖加20分,一等奖加30分,总分不超过100分。编程序,输入某同学的考试成绩,回答在竞赛中获奖等级,计算并输出该某同学的程序设计课成绩。
case 0:break;
case 1:a=a+5;break;
case 2:a=a+15;break;
case 3:a=a+20;break;
case 4:a=a+30;}
if(a>100)
a=100;
printf("你的最终成绩为:%d",a);
}
5.高速公路每公里的收费标准按不同种类汽车如下:
printf("您输入的运算符不合法!\n");
else
{switch(ch){
case '+':printf("%2f",m+n);break;
case '-':printf("%2f",m-n);break;
case '*':printf("%2f",m*n);break;
case '/':{if(n!=0)
scanf("%d",&n);
a=n/1000;
b=n%1000/100;
c=n%100/10;
d=n%10;
if(a>b&&b>c&&c>d)
printf("该四位数为降序数!\n");
else
printf("该四位数不是降序数!\n");
}
8.编写程序,输入一个5位自然数n,判断n是否对称数。对称数是指正序和反序读都相等的整数,如96769为对称数。
printf("%d能同时被3、5、7整数\n",x);
if((x%3!=0)&&(x%5==0)&&(x%7==0))
printf("%d能同时被5、7整数\n",x);
if((x%3==0)&&(x%5!=0)&&(x%7==0))
printf("%d能同时被3、7整数\n",x);
if((x%3==0)&&(x%5==0)&&(x%7!=0))
m#n
的算式,其中m、n为运算数,#为运算符。(需考虑运算符不合法,及除数为0的情况)
#include<stdio.h>
void main(){
float m,n;
char ch;
printf("请输入运算式:m#n\n");
scanf("%f%c%f",&m,&ch,&n);
if((ch!='+')&&(ch!='-')&&(ch!='*')&&(ch!='/'))
附:考试题集
1.学校曾经组织一次“程序设计大奖赛”,规定本学期“程序设计”课程的成绩可以因为在大奖赛上获奖而加5分,总分不超过100分。编程序,输入某同学的考试成绩,回答是否在竞赛中获奖,计算并输出该某同学的程序设计课成绩。
#include<stdio.h>
void main(){
int m,n;
printf("请输入考试成绩:\n");
#include<stdio.h>
void main(){
int a,b;
printf("请输入你的考试成绩:\n");
scanf("%d",&a);
printf("请选择你程序设计情况:0 未参加 1 参赛 2 三等奖 3 二等奖 4 一等奖\n");
scanf("%d",&b);
switch(b){
#include<stdio.h>
#include<math.h>
void main(){
float a,b,c,d;
printf("请输入一元二次方程的三个系数a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
if(a!=0){
d=b*b-4*a*c;
if(d>0)
printf("x1=%f,x2=%f",(-b+sqrt(d))/2*a,(-b-sqrt(d)/2*a));
#include<stdio.h>
int year,a;
void main(){
printf("请输入年份 月份:");
scanf("%d%d",&year,&a);
if(a==1||a==3||a==5||a==7||a==8||a==10||a==12)
printf("这个月有31天\n");
else{