使用 Vc++2010、开考生文件夹下Prog1中的解决方案。此解决方案的顶目中包含一个源程序文件 Progl.c。在此程序中,编写函数 fun ,其功能是:将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在晰指的数组中。 例如,若s所指字符串的内容为:‘ABCDEFG12345’,其中字符A的ASCII码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的 ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指数组中的内容应为: "135"。 #include #include void fun(char *s, char t[]) { } void main() { char s[100], t[100];void NONO (); printf("\nPlease enter string S:"); scanf("%s", s); fun(s, t); printf("\nThe result is: %s\n", t); NONO(); } void NONO () {/* 本À?函¡¥数ºy用®?于®¨²打䨰开a文?件t,ê?输º?入¨?数ºy据Y,ê?调Ì¡Â用®?函¡¥数ºy,ê?输º?出?数ºy据Y,ê?关?闭À?文?件t。¡ê */ char s[100], t[100] ; FILE *rf, *wf ; int i ; rf = fopen("in.dat","r") ; wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%s", s) ; fun(s, t) ; fprintf(wf, "%s\n", t) ; } fclose(rf) ; fclose(wf) ; }
举一反三
- 程序填空: 以下程序中,函数fun的功能是:将数组s中的所有素数复制到数组t中。 例如:当数组s中值为:21,17,9,59,77,67,49,99,35,83时,则数组t中的值应为:17,59,67,83。 #include void fun(int s[],int t[]) { int i,j,k,y=0; for(i=0;i<=9;i++) { k=s[i]/2; /************found************/ for(j= ____1____ ; j<=k; j++) if(s[i]%j==0) break; /************found************/ if(j ____2____ k) { /************found************/ t[ ____3____ ]=s[i]; } } t[y]=0; } main() { int i,s[10]={21,17,9,59,77,67,49,99,35,83}, t[10]; fun(s, t); for(i=0;t[i]!=0;i++)printf("%d ", t[i]); printf(" "); }
- 下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为7654321时,t中的数为7531。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构! #include <stdio.h> /* * * * * * * * * * found* * * * * * * * * * / void fun(long s, long t) { longsl=10; *t=s% 10; while(s>0) {s = s/100; *t = s%10 * sl + *t; /* * * * * * * * * * found* * * * * * * * * * / sl=sl*100; } } main( ) { long s, t; printf(" \nPlease enter s:"); scanf("%ld", &s); fun(s, &t); printf("The result is: %ld\n", t); }
- main() { char s[ ]="father"; int i,j=0; for(i=1;i<6;i++) if(s[j]>s[i]) j=i; printf("%c,%d\n",s[j],j+1); } A、 输出字符数组s中ASCII码最大的字符及位置 B、 输出字符数组s中ASCII码最小的字符及位置 C、 输出字符数组s中ASCII码最大的字符及字符串的长度 D、 输出字符数组s中ASCII码最小的字符及字符串的长度
- 程序填空:题目要求:函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为87654321时,t中的数为7531。void fun (long s, long *t){ long s1=10; ______ ; while(s>0) { s=s/100; *t=s%10*s1+*t; ______ ; }}
- 填空实现函数的功能:将在字符串s中出现、而未在字符串t中出现的字符形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复字符。例如:当s="112345",t="2467"时,u中的字符串为"1135"。voidfun(char*s,char*t,char*u){inti,j,sl=strlen(s),tl=strlen(t);for(i=0;i=tl)*u++=______;}______='\0';}