设为首页 加入收藏

TOP

计算机等级考试二级C语言程序设计专项训练题——程序设计题(四)(一)
2023-07-23 13:32:20 】 浏览:177
Tags:计算机 程序设 计专项 计题

31、请编写函数void fun(char xx[]),函数的功能是:将字符串数组xx中下标为奇数的字符按其ASCII值从大到小的顺序进行排序。

例如:源字符串为:abcdefgh,则处理后字符串为:ahcfedgb。 

#include <stdio.h>
#include <string.h>
void fun(char xx[])
{
}
int main()
{
   char xx[81];
   printf("Enter a string : ");
   gets(xx);
   printf("The original string is : ");
   puts(xx);
   fun(xx);
   printf("The string after modified : ");
   puts(xx);
   return 0;
}
void fun(char xx[])
{
    int i,j,k;
    char ch;
    i=strlen(xx);
    for(j=1;j<i-2;j=j+2)
       for(k=j+2;k<i;k=k+2)
          if (xx[j]<xx[k])
          {
                ch=xx[j]; xx[j]=xx[k];xx[k]=ch;
          }
}
参考程序

32、请编写函数void fun(char xx[]),其功能是:从字符串xx中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。

例如:若源字符串为:abcdhgfe,则处理后字符串为:dcbaefgh。 若源字符串为:123498765,则处理后字符串为:432195678。 

#include <stdio.h>
#include <string.h>
void fun(char xx[])
{
}
int main()
{
   char xx[81];
   printf("Enter a string : ");
   gets(xx);
   printf("The original string is : ");
   puts(xx);
   fun(xx);
   printf("The string after modified : ");
   puts(xx);
   return 0;
}
void fun(char xx[])
{
    int i,j,k,half;
    char ch;
    i=strlen(xx);
    half=i/2;
    for(j=0;j<half-1;j++)
     for(k=j+1;k<half;k++)
       if(xx[j]<xx[k])
       {
           ch=xx[j];xx[j]=xx[k];xx[k]=ch;
       }
    if (i%2) half++;
    for (j=half;j<i-1;j++)
      for (k=j+1;k<i;k++)
        if (xx[j]>xx[k])
        {
            ch=xx[j];xx[j]=xx[k];xx[k]=ch;
        }
}
参考程序

33、请编写函数void fun(char xx[]),其功能是:从字符串xx中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。

例如:若源字符串为:abcdhgfe,则处理后字符串为:hgfedcba。 若源字符串为:123498765,则处理后字符串为:876594321。

#include <stdio.h>
#include <string.h>
void fun(char xx[])
{
}
int main()
{
   char xx[81];
   printf("Enter a string : ");
   gets(xx);
   printf("The original string is : ");
   puts(xx);
   fun(xx);
   printf("The string after modified : ");
   puts(xx);
   return 0;
}
void fun(char xx[])
{
    int i,j,k,half;
    char ch;
    i=strlen(xx);
    half=i/2;
    for(j=0;j<half-1;j++)
     for(k=j+1;k<half;k++)
       if(xx[j]<xx[k])
       {
           ch=xx[j];xx[j]=xx[k];xx[k]=ch;
       }
    for (j=half-1,k=i-1;j>=0;j--,k--)
    {
         ch=xx[j]; xx[j]=xx[k]; xx[k]=ch;
    }
}
参考程序

34、编写一个函数fun(char *str,char *substr),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。

例如,若字符串str为"asd asasdfg asd as zx67 asd mklo",子字符串为"as",则函数返回值是6。

#include <stdio.h>
#include <string.h>
int fun(char *str,char *substr)
{
}
int main()
{
  char str[81], substr[3] ;
  int n ;
  printf("输入原字符串:") ;
  gets(str) ;
  printf("输入子字符串:") ;
  gets(substr) ;
  n=fun(str, substr) ;
  printf("n=%d\n", n) ;
  return 0;
}
int fun(char *str,char *substr)
{
    int  n=0;
    char  *p , *r;
    while (*str)
    {
        p=str;
        r=substr;
        while(*r)
           if (*r==*p) {r++;  p++; }
           else  break;
        if (*r=='\0') n++;
        str++;
    }
    return  n;
}
参考程序1
int fun(char *str,char *substr)
{
    int i,cnt=0;
    for(i=0;str[i]!='\0';i++)
      if(str[i]==*substr && str[i+1]==*(substr+1)) cnt++;
    return cnt;
}
参考程序2

35、请编写函数void fun(char xx[]),函数的功能是:将字符串数组xx中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号,将标点符号均转换为空格)仍重新存入字符串数组xx中。 

例如:源字符串为:I am a student,则处理后字符串为:student a am I。

特别说明:若源字符串末尾有一个标点,则转换后的字符串开头有一个空格。

#include <stdio.h>
#includ
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇计算机等级考试二级C语言程序设计.. 下一篇OpenGL ES glut glew glfw glad f..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目