C语言练习试题答案解析.docx
- 文档编号:27803050
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:175
- 大小:58.63KB
C语言练习试题答案解析.docx
《C语言练习试题答案解析.docx》由会员分享,可在线阅读,更多相关《C语言练习试题答案解析.docx(175页珍藏版)》请在冰豆网上搜索。
C语言练习试题答案解析
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"提示信息:
"Inputa,b,c:
"
**输出格式要求:
"area=%.2f\n"
程序运行示例如下:
Inputa,b,c:
3,4,5
area=6.00
答案:
#include
#include
intmain(void)
{
floata,b,c,s,area;
printf("Inputa,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);
return0;
}
-----------------1
2.从键盘任意输入一个4位整数,编程计算并输出它的逆序数.例如:
输入1234,分离出千位1、百位2、十位3和个位4,然后计算4*1000+3*100+2*10+1=4321,并输出4321。
**要求输入提示信息为:
无
**要求输入格式为:
"%d"
**要求输出格式为:
"%d"
程序运行示例如下:
1234此处为输入
4321此处为输出
答案:
#include
intmain(void)
{
inta,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);
return0;
}
--------------2
3.有关输入输出问题。
输入为:
12a↙
b↙
运行结果为:
1,2,a,b,123.300000,65535
请改正程序中的错误,使它能得出正确的结果。
#include
main()
{
intb;
unsignedshorta=65535;
shortk=a;
charc,d;
intf,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
main()
{
doubleb;
inta=65535;
charc,d;
intf,g;
b=(1234.0-1)/10;
scanf("%c",&c);
scanf("%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
#include
#defineARR_SIZE=80;
main()
{
charstr[ARR_SIZE];
int len,i;
int letter=0,digit=0,space=0,other=0;
printf("请输入一个字符串:
");
gets(str);
len=strlen(str);
for(i=0;i { if(a= { letter++; } elseif(0= { digit++; } elseif(str[i]='') { space++; } else other++; } printf("英文字符数: %d\n",letter); printf("数字字符数: %d\n",digit); printf("空格数: %d\n",space); printf("其他字符数: %d\n",other); } 答案: #include #include #defineARR_SIZE 80 main() { charstr[ARR_SIZE]; int len,i; int letter=0,digit=0,space=0,other=0; printf("请输入一个字符串: "); gets(str); len=strlen(str); for(i=0;i { if('a'<=str[i]&&str[i]<='z'||'A'<=str[i]&&str[i]<='Z') { letter++; } elseif('0'<=str[i]&&str[i]<='9') { digit++; } elseif(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是素数则打印如下信息: "5isaprimenumber"。 又如: 从键盘输入4,4不是素数则打印如下信息: "4isnotaprimenumber"。 负数、0和1均不是素数。 对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。 不能使用全局变量,不按给定的函数原型编写程序 不给分。 Fun()函数原型为: intFun(intm); **输入数据提示信息: "Pleaseinputanumber: \n" 注: 该提示信息请放在循环体外 **输入数据格式为: "%d" **输出格式要求: 若是素数输出数据格式为: "%disaprimenumber\n" 若不是素数输出数据格式为: "%disnotaprimenumber\n" 不完整答案: #include intFun(inta) { inti; if(a>1) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习 试题答案 解析