C语言编程练习

1.编程序实现求1-1000之间的所有奇数的和并输出。

解法1:

    int sum=0;
    for(int i=1;i<=1000;i++){
        sum+=i%2?i:0;
    }
	printf("%d\n",sum/10);
6
6
 
1
    int sum=0;
2
    for(int i=1;i<=1000;i++){
3
        sum+=i%2?i:0;
4
    }
5
    printf("%d\n",sum/10);
6
 
          

解法2:

    int sum=0;
    for(int i=1;i<1000;i+=2){
        sum+=i;
    }
 printf("%d\n",sum/10);
5
5
 
1
    int sum=0;
2
    for(int i=1;i<1000;i+=2){
3
        sum+=i;
4
    }
5
 printf("%d\n",sum/10);

2。 输入2个整数,求两数的平方和并输出。

    int a,b;
    scanf("%d%d",&a,&b);
	printf("%d\n",a*a+b*b);
3
3
 
1
    int a,b;
2
    scanf("%d%d",&a,&b);
3
    printf("%d\n",a*a+b*b);

3.已知函数y=f(x),编程实现输入一个x值,输出y值。

                   2x+1   (x<0)

y=    0     (x=0)

                   2x-1  (x>0)


    double x,y;
    scanf("%lf",&x);
    if(x<0){
        y=2*x+1;
    }else if(x>0){
        y=2*x-1;
    }else{
        y=0;
    }
    printf("%f\n",y);//10
 
1
    double x,y;
2
    scanf("%lf",&x);
3
    if(x<0){
4
        y=2*x+1;
5
    }else if(x>0){
6
        y=2*x-1;
7
    }else{
8
        y=0;
9
    }
10
    printf("%f\n",y);//10


printf输出float和double都可以用%f,double还可以用%lf。
scanf输入float用%f,double输入用%lf,不能混用
2
2
 
1
printf输出float和double都可以用%f,double还可以用%lf。
2
scanf输入float用%f,double输入用%lf,不能混用

11.从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)

#include <stdio.h>
int main(){
    int x,y,max(int a,int b);
    scanf("%d%d",&x,&y);
    printf("最大值=%d\n",max(x,y));
}
int max(int a,int b){
    return a>b?a:b;
}
 
1
#include <stdio.h>
2
int main(){
3
    int x,y,max(int a,int b);
4
    scanf("%d%d",&x,&y);
5
    printf("最大值=%d\n",max(x,y));
6
}
7
int max(int a,int b){
8
    return a>b?a:b;
9
}


6. 从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。


    int a[10],x=0,y=0,z=0;
    for(int i=0;i<10;i++){
        scanf("%d",&a[i]);
        if(a[i]>0){
            x++;
        }else if(a[i]<0){
            y++;
        }else{
            z++;
        }
    }
    printf("正数个数=%d;\n负数个数=%d;\n零的个数=%d;\n",x,y,z);
    return 0;
 
1
    int a[10],x=0,y=0,z=0;
2
    for(int i=0;i<10;i++){
3
        scanf("%d",&a[i]);
4
        if(a[i]>0){
5
            x++;
6
        }else if(a[i]<0){
7
            y++;
8
        }else{
9
            z++;
10
        }
11
    }
12
    printf("正数个数=%d;\n负数个数=%d;\n零的个数=%d;\n",x,y,z);
13
    return 0;



#include <stdio.h>
void main( ) {
    int a, i,p=0,n=0,z=0;
    printf("please input number"); 
    for(i=0;i<10;i++){
        scanf("%d,",&a);
        if (a>0){
            p++;
        }else if (a<0){
            n++;
        } else{
            z++;
        }
    }
    printf("正数:%5d, 负数:%5d,零:%5d\n",p,n,z);
}
 
1
#include <stdio.h>
2
void main( ) {
3
    int a, i,p=0,n=0,z=0;
4
    printf("please input number"); 
5
    for(i=0;i<10;i++){
6
        scanf("%d,",&a);
7
        if (a>0){
8
            p++;
9
        }else if (a<0){
10
            n++;
11
        } else{
12
            z++;
13
        }
14
    }
15
    printf("正数:%5d, 负数:%5d,零:%5d\n",p,n,z);
16
}

10.有一个分数序列:2/13/25/38/513/8……编程求这个序列的前20项之和。

解法1:

    double x[20],y[20];
    x[0]=2.0;
    x[1]=3.0;
    y[0]=1.0;
    y[1]=2.0;
    double sum=x[0]/y[0]+x[1]/y[1];
    for(int i=2;i<20;i++){
        x[i]=x[i-1]+x[i-2];
        y[i]=y[i-1]+y[i-2];
        sum+=x[i]/y[i];
    }
    printf("%f\n",sum);
 
1
    double x[20],y[20];
2
    x[0]=2.0;
3
    x[1]=3.0;
4
    y[0]=1.0;
5
    y[1]=2.0;
6
    double sum=x[0]/y[0]+x[1]/y[1];
7
    for(int i=2;i<20;i++){
8
        x[i]=x[i-1]+x[i-2];
9
        y[i]=y[i-1]+y[i-2];
10
        sum+=x[i]/y[i];
11
    }
12
    printf("%f\n",sum);

解法二:



//10.有一个分数序列:2/1,3/2,5/3,8/5,13/8,……编程求这个序列的前20项之和。
#include <stdio.h>
void main()
{
    double a=1,b=2,sum=0;
    for(int i=1;i<=20;i++){
        double temp = b;
        sum+= b/a;
        b=a+b;
        a=temp;
    }
    printf("%20f",sum);
}
 
1
//10.有一个分数序列:2/1,3/2,5/3,8/5,13/8,……编程求这个序列的前20项之和。
2
#include <stdio.h>
3
void main()
4
{
5
    double a=1,b=2,sum=0;
6
    for(int i=1;i<=20;i++){
7
        double temp = b;
8
        sum+= b/a;
9
        b=a+b;
10
        a=temp;
11
    }
12
    printf("%20f",sum);
13
}


100~300间能被3整除的数的和。


    int sum=0;
    for(int i=100;i<300;i++){
        if(i%3==0){
            sum+=i;
        }
    }
    printf("%5d\n",sum);
 
1
    int sum=0;
2
    for(int i=100;i<300;i++){
3
        if(i%3==0){
4
            sum+=i;
5
        }
6
    }
7
    printf("%5d\n",sum);

计算:1+12+123+1234+12345

    int sum=0,temp=0;
    for(int i=1;i<=5;i++){
        temp=temp*10+i;
        sum+=temp;
        printf("%5d\n",temp);
    }
    printf("%5d\n",sum);
 
1
    int sum=0,temp=0;
2
    for(int i=1;i<=5;i++){
3
        temp=temp*10+i;
4
        sum+=temp;
5
        printf("%5d\n",temp);
6
    }
7
    printf("%5d\n",sum);
8
 
          

xy次方


#include <stdio.h>
int main(){
    int power(int x, int y);
    printf("%d\n",power(2,3));
}
//求x的y次方
int power(int x, int y){
    int sum=1;
    for(int i =1;i<=y;i++){
        sum*=x;
    }
    return sum;
}
 
1
#include <stdio.h>
2
int main(){
3
    int power(int x, int y);
4
    printf("%d\n",power(2,3));
5
}
6
//求x的y次方
7
int power(int x, int y){
8
    int sum=1;
9
    for(int i =1;i<=y;i++){
10
        sum*=x;
11
    }
12
    return sum;
13
}

4.从键盘输入一个字符,判断它是否是英文字母。


#include <stdio.h>    	  
void main()
{
    char  c;
    printf("input a character:"); 
    c=getchar();
    if(c>='A'&&c<='Z'||c>='a'&&c<='z') {
        printf("Yes\n");
    }else{
        printf("No\n");
    }
}
 
1
#include <stdio.h>        
2
void main()
3
{
4
    char  c;
5
    printf("input a character:"); 
6
    c=getchar();
7
    if(c>='A'&&c<='Z'||c>='a'&&c<='z') {
8
        printf("Yes\n");
9
    }else{
10
        printf("No\n");
11
    }
12
}

13、从键盘输入n个数存放在数组中,将最小值与第一个数交换,输出交换后的n个数。

//13、从键盘输入n个数存放在数组中,将最小值与第一个数交换,输出交换后的n个数。
#include <stdio.h>
void main()
{
    int n=0, a[n], temp,index=0;
    printf("请输入需要输入数字的个数\n");
    scanf("%d",&n);
    printf("请输入需要输入数字序列\n");
    //输入并查找最小值
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
        if(a[i]<a[index]){
            index=i;
        }
    }
    temp=a[0];
    a[0]=a[index];
    a[index]=temp;
    printf("下面输出交换后数组\n");
    for(int i=0;i<n;i++){
        printf("%d\n",a[i]);
    }
    return 0;
}
25
 
1
//13、从键盘输入n个数存放在数组中,将最小值与第一个数交换,输出交换后的n个数。
2
#include <stdio.h>
3
void main()
4
{
5
    int n=0, a[n], temp,index=0;
6
    printf("请输入需要输入数字的个数\n");
7
    scanf("%d",&n);
8
    printf("请输入需要输入数字序列\n");
9
    //输入并查找最小值
10
    for(int i=0;i<n;i++){
11
        scanf("%d",&a[i]);
12
        if(a[i]<a[index]){
13
            index=i;
14
        }
15
    }
16
    temp=a[0];
17
    a[0]=a[index];
18
    a[index]=temp;
19
    printf("下面输出交换后数组\n");
20
    for(int i=0;i<n;i++){
21
        printf("%d\n",a[i]);
22
    }
23
    return 0;
24
}




转载于:https://www.cnblogs.com/mlh1421/p/cf2ea409f02cd6db05868f247c82757c.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值