C语言的编程练习题

简介: C语言编程练习

问题一:

  问题描述:输入n个数,n<=100,找到其中最小的数和最大的数
  输入样例: 4
  1 2 3 4
  输出样例:14
复制代码
1 #include "stdio.h"
2 int main() {
3 int i=0;
4 int max=0,min=0;
5 int n=0;
6 int a[100];
7 scanf("%d",&n);
8 for(i=0;i=a[i]){
17 min=a[i];
18 }
19 }
20 printf("%d %d",min,max);
21 }//代码效果参考:http://www.zidongmutanji.com/bxxx/531832.html

  问题二:
  问题描述:求n个数的和
  输出样例:10
4 int b=0;
11 for(i=0;i=5){
13 e=(c/10+1)10;
14 }
15 else{
16 e=(c/10)
10;
17 }
18 printf("%d",e);
19 return 0;
20 //代码效果参考:http://www.zidongmutanji.com/zsjx/486295.html

  
  问题六:
  问题描述:.给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置。
  输入样例:abcd bc
  输出样例:2
1 #include
2 #include
3 int main()
4 {
5 char str1[30],str2[30],i,j;
6 scanf("%s %s",str1,str2);
7 j=&str1[0];
8 i=strstr(str1,str2);
9 printf("%d",i-j+1);
10 return 0;
11 }
  问题七:
  问题描述:.给出一个英语句子,希望你把句子里的单词顺序都翻转过来
  输入样例:I love you
  输出样例:you love I
2 #include
3 int main(void){
4 char a[100];
5 char b[100];
6 int n,m,len=0;
7 gets(a);
8 for (n=0;n<=strlen(a)-1;n++){
9 len++;
10 b[n]=a[strlen(a)-1-n];
11 if(a[strlen(a)-1-n]==' '){
12 for (m=n-1;m>n-len;m--)
13 printf("%c",b[m]);
14 printf(" ");
15 len=0;
16 }
18 if(len>0){
19 for (m=n-1;m>=n-len;m--){
20 printf("%c",b[m]);
21 }
22 }
23 return 0;
24 }
  (最近在编程的时候有所体会,逻辑和算法是一个程序员的基本功。我们往往重视一些工具性的语言,却忽略了一些基础的逻辑问题,导致编写代码的时候逻辑不清,影响代码质量。所以我决定在课余之时,做一些C语言或者java的编程练习,锻炼自己的思维逻辑。并将所做练习同步在博客之中,一方面为了勉励自己,持之以恒。另一方便也希望能够帮助正要入门或者想要练习编程的同学。)

目录
打赏
0
0
0
0
52
分享
相关文章
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
79 8
C语言中的模块化编程思想,介绍了模块化编程的概念、实现方式及其优势,强调了合理划分模块、明确接口、保持独立性和内聚性的实践技巧
本文深入探讨了C语言中的模块化编程思想,介绍了模块化编程的概念、实现方式及其优势,强调了合理划分模块、明确接口、保持独立性和内聚性的实践技巧,并通过案例分析展示了其应用,展望了未来的发展趋势,旨在帮助读者提升程序质量和开发效率。
99 5
|
3月前
|
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性。本文探讨了C语言中的错误类型(如语法错误、运行时错误)、基本处理方法(如返回值、全局变量、自定义异常处理)、常见策略(如检查返回值、设置标志位、记录错误信息)及错误处理函数(如perror、strerror)。强调了不忽略错误、保持处理一致性及避免过度处理的重要性,并通过文件操作和网络编程实例展示了错误处理的应用。
102 4
十二个C语言新手编程时常犯的错误及解决方式
C语言初学者常遇错误包括语法错误、未初始化变量、数组越界、指针错误、函数声明与定义不匹配、忘记包含头文件、格式化字符串错误、忘记返回值、内存泄漏、逻辑错误、字符串未正确终止及递归无退出条件。解决方法涉及仔细检查代码、初始化变量、确保索引有效、正确使用指针与格式化字符串、包含必要头文件、使用调试工具跟踪逻辑、避免内存泄漏及确保递归有基准情况。利用调试器、编写注释及查阅资料也有助于提高编程效率。避免这些错误可使代码更稳定、高效。
810 12
C语言 多进程编程(三)信号处理方式和自定义处理函数
本文详细介绍了Linux系统中进程间通信的关键机制——信号。首先解释了信号作为一种异步通知机制的特点及其主要来源,接着列举了常见的信号类型及其定义。文章进一步探讨了信号的处理流程和Linux中处理信号的方式,包括忽略信号、捕捉信号以及执行默认操作。此外,通过具体示例演示了如何创建子进程并通过信号进行控制。最后,讲解了如何通过`signal`函数自定义信号处理函数,并提供了完整的示例代码,展示了父子进程之间通过信号进行通信的过程。
C语言 多进程编程(四)定时器信号和子进程退出信号
本文详细介绍了Linux系统中的定时器信号及其相关函数。首先,文章解释了`SIGALRM`信号的作用及应用场景,包括计时器、超时重试和定时任务等。接着介绍了`alarm()`函数,展示了如何设置定时器以及其局限性。随后探讨了`setitimer()`函数,比较了它与`alarm()`的不同之处,包括定时器类型、精度和支持的定时器数量等方面。最后,文章讲解了子进程退出时如何利用`SIGCHLD`信号,提供了示例代码展示如何处理子进程退出信号,避免僵尸进程问题。
C语言 多进程编程(五)消息队列
本文介绍了Linux系统中多进程通信之消息队列的使用方法。首先通过`ftok()`函数生成消息队列的唯一ID,然后使用`msgget()`创建消息队列,并通过`msgctl()`进行操作,如删除队列。接着,通过`msgsnd()`函数发送消息到消息队列,使用`msgrcv()`函数从队列中接收消息。文章提供了详细的函数原型、参数说明及示例代码,帮助读者理解和应用消息队列进行进程间通信。
C语言 多进程编程(六)共享内存
本文介绍了Linux系统下的多进程通信机制——共享内存的使用方法。首先详细讲解了如何通过`shmget()`函数创建共享内存,并提供了示例代码。接着介绍了如何利用`shmctl()`函数删除共享内存。随后,文章解释了共享内存映射的概念及其实现方法,包括使用`shmat()`函数进行映射以及使用`shmdt()`函数解除映射,并给出了相应的示例代码。最后,展示了如何在共享内存中读写数据的具体操作流程。
C语言 多进程编程(二)管道
本文详细介绍了Linux下的进程间通信(IPC),重点讨论了管道通信机制。首先,文章概述了进程间通信的基本概念及重要性,并列举了几种常见的IPC方式。接着深入探讨了管道通信,包括无名管道(匿名管道)和有名管道(命名管道)。无名管道主要用于父子进程间的单向通信,有名管道则可用于任意进程间的通信。文中提供了丰富的示例代码,展示了如何使用`pipe()`和`mkfifo()`函数创建管道,并通过实例演示了如何利用管道进行进程间的消息传递。此外,还分析了管道的特点、优缺点以及如何通过`errno`判断管道是否存在,帮助读者更好地理解和应用管道通信技术。
C语言 多进程编程(七)信号量
本文档详细介绍了进程间通信中的信号量机制。首先解释了资源竞争、临界资源和临界区的概念,并重点阐述了信号量如何解决这些问题。信号量作为一种协调共享资源访问的机制,包括互斥和同步两方面。文档还详细描述了无名信号量的初始化、等待、释放及销毁等操作,并提供了相应的 C 语言示例代码。此外,还介绍了如何创建信号量集合、初始化信号量以及信号量的操作方法。最后,通过实际示例展示了信号量在进程互斥和同步中的应用,包括如何使用信号量避免资源竞争,并实现了父子进程间的同步输出。附带的 `sem.h` 和 `sem.c` 文件提供了信号量操作的具体实现。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等