法133计算机科学课第9、10周实践题目及参考解答

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597

2398:分段函数求值【双分支】

Description

编程序,计算下面函数的值并输出: y = x - 1 (当x>=1), y = -x + 1 (当x<1)

Input

一个整型数x

Output

按公式计算出的y

Sample Input

2

Sample Output

1

参考解答:

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

2395:小贺的加班工资【简单分支】

Description

小贺刚上班,按计时制领工资,每小时rate元RMB。每周工作时间40小时,如果要加班,超出部分按正常工资的1.5倍计(老板还算不错喔!)。这周小贺上班的时间为hour小时,请编程序,输入rate和hour(均可为小数),输出小贺本周的薪水,要求小数点后保持2位小数。

Input

每小时的工资rate和本周的工作时间hour

Output

本周工资额

Sample Input

15.5 42

Sample Output

666.50

HINT

C语言中,将printf("%.2f\n",x); 可以令x的值保留两位小数输出。

C++中,cout<<setiosflags(ios::fixed)<<setprecision(2)<<x<<endl;令x的值保留两位小数输出,另外,需加头文件#include<iomanip>

参考解答:

#include <stdio.h>
int main()
{
    double rate,hour,s;
    scanf("%lf %lf", &rate, &hour);
    if(hour<=40)
        s=hour*rate;
    else
        s=40*rate+(hour-40)*1.5*rate;
    printf("%.2lf\n",s);
    return 0;
}   

2396:输入星期值,输出英文【多分支】

Description

从键盘上输入数字星期,然后输出它的英文: 其对应关系是 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 7 Sunday

Input

从键盘输入数字星期,

Output

输入的数字在1-7之内,则输出该数字对应的英文表示

Sample Input

2

Sample Output

Tuesday

参考解答:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a;
    scanf("%d",&a);
    switch(a)
    {
    case 1:
        printf("Monday");
        break;
    case 2:
        printf("Tuesday ");
        break;
    case 3:
        printf("Wednesday ");
        break;
    case 4:
        printf("Thursday");
        break;
    case 5:
        printf("Friday");
        break;
    case 6:
        printf("Saturday");
        break;
    case 7:
        printf("Sunday");
        break;
    }
    return 0;
}

2399:求倒数和【简单循环】

Description

输入一个小于10的正整数n,求1到n的倒数和(即1+1/2+...+1/n)并输出。

Input

一个整型数 n

Output

1+1/2+...+1/n 的值,小数点后保留6位小数。

Sample Input

4

Sample Output

2.083333

HINT

C语言中,将printf("%.6f\n",x); 可以令x的值保留六位小数输出。

C++中,cout<<setiosflags(ios::fixed)<<setprecision(6)<<x<<endl;令x的值保留六位小数输出,另外,需加头文件#include<iomanip>

#include <stdio.h>
int main()
{
    int i,n;
    double s=0;
    scanf("%d", &n);
    for(i=1; i<=n; i++)
        s+=1.0/i;
    printf("%.6f",s);
    return 0;
}

2400:多个数的平均值【简单循环】

Description

输入n及n个整数(n不超过20),输出这n个数的平均值

Input

整数n及n个整数,各数用空格隔开

Output

n个整数的平均值(整数)

Sample Input

4 2 4 6 8

Sample Output

5

仿照教材做法:

#include <stdio.h>
int main()
{
    int n, i , a[20];
    int sum = 0;
    scanf("%d",&n);
    //输入n个数
    for (i=0; i<n; i++)
    {
        scanf("%d",&a[i]);
    }
    //将n个数累加
    for (i=0; i<n; i++)
    {
        sum+=a[i];
    }
    //输出平均数
    printf("%d\n",sum/n);
    return 0;
}

两个循环可以合二为一:

#include <stdio.h>
int main()
{
    int n, i , a[20];
    int sum = 0;
    scanf("%d",&n);
    //输入n个数并累加
    for (i=0; i<n; i++)
    {
        scanf("%d",&a[i]);  //输入第i个数
        sum+=a[i];          //累加
    }
    //输出平均数
    printf("%d\n",sum/n);
    return 0;
}

因为累加完后就没有必要保存这个数了,a不用数组,直接用一个变量即可。

#include <stdio.h>
int main()
{
    int n, i , a;
    int sum = 0;
    scanf("%d",&n);
    for (i=0; i<n; i++)
    {
        scanf("%d",&a);
        sum+=a;
    }
    printf("%d\n",sum/n);
    return 0;
}
时间: 2024-08-30 16:32:39

法133计算机科学课第9、10周实践题目及参考解答的相关文章

法133计算机科学课第13周实践题目及参考解答

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 [课后练习1] 完成下面"歌手大奖赛计分程序"的设计(至少一项要求): 1.在歌手大奖赛中,有10位评委为参赛的选手打分,分数为0~10分(运行时由人控制).选手最后得分为去掉一个最高分和一个最低分后的平均值.请编写一个程序实现计分. 2.做一个更通用的计分程序,评委人数n可以在输入成绩之前输入,从而评委人数可以灵活调整. 3.进一步完善程序.一次运行程序只计算

法133计算机科学课第15周实践题目及参考解答

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 编程练习1:输出1000以内的所有素数. 参考解答: #include<stdio.h> #include<math.h> int main() { int m,i,k,prime; for(m=2;m<=200;m++) { prime=1; k=sqrt(m); for(i=2; i<=k; i++) //最多循环至-- if(m%i==0)

法133计算机科学课第12周实践题目及参考解答

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 Problem A:2447: 求N组数的最大公约数Description计算一组数的最大公约数Input第一行是数据的组数N,从第二行是N组由两个整数(a和b)构成的输入,a和b之间用空格隔开,每组输入单独占一行Output每组的两个整数(a和b)的最大 公约数,每个结果独占一行Sample Input398 7280 3612 144Sample Output2412

计算机科学-第15周 递归函数 题目及参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 1.阅读下面关于递归函数的程序,在草稿纸上画出函数调用"递推-回归"的过程,得出运行结果,并和实际运行结果进行对照(1) #include <stdio.h> int fact(int n); int main(){ long x=0,y=0; x=5; y=fact(x); printf("%ld\n"

计算机科学-第4周 结构 题目及参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 例1: 用一个结构表示点,输入点的横纵坐标,输出该点到原点的距离 #include <stdio.h> #include <math.h> struct Point { float x; float y; }; int main() { struct Point p; float d; printf("请输入点的坐标: &

计算机科学-第13周 函数 题目及参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 1.阅读程序:阅读下面的程序,写出运行结果,上机时运行程序,记录结果,从而能够理解函数的用法(1) #include <stdio.h> void fun(int x, int y) { x=x*10; y=y+x; printf("%d\t%d\n",x,y); } int main() { int a=2, b=3; f

计算机科学-第6周 文件 题目及参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 题目:文件salary1.txt是某单位100名员工的工号.基本工资和绩效工资.编程序(1)从文件中读取数据,求出总工资,并在屏幕上显示信息:(2)将完整的工资单保存到文件salary2.txt中.(3)将总工资超过5000元的员工的工号保存到文件rich.txt中.(4)在屏幕上显示工资最高的员工的工资信息提示:(1)定义一个结构体数组保存从文件中读入的

2013-C++第10周OJ题目及参考答案

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 1030 Problem  A 求奖金总数 Description 企业发放的奖金根据利润提成.利润低于或等于100000元的,奖金可提10%; 利润高于100000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成 7.5%; 200000<I≤400000时,低于200000元部分仍按上

计算机科学-第9周 数组、结构体、指针综合练习 题目及参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 发现第9周的题目及参考没有公布,补上. 1.阅读程序阅读下面的程序,写出运行结果,上机时运行程序,记录结果,从而能够理解指针的用法(1) #include<stdio.h> int main(){ char a[]="Hello World",*p; int i; i=8; p=a+i; printf("%s\n&