华南农业大学C语言程序设计实验指导书参考答案 下载本文

[提示]注意公式中的除为普通除法。 参考程序:

#include void main() { float f,c; scanf(\c=5.0/9*(f-32); printf(\}

实验4 选择结构程序设计

一、实验目的

1)了解C 语言表示逻辑的方法 以0 代表“假”,以非0 代表“真”)。 2)学会正确使用逻辑运算符和逻辑表达式。 3)熟练掌握if 语句和switch 语句。 4 )结合程序掌握一些简单的算法。

二、实验内容

[题目1120:判断点是否在圆 ]

由键盘输入一个点的坐标, 要求编程判断这个点是否在单位圆上,点在圆上输出Y, 不在圆上输出

N 。使用小数点后3 位精度进行判断。

[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入] 0.707,0.707↙ 0.5,0.5↙

[正确输出] [正确输出] Y N

[提示] 1)平面上的点与圆的关系分为在圆内、在圆上、在圆外三种,本题要求判断是否在圆上;2)

判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度 (本题为0.001)的方法实现。

参考程序:

#include \#include \void main() { float a,b;

scanf(\if(fabs(a*a+b*b-1)<1e-3) printf(\

else printf(\}

[题目1017:求数的位数]

由键盘输入一个不多于9 位的正整数,要求输出它是几位数。

[第一组自测数据] [第二组自测数据]

[键盘输入] [键盘输入] 349213↙ 10000↙

[正确输出] [正确输出] 6 5 [提示]划定一位数、二位数、?、九位数的范围, 后用if ?else if ?else 语句实现判断。

参考程序:

main()

{ int n,place; scanf(\

if(n>99999999) place=9; else if(n>9999999) place=8; else if(n>999999) place=7; else if(n>99999) place=6; else if(n>9999) place=5; else if(n>999) place=4; else if(n>99) place=3; else if(n>9) place=2; else place=1;

printf(\}

[题目1018:数的排序]

由键盘输入三个整数a、b、c,按从小到大的顺序输出这三个数。

[第一组自测数据] [第二组自测数据]

[键盘输入] [键盘输入]

65,45,90↙ 9,6,3↙ [正确输出] [正确输出]

45,65,90 3,6,9 参考程序:

#include main()

{ int a,b,c,t;

scanf(\if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf(\}

[题目1016:字符变换]

由键盘输入5 个字符,将其中的大写字母变成小写,其它类型的字符不变,并按输入顺序逐个输出。

[第一组自测数据] [第二组自测数据]

[键盘输入] [键盘输入]

ApPLe↙ a+B=5 ↙

[正确输出] [正确输出]

apple a+b=5 [提示]下面代码实现由键盘读入一个字符,并按题意处理后输出 char a; a=getchar();

if(a>='A' && a<='Z') a=a+32; putchar(a);

现在,题目要求处理5 个字符,怎么做呢?请自己思考?? 参考程序:

#include main()

{ char a,b,c,d,e;

scanf(\if(a<='Z'&&a>='A') a=a+32; if(b<='Z'&&b>='A') b=b+32; if(c<='Z'&&c>='A') c=c+32; if(d<='Z'&&d>='A') d=d+32; if(e<='Z'&&e>='A') e=e+32;

printf(\}

[题目1019:数的整除]

由键盘输入5 个整数,逐个判断它们能否被27 整除,能的输出“YES”,不能的输出“NO” 注意,

输出时,一个判断结果占一行,5 个数的判断共占5 行)。

[第一组自测数据] [第二组自测数据]

[键盘输入] [键盘输入] 8 27 17577 325 54↙ 8 27 17577 325 54↙

[正确输出] [正确输出] NO NO YES YES YES YES NO NO YES YES [提示]整除即除得余数为0 参考程序:

#include \main()

{ int a,b,c,d,e;

scanf(\if(a'==0) printf(\if(b'==0) printf(\if(c'==0) printf(\if(d'==0) printf(\if(e'==0) printf(\}

#include \void main() {int a,i;

for(i=0;i<6;i++) {scanf(\if(a'==0) printf(\else

printf(\printf(\

[题目1020:正负奇偶判断] 由键盘输入非零整数x,判断该数正负,正数输出positive,负数输出negative,接着判断该数的奇

偶性,奇数输出odd,偶数输出even。

[第一组自测数据] negative [键盘输入] odd

-43 ↙ [第二组自测数据]

[正确输出] [键盘输入] 98↙