c语言练习题

  • 格式:doc
  • 大小:234.50 KB
  • 文档页数:30

1停车场收费问题一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5 + (3.6-3)*2 = 6.2 元。

最高收费为40元。

假设任何车辆的停车时间都不超过24小时。

编写程序,计算每辆车的停车费。

(注意输出结果小数点后保留两位)输入#include<stdio.h>int main(){double m,x;printf("输入停车时间x:");scanf("%lf",&x);if(x<=24){if(x<3.0){m=5.0;printf("%lf\n",m);}else if(x>3.0){ m=5.0+2.0*(x-3.0);if(m<=40)printf("%lf\n",m);}}elseprintf("输出停车费用40元\n");return 0;2.#include<stdio.h>int main(){ double x,m;printf("输入停车时间(x):");scanf("%lf",&x);if(x<=24){if(x<=3.0)printf("停车费用5元\n");if(x>3)m=5.0+2.0*(x-3.0);if(m<=40)printf("%6.2f\n",m);}elseprintf("停车费用40元\n");}}2 计算细菌数量一种细菌的繁殖速度是每天成倍增长。

例如:第一天有10个,第二天就变成20个,第三天变成40个,第四天变成80个,……。

现在给出第一天的日期和细菌数目,要你写程序求出到某一天的时候,细菌的数目。

3 计算邮资计算邮资:用户输入:邮件的重量,以及是否加快计算规则:重量在1克以内(包括1克), 基本费0.8元。

超过1克的部分,按照0.5元/克的比例加收超重费。

如果用户选择加快,多收2元。

#include<iostream>using namespace std;int main(){double x,sum;char exp;while(cin>>x>>exp){if(x<=1&&exp=='n')sum=0.8;if(x<=1&&exp=='y')sum=2.8;if(x>1&&exp=='n')sum=0.8+(x-1)*0.5;if(x>1&&exp=='y')sum=0.8+(x-1)*0.5+2;cout<<sum<<endl;}return0;}#include <iostream>using namespace std;int main(){int x,y; //变量定义,此处假设需要定义两个变量,均定义为整型while(cin>>x>>y){你对一组输入的一次处理过程代码}return 0;}C:#include <iostream>using namespace std;int main(){int x,y; //变量定义,此处假设需要定义两个变量,均定义为整型while(scanf(%x %y",&x,&y)!=EOF){你对一组输入的一次处理过程代码}return 0;}注意:考虑以下几点,然后直接套用模版就行了:i) 变量定义。

ii) 有几个变量需要输入,在while中cin相应的变量。

iii) 开始考虑主程序代码,在“{}”中写一次处理过程的代码即可。

4学分绩点计算北京大学对本科生的成绩施行平均学分绩点制(GPA)。

既将学生的实际考分根据不同的学科的不同学分按一定的公式进行计算。

公式如下:实际成绩绩点90——100 4.085——89 3.782——84 3.378——81 3.075——77 2.772——74 2.368——71 2.064——67 1.560——63 1.060以下 01.一门课程的学分绩点=该课绩点*该课学分2.总评绩点=所有学科绩点之和/所有课程学分之和现要求你编写程序求出某人A的总评绩点(GPA)。

#include<stdio.h>int main(){int str1[10],str2[10],n,i;//定义两个数组分别表示每门课的学分,所得绩点double h,GPA,sum=0,s=0;//定义双精度变量h表示学分,GPA总评绩点,sum表示所有学科绩点之和,s表示所有课程学分之和。

scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&str1[i]);s=s+str1[i];}for(i=0;i<n;i++){scanf("%d",&str2[i]);if(str2[i]<=100&&str2[i]>=90)h=4.0;else if(str2[i]<=89&&str2[i]>=85)h=3.7;else if(str2[i]<=84&&str2[i]>=82)h=3.3;else if(str2[i]<=81&&str2[i]>=78)h=3.0;else if(str2[i]<=77&&str2[i]>=75)h=2.7;else if(str2[i]<=74&&str2[i]>=72)h=2.3;else if(str2[i]<=71&&str2[i]>=68)h=2.0;else if(str2[i]<=67&&str2[i]>=64)h=1.5;else if(str2[i]<=63&&str2[i]>=60)h=1.0;elseh=0;sum=sum+h*str1[i];GPA=sum/s;}printf("%.2f\n",GPA);return 0;}5一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。

已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物#include<stdio.h>int main(){int a,min,max,s;scanf("%d",&s);while(s>=1){scanf("%d",&a);if(a%2==1){min=0;max=0;}elseif(a%4==0){min=a/4;max=a/2;}else{min=(a-2)/4+1;max=a/2;}printf("%d %d\n",min,max);s--;}return 0;}5通过指针变量访问整型变量#include<stdio.h>int main(){int a=100,b=10; //定义整型变量a,b并初始化int*pointer_1,*pointer_2; //定义指向整型数据的指针变量pointer_1,pointer_2;pointer_1=&a; //把变量a的地址赋给指针变量pointer_1 pointer_2=&b; //把变量b的地址赋给指针变量pointer_2printf("a=%d,b=%d\n",a,b); //输出变量a和b的值printf("*pointer_1=%d,*pointer_2=%d\n",*pointer_1,*pointer_2);//输出变量a和b 的值return 0;}6输入a和b两个整数,按先大后小的顺序输出a和b#include<stdio.h>int main(){int *pointer_1,*pointer_2,*pointer_3,a,b;//*pointer_1,*pointer_2的类型是指向整型的指针变量printf("please enter two integer numbers:");scanf("%d,%d",&a,&b);//输入两个整数pointer_1=&a;//使p1指向变量apointer_2=&b;//使p2指向变量bif(a<b) //如果a<b{pointer_3=pointer_1;//将p1,p2的值互换pointer_1=pointer_2;pointer_2=pointer_3;}printf("a=%d,b=%d\n",a,b);//输出a,bprintf("max=%d,min=%d\n",*pointer_1,*pointer_2);//输出p1,p2所指向变量的值return 0;}7,函数嵌套调用输入3个整数,要求由大到小输出,用函数调用。

#include<stdio.h>int main(){void exchange(int *q1,int *q2,int *q3);int a,b,c,*p1,*p2,*p3;printf("please enter three numbers:");scanf("%d,%d,%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("the older is\n: ");return 0;}void exchange(int *q1,int *q2,int *q3){void swap(int *pt1,int *pt2);if(*q1<*q2) swap(q1,q2);if(*q1<*q3) swap(q1,q3);if(*q2<*q3) swap(q2,q3);}void swap(int *pt1,int *pt2){int temp;temp=*pt1;*pt1=*pt2;*pt2=temp;}8,改写大小写,要求从键盘输入大写字母,从显示器上输出小写字母#include<stdio.h>int main(){char c1,c2;c1=getchar();c2=c1+32;putchar(c2);putchar('\n');return 0;}9输入三个数,a,b,c要求按由小到大顺序输出。