c语言练习之路3之浙大版《C语言程序设计实验与习题指导(第3版)》题目集

实验3

实验3-1 求一元二次方程的根
本题目要求一元二次方程的根,结果保留2位小数。
输入格式:
输入在一行中给出3个浮点系数a、b、c,中间用空格分开。
输出格式:
根据系数情况,输出不同结果:
1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;
2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;
3)如果方程只有一个根,则直接输出此根;
4)如果系数都为0,则输出"Zero Equation";
5)如果a和b为0,c不为0,则输出"Not An Equation"。
输入样例1:
2.1 8.9 3.5
输出样例1:
-0.44
-3.80
输入样例2:
1 2 3
输出样例2:
-1.00+1.41i
-1.00-1.41i
输入样例3:
0 2 4
输出样例3:
-2.00
输入样例4:
0 0 0
输出样例4:
Zero Equation
输入样例5:
0 0 1
输出样例5:
Not An Equation

#include<stdio.h>
#include <math.h>
int main(){
    double a,b,c;
    scanf("%lf %lf %lf",&a,&b,&c);
    if(a==0){
        if(b==0){
            if(c==0){
    		printf("Zero Equation");
   	    }else{
    		printf("Not An Equation");
            }
        }else{
   	    double x=-c/b;
            printf("%.2f",x);
        }
    }else{
        double data=b*b-4*a*c;
        double x1,x2;
        if(data>0){
   	    x1=(-b+sqrt(data))/(2*a);
            x2=(-b-sqrt(data))/(2*a);
   	    printf("%.2f\n%.2f",x1,x2);
  	}else if(data<0){
   	    double c,d;
   	    c=-b/(2*a);//实部 
   	    d=sqrt(-data)/(2*a);//虚部 
   	    if(c!=0){
    		printf("%.2f+%.2fi\n%.2f-%.2fi",c,d,c,d);
   	    }else{//纯虚根 
    		printf("0.00+%.2fi\n0.00-%.2fi",d,d);
   	    }
 	}else{
   	    x1=-b/(2*a);
  	    printf("%.2f",x1);
  	}
    } 
}

实验3-2 计算符号函数的值
对于任一整数n,符号函数sign(n)的定义如下:
在这里插入图片描述
请编写程序计算该函数对任一输入整数的值。
输入格式:
输入在一行中给出整数n。
输出格式:
在一行中按照格式“sign(n) = 函数值”输出该整数n对应的函数值。
输入样例1:
10
输出样例1:
sign(10) = 1
输入样例2:
0
输出样例2:
sign(0) = 0
输入样例3:
-98
输出样例3:
sign(-98) = -1

#include<stdio.h>
int main(){
    int n,sign;
    scanf("%d",&n);
    if(n>0){
        sign=1;
    }else if(n==0){
        sign=0;
    }else{
        sign=-1;
    }
    printf("sign(%d) = %d",n,sign);
}

实验3-3 比较大小
本题要求将输入的任意3个整数从小到大输出。
输入格式:
输入在一行中给出3个整数,其间以空格分隔。
输出格式:
在一行中将3个整数从小到大输出,其间以“->”相连。
输入样例:
4 2 8
输出样例:
2->4->8

#include<stdio.h>
int main(){
    int a,b,c;
    int max,middle,min;
    scanf("%d %d %d",&a,&b,&c);
    if(a>b){
        if(a>c){
            if(b>c){
                max=a,middle=b,min=c;
            }else{
                max=a,middle=c,min=b;
            }
        }else{
            max=c,middle=a,min=b;
        }
    }else{
        if(b>c){
             if(a>c){
                 max=b,middle=a,min=c;
             }else{
                 max=b,middle=c,min=a;
             }
        }else{
            max=c,middle=b,min=a;
        }
    }
    printf("%d->%d->%d",min,middle,max);
} 

实验3-4 统计字符
本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
输入格式:
输入为10个字符。最后一个回车表示输入结束,不算在内。
输出格式:
在一行内按照
letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。
输入样例:
aZ &
09 Az
输出样例:
letter = 4, blank = 3, digit = 2, other = 1

#include<stdio.h>
int main(){
    int letter=0,blank=0,digit=0,other=0;
    for(int i=0;i<10;i++){
        char c;
        scanf("%c",&c);
        int a=(int) c;//a是c的ascll码
        if((a>=65&&a<=90)||(a>=97&&a<=122)){
        //判断是否是字母  A-Z是65-90  a-z是97-122
            letter++;
        }else if(a==32||a==13||a==10){
        //判断是否是空格或回车  空格32 回车13 换行10
             blank++;
        }else if(a>=48&&a<=57){
        //判断是否是数字  0-9对应ascll码是48-57
             digit++;
        }else{
        //其他字符
             other++;
        }
    }
    printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);
} 

实验3-5 查询水果价格
给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。
首先在屏幕上显示以下菜单:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。
输入格式:
输入在一行中给出用户连续输入的若干个编号。
输出格式:
首先在屏幕上显示菜单。然后对应用户的每个输入,在一行中按格式“price = 价格”输出查询结果,其中价格保留两位小数。当用户连续查询次数超过5次、或主动输入0时,程序结束。
输入样例1:
3 -1 0 2
输出样例1:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 4.10
price = 0.00
输入样例2:
1 2 3 3 4 4 5 6 7 8
输出样例2:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 3.00
price = 2.50
price = 4.10
price = 4.10
price = 10.20

#include<stdio.h>
#include <stdlib.h>
int main(){
    printf("[1] apple\n[2] pear\n[3] orange\n[4] grape\n[0] exit\n");
    for(int i=1;i<=5;i++){
        int num;
        scanf("%d",&num);
        switch(num){
            case 1:
                printf("price = 3.00\n");
                break;
            case 2:
                printf("price = 2.50\n");
                break;
            case 3:
                printf("price = 4.10\n");
                break;
            case 4:
                printf("price = 10.20\n");
                break;
            case 0:
                exit(0);
            default:
                printf("price = 0.00\n");
                break;
        }
    }
}

实验3-6 计算个人所得税
假设个人所得税为:税率×(工资−1600)。请编写程序计算应缴的所得税,其中税率定义为:

当工资不超过1600时,税率为0;
当工资在区间(1600, 2500]时,税率为5%;
当工资在区间(2500, 3500]时,税率为10%;
当工资在区间(3500, 4500]时,税率为15%;
当工资超过4500时,税率为20%。

输入格式:
输入在一行中给出非负工资。
输出格式:
在一行输出个人所得税,精确到小数点后2位。
输入样例1:
1600
输出样例1:
0.00
输入样例2:
1601
输出样例2:
0.05
输入样例3:
3000
输出样例3:
140.00
输入样例4:
4000
输出样例4:
360.00
输入样例5:
5000
输出样例5:
680.00

#include<stdio.h>
int main(){
    double salary;
    scanf("%lf",&salary);
    double rate;
    if(salary>4500){
       rate=0.2*(salary-1600);
    }else if(salary>3500){
       rate=0.15*(salary-1600);
    }else if(salary>2500){
       rate=0.1*(salary-1600);
    }else if(salary>1600){
       rate=0.05*(salary-1600);
    }else{
       rate=0;
    }
    printf("%.2f",rate);
}

实验3-7 统计学生成绩
本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:

大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。

输入格式:
输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。
输出格式:
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。
输入样例:
7
77 54 92 73 60 65 69
输出样例:
1 0 2 3 1

#include<stdio.h>
int main(){
    int n,score;
    scanf("%d",&n);
    int A=0,B=0,C=0,D=0,E=0;
    for(int i=1;i<=n;i++){
        scanf("%d",&score);
        switch(score/10){
            case 10://100分 
                A++;
                break;
            case 9:
                A++;
                break;
  	    case 8:
    		B++;
    		break;
   	    case 7:
    		C++;
   		break;
   	    case 6:
    		D++;
    		break;
            default:
    		E++;
    		break;
         }
    }
    printf("%d %d %d %d %d",A,B,C,D,E);
}

实验3-8 输出三角形面积和周长
本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:area=√​s(s−a)(s−b)(s−c)​​​,其中s=(a+b+c)/2。
输入格式:
输入为3个正整数,分别代表三角形的3条边a、b、c。
输出格式:
如果输入的边能构成一个三角形,则在一行内,按照
area = 面积; perimeter = 周长
的格式输出,保留两位小数。否则,输出
These sides do not correspond to a valid triangle
输入样例1:
5 5 3
输出样例1:
area = 7.15; perimeter = 13.00
输入样例2:
1 4 1
输出样例2:
These sides do not correspond to a valid triangle

#include<stdio.h>
#include <math.h>
int main(){
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c); 
    double area,s,perimeter;
    if((a+b>c)&&(a+c>b)&&(b+c>a)){
  	s=(a+b+c)/2.0;
  	area=sqrt(s*(s-a)*(s-b)*(s-c));
  	perimeter=a+b+c;
  	printf("area = %.2f; perimeter = %.2f",area,perimeter);
    }else{
  	printf("These sides do not correspond to a valid triangle");
    } 
}

实验3-9 三天打鱼两天晒网
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
输入格式:
输入在一行中给出一个不超过1000的正整数N。
输出格式:
在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。
输入样例1:
103
输出样例1:
Fishing in day 103
输入样例2:
34
输出样例2:
Drying in day 34

#include<stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    int x=n%5;
    if(x>0&&x<=3){
  	printf("Fishing in day %d",n);
    }else{
  	printf("Drying in day %d",n);
    }
}

实验3-10 高速公路超速处罚
按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。
输入格式:
输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。
输出格式:
在一行中输出处理意见:若属于正常行驶,则输出“OK”;若应处罚款,则输出“Exceed x%. Ticket 200”;若应吊销驾驶证,则输出“Exceed x%. License Revoked”。其中x是超速的百分比,精确到整数。
输入样例1:
65 60
输出样例1:
OK
输入样例2:
110 100
输出样例2:
Exceed 10%. Ticket 200
输入样例3:
200 120
输出样例3:
Exceed 67%. License Revoked

#include<stdio.h>
int main(){
    int speed,limit;
    double exceed;
    scanf("%d %d",&speed,&limit);
    exceed=(speed-limit)*100.0/limit;
    if(exceed<10){
  	printf("OK");
    }else if(exceed>=10&&exceed<50){
  	printf("Exceed %.0f%%. Ticket 200",exceed);
    }else if(exceed>=50){
  	printf("Exceed %.0f%%. License Revoked",exceed);
    }
}

整数和浮点数相比较容易出现问题,所以直接转化为整数来解决

实验3-11 计算油费
现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。
本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。
输入格式:
输入在一行中给出两个整数和一个字符,分别表示顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助)。
输出格式:
在一行中输出应付款额,保留小数点后2位。
输入样例:
40 97 m
输出样例:
301.34

#include<stdio.h>
int main(){
    int a;//加油量
    int b;//汽油品种90,93,97
    char c;//服务类型 m  e
    scanf("%d %d %c",&a,&b,&c);
    double price,total;
    switch(b){
  	case 90:
   	    price=6.95;
   	    break;
  	case 93:
   	    price=7.44;
   	    break;
  	case 97:
   	    price=7.93;
   	    break;
    }
    if(c=='m'){
  	total=a*price*0.95;
    }
    if(c=='e'){
  	total=a*price*0.97;
    }
    printf("%.2f",total);
}
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 浙大C语言程序设计实验习题指导(第3)》题目是一本针对C语言学习者的实验习题指导书籍。该书包含了大量的实验习题,涵盖了C语言的基础知识和应用技巧。通过完成这些实验习题,读者可以逐步掌握C语言的编程思想和技能,提高自己的编程水平。该书内容丰富、难度适中,适合初学者和进阶者使用。 ### 回答2: 浙大C语言程序设计实验习题指导(第3)》题目是一本较为优秀的学习C语言编程的书籍,其编写目的主要是为了帮助学习者在掌握C语言编程语言的基础知识之后,通过各种习题练习实验的操作,更好地学习和掌握C语言编程的能力,从而提高自己的编程水平。 本书分为两部分,第一部分是实验指导,旨在通过实际操作来帮助学习者更好地理解和掌握C语言编程的基础知识,其中包括C语言程序设计实验C语言程序设计应用实验C语言程序设计综合应用实验三个部分,每个实验都有配套的实验指导实验报告模板,学生可以根据实验指导完成实验,通过实验来检验自己对C语言编程的理解和掌握程度。 第二部分是习题指导,主要是通过各种习题来达到帮助学习者进一步巩固和提高C语言编程能力的目的。习题指导包括基础知识习题程序设计习题和综合应用习题三个部分,对于每个习题都有详细的讲解和参考答案,学生可以通过做习题来检验并提高自己的C语言编程能力。 总体来说,浙大C语言程序设计实验习题指导(第3)》题目是一本非常优秀的教材,通过实验习题的形式来帮助学习者更好地掌握C语言编程的基础知识和编程技能,对于提升学生C语言编程能力和实际应用能力有非常积极的作用。同时,本书编写非常系统、内容丰富、语言简明易懂,对于初学者和进阶者都有着很好的指导和帮助作用。虽然有英文的书籍,但此书的中文也是一本学习C语言编程非常好的教材,值得推荐。 ### 回答3: 《C语言程序设计实验习题指导(第3)》是浙江大学计算机科学与技术学院编写的一本C语言教材,也是浙江大学计算机学院C语言课程的教材之一。本书主要分为两部分,第一部分是实验指导,第二部分是习题。在实验指导部分,本书从C语言的基础语法入手,通过不断地练习和实践,让读者逐步掌握C语言的编程技巧和方法。在习题中,本书涵盖了各个难度层次的练习题,从基本的语法练习到复杂的算法实现、图形绘制等练习都有。本书的练习题设计严密,题目设计科学合理,不仅可以让读者巩固和提高C语言编程能力,还能引导读者思考解决实际问题的程序设计方法。 《C语言程序设计实验习题指导(第3)》的实验指导部分共有12个实验,每个实验包含实验目的、实验原理、实验步骤和实验报告等内容。在实验步骤中,每步都有详细的操作指导和说明,能够帮助读者轻松地进行实验。在实验报告中,本书也给出了详细的要求和格式说明,让读者写出规范、清晰的实验报告。 本书的习题部分分为基础篇、提高篇和应用篇三个部分,每个部分都有若干章节,涵盖了C语言的各个方面。每个章节都有若干个练习题目,其中不乏难度适中、有一定难度的习题。本书的习题循序渐进,能够帮助读者逐步提高C语言编程水平。 总之,《C语言程序设计实验习题指导(第3)》不仅是一本优秀的C语言教材,更是一本优秀的C语言练习。无论是C语言初学者还是有一定编程基础的读者,都可以从中获得巨大的收获。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值