C语言题目集(一)

  1、翻译密码

           翻译规律:用原来字母的第四个字母代替原来的字母。

           例如A的第四个字母是E,用E代替A,所以China就翻译成Glmre。

#include<stdio.p>
int main(){
char c;
    while ((c = getchar()) != '\n')
    {
        if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')){  
        // 判断是否为字母
            c = c + 4; // 是字母就加4
            if (c > 'Z' && c <= 'Z' + 4 || c > 'Z')
                c - 26; // 如在字母范围外就减26
        }
        printf("%c", c);
    }
    printf("\n");
    return 0;
  }

// 有一种比较直接的方式就是在输出时输出“C+4“即可

2、范围内奇数的和

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

#include <stdio.h>
int main()
{
    int i, sum = 0;
    for (i = 1; i < 1000; i += 2)   // i = 1 时,循环条件为 (i += 2) 即为奇数判断
    {
        sum += i;                   // (sum += i) ==> (sum = sum+i)
    }
    printf("%d", sum);
    return 0;
}

3、分段函数求值

        有一个函数:  y = {  x         x<1

                                   |  2x-1    1<=x<10

                                   {  3x-11   x>=10         写一段程序,输入x,输出y。

#include <stdio.h>
int main()
{
    int x, y;
    printf("请输入x的值:");
    scanf("%d", &x);
    if (x < 1)
    {
        printf("y为:%d", x);
    }
    else if (x >= 1 && x < 10)
    {
        printf("y为:%d", 2 * x - 1);
    }
    else if (x >= 10)
    {
        printf("y为:%d", 3 * x - 11);
    }
    return 0;
}

4、斐波那契数列

        实现从1到100相加

#include<stdio.h>
int main(){
    int sum1,sum2 = 0,sum3,i;
    
    /*****NumberOne,用for循环*****/
    for(i = 1; i <= 100; i++){
        sum1 += i;
    }

    /*****NumberTwo,用while循环*****/
    i = 0;
    while (i <= 100){    // while循环是判断条件是否成立(逻辑值为0或1,0不成立)再进入循环
        sum2 += i;
        i++;
    }

    /*****NumberThree,用do..while循环*****/
    i = 0;
    do{                 // do..while循环是不看条件先执行一次循环
        sum3 += i;
        i++;
    } while (i <= 100);
    
    printf("从1运行加法运算到100的总和为:\n");
    printf("使用for循环:%d\n",sum1);
    printf("使用while循环:%d\n",sum2);
    printf("使用do..while循环:%d\n",sum3);
    return 0;
}

5、个人所得税计算

    个人所得税计算,应纳税款的计算公式如下:

    1、收入<=1000元部分税率为0%,

    2、2000元>=收入>1000元的部分税率为5%,

    3、 3000元>=收入>2000元的部分税率为10%,

    4、6000元>=收入>3000元的部分税率为15%,

    5、收入>6000元的部分税率为20%。

    输入某人的收入,计算出应纳税额及实际得到的报酬。(如需连续计算多个人的纳税情况,直到输入负数为止)

#include <stdio.h>
int main()
{
	int grade;
	float income, tax, money;
	printf("please input your income:");
	scanf("%f", &income);
	if (income < 0)
		printf("the input is error!");
	else
	{
		grade = (int)income / 1000;		// 2000 / 1000 = 2
		switch (grade)
		{
		case 0:
			tax = 0;
			break;
		case 1:
			tax = (income - 1000) * 0.05;
			break;
		case 2:
			tax = 50 + (income - 2000) * 0.1;	// (2000元 >= 收入 > 1000元) 即2000和1001的区间
			break;
		case 3:
			tax = 150 + (income - 3000) * 0.15;
			break;
		default:
			tax = 600 + (income - 6000) * 0.2;
		}
		money = income - tax;
		printf("tax=%0.2f,money=%0.2f", tax, money);
	}
}

 6、for循环输出数组

         给数组赋值并逐个输出

#include <stdio.h>
int main()
{
    int i, a[10];
    for (i = 0; i < 10; i++)
    {
        scanf("%d", &a[i]); // 通过循环i,给数组赋值
    }
    printf("正序:");
    for (i = 0; i < 10; i++)
    {
        printf("%d\t", a[i]); // 通过循环i,逐个输出数组 (正序)
    }
    printf("\n");
    printf("逆序:");
    for (i = 9; i >= 0; i--)
    {
        printf("%d\t", a[i]);
    }
    return 0;
}

 7、for循环求最大值

         * 选择排序,如果arr[i]大于max的值,就将arr[i]的值赋给max; 

#include <stdio.h>
int main()
{
    int arr[10] = {0};
    int max = 0, i;
    for (i = 0; i < 10; i++)
    {
        printf("请输入十位数值,当前第%d位:", i + 1);
        scanf("%d", &arr[i]);
    }
    for (i = 0; i < 10; i++)
    { // 循环比较arr[i]
        if (max < arr[i])
            max = arr[i];
    }
    printf("最大值为:%d\n", max);
    return 0;
}

8、字符反序输出

#include <stdio.h>
int main()
{
    int c1, c2, c3, c4, c5;
    printf("请输入五个字符:\n");
    scanf("%c %c %c %c %c", &c1, &c2, &c3, &c4, &c5);
    printf("%c%c%c%c%c\n", c1, c2, c3, c4, c5);
    printf("%c%c%c%c%c\n", c5, c4, c3, c2, c1); 
    return 0;
}

 9、指针变量实现两数互换

#include <stdio.h>
int swap(int *n, int *m);
int main()
{
    int a, b;
    printf("请输入两位数值:");
    scanf("%d %d", &a, &b);
    printf("替换前:a是%d,b是%d\n", a, b);
    swap(&a, &b);
    printf("替换后:a是%d,b是%d\n", a, b);
    return 0;
}
int swap(int *n, int *m)
{
    int temp;
    temp = *n;
    *n = *m;
    *m = temp;
    return *n;
}

10、找出最小值

        从4个数中找出最小的数,并显示此数。

#include<stdio.h>
int main()
{
	int a,b,c,d,t;
	printf("please input a,b,c,d:\n");
	scanf("%d %d %d %d",&a,&b,&c,&d);
	if(a>b)
	{
		t=a;
		a=b;
		b=t;
	}
	if(a>c)
	{
		t=a;
		a=c;
		c=t;	
	}
	if(a>d)
	{
		t=a;
		a=d;
		d=t;
	}
	printf("min = %d\n",a);
}

11、在范围内数值乘积

        编程实现求1-10之间所有数的乘积并输出

#include <stdio.h>
int main()
{
	int sum = 1, i;
	for (i = 1; i <= 10; i++)
	{
		sum = sum * i;
	}
	printf("%d\n", sum);
	return 0;
}

12、温度转换

#include <stdio.h>
int main()
{
    double f, c;
    printf("请输入华氏温度:");
    scanf("%lf", &f);
    c = 5 * (f - 32) / 9; // 温度转换公式
    printf("转换后的摄氏度为:%0.2lf\n", c);
    return 0;
}

13、统计字符个数

        输入一行字符,统计其中有多少个单词,单词之间用空格隔开

#include <stdio.h>
int main()
{
    char string[80];
    int i, num = 0, sp = 0;
    char c;
    gets(string);
    for (i = 0; (c = string[i]) != '\0'; i++)
    {
        if (c == ' ')
        {
            sp++;
        }
        else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
        {
            num++;
        }
    }
    printf("字符共有%d个,空格共有%d个", num, sp);
    return 0;
}

14、统计数值个数

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

#include <stdio.h>
int main()
{
	int a[10], i, iNum1 = 0, iNum2 = 0, iNum3 = 0;
	for (i = 0; i < 10; i++)
	{
		printf("请输入十个整数,剩下%d个整数:\n", 10 - i);
		scanf("%d", &a[i]);
		if (a[i] > 0)
		{
			iNum1++;
		}
		else if (a[i] == 0)
		{
			iNum2++;
		}
		else
		{
			iNum3++;
		}
	}
	printf("正数有%d个,负数有%d个,零有%d个\n", iNum1, iNum3, iNum2);
	return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值