恩波华英专升本汪老师
04年真题
1.整型变量a,b,c中分别存放各不相同的数值。编写程序,实现a,b,c从大到小排序,并以此顺序输出排序后的三个数。(5分)
分析;(1)输入:整型变量a,b,c中分别存放各不相同的数值,可以从键盘读入三个不同的值,则:scanf("%d%d%d",&a,&b,&c)(2)输出:并以此顺序输出排序后的三个数。a,b,c从大到小输出:printf("三个数从大到小是:%d,%d,%d",a,b,c);
(3)如何排序:
基本思想:(1)将a和b比较,如果b较大,则交换a,b值,使a中放较大值。
要实现交换a,b值,则必须借助另外一个变量t.具体方案见程序(课上已讲解)
(2)分别将a,b和c比较。需将a和c比较,如果C较大,将a,c交换,确保a中存放最大数。需将b和c比较,如果C较大,将b,c交换,确保c中存放最小数。
#include void main( ) { int a,b,c; scanf("%d%d%d",&a,&b,&c); if(a {t=a;a=b;b=t;} if(a if(b printf("三个数从大到小是:%d,%d,%d",a,b,c); } 05年真题 1.完成下面分段函数的计算,程序运行时用户从键盘输入一个数值X,在屏幕上输出Y值。(5分) 分析:1.输入:从键盘输入一个数值X,则scanf("%d,&x); 2.输出:在屏幕上输出Y值。则printf("y=%d",y); 3根据上面公式套用if-else(套用方法上课已讲解)。 main( ) { int x,y; scanf("%d,&x); if(x>0) y=x*x; else if(x==0) y=0; else y=-(x*x); printf("y=%d",y); } 06年真题 1. 某书店开展优惠售书活动,收费方法如下: 0.9x (x≤100) y= 0.8x (100<x≤500) 其中:x表示原价,y表示实际收费。 0.7x (x>500) 试编写程序,要求从键盘输入x,计算输出y。(5分) 分析:1.输入: 从键盘输入x. scanf("%d,&x); 2.输出:计算输出y。printf("y=%d",y); 3.根据上面公式套用if-else main( ) { int x,y; scanf("%d,&x); if(x<=100) y=0.9*x; else if(x<=500) y=0.8*x; else y=0.7*x; printf("y=%d",y); } 07年真题 1.从键盘输入三个整数,输出其中最小的数。(5分) 分析:1.输入:从键盘输入三个整数,则scanf("%d%d%d",&a,&b,&c); 2. 输出其中最小的数。 printf("三个数中最小是:%d",min); 3.定义一个变量存放最小数min,首先将a和b比较,将较小者放入到min中,再将min和c比较,如果c小于min,则将c放入到min中。 #include void main( ) { int a,b,c,min; scanf("%d%d%d",&a,&b,&c); if(a min=a; else min=b if(min>c) min=c printf("三个数中最小是:%d",min); } 08年真题 1.假设邮费计算方法为:100克以内(含100克)收费5元,超过100克的部分每克加收0.2元。试编写程序,要求从键盘输入邮寄物品重量,并计算出邮费。(5分) 1.输入:从键盘输入邮寄物品重量。则scanf("%d,&x); 2.输出计算出邮费:y则printf("y=%d",y); 3. y= 5 (x≤100) 5+0.2(x-100) (100<x) 首先将汉字转换成上述公式,再套用if-else main( ) { int x,y; scanf("%d,&x); if(x<=100) y=5; else y=5+(x-100)*0.2; printf("y=%d",y); } 09年真题 1. 现有一元二次方程:ax^2+bx+c=0,其中a、b、c、是整数,且a0。若存在实根,则输出“在实数范围内有解”;若不存在实根,则输出“在实数范围内无解”。(5分) 1.输入:根据题目意思可知,a,b,c需从键盘读入,则scanf("%d%d%d",&a,&b,&c); 2.输出:则输出“在实数范围内有解”;若不存在实根,则输出“在实数范围内无解” 则: printf("在实数范围内有解"); printf("在实数范围内无解"); 3.根据高中所学知识,b2-4ac>=0,则有解,否则无解。 printf("在实数范围内有解"); b2-4ac>=0 printf("在实数范围内无解"); b2-4ac<0 根据上面式子套用if-else main( ) { int a,b,c; scanf("%d%d%d",&a,&b,&c); if(b*b-4*a*c>=0) printf("在实数范围内有解"); else printf("在实数范围内无解"); } 10年真题 1. 输入出租车行驶里程S,输出应付车费F。(5分) S和F的关系如下: main() { float s,f; scanf(“%f”,&s); if(s<=3) f=6; else f=6+(s-3)*1.5 printf(“车费为:%f”,f); } 11年真题 1.某商场开展优惠促销活动,购物总额不足100元的不打折,购物总额在100元到500元之间的打折9折,购物总额满500元的打8折。 计算公式如下: Y= x x<100 0.9x 100<=x<500 0.8x x>=500 其中,x为购物总额,y为应付款,编写程序输入顾客的购物总额,输出应付款、 分析:和06年非常相似,参照上面分析。 main( ) { int x,y; scanf("%d,&x); if(x<100) y=x; else if(x<500) y=0.9*x; else y=0.8*x; printf("y=%d",y); } 12年真题 1假设一个快递公司针对个人小宗业务(即物品总重量不超过20公斤)的收费规定如下:物品在5公斤(含5公斤)以下,收费8元;在10公斤(含10公斤)以下,超过5公斤部分,每公斤收费0.5元;在20公斤(含20公斤)以下,超过10公斤部分,每公斤收费1.5元。不足1公斤均按1公斤计算。编写程序,输入用户的快递物品重量,计算并输出所需邮费。(6分) 分析:1. 输入:用户的快递物品重量scanf(“%f”,&x); 2输出:计算并输出所需邮费。printf(“%f”,y); 3.转换成如下公式 main( ) { float x,y; int k; scanf(“%f”,&x); if(x-int(x)>0)// 不足1公斤均按1公斤计算,故应取整后加上1(上课已讲解) k=x+1; if(k<=5) y=8; else if(k<=10) y=8+0.5*(k-5);//可以写成5.5+0.5*k else y=10.5+(k-10)*1.5; //可以写成1.5*k-4.5 printf(“%f”,y); }下载本文