1.已知三角形的三边长为a,b,c,计算三角形面积的公式为:
area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2。
试编程从键盘输入a,b,c的值(假设a,b,c的值可以保证其构成一个三角形),计算并输出三角形的面积。
**输入格式要求:"%f,%f,%f" 提示信息:"Input a,b,c:"
**输出格式要求:"area = %.2f\n"
程序运行示例如下:
Input a,b,c:3,4,5
area = 6.00
答案:#include<stdio.h>
#include<math.h>
int main(void)
{
float a, b, c, s, area;
printf("Input a,b,c:");
scanf("%f,%f,%f", &a, &b, &c);
s = (a + b + c) / 2;
area = sqrt(s*(s - a)*(s - b)*(s - c));
printf("area = %.2f\n", area);
return 0;
}
-----------------1
2.从键盘任意输入一个4位整数,编程计算并输出它的逆序数.例如:输入1234,分离出千位1、百位2、十位3和个位4,然后计算4*1000+3*100+2*10+1=4321,并输出4321。
**要求输入提示信息为:无
**要求输入格式为: "%d"
**要求输出格式为:"%d"
程序运行示例如下:
1234 此处为输入
4321 此处为输出
答案:
#include<stdio.h>
int main(void)
{
int a, b, c, d,e;
scanf("%d",&a);
b = a/1000;
c = a%1000/100;
d = a%100/10;
e = a%10;
a = e*1000+d*100+c*10+b;
printf("%d",a);
return 0;
}
--------------2
3.有关输入输出问题。
输入为:12a↙
b↙
运行结果为:1,2,a,b,123.300000,65535
请改正程序中的错误,使它能得出正确的结果。
#include <stdio.h>
main()
{
int b;
unsigned short a = 65535;
short k = a;
char c, d;
int f, g;
b = (1234.0 - 1) / 10;
scanf("%c", &c);
scanf("%c", &d);
scanf("%d", &f);
scanf("%d", &g);
printf("%c,%c,%c,%c,%f,%d", c, d , f, g, b, k);
}
答案:#include <stdio.h>
main()
{
double b;
int a = 65535;
char c, d;
int f, g;
b = (1234.0 - 1) / 10;
scanf("%c", &c);
printf输出格式 unsigned shortscanf("%c", &d);
scanf("%c\t", &f);
scanf("%c", &g);
printf("%c,%c,%c,%c,%f,%d", c, d , f, g, b, a);
}
--------3
4.输入一行字符,统计其中的英文字符、数字字符、空格字符,以及其他字符的个数。请出以下程序的错误,并改正之。
#include <stdio.h> #include <string.h> #define ARR_SIZE = 80; main() { char str[ARR_SIZE]; int len, i; int letter=0,digit=0,space=0,other=0; printf("请输入一个字符串:"); gets(str); len = strlen(str); for (i=0; i<len; i++) { if (a=<str[i]<=z || A=<str[i]<=Z) { letter ++; } else if (0=<str[i]<=9) { digit ++; } else if (str[i]=' ' ) { space ++; } else other ++; } printf("英文字符数:%d\n", letter); printf("数字字符数:%d\n", digit); printf("空格数:%d\n", space); printf("其他字符数:%d\n", other); } |
答案 :#include <stdio.h>
#include <string.h>
#define ARR_SIZE 80
main()
{
char str[ARR_SIZE];
int len, i;
int letter = 0, digit = 0, space = 0, other = 0;
printf("请输入一个字符串:");
gets(str);
len = strlen(str);
for (i = 0; i<len; i++)
{
if ('a' <= str[i]&&str[i] <= 'z' || 'A' <= str[i]&&str[i] <= 'Z')
{
letter++;
}
else if ('0' <= str[i] && str[i]<= '9')
{
digit++;
}
else if ( str[i] == ' ')
{
space++;
}
else
other++;
}
printf("英文字符数:%d\n", letter);
printf("数字字符数:%d\n", digit);
printf("空格数:%d\n", space);
printf("其他字符数:%d\n", other);
}
--------------------4
5.对输入的一个数判断是否是素数。所谓素数是指这个数只能被1和自身整除。要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:从键盘输入5,5是素数则打印如下信息:"5 is a prime number"。又如:从键盘输入4, 4不是素数则打印如下信息:"4 is not a prime number"。负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。不能使用全局变量,不按给定的
函数原型编写程序
不给分。Fun()函数原型为: int Fun(int m);
**输入数据提示信息:"Please input a number:\n"
注:该提示信息请放在循环体外
**输入数据格式为:"%d"
**输出格式要求:
若是素数输出数据格式为:"%d is a prime number\n"
若不是素数输出数据格式为: "%d is not a prime number\n"
不完整答案:#include<stdio.h>
int Fun(int a)
{
int i;
if(a>1)
{
for(i = 2;i<a;i++)
{
if(a%i==0)
return 0;
else
continue;
}
return 1;
}
else
return 0;
}
main()
{
int b,c;
printf("Please input a number:\n");
scanf("%d",&b);
c = Fun(b);
if(0 == c)
printf("%d is not a prime number\n",b);
else
printf("%d is a prime number\n",b);
}
参考答案:#include "stdio.h"
int Fun(int m);
int main()
{
int m, flag;
printf("Please input a number:\n");
do
{
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论