2012年(106)
分类: C/C++
2012-05-07 18:34:53
实验五 数组程序设计(二)
一.实验目的
1. 掌握程序中数组的基本操作方法;
2. 掌握字符数组的程序设计。
二.实验环境
1. 硬件:PII以上计算机;
2. 软件:Windows、Visual C++ 6.0;
3. 其它:一张软盘或者U盘等可移动的存储设备。
三.实验内容
练习1.输入一行字符,编写程序使之按逆序输出。
运行结果示例:
练习2.编写一个程序,在已知字符串“This is a c/c++ program.”中查找某个字符首次出现的位置,若字符串中没有该字符,给出相应信息。
运行结果示例:
练习3.判断输入的字符串是否为回文。
运行结果示例:
练习4.编写一个程序,功能为将读入的一组密码(字符串)按指定规律翻译回原文后输出。解码规律如下:
字 母:变成其后的第3个,且循环转换(例:a→d、W→Z、y→b);
其 它:保持不变。
程序运行结果示例:
练习5.编程输入N个(例如5个)考生的学号及其成绩,输出平均分和最高分的情况。
提示:此题使用二维整型数组
运行结果示例:
*练习6.编写一个程序实现将一个十进制整数m转换成r(二至十六)进制的字符串。
提 示:此题中数值转换的结果应该使用字符数组存储。
运行结果示例:
练习1
#include "iostream.h"
#include"string.h"
void main()
{
char c[1000];
char c1[1000];
cout<<"输入一行字符串:";
cin>>c;
int len=strlen(c);
for(int i=0;i { c1[len-i-1]=c[i]; } c1[len]='\0'; cout<<"逆序输出的结果::"< } 练习2 #include "iostream.h" #include"string.h" #include"stdio.h" void main() { inti; charb[23]; char a; cout<<"字符串为:This is a c/c++ program."; charstr[]="This is a c/c++ program."; cout<<"输入字符:"; cin>>a; gets(str); for(i=0;i<=23;i++) if a==b[i]; cout<<"起始位置:"<
} 练习2 #include #include #include 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<
if(str1[i]=='.') cout<<"无该字符!"; } cout< } 练习3 #include #include #include 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< } 练习4 #include #include #include void main() { int j,n; char ch[80]; printf("原文:"); gets(ch); j=0; while(ch[j]!='\0') {if((ch[j]>='A')&&(ch[j]<='Z')) ch[j]=ch[j]+3; elseif((ch[j]>='a')&&(ch[j]<='z')) ch[j]=ch[j]+3; else ch[j]=ch[j]; j++; } n=j; printf("译文:"); for(j=0;j putchar(ch[j]); cout< } 练习5 #define N 5 #include #include #include void main() { charstr[N][2]; inti,j,k=0,max=0,add=0; floataxx; printf("输入学生考号和成绩:\n"); for(j=0;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 { if(str[i][1]==max) break; } printf("\n全班平均分为:%3.2f\n",axx); printf("最高分考生学号和成绩:%s%4d\n",str[i],max); cout< } 练习6 #include #include void main() { inti,m,r,w,t,q; chara[20]; printf("输入十进制的数:"); cin>>m; t=q=m; cout<<"\n输入r进制的基数:"; cin>>r; for(i=0;m/r!=0;i++) { if(m%r>10) { w=(m%r)-10; m=m/r; a[i]=(char)(w+65); i++; } if(m%r<10) { a[i]=(char)(m%r+48); m=m/r; } } cout<<"\n十进制的 "< for(i=i-1;i>=0;i--) cout<
cout< }