1.编写程序,要求:
⑴ 设计函数,求字符串中的数字字符个数。
⑵ 设计函数,求一个整数的反转数。如f(2673)=3762
⑶ 在main函数中,
①输入一个字符串,求串中的数字字符个数,并输出;
②输入一个整数,输出其反转数。
这里是代码区块:
#include "iostream.h"
int TotalNumber(char *s);
int GetNumber(int n);
int main(int argc, char* argv[])
{
char a[200];
int n;
cout << "\n输入一个字符串:";
cin >> a;
cout << "\n字符串中数字字符数=" << TotalNumber(a) <<endl;
cout << "\n输入一个整数:";
cin >> n;
cout << n << "的反转数=" << GetNumber(n) <<endl;
return 0;
}
int TotalNumber(char *s)
{//统计串中数字字符个数
//参数:s指向要处理的串
//返回值:串中数字字符个数
int v=0,i;
for(i=0;s[i];i++)
if(s[i]>='0' && s[i]<='9')
v++;
return v;
}
int GetNumber(int n)
{
int a;
for(a=0;n;n/=10)
a=a*10+n%10;
return a;
}
2.编写程序,要求:
⑴设计函数,求字符串中的字母字符个数。
⑵设计函数,求一个整数各位数码的平均值。如f(2673)=(3+7+6+2)/4
⑶在main函数中,
①输入一个字符串,求串中的字母字符个数,并输出;
②输入一个整数,输出其各位数码的平均值。
这里是代码区块:
#include "iostream.h"
int Total(char *s);
float GetAve(int n);
int main(int argc, char* argv[])
{
char a[200];
int n;
cout << "\n输入一个字符串:";
cin >> a;
cout << "\n字符串中字母字符数=" << Total(a) <<endl;
cout << "\n输入一个整数:";
cin >> n;
cout << n << "的各位数码平均值=" << GetAve(n) <<endl;
return 0;
}
int Total(char *s)
{//统计串中字母字符个数
//参数:s指向要处理的串
//返回值:串中字母字符个数
int v=0,i;
for(i=0;s[i];i++)
if((s[i]>='a' && s[i]<='z')||(s[i]>='A' && s[i]<='Z'))
v++;
return v;
}
float GetAve(int n)
{
float a;
int i;
for(i=0,a=0;n;n/=10,i++)
a+=n%10;
if(i)
a/=i;
return a;
}
3.编写程序,要求:
⑴ 设计函数,将字符串反转。如”abcd”变成”dcba”。
⑵ 设函数, ,编写一递归函数,求函数值。
⑷ 在main函数中,
① 输入一个字符串,将字符串反转,并输出;
②输入一个整数n,求函数f(n)的值,并输出。
#include "iostream.h"
#include "string.h"
double f(int n);
void SetXchg(char *s);
int main(int argc, char* argv[])
{
char a[200];
int n;
cout << "\n输入一个字符串:";
cin >> a;
SetXchg(a);
cout << "\n字符串反转后的串:" << a <<endl;
cout << "\n输入一个整数:";
cin >> n;
cout << "f(" << n << ")="<< f(n) <<endl;
return 0;
}
void SetXchg(char *s)
{//串反转
//参数:s指向要处理的串
char m;
int i,j;
for(i=0,j=strlen(s)-1;i<j;i++,j--)
{
m=s[i];s[i]=s[j];s[j]=m;
}
}
double f(int n)
{
double a=1.3;
if(n>0)
a=1.5*f(n-1);
return a;
}
4.编写程序,要求:
⑴ 设计函数,测试一个整数是否是素数。
⑵ 设计函数,统计整数n到整数m间的素数个数。
⑶ 在main函数中,输入两个整数n和m,求整数n到整数m间的素数个数,并输出。
#include "iostream.h"
int GetN(int m,int n);
int main(int argc, char* argv[])
{
int m,n;
cout << "\n统计整数m到n之间的素数个数\n\n输入整数m,n:";
cin >> m >> n;
cout << "整数" << m << "到" << n << "之间的素数个数="
<< GetN(m,n) <<endl;
return 0;
}
bool Test(int n)
{//测试n是否为素数,返回真,是;否则,不是
bool v=true;
int i;
for(i=2;i<=n/2;i++)
if(n%i==0)
{
v=false;break;
}
return v;
}
int GetN(int m,int n)
{
int v;
for(v=0;m<=n;m++)
if(Test(m))
v++;
return v;
}
5.编写程序,要求:
⑴ 设计函数,对字符串中的字符按ASCII码值进行从小到大排序。
⑵ 设计函数,删除字符串相同字符,使得相同字符只保留一个。
⑶ 在main函数中,输入一个字符串,删除字符串相同字符,使得相同字符只保留一个,并输出。
#include "iostream.h"
#include "string.h"
void DelC(char a[]);
void Sort(char a[]);
int main(int argc, char* argv[])
{
char a[200];
cout << "\n输入一个字符串:";
cin >> a;
Sort(a);
DelC(a);
cout << a <<endl;
return 0;
}
void Sort(char a[])
{//串a中字符按ASII代码值升序
int i,j;
char m;
for(i=strlen(a);i>1;i--)
for(j=1;j<i;j++)
if(a[j-1]>a[j])
{
m=a[j];a[j]=a[j-1];a[j-1]=m;
}
}
void DelC(char a[])
{//有序串中删除相同字符
int i,j;
for(i=j=0;a[j];j++)
if(a[i]!=a[j])
a[++i]=a[j];
a[++i]=0;
}
6.编写程序,要求:
⑴ 设计函数,对字符串中小写字母进行改变,使得
‘a’变成‘h’,‘b’变成‘i’,……,‘y’变成‘f’,‘z’变成‘g’,其它字符不变。如”0A1abcdefghijklmnopqrstuvwxyz9Q”变成”0A1hijklmnopqrstuvwxyzabcdefg9Q”。
⑵ 设计函数,求n行4列的整型二维数组中偶数个数。
⑶ 在main函数中,
① 输入一个字符串,将字符串中小写字母进行改变,并输出;
② 输入20个整数到5行4列数组中,求该数组中偶数个数,并输出。
void xchg(char a[]);
int f(int a[][4],int n);
void main()
{
char s[100];
int a[5][4];
cout << "\n输入字符串:";
cin >> s;
xchg(s);
cout << "\n转换后的字符串:" << s << endl;
cout << "\n输入20个整数到5行4列数组中:";
/* for(int i=0;i<5;i++)
for(int j=0;j<4;j++)
cin >> a[i][j];
*/
for(int i=0;i<20;i++)
cin >> a[0][i];
cout << "\n偶数个数=" << f(a,5) << endl;
}
void xchg(char a[])
{
for(int i=0;a[i];i++)
if(a[i]>='a' && a[i]<='z')
a[i]=(a[i]-'a'+7)%26+'a';
}
int f(int a[][4],int n)
{
int v,i,j;
for(v=i=0;i<n;i++)
for(j=0;j<4;j++)
if(a[i][j]%2==0)
v++;
return v;
}
7.编写程序,要求:
⑴ 设计函数,删除字符串中大写字母。如”0A1def9Q”变成” 01def9”。
⑵ 设计函数,求n行4列的整型二维数组中的最小值。
⑶ 在main函数中,
① 输入一个字符串,删除字符串中大写字母,并输出;
③ 输入20个整数到5行4列数组中,求该数组中最小值,并输出。
void xchg(char a[]);
int f(int (*a)[4],int n);
void g(int (*a)[4],int n,int &row,int &col);
void main()
{
char s[100];
int a[5][4];
cout << "\n输入字符串:" << endl;
cin >> s;
xchg(s);
cout << "\n转换后的字符串:" << s << endl;
cout << "\n输入20个整数到5行4列数组中:";
for(int i=0;i<5;i++)
for(int j=0;j<4;j++)
cin >> a[i][j];
for(int i=0;i<20;i++)
cin >> a[0][i];
cout << "\n最小值=" << f(a,5) << endl;
int r,c;
g(a,5,r,c);
cout << "\n最小值=" << a[r][c] << "在第" << r+1 << "行,第" << c+1 << "列" << endl;
}
void xchg(char a[])
{
int i,j;
for(i=j=0;a[j];j++)
if(!(a[j]>='A' && a[j]<='Z'))
a[i++]=a[j];
a[i]=0;
}
int f(int (*a)[4],int n)
{
int min,i,j;
for(min=a[0][0],i=0;i<n;i++)
for(j=0;j<4;j++)
if(a[i][j]<min)
min=a[i][j];
return min;
}
void g(int (*a)[4],int n,int &row,int &col)
{//记录最小值所在下标(row,col)
int i,j;
for(row=0,col=0,i=0;i<n;i++)
for(j=0;j<4;j++)
if(a[i][j]<a[row][col])
{ row=i;
col=j;
}
}
9.编写程序,要求:
⑴ 设计函数,求一个整数的各位数码和。如f(267)=2+6+7=15。
⑵ 设计函数,求整型一维数组前n个数各位数码和的平均值。
⑶ 在main函数中,输入整数n,以及n个整数到数组中,求数组前n个数各位数码和的平均值,并输出。
int f(int n);
double g(int a[],int n);
void main()
{
int a[100],n;
cout << "\n输入整数:" << endl;
cin >> n;
cout << "\n输入" << n << "个整数:";
for(int i=0;i<n;i++)
cin >> a[i];
cout << "\n前" << n << "个整数各位数码和的平均值=" << g(a,n) << endl;
}
int f(int n)
{
int v;
for(v=0;n;n/=10)
v+=n%10;
return v;
}
double g(int a[],int n)
{
int i;
double v;
for(i=v=0;i<n;i++)
v+=f(a[i]);
return v/n;
}
10.编写程序,要求:
⑴ 设计函数,测试一个数,是否能被7整除且个位为1。
⑵ 设计函数,求整型一维数组前n个数中否能被7整除且个位为1的数的个数。
⑶ 在main函数中,输入整数n,以及n个整数到数组中,求数组前n个数中否能被7整除且个位为1的数的个数。
bool f(int n);
int g(int a[],int n);
void main()
{
int a[100],n;
cout << "\n输入整数:" << endl;
cin >> n;
cout << "\n输入" << n << "个整数:";
for(int i=0;i<n;i++)
cin >> a[i];
cout << "\n前" << n << "个整数中,否能被7整除且个位为1的数的个数=" << g(a,n) << endl;
}
bool f(int n)
{
return n%7==0 && n%10==1;
}
int g(int a[],int n)
{
int v;
for(v=0;n>0;n--)
if(f(a[n-1]))
v++;
return v;
}
设计函数,求文本(字符串)中的单词的平均长度。
#include "iostream.h"
#include "stdio.h"
double total(char a[]);
void main()
{
char a[200];
cout << "\n输入字符串:" << endl;
gets(a);
cout << "\n单词个数=" << total(a) << endl;
}
double total(char a[])
{
double v_len;
int i,num,flag;
for(v_len=num=flag=i=0;a[i];i++)
if((a[i]>='a' && a[i]<='z') || (a[i]>='A' && a[i]<='Z'))
{
v_len=v_len+1;
if(flag==0) { flag=1;num++; }
}
else
flag=0;
return v_len/num;
}