当前位置: 首页 > news >正文

C语言程序设计-练习篇

山海自有归期,风雨自有相逢。

· 一

下面代码的结果是什么?

int main()
{
    int i = 0;
    for (i = 0; i < 10; i++)
    {
        if (i = 5)  //此处为赋值,i = 5表达式结果为5
            printf("%d ", i);  //表达式为真,i = 5
    }
    return 0;
}

for循环i = 0进来,在if语句处i赋值为5,打印一个5

然后i++使得i = 6再次进入循环,在if语句处继续赋值为5,打印一个5;

照此进入死循环,一直打印5。

· 二

1.switch语句中default子句可以放在任意位置

2.switch语句中case后的表达式只能是整型常量表达式(char也属于整型家族,因为字符存储的是ASCII值)

3.switch语句中case表达式不要求顺序

4.if语句是一种分支语句,可以实现单分支,也可以实现多分支

· 三(从小到大输出)

写代码将三个整数按从大到小输出

例如:

输入:   2 3 1

输出:3 2 1

法一:

#include <stdio.h>
int main()
{int a = 0;int b = 0;int c = 0;scanf("%d %d %d ", &a, &b, &c);int tmp = 0;if (a < b){tmp = a;a = b;b = tmp;}if (a < c){tmp = a;a = c;c = tmp;}if (b < c){tmp = b;b = c;c = tmp;}printf("%d %d %d\n", a, b, c);return 0;
}

法二:

#include <sdtio.h>
void Swap(int* px, int* py)
{int tmp = *px;*px = *py;*py = tmp;
}
int main()
{int a = 0;int b = 0;int c = 0;scanf("%d %d %d ", &a, &b, &c);int tmp = 0;if (a < b){Swap(&a, &b);}if (a < c){Swap(&a, &c);}if (b < c){Swap(&b, &c);}printf("%d %d %d\n", a, b, c);return 0;
}

· 四

写一个代码打印1~100之间所以3的倍数

法一

#include <stdio.h>
int main()
{int i = 0;for (i = 1; i <= 100; i++){if (i % 3 == 0){printf("%d ", i);}}return 0;
}

法二:

#include <>stdio.h>
int main()
{int i = 0;for (i = 3; i <= 100; i += 3){printf("%d ", i);}return 0;
}

· 五

给定两个数,求这两个数的最大公约数

法一(暴力求解,不够高效):

#include <stdio.h>
int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);int min = (a < b) ? a : b;int m = min;while (1){if (a % m == 0 && b % m == 0){break;}m--;}printf("%d\n", m);return 0;
}

法二(辗转相除法):

#include <stdio.h>
int main()
{int a = 0;int b = 0;int c = 0;scanf("%d %d", &a, &b);while (c=a%b){a = b;b = c;}printf("%d\n", b);return 0;
}

http://www.lryc.cn/news/428500.html

相关文章:

  • 【Oracle篇】统计信息和动态采样的深度剖析(第一篇,总共六篇)
  • 无源互调自动化测试软件应用案例分享:S参数和互调的高效测试
  • 【6大设计原则】精通设计模式之里氏代换原则:从理论到实践,掌握代码演化的黄金法则
  • 国内服务器安装Docker提示Failed to connect to download.docker.com port 443的解决方案
  • 前端开发攻略---彻底弄懂跨域解决方案
  • 【HeadFirst 设计模式】装饰者模式的C++实现
  • 大白话解释TCP的三次握手和四次挥手
  • asyncua模块实现OPC UA通讯
  • RabbitMQ的核心概念
  • 【vSphere 7/8】深入浅出 vSphere 证书 Ⅰ—— 初识和了解 vSphere证书
  • 【云备份】服务端模块-热点管理
  • call apply bind特性及手动实现
  • pygame开发课程系列(5): 游戏逻辑
  • 嵌入式系统实时任务调度算法优化与实现
  • Java:枚举转换
  • Vue、react父子组件生命周期
  • HTML 基础要素解析
  • 开源的向量数据库Milvus
  • 设计模式-工厂方法
  • Flask SQLALchemy 的使用
  • Metasploit漏洞利用系列(一):MSF完美升级及目录结构深度解读
  • C/C++|经典代码题(动态资源的双重释放与「按值传递、按引用传递、智能指针的使用」)
  • 西北乱跑娃 -- linux使用笔记
  • Kubectl基础命令使用
  • 推荐编译器插件:Fitten Code 更快更好的AI助手
  • ArcGIS Pro基础:状态栏显示栏的比例尺设置和经纬度位置
  • 微前端架构入门
  • [LitCTF 2023]导弹迷踪
  • win10安装wsl2(ubuntu20.04)并安装 TensorRT-8.6.1.6、cuda_11.6、cudnn
  • 信息搜集--敏感文件Banner