哈工大C语言--SSE

SSE

*三角形面积

已知三角形的三边长为a,b,c,计算三角形面积的公式为: area =sqrt(s(s-a)(s-b)(s-c)),s=1/2(a+b+c) 其中,a,b,c为浮点数,sqrt为开平方计算。

要求编写程序,从键盘输入a,b,c的值,计算并输出三角形的面积。 注意:不用判断输入的边长值是否满足三角形要求, 只需进行简单计算即可。

** 要求输入提示信息格式为:"Input a,b,c:\n";**

**输出格式要求:"area=%.2f\n"', **

'这题有错!!! **要求输入提示信息格式为:"Input a,b,c:\n"; 标准程序里却没有\n!!!', '

#include <stdio.h>
#include <math.h>
main()
{
    float a, b, c, s, area;
    printf("Input a,b,c:");
    scanf("%f,%f,%f", &a, &b, &c);
    s = 0.5 * (a + b + c);
    area = sqrt(s * (s - a) * (s - b) * (s - c));
    printf("area=%.2f\n", area);
}

', '', 204),

(5, 2, '2', 'Q473', '

*打印菜单界面

编程输出如下菜单界面:

=======大学信息管理系统=======


办公室管理 财务管理

教务管理 图书管理

科研管理 设备管理

人事管理 后勤管理

退出系统


请您在上述功能中选择(0——8):', '

题目描述是坑,每一项前面应该有序号:

1.办公室管理 2.财务管理

3.教务管理 4.图书管理

5.科研管理 6.设备管理

7.人事管理 8.后勤管理

0.退出系统', '', '', '', '', '', '

#include <stdio.h>
 
int main()
{
    printf("=======大学信息管理系统======= \n");
    printf("------------------------------\n");
    printf("1. 办公室管理     5. 财务管理 \n");
    printf("2. 教务管理       6. 图书管理 \n");
    printf("3. 科研管理       7. 设备管理 \n");
    printf("4. 人事管理       8. 后勤管理 \n");
    printf("0. 退出系统\n");
    printf("------------------------------\n");
    printf("请您在上述功能中选择(0——8):\n");
 
    return 0;
}

', '', 83),

(6, 7, '7', 'Q513', '

*两者最大

使用单分支的条件语句编程,计算并输出两个整数的最大值。

**输入格式要求:"%d,%d" 提示信息:"Input a, b:"

**输出格式要求:"max = %d\n"

程序运行示例如下:

Input a, b:3,5

max = 5',

#include "stdio.h"

int main(int argc, char const *argv[])
{
	int a, b;
	printf("Input a, b:");
	scanf("%d,%d",&a,&b);
	printf("max = %d\n", a > b ? a : b);
	return 0;
}

', 72),

(7, 7, '7', 'Q319', '

从键盘输入一个字符,如果它是大写的英文字母,则将其转换成小写 的英文字母,然后将转换的字符及其ASCII码值显示在屏幕上;如果它 是小写的英文字母,则将其转换成大写的英文字母,然后将转换的字符 及其ASCII码值显示在屏幕上;如果输入的是其它字符则显示输入错误。

**输入提示信息格式: 无

**输入数据格式要求: %c

**输出数据格式要求:

若输入的是大小写英文字母,则输出: "%c,%d"

若输入的是其它字符,则输出: "Input error!"

注:已知大写英文字母A的ASCII码值是65

小写英文字母a的ASCII码值是97', '', '', '', '', '', '', '', '

#include "stdio.h"
int main(int argc, char const *argv[])
{
    char a;

scanf("%c",&a);
if (a > 64 && a < 91)
{
    printf("%c,%d", a + 32,a + 32);
}
else if (a > 96 && a <123)
{
    printf("%c,%d", a - 32,a - 32);
}
else
{
    printf("Input error!");
}
return 0;
}

', 68),

(8, 7, '7', 'Q477', '

*圆的面积和周长

编写程序计算圆的面积和周长。

**输入格式要求:"%f" 提示信息:"请输入半径的值:"

**输出格式要求:"半径为%5.2f的圆的面积为%5.2f,圆的周长为%5.2f"

示例运行如下:

请输入圆的半径:3.5

半径为 3.50的圆的面积为38.47,圆的周长为21.98', '', '', '', '', '', '', '',

#include "stdio.h"
#ifndef PI
#define PI 3.14
#endif

int main(int argc, char const *argv[])
{
    float r;

    printf("请输入半径的值:");
    scanf("%f",&r);
    printf("半径为%5.2f的圆的面积为%5.2f,圆的周长为%5.2f", r, PI * r * r, 2 * PI *r);
    return 0;
}

', 68),

(9, 7, '7', 'Q472', '

计算输入的两个整数的和。

**输入格式要求:"%d" 提示信息:"请输入第一个整数:" "请输入第二个整数:"

**输出格式要求:"%d + %d = %d\n"

程序运行示例如下:

请输入第一个整数:34

请输入第二个整数:56 34 + 56 = 90', '', '', '', '', '', '', '', '

#include "stdio.h"

int main(int argc, char const *argv[])
{
    int a, b;
    printf("请输入第一个整数:");
    scanf("%d",&a);
    printf("请输入第二个整数:");
    scanf("%d",&b);
    printf("%d + %d = %d\n", a,b,a + b);
    return 0;
}

', 92),

(10, 7, '7', 'Q2417', '

*摄氏转华氏

写一个程序,将接收的摄氏温度转换为对应的华氏温度。程序应显示如下的提示信息:

Please input cels:     

然后输入一个十进制数并回车,然后程序以合适的消息形式输出转换后的华氏温度。

程序使用如下的公式完成转换:摄氏温度 = 5.0 *(华氏温度 – 32.0) / 9.0

**输入格式要求:"%lf" 提示信息:"Please input cels: "

**输出格式要求:"The fahr is: %.2f"', '', '', '', '', '', '', '', '

#include "stdio.h"

int main(int argc, char const *argv[])
{
    double f, c;
    printf("Please input cels: ");
    scanf("%lf",&c);
    f = 1.0 * c * 9 / 5 + 32;
    printf("The fahr is: %.2f", f);
    return 0;
}

', 90),

(11, 7, '7', 'Q213', '

*一元二次方程

从键盘任意输入a,b,c的值,编程计算并输出一元二次方程ax2+bx+c=0的根。

根据一元二次方程的求根公式,令 p=−b2a,q=∣∣b2−4ac∣∣√2a

当b2−4ac=0时,输出两个相等的实根x1=x2=p;

当b2−4ac>0时,输出两个不相等的实根:x1=p+q,x2=p−q;

当b2−4ac<0时,输出一对共轭复根:x1=p+qi,x2=p−qi。当a=0时,

输出"It is not a quadratic equation!\n"。

**输入格式要求:"%f,%f,%f" 提示信息:"Please enter the coefficients a,b,c:"

**输出格式要求:

相等实根: "x1 = x2 = %.2f\n"

不相等的实根: "x1 = %.2f, x2 = %.2f\n"

一对共轭复根: "x1 = %.2f+%.2fi, x2 = %.2f-%.2fi\n"

程序运行示例如下:

Please enter a,b,c: 0,10,2

It is not a quadratic equation!', '', '', '', '', '', '', '', '

#include "stdio.h"
#include "math.h"

int main(int argc, char const *argv[])
{
    float a, b, c, p, q, d;

    printf("Please enter the coefficients a,b,c:");
    scanf("%f,%f,%f",&a,&b,&c);
    if (!a)
    {
        printf("It is not a quadratic equation!\n");
    }
    else
    {
        p = -1.0 * b / 2 / a;
        d = 1.0 * b * b - 4 * a * c;
        if (!d)
        {
            printf("x1 = x2 = %.2f\n", p);
        }
        else if (d > 0)
        {
            q = sqrt(d) / 2 / a;
            printf("x1 = %.2f, x2 = %.2f\n", p + q, p - q);
        }
        else
        {
            d *= -1;
            q = sqrt(d) / 2 / a;
            printf("x1 = %.2f+%.2fi, x2 = %.2f-%.2fi\n", p,q,p,q);
        }
    }
    return 0;
}

', 108),

(12, 7, '7', 'Q451', '

*双精度平均值

计算由键盘输入的任意两个双精度数据的平均值。

**输入格式要求:"%lf,%lf"

**输出格式要求:"The average is :%f"

程序运行示例如下:

30,90

The average is :60.000000', '', '', '', '', '', '', '', '

#include "stdio.h"

int main(int argc, char const *argv[])
{
    double a, b;

    scanf("%lf,%lf",&a,&b);
    printf("The average is :%f", 0.5 * (a + b));
    return 0;
}

', 61),

(15, 7, '7', 'Q508', '', '

?圆

看看他的用例和上面给出的题目描述,那分明是两个单词。。。我一口老血啊。。。', '', '', '', '', '', '', '

#include "stdio.h"
#ifndef PI
#define PI 3.14159
#endif

int main(int argc, char const *argv[])
{
  float r, c, s;

  printf("Input r:");
  scanf("%f",&r);
  printf("circum = %.2f\n", 2 * PI * r);
  printf("area = %.2f\n", PI * r * r);
  return 0;
}

', 64),

(16, 2, '2', 'Q497', '(10分)

*范围内整数

编程实现一个输入指定范围内的整数的函数getint,其完整的函数原型为: int getint(int min, int max);,

它负责接收用户的输入,进行验证,保证接收的一定是一个介于min和max之间([min, max]区间内)的一个整数并最后返回该整数。

如果用户输入不合法,则会提示继续输入,直到输入合法时为止。

要求编写完整的程序并测试你所写的getint函数。

程序的运行示例如下:

请输入介于3和100之间的一个整数:0

请输入[3..100]间的一个整数:102

请输入[3..100]间的一个整数:200

请输入[3..100]间的一个整数:36

你输入的整数为:36', '

题目没说怎么输入。', '这就是坑点。。。', '', '', '', '', '

#include <stdio.h>

int getint(int min, int max)
{
    int n;

    printf("请输入[%d..%d]间的一个整数:\n", min, max);
    while ((scanf("%d", &n) != 1) || (n < min) || (n > max))
    {
        printf("请输入[%d..%d]间的一个整数:\n", min, max);
    }
    return n;
}

int main()
{
    int m;

    m = getint(3, 100);

    printf("你输入的整数为:%d\n", m);

    return 0;
}', '

#include <stdio.h>

int getint(int min, int max)
{
    int n;

    printf("请输入[%d..%d]间的一个整数:\n", min, max);
    while ((scanf("%d", &n) != 1) || (n < min) || (n > max))
    {
        printf("请输入[%d..%d]间的一个整数:\n", min, max);
    }
    return n;
}

int main()
{
    int m;

    m = getint(3, 100);

    printf("你输入的整数为:%d\n", m);

    return 0;
}

', 27),

(17, 1, '1', 'Q2120', '(10分)

*勾股数

直角三角形的三边满足a^2+b^2=c^2,如果三边都是整数,则称a、b、c为一组勾股数。

编程输出每边长都不大于20的所有勾股数。

**输入提示信息格式: 无

**输入数据格式要求: 无

**输出数据格式要求: "a=%d\tb=%d\tc=%d\n"', '

这题是坑!参考答案输出的有重复!!也就是说a,b,c是都从1开始枚举的!3,4,5; 4,3,5都会被输出!!', '无', '

', '', '

#include<stdio.h>
main()
{
    int a,b,c;    //1

    for(a=1;a<=20;a++)      //3
    {
        for(b=1;b<=20;b++)  //3
        {
            for(c=1;c<=20;c++)   //3
            {
                if(c*c==a*a+b*b)    //2
                    printf("a=%d\tb=%d\tc=%d\n",a,b,c);   //2
            }
        }
    }
}

', '

#include<stdio.h>
main(){
  int a, b, c;
  for(a=1; a<=20; a++)
  for(b=a; b<=20; b++)
  for(c=b; c<=20; c++) if(a*a+b*b==c*c) 
  printf("a=%d\tb=%d\tc=%d\n", a, b, c);
}

', 82),

(18, 2, '2', 'Q323', 'Q323.(10分)

*三数sum,avg,rem

编写程序,实现从键盘输入学生的三门课成绩,计算并输出其总成绩sum,平均成绩ave和总成绩除3的余数rem。

**输入格式要求:"%d%d%d" 提示信息:"Enter three integer: "

**输出格式要求:"SUM = %4d\nAVERAGE = %f REMAINDER = %3d\n"

程序运行示例如下:

Enter three integer: 30 90 100

SUM = 270

AVERAGE = 90.000000 REMAINDER = 0', '

这题样例有错', '', '', '', '', '', '

#include <stdio.h>
main()
{
    int a, b, c, sum, rem;
    float ave;
    printf("Enter three integer: ");
    scanf("%d%d%d", &a, &b, &c);
    sum = a + b + c;
    ave = sum / 3.0;
    rem = sum % 3;
    printf("SUM = %4d\nAVERAGE = %f  REMAINDER = %3d\n", sum, ave, rem);
}

', '', 81),

(19, 2, '2', 'Q221', 'Q221.(10分)

*月份天数

编程从键盘输入某年某月(包括闰年),用switch语句编程输出该年的该月拥有的天数。

要求考虑闰年以及输入月份不在合法范围内的情况。已知闰年的2月有29天,平年的2月有28天。

**输入格式要求:"%d, %d" 提示信息:"Input year,month:"

**输出格式要求:"31 days\n" "29 days\n" "28 days\n"

程序运行示例如下:

Input year,month:2004,2

29 days', '30 days\n 就不用说了吧……

坑爹的是没告诉你判断输入错误后输出什么

正解是,要输出"Input error!\n"

', '

**输入格式要求:"%d, %d" 提示信息:"Input year,month:"', '

**输出格式要求:"31 days\n" "29 days\n" "28 days\n"', '2004,2', '29 days', '

没什么好说的,一路case就成,注意计算闰年的条件是:

1.能被4乘除但不能被100整除

2.或者能被400整除

举例:1900年就不是闰年,这个年份在涉及到闰年的问题时经常被用来卡第二个条件', '

#include <stdio.h>
main()
{
    int  year, month;
    printf("Input year,month:");
    scanf("%d, %d", &year, &month);
    switch (month)
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        printf("31 days\n");
        break;
    case 2:
        if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
        {
            printf("29 days\n");        /* 闰年的2月有29天 */
        }
        else
        {
            printf("28 days\n");        /* 平年的2月有28天 */
        }
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        printf("30 days\n");
        break;
    default:
        printf("Input error!\n");
    }
}

', '

#include <stdio.h>
int main()
{
    int year, month;
    printf("Input year,month:");
    scanf("%d,%d",&year,&month);
    switch (month)
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        printf("31 days\n");
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        printf("30 days\n");
        break;
    case 2:
        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) printf("29 days\n");
        else printf("28 days\n");
        break;
    default:
        printf("Error!\n");
    }
    return 0;
}

', 159),

(20, 1, '1', 'Q1318', 'Q1318.(10分)

*牛顿迭代法求根

用牛顿迭代法求根。方程为ax^3+bx^2+cx+d=0,系数a、b、c、d由主函数输入,求x在1附近的一个实根。求出根后,由主函数输出。

程序的运行示例如下:

输入方程的系数a、b、c、d:

1 2 3 4

方程是: 1.00x^3+ 0.00x^2+ 0.00x+ 0.00=0

X= 0.0000176', '

注意输出格式,题目没说明白,看标准代码吧!

一开始还有个换行,真搞不明白是什么意思,坑!', '', '', '', '', '', '

#include <stdio.h>
#include <math.h>

float solut(float a, float b, float c, float d)
{
    float x = 1, x0, f, f1;

    do
    {
        x0 = x;
        f = ((a * x0 + b) * x0 + c) * x0 + d;
        f1 = (3 * a * x0 + 2 * b) * x0 + c;
        x = x0 - f / f1;
    }
    while (fabs(x - x0) >= 1e-5);

    return x;
}

int main()
{
    float a, b, c, d;

    printf("\n输入方程的系数a、b、c、d:\n");
    scanf("%f,%f,%f,%f", &a, &b, &c, &d);
    printf("\n方程是:%5.2fx^3+%5.2fx^2+%5.2fx+%5.2f=0", a, b, c, d);
    printf("\nX=%10.7f\n", solut(a, b, c, d));

    return 0;
}

', '

#include<stdio.h>
#include<math.h>
double a, b, c, d;
double f(double x)
{
    return ((a * x + b) * x + c) * x + d;
}
double f1(double x)
{
    return (3 * a * x + 2 * b) * x + c;
}
main()
{
    double x0 = 1.0;
    printf("\n输入方程的系数a、b、c、d:\n");
    scanf("%lf%lf%lf%lf", &a, &b, &c, &d);
    printf("方程是:%5.2lfx^3+%5.2lfx^2+%5.2lfx+%5.2lf=0\n", a, b, c, d);
    while (fabs(f(x0)) >= 1e-6)
    {
        x0 = x0 - f(x0) / f1(x0);
    }
    printf("X=%10.7lf", x0);
}

', 53),

(21, 1, '1', 'Q345', 'Q345.(10分)

*求两个整数中的较大值。

**输入格式要求:"%d%d" 提示信息:"input a and b="

**输出格式要求:"The max of a and b :%d\n"

程序运行示例如下:

input a and b=5 6

The max of a and b :6', '', '', '', '', '', '', '', '

#include <stdio.h>
main(){
  int a, b;
  printf("input a and b=");
  scanf("%d%d", &a, &b);
  printf("The max of a and b :%d\n", a>b?a:b);
}

', 63),

(22, 1, '1', 'Q2111', 'Q2111.(10分)

*十数中最大值

编写一C语言程序,从键盘输入10个整数,求出它们中最大的一个数并输出。(请不要使用数组或指针)。

输入要求:每输入一个整数前,要有提示信息"input the number!\n"

输出要求:"max integer is %d!\n"', '', '', '', '', '', '', '', '

#include<stdio.h>
main(){
  int m, i, x;
  printf("input the number!\n");
  scanf("%d", &x);
  for(i=1; i<10; i++) {
    printf("input the number!\n"); 
    scanf("%d", &m); 
    if(m>x) x = m;
  }
  printf("max integer is %d!\n", x);
}

', 23),

(23, 1, '1', 'Q231', 'Q231.(10分)

*趣味数学题

马克思手稿中有这样一道趣味数学题:男人、女人和小孩总计30个人,在一家饭店里吃饭,共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,请用穷举法编程计算男人、女人和小孩各有几人。

**输出格式要求:

"Man\tWomen\tChildren\n"
"%3d\t%5d\t%8d\n"', '

每一种人的人数都可以是0!', '', '', '', '', '', '', '

#include <stdio.h>
main(){
  int a, b, c;
  printf("Man\tWomen\tChildren\n");
  for(a=0; a<=30; a++)
  for(b=0; b+a<=30; b++){
    c = 30-a-b;
    if(a*3+b*2+c == 50) 
    printf("%3d\t%5d\t%8d\n", a, b, c);
  }
}

', 98),

(24, 1, '1', 'Q2437', 'Q2437.(10分)

*数组中找名字

写一个程序提示用户输入姓名,然后在一个保存在数组中的名字列表中查找该姓名,如果找到则显示适当的欢迎信息,否则显示“名字没有找到”。

名字列表为:{"abc", "bbc", "ccc", "Hello", "John", "Tome"};

**提示信息:"请输入一行字符:"

**输出格式要求:"欢迎你,%s!" "名字没有找到!"', '', '', '', '', '', '', '', '

#include <stdio.h>
#include <string.h>
main(){
  char name[7][8] = {"abc", "bbc", "ccc", "Hello", "John", "Tome"};
  char buf[20];
  int i;
  printf("请输入一行字符:");
  gets(buf);
  for(i=0; i<6; i++) 
  if(!strcmp(buf, name[i])) {
    printf("欢迎你,%s!", buf); 
    exit(0);}
    printf("名字没有找到!");
}

', 21),

(25, 1, '1', 'Q1513', 'Q1513.(10分)

*小写转大写

从键盘输入一个小写英文字母,将其转换成大写英文字母后,输出大写英文字母及其对应的十进制ASCII码值.

**输入格式要求:无任何信息提示;

**输出格式要求:"%c,%d\n"', '', '', '', '', '', '', '', '

#include<stdio.h>
main(){
  char c;
  scanf("%c", &c);
  printf("%c,%d\n", c-32, c-32);
}

', 56),

(26, 1, '1', 'Q524', 'Q524.(10分)

*n内所有阶乘

从键盘输入n,然后计算并输出1~n之间的所有数的阶乘值。

**输入格式要求:"%d" 提示信息:"Please enter n:"

**输出格式要求:"%d! = %ld\n"

程序运行示例如下:

Please enter n:10

1! = 1

2! = 2

3! = 6

4! = 24

5! = 120

6! = 720

7! = 5040

8! = 40320

9! = 362880

10! = 3628800', '', '', '', '', '', '', '', '

#include <stdio.h>
main(){
  int n, i, s=1;
  printf("Please enter n:");
  scanf("%d", &n);
  for(i=1; i<=n; i++) printf("%d! = %ld\n", i, s*=i);
}

', 65),

(27, 1, '1', 'Q2124', 'Q2124.(10分)

*字符串存入数组

将字符串s1从第m个字符开始剩余的所有字符,送入字符数组s2中。

注意:

  1. 请将修改正确后的完整源程序拷贝粘贴到答题区内。
  2. 对于没有错误的语句,请不要修改,修改原本正确的语句也要扣分。
  3. 当且仅当错误全部改正,且程序运行结果调试正确,才得满分。
    #include "stdio.h"
    main()
    {
        int i,j,m;
        char s1[80],s2[80];

        printf("input a string:\n");
        gets(s1[]);
        printf("input start point:\n");
        scanf("%d",m);
        i=m-1;
        j=0; 

        while(s1[i]!=''\0'') 
        {
            s2[j]=s1[i]; 
        }
        s2[j]=''\0''; 
        puts(s2);
    }

', '', '', '', '', '', '', '', '

#include "stdio.h"
main()
{
    int i,j,m;
    char s1[80],s2[80];

    printf("input a string:\n");
    gets(s1);
    printf("input start point:\n");
    scanf("%d",&m);
    i=m-1;
    j=0; 

    while(s1[i]!=''\0'') 
    {
        s2[j++]=s1[i++]; 
    }
    s2[j]=''\0''; 
    puts(s2);
}

', 28),

(29, 1, '1', 'Q131', 'Q131.(15分)

*找最小素数

编写一个找出大于给定整数m的最小素数的函数,要求在主函数中输入一个整数m,调用子函数IsPrime()找出其最小素数,并输出结果。

函数原型:int IsPrime(int x)

****要求输入提示信息为:Please input n:

****输出格式要求为:"%d\n"', '', '', '', '', '', '', '', '

#include<stdio.h>
int IsPrime(int x)
{
    int i = 1;
    if (x < 2) return 0;
    if (x == 2) return 1;
    for (i = 2; i <= x / 2; i++) if (x % i == 0) return 0;
    return 1;
}
main()
{
    int m, min;
    printf("Please input n:");
    scanf("%d", &m);
    for (min = m+1; !IsPrime(min); min++);
    printf("%d\n", min);
}

', 46),

全部评论

相关推荐

牛客44320985...:你的当务之急是把这个糖的要死的沟槽ide主题改了
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务