zoukankan      html  css  js  c++  java
  • 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...
    ");
        
        while(i++<=10)
        {
            printf("please input a number between 1 and 100 :");
            scanf("%d",&n);
    
            if(n==num)
            {
                printf("congratulation!!! you input %d times.
    " , i-1);
                flag= 1;
                break;
            }
            else if(n>num)
            {
                printf("your number greater than the random number!
    ");
            }
            else
            {
                printf("your number less than the random number!
    ");
            }
        }
    
        if(!flag)
        {
            printf("sorry, you did't guess right! game over...
    ");
        }
    }

      程序截图:

    题目编号: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
    ",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!
    ");
            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
    ",sum+fee,fee);
    }

      程序截图:

  • 相关阅读:
    androidimage: load large bitmap Efficiently
    display log information in terminal
    黑客人物介绍
    Linux 基础入门学习
    网络攻防 第四周学习总结
    网络攻防 第二周学习总结
    网络攻防 第三周学习总结
    SpringBoot入门Demo(Hello Word Boot)
    jquery的json对象与字符串之间转换
    Intellij IDEA导入web项目详解(解决访问的404)
  • 原文地址:https://www.cnblogs.com/tianzhenyun/p/4457127.html
Copyright © 2011-2022 走看看