三、程序填空
1、下面程序的功能是:由键盘输入字符,当输入字符$时结束,统计并打印所输入字符中空格及字符0的个数。请填空补充完整。
#include <stdio.h>
int main( ) {
int c, space=0, zero=0;
while( ____________________________ ) {
switch(c) {
case __________ :
_______________________;
case ' ':
space++;
}
}
printf("space:%d\tzero:%d\n ", space, zero);
}
2、若直接使用"=="判断两个浮点数相等,可能会因为精度问题得到错误结果。下面的程序通过一个函数Equal( )设置精度10-5,完成比较单精度数近似相等的操作,请填空补充完整。
#include<stdio.h>
____________________________________________
____________________________________________
int main( ) {
printf("%d\t", 110. ==100*1.1); /* 结果显示0,意味着不相等 */
printf("%d\n", Equal(110., 100*1.1) ); /* 结果显示1,意味着近似相等 */
return 0;
}
int Equal(float a, float b) {
const float precision = ___________________;
if( ____________________________________________ ) return 1;
return 0;
}
3、“哥德巴赫猜想”是“任何大于4的偶数可以写为两个奇素数之和”,例如8=3+5, 16=5+11。下面程序的功能是:由键盘输入一个大于4的偶数,验证哥德巴赫猜想,请填空补充完整(3空,共6分)
#include<stdio.h>
#include<math.h>
int IsPrime(int);
int main( ){
int n, i;
/* 若输入的数不是偶数或者不大于2则重新输入 */
do{
printf("\n请输入一个大于4的偶数:");
scanf("%d",&n);
}while (n%2 || n<=4 );
for(i=2; i<=n/2; i++)
if( __________________________________________ ) {
printf("%d=%d+%d", n, i, n-i);
break;
}
return 0;
}
int IsPrime(int n) { // 判断n是否为素数
int i;
if(n<=2 || n % 2 == 0) return 0;
for(__________________________)
if( __________________ ) return 0;
return 1;
}
相关分类