使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,编写函数fun(),其功能是将s所指字符串中除了下标为奇数同时ASCⅡ值也为奇数的字符之外的其余所有字符全部删除,字符串中剩余字符所

admin2023-02-27  23

问题 使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,编写函数fun(),其功能是将s所指字符串中除了下标为奇数同时ASCⅡ值也为奇数的字符之外的其余所有字符全部删除,字符串中剩余字符所形成的一个新字符串存放在t所指的数组中。
    例如,若s所指字符串的内容为"ABCDEFGl2345",其中字符A的ASCⅡ值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCⅡ值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指数组中的内容应为"135"。
    注意:部分源程序给出如下。
    请勿改动主函数main()和其他函数中的任何内容.仅在函数fun()的花括号中填入你编写的若干语句。
  试题程序:
1 #include<conio.h>
2 #include<stdio.h>
3 #include(string.h>
4 void fun(char*s,char t[])
5 {
6
7 }
8 main()
9 {
10 char s[100],t[100];
11 printf("\nPlease enter string s:");
12 scanf("%s",s);
13 fun(s,t);
14 printf("\nThe result is:%s、n",t);
15 }

选项

答案 1 void fun(char*s,char t[]) 2 { 3 int i,j=0,n; 4 n=strlen(s); 5 for(i=0;i<n;i++) 6 if((i%2)&&(s[i]%2)) 7 { t[j++]=s[i]; /*将下标为奇数同时ASCⅡ值也为奇数的字符放入数组t中*/ 9 } 10 t[j]='\0'; /*最后加上字符串结束标志*/ 11 }

解析 本题要求保留下标为奇数同时ASCⅡ值也为奇数的字符,其余的所有字符都删除。将s字符串中,满足条件的字符存放到字符串t中。if的条件表达式为if(i%2 !=0&&s%2 !=0)。
转载请注明原文地址:https://jikaoti.com/ti/PnoiFFFM
0

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