1.生成3的乘方表3
输入一个非负整数n,生成一张3的乘方表,输出3​0​​ ~3​n​ 的值。可调用幂函数计算3的乘方。
输入格式:
输入在一行中给出一个非负整数n。
输出格式:
按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。
输入样例:
3
输出样例:
pow(3,0) = 1
pow(3,1) = 3
pow(3,2) = 9
pow(3,3) = 27
    (1)编程思路。
    简单的循环处理。程序中无需调用幂函数计算3的乘方。因为3n=3n-1×3。
    (2)源程序。
#include <stdio.h>
int main()
{
    int i,n;
    long long p=1;
    scanf("%d",&n);
    for (i=0;i<=n;i++)
    {
        printf("pow(3,%d) = %lld\n",i,p);
        p=p*3;
    }
    return 0;
}
2.统计学生成绩
本题要求编写程序读入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
    (1)编程思路。
    简单的循环处理。
    (2)源程序。
#include <stdio.h>
int main()
{
    int i,n;
    scanf("%d",&n);
    int score,a=0,b=0,c=0,d=0,e=0;
    for (i=1;i<=n;i++)
    {
        scanf("%d",&score);
        if (score>=90) a++;
        else if (score>=80) b++;
        else if (score>=70) c++;
        else if (score>=60) d++;
        else e++;
    }
    printf("%d %d %d %d %d\n",a,b,c,d,e);
    return 0;
}
3.输出闰年
输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。
输入格式:
输入在一行中给出21世纪的某个截止年份。
输出格式:
逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非21世纪的年份则输出"In
valid year!"。若不存在任何闰年,则输出“None”。
输入样例1:
2048
输出样例1:
2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048
输入样例2:
2000
输出样例2:
Invalid year!
    (1)编程思路。
闰年的判定条件是:①能被4整除,但不能被100整除的年份都是闰年,如1996年,2004年是闰年;②能被100整除,又能被400整除的年份也是闰年。如2000年是闰年。可以用一个逻辑表达式来表示:
          (year%4==0&&year%100! =0) | | year%400==0
当year为某一整数值时,如果上述表达式值为true(1),则year为闰年;否则year为非闰年。
    (2)源程序。
#include <stdio.h>
int main()
{
    int endyear;
    scanf("%d",&endyear);
    int i,cnt=0;
    if (endyear<=2000 || endyear>2100)
        printf("Invalid year!\n");
    else
    {
      for (i=2001;i<=endyear;i++)
      {
          if (i%4==0 && i%100!=0 || i%400==0)
          {
              printf("%d\n",i);
              cnt++;
          }
      }
      if (cnt==0) printf("None\n");
  }
  return 0;
}
4.寻250
对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中到“250”这个高大上的感人数字。
输入格式:
输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。
输出格式:
在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。
输入样例:
888 666 123 -233 250 13 250 -222
输出样例:
5
    (1)编程思路。
由于输入的数据个数未知,因此采用循环 while (scanf("%d",&x)!=EOF) 输入各数据。
    (2)源程序。
#include <stdio.h>
int main()
{
    int ans=0,cnt=0,x;
    while (scanf("%d",&x)!=EOF)
    {
        cnt++;
        if (x==250 && ans==0) ans=cnt;
    }
    printf("%d\n",ans);
  return 0;
}
5.最佳情侣身高
专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。
下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。
输入格式:
输入第一行给出正整数N(≤10),为前来查询的用户数。随后N行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间 [1.0, 3.0] 之间的实数。
输出格式:
对每一个查询,在一行中为该用户计算出其情侣的最佳身高,保留小数点后2位。
输入样例:
2
M 1.75
F 1.8
输出样例:
1.61
1.96
    (1)编程思路。
    简单的循环处理。
    (2)源程序。
#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    for (int i=1;i<=n;i++)
    {
        char sex;
        float height;
        getchar();
        scanf("%c%f",&sex,&height);
        if (sex=='M')2024 2028 2032奥运会
            printf("%.2f\n",height/1.09);
        else
            printf("%.2f\n",height*1.09);
    }
  return 0;
}
6.作品评分
全国中小学生Scratch作品大赛拉开了序幕。每个参赛选手可以通过网络直接上传作品。本次比赛人人可做评委。每个网络评委可以通过网络对每一件作品进行打分。评分系统也是请程序高手设计的,能自动去掉一个最高分和一个最低分,求出平均分。
输入格式:
输入数据包括两行: 第一行为n,表示n个评委,n>2。 第二行是n个评委的打分,分数之间有一个空格。打分是可以带有小数部分的。