填空题 下列给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为“def35adh3kjsdf7”,执行后结果为“def3*5*adh3*kjsdf7*”。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
void fun(char*s)
{
int i,j,n;
for(i=0;8[i]!="/0";i++)
/*********found*********/
if(s[i]>="0" 1s[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]="def35adh3kjsdf7";
printf("/nThe original string is:%s/n",s);
fun(s);
printf("/nThe result is:%s/n",s);
}
【正确答案】
【答案解析】(1)&& (2)0或"/0"
(3)s[j]或*(s+j) [解析]
填空1:if语句中的条件是判断是否为数字字符,数字字符的条件是大于等于“0”,同时小于等于“9”,因此需要使用逻辑与“&&”来连接。
填空2:while语句判断是否到达字符串的结尾,因此填入0(字符串结束标识"/0")。
填空3:for语句使数字后的字符全都向后移一个单位,因此要使s[j+1]=s[j];。