当前位置:文档之家› c语言答案第一章

c语言答案第一章

C 语言程序设计习题解答(第一章)

1.1 请编写一个程序,显示以下两行文字:
I am a student.
I love China.
[解答]
#include <stdio.h>
void main()
{
printf("I am a student.\n");
printf("I love China.\n");
}

1.2 编一程序,从键盘输入两个整数,输出此二数之和。
[解答]
#include <stdio.h>
void main()
{
int a,b;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
printf("%d+%d=%d\n",a,b,a+b);
}

1.3 调用库函数,求以下的函数值:
(1) cos 3.5678(角度单位为弧度)
(2) log 90
(3) e2.567
[解答]
#include <stdio.h>
#include <math.h>
void main()
{
printf("cos 3.5678 = %f\n", cos(3.5678));
printf("log 90 = %f\n", log(90));
printf("exp(2.567) = %f\n", exp(2.567));
}

1.4 编写一个程序,求3个整数之和。
(1) 只用main函数。
(2) 通过求两个整数之和的函数加以实现(自己设计函数)。
[解答]
(1)
#include <stdio.h>
void main()
{
int a,b,c;
printf("请输入 3 个整数:");
scanf("%d%d%d", &a, &b, &c);
printf("%d + %d + %d = %d\n", a, b, c, a+b+c);
}

(2)
#include <stdio.h>
void main()
{
int a,b,c,s;
int add2(int x, int y);
printf("请输入 3 个整数:");
scanf("%d%d%d", &a, &b, &c);
s=add2(add2(a,b),c);
printf("%d + %d + %d = %d\n", a, b, c, s);
}
int add2(int x, int y) /* 计算 x 与 y 的和 */
{
return(x+y);
}

1.5 编写一个求a+|b|的程序,a,b为两个整数。
[解答]
#include <stdio.h>
void main()
{
int a,b,s;
printf("请输入两个整数:");
scanf("%d%d", &a, &b);
if(b>=0)
s=a+b;
else
s=a-b;
printf("%d + |%d| = %d\n", a, b, s);
}

1.6 编写一个求0~100之间全部偶数之和的程序。
[解答]
#include <stdio.h>
void main()
{
int i=0, sum=0;
while(i<=100)
{
sum+=i;
i+=2;
}
printf("0~100 之间全部偶数之和为:%d\n", sum);
}

1.7 编写一个程序从5个整数中找出最小的数。
[解答]
#include <stdio.h>
void main()
{
int i, n, min;
printf("请输入 5 个整数:");
scanf("%d", &n); /* 输入第一个整数 */
min=n; /* 将第一整数放在 min */
/* 下面处理第 2 到第 5 个整数 */
i=2;
while(i<=5)
{
scanf("%d", &n); /* 输入第 i 个整数 */
if(min>n) /* 若 min 存放的数比当前输入的数大 */
min = n; /* 则将当前输入的数放入 min 中 */
i++;
}
printf("这 5 个数中最小的是:%d\n", min);
}

1.8 在下列符号中,你可以选用哪些作变量名?哪些不可以?为什么?
a3B 3aB π +a *x $a b5_
if next_ day e_2 OK? MAXNUMBER
i*j

Main
[解答]
变量名必须是合法的标识符,且不能是C语言的关键字。因此可以用作变量名的有:a3B, b5_, next_, day, e_2, MAXNUMBER, Main, 其余的不可以,因为3aB 以数字开头,而π, +a, *x, $a, OK?, i*j 含有字母、数字和下划线以外的字符,都不是标识符;if
是C语言的关键字。

1.9, 1.10 略。

1.11分析下面的程序段,指出其中的错误以及后果,再将其改正。
(1)
int x = 12.345;
printf(“%d”,x);
(2)
int a,b;
scanf(“%d,%d”,a,b);
(3)
float x,y;
scanf(“%d,%d”,&x,&y);
[解答]
(1) 第一行用浮点数12.345初始化整型变量x会导致数据丢失,应改为:
float x = 12.345;
printf(“%f”,x);


相关主题
文本预览
相关文档 最新文档