C 语言期中考试 程序分析

题目编号:1

  编程先由计算机“想”一个1到100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则结束游戏。

  编程思路:

  程序开始需要生成一个伪随机数num,num必须在1~100之间,这里用到了C语言的rund方法,来生成一个伪随机数,还需要一个种子.

在一个循环里(10次),提示人输入一个1~100的整数n,并与num比较,如果相等,则程序结束,如果n大于num,提示输入的数太大,如果n小于num,提示输入的数太小.如果循环结束还没有猜到结果,也结束游戏.

  源代码:

#include <stdio.h>
#include <stdlib.h>
void main()
{
    //declear variables
    int num,n,i=1,flag =0;
    //create a ramdom num use rand method
    srand( (unsigned)time(NULL) );
    num = rand()%100+1;
    
    printf("The game start...\n");
    
    while(i++<=10)
    {
        printf("please input a number between 1 and 100 :");
        scanf("%d",&n);

        if(n==num)
        {
            printf("congratulation!!! you input %d times.\n" , i-1);
            flag= 1;
            break;
        }
        else if(n>num)
        {
            printf("your number greater than the random number!\n");
        }
        else
        {
            printf("your number less than the random number!\n");
        }
    }

    if(!flag)
    {
        printf("sorry, you did't guess right! game over...\n");
    }
}

  程序截图:

 

题目编号:2

  题目描述:任意给定n个整数,求这n个整数序列的和、最小值、最大值 输入描述:输入一个整数n,代表接下来要输入的整数个数,n<=100,接着输入n个整数 输出描述:输出证书序列的和、最小值和最大值,用空格隔开,占一行

  样例输入:

  2

  1 2

  样例输出:

  3 1 2

  编程思路:

  首先声明变量n ,储存整数序列个数,  数组array,循环n次输入来储存的整数序列,然后循环数组中的前n个元素,找到最大值和最小值,并计算总数.

  源代码:

#include <stdio.h>

void main()
{
    int a[100];
    int i, j, k, n;
    int sum=0,min,max;

    printf("please input a integer n:");
    scanf("%d",&n);
    printf("please input n numbers:");
    for (i = 0; i<n; i++)
        scanf("%d", &a[i]);


    max =min = a[0];
    for (j = 0; j<n; j++)        
    {
        if(a[j]>max)
            max=a[j];
        if(a[j]<min)
            min=a[j];
        sum+=a[j];
    }

    printf("sum=%d,max=%d,min=%d\n",sum,max,min);
}

  程序截图:

 

题目编号:3

  外卖费。上了一上午的课,终于到了午饭时间,大家讨论中午吃什么,有人说吃食堂盖饭,有人说吃海底捞,最后宿舍长大人一拍桌子,说:叫外卖!于是开始打电话叫外卖,规则如下:每单少于20元(不含)不予以送餐,每单在20(含)到30(不含)元之间收取8块钱送餐费,每单在30(含)到40(不含)元之间收取5元送餐费,每单在40(含)元以上免费送餐,请你计算这顿午餐的全部费用。 输入格式:输入共2行,第一行包括一个整数n(n>=1&&n<=20),表示这一单一共要了几个菜,第2行有n个浮点数,以空格分开,表示每个菜的价格 输出格式:输出1行,包含一个浮点数,表示全部外卖费,保留小数点后面2位,当不够送餐服务时,输出error

输入样例:

  3

  10.5 11.5 10.5

  编程思想:

  首先声明变量n ,储存整数序列个数,  数组array,循环n次输入来储存的浮点型序列并计算总数,然后判断订单总数在哪个区间,分别加上对应的运送费用,最终打印输出结果.  

  源代码:

#include <stdio.h>

void main()
{
    int n,i,fee=0;
    double sum = 0;
    double array[20];
    
    printf("please input you number:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%lf",&array[i]);
        sum+=array[i];
    }

    if(sum<20)
    {
        printf("sorry, The total price of the order must greater than 20,otherwise we don't send the order!\n");
        return;
    }
    else if(sum<30)
    {
        fee = 8;
    }
    else if( sum < 40)
    {
        fee = 5;
    }

    printf("The total price of the order:%.2lf include Shipping fees:%d\n",sum+fee,fee);
}

 

  程序截图:

posted on 2015-04-25 23:52  忽而今夏  阅读(1215)  评论(0编辑  收藏  举报