文章标题

来源:互联网 发布:mac怎么装虚拟机win10 编辑:程序博客网 时间:2024/06/05 06:28

C语言入门基础编程案例-10道题

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;}

原创粉丝点击