C试题100例详解

  • 写在前面
    • C语言高效学习方法
  • 正片开始:
    • 问题描述
    • 课题分析
    • 算法描述
      • 自然语言方式描述
      • 流程图方式描述
    • 源代码
    • 试验结果分析与讨论

写在前面

本专栏提供多于100道C试题解答,并且会一直不定期更新,使用的过程中如果有看不懂的地方,可以通过扫描文章末尾的公众号免费向我寻求解答。如果在做题的过程中有遇到专栏中没有的题目,也欢迎向我寻求解答,我将尽力为你解答!

C语言高效学习方法

  • 首先:选一款好用的编译器,千万不要再用VC++6.0了,可以下载一个DEVC,不说有多么厉害,但是起码没VC++这么多故障,你想一下,如果编译器老是出故障,那直接影响的是学C语言的热情。

    如何使用DEVC搭建工程可以点击这个链接:使用DEVC创建C语言工程

  • 其次:你可以自学C语言,这个其实不用看视频的,C那么多语法,不可能全部记住,你可以跟着下面我推荐的网站走,踏踏实实敲代码。因为学习编程最有效的方式就是多敲。

    菜鸟编程-C语言学习,这个网站可以很全面的介绍C语言语法,初期可以在菜鸟编程里查资料去学习。

    另外,我还发现CSDN有一个技能树功能,这个怎么使用呢,可以搭配菜鸟编程一起看,技能树面向初中期吧,更多的是中期,我看了几节讲指针的,内容确实不错。

  • 最重要的来了,那就是实战(刷题)了,咱们都是高中过来的,题海战术有多重要就不用多说了,跟着C试题专栏里的试题,先熟知题目,自己敲代码,多敲多思考。

    如果运行成功了,可以再简单看一下我的代码,想一下我的思路,因为一道题会有很多不同的解法,相信我的代码思想会对你思想上有所帮助,如果实在敲不出来也没关系,可以跟着我的代码去敲。

    前期一定要坚持去敲代码,先连续做个30道题,找找手感。当然了,不一定非得使用专栏里的试题,网上代码也很多,也能搜到答案,按照我说的学习方法也能学习C语言。

    我的专栏更多是为了节省大家的时间,因为专栏里的试题都是一些经典试题、二级C常考试题、也是大家私信问的比较多比较经典的试题。可以让大家在短期内提升C语言学习

    这个短期怎么定义呢?一天如果能空出6个小时,那两周就能搞定C语言,那么就有人问了,怎么算搞定呢?我可以这样讲,最基本的二级C能让你过了,课设你也可以自己做了。

  • 记录(错题本): 要养成随做随记录的习惯,因为C语言很多,不可能所有的知识点都可以记住,但你可以记住常用的一些C语言语法,比如Math、String等,比如什么是ASCII码、函数如何传参等,这样遇到类似的问题,可以回头翻翻看。

    另外,一道题会涉及一些语法或者经典思想,把这些可以记下来,方便后面套用。以我以我专栏中的记录方式举例,可以给你做个参考:

  • 答疑: 做题有疑惑自己去研究肯定是对的,但是有些问题不能一直往里钻,这样学习会适得其反,违背了本专栏的高效学习原则。

    因此在学习的过程中可以免费找我答疑,只希望你能少走弯路!

    添加公众号《程序艺术室》或者扫描下方二维码添加我的微信

正片开始:

问题描述

请编写一个函数,函数功能是删除字符串中的所有空格,例如,主函数中输入”asd af aa z67”,则输出为”asdafaaz67”.

课题分析

思路: 首先遍历整个字符串,当遇见字符为空格时,则内层循环从左往右依次往前覆盖;
主函数: 输入字符串,调用算法接口并返回结果,打印输出;
子函数: 外层循环遍历整个字符串,遍历的过程中判断字符时候为空格,如果为空格,则触发内层循环,内存循环从左往右依次往前覆盖。

算法描述

自然语言方式描述

(1)主函数
I.输入字符串
II.输出原字符串
III.调用实现接口
IV.打印输出结果
(2)调用fun函数
I.求字符串长度
II.从下标0开始遍历字符串
I)当字符为空格时
II)从空格所在字符的下标+1开始遍历字符,从后往前覆盖字符
III.字符串中出现空值,则必定往前换一次,那么结束符也要往前摞一次,因此长度-1, 并且将结束字符’\0’往前覆盖
IV.为了防止连续出现两个及两个以上的空格的情况,因此下标需要减1
V.返回新的字符串

流程图方式描述

源代码

#include<stdio.h>
#include<string.h>
char *fun(char *s){int i,j;for(i=0;s[i]!='\0';i++){if(s[i]==' '){//也可以使用ASCII码,空格的ASCII码为32 for(j=i;s[j]!='\0';j++){s[j]=s[j+1];}
//          printf("删除空格后的字符串:%s\n",s);i--;//因为有可能下一个字符也是空格,因此第二层for循环结束后,需要当前下标回退一下也即当前下标i--}}return s;
}
int main() {char s[20];printf("请输入字符串:");gets(s);printf("删掉空格的字符串为:%s\n",fun(s));return 0;
}

试验结果分析与讨论

(1)实验结果实例展示
示例一:当输入的字符串无空格时:

示例二:当输入的字符串空格间隔最大为1时:

示例三:当输入的字符串空格间隔大于1时:

(2)代码优缺点
优点:逻辑上无缺陷,示例的运行结果均符合预期
缺点:代码时间复杂度较高,效率偏低
(3)扩展思路
可进一步考虑在内层循环调用时,不仅仅只消除掉一个空格
思路:再往前覆盖时,加一层判断,如果是空格,则跳过空格往前覆盖

end


*过程中如果有问题可以关注微信公众号“程序艺术室”,添加我的微信向我咨询
*一健三连哦!

必看:C语言高效学习方法(附经典试题详解)相关推荐

  1. 全站仪与计算机之间的数据传输,必看!全站仪数据传输的三种方式详解,都安排得明明白白(上)...

    原标题:必看!全站仪数据传输的三种方式详解,都安排得明明白白(上) 科力达全站仪数据传输 一般而言,全站仪的数据传输方式有三种,分别是通过串口.USB.SD卡三种方式,因为电脑配置等因素的不同,一些数 ...

  2. 新手必看:访问url到加载全过程详解(看完不会我吃shi)

    新手必看:访问url到加载全过程详解(看完不会我吃shi) 1.放在前面:新手必须知道的那些概念 1.1 什么是IP.域名.主机名.url.服务器 1.2 http & https 1.3 O ...

  3. Java零基础必看学习教程,Java开发环境配置详解

    很多Java新手小白在学习Java编程的时候,碰到的第一难题就是不知道如何安装和配置java开发环境. 今天整理了史上最详细的安装及Java开发环境配置教程,通过图文并茂的方式详细讲解每一步骤,手把手 ...

  4. python释放变量内存_看完2019年阿里巴巴Python面试题详解,月薪3万不是梦

    很多人想自学Python找工作,下面给大家分享一部分阿里巴巴的Python开发工程师的面试题目: 概念理解类题目: 1.请说一下你对迭代器和生成器的区别? 答:(1)迭代器是一个更抽象的概念,任何对象 ...

  5. c语言d打开文件夹,BAT批处理之文件与文件夹操作代码(附xcopy命令详解)

    批处理中的文件.文件夹操作,xcopy命令的用法. 一,建bat文件自动执行复制,删除命令. 例1:复制cd.dll文件至windows\system32的bat文件内容: copy cd.dll % ...

  6. UNIX经典命令详解

    UNIX经典命令详解 第一章 目录及文件操作命令 1.1 ls [语法]: ls [-RadCxmlnogrtucpFbqisf1] [目录或文件......]  [说明]: ls 命令列出指定目录下 ...

  7. c语言 read 文件字节没超过数组大小时会怎样_剑指信奥 | C 语言之信奥试题详解(四)...

    趣乐博思剑指信奥系列 ❝ 趣乐博思剑指信奥系列,专门针对全国青少年信息学奥林匹克联赛 NOIP 而开展的专业教育方案.开设的课程有 C 语言基础,C++ 语言基础,算法设计入门与进阶,经典试题分析与详 ...

  8. c语言指针用法及实际应用详解,通俗易懂超详细

    c语言指针用法及实际应用详解,通俗易懂超详细! \\\插播一条:文章末尾有惊喜哟~/// 今天给大家来讲解一下指针. 我会由浅到深,最后联合实际应用讲解,让大家学会指针的同时,知道大佬们都用指针来干嘛 ...

  9. C语言 -- string.h中函数功能详解与手动实现 - 02(常用函数memcpy、memmove、strcpy、strdup、strcat、strtok...)

    内容预览 3.5.搬迁类型 --- 函数功能详细说明 :将内存空间中内容移动.复制到另一内存空间 3.6.搬迁类型 --- 函数功能测试与手动实现 3.6.1.memcpy.memccpy 3.6.2 ...

最新文章

  1. OpenCV中的立体图像创建深度图
  2. Vivo手机调试 logcat 信息一堆星号问题
  3. Spring.NET学习笔记1——控制反转(基础篇) Level 200
  4. MHA masterha_check_ssh 报错
  5. maven 解决冲突
  6. python sqlserver 列名_报表自动化,三流用Excel,二流用Python,一流用它
  7. Linux之强大的selinux
  8. python大数据论文_大数据环境下基于python的网络爬虫技术
  9. potplayer如何设置以一帧一帧的逐帧播放播放?
  10. 输出教学日历表c语言程序,C语言程序设计教学日历2011版.doc
  11. Less颜色混合函数(14)
  12. FYI | NIH Virtual Meeting
  13. Matlab中fprintf函数使用
  14. js图片轮播指示器箭头淡入淡出
  15. 【开源工程】VirtualDub
  16. 【播放器】媒体播放器三大架构
  17. 斐讯音箱控制扫地机器人_斐讯大能X3扫地机器人首批测试,这回真没花一分钱!...
  18. 汉光助力:科技「智宅」智慧人居-Hi-Bus智能照明监控系统
  19. 图解WordPress怎么安装主题(三种方式)
  20. 工具类-随即获取姓名-ZH

热门文章

  1. 工作之后必备计算机知识,2021工作必备计算机技巧知识
  2. 如何做用户画像分析?
  3. ACP.敏捷概念梳理1
  4. 微信模版消息发送失败
  5. Linux下自动化运维工具ansible
  6. Django快速入门教程
  7. 【实时渲染】屏幕空间特效和多边形技术
  8. wannier插值能带拟合5
  9. tcl/tk实例详解——eval
  10. 2021年三季度中国医疗服务行业A股上市企业营收排行榜:国际医学于1月17日起戴帽,简称变更为“ST国医”(附热榜TOP37详单)