问答题
给定程序中,函数fun的功能是:
统计形参s所指的字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。
例如,若形参s所指的字符串为“abcdef35adgh3kjsdf7”,则输出结果为4。
请在程序的下画线处填入正确内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
void fun(char*s,int*t)
{ int i,n;
n=0;
/*********found*********/
for(i=0;
【1】
!=0;i++)
/*********found*********/
if(s[i] >='0'&&s[i] <
【2】
)
n++;
/*********found*********/
【3】
;
}
main()
{char s[80]="abcdef35adih3kjsdf7";
int t;
printf("/nThe original
string is:%s/n",s);
fun(s,&t);
printf("/nThe result is:%d/n",t);
}
【正确答案】正确答案:(1)s[i] (2)'9' (3)*t=n
【答案解析】解析:本题考查:for循环语句;if语句条件表达式;指针变量。 填空1:通过for循环语句来判断是否到字符型结尾,变量i用来存放字符型数组下标,则应填入s [i]。 填空2:题目要求判断数字字符,所以此处应填入‘9’。 填空3:将数字字符个数存入变量t中,此处需注意变量t是指针变量。 if语句的条件表达式一般会考查三方面的内容: (1)条件判断,即 >与 >=、 < 与 < =、==与!=的区别,需要仔细分析题干的意思,确定条件表达式的内容。 (2)逻辑判断,即&&(逻辑与)与||(逻辑或)的区别,需要根据题干确定if条件中若干个条件表达式的并存关系。 (3)=(赋值号)与==(等于号)的区别,注意在if条件中不会出现=(赋值号)。