c语言编程题经典100例——(1~5例)

经典的C语言编程题目,这些题目可以帮助你提高C语言编程技能:

1,交换两个变量的值

我们可以使用临时变量来交换两个变量的值。以下是一个简单的示例:

#include <stdio.h>

int main() {

int a = 5;

int b = 10;

int temp;

printf(\”Before swapping: a = %d, b = %d\\n\”, a, b);

// 使用临时变量temp来交换a和b的值

temp = a;

a = b;

b = temp;

printf(\”After swapping: a = %d, b = %d\\n\”, a, b);

return 0;

}

在上面的示例中,我们首先定义了两个变量a和b,并分别将它们初始化为5和10。然后,我们使用一个临时变量temp来保存a的值,然后将b的值赋给a,最后将temp的值赋给b,从而实现了a和b的值的交换。

2,判断一个数是否为素数

我们可以使用循环和条件语句来判断一个数是否为素数。以下是一个简单的示例代码:

#include <stdio.h>

int main() {

int num, i, is_prime = 1;

printf(\”Enter a positive integer: \”);

scanf(\”%d\”, #);

// 判断num是否为素数

for (i = 2; i <= num / 2; ++i) {

if (num % i == 0) {

is_prime = 0;

break;

}

}

if (is_prime == 1)

printf(\”%d is a prime number.\\n\”, num);

else

printf(\”%d is not a prime number.\\n\”, num);

return 0;

}

在上面的代码中,我们首先使用scanf()函数从标准输入中读取一个正整数,并将其存储在变量num中。然后,我们使用一个循环来遍历从2到num/2的所有整数,判断它们是否能够整除num。如果找到了一个能够整除num的整数,说明num不是素数,我们将变量is_prime的值置为0,并使用break语句跳出循环。最后,我们根据变量is_prime的值输出判断结果。

需要注意的是,在判断素数时,我们只需要判断到num/2即可,因为如果一个数不是素数,那么它至少有一个因子小于等于它的一半。

3,反转一个字符串

可以使用指针和循环来反转一个字符串。以下是一个示例代码:

#include <stdio.h>

#include <string.h>

void reverse_string(char *str) {

int len = strlen(str);

char *start = str;

char *end = str + len – 1;

while (end > start) {

char temp = *start;

*start = *end;

*end = temp;

start++;

end–;

}

}

int main() {

char str[100];

printf(\”Enter a string: \”);

scanf(\”%s\”, str);

reverse_string(str);

printf(\”Reversed string: %s\\n\”, str);

return 0;

}

在上面的代码中,我们定义了一个reverse_string函数,用于反转一个字符串。该函数接受一个指向字符串的指针作为参数。首先,我们使用strlen函数获取字符串的长度,并定义两个指针start和end,分别指向字符串的起始和末尾位置。然后,我们使用一个循环来交换start和end所指向的字符,直到end指针小于start指针为止。最后,我们在主函数中调用reverse_string函数来反转字符串,并输出结果。需要注意的是,在实际开发中,我们应该考虑输入的字符串长度和缓冲区大小,以避免缓冲区溢出等问题。

4,计算一个数的阶乘

我们可以使用循环语句来计算一个数的阶乘。以下是一个简单的示例代码:

#include <stdio.h>

int main() {

int num, i, factorial = 1;

printf(\”Enter a positive integer: \”);

scanf(\”%d\”, #);

// 计算num的阶乘

for (i = 1; i <= num; ++i) {

factorial *= i;

}

printf(\”%d! = %d\\n\”, num, factorial);

return 0;

}

在上面的代码中,我们首先使用scanf函数从标准输入中读取一个正整数,并将其存储在变量num中。然后,我们使用一个循环语句来计算num的阶乘。循环从1开始,一直执行到num,每次循环将循环变量乘以一个累乘的结果,最终得到num的阶乘。最后,我们使用printf函数输出计算结果。需要注意的是,在实际开发中,我们应该考虑输入的数字范围和溢出等问题,以避免程序出现错误。

5,计算一个数的平方

我们可以使用乘法运算符来计算一个数的平方。以下是一个简单的示例代码:

#include <stdio.h>

int main() {

int num, square;

printf(\”Enter a number: \”);

scanf(\”%d\”, #);

// 计算num的平方

square = num * num;

printf(\”%d^2 = %d\\n\”, num, square);

return 0;

}

在上面的代码中,我们首先使用scanf函数从标准输入中读取一个整数,并将其存储在变量num中。然后,我们使用乘法运算符计算num的平方,并将结果存储在变量square中。最后,我们使用printf函数输出计算结果。需要注意的是,在实际开发中,我们应该考虑输入的数字范围和溢出等问题,以避免程序出现错误。

精心为学弟学妹整理的 C语言/C++ 项目合集

C语言/C++ 是一门实践性很强的课程。如果只看书,不做上机练习,相当于纸上谈兵。

很多小伙伴经常问“有什么项目推荐?” ,今天推荐一些。

夯实 C 语言/C++ 基础,训练编程思维,培养解决问题的思路,领略多姿多彩的 C 语言/C++。

包括 C语言/C++ 迷宫、24点游戏、奔跑的火柴人、超市管理系统、打字母、电子时钟、对对碰、俄罗斯方块、黑白棋、华容道、火车票订票管理源码、连连看、商品销售系统、象棋、超级玛丽、图书管理系统、学生成绩管理系统…….

https://mp.weixin.qq.com/s/ZUHtQxaahrGjvAZVu5jKKg

是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。

下载链接:LippiOuYang/WebBench · GitHub

是一个超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质。

下载链接:LippiOuYang/Tinyhttpd · GitHub

是C语言中的一个JSON编解码器,非常轻量级,C文件只有500多行,速度也非常理想。cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。

项目主页:cJSON | SourceForge.net

是google发布的用于C单元测试的一个轻量级的框架。它很小巧,对其他开源包没有依赖,对被测试代码侵入性小。cmockery的源代码行数不到3K,你阅读一下will_return和mock的源代码就一目了然了。

下载链接:Downloads – cmockery – A lightweight library to simplify and generalize the process of writing unit tests for C applications。

  1. Libevlibev

是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。基于Reactor模式,效率较高,并且代码精简(4.15版本8000多行),是学习事件驱动编程的很好的资源。

下载链接:http://software.schmorp.de/pkg/libev.html

  1. MemcachedMemcached

是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态数据库驱动网站的速度。Memcached 基于一个存储键/值对的 hashmap。Memcached-1.4.7的代码量还是可以接受的,只有10K行左右。

下载地址:memcached – a distributed memory object caching system

uWebSocket 是一款开源的 WebSocket 库,最新版使用了大量 C++17 的语法。

下载地址:https://github.com/uNetworking/

TeamTalk 是蘑菇街开源的一款用于企业内部的即时通信工具,

下载地址:https://github.com/balloonwj/Te

下载地址:https://github.com/miloyip/json-tutorial/blob/master/tutorial01/tutorial01.md

下载地址:https://github.com/william-zk/RB_Tree

下载地址:https://github.com/Alinshans/MyTinySTL

下载地址::https://blog.csdn.net/qq_41562665/article/details/90546750

下载地址:https://github.com/Winnerhust/uthread

下载地址:https://github.com/chenshuaihao/NetServer

下载地址:https://www.bilibili.com/video/av53602631?from=search&seid=9029288577396826503

-《Linux高性能服务器编程》

  • 还有陈硕的那本书 等等

下载地址: https://github.com/linyacool/WebServer

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。