问答题 给定程序中,函数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】 !1=0;i++) /*********found*********/ if(s[i]>='0'&&s[i]<= 【2】 )n ++; /*********found*********/ 【3】 ; } main() { char s[80]="abcdef35adgh3kjsdf7"; 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条件中不会出现=(赋值号)。