给定程序MODI1.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。  例如

题目
问答题
给定程序MODI1.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。  例如,当s所指字符串为:“ABCD”时,则t所指字符串中的内容应为:“ABCDDCBA”。请改正程序中的错误,使它能得出正确的结果。  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!  给定源程序:#include #include /*********found*********/void fun(char s,char t){ int i,d; d=strlen(s); for(i=0;i
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

请编写函数fun(),其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。

例如,当s所指字符串中的内容为ABCDEFGHIJK,则在t所指数组中的内容应是BDFHJ。

注意:部分源程序给出如下。

请勿改动主函数main口其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include<conio. h>

include<stdio .h>

include<string.h>

void fun(char *s,char t[])

{

}

main ()

char s[l00] ,t[l00];

clrscr ();

printf("%nPlease enter string S: ");

scanf("%s ",s);

fun(s,t);

prlntf("\nThe result is:%s\n ",t);

}


正确答案:void fun(char *schar t[]) { int i j=0k=strlen(s); /*k为字符串的长度*/ for (i=l; ik; i=i+2) /*将s所指字符串中下标为奇数的字符存入t所指字符串中*/ t [j++]=s [ii; t[j]='\0'; /*在字符申最后加上结束标志*/ }
void fun(char *s,char t[]) { int i, j=0,k=strlen(s); /*k为字符串的长度*/ for (i=l; ik; i=i+2) /*将s所指字符串中下标为奇数的字符存入t所指字符串中*/ t [j++]=s [ii; t[j]='\0'; /*在字符申最后加上结束标志*/ } 解析:本题使用了一种泳远是奇数的循环方法,即for(i=1; ik;i=i+2),因为开始时的值为1,当i+2循环时,此值永远是奇数。

第2题:

有以下函数 int fun(char *s) { char *t=s; while(*t++); return(t-s); } 该函数的功能是

A.比较两个字符串的大小

B.计算s所指字符串占用内存字节的个数

C.计算s所指字符串的长度

D.将s所指字符串复制到字符串t中


正确答案:B
解析:循环语句while(*t++);执行完时,指针变量t就指向了字符中结束符‘\o’之后的位置,所以语句return(t-s);返回的就是字符串s所用内存的字节个数。

第3题:

有以下函数

int fun(char *s)

{ char *t=s;

while(*t++);

return(t-s);

}

该函数的功能是

A) 比较两个字符 串 的大小

B) 计算 s 所指字符串占用内存字节的个数

C) 计算 s 所指字符串的长度

D) 将 s 所指字符串复制到字符串 t 中


正确答案:B

第4题:

请编写函数fun(),该函数的功能是:将s所指字符串中 ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为ABCDEFGl2345,其中字符B的ASCⅡ码值为偶数、…、字符2的ASCⅡ码值为偶数、…,都应当删除,其他依次类推。最后t所指的数组中的内容应是ACEGl35。

注定:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序;

include <stdio. h>

include<string.h>

include<conio. h>

void fun(char *s, char t[])

{

}

main ( )

{

char s[100],t [100];

clrscr ();

printf (,\nPlease enter string S: ");

scanf ("%s", s);

fun(s,t);

printf ("\nThe result is :%s\n",t);

}


正确答案:void fun(char *s char t[]) { int i=0; for (;*s!='\0' ;s++) /*找出ASCII值为奇数的字符依次存入数组t中*/ if (*s%2==1) t [i++] =*s; t[i]='\0'; /*在字符串的末尾口上串结束符*/ }
void fun(char *s, char t[]) { int i=0; for (;*s!='\0' ;s++) /*找出ASCII值为奇数的字符依次存入数组t中*/ if (*s%2==1) t [i++] =*s; t[i]='\0'; /*在字符串的末尾口上串结束符*/ } 解析:要删除ASCH值为偶数的字符,也就是要留下ASCH值为奇数的字符,由于最终是要求求出剩余字符(BPASCⅡ值为奇数)形成的新串,所以本题程序的算法是从原字符串的头到尾扫描并找出ASCⅡ值为奇数的字符依次存入数组冲。此外,还要注意数组t的下标变化和下标的初值(初值必须为0,即i=0),t[i++]州的作用是先使用t[i]然后再使自增1。任何字符串的末尾都要有串结束符。这种算法在很多题中都要用到,学习者可以举一反三地找一些其他相关习题练习一下。

第5题:

请编写函数fun(),其功能是:将s所指字符串中除了下标为偶数、同时ASCII码值为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为ABCDEFG12345,其中字符B的ASCII码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASCII码值为奇数,所在数组中的下标为偶数,因此不应当删除,其他依次类推。最后t所指的数组中的内容应是ACEG。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include<conio.h>

include<stdio.h>

include<string.h)

void fun(char *s, char t[])

{

}

main()

{

char s[100],t[100];

clrscr();

printf("\nPlease enter string s:");

scanf("%s",s);

fun(s,t);

printf("\nThe result is: %s\n",t);

}


正确答案:void fun(char *s/char t[]) {int ij=0; for(i=0;s[i]!='\0';i++) {if(i%2==0 && s[i]%2!=0) t[j++]=s[i]; } /*将下标为偶数同时ASCII码值为奇数的字符放入数组t中*/ t[j]='\0'; /*在字符串最后加上结束标志位*/ }
void fun(char *s/char t[]) {int i,j=0; for(i=0;s[i]!='\0';i++) {if(i%2==0 && s[i]%2!=0) t[j++]=s[i]; } /*将下标为偶数同时ASCII码值为奇数的字符放入数组t中*/ t[j]='\0'; /*在字符串最后加上结束标志位*/ } 解析:本题要求除了下标为偶数同时ASCII码值为奇数的字符之外,其他字符都删除。即要留下下标为偶数同时ASCII码值为奇数的字符。所以,在if的条件语句中应使用if(i%2==0&&s[i]%2!=0)。

第6题:

请编写函数fun(),其功能是将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除。字符串中剩余的字符所形成的一个新的字符串放在t所指的数组中。

例如:s所指字符串中的内容为ABCDEFG12345,其中字符A,的ASCII码值虽为奇数,但元素所在的下标为偶数,因此必需删除;字符1的ASCII码值为奇数,所在数组中的下标也为奇数,不删除,最后t所指的数组中的内容应是135。

请勿修改主函数main和其他函数中的任何内容,仅在函数su的花括号中填写若干语句。

文件test 27_2.cpp的内容如下;

include <conio.h>

include <stdio.h>

include <iostream.h>

include <string.h>

void fun(char *s,char t[ ])

{

}

void main ( )

{

char s[100],t[100];

cout<<"Please enter string S: "<<end1;

gets(s);

fun(s, t);

puts(t);

}


正确答案:void fun(char *schar t[ ]) { int ij=0n; n=strlen(s); for(i=0;in;i++) if(i%2!=0&&s[i]%2!=0) { t[j]=s[i];j++;} t[j]='\0'; }
void fun(char *s,char t[ ]) { int i,j=0,n; n=strlen(s); for(i=0;in;i++) if(i%2!=0&&s[i]%2!=0) { t[j]=s[i];j++;} t[j]='\0'; } 解析:在解答本题时,首先要清楚一点:那就是在字符参与数值运算时,用的是其ASCII码值来进行计算。另外的一个考查点是判断某数是奇数的方法,即判断该数与2的余数是否为0。

第7题:

请编写函数fun(),其功能是:将s所指字符串中下标为奇数的字符删除,串中剩余字符形成的新串放在t所指数组中。

例如,当s所指字符串中的内容为siegAHdied,则在t所指数组中的内容应是seAde。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include<conio.h>

include<stdio.h>

include<string.h>

void fun(char*S,char t[])

{

}

main()

{

char s[100],t[100];

clrscr();

printf("\nPlease enter string s:");

scanf("%S",S);

fun(S,t);

printf("\nThe result is:%s\n",t);

}


正确答案:void fun (char *Schar t[]) { int ij=0k=strlen(s); /*k为字符串的长度*/ for(i=0;ik;i=i+2) /*将s所指字符串中下标为偶数的字符存入t所指字符串中*/ t[j++]=s[i]; t[j]='\0'; /*在字符串最后加上结束标志*/ }
void fun (char *S,char t[]) { int i,j=0,k=strlen(s); /*k为字符串的长度*/ for(i=0;ik;i=i+2) /*将s所指字符串中下标为偶数的字符存入t所指字符串中*/ t[j++]=s[i]; t[j]='\0'; /*在字符串最后加上结束标志*/ } 解析:本题使用了一种i永远是偶数的循环方法,即for(i=0;ik;i=i+2),因为开始时i的值为0,当i+2循环时,此值永远是偶数。

第8题:

有以下函数 int fun(char *s) {char *t=s; while(*t++); return(t-s); } 该函数的功能是( )。

A.比较两个字符的大小

B.计算s所指字符串占用内存字节的个数

C.计算s所指字符串的长度

D.将s所指字符串复制到字符串t中


正确答案:B

第9题:

请编写函数fun(),其功能是:将s所指字符串中除了下标为奇数、同时ASCII值为偶数的字符外,其余的全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为edB2A4Dsdg,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为偶数,因此也应当删除:而字符2的ASCII码值为偶数,所在数组中的下标为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是d24。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include <conio.h>

include <stdio.h>

include<string, h>

void fun(char*s, char t[])

{

}

main()

{

char s[100] ,t[100];

clrscr();

printf("\nPlease enter string S: ");

scanf("%s",s);

fun(s,t);

printf("\nThe result is: %s\n",t);

}


正确答案:void fun(char*s char t[]) { int ij=0; for(i=0;s[i]!='\0';i++) if(i%2!=0&&s[i]%2==0) /*将s所指字符串下标为奇数同时ASCII值为偶数的字符放入数组t中*/ t[j++]=s[i]; t[j]='\0'; /*在字符串最后加上结束标志位*/ }
void fun(char*s, char t[]) { int i,j=0; for(i=0;s[i]!='\0';i++) if(i%2!=0&&s[i]%2==0) /*将s所指字符串下标为奇数同时ASCII值为偶数的字符放入数组t中*/ t[j++]=s[i]; t[j]='\0'; /*在字符串最后加上结束标志位*/ } 解析:本题要求除了下标为奇数同时ASCII值为偶数的字符之外,其他字符都删除。即题目要求留下下标为奇数同时 ASCII值为偶数的字符。C语言中并没有直接删除字符的算法,请大家在做题的时候注意。

第10题:

函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一含新串放在t所指的数组中。

例如,若s所指字符串中的内容为:“ABCDEFGl23456”,其中字符A的ASCII码值为奇数,因此应当删除:其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是:“246”。

注意:部分源程序存在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


正确答案:
解析:该程序功能是将字符串中除了下标为偶数、ASCII值也为偶数的字符外,其余的全都删除。解题过程利用if条件判断表达式选择符合条件的字符,然后将符合条件的字符放入指定的字符串。

更多相关问题