试卷详情
-
字符串(二)
-
[填空题]给定程序中,函数fun( )的功能是将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为def35adh3kjsdf7,执行结果为defadhkjsdf3537。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
void fun(char *s)
int i,j=0,k=0;char t1[80],t2[80];
for(i=0;s[i]!=’/0’;i++)
if(s[i]>=’0’0&&s[i]<=’9’)
/**********found**********/
t2[j]=s[i]; (1) ;
else t1[k++]=s[i];
t2[j]=0;t1[k]=0;
/**********found**********/
for(i=0;i<k;i++) (2) ;
/**********found**********/
for(i=0;i< (3) ;i++)s[k+i]=t2[i];
main( )
char s[80]="ba3a54j7sd567sdffs";
printf("/nThe original string is:%s/n",s);
fun(s);
printf("/nThe result is:%s/n",s);
-
[简答题]给定程序MODI1.C中函数fun( )的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指由空格隔开的字符串)。
例如,若输入”I am a student to take the examination.”,则应输出”I aM A studenT tO takE thE examination.”。
请修改程序中的错误之处,使它能得出正确的结果。
注意:不要改动main( )函数,不得删行,也不得更改程序的结构。
#include<ctype.h>
#include<stdio.h>
#include<string.h>
void fun(char *p)
int k=0;
for(; *p;p++)
if(k)
/**********found**********/
if(p==’’)
k=0;
/**********found**********/
*(p)=toupper(*(p-1))
else
k=1;
main( )
char chrstr[64];
int d;
printf("/nPlease enter an English sentence within 63 letters:");
gets(chrstr);
d=strlen(chrstr);
chrstr[d]=’’;
chrstr[d+1]=0;
printf("/n/nBefore changing:/n %s",chrstr);
fun(chrstr);
printf("/nAfter changing:/n%s",chrstr);
-
[简答题]给定程序MODI1.C中函数fun( )的功能是:求出s所指字符串中最后一次出现t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。
例如,当字符串中的内容为”abcdabfabcdx”,t中的内容为”ab”时,输出结果应是abcdx。当字符串中的内容为”abcdabfabcdx”,t中的内容为”abd”时,则程序输出未找到信息not be found!。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main( )函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
#include <string.h>
char *fun(char *s, char *t)
char *p, *r, *a;
/**********found**********/
a=Null;
while (*s)
p=s;r=t;
while (*r)
/**********found**********/
if (r==p)
r++;p++;
else break;
if (*r==’/0’)a=s;
s++;
return a;
main( )
char s[100], t[100], *p;
printf("/nPlease enter string S:"); scanf(%s",s);
printf("/nPlease enter substring t:"); scanf("%s",t);
p=fun(s,t);
if(p) printf(/nThe result is:%sha",p);
else printf("/nNot found !/a");
-
[填空题]给定程序中,函数fun( )的功能是求ss所指字符数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符数组中共有M个字符串,且串长<N。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
#include<string.h>
#define M 5
#define N 20
int fun(char(*ss)[N],int *n)
int i,k=0,len=N;
/**********found**********/
for(i=0;i< (1) ;i++)
len=strlen(ss[i]);
if(i==0)*n=len;
/**********found**********/
if(len (2) *n)
*n=len;
k=i;
/**********found**********/
return (3) ;
main( )
char ss[M][N]="shanghai",
"guangzhou","beijing","tianjing","chongqing";
int n,k,i;
printf("/nThe original strings are:/n");
for(i=0;i<M;i++)puts(ss[i]);
k=fun(ss,&n);
printf("/nThe length of shortest string is:%d/n",n);
printf("/nThe shortest string is:%s/n",ss[k]);
-
[填空题]给定程序中,函数fun( )的功能是统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符串为abcdef35adgh3kjsdf7,输出结果为4。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
void fun(char *s,int *t)
int i,n;
n=0;
/**********found**********/
for(i=0; (1) !=0;i++)
/**********found**********/
if(s[i]>=’0’&&s[i]<= (2) )n++;
/**********found**********/
(3) ;
main( )
char s[80]="abcdef35adgh3kjsdf7";
int t;
printf("/nThe original string is:%s/n",s);
fun(s,&t);
printf("/nThe result is:%d/n",t);
-
[填空题]给定程序中,函数fun( )的功能是在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为def35adh3kjsdf7,执行结果为def3*5*adh3*kjsdf7*。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
void fun(char *s)
int i,j,n;
for(i=0;s[i]!=’/0’;i++)
/**********found**********/
if(s[i]>=’0’ (1) s[i]<=’9’)
n=0;
/**********found**********/
while(s[i+1+n]!= (2) )n++;
for(j=i+n+1;j>i;j--)
/**********found**********/
s[j+1]= (3) ;
s[j+1]=’*’;
i=i+1;
main( )
char s[80]="ba3a54cd23a";
printf("/nThe original string is: %s/n",s);
fun(s);
printf("/nThe result is:%s/n",s);