• 模拟练习1


    问题 A: C语言-猴子吃桃

    猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。

    输入要求

    N

    输出要求

    桃子总数

    假如输入

    10

    应当输出

    1534
    #include<stdio.h>
    int main(void)
    {
        int n,x,y;
        scanf("%d",&n);    
        x=1;
        while(n>1){
            y=(x+1)*2;
            x=y;
            n--;
        }
        printf("%d
    ",y);
        return 0;
    }

    问题 B: C语言-奖金计算

    #include<stdio.h>
    int main(void)
    {
        int n,y;
        scanf("%d",&n);
        if(n<=100000){
            y=n*0.1;
        }
        else if(n>100000&&n<=200000){
            y=100000*0.1+(n-100000)*0.075;
        }
        else if(n>200000&&n<=400000){
            y=100000*0.1+100000*0.075+(n-200000)*0.05;
        }
        else if(n>400000&&n<=600000){
            y=100000*0.1+100000*0.075+200000*0.05+(n-400000)*0.03;
        }
        else if(n>600000&&n<=1000000){
            y=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(n-600000)*0.015;
        }
        else{
            y=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(n-1000000)*0.01;
        }
        printf("%d
    ",y);
        return 0;
    }
    
    

    问题 C: C语言-公约公倍

    假如输入

    5 7

    应当输出

    1 35
    #include<stdio.h>  
    int main(void)  
    {  
        int m,n; 
        int r,x,t; 
          scanf("%d %d",&m,&n); 
            x = m*n; 
            if (m<n) 
            { 
                t=m;  
                m=n;  
                n=t; 
            } 
            while (n!=0) 
            { 
                r=m%n;  
                m=n;  
                n=r; 
            } 
            printf("%d %d
    ",m,x/m); 
            printf("
    "); 
            
            return 0; 
    } 

    问题 D: C语言-转置矩阵

    #include<stdio.h> 
    int main(void) 
    { 
        int i,j,temp; 
        int a[3][3]; 
        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++) 
                    if(i<=j){ 
                        temp=a[i][j]; 
                        a[i][j]=a[j][i]; 
                        a[j][i]=temp; 
                    } 
      
                    for(i=0;i<3;i++){ 
                        for(j=0;j<3;j++) 
                            printf("%d ",a[i][j]); 
                        printf("
    "); 
                    } 
                    return 0; 
    } 

    问题 E: 1999年秋浙江省计算机等级考试二级C 编程题(1)

    编制程序,输入m,n(M>=n>=0)后,计算下列表达式的值并输出:

             m!         

    n! (m-n)!

    要求将计算阶乘运算的函数写为fact(n),函数返回值的类型为float

    输入要求

    m n

    输出要求

    对应表达式的值

    假如输入

    2 1

    应当输出

    2
    #include<stdio.h>
    float fact(int n);
    int main(void)
    {
        int x,y;
        float a,b,c,d;
        scanf("%d %d",&x,&y);
        b=fact(x);
        c=fact(y);
        d=fact(x-y);
        a=b/(c*d);
        printf("%.0lf
    ",a);
        return 0;
    }
     
        float fact(int n)
        {
            int i;
           float z;
            z=1;
            for(i=1;i<=n;i++){
                z=z*i;
            }
            return z;
        }
     
     

    问题 F: 1999年秋浙江省计算机等级考试二级C 编程题(2)

    题目描述

    编制程序,统计文本stdin中字符$出现的次数,并将结果写入文件stdout

     

    输入要求

    字符文本

     

    输出要求

    $次数

     

    假如输入

    as$dfkjhkjkjdhf
    asdfkj$lskdfj
    werijweirjo$wie 
    

    应当输出

    3

    提示

     

     

    #include <stdio.h> 
    int main(){ 
      FILE *p; 
      ..... 
      //p=fopen("data.txt","r"); 
      p=stdin; 
      ..... 
      //p=fopen("res.txt","w"); 
      p=stdout; 
      .... 
      return 0;  
    }

    问题 G

    编制程序,输入n个整数(n从键盘输入,n>0),输出它们的偶数和。

    #include<stdio.h>
    int main(void)
    {
        int n,i,k,sum;
        scanf("%d
    ",&n);
        sum=0;
        for(i=1;i<=n;i++){
            scanf("%d ",&k);
            if(k%2==0)
                sum=sum+k;
        }
        printf("%d
    ",sum);
        return 0;
    }

    问题 H: 2000年秋浙江省计算机等级考试二级C 编程题(2)

    题目描述

    编制函数del_char

    函数原型为 void del_char(char *,char),函数的功能是删除a指向的字符串中值为ch的字符,例如从字符串"AscADef"中删除'A'后,字符串为"scDef"。

     

    输入要求

    需要删除的字符ch

    需要处理的字符串

     

    输出要求

    处理后的字符串

     

    假如输入

    A
    AscADef

    应当输出

    scDef


    问题 I: 2001年秋浙江省计算机等级考试二级C 编程题(1)

    编程,输入n后:输入n个数,根据下式计算并输出y值。

         / x2-sinx    x<-2

    y={  2x+x       -2<=x<=2

         |    ___________

          √  X2+X+1                  x>2

     

    * 输出保留两位小数

     

      

     

     

    输入要求

    n

    n个数

     

    输出要求

    y

     

    假如输入

    1
    1

    应当输出

    3.00

    #include<stdio.h>
    #include<math.h>
    int main(void)
    {
        int n,i;
        double x,y;
        scanf("%d
    ",&n);
        for(i=1;i<=n;i++){
            scanf("%lf",&x);
            if(x<-2){
                y=x*x-sin(x);
            }
            else if(x>2){
                y=sqrt(x*x+x+1);
            }
            else{
                y=pow(2,x)+x;
            }
            printf("%.2f
    ",y);
        }
        return 0;
    }

    问题 J: 2001年秋浙江省计算机等级考试二级C 编程题(2)

    题目描述

    编制函数,其功能是在float类型一维数组中查找最大值、最小值,并将它们返回到调用程序。

    * 输出保留两位小数

     

    输入要求

    n

    n个浮点数

     

    输出要求

    最大值 最小值

     

    假如输入

    10
    1.0
    2.0
    3.0
    4.0
    5.0
    6.0
    7.0
    8.0
    9.0
    10.0

    应当输出

    10.00 1.00
    #include<stdio.h>
    int main(void)
    {
        int n,i,row,col,j;
        double a[20][1];
        scanf("%d
    ",&n);
        for(i=0;i<n;i++)
            scanf("%lf",&a[i][1]);
    
            row=0;
            col=0;
        for(i=0;i<n;i++)
            if(a[i][1]>a[row][1]){
            row=i;
            }
            for(j=0;j<n;j++)
                if(a[j][1]<a[col][1]){
                    col=j;
                }
                printf("%.2f %.2f
    ",a[row][1],a[col][1]);
    
                return 0;
    }
    
        
    
    
    

    问题 K: 2002年秋浙江省计算机等级考试二级C 编程题(1)

    题目描述

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

    输入要求

    一行字符

    输出要求

    统计值

    假如输入

    aklsjflj123 sadf918u324 asdf91u32oasdf/.';123
    

    应当输出

    23 16 2 4
    #include<stdio.h>
    int main(void)
    {
        int letter,digit,other,blank;
        char ch;
        letter=digit=other=blank=0;
        while((ch=getchar())!='
    ')
        if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
            letter++;
        else if(ch>='0'&&ch<='9')
            digit++;
        else if(ch==' ')
            blank++;
        else 
            other++;
        
        printf("%d %d %d %d
    ",letter,digit,blank,other);
        return 0;
    }

    问题 L: 2002年秋浙江省计算机等级考试二级C 编程题(2)

    输入一个正整数n.求1+1/2!+1/3!+....+1/n!

    要求定义并调用函数fact(n)计算n的阶乘,函数返回值的类型是点单精度浮点型。

    * 输出保留4位小数

    #include<stdio.h>
    double fact(int n);
    int main(void)
    {
        int k,i;
        double sum,item,a;
        sum=0;
        item=1;
        scanf("%d",&k);
        for(i=1;i<=k;i++){
            sum=sum+item;
            a=fact(i+1);
            item=1/a;
        }
        printf("%.4f
    ",sum);
        return 0;
    }
     
    double fact(int n)
    {
    int b;
    double x;
    x=1;
    for(b=1;b<=n;b++){
        x=x*b;
    }
    
    return x;
    }

    问题 M: 2003年秋浙江省计算机等级考试二级C 编程题(1)

    题目描述

    输入10个数,求它们的平均值,并输出大于平均值的数据的个数。

    输入要求

    10个数

    输出要求

    大于平均数的个数

    假如输入

    1 2 3 4 5 6 7 8 9 10

    应当输出

    5
    #include<stdio.h>
    int main(void)
    {
        int i,letter;
        int a[10];
        double sum,x;
        sum=0;
        letter=0;
        x=0;
        for(i=0;i<10;i++){
            scanf("%d ",&a[i]);
            sum=sum+a[i];
        }
        x=sum/10.0;
    
        for(i=0;i<10;i++){
            if(a[i]>x){
                letter++;
            }
        }
        printf("%d
    ",letter);
        return 0;
    }

    问题 N

    输出一张摄氏一华氏温度转换表,摄氏温度的取值区间是[-1000 C,1500C ],温度间隔50C。要求定义和调用函数 ctof(c),将摄氏温度C转换成华氏温度F,计算公式:

    F = 32 + C* 9/5。

    例如

    c=0->f=32 c=5->f=41 c=10->f=50 c=15->f=59 c=20->f=68 c=25->f=77 c=30->f=86 c=35->f=95 c=40->f=104 c=45->f=113 c=50->f=122 c=55->f=131 c=60->f=140 c=65->f=149

    #include<stdio.h>
    int main(void)
    {
        double c,f;
        for(c=-100;c<=150;c++){
            f=32+c*9.0/5.0;
            printf("c=%.0f->f=%.0f
    ",c,f);
            c=c+4;
        }
        return 0;
    }

    问题 O:

    输入一个正整数n (1≤ n ≤6),再输入一个n n列的矩阵,找出该矩阵中绝对值最大的元素以及它的行下标和列下标。

    假如输入

    2
    1 2
    3 4

    应当输出

    4 2 2
    #include<stdio.h>
    #include<math.h>
    int main(void)
    {
        int n,i,j;
        int a[6][6];
        int row=1,col=1;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                scanf("%d",&a[i][j]);
            
            for(i=1;i<=n;i++)
                for(j=1;j<=n;j++)
                    if(fabs(a[i][j])>fabs(a[row][col])){
                        row=i;
                        col=j;
                    }
                    printf("%d %d %d
    ",a[row][col],row,col);
                    return 0;
    }
        

    问题 P: 2006年春浙江省计算机等级考试二级C 编程题(1)

    编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大于85)、通过(60~84)和不及格(小于60)的学生人数。

    #include<stdio.h>
    int main(void)
    {
        int x,y,z;
        x=y=z=0;
        double grade;
        scanf("%lf",&grade);
        while(grade>0){
            if(grade<60)
                z++;
            else if(grade>=85)
                x++;
            else
                y++;
            scanf("%lf",&grade);
        }
        printf(">=85:%d
    ",x);
        printf("60-84:%d
    ",y);
        printf("<60:%d
    ",z);
        return 0;
    }

    问题 Q: 2006年春浙江省计算机等级考试二级C 编程题(2)

    编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。

    1+1/2+ .... +1/n!

     

    输出保留5位小数。

    #include<stdio.h>
    double fact(int k);
    int main(void)
    {
        int n,i;
        double sum=0;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
            sum=sum+1/fact(i);
        printf("sum=%.5lf
    ",sum);
        return 0;
    }
    double fact(int k)
    {
        int i;
        double z;
        z=1;
        for(i=1;i<=k;i++){
            z=z*i;
        }
        return z;
    }
  • 相关阅读:
    twisted 初体验
    移动互联网实战--wifi定位和架构
    SpringCloud之Eureka集群
    com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
    SpringCloud服务注册与服务发现之Eureka
    SpringCloud简介
    Java实时监控类库Metrics
    InfluxDB Java入门
    InfluxDB配置文件详解
    InfluxDB概念和基本操作
  • 原文地址:https://www.cnblogs.com/simple9495/p/3458755.html
Copyright © 2020-2023  润新知