计算机二级题目之字符串练习学习

1.统计字符串s在字符串str中出现的次数

#include <conio.h>
#include <stdio.h>
#include <string.h>
int MySearch( char* str, char* s )
{
   char* p;
   int n =0;
   for( ; *str; )
/***************found***************/
    if( ( p = strstr( str, s ) ) != ___1___ )
      { n++; str=p+1; }
    else
/***************found***************/
       ___2___;
/***************found***************/
    return( ___3___ );
}
main()
{
   char str1[81], str2[21];
   printf("\nPlease enter str1 :");
   gets(str1);
   printf("\nplease enter str2 :");
   gets(str2);
   printf( "\n\n\"%s\" are(is) appeared in str1 %d times\n", str2, MySearch(str1, str2));
}

2. 删除字符串 str 中所有 c 字符,并返回所删字符的个数。

#include <conio.h>
#include <stdio.h>
int MyDelete( char* str, char c )
{
   int i, j=0, k=0;
   for( i = 0; str[i]; i++ )
      if( str[i] != c )
/***************found**************/      
      {  str[ j ]= str[i];  ___1___;   }
      else
        k++;
/***************found**************/
   str[j]=___2___ ;
/***************found**************/
   return( ___3___ );
}
main()
{
   char string[81], x;
   printf("\nPlease enter a string:\n");
   gets(string);
   printf("\nPlease enter a character: ");
   scanf("%c", &x );
   printf( "\n\nAfter deleting %d '%c'(s), the string becomes:\n%s\n",MyDelete(string, x), x, string);
}

3.将未在字符串s中出现而在字符串t中出现的字符形成一个新的字符串放在u中,u中字符按字符串t中字符顺序排列 

#include <stdio.h>
#include <string.h>

void fun (char  *s, char  *t, char *u)
{   int   i, j, sl, tl, k, ul=0;
    sl = strlen(s);    tl = strlen(t);
    for (i=0; i<tl; i++)
    {   for (j=0; j<sl; j++)
            if (t[i] == s[j])  break;
        if (j>=sl)
        {   for (k=0; k<ul; k++)
/************found************/
                if (t[i] == u[k]) ___1___ ;
            if (k>=ul)
/************found************/
               u[ul++] = ___2___ ;
        }
    }
/************found************/
    ___3___='\0';
}

main()
{   char   s[100], t[100], u[100];
    printf("\nPlease enter string s:"); scanf("%s", s);
    printf("\nPlease enter string t:"); scanf("%s", t);
    fun(s, t, u);
    printf("The result is: %s\n", u);
}

 4.将在字符串S中下标为奇数位置上的字符,紧随其后重复出现一次,放在一个新串T中,T中字符按原字符串中字符的顺序排列.(注意0为偶数)

#include <stdio.h>
#include <string.h>

void fun (char  *s, char  *t)
{   int  i, j, sl;
    sl = strlen(s);
/************found************/
    if(sl%2) sl-=2; ___1___ sl--;
/************found************/
    for (i=sl, j=___2___; i>=0; i-=2)
    {  t[2*j] = s[i];
/************found************/
       t[2*j +1] = ___3___ ;
       j++;
    }
    t[2*j]='\0';
}

main()
{  char s[100], t[100];
   printf("\nPlease enter string s:"); scanf("%s", s);
   fun(s, t);
   printf("The result is: %s\n", t);
}

 5.给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序

#include    <stdio.h>
#include    <string.h>
#define    M    5
#define    N    20
void fun(char  (*ss)[N])
{  int  i, j, k=0, n, m, len;
   for(i=0; i<M; i++)
   {  len=strlen(ss[i]);
      if(i==0) n=len;
      if(len>n) {
/**********found**********/
         n=len;    ___1___=i;
      }
   }
   for(i=0; i<M; i++)
    if (i!=k)
    { m=n;
      len=strlen(ss[i]);
/**********found**********/
      for(j=___2___; j>=0; j--)
         ss[i][m--]=ss[i][j];
      for(j=0; j<n-len; j++)
/**********found**********/
          ___3___='*';
    }
}
main()
{  char  ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};
   int  i;
   printf("\nThe original strings are :\n");
   for(i=0; i<M; i++)  printf("%s\n",ss[i]);
   printf("\n");
   fun(ss);
   printf("\nThe result:\n");
   for(i=0; i<M; i++)  printf("%s\n",ss[i]);
}

6.

 给定程序MODI1.C中函数fun()的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指由空格隔开的字符串)。

#include <conio.h>
#include <ctype.h>
#include <stdio.h>
void fun( char *p )
{
  int k = 0;
  for( ; *p; p++ )
     if( k )
     {
/**********found***********/
       if( p == ' ' )
       {
         k  = 0;
/**********found***********/
         * (p-1) = toupper( *( p - 1 ) )
       }
     }
     else
       k = 1;
}
NONO( )
{
  /* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
  char  s1[81];
  FILE *rf, *wf ;

  rf = fopen("g05.in", "r") ;
  wf = fopen("g05.out", "w") ;
  fgets(s1, 80, rf) ;
  fun(s1);
  fprintf( wf,"%s", s1 );
  fclose(rf) ;
  fclose(wf) ;
}
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);
  NONO();
}


7. 求出s所指字符串中最后一次出现t所指字符串的地址。

#include  <conio.h>
#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 :  %s\n", p);
  else      printf("\nNot be found !\n" );
}

8.将 tt 所指的字符串中所有的小写字母都转换成对应的大写字母其他字符不变。

#include <conio.h>
#include <stdio.h>
#include <string.h>
char* fun( char tt[] )
{
  int i;
  for( i = 0; tt[i]; i++ )
/**********found***********/
    if(( 'a' <= tt[i] )||( tt[i] <= 'z' ) )
/**********found***********/
      tt[i] += 32;
  return( tt );
}
NONO( )
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
  char  tt[81], ch;
  FILE *rf, *wf ;

  rf = fopen("g10.in", "r") ;
  wf = fopen("g10.out", "w") ;
  fgets(tt, 80, rf) ;
  fun(tt) ;
  fprintf( wf,"%s", tt );
  fclose(rf) ;
  fclose(wf) ;
}
main( )
{
  int i;
  char tt[81];
  printf( "\nPlease enter a string: " );
  gets( tt );
  printf( "\nThe result string is:\n%s", fun( tt ) );
  NONO();
}


9.将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。
例如,字符串s中的数据为:AABBCCDDEEFF,则字符串t中的数据为:ABBCDDEFF。

#include <conio.h>
#include <stdio.h>
#include <string.h>
#define   N     80
void fun(char *s, char t[])
{  int  i, j=0;
   for(i=0; i<strlen(s); i++)
/***********found**********/
   if(i%2 && s[i]%2==0)
        t[j++]=s[i];
/***********found**********/
   t[i]='\0';
}
main()
{  char  s[N], t[N];
   printf("\nPlease enter string s : "); gets(s);
   fun(s, t);
   printf("\nThe result is : %s\n",t);
}

 

10. 给定程序中函数fun的功能是:从s所指字符串中删除所有小写字母c。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include  <stdio.h>
void  fun( char  *s )
{   int  i,j;
    for(i=j=0; s[i]!='\0'; i++)
      if(s[i]!='c')
/************found************/
	  s[j]=s[i];
/************found************/
    s[i]='\0';
}
main()
{  char  s[80];
   printf("Enter a string:       "); gets(s);
   printf("The original string:  "); puts(s);
   fun(s);
   printf("The string after deleted :  "); puts(s);printf("\n\n");
}

11.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部 删除,前面和中间的*号不删除。
例如,字符串中的内容为****A*BC*DEF *G*******,删除后,字符串中的内容应当是****A*BC*DEF*G。在编写函数时,不得使用C语 言提供的字符串函数。

#include <stdio.h>
#include <conio.h>
void  fun( char *a, char *h,char *p )
{


}
NONO()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
  FILE *in, *out ;
  int i ; char s[81], *t, *f ;
  in = fopen("in5.dat", "r")  ;
  out = fopen("out5.dat", "w") ;
  for(i = 0 ; i < 10 ; i++) {
    fscanf(in, "%s", s) ;
    t=f=s;
    while(*t)t++;
    t--;
    while(*t=='*')t--;
    while(*f=='*')f++;
    fun(s, f, t);
    fprintf(out, "%s\n", s) ;    
  }
  fclose(in) ;
  fclose(out) ;
}
main()
{  char  s[81],*t, *f;
   printf("Enter a string:\n");gets(s);
   t=f=s;
   while(*t)t++;
   t--;
   while(*t=='*')t--;
   while(*f=='*')f++;
   fun( s , f,t );
   printf("The string after deleted:\n");puts(s);
   NONO();
}

12.从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址。

#include <stdio.h>
#include <string.h>
#include <conio.h>

fun(char(*a)[81],int num,char **max)
{




}
NONO()
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
   输出数据,关闭文件。 */
  char ss[20][81],*ps;
  int n,i=0;
  FILE *rf, *wf ;

  rf = fopen("b0603.in", "r") ;
  wf = fopen("b0603.out", "w") ;
  fgets(ss[i], 81, rf);
  while(!strncmp(ss[i],"****",4)==0)
  {
     i++;
     fgets(ss[i], 81, rf);
  }
  n=i;
  fun(ss,n,&ps);
  fprintf(wf, "%s",ps);
  fclose(rf) ;
  fclose(wf) ;
}
main()
{
     char ss[10][81],*ps;
     int n,i=0;
     printf("输入若干个字符串:");
     gets(ss[i]);
     puts(ss[i]);
     while(!strcmp(ss[i],"****")==0)
     {
         i++;
         gets(ss[i]);
         puts(ss[i]);
     }
     n=i;
     fun(ss,n,&ps);
     printf("\nmax=%s\n",ps);
     NONO();
}


 

13. 将ss所指字符串中所有下标为奇数位置上的字母转换为大写

#include <conio.h>
#include <stdio.h>

void fun( char *ss )
{






}
NONO()
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
   输出数据,关闭文件。 */
   char tt[51], ch;
   FILE *rf, *wf ;
   int len, i=0 ;

   rf = fopen("b1003.in", "r") ;
   wf = fopen("b1003.out", "w") ;
   while(i < 10) {
     fgets( tt, 50, rf );
     len = strlen(tt) - 1 ;
     ch = tt[len] ;
     if(ch == '\n' || ch == 0x1a) tt[len] = 0 ;
     fun(tt);
     fprintf( wf, "%s\n", tt );
     i++ ;
   }
   fclose(rf) ;
   fclose(wf) ;
}
void main( void )
{
   char tt[51];
   printf( "\nPlease enter an character string within 50 characters:\n" );
   gets( tt );
   printf( "\n\nAfter changing, the string\n  \"%s\"", tt );
   fun(tt) ;
   printf( "\nbecomes\n  \"%s\"", tt );
   NONO();
}


 

14. 请编写函数fun,判断一个字符串是否是回文。若是回文函数返回值为1,主函数输出“YES”,否则返回值为0,主函数输出“NO”,。回文是顺读和倒读都一样的字符串。

#include <stdio.h>
#define  N  80
int fun(char *str)
{


}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
  FILE *rf, *wf ;
  int i ; char s[N] ;
  rf = fopen("bc.in", "r") ;
  wf = fopen("bc.out","w") ;
  for(i = 0 ; i < 10 ; i++) {
    fscanf(rf, "%s", s) ;
    if(fun(s)) fprintf(wf, "%s  YES\n", s) ;
    else       fprintf(wf, "%s  NO\n", s) ;
  }
  fclose(rf) ; fclose(wf) ;
}
main()
{ char  s[N] ;
  printf("Enter a string: ") ; gets(s) ;
  printf("\n\n") ; puts(s) ;
  if(fun(s)) printf("  YES\n") ;
  else       printf("  NO\n") ;
  NONO() ;
}

15.函数void fun,统计在tt所指字符串中'a'到'z' 26个小写字母各自出现的次数,并依次放在pp所指数组中

#include <conio.h>
#include <stdio.h>

void fun(char *tt, int pp[])
{





}
NONO ( )
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
  char aa[1000] ;
  int bb[26], k, n, i ;
  FILE *rf, *wf ;

  rf = fopen("bc07.in", "r") ;
  wf = fopen("bc07.out", "w") ;
  for(i = 0 ; i < 10 ; i++) {
    fscanf(rf, "%s", aa) ;
    fun(aa, bb) ;
    for ( k = 0 ; k < 26 ; k++ ) fprintf (wf, "%d ", bb[k]) ;
    fprintf(wf, "\n" ) ;
  }
  fclose(rf) ;
  fclose(wf) ;
}
main( )
{  char aa[1000] ;
   int  bb[26], k, n ;

   printf( "\nPlease enter  a char string:" ) ; scanf("%s", aa) ;
   fun(aa, bb ) ;
   for ( k = 0 ; k < 26 ; k++ ) printf ("%d ", bb[k]) ;
   printf( "\n" ) ;
   NONO ( ) ;
}

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2020 年计算机二级《 Web 程序设计》练习题及答案 一、名词解释 1、 HTM:L hyper text markup language ,超文本标记语言 2、ASP: active server pages ,活动服务器网页 3、URL: uniform resorce locator ,统一资源定位符 4、3W: world wide web ,万维网 5、CSS: cascading style sheets ,层叠式样式表 6、 IsNumeric 函数:测试自变量是否是一个数值 7、 Now函数功能:根据计算机系统设定的日期和时间返回当前的 日期和时间值 8、 Trim 函数功能:去掉字符串前后的空格 9、 Len 功能:返回字符串内字符的数目,或是存储一变量所需的 字节数 10、 msgbox() :基本输出信息框 11、 CStr 函数:将数据转换成一个字符串 12、 事件:是对网页中各种控件状态改变的一种描述。 13、 对象:浏览器中或脚本编写中用于综合描述一组功能和事件 的组合体 14、 意思为:清除所有的 session 15、 组件:是将执行某项或一组任务的代码集成为一个独立的可 调用的模块 16、 SQL: structured query language ,结构化查询语言 17、ADO:ActiveX Data Objects.ActiveX 数据对象 18、ODBC:open database connectivity ,开放式数据库连接 19、InputBox 函数:在键盘上输入数据 二、填空题 1、如果操作系统是 Windows 2000,一般需要安装 组件才 能运行ASP程序。(IIS) 2、 ASP的脚本程序是在服务器端执行的,通常脚本代码不会被别 人窥视,另外程序执行完毕后,仅仅将执行结果返回给客户端浏览器, 这样做减轻了的 负担。 (网络传输 ) 3、 ASP的脚本程序是在 行的,通常脚本代码不会被别人 窥视,另外程序执行完毕后,仅仅将执行结果返回给客户端浏览器, 这样做减轻了网络传输的负担。 (服务器端) 4、 Wet是基于 勺一种体系结构。客户机向服务器发送 请求,要求执行某项任务,而服务器执行此项任务,并向客户机返回 响应。 (C/S ( 客户机 / 服务器)) 5、 传输层也叫TCP层,主要功能是负责应用进程之间的端-端通 信,传输层定义了两种协议: TCP( 传输控制协议 ) 和 (UDP (用户数据报协议 )) 6、 传输层也叫TCP层,主要功能是负责应用进程之间的端-端通 信,传输层定义了两种协议: 和 UDP (用户数据报协议 ) (TCP( 传输控制协议 )) 7、 IP 地址是识别 Internet 网络中的主机及网络设备的标识,通 常分为网络地址和 两部分。 ( 主机地址 ) 8、 IP 地址是识别 Internet 网络中的主机及网络设备的标识,通 常分为 和主机地址两部分。 (网络地址 ) 9、 是识别 Internet 网络中的主机及网络设备的标识。 (IP 地址 ) 10、 能够直接在In ternet Explorer 浏览器中打开XML文档,更 多的是通过CSS和 式来显示XML文档。(XSL) 11、 能够直接在In ternet Explorer 浏览器中打开XML文档,更 多的是通过 和XSL方式来显示XML文档。(CSS) 12、 ASP通过后缀名为asp的文件来实现,一个ASP文件相当于 一个 文件。 (可执行) 13、 ASP通过后缀名为 的文件来实现,一个 ASP文件相当 于一个可执行文件。 (asp) 14、 ASP运行于服务器端,是 Microsoft公司在1996年底推出的 一种取代 的Web应用程序开发技术。(CGI (或者公 共网关接口 )) 15、 ASP运行于 ,是Microsoft公司在1996年底推出 的一种取代CGI (或者公共网关接口)的Web应用程序开发技术。(服务 器) 16、 DHTMI中的 D指的是 。(Dynamic ( 或者动态 )) 17、 IP地址中一个C类地址三位是110,接下来21位是网络地址, 其余 ___位是主机地址。 (8) 18、 IP地址中一个C类地址三位是110,接下来21位是 其余 8 位是主机地址。 ( 网络地址 ) 19、 Web是一种体系结构,它能够访问分布于 In ternet主机上的 联接在一起的链接文档。 (超链接) 20、 Web全称是 ,(World Wide Web) ----------------------- 2020年计算机二级《Web程序设计》练习题及答案全文共4页,当前为第1页。 2020年计算机二级《Web程序设计》练习题及答案全文共4页,当前为

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值