问题 问答题

下列给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为“def35adh3kisdf7”,执行后结果为“def3*5*adh3*klsdf7*”。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<sedio.h>
void fun(char*s)

int i,j,n;
for(i=0;s[i]=’\0’;i++)
/********found********/
if(s[i]>=’0’ (1) s[i](=’9’)

n=0;
/********found********/
while(S[i+1+n]!* (2) )
n++;
for(j=i+n+1;j>i;j--)
/********found********/
s[j+1]= (3) ;
s[j+1]=’*’
i=i+1;


main()

char s[60]="def35adh3kisdf7";
printf("\nThe original string is:%s\n",s);
fun(s);
printf(\nThe result is:%s\n",s);

答案

参考答案:&& (2)0或’\0’ (3)s[j]或*(s+j)

解析:
本题关键字有:if语句;逻辑运算符;while循环语句;字符串结束标识符。在字符串某位置插入字符将该位置上及其后面的字符向后移动,然后进行插入操作。
[微分析]
填空1:if语句判断是否为数字字符,数字字符大于等于0,且小于等于9,所以使用逻辑与“&&”来连接。
填空2:while语句判断字符串是否结束,因此填入O(字符串结束标识‘\O’)。
填空3:for语句使数字后的字符向后移一个单位,要使s[j+l]=s[j];因此填入s[j]。

单项选择题
单项选择题