填空2:将字符串中的数字字符\到\的个数都保存在数组bb[10]中。*p-'0'实现将数字字符转换成对应的数字。
填空3:由于奇数数字字符的个数存于bb[1]、bb[3]、bb[5]、bb[7]、bb[9]中,所以for循环的目的是将这些元素分别赋给num[0]、num[1]、num[2]、num[3]、num[4]。 7、
#include
int x,y,z,t; system(\
printf(\ scanf(\ if(【1】) {
t=x; x=y; y=t;
}/*交换x,y的值*/ if(【2】) {
t=z; z=x; x=t;
}/*交换x,z的值*/ if(【3】) {
t=y; y=z; z=t;
}/*交换z,y的值*/
printf(\
printf(\}
【参考答案】
31
(1) x>y (2) x>z (3) y>z 【解题思路】
填空1:由最后的输出函数printf()可以推测,变量x中存放最小的数,变量y中存放中间的数,变量z中存放最大的数。如果x>y,则将两数进行交换。 填空2:如果x>z,则将两数进行交换。 填空3:如果y>z,则将两数进行交换。 8、 9、
程序改错题: 1、
#include
/*************found**************/ for(i=2;i /*************found**************/ y-=1/(i*i); return(y); } void main() {int n=5; system(\ printf(\} 【参考答案】 (1)for(i=2;i<=m; i++) 32 (2)y-=1.0/(i*i); 【考点分析】 本题考查:for循环语句的循环条件;变量数据类型的强制转换。 【解题思路】 该题是一道简单的计算题,循环条件for(i=2;i #include int fun(int n, int *a) /*************found**************/ { int i,j,k,sum; sum=0; for(k=3,i=0;i /*************found**************/ if(sum%4=2) a[j++]=sum; } /*************found**************/ return j; } void main() {int a[N],d,n,i; printf(\scanf(\ d=fun(n,a); printf(\ for(i=0;i 【参考答案】 (1)int i,j=0,k,sum; (2)if(sum%4==2) (3)return j++; 【考点分析】 本题考查:变量初始化;if语句条件表达式,区别\=\和\==\;return语句完成函数值的 33 返回。 【解题思路】 (1)变量j用于控制数组下标,使用前应初始化为0。 (2)这里混淆了\==\与\=\区别,\==\是比较运算符,\=\是赋值运算符。 (3)因为数组的下标值是从0开始的,所以要返回数组元素的个数时应将下标值加1。 3、 #include int fun(int *s, int n) { int i,j,k,a,b,c; j=0; for(i=100; i /*************found**************/ k=n; a=k; k/=10; /*************found**************/ b=k/10; c=k/10; if(a==b && a==c) s[j++]=i; } return j; } void main() { int a[N], n,num=0, i; do { printf(\ scanf(\ } while(n > 1000); num= fun(a,n); 34 printf(\ for(i=0; i 【参考答案】 (1)k=i; (2)b=k; 【解题思路】 (1)i是当前要被判断的数,因为i是循环变量,所以将i的值赋给k再进行运算。 (2)b是存放十位上的数,但前面已经除以了一个10,即原数的十位已经变成了个位,所以这里用求余就可以了。 4、 #include double result=1.0; while(n>1&&n<170) /*************found**************/ result*=--n; /*************found**************/ return; } void main() {int n; system(\ printf(\ scanf(\ printf(\} 【参考答案】 (1)result*=n--; (2)return result; 【解题思路】 该题采用循环语句计算n的阶乘。当n大于1且小于170时,令result与n相乘,同时n自动减1,循环至n=2(n=1时无须相乘)。最后将阶乘的积result返回给主调函数。 35