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

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

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

前言:

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

1、输出打印Hello World。

代码语言:javascript
复制
#include<stdio.h>
int main()
{
  printf("Hello World");
  return 0;
}

运行结果如下图:

在这里插入图片描述
在这里插入图片描述

2、已知三角形边长 求面积。

代码语言:javascript
复制
#include<stdio.h>
#include<math.h>
int main()
{
  double a,b,c,s,area;
  a=2.67;
  b=4.43;
  c=5.21;
  s=(a+b+c)/2;
  area=sqrt(s*(s-a)*(s-b)*(s-c));
  printf("a=%f\tb=%f\tc=%f\n",a,b,c);
  printf("area=%f\n",area);
}

运行结果如下图:

在这里插入图片描述
在这里插入图片描述

3、while语句实现求1+2+……+100

代码语言:javascript
复制
#include<stdio.h>
void main()
{
  int i ,sum;
  i=1;sum=0;
  while(i<=100)
  {
    sum=sum+i;
    i++;
  }
  printf("sum=%d\n",sum);
}
在这里插入图片描述
在这里插入图片描述

4、输出大写A到小写a之间的所有字母和符号。

代码语言:javascript
复制
#include<stdio.h>
void main()
{
  int i=65;
  while(i<'a')
  {
    putchar(i);
    putchar('\n');
    i++;
  }
}
在这里插入图片描述
在这里插入图片描述

5、自然数“1—n”之间的奇数和和偶数和。

代码语言:javascript
复制
#include<stdio.h>
void main()
{
  int i=1,sum1=0,sum2=0,n;
  printf("请输入n的值:\n");
  scanf("%d",&n);
  do{
    sum1=sum1+i;
    i=i+2;
  }while(i<n);

  i=2;
  do{
    sum2=sum2+i;
    i=i+2;
  }while(i<n);
  printf("奇数和=%d\n偶数和=%d\n",sum1,sum2);
}
在这里插入图片描述
在这里插入图片描述

6、求1+2+3+4……+100的和

代码语言:javascript
复制
#include<stdio.h>
void main()
{
  int i,sum=0;
  for(i=1;i<=100;i++)
    sum=sum+i;
    printf("sum=%d\n",sum);
}
在这里插入图片描述
在这里插入图片描述

7、输出九九乘法表

代码语言:javascript
复制
#include<stdio.h>
void main()
{
  int i,j;
  for(i=1;i<=9;i++)
  {
    for(j=1;j<=i;j++)
    {
      printf("%dX%d=%-3d",i,j,i*j);
    }
    printf("\n");
  }
}
在这里插入图片描述
在这里插入图片描述

8、输出圆半径在10以内自然数的圆的面积,面积大于100时停止

代码语言:javascript
复制
#include<stdio.h>
#define PI 3.14159
main()
{
  int r;
  float area;
  for(r=1;r<=10;r++)
  {
    area=PI*r*r;
    if(area>100)
    break;
    printf("r=%d,area=%.2f\n",r,area);
  }
}
在这里插入图片描述
在这里插入图片描述

9、求输入的10个整数中正数的个数、和及平均数

代码语言:javascript
复制
#include<stdio.h>
main()
{
  int i,num,a=0,sum=0;
  float ave;
  for(i=1;i<=10;i++)
  {
    scanf("%d",&num);
    if(num<=0) continue;
    a++;
    sum=sum+num;
  }
  ave=(float)sum/a;
  printf("a=%d,sum=%d,ave=%f\n",a,sum,ave);
}
在这里插入图片描述
在这里插入图片描述

10、自幂数是指一个n位整数,它的每个位上数字的n次幂之和等于它本身。例如,13+53+33=153,当n为4时,自幂数称为玫瑰花数,试编程输出1000~9999范围内的所有玫瑰花数。

代码语言:javascript
复制
#include<stdio.h>
void main()
{
  int i,n,a,b,c,d;
  for(i=1000;i<=9999;i++)
  {
    n=i;
    a=n%10;
    b=n/10%10;
    c=n/100%10;
    d=n/1000;
    if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==n)
      printf("%6d\n",n);
  }
}
在这里插入图片描述
在这里插入图片描述

11、输入一行字符,分别统计其中英文字符、数字字符和其他字符的个数

代码语言:javascript
复制
#include<stdio.h>
void main()
{
  char ch;
  int char_num=0,int_num=0,other_num=0;
  while((ch=getchar())!='\n')
  {
    if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
      char_num++;
    else if(ch>='0'&&ch<='9')
      int_num++;
    else
      other_num++;
  }
  printf("字母:%d个\n数字:%d个\n其它字符:%d个\n",char_num,int_num,other_num);
}
在这里插入图片描述
在这里插入图片描述

12、求n的阶乘

代码语言:javascript
复制
#include<stdio.h>
int main()
{
  int n,x=1,i;
  printf("输入n的阶乘");
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {
    x=x*i;
  }
  printf("n!=%d\n",x);
}
在这里插入图片描述
在这里插入图片描述

13、编程序统计并输出200以内所有能同时被7和3整除的数及其数量。

代码语言:javascript
复制
#include<stdio.h>
int main()
{
  int i,n=0;
  for(i=1;i<=200;i++)
  
    if((i%7==0)&&(i%3==0))
    {
      printf("%d\n",i);
      n++;
    }
      printf("%d",n);
  
}
在这里插入图片描述
在这里插入图片描述

14、定义一个数组a[10],并赋初值0~9,反序输出。

代码语言:javascript
复制
#include<stdio.h>
int main()
{
  int a[10],i;
  for(i=0;i<=9;i++)
    a[i]=i;
  for(i=9;i>=0;i--)
    printf("%2d",a[i]);
  return 0;
}
在这里插入图片描述
在这里插入图片描述

15、一个小组学生共10人,输入他们的成绩,计算并输出小组总成绩及平均成绩。

代码语言:javascript
复制
#include<stdio.h>
#define num 10
int main()
{
  int i;
  float a[num],sum=0,ave;
  for(i=0;i<=9;i++)
    scanf("%f",&a[i]);
  for(i=0;i<=9;i++)
    sum=sum+a[i];
  ave=sum/10;
  printf("sum=%f,ave=%f\n",sum,ave);
}
在这里插入图片描述
在这里插入图片描述

16、输出杨辉三角

代码语言:javascript
复制
#include<stdio.h>
void main()
{
  int i,j,a[10][10]={0};
  for(i=0;i<10;i++)
  {
    a[i][i]=1;
    a[i][0]=1;
  }
  for(i=2;i<10;i++)
    for(j=1;j<i+1;j++)
      a[i][j]=a[i-1][j-1]+a[i-1][j];

    for(i=0;i<10;i++)
    {
      for(j=0;j<i+1;j++)
        printf("%4d",a[i][j]);
      printf("\n");
    }
}
在这里插入图片描述
在这里插入图片描述

17、输入一行字符,分别统计其中的数字、字母和其他字符个数

代码语言:javascript
复制
#include<stdio.h>
void main()
{
  char ch;
  int count=0,zimu=0,other=0;
  while(ch=getchar()!='\n')
  {
    if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
      zimu++;
    else if(ch>='0'&&ch<='9')
      count++;
    else
      other++;
  }
  printf("数字=%d,字母=%d,其他字符=%d\n",count,zimu,other);
}
在这里插入图片描述
在这里插入图片描述

18、求10个整数中的最小值

代码语言:javascript
复制
#include<stdio.h>
int main()
{
  int i,a[10],min;
  for(i=0;i<10;i++)
    scanf("%d",&a[i]);
  min=a[0];
  for(i=1;i<10;i++)
    if(a[i]<min)
      min=a[i];
  printf("min=%d\n",min);
}
在这里插入图片描述
在这里插入图片描述

19、求3*4矩阵元素中的最大值

代码语言:javascript
复制
#include<stdio.h>
void main()
{
  int a[3][4]={{18,-21,15,85},{18,9,11,26},{-18,21,11,-58}};
  int i,j,row=0,colum=0,min;
  min=a[0][0];
  for(i=0;i<3;i++)
    for(j=0;j<4;j++)
      if(a[i][j]<min)
      {
        min=a[i][j];
        row=i;
        colum=j;
      }
  printf("最小值=a[%d][%d]=%d\n",row,colum,min);
}
在这里插入图片描述
在这里插入图片描述

20、使用puts()和gets()函数输入输出

代码语言:javascript
复制
#include <stdio.h>

int main() {
    char str[66];
    printf("请输入一个字符串:\n");
    fgets(str, sizeof(str), stdin);
    printf("你输入的字符串是: %s", str);

    return 0;
}
在这里插入图片描述
在这里插入图片描述

21、单位转换——厘米转换英寸

代码语言:javascript
复制
#include<stdio.h>

int main()
{
  double foot;
  double inch;
  
  printf("请分别输入身高的英尺和英寸,"
    "如输入\"5 7\"表示5英尺7英寸:");
  
  scanf("%lf %lf",&foot,&inch);
    //scanf输入使用%lf
  
  printf("身高是%f米。\n",
    ((foot + inch/12)*0.3048));
    
    return 0;
}
在这里插入图片描述
在这里插入图片描述

22、判断一个数是否是素数

代码语言:javascript
复制
#include <iostream>
#include <cmath>  // Include the <cmath> header for 'sqrt' function

int main() {
    int num;
    bool flag = true;

    std::cout << "请输入一个整数:";
    std::cin >> num;

    for (int i = 2; i <= std::sqrt(num); i++) {  // Use std::sqrt
        if (num % i == 0) {
            flag = false;
            break;
        }
    }

    if (num <= 1) {
        flag = false;
    }

    if (flag) {
        std::cout << num << "是一个素数!" << std::endl;
    } else {
        std::cout << num << "不是一个素数!" << std::endl;
    }

    return 0;
}
在这里插入图片描述
在这里插入图片描述

23、反向输出字符

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>

int main() {
    char inputString[200], tempChar;
    int i, j, length;

    // 获取用户输入
    printf("Enter a string: ");
    scanf("%s", inputString);

    // 计算字符串长度
    length = strlen(inputString);

    // 字符串翻转
    for (i = 0, j = length - 1; i < j; i++, j--) {
        tempChar = inputString[i];
        inputString[i] = inputString[j];
        inputString[j] = tempChar;
    }

    // 输出翻转后的字符串
    printf("Reversed string: %s\n", inputString);

    return 0;
}
在这里插入图片描述
在这里插入图片描述

24、用C语言输出打印一个爱心

代码语言:javascript
复制
#include <stdio.h>
int main()
{
  for(double y = 1.5; y > -1.5; y -= 0.1)
  {
    for(double x = -1.5; x < 1.5; x += 0.05) 
    {
      double a = x * x + y * y - 1;
      putchar(a * a * a - x * x * y * y * y <= 0.0f? '+' : ' ');
    }
    putchar('\n');
  }
  return 0;
}
在这里插入图片描述
在这里插入图片描述

补充

代码规范:

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

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

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

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

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

结尾:

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • 1、输出打印Hello World。
  • 2、已知三角形边长 求面积。
  • 3、while语句实现求1+2+……+100
  • 4、输出大写A到小写a之间的所有字母和符号。
  • 5、自然数“1—n”之间的奇数和和偶数和。
  • 6、求1+2+3+4……+100的和
  • 7、输出九九乘法表
  • 8、输出圆半径在10以内自然数的圆的面积,面积大于100时停止
  • 9、求输入的10个整数中正数的个数、和及平均数
  • 10、自幂数是指一个n位整数,它的每个位上数字的n次幂之和等于它本身。例如,13+53+33=153,当n为4时,自幂数称为玫瑰花数,试编程输出1000~9999范围内的所有玫瑰花数。
  • 11、输入一行字符,分别统计其中英文字符、数字字符和其他字符的个数
  • 12、求n的阶乘
  • 13、编程序统计并输出200以内所有能同时被7和3整除的数及其数量。
  • 14、定义一个数组a[10],并赋初值0~9,反序输出。
  • 15、一个小组学生共10人,输入他们的成绩,计算并输出小组总成绩及平均成绩。
  • 16、输出杨辉三角
  • 17、输入一行字符,分别统计其中的数字、字母和其他字符个数
  • 18、求10个整数中的最小值
  • 19、求3*4矩阵元素中的最大值
  • 20、使用puts()和gets()函数输入输出
  • 21、单位转换——厘米转换英寸
  • 22、判断一个数是否是素数
  • 23、反向输出字符
  • 24、用C语言输出打印一个爱心
  • 补充
  • 结尾:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档