使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是判断形参s所指字符串是否是回文(palindrome),若是,函数返回值为1;若不是,函数返回值为0。回文

admin2023-02-27  24

问题 使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun()的功能是判断形参s所指字符串是否是回文(palindrome),若是,函数返回值为1;若不是,函数返回值为0。回文是正读和反读都一样的字符串(不区分大小写字母)。
    例如,LEVEL和Level是回文,而LEVLEV不是回文。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:部分源程序在文件blank1.c中。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
1 #include<stdio.h>
2 #include<string.h>
3 #include<ctype.h>
4 int fun(char*s)
5 (char*lp,*rp;
6  /*********found*********/
7 lp=<u>【1】</u>;
8 rp=s+strlen(s)-1;
9 while((toupper(*lp)==toupper(*rip))&&(lp<rp)){
10  /*********found*********/
11  lp++;rp<u>【2】</u>;}
12  /*********found*********/
13 if(ip<rp)<u>【3】</u>;
14 else return 1;
15 }
16 main()
17 {char s[81];
18 printf("Enter a string:");
19  scanf("%s",s);
20 if(fun(s))
21    printf("\n\"%s\"is a Palindrome.\n\n",s);
22  else
23    printf ("\n\"%s、"isn’t a Palindrome.\n\n",s);
24 }

选项

答案(1)s (2) -- (3)retum 0

解析 填空1:本题判断字符串是否是回文,需要比较字符串的首尾字符是否相等,若相等再比较第2个字符与倒数第2个字符是否相等。以此类推,直到前后字符都相等,则为回文。指针变量lp指向字符串s的首字符,指针变量rp指向字符串s的最后一个字符。故空1处应该填s。
    填空2:while循环中需要比较字符串前半部分和后半部分的每个字符,这时需要移动指针变量,lp++,rp --。故空2处应该填 --。
    填空3:循环结束,如果指针lp大于等于指针rp,则表示字符串是回文,否则不是。如果字符串是回文,函数返回1,否则返回0。故空3处应该填0。  
转载请注明原文地址:https://kaotiyun.com/show/bx0D777K
0

相关试题推荐
最新回复(0)