请教:2013年9月全国计算机等级《二级C语言程序设计》命题预测试卷一第2大题第1小题如何解答?
【题目描述】
str是一个由数字和‘,:母字符组成的字符串,由变量num传人字符串长度。请补充函数proc,该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。
例如,str="abc3de987f9621",结果为:3987621。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#define M 80
int bb[M];
int proc(char str[],int bb[],int num)
{
int i,n=0;
for(i=0;i<num;i++)
{
if(【1】)
{
bb[n]=【2】:
n++:
}
}
return 【3】 ;
}
void main
{
char str[M];
int mum=0,n,i;
printf("Enter a strin9:\n");
gets(str);
while(str[num])
num++:
n=proc(str,bb,num);
printf("\nbb=");
for(i=0;i<n;i++)
printf("%d",bb[i]);
}
【我提交的答案】:
【参考答案分析】:
【1】str[i]>='0'&&str[i]<='9 '
【2】str[i]-'0'
【3】n
【解析】题目中要求把字箱串str中的数字字符转换成数字并存放到整型数组bb中。首先应判断字符串str中每个字符是否为数字字符,因此【1】填“str[i]>=' 0 ' &&str[i]<='9'”;将每一个数字字符转化为数字放在整型数组bb中,因此【2】填“str[i]-'0'”;由函数proc可知,变量n中存放的是整型数组bb中元素的个数,最后要返回到主函数中,因此【3】填“n”。
数字字符和数字有什么区别吗,为什么还要减去一个48