C语言复习3

练习1.输入一行字符,编写程序使之按逆序输出。

#include<iostream.h>

#include<stdio.h>

#include<string.h>

void main()

{

       charstr1[60],str2[60];

       inti,j=0,k=0;

       printf("输入一行字符:");

       gets(str1);

       printf("逆序输出的结果:");

       k=strlen(str1);

       for(i=k;i>=0;i--)

       {

              str2[j]=str1[i];

              cout<<str2[j];

              j++;

       }

       cout<<endl;

}

 

练习2.编写一个程序,在已知字符串“This is a c/c++ program.”中查找某个字符首次出现的位置,若字符串中没有该字符,给出相应信息。

#include<iostream.h>

#include<stdio.h>

#include<string.h>

void main()

{

       charstr1[]={"This is a c/c++ program."},t;

       inti,j=0,k=0;

       printf("字符串为:%s\n",str1);

       printf("输入字符:");

       t=getchar();

       printf("起始位置:");

       k=strlen(str1);

       for(i=0;i<=k;i++)

       {

              if(t==str1[i])

              {cout<<i;break;}

              if(str1[i]=='.')

                     cout<<"无该字符!";

       }

       cout<<endl;

}

 

练习3.判断输入的字符串是否为回文。

#include<iostream.h>

#include<stdio.h>

#include<string.h>

void main()

{

       charstr1[60];

       inti,j=0,k=0;

       printf("输入字符串:");

       gets(str1);

       printf("%s:",str1);

       k=strlen(str1);

       for(i=(k-1);i>=0;i--)

       {

              if(str1[i]!=str1[j])

              {cout<<"非回文!";break;}

              else

                     j++;

              if(i==(k-1)/2)

                     cout<<"是回文!";

       }

       cout<<endl;

}

 

练习4.编写一个程序,功能为将读入的一组密码(字符串)按指定规律翻译回原文后输出。解码规律如下:

               字 母:变成其后的第3个,且循环转换(例:a→d、W→Z、y→b);

其 它:保持不变。

#include<iostream.h>

#include<stdio.h>

#include<string.h>

void main()

{

       charstr1[60];

       inti,j=0,k=0;

       printf("原文:");

       gets(str1);

       printf("译文:");

       k=strlen(str1);

       for(i=0;i<k;i++)

       {

              if(str1[i]>='a'&&str1[i]<='w'||str1[i]>='A'&&str1[i]<='W')

                     str1[i]=str1[i]+3;

              elseif(str1[i]>='x'&&str1[i]<='z'||str1[i]>='X'&&str1[i]<='Z')

                     str1[i]=str1[i]-23;

       }

       printf("%s",str1);

       cout<<endl;

}

 

练习5.编程输入N个(例如5个)考生的学号及其成绩,输出平均分和最高分的情况。

提示:此题使用二维整型数组

运行结果示例:

#define N 5

#include<iostream.h>

#include<stdio.h>

#include<string.h>

void main()

{

       charstr[N][2];

       inti,j,k=0,max=0,add=0;

       floataxx;

       printf("输入学生考号和成绩:\n");

       for(j=0;j<N;j++)

       {

              gets(str[j]);

              add=add+str[j][1];

              if(str[j][1]>max)

                     max=str[j][1];

       }

       axx=add/5.0;

       for(i=0;i<N;i++)

       {

              if(str[i][1]==max)

                     break;

       }

       printf("\n全班平均分为:%3.2f\n",axx);

       printf("最高分考生学号和成绩:%s%4d\n",str[i],max);

       cout<<endl;

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值