二级c语言

236 阅读2分钟

注:

c语言求字符类型应用头文件<ctype.h> 函数:
int isalpha(int ch) ,判断ch是否为字母,是,返回值非0;否,返回值0;
int isdigit(int ch),判断ch是否为数字,是,返回值非0;否,返回值0;
int isslower(int ch),判断ch是否为小写英文字母,是,返回值非0;否,返回值0;
int isupper(int ch),判断ch是否为大写英文字母,是,返回值非0;否,返回值0.

1.【统计字符】

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

#include<stdio.h>
#include<ctype.h>  //c语言中字符函数头文件
int main()
{
    int zimu=0,kongge=0,shuzi=0,qita=0,c;
    while((c=getchar())!='\n') //输入一行字符
    {
        if(isalpha(c))  //如果c是字母
            zimu++;
        else if(c==' ') //如果c为空格
            kongge++;
        else if(isdigit(c))  //如果c为数字
            shuzi++;
        else               //如果c为其他
            qita++;
    }
    printf("%d\n%d\n%d\n%d\n",zimu,kongge,shuzi,qita);
    return 0;
}

2.【阶乘数列】

求1+2!+3!+4!+…+30!。 科学计数法,保留两位小数。

#include<stdio.h>
int main()
{
int n;  //n为项数
float j=1,sum=0; //j为每项的值,sum为总和
for(n=1;n<=30;n++)
{
    j=n*j;  //每一项的值
    sum=sum+j;  //总和
}
printf("%.2e",sum); //科学计数法,保留2位
    return 0;
}

3.【最小绝对值】

输入10个数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数。

#include<stdio.h>
#include<math.h>  //数学函数头文件
int main()
{
    int a[10];
    int i,min=a[0],t;
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);  //输入10个数
        if(fabs(min)>fabs(a[i]))  //绝对值函数fabs
            min=a[i]; //找出绝对值最小的数
    }
    for(i=0;i<10;i++)  //从10个数依次向后循环
    {
        if(a[i]==min)  //依次配对找到最小的数
        {
            t=a[i];
            a[i]=a[9];
            a[9]=t;  //将最小的数和第10个数a[9]对换。注意,是a[i]数值之间对换
        }
    }
    for(i=0;i<10;i++)
      printf("%d ",a[i]);  //输出操作完成后的10个数
    return 0;
}