前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >必练的100道C语言程序设计练习题(下)

必练的100道C语言程序设计练习题(下)

作者头像
老虎也淘气
发布2024-01-30 15:53:22
1140
发布2024-01-30 15:53:22
举报
文章被收录于专栏:Data分析Data分析

必练的100道C语言程序设计练习题(下)

前言:

在计算机编程的世界中,C语言一直是一门备受推崇的语言。它的简洁性、高效性以及广泛应用使得学习C语言成为每一位程序员的必由之路。然而,掌握这门语言并不是一蹴而就的事情,它需要不断的练习和实践。为了帮助各位编程爱好者更好地理解和掌握C语言的精髓,我整理了一份“必练的100道C语言程序设计练习题(上)”。这不仅是一次对基础知识的回顾,更是一个深入学习的契机。通过挑战这些题目,你将更好地锻炼编程思维,提高问题解决能力,为未来的编程之旅打下坚实的基础。

1、询问用户输入年龄,然后根据年龄的不同进行不同的输出

代码语言:javascript
复制
#include <stdio.h>
int main() {
    int age;
    printf("请输入你的年龄:");
    scanf("%d", &age);
    if (age < 0) {
        printf("你是穿越者!\n");
    } else if (age < 18) {
        printf("你还未成年,好好学习!\n");
    } else {
        printf("你已经成年听话了吗?\n");
    }
    return 0;
}
微信截图_20240122190010
微信截图_20240122190010

2、输入三个数字,按从小到大的顺序输出这三个数字

代码语言:javascript
复制
#include<stdio.h>
int main() {
  double a, b, c, temp;
  printf("Please input three numbers: \n");
  scanf("%lf %lf %lf", &a, &b, &c);
  if (a > b) {
    temp = a;
    a = b;
    b = temp;
  }
  if (a > c) {
    temp = a;
    a = c;
    c = temp;
  }
  if (b > c) {
    temp = b;
    b = c;
    c = temp;
  }
  printf("The numbers in ascending order are: %lf %lf %lf\n", a, b, c);
}
在这里插入图片描述
在这里插入图片描述

3、输入一个数字,判断它是否是质数。

代码语言:javascript
复制
#include<stdio.h>
int main()
{
  int n,i;
  printf("Please input a number: \n");
  scanf("%d",&n);
  for(i=2;i<=n/2;i++)
  {
    if(n%i==0)
    {
      printf("%d is not a prime number.\n",n);
      return 0;
    }
  }
  printf("%d is a prime number.\n",n);
}
微信截图_20240122190135
微信截图_20240122190135

4、编写一个程序,输入5个整数,输出它们的平均数和。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
  int a, b, c, d, e, sum, avg;
  printf("请输入5个整数:\n");
  scanf("%d%d%d%d%d", &a, &b, &c, &d, &e);
  sum = a + b + c + d + e;
  avg = sum / 5;
  printf("这5个数的和为%d,平均数为%d\n", sum, avg);
  return 0;
}
微信截图_20240122190210
微信截图_20240122190210

5、编写一个程序,输入一个三位数,将其百位、十位、个位上的数字分别打印出来。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
  int a, b, c, n;
  printf("请输入一个三位数:\n");
  scanf("%d", &n);
  a = n / 100;
  b = (n / 10) % 10;
  c = n % 10;
  printf("这个数的百位数为%d,十位数为%d,个位数为%d\n", a, b, c);
  return 0;
}
微信截图_20240122190232
微信截图_20240122190232

6、编写一个程序,输入一个字符,判断它是大写字母、小写字母、数字还是其他字符。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
  char ch;
  printf("请输入一个字符:\n");
  scanf("%c", &ch);
  if (ch >= 'A' && ch <= 'Z') {
    printf("你输入的是大写字母。\n");
  } else if (ch >= 'a' && ch <= 'z') {
    printf("你输入的是小写字母。\n");
  } else if (ch >= '0' && ch <= '9') {
    printf("你输入的是数字。\n");
  } else {
    printf("你输入的是其他字符。\n");
  }
  return 0;
}
微信截图_20240122190304
微信截图_20240122190304

7、编写一个程序,输入一个正整数n,计算1到n之间所有偶数的和。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
  int n, i, sum=0;
  printf("请输入一个正整数:\n");
  scanf("%d", &n);
  for (i=1; i<=n; i++) {
    if (i%2 == 0) {
      sum += i;
    }
  }
  printf("1到%d之间所有偶数的和为%d\n", n, sum);
  return 0;
}
微信截图_20240122190328
微信截图_20240122190328

8、编写一个程序,输入两个整数,将它们互换后输出。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
  int a, b, temp;
  printf("请输入两个整数:\n");
  scanf("%d%d", &a, &b);
  printf("交换前a=%d,b=%d\n", a, b);
  temp = a;
  a = b;
  b = temp;
  printf("交换后a=%d,b=%d\n", a, b);
  return 0;
}
微信截图_20240122190353
微信截图_20240122190353

9、编写一个程序,输入一个整数,输出它的阶乘。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
  int n, i, result=1;
  printf("请输入一个整数:\n");
  scanf("%d", &n);
  for (i=1; i<=n; i++) {
    result *= i;
  }
  printf("%d的阶乘为%d\n", n, result);
  return 0;
}
微信截图_20240122190415
微信截图_20240122190415

10、编写一个程序,输入一个字符串,将其中的小写字母转换为大写字母后输出。

代码语言:javascript
复制
#include <stdio.h>
#include <ctype.h>
int main()
{
  char str[100];
  int i;
  printf("请输入一个字符串:\n");
  scanf("%s", str);
  for (i=0; str[i]!='\0'; i++) {
    if (islower(str[i])) {
      str[i] = toupper(str[i]);
    }
  }
  printf("转换后的字符串为:%s\n", str);
  return 0;
}
微信截图_20240122190438
微信截图_20240122190438

11、编写一个程序,输入一个三位数,判断它是否是水仙花数(水仙花数是指一个三位数,其各位数字的立方和等于该数本身)。

代码语言:javascript
复制
#include <stdio.h>
#include <math.h>
int main()
{
  int n, a, b, c;
  printf("请输入一个三位数:\n");
  scanf("%d", &n);
  a = n / 100;
  b = (n / 10) % 10;
  c = n % 10;
  if (n == pow(a, 3) + pow(b, 3) + pow(c, 3)) {
    printf("%d是水仙花数\n", n);
  } else {
    printf("%d不是水仙花数\n", n);
  }
  return 0;
}
微信截图_20240122190500
微信截图_20240122190500

12、编写一个程序,输入一个正整数n,计算并输出前n个自然数的和。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
  int n, sum=0, i;
  printf("请输入一个正整数:\n");
  scanf("%d", &n);
  for (i=1; i<=n; i++) {
    sum += i;
  }
  printf("前%d个自然数的和为%d\n", n, sum);
  return 0;
}
微信截图_20240122190522
微信截图_20240122190522

13、编写一个程序,输入一个整数,输出该数的所有因数。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
  int n, i;
  printf("请输入一个正整数:\n");
  scanf("%d", &n);
  printf("%d的因数有:", n);
  for (i=1; i<=n; i++) {
    if (n%i == 0) {
      printf("%d ", i);
    }
  }
  printf("\n");
  return 0;
}
微信截图_20240122190545
微信截图_20240122190545

14、编写一个程序,输入一个字符串,判断它是否是回文字符串(回文字符串是指从左往右和从右往左读都是同一个字符串)。

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
int main()
{
  char str[100];
  int i, flag=0;
  printf("请输入一个字符串:\n");
  scanf("%s", str);
  for (i=0; i<strlen(str)/2; i++) {
    if (str[i] != str[strlen(str)-i-1]) {
      flag = 1;
      break;
    }
  }
  if (flag == 1) {
    printf("%s不是回文字符串\n", str);
  } else {
    printf("%s是回文字符串\n", str);
  }
  return 0;
}
微信截图_20240122190613
微信截图_20240122190613

15、编写一个程序,输入一个字符串,计算其中的单词个数。

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
int main()
{
  char str[100];
  int count=0, flag=0, i;
  printf("请输入一个字符串:\n");
  scanf("%[^\n]", str);
  for (i=0; i<strlen(str); i++) {
    if (str[i] != ' ' && flag == 0) {
      count++;
      flag = 1;
    } else if (str[i] == ' ') {
      flag = 0;
    }
  }
  printf("该字符串中共有%d个单词\n", count);
  return 0;
}
微信截图_20240122190648
微信截图_20240122190648

16、编写一个程序,输入一个整数n,找出1到n之间所有的素数。

代码语言:javascript
复制
#include <stdio.h>
#include <math.h>
int main()
{
  int n, i, j, flag=0;
  printf("请输入一个正整数:\n");
  scanf("%d", &n);
  printf("1到%d之间的所有素数为:", n);
  for (i=2; i<=n; i++) {
    flag = 0;
    for (j=2; j<=sqrt(i); j++) {
      if (i % j == 0) {
        flag = 1;
        break;
      }
    }
    if (flag == 0) {
      printf("%d ", i);
    }
  }
  printf("\n");
  return 0;
}
微信截图_20240122190712
微信截图_20240122190712

17、编写一个程序,输入一个字符串,将其中的大写字母转换为小写字母后输出。

代码语言:javascript
复制
#include <stdio.h>
#include <ctype.h>
int main()
{
  char str[100];
  int i;
  printf("请输入一个字符串:\n");
  scanf("%s", str);
  for (i=0; str[i]!='\0'; i++) {
    if (isupper(str[i])) {
      str[i] = tolower(str[i]);
    }
  }
  printf("转换后的字符串为:%s\n", str);
  return 0;
}
微信截图_20240122190758
微信截图_20240122190758

18、编写一个程序,输入一个正整数n,计算并输出前n个奇数的和。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
  int n, sum=0, i;
  printf("请输入一个正整数:\n");
  scanf("%d", &n);
  for (i=1; i<=n; i++) {
    sum += 2*i-1;
  }
  printf("前%d个奇数的和为%d\n", n, sum);
  return 0;
}
微信截图_20240122190817
微信截图_20240122190817

19、编写一个程序,输入两个整数a和b,求它们的最大公约数和最小公倍数。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
  int a, b, i, gcd, lcm;
  printf("请输入两个整数:\n");
  scanf("%d%d", &a, &b);
  for (i=a<b?a:b; i>=1; i--) {
    if (a%i == 0 && b%i == 0) {
      gcd = i;
      break;
    }
  }
  lcm = a*b/gcd;
  printf("%d和%d的最大公约数为%d,最小公倍数为%d\n", a, b, gcd, lcm);
  return 0;
}
微信截图_20240122190841
微信截图_20240122190841

20、编写一个程序,输入一个字符串,将其中的空格和小数点去除后输出。

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
int main()
{
  char str[100];
  int i, j=0;
  printf("请输入一个字符串:\n");
  scanf("%[^\n]", str);
  for (i=0; i<strlen(str); i++) {
    if (str[i] != ' ' && str[i] != '.') {
      str[j] = str[i];
      j++;
    }
  }
  str[j] = '\0';
  printf("处理后的字符串为:%s\n", str);
  return 0;
}
微信截图_20240122190920
微信截图_20240122190920

21、编写一个程序,输入一个正整数n,判断它是否是完数(完数是指一个数恰好等于它的所有因子(不包括它自己)之和)。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
  int n, sum=0, i;
  printf("请输入一个正整数:\n");
  scanf("%d", &n);
  for (i=1; i<=n/2; i++) {
    if (n % i == 0) {
      sum += i;
    }
  }
  if (n == sum) {
    printf("%d是完数\n", n);
  } else {
    printf("%d不是完数\n", n);
  }
  return 0;
}
微信截图_20240122190945
微信截图_20240122190945

补充

代码规范:

变量命名: 使用有意义、清晰的变量名,避免使用单个字母或缩写。例如,用userAge代替uAge。 缩进和格式: 保持一致的缩进风格,通常是使用空格或制表符。良好的代码格式提高了可读性。 注释: 编写清晰、简洁的注释,解释代码的目的、关键步骤和可能的注意事项。避免过多的注释,只注释必要的部分。 错误处理:

返回值检查: 在调用可能产生错误的函数后,检查其返回值以确保操作成功。 异常处理: 使用适当的异常处理机制,例如try…catch块,以处理运行时错误。 错误信息: 提供有意义的错误信息,使得在出现问题时更容易追踪和修复。 调试技巧:

调试器: 学会使用调试器(如GDB),能够设置断点、观察变量值,并逐步执行程序。 打印调试信息: 在关键位置插入打印语句,输出变量的值,以便追踪程序执行流程。 单元测试: 编写并执行单元测试,验证每个函数的行为是否符合预期。 性能优化:

算法优化: 选择和实现高效的算法,了解不同算法之间的时间复杂度和空间复杂度。 资源管理: 及时释放不再需要的资源,避免内存泄漏和资源浪费。 编译优化: 使用编译器提供的优化标志,针对特定平台进行编译以提高代码性能。 内存管理:

动态内存分配: 使用malloc和free等函数时,确保分配和释放内存的平衡。 避免内存泄漏: 定期检查代码,确保没有未释放的内存块。 悬挂指针: 注意指针的生命周期,避免使用已释放的内存。

结尾:

在完成这一系列的C语言程序设计练习之后,相信你已经对C语言的各种概念和技巧有了更深刻的理解。编程之路永无止境,但通过这些练习,你已经迈出了坚实的一步。记得,编程是一门实践的艺术,不仅要理解语法规则,更要在实际问题中找到创新的解决方案。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 必练的100道C语言程序设计练习题(下)
    • 前言:
      • 1、询问用户输入年龄,然后根据年龄的不同进行不同的输出
        • 2、输入三个数字,按从小到大的顺序输出这三个数字
          • 3、输入一个数字,判断它是否是质数。
            • 4、编写一个程序,输入5个整数,输出它们的平均数和。
              • 5、编写一个程序,输入一个三位数,将其百位、十位、个位上的数字分别打印出来。
                • 6、编写一个程序,输入一个字符,判断它是大写字母、小写字母、数字还是其他字符。
                  • 7、编写一个程序,输入一个正整数n,计算1到n之间所有偶数的和。
                    • 8、编写一个程序,输入两个整数,将它们互换后输出。
                      • 9、编写一个程序,输入一个整数,输出它的阶乘。
                        • 10、编写一个程序,输入一个字符串,将其中的小写字母转换为大写字母后输出。
                          • 11、编写一个程序,输入一个三位数,判断它是否是水仙花数(水仙花数是指一个三位数,其各位数字的立方和等于该数本身)。
                            • 12、编写一个程序,输入一个正整数n,计算并输出前n个自然数的和。
                              • 13、编写一个程序,输入一个整数,输出该数的所有因数。
                                • 14、编写一个程序,输入一个字符串,判断它是否是回文字符串(回文字符串是指从左往右和从右往左读都是同一个字符串)。
                                  • 15、编写一个程序,输入一个字符串,计算其中的单词个数。
                                    • 16、编写一个程序,输入一个整数n,找出1到n之间所有的素数。
                                      • 17、编写一个程序,输入一个字符串,将其中的大写字母转换为小写字母后输出。
                                        • 18、编写一个程序,输入一个正整数n,计算并输出前n个奇数的和。
                                          • 19、编写一个程序,输入两个整数a和b,求它们的最大公约数和最小公倍数。
                                            • 20、编写一个程序,输入一个字符串,将其中的空格和小数点去除后输出。
                                              • 21、编写一个程序,输入一个正整数n,判断它是否是完数(完数是指一个数恰好等于它的所有因子(不包括它自己)之和)。
                                              • 补充
                                              • 结尾:
                                              领券
                                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档