更多资料下载链接如下

专升本C语言——资料复习大全

  • 需要全套资料的请私信作者
    • 第1章 程序设计和C语言
      • 1.1 考试内容
        • 一、计算机程序
        • 二、计算机语言
        • 三、C语言的发展及其特点
        • 四、简单的C语言程序
        • 五、运行C程序的步骤与方法
        • 六、程序设计的任务
      • 1.4 练习题库
      • 1.5 考点必背
    • 第2章 算法--程序的灵魂
      • 1.1 考试内容
      • 1.2 基本要求
      • 1.3 主要知识点
        • 一、程序=算法+数据结构
        • 二、算法概述
        • 三、算法的特性
        • 四、怎样表示一个算法
      • 1.4 练习题库
      • 1.5 考点必背
    • 第3章 最简单的C程序设计--顺序程序设计
      • 1.1 考试内容
      • 1.2 基本要求
      • 1.3 主要知识点
        • 一、数据的表现形式及其运算
        • 二、运算符和表达式
        • 三、C语句
        • 四、数据的输入与输出
      • 1.4 练习题库
      • 1.5 考点必背
    • 第4章 选择结构程序设计
      • 1.1 考试内容
      • 1.2 基本要求
      • 1.3 主要知识点
      • 1.4 练习题库
      • 1.5 考点必背
    • 第5章 循环结构程序设计
      • 1.1 考试内容
      • 1.2 基本要求
      • 1.3 主要知识点
      • 一、为什么需要循环控制
      • 二、用while语句实现循环
      • 三、用do..while语句实现循环
      • 四、用for语句实现循环
      • 五、循环的嵌套
      • 六、改变循环执行的状态
      • 1.4 练习题库
      • 1.5 考点必背
    • 第6章 利用数组处理批量数据
      • 1.1 考试内容
      • 1.2 基本要求
      • 1.3 主要知识点
        • 一、定义和引用一维数组
        • 二、定义和引用二维数组.
        • 三、字符数组
      • 1.4 练习题库
    • 第7章 用函数实现模块化程序设计
      • 1.1 考试内容
      • 1.2 基本要求
      • 1.3 主要知识点
        • 一、函数的作用
        • 二、定义函数
        • 三、调用函数
        • 四、对被调用函数的声明和函数原型
        • 五、函数的嵌套调用
        • 六、函数的递归调用
        • 七、数组作为函数参数
        • 八、局部变量和全局变量
        • 十、关于变量的声明和定义
        • 十一、内部函数和外部函数
      • 1.4 练习题库
    • 编程必背题
      • 题目:输入三个整数x,y,z,请把这三个数由小到大输出。
      • 题目:输出9*9口诀。
      • 题目:古典问题(兔子生崽):
      • 题目:判断 101 到 200 之间的素数。
      • 题目:打印出所有的"水仙花数"。
      • 题目:将一个正整数分解质因数。
      • 题目:利用条件运算符的嵌套来完成此题。
      • 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
      • 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
      • 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
      • 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。
      • 题目:小球落地问题
      • 题目:猴子吃桃问题。
      • 题目:分数求和问题。
      • 题目:求1+2!+3!+...+20!的和。
      • 题目:利用递归方法求5!。
      • 题目:用递归求年龄
      • 题目:一个5位数,判断它是不是回文数。
      • 题目:求100之内的素数(又称质数)。
      • 题目:对10个数进行排序。
      • 题目:求一个3*3矩阵对角线元素之和
      • 题目:将一个数组逆序输出。
      • 题目:打印出杨辉三角形(要求打印出10行)。
      • 题目:写一个函数,求一个字符串的长度
      • 题目:输入一个整数,并将其反转后输出。
      • 题目:猴子分桃
      • 题目:输入三角形的三边长,求三角形面积。
      • 题目:求出1到1000之内能被7或11整除 但不能同时被7和11整除的所有整数。要求输出结果5个一行。

需要全套资料的请私信作者

第1章 程序设计和C语言

1.1 考试内容

1.C语言的简史与特点;
2.简单的C程序结构;
3.程序的编辑、编译、链接和运行。
1.2 基本要求
1.掌握C程序的一般书写形式;
2.掌握C程序编辑、编译、链接、调试和执行的基本过程。
1.3 主要知识点

一、计算机程序

1.程序就是一组计算机能识别和执行的指令
2.计算机的一切操作都是由程序控制的

二、计算机语言

1.定义
人和计算机交流信息,要解决语言问题。需要创造一种计算机和人都能识别的语言,这就是计算机语言。
2.发展阶段
计算机语言经历了几个发展阶段:
(1)机器语言
(2)符号语言
(3)高级语言

三、C语言的发展及其特点

1.概述
(1) C语言是国际上广泛流行的计算机高级语言。
(2) C语言的祖先是BCPL语言。
2.发展
最初的C语言只是为描述和实现UNIX操作系统提供-种工作语言而设计的,后来逐步发展为一种高级编
程语言,目前C语言使用的标准是1999年修正的C99。
3.特点
(1)语言简洁、紧凑,使用方便、灵活
(2)运算符丰富
(3)数据类型丰富
(4)具有结构化的控制语句
(5)语法限制不太严格,程序设计自由度大
(6)C语言允许直接访问物理地址
(7)用C语言编写的程序可移植性好
(8)生成目标代码质量高,程序执行效率高

四、简单的C语言程序

(1)一个程序由一个或多个源程序文件组成
在一个源程序文件中可以包括3个部分:
①预处理指令
②全局声明
③函数定义
(2)函数是C程序的主要组成部分
①函数是C程序的基本单位。
②一个C语言程序是由一个或多个函数组成的,有且仅有一个main函数。
③一个小程序只包含-一个源程序文件。
④函数既可以是库函数,也可以是用户自定义函数。
(3)函数的两个部分
①函数首部
函数首部包括函数名、函数类型、函数属性、函数参数(形式参数)名、参数类型。
②函数体
即函数首部下面的花括号内的部分。函数体一般包括两部分:声明部分和执行部分。.
(4)程序总是从main函数开始执行的
(5)程序中对计算机的操作是由函数中的C语句完成的
(6)在每个数据声明和语句的最后必须有一个分号
(7)C语言本身不提供输入输出语句
(8)程序应当包含注释

五、运行C程序的步骤与方法

C程序运行步骤图如图1-1所示。其中实线表示操作流程,虚线表示文件的输入输出。

六、程序设计的任务

程序设计是指从确定任务到得到结果、写出文档的全过程。从确定问题到最后完成任务,一般经历以下几个
工作阶段:
1.问题分析
2.设计算法
3.编写程序
4.对源程序进行编辑、编译和连接,得到可执行程序
5.运行程序,分析结果
6.编写程序文档

1.4 练习题库

选择题
1 构成C程序的三种基本结构是( )。
A.顺序结构、转移结构、递归结构
B.顺序结构、嵌套结构、递归结构
C.顺序结构、选择结构、循环结构
D.选择结构、循环结构、嵌套结构

2 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是( )。
A.C语言程序仅可以编译执行
B.C语言程序仅可以解释执行
C.C语言程序既可以编译执行,又可以解释执行
D.以上说法都不对

3 以下叙述中错误的是( )。
A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B.C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D.C语言源程序经编译后生成后缀为.obj的目标程序

4 以下叙述中错误的是( )。
A.C语言的可执行程序是由一系列机器指令构成的
B.用C语言编写的源程序不能直接在计算机上运行
C.通过编译得到的二进制目标程序需要连接才可以运行
D.在没有安装C语言集成开发环境的机器上不能运行C源程序生成的exe文件

5 以下叙述正确的是( )。
A.C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件
B.C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.exe的可执行文件
C.C编译程序把文件后缀为.obj的二进制文件编译成文件后缀为.exe的可执行文件
D.链接程序把文件后缀为.c的源程序文件链接成文件后缀为.exe的可执行文件

6 计算机能直接执行的程序是( )。
A.源程序
B.目标程序
C.汇编程序
D.可执行程序

7 针对简单程序设计,以下叙述的实施步骤正确的是( )。
A.确定算法和数据结构、编码、调试、整理文档
B.编码、确定算法和数据结构、调试、整理文档
C.整理文档、确定算法和数据结构、编码、调试
D.确定算法和数据结构、调试、编码、整理文档

8 以下叙述中正确的是( )。
A.程序设计的任务就是编写程序代码并上机调试
B.程序设计的任务就是确定所用数据结构
C.程序设计的任务就是确定所用算法
D.以上三种说法都不完整

9 以下叙述中错误的是( )。
A.C程序在运行过程中所有计算都以十进制方式进行
B.C程序在运行过程中所有计算都以二进制方式进行
C.所有C程序都需要编译链接无误后才能运行
D.C程序中字符变量存放的是字符的ASCII值

10 关于程序设计基本概念,以下叙述错误的是( )。
A.计算机可以直接执行由任意高级语言编写的程序
B.高级语言都有与之对应的编译程序或解释程序
C.用任何一种计算机高级语言都可以把算法转换为程序
D.结构化算法可以解决任何复杂的问题

11 以下关于算法的叙述中错误的是( )。
A.算法可以用伪代码、流程图等多种形式来描述
B.一个正确的算法必须有输入
C.一个正确的算法必须有输出
D.用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码

12 以下叙述中错误的是( )。
A.算法正确的程序最终一定会结束
B.算法正确的程序可以有零个输出
C.算法正确的程序可以有零个输入
D.算法正确的程序对于相同的输入一定有相同的结果

13 以下选项中叙述正确的是( )。
A.C程序中的语句要经过编译才能转换成二进制机器指令
B.算法需要包含所有三种基本结构
C.有些算法不能用三种基本结构来表达
D.简单算法的操作步骤不能超过20步

14 流程图是描述算法的很好的工具,一般的流程图中由几种基本图形组成。其中判断框的图形是()。
A.菱形
B.长方形
C.平行四边形
D.椭圆型

15 C语言主要是借助以下( )功能来实现程序模块化的。
A.定义函数
B.定义常量和外部变量
C.三种基本结构语句
D.丰富的数据类型

16 以下选项中叙述正确的是( )。
A.结构化程序的三种基本结构是循环结构、选择结构、顺序结构
B.C语言源程序不编译也能直接运行
C.使用N-S流程图不能描述复杂算法
D.计算机能够直接运行C语言源程序,不必进行任何转换

17 以下选项中关于程序模块化的叙述错误的是( )。
A.把程序分成若干相对独立的模块,可便于编码和调试
B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块
C.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序

18 以下关于结构化程序设计的叙述中正确的是( )。
A.一个结构化程序必须同时由顺序、分支、循环三种结构组成
B.结构化程序使用goto语句会很便捷
C.在C语言中,程序的模块化是利用函数实现的
D.由三种基本结构构成的程序只能解决小规模的问题

19 以下叙述中错误的是( )。
A.使用三种基本结构构成的程序只能解决简单问题
B.结构化程序由顺序、分支、循环三种基本结构组成
C.C语言是一种结构化程序设计语言
D.结构化程序设计提倡模块化的设计方法

20 以下叙述中正确的是( )。
A.在算法设计时,可以把复杂任务分解成一些简单的子任务
B.在C语言程序设计中,所有函数必须保存在一个源文件中
C.只要包含了三种基本结构的算法就是结构化程序
D.结构化程序必须包含所有的三种基本结构,缺一不可

21 以下选项中叙述正确的是( )。
A.使用三种基本结构就可以实现任何复杂算法
B.只要程序包含了三种基本结构中的任意一种,就是结构化程序
C.程序语法错误要在运行时才能发现
D.C语言程序不需要包含main( )函数

22 结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是( )。
A.三种基本结构不可以嵌套使用
B.顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移
C.选择结构是根据不同的条件执行不同分支中的语句
D.循环结构是根据条件决定是否重复、重复执行多少次循环体语句

23 以下叙述错误的是( )。
A.在进行模块化程序设计的时候,应首先完成每个模块的编写调试,再集中考虑主程序中的算法
B.同一程序各模块可由不同人员同时进行编写调试,可提高编写程序的效率
C.模块化的程序设计是采用自顶向下、逐步细化的原则
D.程序的每个模块都可通过三种基本结构实现

1.5 考点必背

  1. C语言编译程序的功能是把C源程序翻译成机器代码
  2. C语言程序仅可以编译执行
  3. C语言中的每条可执行语句最终都将被转换成二进制的机器指令
  4. C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件
  5. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
  6. C语言源程序经编译后生成后缀为.obj的目标程序
  7. C语言经过编译链接后的二进制目标代码可以脱离C语言集成开发环境独立运行
  8. C语言的可执行程序是由一系列机器指令构成的
  9. 用C语言编写的源程序不能直接在计算机上运行
  10. 通过编译得到的二进制目标程序需要连接才可以运行
  11. C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件
  12. 计算机能直接执行的程序是可执行程序
  13. 对简单程序设计的实施步骤正确的是确定算法和数据结构、编码、调试、整理文档
  14. 程序设计是指设计、编程、调试程序的方法和过程,通常分为4 个阶段:① 问题建模;② 算法设计;③ 编写代码;④ 编译调试。
  15. C程序在运行过程中所有计算都以二进制方式进行
  16. 所有C程序都需要编译链接无误后才能运行
  17. C程序中字符变量存放的是字符的ASCII值
  18. 一个正确的算法必须有输入(错)
  19. 算法正确的程序可以有零个输出(错)
  20. C程序中的语句要经过编译才能转换成二进制机器指令
  21. 构成C程序的三种基本结构是顺序结构、选择结构、循环结构
  22. C语言主要是借助以下定义函数功能来实现程序模块化的
  23. 程序模块化:把程序分成若干相对独立的模块,可便于编码和调试;把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块;可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序。
  24. 在算法设计时,可以把复杂任务分解成一些简单的子任务
  25. 使用三种基本结构就可以实现任何复杂算法
  26. 在进行模块化程序设计的时候,应首先完成每个模块的编写调试,再集中考虑主程序中的算法
  27. C语言是一个函数式语言,有且仅有一个叫做“main” 的主函数。
  28. 程序从“main”中开始,在“main”中结束。
  29. 函数不能嵌套定义,可以嵌套使用(每个函数地位一样)。
  30. 一个C语言由函数组成,用“;”作语句结束符。
  31. 标识符是以字母或下划线开头的一串字母、 数字或下划线构成的序列;标识符
  32. 大小写有区别,不能使用关键字。关键字共有32个(主要有: auto, break, case,char,continue,default, do, double, else, extern, float, for, if, int, long,returm,short,singed, sizeof, static, struct, switch, typedef, union, void, while), 关键字均为小写,若为大写则为合法的标识符(如: Do是合法的)

第2章 算法–程序的灵魂

1.1 考试内容

1.算法的概念、算法的特性和算法的度量;
2.自然语言、流程图、N-S图、伪代码和计算机语言表达算法;
3.结构化程序设计方法。

1.2 基本要求

1.理解什么是算法、算法的特性和算法在时间和空间上的度量;
2.掌握算法的表达方法;理解结构化程序设计的基本思想。

1.3 主要知识点

一、程序=算法+数据结构

一个程序主要包括以下两方面的信息:
(1)对数据的描述,即数据结构( data structure)。
(2)对操作的描述,即算法(algorithm)。

二、算法概述

1.算法定义
广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。
2.算法分类
(1)数值运算算法,数值运算的目的是求数值解。
(2)非数值运算算法。

三、算法的特性

1.有穷性
一个算法应包含有限的操作步骤,而不能是无限的。
2.确定性
算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。
3.有零个或多个输入
输入是指在执行算法时需要从外界取得必要的信息。
4.有一个或多个输出
算法的目的是为了求解,“解”是指输出。
5.有效性
算法中的每一个步骤都应当能有效地执行,并得到确定的结果。

四、怎样表示一个算法

1.用自然语言表示算法
自然语言是指人们日常使用的语言,其特点是通俗易懂,但语义语法不严格,描述能力不足。
2. 用流程图表示算法
(1)概述
美国国家标准化协会ANSI规定了一些常用的流程图符号(如图2-1所示),已为世界各国程序工作者普遍.
采用。

(2)流程图元素
①菱形框
菱形框的作用是对一个给定的条件进行判断,根据给定的条件是否成立决定如何执行其后的操作。它有一个
入口,两个出口,如图2-2所示。

②连接点
连接点(小圆圈)是用于将画在不同地方的流程线连接起来,如图2-3所示。

③注释框
注释框不是流程图中必要的部分,不反映流程和操作,只是为了对流程图中某些框的操作必要的补充说明,
以帮助阅读流程图的人更好地理解流程图的作用。
(3)流程图组成
①表示相应操作的框;
②带箭头的流程线;
③框内外必要的文字说明。
3.三种基本结构和改进的流程图
(1)传统流程图的弊端
传统的流程图用流程线指出各框的执行顺序,对流程线的使用没有严格限制。
(2)三种基本结构
①顺序结构
如图2-4所示,虚线框内是一个顺序结构。其中A和B两个框是顺序执行的。顺序结构是最简单的一种基
本结构。

②选择结构
选择结构又称选取结构或分支结构,如图2-5所示。虚线框内是一个选择结构,此结构中必包含一个判断框,
根据给定的条件P是否成立而选择执行A框或B框。

③循环结构
又称重复结构,即反复执行某一部分的操作,有两类循环结构,如图2-6所示。

(3)三种结构共同特点
①只有一个入口;
②只有一个出口;
③结构内的每一部分 都有机会被执行到;
④结构内不存在“死循环”。
基本结构并不一定只限于上面3种,只要具有上述4个特点的都可以作为基本结构。如图2-7为经典的
do…while循环结构、而图2-8为经典的switch选择结构。

4.用N-S流程图表示算法
(1)概述
在这种流程图中,完全去掉了带箭头的流程线。全部算法写在一个矩形框内,在该框内还可以包含其他从属于它的框,或者说,由一些基本的框组成一个大的框,这种流程图又称N-S结构化流程图。
(2) N-S流程图符号
①顺序结构
顺序结构用图2-9形式表示。A和B两个框组成-一个顺序结构。

②选择结构
选择结构用图2-10表示,其中p为判断条件。

③循环结构
当型循环结构用图2-11形式表示,当pi条件成立时反复执行A操作,直到pn条件不成立为止。

直到型循环结构用图2-12形式表示,先执行A操作,然后判断p:条件是否成立,如果p1不成立,反复执行
A,只当p1条件成立才停止循环。.

5.用伪代码表示算法
(1)概述
伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。
(2)特点
①伪代码书写格式比较自由,容易表达出设计者的思想;
②用伪代码写的算法很容易修改;
③用伪代码很容易写出结构化的算法。
6.用计算机语言表示算法
用流程图或伪代码描述一个算法后,还要将它转换成计算机语言程序。用计算机语言表示的算法是计算机能够执行的算法,其必须严格遵循所用语言的语法规则。
五、结构化程序设计方法
1.基本思路:
结构化程序设计方法的基本思路是:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在
人们容易理解和处理的范围内。
2.结构化程序设计方法
(1)自顶向下
(2)逐步细化
(3)模块化设计
(4)结构化编码

1.4 练习题库

1 以下叙述中正确的是( )。
A.在C语言程序中,main函数必须放在其他函数的最前面
B.每个后缀为.c的C语言源程序都可以单独进行编译
C.在C语言程序中,只有main函数才可以单独进行编译
D.每个后缀为.c的C语言源程序都应该包含一个main函数

2 以下叙述中错误的是( )。
A.C语言编写的函数源程序,其文件名后缀可以是.c
B.C语言编写的函数都可以作为一个独立的源程序文件
C.C语言编写的每个函数都可以进行独立的编译并执行
D.一个C语言程序只能有一个主函数

3 以下叙述中错误的是( )。
A.一个C程序可以包含多个不同名的函数
B.一个C程序只能有一个主函数
C.C程序在书写时,有严格的缩进要求,否则不能编译通过
D.C程序的主函数必须用main作为函数名

4 以下叙述中正确的是( )。
A.C语言规定必须用main作为主函数名,程序将从此开始执行
B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C.C语言程序将从源程序中第一个函数开始执行
D.main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等

5 下列叙述中错误的是( )。
A.C程序可以由一个或多个函数组成
B.C程序可以由多个程序文件组成
C.一个C语言程序只能实现一种算法
D.一个C函数可以单独作为一个C程序文件存在

6 下列叙述中错误的是( )。
A.C程序在运行过程中所有的计算都以二进制方式进行
B.C程序在运行过程中所有的计算都以十进制方式进行
C.所有的C程序都需要在连接无误后才能运行
D.C程序中整型变量只能存放整数,实型变量只能存放浮点数

7 以下叙述正确的是( )。
A.C语言程序是由过程和函数组成的
B.C语言函数可以嵌套调用,例如:fun(fun(x))
C.C语言函数不可以单独编译
D.C语言中除了main函数,其他函数不可作为单独文件形式存在

9 下列叙述中正确的是( )。
A.每个C程序文件中都必须要有一个main函数
B.在C程序中main函数的位置是固定的
C.C程序中所有函数之间都可以相互调用
D.在C程序的函数中不能定义另一个函数

11 以下关于C语言的叙述中正确的是( )。
A.C语言中的注释不可以夹在变量名或关键字的中间
B.C语言中的变量可以在使用之前的任何位置进行定义
C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D.C语言的数值常量中夹带空格不影响常量值的正确表示

12 以下叙述中正确的是( )。
A.C程序的基本组成单位是语句
B.C程序中的每一行只能写一条语句
C.简单C语句必须以分号结束
D.C语言必须在一行内写完

13 以下选项中叙述正确的是( )。
A.函数体必须由{开始
B.C程序必须由main语句开始
C.C程序中的注释可以嵌套
D.C程序中的注释必须在一行完成

14 以下叙述中正确的是( )。
A.C程序中的注释只能出现在程序的开始位置和语句的后面
B.C程序书写格式严格,要求一行内只能写一个语句
C.C程序书写格式自由,一个语句可以写在多行上
D.用C语言编写的程序只能放在一个程序文件中

15 以下叙述中错误的是( )。
A.书写风格良好的程序执行效率高
B.书写风格良好的程序易读性好
C.C程序可以在一行上写多条语句
D.C程序允许将一条语句分写在多行上

17 有以下程序

#include <stdio.h>
main()
{ int a=0,b=0; /*给a赋值a=10; b=20;给b赋值*/printf("a+b=%d\n",a+b);/*输出计算结果*/
}

程序运行后的输出结果是( )。
A.a+b=0
B.a+b=30
C.a+b=10
D.出错

18 关于C语言的变量名,以下叙述正确的是( )。
A.变量名不可以与关键字同名
B.变量名不可以与预定义标识符同名
C.变量名必须以字母开头
D.变量名是没有长度限制的

19 以下选项中叙述正确的是( )。
A.C语言的标识符可分为关键字、预定义标识符和用户标识符三类
B.C语言的标识符可分为语句、变量和关键字三类
C.C语言的标识符可分为函数名、变量和预定义标识符三类
D.C语言的标识符可分为运算符、用户标识符和关键字三类

21 关于C语言标识符,以下叙述错误的是( )。
A.标识符可全部由数字组成
B.标识符可全部由下划线组成
C.标识符可全部由小写字母组成
D.标识符可全部由大写字母组成

22 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。
A.大写字母
B.连接符
C.数字字符
D.下划线

23 以下C语言用户标示符中,不合法的是( )。
A._1
B.AaBc
C.a_b
D.a–b

24 以下选项中,能用作用户标识符的( )。
A.void
B.8_8
C.0
D.unsigned

28 下列定义变量的语句中错误的是( )。
A.double int_;
B.float US$;
C.char For;
D.int _int;

29 以下叙述中错误的是( )。
A.非零的数值型常量有正值和负值的区分
B.常量是在程序运行过程中值不能被改变的量
C.定义符号常量必须用类型名来设定常量的类型
D.用符号名表示的常量叫符号常量

31 以下选项中不能用作C程序合法常量的是( )。
A.1,234
B.“\123”
C.123
D.“\x7D”

32 以下选项中能表示合法常量的是( )。
A.整数:1,200
B.实数:1.5E2.0
C.字符斜杠:‘’
D.字符串:“\007”

33 以下选项中不能作为C语言合法常量的是( )。
A.‘cd’
B.0.1e+6
C.“a”
D.‘\011’

34 以下选项中,合法的C语言常量是( )。
A.1.234
B.‘C++’
C."\2.0
D.2Kb

35 以下选项中,能用作数据常量的是( )。
A.115L
B.0118
C.1-5e1.5
D.o115

38 以下选项中正确的定义语句是( )。
A.double a;b;
B.double a=b=7;
C.double a=7,b=7;
D.double,a,b;

40 以下关于C语言数据类型使用的叙述中错误的是( )。
A.若只处理“真”和“假”两种逻辑值,应使用逻辑类型
B.若要保存带有多位小数的数据,可使用双精度类型
C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D.整数类型表示的自然数是准确无误差的

51 若函数中有定义语句:
int k;
则( )。
A.系统将自动给k赋初值0
B.这时k中的值无定义
C.系统将自动给k赋初值-1
D.这时k中无任何值

52 有以下程序
#include<stdio.h>
main()
{
int s,t,A=10;
double B=6;
s=sizeof(A);
t=sizeof(B);
printf(“%d,%d\n”,s,t);
}
在VC++2010平台上编译运行,程序运行后的输出结果是( )。
A.2,4
B.4,4
C.4,8
D.10,6

53 关于C语言中数的表示,以下叙述中正确的是( )。
A.只有整型数在允许范围内能精确无误地表示,实型数会有误差
B.只要在允许范围内整型和实型都能精确表示
C.只有实型数在允许范围内能精确无误地表示,整型数会有误差
D.只有八进制表示的数才不会有误差

56 以下选项中可用作C程序合法实数的是( )。
A..1e0
B.3.0e0.2
C.E9
D.9.12E
58 以下选项中,合法的C语言实数是( )。
A.3.1e0.4
B..2e0
C.E13
D.7.12E

60 以下选项中,合法的数值型常量是( )。
A.3.1415
B.“A”
C.092
D.0xDH

62 若有定义语句:
int a=10;double b=3.14;
则表达式’A’+a+b值的类型是( )。
A.char
B.int
C.double
D.float

63 若有定义:
int a=1,b=2,c=3;
则执行表达式(a=b+c)||(++b)后,a、b、c的值依次为( )。
A.1,2,3
B.5,3,2
C.5,2,3
D.5,3,3

64 C语言程序中,运算对象必须是整型数的运算符是( )。
A.&&
B./
C.%
D.*

69 设变量x为long int型并已正确赋值,以下表达式中能将x的百位上的数字提取出来的是( )。
A.x/10%100
B.x%10/100
C.x%100/10
D.x/100%10

72 若有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y;,则z的
值为( )。
A.1.9
B.1
C.2
D.2.4

73 表达式:(int)((double)9/2)-9%2的值是( )。
A.0
B.3
C.4
D.5

74 设有定义:int x=7,y=12;,则以下表达式值为3的是( )。
A.(y%=x)-(x%=5)
B.y%=(x%=5)
C.y%=x-x%5
D.y%=(x-x%5)

75 表达式3.6-5/2+1.2+5%2的值是( )。
A.4.8
B.3.8
C.3.3
D.4.3

76 表达式a+=a-=a=9的值是( )。
A.9
B.-9
C.18
D.0

79 设有定义:
int x=2;
以下表达式中,值不为6的是( )。
A.x*=x+1
B.x++,2x
C.x
=(1+x)
D.2*x,x+=2

82 以下选项中,当x为大于1的奇数时,值为0的表达式是( )。
A.x%2
B.x/2
C.x%2!=0
D.x%2==0

84 有以下程序:

#include<stdio.h>
main()
{ int a; a=(int)1.99*3;printf("%d\n",a);
}

程序的运行结果是( )。
A.3
B.5
C.6
D.结果不确定

90 有以下程序:

#include <stdio.h>
#include <math.h>
main()
{ int a = 1,b=4,c =2; double x = 10.5,y = 4.0,z; z = (a + b)/c +sqrt(y)*1.2/c+x; printf("%f\n",z);
}

程序运行后的输出结果是( )。
A.13.700000
B.14.000000
C.15.400000
D.14.900000

95 设a、b、c是整型变量,且已正确赋初值,以下选项中错误的赋值语句是( )。
A.a=1%(b=c=2);
B.a=(b=3)*c;
C.a=b=c/10;
D.a=2=(b=9)=1;

96 若已有定义语句:int a,b,c;,且变量已正确赋初值,则以下选项中正确的赋值表达式是( )。
A.a=(b=c)+8;
B.(a=b)=c=9;
C.a=(b==c)=‘A’;
D.a+b=c+1;

98 若有定义
double a=22;int i=0,k=18;
则不符合C语言规定的赋值语句是( )。
A.a=a++,i++
B.i=(a+k)<=(i+k)
C.i=a%11
D.i=!a

99 设变量已正确定义并赋值,以下正确的表达式是( )。
A.x=y*5=x+z
B.int(15.8%5)
C.x=y+z+5,++y
D.x=25%5.0

100 若变量均已正确定义并赋值,以下合法的C语
言赋值语句是( )。
A.x=y==5;
B.x=n%2.5;
C.x+n=i;
D.x=5=4+1;

101 以下选项中合法的C语言赋值语句是( )。
A.++i;
B.a=b=34
C.a=3,b=9
D.k=int(a+b);

102 设有定义:int x=11,y=12,z=0;,以下表达式值不等于12的是( )。
A.(z,x,y)
B.(z=x,y)
C.z=(x,y)
D.z=(x==y)

103 若有定义语句:
int x=10;
则表达式x-=x+x的值为( )。
A.-20
B.-10
C.0
D.10

104 若有定义语句:
int a=12;
则执行语句:a+=a-=a*a;后,a的值是( )。
A.-264
B.552
C.144
D.264

105 有以下定义
int a;
long b;
double x,y;
则以下选项中正确的表达式是( )。
A.(a*y)%b
B.a==x<>y
C.a%(int)(x-y)
D.y=x+y=a

106 有以下程序

#include <stdio.h>
#include <math.h>
main()
{ int a =3; printf("%d\n",(a+=a-=a*a));
}

程序运行后的输出结果是( )。
A.-12
B.9
C.0
D.3

107 设有定义:
int k=0;
以下选项的四个表达式中与其他三个表达式的值不相同的是( )。
A.++k
B.k+=1
C.k++
D.k+1

108 设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是( )。
A.x++;printf(“%d\n”,x);
B.n=++x;printf(“%d\n”,n);
C.++x;printf(“%d\n”,x);
D.n=x++;printf(“%d\n”,n);

110 有以下程序:

#include<stdio.h>
main(){ int i,j,k,a=5,b=6; i=(a==b)?++a:--b; j=a++; k=b; printf("%d,%d,%d\n",i,j,k);
}

程序的运行结果是( )。
A.7,6,5
B.5,5,5
C.7,5,5
D.5,6,5

111 有以下程序:

#include<stdio.h>
main()
{ int a; scanf("%d",&a); if(a++<9)printf("%d\n",a); else printf("%d\n",a--);
}

程序运行时键盘输入9<回车>,则输出的结果是( )。
A.10
B.11
C.9
D.8

112 有以下程序:

#include <stdio.h>
main()
{ int a=1,b=0; if(--a) b++; else if(a==0) b+=2; else b+=3; printf("%d\n",b);
}

程序运行后的输出结果是( )。
A.0
B.1
C.2
D.3

113 有以下程序:

#include <stdio.h>
main()
{ int a=7; while(a--); printf("%d\n",a);
}

程序运行后的输出结果是( )。
A.-1
B.0
C.1
D.7

114 有以下程序:

#include <stdio.h>
main()
{ int a=1,b=1; while(a--) b--; printf("%d,%d\n", a,b);
}

程序的运行结果是( )。
A.-1,0
B.0,0
C.-1,-1
D.1,1

115 有以下程序

#include <stdio.h>
main()
{ int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z);
}

程序运行后的输出结果是( )。
A.2,3,1
B.2,3,2
C.2,3,3
D.2,2,1

116 以下程序段中的变量已定义为int类型,则
sum=pAd=5;
pAd=sum++,++pAd,pAd++;
printf(“%d\n”,pAd);
程序段的输出结果是( )。
A.6
B.4
C.5
D.7

117 有以下程序

#include<stdio.h>
main()
{ int sum,pad,pAd; sum=pad=5; pAd=++sum,pAd++,++pad; printf("%d\n",pad);
}

程序的输出结果是( )。
A.8
B.5
C.7
D.6

1.5 考点必背

  1. 普通字符常量是用单撇号括起来的一个字符。
  2. 常用的以‘\’开头的特殊字符:\n:换行 \t:横向跳格 \b:退格 \r:回车
  3. C 语言中没有字符串变量,用字符数组存放。‘a’是字符常量,“a”是字符串 常量,‘ab’既不是字符常量,也不是字符串变量。存储时自动在结尾加’\0’为结 束标志,所以在内存中占的字节要在原本再加一。
  4. 变量与变量间用逗号分开;变量必须先定义后使用;定义时系统给该变量分配变量空间,只有分配了变量空间才有意义。
  5. a 与!a=0 等价;!a 与 a==0 等价。
  6. 在 C 语言中用 1 表示逻辑真,用 0 表示逻辑假。在关系表达式和逻辑表达式中只有两个结果(0 或 1)。
  7. 判断 A 与 B 是否相等(fabs(A—B)<1e—6)
  8. 用条件表达式求 A、B、C 中最大的数:C>(A>B?A:B)? C(A>B?A:B)
  9. 在进行四则混合运算时,表达式的结果由参与运算的数据项的最高类型决定;编程时,只允许低类型数据向高类型数据转换(如果精度高的向精度低的转换则会丢失精度:如:int i;i=2.56 则结果为 2)。
  10. i=3 求 t=(i++)+(i++)+(i++)+(i++)+(++i) 进行此类计算时,先扫描前两项,若有++i 则先运算,然后前两项取同样的值,后面的再依次进行运算。(++i 是先运算再取值,i++是先取值再运算) 此题 t=16,i=8
  11. 每个后缀为.c的C语言源程序都可以单独进行编译。
  12. 只有含有main函数的经过编译链接才能执行。
  13. C程序在书写时没有严格的缩进要求
  14. C语言规定,程序从main函数开始执行,从main函数退出
  15. 一个C语言程序可以实现多种算法
  16. 在C程序运行过程中,编译器的作用是将程序转换为目标代码,目标代码都是二进制的
  17. C语言函数可以嵌套调用,例如:fun(fun(x))
  18. 函数的定义不能放在另一个函数体内,但是声明可以
  19. C语言中的注释不可以夹在变量名或关键字的中间简单
  20. C语句必须以分号结束
  21. C程序中,一行内可写多个语句,每条语句用分号“;”结束
  22. C语言的变量名不可以与关键字同名
  23. C语言的标识符可分为关键字、预定义标识符和用户标识符三类
  24. C语言标识符只能由字母、数字、下划线构成,且只能以字母、下划线开头
  25. C语言中没有逻辑类型,在C++中才引入的
  26. VC++2010中整型占4个字节,双精度实型占8个字节
  27. 只有整型数在允许范围内能精确无误地表示,实型数会有误差
  28. 模(%)运算中不能出现浮点数,运算对象只能是整数
  29. 在C语言的算术运算符中,取余运算符“%”的左右两侧的两个运算分量必须是整数
  30. 赋值运算符左边必须是一个变量
  31. 单目加运算符优先级高于赋值运算符“++”和“–”运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当以后缀形式出现时,则先取值,再进行加一或减一操作。++x表示先将x值加1后再用,x++表示先使用x值,用后再加1
  32. while(a–);程序中执行a–,直到while判断为0时才跳出循环,执行下条语句

第3章 最简单的C程序设计–顺序程序设计

1.1 考试内容

1.关键字与标识符的概念:关键字的含义,标识符的定义,常量和变量的分类;
2.数据类型:数据类型的含义、特点,不同类型常量的表达,不同类型变量的定义、赋初值方法;
3.运算符:各类运算符的含义、优先级,各类表达式的表示方法、运算特点、值的类型和计算方法,各类公式的表达式描述和各类表达式的混合运算;
4.输入输出:常用的输入输出函数,基本的输入输出格式;
5.赋值语句:赋值语句功能和表达方法;
6.顺序程序设计:编写顺序结构语句及程序。

1.2 基本要求

1.理解关键字与标识符的概念、应用特点,理解数据类型的含义和常量、变量的分类;
2.掌握各数据类型的含义、特点,不同类型常量的表达,不同类型变量的定义和赋初值方法;
3.掌握不同数据类型的表示范围和溢出、数据类型的隐式、显式转换;
4.熟练掌握各类运算符的含义、优先级,各类表达式的表示方法、运算特点、
值的类型和计算方法,能够进行各类公式的表达式描述和各类表达式的混合运算;
5.掌握数据输入输出函数的使用方法和特点;
6.熟练掌握顺序程序设计的思想和编程方法,能够熟练编写简单问题的程序并上机调试。

1.3 主要知识点

一、数据的表现形式及其运算

1.常量和变量
(1)常量
在程序运行过程中,其值不能被改变的量称为常量,数值常量就是数学中的常数。
常用的常量有以下几类:
①整型常量:
②实型常量,包括十进制小数形式和指数形式;
③字符常量,包括普通字符和转义字符,常见的转义符有换行符’\n’和制表符’\t’;
④字符串常量,字符串常量是双撇号中的全部字符:
⑤符号常量,用#define 指令,指定用一个符号名称代表一个常量。
(2)变量
变量代表一个有名字的、具有特定属性的一个存储单元,变量必须先定义,后使用。
(3)常变量
常变量是有名字的不变量,而且在变量存在期间其值不能改变。
(4)标识符
①定义
在计算机高级语言中,用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符( identifier )。
②组成规则.
a.C语言规定标识符只能由字母、数字和下划线3种字符组成,且第1个字符必须为字母或下划线。
b.编译系统将大写字母和小写字母认为是两个不同的字符。
2.数据类型
C语言允许使用的类型,如图3-1所示,图中有*的是C99所增加的。

3.整型数据
整型数据常见的存储空间和值的范围如表3-1所示。

4.字符型数据
(1)字符与字符代码
常用的字符与字符代码如表3-2所示。

(2)字符变量
字符变量是用类型符char定义字符变量。字符类型也属于整型,也可以用signed和unsigned修饰符。字符型数据的存储空间和值的范围见表3-3。

5.浮点型数据
浮点型数据的有关情况如表3-4所示。

6.怎样确定常量的类型
从常量的表示形式即可以判定其类型。对于字符常量很简单,只要看到由单撇号括起来的单个字符或转义字
符就是字符常量。对于数值常量按以下规律:
(1)整型常量
不带小数点的数值是整型常量,但应注意其有效范围。
(2)浮点型常量
凡以小数形式或指数形式出现的实数,是浮点型常量,在内存中都以指数形式存储。

二、运算符和表达式

1.C运算符
除了算术运算符外,C还提供其他运算符,共有以下类别:
① 算术运算符(+ - * / % ++ --)
关系运算符(> < == >= <= !=)
逻辑运算符(! && ||) .
位运算符(<< >> ~ | ⋀ &)
赋值运算符(=及其扩展赋值运算符)
条件运算符(?:)
逗号运算符(,)
指针运算符(*和&)
求字节数运算符(sizeof)
强制类型转换运算符((类型))
成员运算符(.->)
下标运算符([])
其他(如函数调用运算符())
2.基本的算术运算符
基本的算术运算符见表3-5。

3.自增、自减运算符
++i, --i: 在使用i之前,先使i的值加(减) 1;
i++,i–: 在使用i之后,使i的值加(减) 1。
4.算术表达式和运算符的优先级与结合性
C算术表达式是指将运算对象通过算术运算符和括号连接起来的、符合C语法规则的表达式。其中算术运算符是自左至右,赋值运算符是自右至左的。
5.不同类型数据间的混合运算
(1) int型、float 与double型数据进行运算,则全部转化为double类型;
(2)字符(char) 型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算。
6.强制类型转换运算符
(1)系统自动进行的类型转换;
(2)强制类型转换。

三、C语句

  1. C语句的结构和分类
    (1) C程序结构可以用图3-2表示。

(2) C语句分为以下5类:
①控制语句.
控制语句用于完成一定的控制功能。C只有9种控制语句,它们的形式是:
a. if()…else… ( 条件语句)
b. for()… ( 循环语句)
c. while()… (循环语句)
d. do…while() ( 循环语句)
e. continue (结束本次循环语句)
f. break ( 中止执行switch或循环语句)
g. switch (多分支选择语句)
h. return (从函数返回语句)
i. goto (转向语句,在结构化程序中基本不用goto语句)
②函数调用语句
函数调用语句由一个函数调用加一个分号构成。
③表达式语句
表达式语句由一个表达式加一个分号构成。
④空语句
⑤复合语句
2.最基本的语句——赋值语句
(1)赋值运算符
赋值符号“=”是指赋值运算符,它的作用是将一个数据赋给一个变量。.
(2)复合的赋值运算符
有关算术运算的复合赋值运算符有+=,-=, *=, /=,%=。
(3)赋值表达式
赋值运算符左侧应该是一个可修改的“左值”(leftvalue, 简写为lvalue), 能出现在赋值运算符右侧的表达式称为“右值”(rightvalue, 简写为rvalue)。
(4)赋值过程中的类型转换
如果赋值运算符两侧的类型不一致,但都是算术类型时,在赋值时要进行类型转换。
(5)变量赋初值
可以用赋值语句对变量赋值,也可以在定义变量时对变量赋以初值。

四、数据的输入与输出

1.有关数据输入输出的概念
(1)输入输出是以计算机主机为主体
计算机的输入输出如图3-3所示。

(2)输入和输出操作是由C标准函数库中的函数来实现的
(3)在使用系统库函数时,要在程序文件的开头用预处理指令#include<stdio.h>
2.用printf函数输出数据
(1) printf 函数的一般格式
printf函数的一般 格式为: printf(格式控制,输出表列);
括号内包括两部分:
①格式控制
a.格式声明
格式声明总是由“%”字符开始的。
b.普通字符
②输出表列
输出表列是程序需要输出的一些数据,可以是常量、变量或表达式。
(2)格式字符
对不同类型的数据要指定不同的格式声明,而格式声明中最重要的内容是格式字符,常用的有如表3-6所示。

在格式声明中,在%和上述格式字符间可以插入表3-7中列出的几种附加符号(又称修饰符)。

[说明]格式附加字符如“printf(“%5.2f”,f);”即表示输出的f为浮点型数据,其中应保留两位小数,总宽度为5。
3.用scanf函数输入数据
(1) scanf函数的一般形式
scanf(格式控制,地址表列);
①“格式控制”的含义同printf函数。
②“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。
(2) scanf 函数中的格式声明
与printf函数中的格式声明相似,以%开始,以一个格式字符结束,中间可以插入附加的字符。
表3-8和表3-9列出scanf函数所用的格式字符和附加字符。它们的用法和printf函数中的用法差不多。

(3)使用scanf函数时应注意的问题
①scanf函数中的“格式控制”后面应当是变量地址,而不是变量名。
②如果在“格式控制字符串”中除了格式声明以外还有其他字符,则在输入数据时在对应的位置上应输入与这些字符相同的字符。.
③在用“%c”格式声明输入字符时,空格字符和“转义字符”中的字符都作为有效字符输入。
4.字符输入输出函数
除了可以用printf函数和scanf函数输出和输入字符外,C函数库还提供了–些专门用于输入和输出字符的
函数。
(1)用putchar函数输出一个字符
putchar©;
(2)用getchar 函数输入一个字符
getchar();

1.4 练习题库

1 以下叙述中正确的是( )。
A.赋值语句是一种执行语句,必须放在函数的可执行部分
B.scanf和printf是C语言提供的输入和输出语句
C.由printf输出的数据都隐含左对齐
D.由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽
来完全决定的

2 以下叙述中正确的是( )。
A.在scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符
B.只能在printf函数中指定输入数据的宽度,而不能在scanf函数中指定输入数据占的宽度
C.scanf函数中的字符串是提示程序员的,输入数据时不必管它
D.复合语句也被称为语句块,它至少要包含两条语句

4 以下不能输出字符A的语句是( )。(注:字符A的ASCII码值为65,字符a的ASCII码值为97。)
A.printf(“%c\n”,‘a’-32);
B.printf(“%d\n”,‘A’);
C.printf(“%c\n”,65);
D.printf(“%c\n”,‘B’-1);

5 设有定义:double x=2.12;,以下不能完整输出变量x值的语句是( )。
A.printf(“x=%5.0f\n”,x);
B.printf(“x=%f\n”,x);
C.printf(“x=%1f\n”,x);
D.printf(“x=%0.5f\n”,x);

8 有以下程序段:

char ch;
int k;
ch='a';
k =12;
printf("%c,%d,",ch,ch,k);
printf("k=%d\n",k);

已知字符a的ASCII码十进制值为97,则执行上述程序段后输出的结果是( )。
A.因变量类型与格式描述符的类型不匹配,输出无定值
B.输出项与格式描述符个数不符,输出为零值或不定值
C.a,97,12k=12
D.a,97,k=12

9 有以下程序:

#include <stdio.h>
main(){ int a=1,b=0; printf("%d,",b=a+b); printf("%d\n",a=2*b);
}

程序运行后的输出结果是( )。
A.0,0
B.1,0
C.3,2
D.1,2

12 有以下程序:

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

当执行程序时,按下列方式输入数据(从第一列开始,代表回车,注意:回车是一个字符)
12
34
则输出结果是( )。
A.1234
B.12
C.123
D.1234

13 设有:char s[5],c;,则调用函数scanf能正确给s和c读入数据的是( )。
A.scanf(“%s%c”,s,c);
B.scanf(“%d%c”,&s,&c);
C.scanf(“%d%c”,s,&c);
D.scanf(“%s%c”,s,&c);

15 若有定义和语句:
int a,b;
scanf(“%d,%d”,&a,&b);
以下选项中的输入数据,不能把值3赋给变量a、值5赋给变量b的是( )(说明:符号u表示空格)。
A.3,5,
B.3,5,4
C.3,u5
D.3,5

16 若有定义:
int a,b;
通过语句:
scanf(“%d;%d”,&a,&b);
能把整数3赋给变量a,5赋给变量b的输入数据是( )。
A.3 5
B.3,5
C.3;5
D.35

17 设有以下语句
char ch1,ch2;
scanf(“%c%c”,&ch1,&ch2);
若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是( )。
A.A和B之间用逗号间隔
B.A和B之间不能有任何间隔符
C.A和B之间可以用回车间隔
D.A和B之间用空格间隔

19 若有定义:
int a;
float b;
double c;
程序运行时输入:a=1,b=2,c=3<回车>,能把值1输入给变量a、值2输入
给变量b、值3输入给变量c的输入语句是( )。
A.scanf(“a=%d,b=%f,c=%lf”,&a,&b,&c);
B.scanf(“%d%f%lf”,&a,&b,&c);
C.scanf(“a=%d,b=%lf,c=%lf”,&a,&b,&c);
D.scanf(“a=%d,b=%f,c=%f”,&a,&b,&c);

20 若有定义语句
double x,y,*px,*py;
执行了px=&x;py=&y;之后,输入语句正确的是( )。
A.scanf(“%f%f”,x,y);
B.scanf(“%f%f”&x,&y);
C.scanf(“%1f%1e”,px,py);
D.scanf(“%1f%1f”,x,y);

23 设有定义:
double x[10],p=x;
以下能给数组x下标为6的元素读入数据的正确语句是( )。
A.scanf(“%f”,&x[6]);
B.scanf(“%1f”,
(x+6));
C.scanf(“%1f”,p+6);
D.scanf(“%1f”,p[6]);

24 有以下程序:
main(){
int a1,a2;
char c1,c2;
scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); printf(“%d,%c,%d,%c”,a1,c1,a2,c2);
}
若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为a,c2的值为b,程序输出结果是:12,a,34,b,则正确的输入格式是(以下_代表空格,代表回车)( )。
A.12a34b
B.12_a_34_b
C.12,a,34,b
D.12_a34_b

25 若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d”,&a,&b,&c);给a赋值1、给b赋值2、给C赋值3,以下输入形式中错误的是(u代表一个空格符)( )。
A.uuu1,2,3<回车>
B.1u2u3<回车>
C.1,uuu2,uuu3<回车>
D.1,2,3<回车>

33 下列叙述中正确的是( )。
A.可以用关系运算符比较字符串的大小
B.空字符串不占用内存,其内存空间大小是0
C.两个连续的单引号是合法的字符常量
D.两个连续的双引号是合法的字符串常量

34 下列叙述中正确的是( )。
A.两个连续的双引号(“”)是合法的字符串常量
B.两个连续的单引号(‘’)是合法的字符常量
C.可以对字符串进行关系运算
D.空字符串不占用内存,其内存空间大小是0

35 若有定义语句
char c=‘\101’;
则变量c在内存中占( )。
A.2个字节
B.1个字节
C.3个字节
D.4个字节

37 以下选项中不属于字符常量的是( )。
A.‘C’
B.“C”
C.‘\Xcc’
D.’\072’

39 以下选项中非法的C语言字符常量是( )。
A.‘aa’
B.‘\b’
C.‘\007’
D.‘\xaa’

44 已知字母A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是( )。
A.kk>=‘A’&&kk<=‘Z’
B.!(kk>=‘A’||kk<=‘Z’)
C.(kk+32)>=‘a’&&(kk+32)<=‘z’
D.isalpha(kk)&&(kk<91)

45 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是( )。
A.c=(‘A’+c)%26-‘a’
B.c=c+32
C.c=c-‘A’+‘a’
D.c=(c-‘A’)%26+‘a’

46 有以下程序(字母A的ASCII代码为65):

#include <stdio.h>
main(){ char c1='A',c2='Y'; printf("%d,%d\n",c1,c2);
}

程序运行后的输出结果是( )。
A.输出格式不合法,输出出错信息
B.A,Y
C.65,90
D.65,89

47 有以下程序:

#include<stdio.h>
main(){ char ch='Z'; ch=(ch-'A'+1)%26+'A'; putchar(ch);
}

程序的运行结果是( )。
A.Z
B.Y
C.B
D.A

48 若有以下程序

#include <stdio.h>
main(){ char c1, c2; c1='C'+'8'-'3'; c2='9'-'0'; printf("%c %d\n",c1,c2);
}

则程序的输出结果是( )。
A.H 9
B.表达式不合法输出无定值
C.F ‘9’
D.H ‘9’

52 有以下程序:

#include <stdio.h>
void fun(char *c){while(*c) { if(*c>='a'&&*c<='z')*c=*c-('a'-'A'); c++; }
}
main(){ char s[81]; gets(s); fun(s); puts(s);
}

当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是
( )。
A.hello beijing
B.Hello Beijing
C.HELLO BEIJING
D.HELLO Beijing

53 有以下程序:

#include <stdio.h>
main(){ char b,c; int i; b='a'; c='A'; for(i=0;i<6;i++) { if(i%2) putchar(i+b); elseputchar(i+c); } printf("\n");
}

程序运行后的输出结果是( )。
A.ABCDEF
B.AbCdEf
C.aBcDeF
D.abcdef

54 有以下程序:

#include <stdio.h>
void fun(char *s){ while(*s) { if(*s%2==0)printf("%c",*s); s++; }
}
main(){ char a[]=("good"); fun(a); printf("\n");
}

注意:字母a的ASCII码值为97,程序运行后的输出结果是( )。
A.d
B.go
C.god
D.good

55 以下不是C语言字符型或字符串常量的是( )。
A.“It’s”
B.“0”
C.‘a=0’
D.‘\010’

57 若有说明语句:
char c=‘\72’;
则变量c中存放的是( )。
A.2个字符
B.1个字符
C.3个字符
D.说明语句不合法

58 已知字符A的ASCII代码值是65,字符变量c1的值是A,c2的值是D。则执行语句
printf(“%d,%d”,c1,c2-2);
的输出结果是( )。
A.A,68
B.65,66
C.A,B
D.65,68

59 有以下程序(说明:字母A的ASCII码值是65):

#include <stdio.h>
void fun(char *s){ while(*s) { if(*s%2)printf("%c",*s); s++; }
}
main(){ char a[]="BYTE"; fun(a); printf("\n");
}

程序运行后的输出结果是( )。
A.BY
B.BT
C.YT
D.YE

60 有以下程序:

#include <stdio.h>
main(){ char c1,c2; c1='A'+'8'-'4'; c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);
}

已知字母A的ASCII码值为65,程序运行后的输出结果是( )。
A.E,68
B.D,69
C.E,D
D.输出无定值

61 有以下程序:

#include <stdio.h>
main(){ char ch='B'; while(ch<'E') { printf("%d",ch-'A'); ch++; } printf("\n");
}

程序运行后的输出结果是( )。
A.123
B.ABC
C.abc
D.012

62 以下不能输出小写字母a的选项是( )。
A.printf(“%c\n”,“a”);
B.printf(“%c\n”,‘A’+32);
C.putchar(97);
D.putchar(‘a’);

64 有如下程序:

#include <stdio.h>
main(){ int i; for(i=0;i<5;i++) putchar('Z'-i);
}

程序运行后的输出结果是( )。
A.‘X’‘Y’‘Z’‘W’‘V’
B.VWXYZ
C.ZYXWV
D.‘ABCDE’

65 有如下程序:

#include <stdio.h>
main(){ int i; for(i=0;i<5;i++) putchar('9'-i); printf("\n");
}

程序运行后的输出结果是( )。
A.54321
B.98765
C.‘9’‘8’‘7’‘6’‘5’
D.‘43210’

66 有如下程序:

#include <stdio.h>
main(){ char a='3',b='A'; int i; for(i=0;i<6;i++){ if(i%3)putchar(a+i); elseputchar(b+i); }printf("\n");
}

程序运行后的输出结果是( )。
A.A45D78
B.ABC678
C.34CD78
D.34AB78

67 有以下程序:

#include <stdio.h>
main(){ char b,c; int i; b='a'; c='A'; for(i=0;i<6;i++) { if(i%2) putchar(i+b); elseputchar(i+c); } printf("\n");
}

程序运行后的输出结果是( )。
A.ABCDEF
B.AbCdEf
C.aBcDeF
D.abcdef

71 以下选项中错误的是( )。
A.a&=b与a=a & b等价
B.a=b与a=ab等价
C.a|=b与a=a|b等价
D.a!=b与a=a!b等价

72 变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是( )。
A.a^b
B.a|b
C.a&b
D.a<<4

78 有以下程序:

#include <stdio.h>
main(){ int a=2,b; b=a<<2; printf("%d\n",b);
}

程序运行后的输出结果是( )。
A.2
B.4
C.6
D.8

80 有以下程序:

#include<stdio.h>
main(){ short c=124; c=c______; printf("%d\n",c);
}

若要使程序的运行结果为248,应在下画线处填入的是( )。
A.>>2
B.|248
C.&0248
D.<<1

83 有以下程序:

#include <stdio.h>
main(){ int c,d; c=10^3; d=10+3; printf("%d,%d\n",c,d);
}

程序运行后的输出结果是( )。
A.103,13
B.13,13
C.10,13
D.9,13

84 若有以下程序段:
int r=8;
printf(“%d\n”,r>>1);
输出结果是( )。
A.16
B.8
C.4
D.2

85 有以下程序:

#include<stdio.h>
main(){ int a=5,b=1,t; t=(a<<2)|b; printf("%d\n",t);
}

程序运行后的输出结果是( )。
A.21
B.11
C.6
D.1

86 有以下程序:

#include<stdio.h>
main(){ char a=4; printf("%d\n",a=a<<1);
}

程序运行的结果是( )。
A.40
B.16
C.8
D.4

87 设有以下语句
int a=1,b=2,c;
c=a^(b<<2);
执行后,c的值为( )。
A.9
B.7
C.8
D.6

88 有以下程序

#include <stdio.h>
main(){ unsigned char a=2,b=4,c=5,d; d=a|b; d&=c; printf("%d\n",d);
}

程序运行后的输出结果是( )。
A.4
B.3
C.5
D.6

89 有以下程序

#include <stdio.h>
main(){ int i=1; i=i^i; printf("%d\n",i);
}

程序运行后的输出结果是( )。
A.7
B.-1
C.1
D.0

91 有如下程序:

#include <stdio.h>
main(){ int a=8,b;b=(a>>2)%2; printf("%d,%d\n",a,b);
}

程序运行后的输出结果是( )。
A.8,0
B.4,0
C.4,1
D.8,1

92 有如下程序:

#include <stdio.h>
main(){ int a=9,b; b=(a>>3)%4; printf("%d,%d\n",a,b);
}

程序运行后的输出结果是( )。
A.9,1
B.4,0
C.4,3
D.9,3

93 有以下程序:

#include <stdio.h>
main(){ int c,d; c=(13>>1)|1; d=(13>1)||1; printf("%d,%d\n",c,d);
}

程序运行后的输出结果是( )。
A.6,1
B.1,1
C.7,1
D.7,2

94 有以下程序:

#include <stdio.h>
main(){ char c='A'; int x=36,b; b=(x>>2)&&(c<'a'); printf("%d\n",b);
}

程序运行后的输出结果是( )。
A.1
B.0
C.2
D.4

96 有以下程序:

#include <stdio.h>
main(){ int i, array[5]={3,5,10,4}; for(i=0;i<5;i++)printf("%d,",array[i]&3); printf("\n");
}

程序运行后的输出结果是( )。
A.3,1,2,0,0,
B.3,5,10,4,0,
C.3,3,3,3,0,
D.3,2,2,2,0,

1.5 考点必背

  1. if 后面的表达式类型任意,语句可以是复合语句;if(x)等价于 if(x!=0) if(!x)等价于 if(x==0)
  2. 多个 case 可以共用一组执行语句(case1: case2: case3:a+=5 则 这三个语句共用 a+=5 )
  3. 赋值语句是一种执行语句,必须放在函数的可执行部分
  4. 在scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符
  5. 格式控制%m.nf,表示数据输出总的宽度为m位,其中小数部分占n位
  6. 在scanf输入整数或实数这类数值型数据时,输入的数据之间必须用空格、回车符、制表符(Tab键)等间隔符隔开
  7. %1f用来输入double类型变量,%1e表示用科学计数法输入double
  8. 两个连续的双引号是合法的字符串常量
  9. 一个字符在内存中占一个字节
  10. isalpha(kk)是判断kk是否是字母的函数
  11. putchar函数将括号中参数以字符形式输出
  12. 二进制右移两位相当于十进制乘以4;二进制左移两位相当于十进制除以4
  13. A|1相当于保证这个数是奇数,若不是则加1

第4章 选择结构程序设计

1.1 考试内容

1.条件的表达方式:算术表达式、关系表达式、逻辑表达式,各种运算结果的表达与判别;
2.条件语句:if语句、ifelse语句、elseif结构以及switch和break语句的使用方法;
3.选择结构程序设计:编写带有选择结构的语句及程序。

1.2 基本要求

1.掌握关系表达式的含义和使用;
2.掌握逻辑表达式的含义和使用;
3.熟练掌握编程中条件的描述方法和使用;
4.熟练掌握使用条件语句进行程序设计的方法。

1.3 主要知识点

一、选择结构和条件判断
1.概述
由于程序处理问题的需要,在大多数程序中都会包含选择结构,需要在进行下一个操作之前先进行条件判断。
2.选择语句分类
(1) if语句
用来实现两个分支的选择结构。
(2) switch 语句
用来实现多分支的选择结构。
二、用if语句实现选择结构
1.一般形式
if语句的一般形式如下:
if(表达式)语句1
else语句2.
2.常用的三种形式
(1)没有else子句部分
if(表达式) 语句1
(2)有else子句部分
if(表达式)
语句1
else
语句2
(3)在else部分又嵌套了多层的if语句.
if(表达式1)语句1
else if(表达式2)语句 2
else if(表达式3)语句 3

else if(表达式m)语句 m
else 语句m+1
三、关系运算符和关系表达式
1.关系运算符及其优先次序
C语言提供的6种关系运算符如图4-1所示。

[说明]前4种关系运算符(<,<=, >,>=)的优先级别相同,后2种也相同,前4种高于后2种。
2.关系表达式.
(1)用关系运算符将两个数值或数值表达式连接起来的式子,称关系表达式;
(2)关系表达式的值是一个逻辑值,即“真”或“假”。在C的逻辑运算中,以“1”代表“真”,以“0’代表“假”。
四、逻辑运算符和逻辑表达式
1.逻辑运算符及其优先次序
(1)逻辑运算符
C语言逻辑运算符如表4-1所示。

[说明]“&&”和“I”是双目(元)运算符,它要求有两个运算对象(操作数),如(a>b)&&(x>y), (a>b)(x>y)。
“!”是一目(元)运算符,只要求有一个运算对象,如!(a>b)。.
(2)优先次序
赋值运算符、逻辑运算符“&&”和“I”、关系运算符、算术运算符、逻辑运算符“!”的优先级如图4-2所示。

2.逻辑表达式
对于逻辑表达式需要注意的是:
(1)逻辑运算符两侧的运算对象既可以是0和1,也可以是是0和非0的整数,还可以是字符型、浮点型、枚举型或指针型的纯量型数据。
(2)在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。
五、条件运算符和条件表达式
1.条件运算符
条件运算符由两个符号(?和:) 组成,必须-起使用。要求有3个操作对象,称为三目(元)运算符,它是C语言中唯一的一个三目运算符。
2.条件表达式
(1)一般形式
表达式1?表达式2:表达式3
(2)执行过程
条件表达式的执行过程如图4-3所示。

【总结】运算符优先级(结合图4-2记忆)

六、选择结构的嵌套
在if语句中又包含一个或多个if语句称为if语句的嵌套(nest), 如图4-4所示。

[说明]应当注意if与else的配对关系,else总是与它上面的最近的未配对的if配对。为了避免混淆,可以。
七、用switch语句实现多分支选择结构
1.基本概念
switch语句的作用是根据表达式的值,使流程跳转到不同的语句。switch 语句的一般形式如下:

2.规则说明
①switch后面括号内的“表达式”,其值的类型应为整数类型(包括字符型);
②switch下面的花括号内是一个复合语句;
③至多可以有一个default标号:
④各个case标号出现次序不影响执行结果:
⑤每一个case常量必须互不相同:
⑥case标号只起标记的作用:
⑦case子句不必用花括号括起来: .
⑧多个case标号可以共用一组执行语句。

1.4 练习题库

1 以下关于逻辑运算符两侧运算对象的叙述中正确的是( )。
A.可以是任意合法的表达式
B.只能是整数0或非0整数
C.可以是结构体类型的数据
D.只能是整数0或1

2 以下关于C语言数据类型使用的叙述中错误的是( )。
A.若要准确无误差地表示自然数,应使用整数类型
B.若要保存带有多位小数的数据,应使用双精度类型
C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型(错)

3 以下选项中,能表示逻辑值“假”的是( )。
A.1
B.0.000001
C.0
D.100.0

4 下列关系表达式中,结果为“假”的是( )。
A.(3+4)>6
B.(3!=4)>2
C.3<=4||3
D.(3<4)==1

5 以下表达式的值与x无关、其值恒为真的是( )。
A.0<x<5
B.x>10&&x<5
C.x>10||x<5
D.x<10&&x>5

6 当变量c的值不为2、4、6时,值也为“真”的表达式是( )。
A.(c= =2)||(c= =4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)

7 设有定义:int a=0,b=1;,以下表达式中,会产生“短路”现象,致使变量b的值不变的是( )。
A.+a||++b
B.a++||++b
C.++a&&b++
D.a++&&b++

8 若有定义语句
int b=2;
则表达式(b<<2)/(3||b)的值是( )。
A.4
B.8
C.0
D.2

9 若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )。
A.1
B.0
C.2
D.不知道a的值,不能确定

10 以下选项中,当x为大于1的奇数时,值为0的表达式是( )。
A.x%21
B.x/2
C.x%2!=0
D.x%20

11 若有定义语句
int k1=10,k2=20;
执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为____。
A.0和1
B.0和20
C.10和1
D.10和20

12 已知a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c<d)后n的值为( )。
A.1
B.0
C.2
D.-1

13 执行以下程序段后,w的值为( )。
int w=‘A’,x=14,y=15;
w=((x||y)&&(w<‘a’));
A.-1
B.NULL
C.1
D.0

14 有以下程序:

#include<stdio.h>
main(){ int a,b,c=241; a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b);
}

程序运行后的输出结果是( )。
A.2,1
B.6,1
C.6,0
D.2,0

15 有以下程序:

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

程序运行后的输出结果是( )。
A.1,3
B.0,2
C.0,3
D.1,2

16 有以下程序:

#include <stdio.h>
main(){ int n=2,k=0; while(k++&&n++>2); printf("%d %d\n",k,n);
}

程序运行后的输出结果是( )。
A.0 2
B.1 3
C.5 7
D.1 2

17 以下叙述中正确的是( )。
A.分支结构是根据算术表达式的结果来判断流程走向的
B.在C语言中,逻辑真值和假值分别对应1和0
C.对于浮点变量x和y,表达式:x==y是非法的,会出编译错误
D.关系运算符两边的运算对象可以是C语言中任意合法的表达式

18 if语句的基本形式是:
if(表达式)语句
以下关于“表达式”值的叙述中正确的是( )。
A.必须是逻辑值
B.必须是整数值
C.必须是正数
D.可以是任意合法的数值

21 若变量已正确定义,在if(W)printf(“%d\n”,k);中,以下不可替代W的
是( )。
A.a<>b+c
B.c=getchar()
C.a==b+c
D.a++

22 为了避免在嵌套的if-else语句中产生二义性,C语言规定与else子句配对是( )。
A.与其在同一行上的if子句
B.在其之后最近的不带else的if子句
C.与其缩排位置相同的if子句
D.在其之前最近的不带else的同层if子句

23 下列条件语句中,输出结果与其他语句不同的是( )。
A.
if(a)
printf(“%d\n”,x);
else
printf(“%d\n”,y);

B.
if(a==0)
printf(“%d\n”,y);
else
printf(“%d\n”,x);

C.
if(a!=0)
printf(“%d\n”,x)
else
printf(“%d\n”,y);

D.
if(a==0)
printf(“%d\n”,x)
else
printf(“%d\n”,y);

24 设有定义:
int a=1,b=2,c=3;
以下语句中执行效果与其他三个不同的是( )。
A.if(a>b)c=a,a=b,b=c;
B.if(a>b){c=a,a=b,b=c;}
C.if(a>b)c=a;a=b;b=c;
D.if(a>b){c=a;a=b;b=c;}

25 有以下程序段,若变量已正确定义并赋值( )。
if(a>b)
printf(“x=%d,”,x);
else
printf(“y=%d,”,y);
if(a<=b)
i++;
else
j++;
则与此程序段功能相同的选项是( )。
A.

if(a>b){
printf("x=%d,",x);
j++
}
else{
printf("y=%d,",y);
i++
}

B.

if(a>b){
printf("x=%d,",x);
i++
}
else{
printf("y=%d,",y);
j++
}

C.

if(a<=b){
printf("x=%d,",x);
i++
}
else{
printf("y=%d,",y);
j++
}

D.

if(a>=b){
printf("x=%d,",x);
i++
}
else{
printf("y=%d,",y);
j++
}

27 有以下程序段:
scanf(“%d%d%d”,&a,&b,&c);
if(a>b)a=b;
if(a>c)a=c;
printf(“%d\n”,a);
该程序段的功能是( )。
A.输出a、b、c中的最小值
B.输出a、b、c中的最大值
C.输出a的原始值
D.输出a、b、c中值相等的数值

28 有以下程序段:
scanf(“%d%d%d”,&a,&b,&c);
if(a<b)ab;
if(a<c)ac;
printf(“%d\n”,a);
该程序段的功能是( )。
A.输出a、b、c中值相等的数值
B.输出a、b、c中的最大值
C.输出a、b、c中的最小值
D.输出a的原始值

29 以下程序的功能是判断输入的一个整数是否能被3或7整除,若能整除,输出YES,否则输出NO。在下划线处应填入的选项是( )。

#include<stdio.h>
main(){ int k; printf("Enter a int number:"); scanf("%d",&k); if _____ printf("YES\n"); elseprintf("NO\n"); printf("%d\n",k%3);
}

A.((k%3= =0)||(k%7= =0))
B.(k/3= =0)||(k/7= =0)
C.((k%3=0)||(k%7=0))
D.((k%3= =0)&&(k%7= =0))

30 有以下程序:

#include<stdio.h>
main(){ if('\0'==0)putchar('1'); if('0'==0)putchar('2'); if('a'>'b')putchar('3');
}

程序运行后的输出结果是( )。
A.1
B.123
C.23
D.3

31 有以下程序:

#include <stdio.h>
main(){ int x; scanf("%d",&x); if(x>10)printf("1"); else if(x>20) printf("2"); else if(x>30)printf("3");
}

若运行时输入:35<回车>,则输出结果是( )。
A.123
B.2
C.3
D.1

33 若变量已正确定义,有以下程序段:
int a=3,b=5,c=7;
if(a>b) a=b;c=a;
if(c!=a) c=b;
printf(“%d,%d,%d\n”,a,b,c);
其输出结果是( )。
A.程序段有语法
B.3,5,3
C.3,5,5
D.3,5,7

34 以下函数按每行8个输出数组中的数据:

void fun(int *w,int n){ int i; for(i=0;i<n;i++) { ______ printf("%d",w[i]); } printf("\n");
}

下画线处应填入的语句是( )。
A.if(i/8= =0)printf(“\n”);
B.if(i/8= =0)continue;
C.if(i%8= =0)printf(“\n”);
D.if(i%8= =0)continue;

35 有以下程序:

#include<stdio.h>
main(){
int x=1,y=2,z=3;
if(x>1)
if(y>x) putchar('A');
else putchar('B');
else if(z<x)putchar('C');
else putchar('D');
}

程序的运行结果是( )。
A.D
B.C
C.B
D.A

36 有以下程序:

#include<stdio.h>
main(){ int x=1,y=2,z=3; if(x>y) if(y<z) printf("%d",++z); else printf("%d",++y); printf("%d\n",x++);
}

程序运行的结果是( )。
A.331
B.41
C.2
D.1

37 有以下程序

#include <stdio.h>
main(){int x=1, y=0;if (!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n", y);
}

程序运行后的输出结果是( )。
A.0
B.2
C.1
D.3

38 有以下程序

#include<stdio.h>
main(){ int a=1,b=0; if(!a)b++; else if(a==0)if(a) b+=2; else b+=3; printf("%d\n",b);
}

程序运行后的输出结果是( )。
A.0
B.1
C.2
D.3

39 有以下程序:

#include<stdio.h>
main(){ int x; scanf("%d",&x); if(x<=3); else if(x!=10) printf("%d\n",x);
}

程序运行时,输入的值在( )范围才会有输出结果。
A.不等于10的整数
B.大于3且不等于10的整数
C.大于3或等于10的整数
D.小于3的整数

40 有以下程序:

#include <stdio.h>
main(){ int a=1,b=2,c=3,d=0; if(a==1&&b++==2) if(b!=2||c--!=3)printf("%d,%d,%d\n",a,b,c);else printf("%d,%d,%d\n",a,b,c); else printf("%d,%d,%d\n",a,b,c);
}

程序运行后的输出结果是( )。
A.1,2,3
B.1,3,2
C.1,3,3
D.3,2,1

41 若有以下程序

#include<stdio.h>
main(){int a=1,b=2,c=3,d=4;if((a==2)||(b==1))c=2;if((c==3)&&(d==-1))a=5;printf("%d,%d,%d,%d\n",a,b,c,d);
}

则程序的输出结果是( )。
A.2,2,2,4
B.2,1,2,-1
C.5,1,2,-1
D.1,2,3,4

42 若有以下程序

#include<stdio.h>
main(){ int a=1,b=2,c=3,d=4; if((a==2)&&(b==1))c=2; if((c==3)||(d==-1))a=5; printf("%d,%d,%d,%d\n",a,b,c,d);
}

则程序的输出结果是( )。
A.5,2,3,4
B.2,1,2,-1
C.2,2,2,4
D.1,2,3,4

43 有以下程序

#include<stdio.h>
main(){ int a=0,b=0,c=0,d=0; if(a=1)b=1;c=2; else d=3; printf("%d,%d,%d,%d\n",a,b,c,d);
}

程序输出( )。
A.0,0,0,3
B.编译有错
C.1,1,2,0
D.0,1,2,0

46 如有表达式(w)?(-x):(++y),则其中与w等价的表达式是( )。
A.w= =1
B.w= =0
C.w!=1
D.w!=0

47 若有定义:int x,y;,并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是( )。
A.(x-y==0)
B.(x-y<0)
C.(x-y>0)
D.(x-y<0||x-y>0)

48 有如下嵌套的if语句

if(a<b)
if(a<c) k=a;
else k=c;
else
if(b<c) k=b;
else k=c;

以下选项中与上述if语句等价的语句是( )。
A.k=(a<b)?a:b;k=(b<c)?b:c;
B.k=(a<b)?((b<c)?a:b) : ((b<c)?b:c);
C.k=(a<b)?((a<c)?a:c) : ((b<c)?b:c);
D.k=(a<b)?a:b;k=(a<c)?a:c;

51 以下程序段中,不能实现条件“如果a<b则x=10,
否则x=-10”的是( )。
A.x=(a>=b)?-10:10;
B.if(a<b)x=10;else x=-10;
C.x=-10; if(b<a)x=10;
D.if(a<b)x=10;if(b<a)x=-10;

54 有以下程序:

#include <stdio.h>
main(){ char a='H'; a=(a>='A'&&a<='Z')?(a-'A'+'a'):a; printf("%c\n",a);
}

程序运行后的输出结果是( )。
A.A
B.a
C.H
D.h

55 有以下程序

#include<stdio.h>
main(){ int x; for(x=3;x<6;x++) printf((x%2)?("*%d"):("#%d"),x); printf("\n");
}

程序的输出结果是( )。
A.3#45
B.#3*4#5
C.34#5
D.*3#4#5

57 有以下程序:

#include<stdio.h>
main(){ int a=0,b=0,c=0,d=0; (++a||++b)?++c:++d; printf("%d,%d,%d,%d\n",a,b,c,d);
}

程序的运行结果是( )。
A.1,0,1,0
B.1,1,0,1
C.1,0,0,1
D.1,1,1,0

58 下列叙述中正确的是( )。
A.在switch语句中,不一定使用break语句
B.在switch语句中,必须使用default
C.break语句必须与switch语句中的case配对使用
D.break语句只能用于switch语句

59 若有定义:
float x=1.5;
int a=1,b=3,c=2;
则正确的switch语句是( )。
A.
switch(a+b){
case 1: printf(“\n");
case c: printf(“**\n”);
}
B.
switch((int)x);{
case 1: printf("
\n”);
case 2: printf(“\n");
}
C.
switch(x){
case 1.0: printf(“*\n”);
case 2.0: printf("
\n”);
}
D.
switch(a+b){
case 1: printf(“*\n”);
case 2+1: printf(“**\n”);
}

60 若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是( )。
A.
switch(a+9){
case c1:y=a-b;
case c2:y=a+b;
}
B.
switch ab{
case 10:x=a+b;
default:y=a-b;
}
C.
switch(a+b){
case1:
case2:
case3:y=a+b;break;
case0:
case4:y=a-b;
}
D.
switch(a
a+b*b){
default:break;
case 3:y=a+b;break;
case 2:y=ab;break;
}

61 若有定义语句
int a,b;
double x;
则下列选项中没有错误的是( )。
A.
switch(x%2){
case 0:a++;break;
case 1:b++;break;
default:a++;b++;
}
B.
switch((int)x/2.0){
case 0:a++;break;
case 1:b++;break;
default:a++;b++;
}
C.
switch((int)x%2){
case 0:a++;break;
case 1:b++;break;
default:a++;b++;
}
D.
switch((int)(x)%2){
case 0.0:a++;break;
case 1.0:b++;break;
default:a++;b++;
}

62 以下选项中与
if(a1)
a=b;
else
a++;
语句功能不同的switch语句是( )。
A.
switch(a){
case 1: a=b; break;
default: a++;
}
B.
switch(a1){
case 0: a=b; break;
case 1:a++;
}
C.
switch(a){
default :a++; break;
case 1: a=b;
}
D.
switch(a==1){
case 1: a=b;break;
case 0: a++;
}

63 有以下程序:

#include <stdio.h>
main(){ int k,n=0;charc,str[]="teach";for(k=0;str[k];k++) { c=str[k]; switch(k){ case 1:case 3:case 5: putchar(c); printf("%d",++n);break; default:putchar('N'); } }
}

程序的运行结果是( )。
A.Ne1NN
B.e1a2e3
C.Ne1Nc2N
D.Na1NNNN

64 有以下程序:

#include <stdio.h>
main(){ char c; while((c=getchar())!='\n') { switch(c-'2') { case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3);default:putchar(c+2);break; } } printf("\n");
}

程序运行后从第一列开始输入以下数据:
2473<回车>
程序的输出结果是( )。
A.668977
B.4444
C.6677877
D.68766

65 有以下程序

#include<stdio.h>
main(){ int s=0,n; for(n=0;n<3;n++) { switch(s) { case 0: case 1:s+=1; case 2:s+=2;break; case 3:s+=3; default:s+=4; } printf("%d,",s); }
}

程序运行后的输出结果是( )。
A.1,2,4,
B.1,3,6,
C.3,10,14,
D.3,6,10,

73 若有以下程序

#include <stdio.h>
main(){ int s=0,n; for(n=0;n<4;n++) { switch(n) { default:s+=4;case 1:s+=1;break; case 2:s+=2;break; case 3:s+=3; } }printf("%d\n",s);
}

则程序的输出结果是( )。
A.13
B.10
C.11
D.15

74 有以下程序

#include <stdio.h>
main(){ int k=5,n=0; do { switch(k) { case 1:case 3:n+=1;k--;break; default:n=0;k--; case 2:case 4:n+=2;k--;break; } printf("%d",n); }while(k>0&&n<5);
}

程序运行后的输出结果是( )。
A.235
B.0235
C.02356
D.2356

1.5 考点必背

  1. C语言中没有逻辑类型(true,false),在C++中才引入的(C语言:非0为真)
  2. “短路”现象,要么左边||右边的左边为1,要么左边&&右边的左边为0
  3. 左移两位相当于乘以4
  4. 运算符“||”为逻辑或运算符,即只要两边的条件表达式中有一个为“真”,则运算结果就为“真”。
  5. 运算符“&&”为逻辑与运算符,即只要两边的条件表达式中有一个为“假”,则运算结果就为“假”
  6. (表达式1)&&(表达式2)中,如果表达式1为假或0,那么表达式2就不会被执行
  7. (表达式1)||(表达式2)中,如果表达式1为真或1,那么表达式2就不会被执行
  8. 关系运算符两边的运算对象可以是C语言中任意合法的表达式
  9. 在C语言中,表示不等于不能用“<>”,而只能使用“!=”
  10. ‘\0’是转义字符,表示空字符,对应的ASCII码为0,’\0’==0成立
  11. 按每行8个输出数组中的数据:if(i%8==0)printf(“\n”);
  12. else子句总是与前面最近的不带else的if相结合,与书写格式无关
  13. 如果if的执行语句含有多个语句(两个以上),则必须使用复合语句,即用花括号把一组语句括起来
  14. 条件表达式形式为<表达式1>?<表达式2>:<表达式3>。表达式1的值为真,结果为表达式2的值;表达式1的值为假,结果为表达式3的值
  15. 在switch语句中,不一定使用break语句
  16. break语句功能是跳出正在执行的条件语句或循环语句,switch语句中可以根据需要选择是否使用break语句
  17. case是关键字,与其后面的常量表达式合称case语句标号。
  18. 常量表达式的类型必须与swicth后圆括号中的表达式类型相同
  19. 各case语句标号的值应该互不相同
  20. switch参数值类型必须是这几种类型之一:int,long,short,byte,char
  21. switch参数值类型必须是这几种类型之一:int,long,short,byte,char

第5章 循环结构程序设计

1.1 考试内容

1.循环语句:while、do~while和for语句的格式、循环条件的设置以及在循环结构中使用break和continue语句;
2.循环程序设计:编写带有循环结构语句及程序。

1.2 基本要求

1.掌握循环的概念,解决语句重复执行的方法;
2.掌握单重、多重循环结构,熟练使用循环变量有效控制循环运行的方法;
3.掌握break和continue的使用形式和理由;
4.掌握while、do~while和for三种循环结构各自的应用特点和相互转换;5.掌握循环程序设计方法。

1.3 主要知识点

一、为什么需要循环控制

在日常生活中或是在程序所处理的问题中常常遇到需要重复处理的问题,这时只用顺序结构和选择结构是不
够的,还需要用到循环结构(或称重复结构)。

二、用while语句实现循环

1.一般形式
while (表达式)语句
2.执行过程
while语句执行流程图如图5-1所示。

三、用do…while语句实现循环

1.一般形式
do
语句
while(表达式);
2.执行过程
先执行循环语句,然后判别表达式,当表达式的值为非零(“真") 时,返回重新执行循环语句,如此反复,直到表达式的值为0 (“假”)为止,此时循环结束,其流程图如图5-2所示。

3.特点
先无条件地执行循环体,然后判断循环条件是否成立。

四、用for语句实现循环

  1. for语句的一般形式
    for(表达式1;表达式2;表达式3)
    语句
    其中3个表达式的主要作用是:
    ①表达式1:设置初始条件,只执行- -次。
    ②表达式2:是循环条件表达式,用来判定是否继续循环,每次循环前执行。
    ③表达式3:作为循环的调整,每次在执行完循环体后进行的。
    2.执行过程
    for语句的执行过程如图5-3所示。

3.详细说明
(1)“表达式1”可以省略,但“表达式1”后的分号不能省略;
(2)“表达式2”也可以省略,即不设置和检查循环的条件:
(3)“表达式3”也可以省略,但此时程序设计者应另外设法保证循环能正常结束;
(4)“表达式1”和“表达式3”可以包含一个以上的简单表达式,中间用逗号间隔。

五、循环的嵌套

一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这是指多层循环。各种语言中关于循环的嵌套的概念都是一样的。
3种循环( while循环、do…while 循环和for循环)可以互相嵌套。

六、改变循环执行的状态

1.用break语句提前终止循环
break语句的一般形式为:
break;
其作用是使流程跳到循环体之外,接着执行循环体下面的语句,break 语句只能用于循环语句和switch语句
之中,而不能单独使用。
2.用continue语句提前结束本次循环
有时并不希望终止整个循环的操作,只希望提前结束本次循环,而接着执行下次循环,这时可以用continue
语句。continue 语句的一般形式为:
continue;
其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,转到循环体结束点之前,接着执行for语句中的“表达式3",然后进行下一次是否执行循环的判定。
3. break 语句和continue语句的区别
(1) continue语句只结束本次循环,而接着执行下次循环,如图5-4所示。
(2) break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立,如图5-5所示。

1.4 练习题库

1 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是( )。
A.(!E0)
B.(E>0||E<0)
C.(E0)
D.(E!=0)

2 要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是( )。
A. while((ch=getchar())!=‘N’)
printf(“%c”,ch);
B. while(ch=getchar() =‘N’)
printf(“%c”,ch);
C. while(ch=getchar()‘N’)
printf(“%c”,ch);
D. while((ch=getchar())‘N’)
printf(“%c”,ch);

3 对于“while(!E)s;”,若要执行循环体s,则E的取值应为( )。
A.E等于1
B.E不等于0
C.E不等于1
D.E等于0

4 关于“do{循环体}while(条件表达式)”,以下叙述正确的是( )。
A.循环体的执行次数总是比条件表达式的执行次数多一次
B.条件表达式的执行次数总是比循环体的执行次数多一次
C.条件表达式的执行次数与循环体的执行次数一样
D.条件表达式的执行次数与循环体的执行次数无关

5 有以下程序:

#include <stdio.h>
main(){while(getchar()!='\n');
}

以下叙述中正确的是( )。
A.此while语句将无限循环
B.getchar()不可以出现在while语句的条件表达式中
C.当执行此while语句时,只有按回车键程序才能继续执行
D.当执行此while语句时,按任意键程序就能继续执行

6 若要实现total=1+2+3+4+5求和,以下程序段错误的是( )。
A. int i=1,total=1;
while(i<5){
total +=i;
i+=1;
}
B. int i=1,total=0;
while(i<=5){
total +=i;
i+=1;
}
C. int i=0,total=0;
while(i<5){
i +=1;
total+=i;
}
D. int i=0,total=0;
while(i<=5){
total +=i;
i+=1;
}

7 有以下程序

#include<stdio.h>
main(){int y=10; while(y--); printf("y=%d\n",y);
}

程序执行后的输出结果是( )。
A.y=0
B.y=-1
C.y=1
D.while构成无限循环

8 有以下程序

#include<stdio.h>
main(){ int k=5; while(--k)printf("%d\n",k-=3); printf("\n");
}

执行后的输出结果是( )。
A.1
B.2
C.4
D.死循环

9 有以下程序:

#include <stdio.h>
main(){int a=7; while(a--); printf("%d\n",a);
}

程序运行后的输出结果是( )。
A.-1
B.0
C.1
D.7

10 有以下程序:

#include<stdio.h>
main(){ char *s="12134"; int k=0,a=0; while(s[k+1]!='\0') { k++; if(k%2==0) {a = a+s[k]-'0'+1; continue; } a=a+(s[k]-'0'); } printf("k=%d a=%d\n",k,a);
}

程序运行后的输出结果是( )。
A.k=6 a=11
B.k=3 a=14
C.k=4 a=12
D.k=5 a=15

11 有以下程序:

#include<stdio.h>
main(){ int a=1,b=2; while(a<6) { b+=a; a+=2; b%=10; } printf("%d,%d\n",a,b);
}

程序运行后的输出结果是( )。
A.5,11
B.7,1
C.7,11
D.6,1

12 若有以下程序

#include <stdio.h>
main(){ int a=-2,b=0; while(a++)++b; printf("%d,%d\n",a,b);
}

则程序的输出结果是( )。
A.1,2
B.0,2
C.1,3
D.2,3

13 有以下程序:

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

程序运行后的输出结果是( )。
A.1,3
B.0,2
C.0,3
D.1,2

14 以下叙述正确的是( )。
A.do-while语句构成的循环,当while语句中的表达式值为0时结束循环
B.do-while语句和while-do构成的循环功能相同
C.while-do语句构成的循环,当while语句中的表达式值为非0时结束循环
D.do-while语句构成的循环,必须用break语句退出循环

15 以下程序段中,循环次数不超过10的是( )。
A. int i=10;
do{
i=i+1;
}while(i<0);
B. int i=5;
do{
i+=1;
}while(i>0);
C. int i=1;
do{
i+=2;
}while(i!=10);
D. int i=6;
do{
i-=2;
}while(i!=1);

16 以下能够实现计算5!的程序段是( )。
A. int fac=1,k=0;
do{
k++;
fac*=k;
}while(k<5);
B. int fac=0,k=1;
do{
fac*=k;
k++;
}while(k<5);
C. int fac=1,k=1;
do{
k++;
fac*=k;
}while(k<=5);
D. int fac=1,k=0;
do{
fac*=k;
k++;
}while(k<5);

17 若变量已正确定义,有以下程序段
i=0;
do printf(“%d,”,i);
while(i++);
printf(“%d\n”,i);
其输出结果是( )。
A.0,1
B.0,0
C.1,1
D.程序进入无限循环

18 若有以下程序

#include <stdio.h>
main(){ int a=-2,b=0; do { ++b; }while(a++); printf("%d,%d\n",a,b);
}

则程序的输出结果是( )。
A.2,3
B.0,2
C.1,2
D.1,3

19 有以下程序:

#include<stdio.h>
main(){ int x=23; do { printf("%2d\n",x--); } while(!x);
}

程序的执行结果是( )。
A.输出321
B.输出23
C.不输出任何内容
D.陷入无限循环

20 有以下程序:

#include <stdio.h>
main(){ int i=0,sum=1; do { sum +=i++; }while(i<6); printf("%d\n",sum);
}

程序的输出结果是( )。
A.22
B.18
C.20
D.16

21 有以下程序:

#include<stdio.h>
main(){ int sum=0,x=5; do{sum+=x;}while(!--x); printf("%d\n",sum);
}

程序的运行结果是( )。
A.0
B.5
C.14
D.15

22 有以下程序(注:字符a的ASCII码值为97):

#include <stdio.h>
main(){ char *s={"abc"}; do { printf("%d",*s%10); ++s; }while(*s);
}

程序运行后的输出结果是( )。
A.abc
B.789
C.7890
D.979800

23 有以下程序:(注意:字母A的ASCII码值为65。)

#include <stdio.h>
main(){ char *s={"ABC"}; do { printf("%d",*( s++)%10); }while(*s);
}

程序运行后的结果是( )。
A.5670
B.656667
C.567
D.ABC

24 有以下程序:

#include <stdio.h>
main(){ char c; do { c =getchar(); putchar(c); }while(c!='#'); printf("\n");
}

执行时如输入:abcdefg##<回车>,则输出结果是( )。
A.abcdefg#
B.abcdefg
C.abcdefg##
D.##

25 有以下程序:

#include<stdio.h>
main(){ int i=5; do { if(i%3==1) if(i%5==2) { printf("*%d",i);break; } i++; }while(i!=0); printf("\n");
}

程序运行的结果是( )。
A.*7
B.35
C.*5
D.26

26 有以下程序:

#include<stdio.h>
main(){ int x=0,y=6; do { while(--y)x++; } while(y--); printf("%d,%d\n",x,y);
}

程序的运行结果是( )。
A.5,0
B.6,0
C.5,-1
D.6,-1

27 以下叙述中正确的是( )。
A.如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用while语句
B.对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2的值,以便决定是否开始循环
C.对于“for(表达式1;表达式2;表达式3)循环体”,只在个别情况下才能转换成while语句
D.只要适当地修改代码,就可以将do-while与while相互转换

28 若变量已正确定义
for(x=0,y=0; (y!=99&&x<4); x++)
则以上for循环( )。
A.执行无限次
B.执行3次
C.执行4次
D.执行次数不定

29 若变量已正确定义,则以下for循环( ):
for(x=0,y=0; (y!=123)&&(x<4); x++);
A.执行4次
B.执行3次
C.执行次数不确定
D.执行123次

30 若k是int类型变量,且有以下for语句:
for(k=-1;k<0;k++) printf(“****\n”);
下面关于语句执行情况的叙述中正确的是( )。
A.循环体执行一次
B.循环体执行两次
C.循环体一次也不执行
D.构成无限循环

31 若i和k都是int类型变量,有以下for语句:
for=(i=0,k=-1;k=1;k++)
printf(“* * * * *\n”);
下面关于语句执行情况的叙述中正确的是( )。
A.循环体执行两次
B.循环体执行一次
C.循环体一次也不执行
D.构成无限循环

32 有如下程序段:
int k;
for(k=2;k==0; )
printf(“%d”,k–);
则for循环体执行的次数是( )。
A.0次
B.1次
C.2次
D.无限次

33 以下不构成无限循环的语句或者语句组是( )。
A. n=0;
do{
++n;
}while(n<=0);
B. n=0;
while(1){
n++;
}
C. n=10;
while(n); {
n–;
}
D. for(n=0,i=1;i++)
n+=i;

34 以下程序段中,与其他三个功能不同的程序段是( )。
A. s=0;
i=1;
for(;

专升本C语言——资料复习大全(需要完整版请私信作者)相关推荐

  1. 贵州/全国专升本C语言知识技巧复习资料

    目录: 基础复习 如何准备专业(c语言) 学习方法(技巧) 内容展示: 当然,想要更多资料可以私信或者关注gzh:沐思博客 基础复习: 1.学习C语言,要反复多次地进入学习. 每过段时间再来整理自己的 ...

  2. 广东专升本C语言程序设计(完结)

    初心:在一个人摸索下十分痛苦,不知道哪里开始复习,真题以及视频都没有,我希望在自己摸索完之后,能把宝贵的经验分享给需要的人,也希望各位以后也可以帮助更多的人,接下来让我们一起开始学习C语言和数据结构吧 ...

  3. 山西专升本C语言编程题真题

    山西专升本C语言编程题真题 2010年 2011年 2012年 2013年 2014年 2015年 2016年 2017年 2018年 2019年 2020年 所有代码为博主本人思路,并非标准答案,仅 ...

  4. 专升本C语言试题分析(四)

    专升本C语言试题分析(四) 前言 尝试对C语言专升本题目进行分析,有不对的地方欢迎指正,在边学习边成长! 一.题目 编写程序,输入 10 个实数, x1,x2,x3-x10,按照以下公式计算并输出 S ...

  5. 专升本C语言试题分析(一)

    专升本C语言试题分析(一) 前言 尝试对C语言专升本题目进行分析,有不对的地方欢迎指正,在边学习边成长! 一.题目 编写函数 Fun23 实现功能如下:指针 s 所指向的字母数字串中只包含数字和字母, ...

  6. linux下vi编辑器的命令大全,linux下VI编辑器命令大全(超级完整版)

    linux下VI编辑器命令大全(超级完整版) NOTICE:把这里提到的命令牢记心间,行走LINUX才能轻松自如! 这是基本功,练就此身本领后,方可学习上乘功夫 如若不按此步骤修练,结果会经脉尽断,真 ...

  7. 基于web的c语言在线编译器的设计步骤,定稿毕业论文基于WEB的C语言在线学习系统毕业设计完整版(范文1)...

    <[毕业论文]基于WEB的C语言在线学习系统毕业设计.doc>由会员分享,可免费在线阅读全文,更多与<(定稿)毕业论文基于WEB的C语言在线学习系统毕业设计(完整版)>相关文档 ...

  8. c语言 proteus 延迟2秒_周周练 | 专升本C语言

    回复[英语]获取历年英语试题汇编回复[领书]获取专升本备考图书回复[三级]获取英语三级模拟卷进社群领资料:1128172173同学们好,本周我们开始进行专业课习题练习~ 单选题 1.在C语言中,以下正 ...

  9. 专升本c语言程序设计网课_2020年宜春学院专升本招生信息

    各位考生: 现将我校2020年普通专升本考试招生专业.专业科目及考试大纲进行公布,招生计划在省教育厅确定后另行通知. 欢迎广大考生报考宜春学院! 序号 招生专业 考试科目 公共课 专业课1 专业课2 ...

最新文章

  1. Python培训教程分享:Python中选择结构是什么
  2. 微信公众号扫描带参数二维码实现自动分组?
  3. IntelliJ IDEA如何设置添加类时注释作者信息和日期时间
  4. 最简单的 Webpack Hello World 例子
  5. html 跳转到本页面指定位置
  6. Java8 List<对象> 转 Set、Map(高级)、排序、分组、统计
  7. python文件行数运行结果_python统计文件行数
  8. Win11未安装Defender怎么办?解决Win11未安装Defender的方法
  9. js简单实现div宽度匀速增加/减小
  10. Rust : codewars的Product of consecutive Fib numbers
  11. 深入理解FIFO(包含有FIFO深度的解释)
  12. word 2016编辑区鼠标光标消失/变白解决方案
  13. 抓包安卓7以上ca证书安装方法
  14. TDTX云笔记--TDTX个人简历
  15. ubuntu 安装咖啡壶-chemex命令详解
  16. 微信小程序如何做营销推广?
  17. 嵌入式(十三):嵌入式系统概念
  18. iPhone 手机修复屏幕划痕
  19. 【硬件设备】CPU系列之基础知识
  20. 六上计算机基础知识ppt课件,计算机应用基础(windows 7+office 2010)课件 第六章 文稿演示软件PowerPoint 2010.ppt.pdf-汇文网...

热门文章

  1. k8s(二)——— pod 详解
  2. 数据分析与预测(四)——相关性分析
  3. 硬盘LBA 和CHS的关系
  4. 自建纯净谷歌「GitHub 热点速览 v.21.35」
  5. jpa orphanRemoval = true的作用
  6. response.expires = -1是什么意思
  7. 对于一体式电脑一体机,不同的厂商有不同的叫法,有AllInOne、AIO电脑、或是屏式电脑
  8. 华为:hybrid配置及原理,实现不同vlan访问服务器。
  9. 前端使用jswebrtc实现视频流播放
  10. 【Android】设置EditText输入类型和内容长度