视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
C语言上机试题答案
2025-10-03 14:44:50 责编:小OO
文档
//vc1

//prog1.cpp

//设计一个程序,从键盘输入三个整数,按由小到大的顺序输出。

#include"stdio.h"

main()

{

    int a[3],i,j,t;

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

    {

        scanf("%d",&a[i]);

    }

for(i=0;i<9;i++) /*此处的i可以小于任意一个大于6的整数*/

    {

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

        {

         if(a[j]>a[j+1])

                t=a[j],a[j]=a[j+1],a[j+1]=t;

        }

    }

        printf("The three data from small to big is:");

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

                printf("%d ",a[i]);

}

//vc1

//prog2.cpp

//求1+3+5+...+95+97+99的和。

#include"stdio.h"

main()

{

    int i,sum=0;

for(i=1;i<100;i=i+2)

        sum+=i;

    printf("1+3+5+....+99=%d\\n",sum);

}

//vc1

//prog3.cpp

//写一个函数,从键盘输入一个整数,如果该整数为素数,则输出“此整数为素数”,否则输出“整数非素数”。(注:要求从主函数输入整数)

#include"stdio.h"

main()

{

    int i,j,k,l=2;

    printf("输入一个大于3的整数:");

    scanf("%d",&i);

for(j=2;j    {

        k=i%j;

        if(k==0)   break;

        else       l++;

    }

    if(l==k)      

        printf("这是个素数!!\\n");

    else

        printf("这不是素数!!\\n");

}

//vc2

//prog1.cpp

//从键盘输入10个整数,保存在一个数组中,将这10个数逆序输出,然后求这10个数的和然后输出。

#include"stdio.h"

main()

{

    int a[10],i,sum=0;

    printf("输入10个整数:");

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

        scanf("%d",&a[i]);

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

        printf("%d ",a[i]);

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

        sum+=a[i];

    printf("The total is:%d\\n",sum);

}

//vc2

//prog2.cpp

//输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。

#include

#include

void main()

{

    char a[100][100]={0},b[100]={0};

    int n,i,j;

for(n=0;n<100;n++)

    {

        gets(a[n]);

        if(a[n][0]=='0')

            break;

    }

for(i=1;i<=n;i++)

     for(j=0;j        {

            if(strcmp(a[j],a[j+1]))

            {

                strcpy(b,a[j]);

                strcpy(a[j],a[j+1]);

                strcpy(a[j+1],b);

            }

        }

for(i=0;i        puts(a[i]);

}

//vc2

//prog2.cpp

//输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。

#include

#include

void main()

{

    char a[100][100]={0},b[100]={0};

    int n,i,j;

for(n=0;n<100;n++)

    {

        gets(a[n]);

        if(a[n][0]=='0')

            break;

    }

for(i=1;i     for(j=0;j        {

         if(strcmp(a[j],a[j+1])>0)

            {

                strcpy(b,a[j]);

                strcpy(a[j],a[j+1]);

                strcpy(a[j+1],b);

            }

        }

for(i=0;i        puts(a[i]);

}

//vc2

//prog3.cpp

/*某年级共有4个班,每班各有30名学生,

有6个科目的考试成绩,要求输出每门课程最高分的学生、

学号和姓名,并计算各班每个学生的平均成绩并输出。*/

#include

#define cla 4

#define stu 30

#define sub 6

main()

{

    int i,j,k,m,n,h;

    float a[cla][stu][sub],ave[cla][stu],t,max;

for(i=0;i    {

for(j=0;j        {

            t=0;

for(k=0;k         {

                printf("请输入第%d个班学号为%d的学生的第%d科的成绩\\n",i+1,j+1,k+1); 

                scanf("%f",&a[i][j][k]);

                t=t+a[i][j][k];

         }

            ave[i][j]=t/sub;

        }

    }

for(k=0;k    {

        max=0.0;

for(i=0;i        {

for(j=0;j         {

if(a[i][j][k]>max)

         {

                    max=a[i][j][k];

                    m=i,n=j,h=k;

         }

         }

        }

        printf("第%d科成绩的最高分是第%d个班学号为%d的人,成绩为%f",h+1,m+1,n+1,max);

    }

for(i=0;i    {

for(j=0;j     {

    printf("第%d班学号为%d的学生的平均分为%f",i+1,j+1,ave[i][j]);

     }

    }

 }

//vc3

//prog1.cpp

//求从键盘上输入的10个数据(实数)中的最大值,并求和。

#include

main()

{

    int a[10],i,m=0,s=0;

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

    {

        scanf("%d",&a[i]);

     if(m            m=a[i];

        s+=a[i];

    }

    printf("最大值是%d\\n总和是%d\\n",m,s);

}

//vc3

//prog2.cpp

//给出三角形的三边A,B,C,求三角形的面积。(应先判断三边是否构成三角形)

#include

#include

int check(float a,float b,float c)

{

    int j;

if((a+b>c)&&(a-b        j=1;

    else j=0;

    return j;

}

main()

{

    float a,b,c;

    float s,p;

    scanf("%f%f%f",&a,&b,&c);

    if(check(a,b,c))

    {

    p=(a+b+c)/2;

    s=sqrt(p*(p-a)*(p-b)*(p-c));

    printf("%f\\n",s);

    }

    else

        printf("不能构成三角形");

}

//vc3

//prog3.cpp

//编写程序求一个字符串的第n个字符开始、长度为m的子串

#include

main()

{

    char a[100],b[100]={'0'};

    int m,n,i,j;

    gets(a);

    printf("请输入首位数,位数\\n");

    scanf("%d%d",&m,&n);

for(i=m-1,j=0;i    b[j]=a[i];

    puts(b);    

}

//vc4

//prog1.cpp

//猜数游戏,假如设定一个整数m=123,然后让其他人从键盘上猜该数字,如果猜对,输出“RUGHT”,如果猜错,则输出“WRONG”,并且指出设定的数字比输入的数字大还是小

#include

main()

{

    int m=123,a;

while(1)

    {

    printf("请输入您的猜测:\\n");

    scanf("%d",&a);

    if(a==m)

    {

        printf("RIGHT");

        break;

    }

    else

        {

            printf("WRONG");

         if(a>m)

            printf("\\n该数字比您输入的小!");

            else

            printf("\\n该数字比您输入的大!");

        }

    }

}

//vc4

//prog2.cpp

//编写程序,用于统计从键盘输入的字符串中的元音字母的个数。

#include

#include

main()

{

    char a[100];

    int i,s=0;

    gets(a);

for(i=0;i    {        if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u'||a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U')

        s++;

    }

    printf("%d",s);

}

//vc4

//prog3.cpp

//编写程序求1-100中所有同构数的个数(一个自然数的平方的末几位与该数相同时,该数就为同构数,如25^2=625)

#include

main()

{

    int i,j=0;

for(i=1;i<=100;i++)

    {

        if((i*i)%1000%100==i||(i*i)%1000%100%10==i)

        {printf("%d ",i);

        j++;}

    }

    printf("\\n%d",j);

}

//vc5

//prog1.cpp

//从键盘接受一个整数X,判断X是否为含有因子7的整数,如是,则输出“YES”,否则输出“NO”

#include

main()

{

    int x;

    scanf("%d",&x);

    if(x%7||x==0)

        printf("NO");

    else

        printf("YES");

}

//vc5

//prog2.cpp

//编写一个密码检测的程序,在执行程序时,要求用户输入密码(标准密码自己预先设定),然后通过字符串比较函数比较输入密码和标准密码是否相等,若当等,则显示“口令正确”,并转去执行后续程序,若不想等,重新输入,3次都不相等则终止程序的执行。要求自己编写一个字符串比较函数,而不使用系统的strcmp函数。

#include

#include

#include

int cmp(char a[],char b[])

{    

    int i,j,n;

i=strlen(a)>strlen(b)?strlen(a):strlen(b);

for(n=0;n    {    if(a[n]==b[n])

            j=1;

        else

            j=0;

    }

        return j;

}

main()

{

    char a[100],b[100];

    int i;

    printf("请设定密码:\\n");

    gets(a);

    system("CLS");

    system("PAUSE");

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

    {

        printf("请输入密码:\\n");

        gets(b);

        if(cmp(a,b))

        {

            printf("口令正确!");

            break;

        }

        else

        {

            printf("口令错误!您还有%d次机会!",2-i);

        }

    }

}

//vc5

//prog3.cpp

//编写实现求1!+2!+...+10!.

#include

int fun(int n)

{

    long i,s=1;

for(i=1;i<=n;i++)

        s*=i;

    return s;

}    

main()

{

    int i,n=0;

for(i=1;i<=10;i++)

    n+=fun(i);

    printf("1!+2!+...+10!=%d",n);

}

//vc6

//prog1.cpp

//编写程序,能对一给定的3*4的矩阵,求出其中的最大元素之及所在的行列号。

#include

main()

{

    int a[3][4]={{23,4,15,98},{122,-3441,29,33},{123,1,-99,21}};//这里自己修改

    int i,j,s=a[0][0],m=0,n=0;

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

    {

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

            printf("%d\",a[i][j]);

        printf("\\n");

    }

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

    { for(j=0;j<4;j++)

        {

         if(s                s=a[i][j],m=i,n=j;

        }

    }

    printf("最大元素是%d,位于第%d行第%d列",s,m+1,n+1);

}

//vc6

//prog2.cpp

//求2000中含有5的因子的个数。

#include

main()

{

    int i,j,k,m,s=0;

for(i=1;i<=2000;i++)

    {

        if(2000%i==0)

        {

            m=i;

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

            {

                if(m%10==5)

                {s++;break;}

                else

                    m=m/10;

            }

        }    

    }

    printf("%d",s);

}

//vc6

//prog3.cpp

//求任意一个小于65535的正整数的逆序数,并判断该数是否为回文数。

#include

#include

main()

{

    char a[100],b[100]={'0'};

    int i,m;

    printf("请输入一个小于65535的正整数\\n");

    gets(a);

    m=strlen(a);

for(i=0;i        b[m-i-1]=a[i];

    puts(b);

    if(strcmp(a,b)==0)

        printf("该数是回文数\\n");

    else 

        printf("该数不是回文数\\n");

}

//vc7

//prog1.cpp

//给出一个不多于5位的正整数,要求:求出其位数,分别打印每一位数字,最后按逆序打印出这个正整数

#include

#include

main()

{

    char a[100],b[100]={'0'};

    int i,m;

    printf("请输入一个小于5位的正整数\\n");

    gets(a);

    m=strlen(a);

for(i=0;i    {

        printf("%c ",a[i]);

        b[m-i-1]=a[i];

    }

    puts(b);

}

//vc7

//prog2.cpp

//求一个4行4列矩阵主对角线元素之和。

#include

main()

{

    int i,j,m=0,a[4][4]={1,23,7,-12,56,1,12,-88,34,177,1,46,14,56,-,1};

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

    { for(j=0;j<4;j++)

        {

            printf("%d\",a[i][j]);

            if(i==j)

                m+=a[i][j];

        }

        printf("\\n");

    }

    printf("主对角线元素之和是%d\\n",m);

}

//vc7

//prog3.cpp

//编写一个程序,判断从键盘输入的两个字符串是否相同,若相同则输出“字符串相同”,否则输出“字符串不同”。

#include

#include

main()

{

    char a[100],b[100];

    printf("请输入字符串1:\\n");

    gets(a);

    printf("请输入字符串2:\\n");

    gets(b);

    if(strcmp(a,b)==0)

        printf("字符串相同!");

    else

        printf("字符串不同!");

}

//vc8

//prog1.cpp

//输出100-200之间,能被3整除,但是不能被7整除的数。

#include

main()

{

    int i;

for(i=100;i<=200;i++)

        if(i%3==0&&i%7!=0)

            printf("%d\\n",i);

}

//vc8

//prog2.cpp

//将一个月份数字转换成月份的英文名称.

#include

main()

{

    int i;

    printf("请输入月份(1-12):\\n");

    scanf("%d",&i);

    switch(i)

    {

    case 1:printf("January\\n");break;

    case 2:printf("February\\n");break;

    case 3:printf("March\\n");break;

    case 4:printf("April\\n");break;

    case 5:printf("May\\n");break;

    case 6:printf("June\\n");break;

    case 7:printf("July\\n");break;

    case 8:printf("August\\n");break;

    case 9:printf("September\\n");break;

    case 10:printf("Octobery\\n");break;

    case 11:printf("November\\n");break;

    case 12:printf("December\\n");break;

    default:printf("error!\\n");break;

    }

}

//vc8

//prog3.cpp

//编写一程序,用简单选择排序实现对五个整数的排序(从小到大),排序的思路:首先从n个整数中选出值最大的,将它交换到第一个元素位置,再从剩余的n-1个整数中选出值最大的整数,将它交换到第二个元素的位置,重复上述操作直到排序成功.

#include

main()

{

    int i,j,temp1,temp2,a[5]={542,-14,90,-18,83};

    printf("排序之前的数组为: ");

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

        printf("%d ",a[i]);

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

    {    temp1=a[i];

     for(j=i;j<5;j++)

        {    

         if(temp1>a[j])

            {

            temp1=a[j];

            a[j]=a[i];

            a[i]=temp1;

            }

        }

    }

    printf("\\n排序后的数组为: ");

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

        printf("%d ",a[i]);

}

//vc9

//prog1.cpp

//编写一个程序,实现从键盘输入一组数据,求该组整数的平均值,并将大于平均值的整数输出.

#include

main()

{

    int a[100],i,sum=0,n;

    double avg;

    printf("请输入您要输入的数据个数,按Enter结束\\n");

    scanf("%d",&n);

    printf("请输入数据:\\n");

for(i=0;i    {

        scanf("%d",&a[i]);

        sum+=a[i];

    }

    avg=sum/n;

    printf("该组数据的平均值是:%6.2f\\n",avg);

for(i=0;i    {

     if(a[i]>avg)

            printf("%d\",a[i]);

    }

}

//vc9

//prog2.cpp

//编写程序,输出形状为直角三角形的九九乘法表.

#include

main()

{

    int i,j;

for(i=1;i<=9;i++)

    {

     for(j=1;j<=i;j++)

            printf("%d*%d=%d ",j,i,i*j);

    printf("\\n");

    }

}

//vc9

//prog3.cpp

//编写一个程序,判断某字符串在主串中出现的次数,字符串及主串均从键盘输入,例如主串为"asdas as d as字符串为"as则出现4次.

#include

#include

main()

{

    char a[100],s[100];

    int i,j,flag,sum=0;

    printf("请输入主串\\n");

        gets(a);

    printf("请输入子串\\n");

        gets(s);

for(i=0;i    {    flag=0;

     for(j=0;j        {

            if(s[j]==a[i+j])

                flag++;

        }

        if(flag==strlen(s))

            sum++;        

    }

    printf("%d",sum);

}

//vc10

//prog1.cpp

//从键盘输入一学生的成绩,判断学生成绩等级,如果成绩在90-100,等级为A,成绩在80-,成绩为B,成绩在70-79,等级为C,成绩在60-69,等级为E,成绩小于60,等级为E.

#include

main()

{

    int i;

    printf("请输入学生成绩(0-100):\\n");

    scanf("%d",&i);

if(i>=100||i<=0)

        printf("ERROR!\\n");

    else

    {

    switch(i/10)

    {

    case 9:printf("A\\n");break;

    case 8:printf("B\\n");break;

    case 7:printf("C\\n");break;

    case 6:printf("D\\n");break;

    default:printf("E\\n");break;

    }

    }

}

//vc10

//prog2.cpp

//输出100-1000间的全部素数;

#include

main()

{

    int i,j,s;

for(i=100;i<=1000;i++)

    {

     for(j=2;j            if(i%j==0) break;

            if(j==i/2)

        printf("%d ",i);

    }

}

//vc10

//prog3.cpp

//编写程序,求出从键盘输入的字符串的长度(不能使用strlen()函数,要求用指针的知识.)

#include

#include

int len(char a[])

{

    int i;

    char *p=a;

for(i=0;i<10000;i++,*p++)

    {    if(*p=='\\0')

            break;

    }

    return i;

}

void main()

{

    char a[1000];

    gets(a);

    printf("字符串长度为%d",len(a));

}

//vc11

//prog1.cpp

//在主函数中从键盘输入若干个整数放入数组中,用0结束输入,并放在最后一个元素中,下列程序中,fun函数的功能是:计算数组元素中值为正整数的平均值(不含0),

//例如:数组中的元素中的值依次为39,-47,21,2,-8,15,9;则程序的运行结果为19.250000.请改编fun函数,使他能得出正确的结果.

#include

#include

double fun (int x[])

{

    int i,j=0;

    double s=0;

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

    {

     if(x[i]>0)

        {

            s+=x[i];

            j++;

        }

    }

    return s/j;

}

main()

{

    int x[1000],int i=0;

    printf("\\nPlease enter some data (end with 0): ");

    do

    {    scanf("%d",&x[i]);}while(x[i++]!=0);

    printf("%f\\n",fun(x));

}

//vc11

//prog2.cpp

//编程,将一个数字字符串转换成一个整数(不得调用c语言提供的将字符串转换为整数的函数.)例如,若输入字符串"-1234则函数把它转换成整数值-1234.

#include

#include

int change(char a)

{

    int i;

    switch(a)

    {

    case '0':i=0;break;

    case '1':i=1;break;

    case '2':i=2;break;

    case '3':i=3;break;

    case '4':i=4;break;

    case '5':i=5;break;

    case '6':i=6;break;

    case '7':i=7;break;

    case '8':i=8;break;

    case '9':i=9;break;

    }

    return i;

}

int fun(char x[])

{

    int i,j,k,n,s,m=0;

    if(x[0]=='-')

    {i=1;j=-1;k=strlen(x);}

    else 

    {i=0;j=1;k=strlen(x);}

for(i;i    {

        s=change(x[i]);

     for(n=0;n            s*=10;

        m+=s;

    }

    return m*j;

}

main()

{

    char a[100];

    gets(a);

    printf("\\n%d",fun(a));

}

}

//vc11

//prog3.cpp

//百马驮担问题,有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,编程计算有多少种驮法.

#include

void main()

{

    int b,m,l,i;

for(b=0;b<=33;b++)

     for(m=0;m<=50;m++)

        {

            l=100-b-m;

            If((b*3+m*2+l/2==100)&&(l%2==0))

                printf("大马为%d匹,中马为=%d匹,小马为=%d匹,总驮担%d担\\n",b,m,l,b*3+m*2+l/2);    

        }

}

//vc12

//prog1.cpp

//编写fun函数,它的功能是:根据以下公式求P的值,结果由函数值带回,m与n为两个正整数且要求m>n.P=m!/n!(m-n)!

#include

#include

float fun(int m,int n)

{

    int i;

    float s1,s2,s3;

    s1=s2=s3=1;

if(m>n)

    {

     for(i=1;i<=m;i++)

            s1*=i;

     for(i=1;i<=n;i++)

            s2*=i;

     for(i=1;i<=m-n;i++)

            s3*=i;

    }

    return s1/(s2*s3);

}

main()

{

    printf("p=%f\\n",fun(12,8));

}

//vc12

//prog2.cpp

//求出1到1000之内能被7或11整除,但不能同时被7和11整除的所有整数,并求这些数的个数.

#include

main()

{

    int i,s;

for(i=1,s=0;i<=1000;i++)

        if((i%7==0||i%11==0)&&!(i%7==0&&i%11==0))

        {

            printf("%d ",i);

            s++;

        }

        printf("\\n总数为%d",s);

}

//vc12

//prog3.cpp

//编程求一个3*3矩阵对角线元素之和

#include

main()

{

    int a[3][3],i,j;

    printf("请输入一个3*3的矩阵\\n");

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

    {    

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

        scanf("%d",&a[i][j]);

    }

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

    {

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

            printf("%d\",a[i][j]);

        printf("\\n");

    }

    printf("主对角线元素之和是:%d\\n",a[0][0]+a[1][1]+a[2][2]);

    printf("副对角线元素之和是:%d\\n",a[0][2]+a[1][1]+a[2][0]);

}

//vc13

//prog1.cpp

//下列程序中,函数fun的功能是:求以下分数序列的前n项之和,1/2,2/3,3/5,5/8,8/13,13/21,...和值通过函数值返回main函数.

#include

double fun(int n)

{

    int i;

    double s=0,j=1,k=2,temp;

for(i=0;i    {

        s+=j/k;

        temp=j;

        j=k;

        k=k+temp;

    }

    return s;

}

main()

{

    int n;

    printf("Enter n:");

    scanf("%d",&n);

    printf("\\nThe result:%f\\n",fun(n));

}

//vc13

//prog2.cpp

//编写程序,能对输入一行字符,统计其中分别有多少个单词和空格,比如输入:"How are you"有3个单词和2个空格.

#include

#include

main()

{

    int i,j;

    char a[100];

    gets(a);

for(i=0,j=0;i    {

        if(a[i]==' ')

            j++;

    }

    printf("\\n您输入的字符有%d个空格,%d个单词\\n",j,j+1);

}

//vc13

//prog3.cpp

//编写程序,求1+3+5+7+...+195+197+199的和

#include

main()

{

    int i,s=0;

for(i=1;i<200;i+=2)

        s+=i;

    printf("1+3+5+7+...+195+197+199=%d",s);

}

//vc14

//prog1.cpp

//已知一个数列从第0项开始的前三项分别为0,0,1,以后的各项都是其相邻的前3项之和,下列程序中,

//函数fun的功能是:计算并输出该数列前N项的平方根之和sum,n的值通过形参传入.

#include

#include

#include

double fun(int n)

{

    int i,a[1000];

    a[0]=0;a[1]=0;a[2]=1;

    double sum=1;

for(i=3;i    {

        a[i]=a[i-3]+a[i-2]+a[i-1];

        sum+=sqrt(a[i]);    

    }

    return sum;

}

main()

{

    int n;

    printf("Input N=");

    scanf("%d",&n);

    printf("%f\\n",fun(n));

}

//vc14

//prog2.cpp

//编写程序,用简单选择方法对输入的10个整数排序(从大到小).

#include

main()

{

    int i,j,a[10],pos,t;

    printf("请输入10个整数:");

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

        scanf("%d",&a[i]);

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

    {    

        pos=i;

     for(j=i+1;j<10;j++)

         if(a[j]                pos=j;

            if(pos!=i)

            {

                t=a[i];

                a[i]=a[pos];

                a[pos]=t;

            }

    }

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

        printf(" %d",a[i]);

}

    //vc14

//prog3.cpp

//编写程序,能实现输入10个数,将其中的最大值以及平均数输出

#include

main()

{

    int i;

    float sum=0,m,n;

    printf("请输入10个数:\\n");

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

    {    

        scanf("%f",&m);

        if(i==0)

            n=m;

        sum+=m;

     if(n            n=m;

    }

    printf("最大值是%f,平均值是%f\\n",n,sum/10);

}

//vc15

//prog1.cpp

//下面程序中函数fun的功能是:根据整形参数m,计算如下公式的值,y=1+1/2!+1/3!+1/4!+...+1/m!,例如,若m=6,则应输出1.718056

#include

#include

double fun(int m)

{

    long float y=0.0;

    int i,j,n;

for(j=1;j<=m;j++)

    {    

        n=1;

     for(i=1;i<=j;i++)

            n*=i;

        y+=1.0/n;

    }        

    return(y);

}

main()

{

    int n;

    printf("Enter n:");

    scanf("%d",&n);

    printf("\\nThe result is %lf\\n",fun(n));

}

//vc15

//prog2.cpp

//编写程序,求1!+2!+3!+...+9!+10!的和.

#include

main()

{

    int i,j,sum=0,temp;

for(i=1;i<=10;i++)

    {

        temp=1;

     for(j=1;j<=i;j++)

            temp*=j;

        sum+=temp;

    }

    printf("%d",sum);

}

//vc15

//prog3.cpp

//某幼儿园只收2~6岁的小孩,2~3岁编入小班,4岁编入中班,5~6岁编入大班,编写程序实现没输入一个年龄,输出应编入什么班.

#include

main()

{

    int i;

    printf("请输入您的小孩的年龄:\\n");

    scanf("%d",&i);

if(i>6||i<2)

        printf("非适龄儿童,该院不予接受!\\n");

    else

    {

        switch (i)

        {

            case 2:

            case 3:printf("您的小孩应编入小班!\\n");break;

            case 4:printf("您的小孩应编入中班!\\n");break;

            default:printf("您的小孩应编入大班!\\n");break;

        }

    }

}

//vc16

//prog1.cpp

//运用函数fun,用下面的公式求n的近似值,知道最后一项的绝对值小于制定的数(参数num)为止π/4=1-1/3+1/5-1/7+...例如,运行程序后,输入0.0001,则程序输出3.1414

#include

#include

float fun(float num)

{

    int flag=1;

    float sum=0,n=1;

    while(1)

    {    

     if((1/n)            break;

        sum+=flag/n;

        n+=2;

        flag*=-1;

    }

    return sum*4;

}

void main()

{

    float n1,n2;

    printf("Enter a float number:");

    scanf("%f",&n1);

    n2=fun(n1);

    printf("%6.4f",n2);

}

//vc16

//prog2.cpp

//读入一个整数m(5≤m≤20),调用函数rnd获得m个随机数,将这m个随机整数从小到大排序.

#include

#include

main()

{

    int i,j,temp,m,a[20];

    scanf("%d",&m);

for(i=0;i        a[i]=rand();

for(i=0;i    {

     for(j=0;j         if(a[j]>a[j+1])

            {

                temp=a[j+1];

                a[j+1]=a[j];

                a[j]=temp;

            }

    }

for(i=0;i        printf("%d ",a[i]);

}

//vc16

//prog3.cpp

//如果一个数等于其所有真因子(不含自身)之和,则该数为完数,例如6的因子有1,2,3,且6=1+2+3.求2~1000中所有的完数.

#include

main()

{

    int i,j,k;

for(i=2;i<=1000;i++)

    {    

        k=0;

     for(j=1;j        {

            if(i%j==0)

                k+=j;

        }

    if(k==i)

        printf("%d ",i);

    }

}

//vc17

//prog1.cpp

//下列程序中,函数fun的功能是:求三个数的最小公倍数.例如输入15,11,2,则输出结果330.试编写函数fun,使它能得到正确结果.

#include

fun(int x,int y,int z)

{

    int i;

    for(i=1;;i++)

        if(i%x==0&&i%y==0&&i%z==0)

            break;

    return i;

}

main()

{

    int x1,x2,x3,j;

    printf("Input x1,x2,x3:");

    scanf("%d%d%d",&x1,&x2,&x3);

    printf("x1=%d,x2=%d,x3=%d\\n",x1,x2,x3);

    j=fun(x1,x2,x3);

    printf("The minimal common multiple is:%d\\n",j);

}

//vc17

//prog2.cpp

//求1000以内的亲密数对.亲密数对定义为:若正整数a的所有因子(不含a)之和为b,b的所有因子(不含b)之和为a,且a≠b,则称a与b为亲密数对.

#include

int fun(int n)

{

    int i,sum;

    sum=1; 

for(i=2;i<=n/2;i++)

        if (n%i==0) sum+=i; 

    return sum;

}

void main()

{

    int a,b,c;

for (a=2;a<=1000;a++)

    {

        b=fun(a);

        c=fun(b);

        if ((c==a)&&(a!=b))

            printf("%5d和%5d是亲密数对.\\n",a,b);

    } 

}

//vc17

//prog3.cpp

//若用0~9之间不同的3个数构成一个三位数,编程统计出共有多少个这种不同的三位数.

#include

main()

{

    int i,s=0;

for(i=100;i<999;i++)

        if((i%10!=(i/10)%10)&&(i%10!=i/100)&&((i/10)%10!=i/100))

            s++;

        printf("%d\\n",s);

}

//vc18

//prog1.cpp

//请编一个函数int fun(int pm),它的功能是:判断pm是否是素数,若pm是素数,返回1,若不是素数,返回0.pm的值由主函数从键盘读入.请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句.

#include

#include

#include

int fun(int a)

{

    int i;

for(i=2;i        if(a%i==0)

        return 0;

     if(i>=a/2)

        return 1;

}

main()

{

    int x;

    printf("\\nPlease enter a number:");

    scanf("%d",&x);

    printf("%d\\n",fun(x));

}

//vc18

//prog2.cpp

//编程求W=1+21+22+23+...+210

#include

#include

main()

{

    int sum=1,i;

for(i=1;i<=10;i++)

    sum+=pow(2,i);

    printf("%d",sum);

}

//vc18

//prog3.cpp

//若n使2n-1 为素数,则n为梅森尼数.求[1,21]范围内有多少个梅森尼数?最大的梅森尼数.

#include

#include

main()

{

    int i,k=0,m,n,a;

for(n=1;n<=21;n++)

    {

        m=pow(2,n-1);

     for(i=2;i<=m/2;i++)

            if(m%i==0)

                break;

     if(i>m/2&&n!=1)

        {

            k++;

            a=n;

        }

    }

    printf("一共有%d个梅森尼数\\n最大的梅尼森数是%d",k,a);

}

//vc19

//prog1.cpp

//下列程序中,函数fun的功能是:求K!(K<13),所求阶乘的值作为函数值返回,例:若K=10,则应输出3628800.轻编写fun函数,使它能得出正确的结果

#include

#include

long fun(int k)

{

    int i;

    long s=1;

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

        s*=i;

    return s;

}

main()

{

    int k=10;

    printf("%d!=%ld\\n",k,fun(k));

}

//vc19

//prog2.cpp

//编程求2~100中所有的亲密素数对的个数.亲密素数:如果x为素数,则x+2也为素数.

#include

int fun(int k)

{

    int i,s=1;

for(i=2;i<=k/2;i++)

    {

        if(k%i==0)

            s=0;

    }

    return s;

}

main()

{

    int i;

for(i=2;i<=98;i++)

    {

        if((fun(i)==1)&&(fun(i+2)==1))

            printf("%d和%d是亲密素数对.\\n",i,i+2);

    }

}

//vc19

//prog3.cpp

//编程求:S=1+(1+3)+(1+3+5)+...+(1+3+5+...+(2n-1))

#include

main()

{

    int i,j,s1,s2=0,n;

    printf("请输入计算上限:\\n");

    scanf("%d",&n);

for(i=1;i<=n;i++)

    {    s1=0;

     for(j=1;j<=i;j++)

            s1+=(2*j-1);

        s2+=s1;

    }

    printf("形如S=1+(1+3)+(1+3+5)+...+(1+3+5+...+(2n-1))当n=%d时结果为%d\\n",n,s2);

}

//vc20

//prog1.cpp

//编程,计算并输出下列级数和:S=1/(1*2)+1/(2*3)+...+1/(n*(n+1)),例如,当n=10时,函数值为0.909091.

#include

fun(int n)

{

    int s;

    s=n*(n+1);

    return s;

}

main()

{

    int n,i;

    float s=0.0;

    printf("Please enter n=");

    scanf("%d",&n);

for(i=1;i<=n;i++)

        s=s+1.0/fun(i);

    printf("S=%f\\n",s);

}

//vc20

//prog2.cpp

//从键盘输入10个整数,对其进行排序(从小到大)

#include

void main()

{

    int a[10],i,j,temp;

    printf("请输入10个整形数据:\\n");

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

        scanf("%d",&a[i]);

for(i=1;i<10;i++)

    { for(j=0;j<10-i;j++)

         if(a[j]>a[j+1])

            {

                temp=a[j];

                a[j]=a[j+1];

                a[j+1]=temp;

            }

    }

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

        printf("%d ",a[i]);

}

//vc20

//prog3.cpp

//输入一元二次方程ax2+bx+c=0的系数a,b,c,求出所有可能的根.

#include

#include

check(float a,float b,float c)

{

if((b*b-4*a*c)<1e-6)

        return 0;

    else return 1;

}

main()

{

    float a,b,c,s1,s2;

    scanf("%f%f%f",&a,&b,&c);    

    if(a==0) printf("s=%f\\n",-1*c/b);

    else if(check(a,b,c)==0) printf("S1=%f+%f-I,S2=%f-%f-I\\n",(-1*b)/(2*a),sqrt(-1*(b*b-4*a*c))/(2*a),(-1*b)/(2*a),sqrt(-1*(b*b-4*a*c))/(2*a));    

        else printf("S1=%f,S2=%f",(-1.0*b+sqrt(b*b-4*a*c))/(2*a),(-1.0*b-sqrt(b*b-4*a*c))/(2*a));

}下载本文

显示全文
专题