C语言基础向——二级总结

  • 1.前言
  • 2.例题
    • 1.累加累乘问题
    • 2.去星号问题
    • 3.字符后移问题
    • 4.字符串转整数

1.前言

最近考了计算机二级C,我在做完大约100道操作题后对C语言有了新的收获,小部分的题目还是有做的价值。二级C操作题的难度大约是力扣简单题的难度(大部分题目甚至更简单),个人认为,对C语言初学者来说掌握这些还是有很大意义的。

2.例题

1.累加累乘问题

初学循化的人做这类题目可能还是有一定难度,不过这也是一种很好的锻炼。

这题关键就在于又要累加又要累乘,如何使用一个循化就完成这两个要求。不妨先自己思考一下。

可以注意到,后一项比前一项每次变化x/n 倍,所以我们可以定义一个变量,保存其初始值,然后每次随循化变化x/n 倍,再用另一个变量累加它们的值就行了。答案见下文。

double fun(double x , int  n)
{ int i;double f=1.0,h=x;double s=1;s=s+h/f;        for (i=2;i<=n;i++){ f=f*i;      h=h*x;       s=s+h/f;}return (s);
}

2.去星号问题

这题可以使用双指针加覆盖的方法做。
使用两个指针,分别为左指针和右指针,都指向第一个找到的字母,然后开始循化判断右指针对应元素是否为*,是,则右移右指针直至找到不为*的字母,再将右指针对应的字母赋值给左指针对应的字符,也就是用右指针对应的元素,覆盖左指针对应的元素。此时左指针之前对应的元素已经被覆盖,不知道是哪一个了,但不影响结果。左指针再加一。循化移动右指针至不为*号的字母,直至右指针遇到字符串结束符,结束循化。再将左指针对应元素赋值为‘\0’ 。

void  fun( char *a )
{int right=0,left;while(a[right]=='*')             //找到第一个不为*号的字母right++;    left=right;while(a[right]!='\0'){           // 实现非*字符前移 if(a[right]!='*') a[left++]=a[right];right++;}a[left]='\0';
}

3.字符后移问题

这题,我们可以先用一个变量保存第一个字母,然后再用循化将第一个字符覆盖,即从第二个字符开始往前移动一个字符。这样字符串最后会空出一个字符的位置,将之前保存的字符放到最后。如此循化m次,就能得到我们想要的结果。见代码:

void  fun(char  *w, int  m)  /* 可调用fun1函数左移字符 */
{int i=0,x,j;char ch;for(j=0;w[j];j++) i++;for(x=0;x<m;x++){ch=w[0];for(j=1;j<i;j++) {w[j-1]=w[j];}w[i-1]=ch; }
}

4.字符串转整数

这题使用一个循化就能做出来。我们定义一个长整型变量,并初始化为0,再定义一个指针指向字符串首字母。每循化一次乘以10并加上指针对应字符串的一个字符对应的数字值。之后指针加一。直至循化遍历完字符串所有字符,我们就能得到字符串对应数字。

另外值得注意的一点是,数组字符转成对应的数字需要减去48,或者减去字符0(两者的本质是一样的,0对应的ascll码值就是48)。

long  fun( char  *s ){   int i,n;long a,r;a=0;r=0;n=strlen(s);for(i=0;i<n;i++){a=*(s+i)-48;r=r*10+a;}return r;
}

5.取得数字的各个位——四玫瑰数

这题的关键是如何取得一个数字的各个位,通常我们取个位的思路是用10去取余。但我们如何取得其他位。换一种思路,我们可以把其它位也变为个位,这样就简单了。具体的做法是再取了个位之后,将原来的数除以10,这样原来的十位就变成了个位。循化下去,我们就能取到一个数的各个位。见代码:

int fun(int n, int result[]){ int i,j,k=0,s;for(i=1000;i<n;i++){s=0;j=i;while(j>0){s+=(j%10)*(j%10)*(j%10)*(j%10);j=j/10;}if (s==i) result[k++]=i;}return k;
}

C语言基础向——二级总结相关推荐

  1. 2016年9月c语言真题,2016年9月计算机二级C语言基础试题及答案

    2016年9月计算机二级C语言基础试题及答案 一.选择题 (1)*作系统主要有两个方面重要作用,下面叙述最恰当的是 A)管理系统的软件和硬件 B)管理*作系统本身和应用系统 C)管理系统中的各种资源并 ...

  2. c语言二级考试基础知识,2018年计算机二级考试《C语言》考点:C语言基础知识...

    2017年计算机等级考试已经结束,出国留学网为考生们整理了2018年计算机二级考试<C语言>考点,希望能帮到大家,想了解更多资讯,请关注我们,小编会第一时间更新哦. 2018年计算机二级考 ...

  3. 计算机基础与c语言试题及答案,2017年9月计算机二级C语言基础试题及答案

    C语言是一种结构化的程序设计语言,是计算机二级考试科目之一.下面是小编为大家整理的2017年9月计算机二级C语言基础试题及答案,欢迎参考~ 2017年9月计算机二级C语言基础试题及答案 一.选择题 ( ...

  4. 江苏省计算机二级c基础知识,江苏省计算机二级C语言基础知识

    江苏省计算机二级C语言基础知识 可分为双极型集成电路.金属氧化物半导体集成电路和双极-金属氧化物半导体集成电路. 知识点3:集成电路的发展趋势 考点点拨:考查芯片和集成电路的制造工艺.发展趋势.主要以 ...

  5. C语言基础-数据类型

    数据类型 基本类型 基本类型就是我们在使用C语言时最基础的数据类型,包括整形(短整型,基本整型,长整型).字符型.浮点型(单.双精度)以及枚举类型. 构造类型 在编程的过程中只使用基本类型是远远不够的 ...

  6. C语言基础-基本算法

    C语言基础-基本算法 在之前的两篇文章中介绍了C语言的入门程序入门程序1,入门程序2,从这篇文章我们就开始介绍C语言基础. 今天来给大家介绍算法的特性和算法的表示. 算法的基本特性 算法包含两方面的内 ...

  7. C语言基础-简单程序分析

    在上一篇文章里介绍了C语言的入门程序HelloWorld,入门程序HelloWorld 在这一篇里我们继续来看C语言的入门程序,我们先来看一个简单的程序. #include<stdio.h> ...

  8. 计算机应用基础是文管二级吗,计算机应用基础(文管二级)习题册.doc

    计算机应用基础(文管二级)习题册 计算机应用基础(文管二级) 习题册 河南经贸职业学院信息管理系 二〇一〇年三月 目 录 主要知识点及学时分配- 1 - 第一部分 选择题- 3 - 一. 计算机基础知 ...

  9. 计算机二级msoffice应用基础,计算机二级MSOffice高级应用考试基础知识

    计算机二级MSOffice高级应用考试基础知识 计算机应用主要是科学计算.工程设计等数值应用,这一阶段使用第一代电子管计算机(数字机和模拟机),硬件体积庞大,运算速度慢,系统维护需要较高的技术,软件尚 ...

最新文章

  1. python 对象_python面向对象
  2. 分享一百多套开发视频教程的下载地址(转)
  3. 【Android 逆向】ELF 文件格式 ( ELF 程序头入口大小 | ELF 程序头入口个数 | ELF 文件节区头入口大小 | ELF 文件节区头入口个数 | 字符表序号 )
  4. 大学c语言程序设计期末考试试卷,大学大一c语言程序设计期末考试试卷及答案.doc...
  5. 无法使用此安装程序来安装 .net framework_NuGet是什么?理解与使用(上)
  6. MYSQL常用操作(一)之设置ROOT密码,连接,常用命令
  7. linux下启动nfs服务,linux下Samba服务和NFS服务配置的方法
  8. Drawable之color示例
  9. CFS调度主要代码分析二
  10. matlab求解极限问题(limit函数的用法)
  11. VUE调用打印机打印页面
  12. 主流流媒体服务器介绍
  13. Little Dima and Equation
  14. 验收测试的名词解释_验收测试工作流程及准则
  15. Java英语单词(5000个)
  16. abd获取手机应用的安装包
  17. 决策树之C4.5实现(离散属性与连续,属性并存)
  18. 交易所通用质押式回购
  19. uuid php,php生成uuid介绍
  20. OpenSSL 代码问题漏洞(CVE-2020-1971)(CVE-2020-1967)

热门文章

  1. android自定义3d饼图,Android使用j4lChartAndroid插件绘制3D饼图
  2. Macbook用户如何在外部显示器上获得4K 60 FPS的技巧
  3. 单元测试junit4
  4. 最新前端开发面试笔试题及答案---图片(面试题系列持续更新中)(4)
  5. 【板栗糖GIS】win11提示无法成功操作 因为文件包含病毒
  6. MaxEnt软件的使用
  7. 某电商网站的数据库设计(6)——创建查询销售数据的视图
  8. 以三维视频融合为核心的[点卯.增强虚拟全景平台]免费版,在智慧城市和安防监控行业中的应用
  9. 数字通信系统中的频带利用率
  10. POJ - Frogs' Neighborhood(Havel-Hakimi)