使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处

admin2023-02-27  7

问题 使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。
    例如,若s所指字符串为"baacda",c中的字符为a,执行后s所指字符串为"baaaacdaa"。
    请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
    注意:部分源程序给出如下。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
1 #include<stdio.h>
2 void fun(char*s,char c)
3 {  int i,j,n;
4  /*********found*********/
5  for(i=0;s!=<u>【1】</u>;i++)
6    if(s==c)
7    {
8  /*********found*********/
9    n=<u>【2】</u>;
10    while(s[i+1+n]!=’\0’)
11    n++;
12    for(j=i+n+1; j>i;    j--)
13    s[j+1]=s[j];
14  /*********found*********/
15    s[j+1]=<u>【3】</u>;
16    i=i+1;
17    }
18 }
19 main()
20 {  char s[80]="baacda",c;
21    printf("\nThe string:%s\n",s);
22    printf(%nInput a character:");
23    scanf("%c",&c);
24    fun(s,c);
25    printf("\nThe result is:%s\n",s);
26 }

选项

答案(1)'\0’ (2)0 (3)c

解析 填空1:for语句的循环条件是判断是否到达字符串结尾,即当前字符是否为"\0"。故空1处应该填'\0'。
    填空2:当出现字符相等后,while语句用以确定后续字符串的长度,所以变量n赋初值为0。故空2处应该填0。
    填空3:题目要求如果找到与参数c相同的字符,就在后面插入一个相同的字符,且找到后应该给数组元素赋值,通过循环将相等字符后所有字符后移一位,s[j+1]用来赋值相等字符c。故空3处应该填c。  
转载请注明原文地址:https://kaotiyun.com/show/IP0D777K
0

最新回复(0)