陆梢删滤架充灌孩化谱琴恒是
第1单元 让我们和计算机对话吧!
高手闯关1-1
1、单选题:
计算机能直接执行的程序是( )。
A: 源程序
B: 目标程序
C: 汇编程序
D: 可执行程序
答案: 可执行程序
2、单选题:
以下叙述中错误的是( )
A: C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B: C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C: 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D: C语言源程序经编译后生成后缀为.obj的目标程序
答案: C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
3、单选题:
下列叙述中错误的是( )
A: C程序可以由多个程序文件组成
B: 一个C语言程序只能实现一种算法
C: C程序可以由一个或多个函数组成
D: 一个C函数可以单独作为一个C程序文件存在
答案: 一个C语言程序只能实现一种算法
4、单选题:
以下四个程序中,完全正确的是( )
A: #include <stdio.h>main();{/*/ programming /*/ printf(“programming!n”);}
B: #include <stdio.h>main(){/* programming */ printf(“programming!n”); }
C: #include <stdio.h>main(){/*/* programming */*/ printf(“programming!n”); }
D: include <stdio.h>main(){/* programming */ printf(“programming!n”); }
答案: #include <stdio.h>main(){/* programming */ printf(“programming!n”); }
5、单选题:
以下叙述中正确的是( )
A: C语言规定必须用main作为主函数名,程序将从此开始执行
B: 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C: C语言程序将从源程序中第一个函数开始执行
D: main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等
答案: C语言规定必须用main作为主函数名,程序将从此开始执行
6、单选题:
以下叙述中正确的是( )
A: C语句必须在一行内写完
B: C程序中的每一行只能写一条语句
C: C语言程序中的注释必须与语句写在同一行
D: 简单C语句必须以分号结束
答案: 简单C语句必须以分号结束
7、单选题:
以下叙述中正确的是( )
A: 用C语言编写的程序只能放在一个程序文件中
B: C程序书写格式严格,要求一行内只能写一个语句
C: C程序中的注释只能出现在程序的开始位置和语句的后面
D: C程序书写格式自由,一个语句可以写在多行上
答案: C程序书写格式自由,一个语句可以写在多行上
8、单选题:
C语言源程序名的后缀是( )
A: .C
B: .exe
C: .obj
D: .cp
答案: .C
9、单选题:
下列叙述中正确的是( )
A: C程序中所有函数之间都可以相互调用
B: 在C程序中main函数的位置是固定的
C: 在C程序的函数中不能定义另一个函数
D: 每个C程序文件中都必须要有一个main函数
答案: 在C程序的函数中不能定义另一个函数
10、单选题:
有以下程序( ) #include <stdio.h> main() { int a=0, b=0; /* 给a赋值 a=10; b=20; 给b赋值 */ printf(“a+b=%dn”,a+b); /* 输出计算结果 */ }程序运行后的输出结果是( )
A: 出错
B: a+b=30
C: a+b=10
D: a+b=0
答案: a+b=0
11、单选题:
以下叙述中正确的是( )
A: 书写源程序时,必须注意缩进格式,否则程序会有编译错误
B: 程序的主函数名除main外,也可以使用Main或_main
C: 程序可以包含多个主函数,但总是从第一个主函数处开始执行
D: 在C程序中,模块化主要是通过函数来实现的
答案: 在C程序中,模块化主要是通过函数来实现的
12、单选题:
以下叙述中正确的是( )
A: C语言程序所调用的函数必须放在main函数的前面
B: C语言程序总是从最前面的函数开始执行
C: C语言程序中main函数必须放在程序的开始位置
D: C语言程序总是从main函数开始执行
答案: C语言程序总是从main函数开始执行
13、单选题:
以下叙述中正确的是( )
A: 每个后缀为.C的C语言源程序都可以单独进行编译
B: 每个后缀为.C的C语言源程序都应该包含一个main函数
C: 在C语言程序中,main函数必须放在其他函数的最前面
D: 在C语言程序中,只有main函数才可单独进行编译
答案: 每个后缀为.C的C语言源程序都可以单独进行编译
14、单选题:
以下叙述中错误的是( )
A: C程序在运行过程中所有计算都以二进制方式进行
B: C程序在运行过程中所有计算都以十进制方式进行
C: 所有C程序都需要编译链接无误后才能运行
D: C程序中字符变量存放的是字符的ASCII值
答案: C程序在运行过程中所有计算都以十进制方式进行
15、单选题:
我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是( )
A: 一条C语句可能会被转换成零条机器指令
B: 一条C语句可能会被转换成多条机器指令
C: 一条C语句对应转换成一条机器指令
D: 某种类型和格式的C语句被转换成机器指令的条数是固定的
答案: 一条C语句对应转换成一条机器指令
16、单选题:
以下叙述正确的是( )
A: 计算机只接收由0和1代码组成的二进制指令或数据
B: 计算机只接收由0和1代码组成的十进制指令或数据
C: 计算机可直接接收并运行C源程序
D: 计算机可直接接收并运行任意高级语言编写的源程序
答案: 计算机只接收由0和1代码组成的二进制指令或数据
17、单选题:
下列叙述中错误的是( )
A: C程序可以由多个程序文件组成
B: 一个C语言程序只能实现一种算法
C: C程序可以由一个或多个函数组成
D: 一个C函数可以单独作为一个C程序文件存在
答案: 一个C语言程序只能实现一种算法
高手闯关1-1训练
1、单选题:
计算机能直接执行的程序是( )。
A: 源程序
B: 目标程序
C: 汇编程序
D: 可执行程序
答案: 可执行程序
2、单选题:
以下叙述中错误的是( )
A: C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B: C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C: 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D: C语言源程序经编译后生成后缀为.obj的目标程序
答案: C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
3、单选题:
下列叙述中错误的是( )
A: C程序可以由多个程序文件组成
B: 一个C语言程序只能实现一种算法
C: C程序可以由一个或多个函数组成
D: 一个C函数可以单独作为一个C程序文件存在
答案: 一个C语言程序只能实现一种算法
4、单选题:
以下四个程序中,完全正确的是( )
A: #include <stdio.h>main();{/*/ programming /*/ printf(“programming!n”);}
B: #include <stdio.h>main(){/* programming */ printf(“programming!n”); }
C: #include <stdio.h>main(){/*/* programming */*/ printf(“programming!n”); }
D: include <stdio.h>main(){/* programming */ printf(“programming!n”); }
答案: #include <stdio.h>main(){/* programming */ printf(“programming!n”); }
5、单选题:
以下叙述中正确的是( )
A: C语言规定必须用main作为主函数名,程序将从此开始执行
B: 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C: C语言程序将从源程序中第一个函数开始执行
D: main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等
答案: C语言规定必须用main作为主函数名,程序将从此开始执行
6、单选题:
以下叙述中正确的是( )
A: C语句必须在一行内写完
B: C程序中的每一行只能写一条语句
C: C语言程序中的注释必须与语句写在同一行
D: 简单C语句必须以分号结束
答案: 简单C语句必须以分号结束
7、单选题:
以下叙述中正确的是( )
A: 用C语言编写的程序只能放在一个程序文件中
B: C程序书写格式严格,要求一行内只能写一个语句
C: C程序中的注释只能出现在程序的开始位置和语句的后面
D: C程序书写格式自由,一个语句可以写在多行上
答案: C程序书写格式自由,一个语句可以写在多行上
8、单选题:
C语言源程序名的后缀是( )
A: .C
B: .exe
C: .obj
D: .cp
答案: .C
9、单选题:
下列叙述中正确的是( )
A: C程序中所有函数之间都可以相互调用
B: 在C程序中main函数的位置是固定的
C: 在C程序的函数中不能定义另一个函数
D: 每个C程序文件中都必须要有一个main函数
答案: 在C程序的函数中不能定义另一个函数
10、单选题:
有以下程序( ) #include <stdio.h> main() { int a=0, b=0; /* 给a赋值 a=10; b=20; 给b赋值 */ printf(“a+b=%dn”,a+b); /* 输出计算结果 */ }程序运行后的输出结果是( )
A: 出错
B: a+b=30
C: a+b=10
D: a+b=0
答案: a+b=0
11、单选题:
以下叙述中正确的是( )
A: 书写源程序时,必须注意缩进格式,否则程序会有编译错误
B: 程序的主函数名除main外,也可以使用Main或_main
C: 程序可以包含多个主函数,但总是从第一个主函数处开始执行
D: 在C程序中,模块化主要是通过函数来实现的
答案: 在C程序中,模块化主要是通过函数来实现的
12、单选题:
以下叙述中正确的是( )
A: C语言程序所调用的函数必须放在main函数的前面
B: C语言程序总是从最前面的函数开始执行
C: C语言程序中main函数必须放在程序的开始位置
D: C语言程序总是从main函数开始执行
答案: C语言程序总是从main函数开始执行
13、单选题:
以下叙述中正确的是( )
A: 每个后缀为.C的C语言源程序都可以单独进行编译
B: 每个后缀为.C的C语言源程序都应该包含一个main函数
C: 在C语言程序中,main函数必须放在其他函数的最前面
D: 在C语言程序中,只有main函数才可单独进行编译
答案: 每个后缀为.C的C语言源程序都可以单独进行编译
14、单选题:
以下叙述中错误的是( )
A: C程序在运行过程中所有计算都以二进制方式进行
B: C程序在运行过程中所有计算都以十进制方式进行
C: 所有C程序都需要编译链接无误后才能运行
D: C程序中字符变量存放的是字符的ASCII值
答案: C程序在运行过程中所有计算都以十进制方式进行
15、单选题:
我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是( )
A: 一条C语句可能会被转换成零条机器指令
B: 一条C语句可能会被转换成多条机器指令
C: 一条C语句对应转换成一条机器指令
D: 某种类型和格式的C语句被转换成机器指令的条数是固定的
答案: 一条C语句对应转换成一条机器指令
16、单选题:
以下叙述正确的是( )
A: 计算机只接收由0和1代码组成的二进制指令或数据
B: 计算机只接收由0和1代码组成的十进制指令或数据
C: 计算机可直接接收并运行C源程序
D: 计算机可直接接收并运行任意高级语言编写的源程序
答案: 计算机只接收由0和1代码组成的二进制指令或数据
17、单选题:
下列叙述中错误的是( )
A: C程序可以由多个程序文件组成
B: 一个C语言程序只能实现一种算法
C: C程序可以由一个或多个函数组成
D: 一个C函数可以单独作为一个C程序文件存在
答案: 一个C语言程序只能实现一种算法
第2单元 算法——程序设计的灵魂
高手闯关2-1
1、单选题:
以下叙述中错误的是( )
A: 使用三种基本结构构成的程序只能解决简单问题
B: 结构化程序由顺序、分支、循环三种基本结构组成
C: C语言是一种结构化程序设计语言
D: 结构化程序设计提倡模块化的设计方法
答案: 使用三种基本结构构成的程序只能解决简单问题
2、单选题:
以下选项中关于程序模块化的叙述错误的是( )
A: 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
B: 把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块
C: 把程序分成若干相对独立的模块,可便于编码和调试
D: 可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
答案: 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
3、单选题:
关于算法,以下叙述中错误的是( )
A: 某个算法可能会没有输入
B: 某个算法可能会有零个或多个输入
C: 一个算法对于某个输入的循环次数是可以事先估计出来的
D: 不是所有的算法都能转换成计算机高级语言的程序,有的算法无法在有限时间内运行完毕
答案: 不是所有的算法都能转换成计算机高级语言的程序,有的算法无法在有限时间内运行完毕
4、单选题:
C语言程序的模块化通过以下哪个选项来实现( )
A: 变量
B: 函数
C: 程序行
D: 语句
答案: 函数
5、单选题:
以下不能用于描述算法的是( )
A: 文字叙述
B: 程序语句
C: 伪代码和流程图
D: E-R图
答案: E-R图
6、单选题:
以下叙述中正确的是( )
A: 程序必须包含所有三种基本结构才能成为一种算法
B: 我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令
C: 如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达
D: 只有简单算法才能在有限的操作步骤之后结束
答案: 我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令
7、单选题:
以下叙述中正确的是( )
A: 在算法设计时,可以把复杂任务分解成一些简单的子任务
B: 在C语言程序设计中,所有函数必须保存在一个源文件中
C: 必须包含了三种基本结构的算法才是结构化程序
D: 结构化程序必须包含所有的三种基本结构,缺一不可
答案: 在算法设计时,可以把复杂任务分解成一些简单的子任务
8、单选题:
C语言主要是借助以下哪种手段来实现程序模块化( )
A: 定义函数
B: 定义常量和外部变量
C: 使用丰富的数据类型
D: 使用三种基本结构语句
答案: 定义函数
9、单选题:
以下叙述中错误的是( )
A: 算法正确的程序可以有零个输入
B: 算法正确的程序最终一定会结束
C: 算法正确的程序可以有零个输出
D: 算法正确的程序对于相同的输入一定有相同的结果
答案: 算法正确的程序可以有零个输出
10、单选题:
以下叙述中正确的是( )
A: N-S流程图只能描述简单的顺序结构的程序
B: 程序的算法只能使用流程图来描述
C: 结构化程序的三种基本结构是循环结构、选择结构、顺序结构
D: 计算机可以直接处理C语言程序,不必进行任何转换
答案: 结构化程序的三种基本结构是循环结构、选择结构、顺序结构
11、单选题:
流程图是描述算法的很好的工具,一般的流程图中由几种基本图形组成。其中输入输出框的图形是( )
A: 平行四边形
B: 长方形
C: 椭圆型
D: 菱形
答案: 平行四边形
12、单选题:
以下选项中叙述正确的是( )
A: 使用三种基本结构就可以实现任何复杂算法
B: 只要程序包含了三种基本结构中的任意一种,就是结构化程序
C: 程序语法错误要在运行时才能发现
D: C语言程序不需要包含main()函数
答案: 使用三种基本结构就可以实现任何复杂算法
13、单选题:
结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是( )
A: 三种基本结构不可以嵌套使用
B: 顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移
C: 选择结构是根据不同的条件执行不同分支中的语句
D: 循环结构是根据条件决定是否重复、重复执行多少次循环体语句
答案: 三种基本结构不可以嵌套使用
14、单选题:
算法应当具有的特性不包括( )
A: 可行性
B: 有穷性
C: 确定性
D: 美观性
答案: 美观性
15、单选题:
关于算法,以下叙述中错误的是( )
A: 某个算法可能会没有输入
B: 某个算法可能会有多个输入
C: 一个算法对于某个输入的循环次数是可以事先估计出来的
D: 算法可以无限执行下去
答案: 算法可以无限执行下去
高手闯关2-1训练
1、单选题:
以下叙述中错误的是( )
A: 使用三种基本结构构成的程序只能解决简单问题
B: 结构化程序由顺序、分支、循环三种基本结构组成
C: C语言是一种结构化程序设计语言
D: 结构化程序设计提倡模块化的设计方法
答案: 使用三种基本结构构成的程序只能解决简单问题
2、单选题:
以下选项中关于程序模块化的叙述错误的是( )
A: 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
B: 把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块
C: 把程序分成若干相对独立的模块,可便于编码和调试
D: 可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
答案: 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
3、单选题:
关于算法,以下叙述中错误的是( )
A: 某个算法可能会没有输入
B: 某个算法可能会有零个或多个输入
C: 一个算法对于某个输入的循环次数是可以事先估计出来的
D: 任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕
答案: 任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕
4、单选题:
C语言程序的模块化通过以下哪个选项来实现( )
A: 变量
B: 函数
C: 程序行
D: 语句
答案: 函数
5、单选题:
以下不能用于描述算法的是( )
A: 文字叙述
B: 程序语句
C: 伪代码和流程图
D: E-R图
答案: E-R图
6、单选题:
以下叙述中正确的是( )
A: 程序必须包含所有三种基本结构才能成为一种算法
B: 我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令
C: 如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达
D: 只有简单算法才能在有限的操作步骤之后结束
答案: 我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令
7、单选题:
以下叙述中正确的是( )
A: 在算法设计时,可以把复杂任务分解成一些简单的子任务
B: 在C语言程序设计中,所有函数必须保存在一个源文件中
C: 只要包含了三种基本结构的算法就是结构化程序
D: 结构化程序必须包含所有的三种基本结构,缺一不可
答案: 在算法设计时,可以把复杂任务分解成一些简单的子任务
8、单选题:
C语言主要是借助以下哪种手段来实现程序模块化( )
A: 定义函数
B: 定义常量和外部变量
C: 使用丰富的数据类型
D: 使用三种基本结构语句
答案: 定义函数
9、单选题:
以下叙述中错误的是( )
A: 算法正确的程序可以有零个输入
B: 算法正确的程序最终一定会结束
C: 算法正确的程序可以有零个输出
D: 算法正确的程序对于相同的输入一定有相同的结果
答案: 算法正确的程序可以有零个输出
10、单选题:
以下叙述中正确的是( )
A: N-S流程图只能描述简单的顺序结构的程序
B: 程序的算法只能使用流程图来描述
C: 结构化程序的三种基本结构是循环结构、选择结构、顺序结构
D: 计算机可以直接处理C语言程序,不必进行任何转换
答案: 结构化程序的三种基本结构是循环结构、选择结构、顺序结构
11、单选题:
流程图是描述算法的很好的工具,一般的流程图中由几种基本图形组成。其中输入输出框的图形是( )
A: 平行四边形
B: 长方形
C: 椭圆型
D: 菱形
答案: 平行四边形
12、单选题:
以下选项中叙述正确的是( )
A: 使用三种基本结构就可以实现任何复杂算法
B: 只要程序包含了三种基本结构中的任意一种,就是结构化程序
C: 程序语法错误要在运行时才能发现
D: C语言程序不需要包含main()函数
答案: 使用三种基本结构就可以实现任何复杂算法
13、单选题:
结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是( )
A: 三种基本结构不可以嵌套使用
B: 顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移
C: 选择结构是根据不同的条件执行不同分支中的语句
D: 循环结构是根据条件决定是否重复、重复执行多少次循环体语句
答案: 三种基本结构不可以嵌套使用
14、单选题:
算法应当具有的特性不包括( )
A: 可行性
B: 有穷性
C: 确定性
D: 美观性
答案: 美观性
15、单选题:
关于算法,以下叙述中错误的是( )
A: 某个算法可能会没有输入
B: 某个算法可能会有多个输入
C: 一个算法对于某个输入的循环次数是可以事先估计出来的
D: 任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕
答案: 任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕
第3单元 身高体型判定系统”数据处理——顺序结构程序设计
过关斩将3-1
1、单选题:
关于C语言的变量名,以下叙述正确的是( )
A: 变量名不可以与关键字同名
B: 变量名不可以与预定义标识符同名
C: 变量名必须以字母开头
D: 变量名是没有长度限制的
答案: 变量名不可以与关键字同名
2、单选题:
以下选项中可用作C语言中合法用户标识符的是( )
A: _123
B: void
C: -abc
D: 2a
答案: _123
3、单选题:
以下关于C语言的叙述中正确的是( )
A: C语言的数值常量中夹带空格不影响常量值的正确表示
B: C语言中的变量可以在使用之前的任何位置进行定义
C: 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D: C语言中的注释不可以夹在变量名或关键字的中间
答案: C语言中的注释不可以夹在变量名或关键字的中间
4、单选题:
以下选项中不合法的标识符是( )
A: &a
B: FOR
C: print
D: _00
答案: &a
5、单选题:
按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。
A: 大写字母
B: 下划线
C: 数字字符
D: 连接符
答案: 连接符
6、单选题:
以下选项中,能用作用户标识符的是( )
A: _0_
B: 8_8
C: void
D: unsigned
答案: _0_
7、单选题:
下列定义变量的语句中错误的是( )
A: int _int;
B: double int_;
C: char For;
D: float US$;
答案: float US$;
8、单选题:
以下选项中,不合法的C语言用户标识符是( )
A: a_b
B: AaBc
C: a–b
D: _1
答案: a–b
9、单选题:
以下选项中正确的定义语句是( )
A: double, a, b;
B: double a=b=7;
C: double a; b;
D: double a=7, b=7;
答案: double a=7, b=7;
过关斩将3-2
1、单选题:
设有定义:int x=11,y=12,z=0;,以下表达式值不等于12的是( )
A: (z,x,y)
B: (z=x,y)
C: z=(x,y)
D: z=(x==y)
答案: z=(x==y)
2、单选题:
以下程序段中的变量已定义为int类型sum = pad = 5; pAd = sum++, pAd++, ++pAd; printf( “%dn”, pad );程序段的输出结果是( )
A: 6
B: 4
C: 5
D: 程序出错
答案: 5
3、单选题:
设变量m为float类型,变量n为int类型,则以下能实现将m中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )
A: m=(m*100+0.5)/100.0
B: n=m*100+0.5, m=n/100.0
C: n=m/100+0.5, m=n*100.0
D: m=m*100+0.5/100.0
答案: n=m*100+0.5, m=n/100.0
4、单选题:
以下选项中正确的定义语句是( )
A: double, a, b;
B: double a=b=7;
C: double a; b;
D: double a=7, b=7;
答案: double a=7, b=7;
5、单选题:
有如下程序#include <stdio.h>main( ){ int x = 072; printf(“X=%d.n”, x+1);}程序运行后的输出结果是( )
A: X=115
B: X=73
C: X=59.
D: X=72.
答案: X=59.
6、单选题:
以下不能输出小写字母a的选项是( )
A: printf(“%cn”,”a”);
B: printf(“%cn”,’A’+32);
C: putchar(97);
D: putchar(‘a’);
答案: printf(“%cn”,”a”);
7、单选题:
若有以下程序 #include <stdio.h> main() { char c1, c2; c1=’C’+’8′-‘3′; c2=’9’-‘0’; printf(“%c %dn”, c1, c2); }则程序的输出结果是( )
A: H ‘9’
B: H 9
C: F ‘9’
D: 表达式不合法输出无定值
答案: H 9
8、单选题:
若有定义语句: int x=12, y=8, z;在其后执行语句 z= 0.9+x/y;则z的值为( )
A: 1
B: 1.9
C: 2
D: 2.4
答案: 1
9、单选题:
表达式3.6-5/2+1.2+5%2的值是( )
A: 4.3
B: 4.8
C: 3.3
D: 3.8
答案: 3.8
10、单选题:
有以下定义: int a; long b; double x, y; 则以下选项中正确的表达式是( )
A: a=x<>y
B: a%(int)(x-y)
C: (a*y)%b
D: y=x+y=x
答案: a%(int)(x-y)
11、单选题:
设变量已正确定义并赋值,以下正确的表达式是( )
A: x=y+z+5, ++y
B: int(15.8%5)
C: x=y*5=x+z
D: x=25%5.0
答案: x=y+z+5, ++y
12、单选题:
C语言程序中,运算对象必须是整型数的运算符是( )
A: &&
B: /
C: %
D: *
答案: %
13、单选题:
若变量已正确定义并赋值,以下不能构成C语句的选项是( )
A: B++;
B: A=a+b;
C: a=a+b
D: A?a:b;
答案: a=a+b
14、单选题:
有以下程序:#include <stdio.h>main(){ char c1,c2; c1=’A’+’8’-’4’; c2=’A’+’8’-’5’; printf( “%c,%dn”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是( )
A: E,68
B: D,69
C: E,D
D: 输出无定值
答案: E,68
过关斩将3-3
1、单选题:
以下可以将任意一个两位整数n的个位数与十位数对换的表达式为( )
A: (n-n/10*10)*10+n/10
B: n-n/10*10+n/10
C: n/10+(n-n/10)
D: (n-n/10)*10+(n/10)
答案: (n-n/10*10)*10+n/10
2、单选题:
设有定义: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)
答案: (y%=x)-(x%=5)
3、单选题:
若有C语言表达式 2+3*4+7/3,以下选项中叙述正确的执行顺序是( )
A: 先执行3*4得12,再执行7/3得2.5,最后执行2+12+2.5得16.5
B: 先执行3*4得12,再执行2+12得14,再执行7/3得2,最后执行14+2得16
C: 先执行7/3得2,再执行3*4得12,再执行12+2得14,最后执行2+14得16
D: 先执行2+3得5,再执行5*4得20,再执行20+7得27,最后执行27/3得9
答案: 先执行3*4得12,再执行2+12得14,再执行7/3得2,最后执行14+2得16
4、单选题:
若变量已正确定义并赋值,以下不能构成C语句的选项是( )
A: B++;
B: A=a+b;
C: a=a+b
D: A?a:b;
答案: a=a+b
5、单选题:
以下选项中不属于C语言程序运算符的是( )
A: sizeof
B: <>
C: ( )
D: &&
答案: <>
6、单选题:
有以下程序 #include <stdio.h> main() { int sum, pad, pAd; sum = pad = 5; pAd = ++sum, pAd++, ++pad; printf(“%dn”, pad ); }程序的输出结果是( )
A: 5
B: 6
C: 7
D: 8
答案: 6
7、单选题:
有以下程序:#include <stdio.h>main(){ int x, y, z; x=y=1; z=x++,y++,++y; printf(“%d,%d,%dn”,x,y,z);}程序运行后的输出结果是( )
A: 2,3,3
B: 2,3,2
C: 2,3,1
D: 2,2,1
答案: 2,3,1
8、单选题:
若有以下程序段 double x=5.16894; printf(“%fn”, (int)(x*1000+0.5)/(double)1000 );则程序段的输出结果是( )
A: 5.170000
B: 5.175000
C: 5.169000
D: 5.168000
答案: 5.169000
过关斩将3-4
1、单选题:
有以下程序#include <stdio.h>main( ){ int c, d; c = 10^3; d = 10+3; printf(“%d,%dn”, c, d); }程序运行后的输出结果是( )
A: 103,13
B: 13,13
C: 10,13
D: 9,13
答案: 9,13
2、单选题:
有以下程序#include <stdio.h>main(){ int c,d; c = 10 | 5; d = 10 + 5; printf(“%d,%dn”, c, d); }程序的运行结果是( )
A: 15,15
B: 10,15
C: 5,15
D: 105,15
答案: 15,15
3、单选题:
有如下程序#include <stdio.h>main(){ int a = 8, b; b = (a >> 2) % 2; printf(“%d,%dn”, a, b);}程序运行后的输出结果是( )
A: 8,0
B: 4,0
C: 4,1
D: 8,1
答案: 8,0
4、单选题:
有以下程序#include <stdio.h>main(){ int a; a = (int)(-1.53*3); printf(“%dn”, a);}程序的运行结果是( )
A: -4
B: -3
C: -5
D: 结果不确定
答案: -4
5、单选题:
有以下程序#include <stdio.h>main(){ int a; a = (int)1.99*3; printf(“%dn”, a);}程序的运行结果是( )
A: 3
B: 5
C: 6
D: 结果不确定
答案: 3
6、单选题:
有如下程序#include <stdio.h>main( ){ int a = 9, b; b = (a >> 3) % 4; printf(“%d,%dn”, a, b);}程序运行后的输出结果是( )
A: 9,1
B: 4,0
C: 4,3
D: 9,3
答案: 9,1
7、单选题:
有以下程序#include <stdio.h>main( ){ int c,d; c = (13>>1)|1; d = (13>1)||1; printf(“%d,%dn”, c, d);}程序运行后的输出结果是( )
A: 6,1
B: 1,1
C: 7,1
D: 7,2
答案: 7,1
8、单选题:
表达式:(int)((double)9/2)- 9%2 的值是( )
A: 0
B: 3
C: 4
D: 5
答案: 3
9、单选题:
sizeof( double )是( )
A: 一个整型表达式
B: 一个双精度型表达式
C: 一个不合法的表达式
D: 一种函数调用
答案: 一个整型表达式
10、单选题:
有以下程序:#include <stdio.h>main(){ int s,t,A=10; double B=6; s=sizeof(A); t=sizeof(B); printf(“%d,%dn”,s,t);}在VC6.0平台上编译运行,程序运行后的输出结果是( )
A: 10,6
B: 4,4
C: 2,4
D: 4,8
答案: 4,8
11、单选题:
若有定义语句:int x=10; ,则表达式x-=x+x的值为( )
A: 0
B: -20
C: -10
D: 10
答案: -10
12、单选题:
表达式 a+=a -= a=9 的值是( )
A: 18
B: -9
C: 0
D: 9
答案: 0
13、单选题:
若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是( )
A: x+1=y
B: ++x,y=x–
C: x=x+10=x+y
D: double(x)/10
答案: ++x,y=x–
14、单选题:
设有定义:int x=2;,以下表达式中,值不为6的是( )
A: 2*x,x+=2
B: x++,2*x
C: x*=(1+x)
D: x*=x+1
答案: 2*x,x+=2
15、单选题:
若有以下程序 #include <stdio.h> main(){ int a=0,b=0,c=0; c= (a -= ++a), (a+=b, b+=4); printf(“%d,%d,%dn”,a,b,c); }则程序的输出结果是( )
A: 0,4,0
B: 0,4,4
C: 1,4,1
D: 1,4,4
答案: 0,4,0
16、单选题:
若有以下程序 #include <stdio.h> main() { int a=0,b=0,c=0,d; c= (a+=b,, b+=a); /*第4行*/ d=c;; /*第5行*/ ; /*第6行*/ ;printf(“%d,%d,%dn”,a,b,c); /*第7行*/ }编译时出现错误,你认为出错的是( )
A: 第4行
B: 第5行
C: 第6行
D: 第7行
答案: 第4行
17、单选题:
以下叙述中正确的是( )
A: 复合语句在语法上包含多条语句,其中不能定义局部变量
B: 花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的
C: 空语句就是指程序中的空行
D: 当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键) 前,可以任意修改
答案: 当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键) 前,可以任意修改
过关斩将3-5
1、单选题:
以下叙述正确的是( )
A: C程序总是以main()作为程序执行的起始行
B: main()函数若不带参数,其后面的一对圆括号可省略
C: 函数体内的定义语句和可执行语句允许任意穿插出现
D: C语言中的语句之间必须用分号作为分隔符
答案: C程序总是以main()作为程序执行的起始行
2、单选题:
阅读以下程序#include <stdio.h>main(){ int case ; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&printF ); printf(“%d %fn”,case,printF );}该程序在编译时产生错误,其出错原因是( )
A: 定义语句出错,case是关键字,不能用作用户自定义标识符
B: 定义语句出错,printF不能用作用户自定义标识符
C: 定义语句无错,scanf不能作为输入函数使用
D: 定义语句无错,printf不能输出case的值
答案: 定义语句出错,case是关键字,不能用作用户自定义标识符
3、单选题:
以下叙述中正确的是( )
A: 复合语句在语法上包含多条语句,其中不能定义局部变量
B: 花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的
C: 空语句就是指程序中的空行
D: 当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键) 前,可以任意修改
答案: 当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键) 前,可以任意修改
4、单选题:
以下叙述中正确的是( )
A: 在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上
B: 在使用scanf函数输入整数或实数时,输入数据之间只能用空格来分隔
C: 在printf函数中,各个输出项只能是变量
D: 使用printf函数无法输出百分号%
答案: 在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上
5、单选题:
有以下程序 #include <stdio.h> main() { int a=2, c=5; printf( “a=%%d,b=%%dn”, a,c ); }程序的输出结果是( )
A: a=2,b=5
B: a=%2,b=%5
C: a=%d,b=%d
D: a=%%d,b=%%d
答案: a=%d,b=%d
6、单选题:
设有定义:int n = 1234; double x = 3.1415;则语句 printf(“%3d,%1.3fn”, n, x); 的输出结果是( )
A: 1234,3.142
B: 123,3.142
C: 1234,3.141
D: 123,3.141
答案: 1234,3.142
7、单选题:
有以下程序:#include <stdio.h>main(){ char a,b,c,d; scanf(“%c%c”,&a, &b); c=getchar(); d=getchar(); printf(“%c%c%c%cn”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是( )。
A: 1234
B: 12
C: 1234
D: 123
答案: 123
8、单选题:
若要求从键盘读入含有空格字符的字符串,应使用函数
A: getchar()
B: getc()
C: gets()
D: scanf()
答案: gets()
9、单选题:
若有以下程序 #include <stdio.h> main() { int a=0,b=0,c=0,d; c= (a+=b,, b+=a); /*第4行*/ d=c;; /*第5行*/ ; /*第6行*/ ;printf(“%d,%d,%dn”,a,b,c); /*第7行*/ }编译时出现错误,你认为出错的是( )
A: 第4行
B: 第5行
C: 第6行
D: 第7行
答案: 第4行
10、单选题:
若有以下程序 #include <stdio.h> main() { int a=0,b=0,c=0 c= (a+=++b, b+=4); printf(“%d,%d,%dn”,a,b,c); }则程序的输出结果是( )
A: 1,5,1
B: 1,5,5
C: -1,4,4
D: -1,4,-1
答案: 1,5,5
11、单选题:
以下叙述中正确的是( )
A: 在scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符
B: 只能在printf函数中指定输入数据的宽度,而不能在scanf函数中指定输入数据占的宽度
C: scanf函数中的字符串,是提示程序员的,输入数据时不必管它
D: 复合语句也被称为语句块,它至少要包含两条语句
答案: 在scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符
12、单选题:
#include <stdio.h> main() { char c1,c2,c3,c4,c5,c6; scanf(“%c%c%c%c”, &c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c%cn”,c5,c6); }程序运行后,若从键盘输入(从第1列开始) 123<回车> 45678<回车>则输出结果是( )
A: 1245
B: 1256
C: 1278
D: 1267
答案: 1245
13、单选题:
有以下程序:#include <stdio.h>main(){ char a,b,c,d; scanf(“%c%c”,&a, &b); c=getchar(); d=getchar(); printf(“%c%c%c%cn”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是( )
A: 1234
B: 12
C: 1234
D: 123
答案: 123
14、单选题:
若要求从键盘读入含有空格字符的字符串,应使用函数( )
A: getchar()
B: getc()
C: gets()
D: scanf()
答案: gets()
15、单选题:
以下不能输出字符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);
答案: printf (“%d n”, ‘A’);
16、单选题:
以下叙述中正确的是( )
A: 在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上
B: 在使用scanf函数输入整数或实数时,输入数据之间只能用空格来分隔
C: 在printf函数中,各个输出项只能是变量
D: 使用printf函数无法输出百分号%
答案: 在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上
17、单选题:
有以下程序 #include <stdio.h> main() { int a=2, c=5; printf( “a=%%d,b=%%dn”, a,c ); }程序的输出结果是( )
A: a=2,b=5
B: a=%2,b=%5
C: a=%d,b=%d
D: a=%%d,b=%%d
答案: a=%d,b=%d
18、单选题:
以下叙述中正确的是( )
A: 由printf输出的数据都隐含左对齐
B: scanf和printf是C语言提供的输入和输出语句
C: 赋值语句是一种执行语句,必须放在函数的可执行部分
D: 由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的
答案: 赋值语句是一种执行语句,必须放在函数的可执行部分
19、单选题:
有以下程序:#include <stdio.h>main(){ int a=1,b=0; printf(“%d,”,b=a+b); printf(“%dn”,a=2*b);程序运行后的输出结果是( )
A: 1,2
B: 1,0
C: 3,2
D: 0,0
答案: 1,2
20、单选题:
有以下程序:#include <stdio.h>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 则正确的输入格式是(以下_代表空格,<CR>代表回车)( )
A: 12_a34_b<CR>
B: 12_a_34_b<CR>
C: 12,a,34,b<CR>
D: 12a34b<CR>
答案: 12a34b<CR>
高手闯关3-1
1、单选题:
关于C语言的变量名,以下叙述正确的是( )
A: 变量名不可以与关键字同名
B: 变量名不可以与预定义标识符同名
C: 变量名必须以字母开头
D: 变量名是没有长度限制的
答案: 变量名不可以与关键字同名
2、单选题:
以下选项中可用作C语言中合法用户标识符的是( )
A: _123
B: void
C: -abc
D: 2a
答案: _123
3、单选题:
以下关于C语言的叙述中正确的是( )
A: C语言的数值常量中夹带空格不影响常量值的正确表示
B: C语言中的变量可以在使用之前的任何位置进行定义
C: 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D: C语言中的注释不可以夹在变量名或关键字的中间
答案: C语言中的注释不可以夹在变量名或关键字的中间
4、单选题:
以下选项中不合法的标识符是( )
A: &a
B: FOR
C: print
D: 00
答案: &a
5、单选题:
按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。
A: 大写字母
B: 下划线
C: 数字字符
D: 连接符
答案: 连接符
6、单选题:
以下选项中,能用作用户标识符的是( )
A: _0_
B: 8_8
C: void
D: unsigned
答案: _0_
7、单选题:
下列定义变量的语句中错误的是( )
A: int _int;
B: double int_;
C: char For;
D: float US$;
答案: float US$;
8、单选题:
以下选项中,不合法的C语言用户标识符是( )
A: a_b
B: AaBc
C: a–b
D: _1
答案: a–b
9、单选题:
以下选项中正确的定义语句是( )
A: double, a, b;
B: double a=b=7;
C: double a; b;
D: double a=7, b=7;
答案: double a=7, b=7;
10、单选题:
设有定义:int x=11,y=12,z=0;,以下表达式值不等于12的是( )
A: (z,x,y)
B: (z=x,y)
C: z=(x,y)
D: z=(x==y)
答案: z=(x==y)
11、单选题:
设变量m为float类型,变量n为int类型,则以下能实现将m中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )
A: m=(m*100+0.5)/100.0
B: n=m*100+0.5, m=n/100.0
C: n=m/100+0.5, m=n*100.0
D: m=m*100+0.5/100.0
答案: n=m*100+0.5, m=n/100.0
12、单选题:
以下程序段中的变量已定义为int类型sum = pad = 5; pAd = sum++, pAd++, ++pAd; printf( “%dn”, pad );程序段的输出结果是( )
A: 6
B: 4
C: 5
D: 程序出错
答案: 5
13、单选题:
以下选项中正确的定义语句是( )
A: double, a, b;
B: double a=b=7;
C: double a; b;
D: double a=7, b=7;
答案: double a=7, b=7;
14、单选题:
有如下程序#include <stdio.h>main( ){ int x = 072; printf(“X=%d.n”, x+1);}程序运行后的输出结果是( )
A: X=115
B: X=73
C: X=59.
D: X=72.
答案: X=59.
15、单选题:
以下不能输出小写字母a的选项是( )
A: printf(“%cn”,”a”);
B: printf(“%cn”,’A’+32);
C: putchar(97);
D: putchar(‘a’);
答案: printf(“%cn”,”a”);
16、单选题:
若有以下程序 #include <stdio.h> main() { char c1, c2; c1=’C’+’8′-‘3′; c2=’9’-‘0’; printf(“%c %dn”, c1, c2); }则程序的输出结果是( )
A: H ‘9’
B: H 9
C: F ‘9’
D: 表达式不合法输出无定值
答案: H 9
17、单选题:
若有定义语句: int x=12, y=8, z;在其后执行语句 z= 0.9+x/y;则z的值为( )
A: 1
B: 2
C: 1.9
D: 2.4
答案: 1
18、单选题:
表达式3.6-5/2+1.2+5%2的值是( )
A: 4.3
B: 4.8
C: 3.3
D: 3.8
答案: 3.8
19、单选题:
有以下定义: int a; long b; double x, y; 则以下选项中正确的表达式是( )
A: a=x<>y
B: a%(int)(x-y)
C: (a*y)%b
D: y=x+y=x
答案: a%(int)(x-y)
20、单选题:
设变量已正确定义并赋值,以下正确的表达式是( )
A: x=y+z+5, ++y
B: int(15.8%5)
C: x=y*5=x+z
D: x=25%5.0
答案: x=y+z+5, ++y
21、单选题:
C语言程序中,运算对象必须是整型数的运算符是( )
A: &&
B: /
C: %
D: *
答案: %
22、单选题:
若变量已正确定义并赋值,以下不能构成C语句的选项是( )
A: B++;
B: A=a+b;
C: a=a+b
D: A?a:b;
答案: a=a+b
23、单选题:
有以下程序:#include <stdio.h>main(){ char c1,c2; c1=’A’+’8’-’4’; c2=’A’+’8’-’5’; printf( “%c,%dn”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是( )
A: E,68
B: D,69
C: E,D
D: 输出无定值
答案: E,68
24、单选题:
以下可以将任意一个两位整数n的个位数与十位数对换的表达式为( )
A: (n-n/10*10)*10+n/10
B: n-n/10*10+n/10
C: n/10+(n-n/10)
D: (n-n/10)*10+(n/10)
答案: (n-n/10*10)*10+n/10
25、单选题:
设有定义: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)
答案: (y%=x)-(x%=5)
26、单选题:
若有C语言表达式 2+3*4+7/3,以下选项中叙述正确的执行顺序是( )
A: 先执行3*4得12,再执行7/3得2.5,最后执行2+12+2.5得16.5
B: 先执行3*4得12,再执行2+12得14,再执行7/3得2,最后执行14+2得16
C: 先执行7/3得2,再执行3*4得12,再执行12+2得14,最后执行2+14得16
D: 先执行2+3得5,再执行5*4得20,再执行20+7得27,最后执行27/3得9
答案: 先执行3*4得12,再执行2+12得14,再执行7/3得2,最后执行14+2得16
27、单选题:
以下选项中不属于C语言程序运算符的是( )
A: sizeof
B: <>
C: ( )
D: &&
答案: <>
28、单选题:
若变量已正确定义并赋值,以下不能构成C语句的选项是( )
A: B++;
B: A=a+b;
C: a=a+b
D: A?a:b;
答案: a=a+b
29、单选题:
有以下程序 #include <stdio.h> main() { int sum, pad, pAd; sum = pad = 5; pAd = ++sum, pAd++, ++pad; printf(“%dn”, pad ); }程序的输出结果是( )
A: 5
B: 6
C: 7
D: 8
答案: 6
30、单选题:
有以下程序:#include <stdio.h>main(){ int x, y, z; x=y=1; z=x++,y++,++y; printf(“%d,%d,%dn”,x,y,z);}程序运行后的输出结果是( )
A: 2,3,3
B: 2,3,2
C: 2,3,1
D: 2,2,1
答案: 2,3,1
31、单选题:
若有以下程序段 double x=5.16894; printf(“%fn”, (int)(x*1000+0.5)/(double)1000 );则程序段的输出结果是( )
A: 5.170000
B: 5.175000
C: 5.169000
D: 5.168000
答案: 5.169000
32、单选题:
有以下程序#include <stdio.h>main( ){ int c, d; c = 10^3; d = 10+3; printf(“%d,%dn”, c, d); }程序运行后的输出结果是( )
A: 103,13
B: 13,13
C: 10,13
D: 9,13
答案: 9,13
33、单选题:
有以下程序#include <stdio.h>main(){ int c,d; c = 10 | 5; d = 10 + 5; printf(“%d,%dn”, c, d); }程序的运行结果是( )
A: 15,15
B: 10,15
C: 5,15
D: 105,15
答案: 15,15
34、单选题:
有如下程序#include <stdio.h>main(){ int a = 8, b; b = (a >> 2) % 2; printf(“%d,%dn”, a, b);}程序运行后的输出结果是( )
A: 8,0
B: 4,0
C: 4,1
D: 8,1
答案: 8,0
35、单选题:
有以下程序#include <stdio.h>main(){ int a; a = (int)(-1.53*3); printf(“%dn”, a);}程序的运行结果是( )
A: -4
B: -3
C: -5
D: 结果不确定
答案: -4
36、单选题:
有以下程序#include <stdio.h>main(){ int a; a = (int)1.99*3; printf(“%dn”, a);}程序的运行结果是( )
A: 3
B: 5
C: 6
D: 结果不确定
答案: 3
37、单选题:
有如下程序#include <stdio.h>main( ){ int a = 9, b; b = (a >> 3) % 4; printf(“%d,%dn”, a, b);}程序运行后的输出结果是( )
A: 9,1
B: 4,0
C: 4,3
D: 9,3
答案: 9,1
38、单选题:
有以下程序#include <stdio.h>main( ){ int c,d; c = (13>>1)|1; d = (13>1)||1; printf(“%d,%dn”, c, d);}程序运行后的输出结果是( )
A: 6,1
B: 1,1
C: 7,1
D: 7,2
答案: 7,1
39、单选题:
表达式:(int)((double)9/2)- 9%2 的值是( )
A: 0
B: 3
C: 4
D: 5
答案: 3
40、单选题:
sizeof( double )是( )
A: 一个整型表达式
B: 一个双精度型表达式
C: 一个不合法的表达式
D: 一种函数调用
答案: 一个整型表达式
41、单选题:
有以下程序:#include <stdio.h>main(){ int s,t,A=10; double B=6; s=sizeof(A); t=sizeof(B); printf(“%d,%dn”,s,t);}在VC6.0平台上编译运行,程序运行后的输出结果是( )
A: 10,6
B: 4,4
C: 2,4
D: 4,8
答案: 4,8
42、单选题:
若有定义语句:int x=10; ,则表达式x-=x+x的值为( )
A: 0
B: -20
C: -10
D: 10
答案: -10
43、单选题:
表达式 a+=a -= a=9 的值是( )
A: 18
B: -9
C: 0
D: 9
答案: 0
44、单选题:
若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是( )
A: x+1=y
B: ++x,y=x–
C: x=x+10=x+y
D: double(x)/10
答案: ++x,y=x–
45、单选题:
设有定义:int x=2;,以下表达式中,值不为6的是( )
A: 2*x,x+=2
B: x++,2*x
C: x*=(1+x)
D: x*=x+1
答案: 2*x,x+=2
46、单选题:
若有以下程序 #include <stdio.h> main(){ int a=0,b=0,c=0; c= (a -= ++a), (a+=b, b+=4); printf(“%d,%d,%dn”,a,b,c); }则程序的输出结果是( )
A: 0,4,0
B: 0,4,4
C: 1,4,1
D: 1,4,4
答案: 0,4,0
47、单选题:
若有以下程序 #include <stdio.h> main() { int a=0,b=0,c=0,d; c= (a+=b,, b+=a); /*第4行*/ d=c;; /*第5行*/ ; /*第6行*/ ;printf(“%d,%d,%dn”,a,b,c); /*第7行*/ }编译时出现错误,你认为出错的是( )
A: 第4行
B: 第5行
C: 第6行
D: 第7行
答案: 第4行
48、单选题:
以下叙述中正确的是( )
A: 复合语句在语法上包含多条语句,其中不能定义局部变量
B: 花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的
C: 空语句就是指程序中的空行
D: 当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键) 前,可以任意修改
答案: 当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键) 前,可以任意修改
49、单选题:
以下叙述正确的是( )
A: C程序总是以main()作为程序执行的起始行
B: main()函数若不带参数,其后面的一对圆括号可省略
C: 函数体内的定义语句和可执行语句允许任意穿插出现
D: C语言中的语句之间必须用分号作为分隔符
答案: C程序总是以main()作为程序执行的起始行
50、单选题:
阅读以下程序#include <stdio.h>main(){ int case ; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&printF ); printf(“%d %fn”,case,printF );}该程序在编译时产生错误,其出错原因是( )
A: 定义语句出错,case是关键字,不能用作用户自定义标识符
B: 定义语句出错,printF不能用作用户自定义标识符
C: 定义语句无错,scanf不能作为输入函数使用
D: 定义语句无错,printf不能输出case的值
答案: 定义语句出错,case是关键字,不能用作用户自定义标识符
51、单选题:
以下叙述中正确的是( )
A: 复合语句在语法上包含多条语句,其中不能定义局部变量
B: 花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的
C: 空语句就是指程序中的空行
D: 当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键) 前,可以任意修改
答案: 当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键) 前,可以任意修改
52、单选题:
以下叙述中正确的是( )
A: 在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上
B: 在使用scanf函数输入整数或实数时,输入数据之间只能用空格来分隔
C: 在printf函数中,各个输出项只能是变量
D: 使用printf函数无法输出百分号%
答案: 在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上
53、单选题:
有以下程序 #include <stdio.h> main() { int a=2, c=5; printf( “a=%%d,b=%%dn”, a,c ); }程序的输出结果是( )
A: a=2,b=5
B: a=%2,b=%5
C: a=%d,b=%d
D: a=%%d,b=%%d
答案: a=%d,b=%d
54、单选题:
设有定义:int n = 1234; double x = 3.1415;则语句 printf(“%3d,%1.3fn”, n, x); 的输出结果是( )
A: 1234,3.142
B: 123,3.142
C: 1234,3.141
D: 123,3.141
答案: 1234,3.142
55、单选题:
有以下程序:#include <stdio.h>main(){ char a,b,c,d; scanf(“%c%c”,&a, &b); c=getchar(); d=getchar(); printf(“%c%c%c%cn”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是( )。
A: 1234
B: 12
C: 1234
D: 123
答案: 123
56、单选题:
若要求从键盘读入含有空格字符的字符串,应使用函数
A: getchar()
B: getc()
C: gets()
D: scanf()
答案: gets()
57、单选题:
若有以下程序 #include <stdio.h> main() { int a=0,b=0,c=0,d; c= (a+=b,, b+=a); /*第4行*/ d=c;; /*第5行*/ ; /*第6行*/ ;printf(“%d,%d,%dn”,a,b,c); /*第7行*/ }编译时出现错误,你认为出错的是( )
A: 第4行
B: 第5行
C: 第6行
D: 第7行
答案: 第4行
58、单选题:
若有以下程序 #include <stdio.h> main() { int a=0,b=0,c=0 c= (a+=++b, b+=4); printf(“%d,%d,%dn”,a,b,c); }则程序的输出结果是( )
A: 1,5,1
B: 1,5,5
C: -1,4,4
D: -1,4,-1
答案: 1,5,5
59、单选题:
以下叙述中正确的是( )
A: 在scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符
B: 只能在printf函数中指定输入数据的宽度,而不能在scanf函数中指定输入数据占的宽度
C: scanf函数中的字符串,是提示程序员的,输入数据时不必管它
D: 复合语句也被称为语句块,它至少要包含两条语句
答案: 在scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符
60、单选题:
#include <stdio.h> main() { char c1,c2,c3,c4,c5,c6; scanf(“%c%c%c%c”, &c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c%cn”,c5,c6); }程序运行后,若从键盘输入(从第1列开始) 123<回车> 45678<回车>则输出结果是( )
A: 1245
B: 1256
C: 1278
D: 1267
答案: 1245
61、单选题:
有以下程序:#include <stdio.h>main(){ char a,b,c,d; scanf(“%c%c”,&a, &b); c=getchar(); d=getchar(); printf(“%c%c%c%cn”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是( )
A: 1234
B: 12
C: 1234
D: 123
答案: 123
62、单选题:
若要求从键盘读入含有空格字符的字符串,应使用函数( )
A: getchar()
B: getc()
C: gets()
D: scanf()
答案: gets()
63、单选题:
以下不能输出字符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);
答案: printf (“%d n”, ‘A’);
64、单选题:
以下叙述中正确的是( )
A: 在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上
B: 在使用scanf函数输入整数或实数时,输入数据之间只能用空格来分隔
C: 在printf函数中,各个输出项只能是变量
D: 使用printf函数无法输出百分号%
答案: 在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上
65、单选题:
有以下程序 #include <stdio.h> main() { int a=2, c=5; printf( “a=%%d,b=%%dn”, a,c ); }程序的输出结果是( )
A: a=2,b=5
B: a=%2,b=%5
C: a=%d,b=%d
D: a=%%d,b=%%d
答案: a=%d,b=%d
66、单选题:
以下叙述中正确的是( )
A: 由printf输出的数据都隐含左对齐
B: scanf和printf是C语言提供的输入和输出语句
C: 赋值语句是一种执行语句,必须放在函数的可执行部分
D: 由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的
答案: 赋值语句是一种执行语句,必须放在函数的可执行部分
67、单选题:
有以下程序:#include <stdio.h>main(){ int a=1,b=0; printf(“%d,”,b=a+b); printf(“%dn”,a=2*b);程序运行后的输出结果是( )
A: 1,2
B: 1,0
C: 3,2
D: 0,0
答案: 1,2
68、单选题:
有以下程序:#include <stdio.h>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 则正确的输入格式是(以下_代表空格,<CR>代表回车)( )
A: 12_a34_b<CR>
B: 12_a_34_b<CR>
C: 12,a,34,b<CR>
D: 12a34b<CR>
答案: 12a34b<CR>
第4单元 身高体型判定系统”决策判断——选择结构程序设计
过关斩将4-1
1、单选题:
若变量已正确定义,在if (W) printf(“%dn” ,k ); 中,以下不可替代W的是( )
A: a<>b+c
B: ch=getchar()
C: a==b+c
D: a++
答案: a<>b+c
2、单选题:
设有定义: 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;}
答案: if(a<b) c=a;a=b;b=c;
3、单选题:
if语句的基本形式是:if (表达式) 语句,以下关于”表达式”值的叙述中正确的是( )
A: 必须是逻辑值
B: 必须是整数值
C: 必须是正数
D: 可以是任意合法的数值
答案: 可以是任意合法的数值
4、单选题:
有以下程序:#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,%dn”,a,b,c,d);}程序输出( )
A: 1,1,2,0
B: 0,0,0,3
C: 编译有错
D: 0,1,2,0
答案: 编译有错
5、单选题:
有以下程序段: #include <stdio.h> int a, b, c; a=10; b=50; c=30; if (a>b) a=b, b=c; c=a; printf(“a=%d b=%d c=%dn”, a, b, c);程序的输出结果是( )
A: a=10 b=50 c=30
B: a=10 b=50 c=10
C: a=10 b=30 c=10
D: a=50 b=30 c=50
答案: a=10 b=50 c=10
6、单选题:
设有定义: 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;}
答案: if(a>b) c=a;a=b;b=c;
7、单选题:
有以下程序#include <stdio.h>main(){ int a, b, c=241; a = c/100 % 9; b = ( -1 )&&( -1 ); printf(“%d, %dn”, a, b );}程序运行后的输出结果是( )
A: 2,1
B: 6,1
C: 6,0
D: 2,0
答案: 2,1
过关斩将4-2
1、单选题:
以下叙述中正确的是( )
A: 在C语言中,逻辑真值和假值分别对应1和0
B: 关系运算符两边的运算对象可以是C语言中任意合法的表达式
C: 对于浮点变量x和y,表达式:x==y 是非法的,会出编译错误
D: 分支结构是根据算术表达式的结果来判断流程走向的
答案: 关系运算符两边的运算对象可以是C语言中任意合法的表达式
2、单选题:
下列关系表达式中,结果为”假”的是( )
A: 3 <= 4
B: (3 < 4) == 1
C: (3 + 4) > 6
D: (3 != 4) > 2
答案: (3 != 4) > 2
3、单选题:
与数学表达式x≥y≥z对应的C语言表达式是( )
A: (x>=y)||(y>=x)
B: (x>=y>=z)
C: (x>=y)!(y>=z)
D: (x>=y)&&(y>=z)
答案: (x>=y)&&(y>=z)
4、单选题:
表示关系式x≤y≤z的C语言表达式的是( )
A: (x<=y)&&(y<=z)
B: (x<=y)||(y<=z)
C: (x<=y<=z)
D: x<=y)!(y<=z)
答案: (x<=y)&&(y<=z)
5、单选题:
下关于关系运算符两侧运算对象的叙述中正确的是( )
A: 可以是任意合法的表达式
B: 只能是整数0或非0整数
C: 可以是结构体类型的数据
D: 只能是整数0或1
答案: 可以是任意合法的表达式
6、单选题:
下列条件语句中,输出结果与其他语句不同的是( )
A: if ( a!=0 ) printf(“%dn”, x); else printf(“%dn”, y);
B: if ( a==0 ) printf(“%dn”, y); else printf(“%dn”, x);
C: if ( a==0 ) printf(“%dn”, x); else printf(“%dn”, y);
D: if ( a ) printf(“%dn”, x); else printf(“%dn”, y);
答案: if ( a==0 ) printf(“%dn”, x); else printf(“%dn”, y);
7、单选题:
有以下程序#include <stdio.h>main(){ char c=’A’; int x=36, b; b= (x>>2) && ( c<‘a’ ); printf(“%dn”, b );}程序运行后的输出结果是( )
A: 1
B: 0
C: 2
D: 4
答案: 1
8、单选题:
有定义:int x=11,y=12,z=0;,以下表达式值不等于12的是( )
A: (z,x,y)
B: (z=x,y)
C: z=(x,y)
D: z=(x==y)
答案: z=(x==y)
过关斩将4-3
1、单选题:
若变量已正确定义,以下选项中非法的表达式是( )
A: a!=4||’b’
B: ‘a’=1/2*(x=y=20,x*3)
C: ‘a’ % 4
D: ‘A’ + 32
答案: ‘a’=1/2*(x=y=20,x*3)
2、单选题:
以下选项中,当x为大于1的奇数时,值为0的表达式是( )
A: x%2==0
B: x/2
C: x%2!=0
D: x%2==1
答案: x%2==0
3、单选题:
当变量c的值不为2、4、6时,值为”真”的表达式是( )
A: (c>=2 && c<=6)&&(c%2!=1)
B: (c==2)||(c==4)||(c==6)
C: (c>=2 && c<=6)&& !(c%2)
D: (c>=2 && c<=6) || (c!=3) || (c!=5)
答案: (c>=2 && c<=6) || (c!=3) || (c!=5)
4、单选题:
以下叙述中正确的是( )
A: 对于逻辑表达式:a++ || b++,设a的值为1,则求解表达式的值后,b的值会发生改变
B: 对于逻辑表达式:a++ && b++,设a的值为0,则求解表达式的值后,b的值会发生改变
C: else不是一条独立的语句,它只是if语句的一部分
D: 关系运算符的结果有三种:0,1,-1
答案: else不是一条独立的语句,它只是if语句的一部分
5、单选题:
有以下程序 #include <stdio.h> main() { int x=35, B; char z=’B’ ; B = (( x ) && ( z <‘b’ )); printf(“%dn”, B ); }程序运行后的输出结果是( )
A: 1
B: 0
C: 35
D: 66
答案: 1
6、单选题:
以下叙述中正确的是( )
A: 逻辑”或”(即运算符||)的运算级别比算术运算要高
B: C语言的关系表达式:0<x<10完全等价于: (0<x) && (x<10)
C: 逻辑”非”(即运算符!)的运算级别是最低的
D: 由&&构成的逻辑表达式与由||构成的逻辑表达式都有”短路”现象
答案: 由&&构成的逻辑表达式与由||构成的逻辑表达式都有”短路”现象
7、单选题:
若有以下程序 #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,%dn”, a,b,c,d); }则程序的输出结果是( )
A: 2,2,2,4
B: 2,1,2,-1
C: 5,1,2,-1
D: 1,2,3,4
答案: 5,1,2,-1
8、单选题:
已知a=6,b=5,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c<d)后n的值为( )
A: 1
B: 0
C: 2
D: -1
答案: 1
9、单选题:
以下叙述中正确的是( )
A: 在C语言中,1代表真,0代表假
B: 关系运算符两边的运算对象可以是C语言中任意合法的表达式
C: 对于浮点变量x和y,表达式:x==y 可以精确判定两个浮点数值相等
D: 分支结构是根据算术表达式的结果来判断流程走向的
答案: 关系运算符两边的运算对象可以是C语言中任意合法的表达式
10、单选题:
若变量已正确定义,以下选项中非法的表达式是( )
A: a!=4||’b’
B: ‘a’=1/2*(x=y=20,x*3)
C: ‘a’ % 4
D: ‘A’ + 32
答案: ‘a’=1/2*(x=y=20,x*3)
11、单选题:
若有以下程序 #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,%dn”, a,b,c,d); }则程序的输出结果是( )
A: 1,2,3,4
B: 2,1,2,-1
C: 5,1,2,-1
D: 2,2,2,4
答案: 2,2,2,4
12、单选题:
设有定义:int a=0,b=1;,以下表达式中,会产生”短路”现象,致使变量b的值不变的是( )
A: a++ && b++
B: a++ || ++b
C: ++a && b++
D: ++a || ++b
答案: a++ && b++
13、单选题:
设有定义:int a=0,b=1;,以下表达式中,会产生”短路”现象,致使变量b的值不变的是( )
A: a++||++b
B: a–||++b
C: ++a&&b++
D: a++&&b++
答案: a++&&b++
14、单选题:
已知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
答案: 2
过关斩将4-4
1、单选题:
若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中的条件表达式(x-y) 等价的是( )
A: (x-y<0||x-y>0)
B: (x-y<0)
C: (x-y>0)
D: (x-y==0)
答案: (x-y<0||x-y>0)
2、单选题:
设有宏定义: #define IsDIV(k,n) ( ( k%n==1) ? 1 : 0)且变量m已正确定义并赋值,则宏调用: IsDIV(m,5) && IsDIV(m,7)为真时所要表达的是( )
A: 判断m是否能被5和7整除
B: 判断m被5和7整除是否都余1
C: 判断m被5或者7整除是否余1
D: 判断m是否能被5或者7整除
答案: 判断m被5和7整除是否都余1
3、单选题:
若有定义:int a=0,b=0,c=0,d=0;,以下关于C语言表达式:(++a || ++b) ? ++c : ++d 执行顺序的叙述正确的是( )
A: 先执行++a,表达式++a的值为1;再执行++b,表达式++b的值为1,由此可确定(++a || ++b)值为1,因此执行++c
B: 先执行++a,表达式++a的值为1,由此可确定(++a || ++b)值为1,因此执行++c
C: 先执行++b,表达式++b的值为1;再执行++a,表达式++a的值为1,由此可确定(++a || ++b)值为1,因此执行++c
D: 先执行++b,表达式++b的值为1,由此可确定(++a || ++b)值为1,因此执行++c
答案: 先执行++a,表达式++a的值为1,由此可确定(++a || ++b)值为1,因此执行++c
4、单选题:
若有定义:int a=0,b=0,c=0,d=0; ,有C语言表达式 (a++ && b++) ? c++ : d++,以下关于其执行顺序的叙述正确是( )
A: 先执行a++,表达式a++的值为0,由此即可确定(a++&&b++)的值为0,因此执行d++
B: 先执行a++,表达式a++的值为0;再执行b++,表达式b++的值为0,由此可确定(a++ && b++)值为0,因此执行d++
C: 先执行a++,表确定(a++ && b++)值为1,因此执行c++,确定c++的值为1;再执行d++,表达式d++的值为1
D: 先执行b++,表达式b++的值为1;再执行a++,表达式a++的值为1,由此可确定(a++ && b++)值为1,因此执行c++
答案: 先执行a++,表达式a++的值为0,由此即可确定(a++&&b++)的值为0,因此执行d++
5、单选题:
若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中的条件表达式(x-y) 等价的是( )。
A: (x-y<0||x-y>0)
B: (x-y<0)
C: (x-y>0)
D: (x-y==0)
答案: (x-y<0||x-y>0)
6、单选题:
有以下程序#include <stdio.h>main(){ int a=0,b=0,c=0,d=0; (++a || ++b) ? ++c : ++d; printf(“%d,%d,%d,%dn”, a,b,c,d);}程序的运行结果是( )
A: 1,0,1,0
B: 1,1,0,1
C: 1,0,0,1
D: 1,1,1,0
答案: 1,0,1,0
过关斩将4-5
1、单选题:
有以下程序 #include <stdio.h> main() { double x=2.0, y; if( x<0.0 ) y=0.0; else if( (x<5.0) && (!x) ) y=1.0 / ( x+2.0 ); else if( x<10.0 ) y=1.0 / x; else y=10.0; printf(” %fn “, y ); }程序运行后的输出结果是( )
A: 0.000000
B: 0.250000
C: 0.500000
D: 1.000000
答案: 0.500000
2、单选题:
有以下程序#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,%dn”,a,b,c); else printf(“%d,%d,%dn”,a,b,c); else printf(“%d,%d,%dn”,a,b,c);}程序运行后的输出结果是( )
A: 1,3,2
B: 1,3,3
C: 1,2,3
D: 3,2,1
答案: 1,3,3
3、单选题:
若有以下程序 #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,%dn”, a,b,c,d); }则程序的输出结果是( )
A: 2,2,2,4
B: 2,1,2,-1
C: 5,1,2,-1
D: 1,2,3,4
答案: 5,1,2,-1
4、单选题:
若有以下程序 #include <stdio.h> main() { int a=1,b=2,c=3,d=4, r=0; if (a!=1) ; else r=1; if (b==2) r+=2; else; if (c!=3) r+=3; else; if (d==4) r+=4; printf(“%dn”, r); }则程序的输出结果是( )
A: 10
B: 7
C: 6
D: 3
答案: 7
5、单选题:
若有以下程序 #include <stdio.h> main() { int a=1,b=2,c=3,d=4, r=0; if (a!=1) ; else r=1; if (b==2) r+=2; if (c!=3); r+=3; if (d==4) r+=4; printf(“%dn”, r); }则程序的输出结果是( )
A: 3
B: 7
C: 6
D: 10
答案: 10
6、单选题:
以下程序的功能是判断输入的一个整数是否能被3或7整除,若能整除,输出YES,否则输出NO。在下划线处应填入的选项是( )#include <stdio.h>main(){ int k; printf(“Enter a int number : “); scanf(“%d”, &k ); if ________ printf(“YESn”); else printf(“NOn”); printf(“%dn”,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) )
答案: ( (k%3==0) || (k%7==0) )
7、单选题:
有如下程序#include <stdio.h>main() { int a = 0, b = 1; if (++a == b++) printf(“T”); else printf(“F”); printf(“a=%d,b=%dn”, a, b); printf(“n”);}程序运行后的输出结果是( )
A: Ta=0,b=1
B: Fa=1,b=2
C: Ta=1,b=2
D: Fa=0,b=2
答案: Ta=1,b=2
过关斩将4-6
1、单选题:
有以下程序 #include <stdio.h> main() { int x=1, y=0,a=0,b=0; switch( x ) { case 1: switch ( y ) { case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break; } printf(“a=%d,b=%dn”,a,b ); }程序运行后的输出结果是( )
A: a=1,b=0
B: a=1,b=1
C: a=2,b=1
D: a=2,b=2
答案: a=2,b=1
高手闯关4-1
1、单选题:
若变量已正确定义,在if (W) printf(“%dn” ,k ); 中,以下不可替代W的是( )
A: a<>b+c
B: ch=getchar()
C: a==b+c
D: a++
答案: a<>b+c
2、单选题:
设有定义: 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;}
答案: if(a<b) c=a;a=b;b=c;
3、单选题:
if语句的基本形式是:if (表达式) 语句,以下关于”表达式”值的叙述中正确的是( )
A: 必须是逻辑值
B: 必须是整数值
C: 必须是正数
D: 可以是任意合法的数值
答案: 可以是任意合法的数值
4、单选题:
有以下程序:#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,%dn”,a,b,c,d);}程序输出( )
A: 1,1,2,0
B: 0,0,0,3
C: 编译有错
D: 0,1,2,0
答案: 编译有错
5、单选题:
有以下程序段: #include <stdio.h> int a, b, c; a=10; b=50; c=30; if (a>b) a=b, b=c; c=a; printf(“a=%d b=%d c=%dn”, a, b, c);程序的输出结果是( )
A: a=10 b=50 c=30
B: a=10 b=50 c=10
C: a=10 b=30 c=10
D: a=50 b=30 c=50
答案: a=10 b=50 c=10
6、单选题:
设有定义: 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;}
答案: if(a>b) c=a;a=b;b=c;
7、单选题:
有以下程序#include <stdio.h>main(){ int a, b, c=241; a = c/100 % 9; b = ( -1 )&&( -1 ); printf(“%d, %dn”, a, b );}程序运行后的输出结果是( )
A: 2,1
B: 6,1
C: 6,0
D: 2,0
答案: 2,1
8、单选题:
以下叙述中正确的是( )
A: 在C语言中,逻辑真值和假值分别对应1和0
B: 关系运算符两边的运算对象可以是C语言中任意合法的表达式
C: 对于浮点变量x和y,表达式:x==y 是非法的,会出编译错误
D: 分支结构是根据算术表达式的结果来判断流程走向的
答案: 关系运算符两边的运算对象可以是C语言中任意合法的表达式
9、单选题:
下列关系表达式中,结果为”假”的是( )
A: 3 <= 4
B: (3 < 4) == 1
C: (3 + 4) > 6
D: (3 != 4) > 2
答案: (3 != 4) > 2
10、单选题:
与数学表达式x≥y≥z对应的C语言表达式是( )
A: (x>=y)||(y>=x)
B: (x>=y>=z)
C: (x>=y)!(y>=z)
D: (x>=y)&&(y>=z)
答案: (x>=y)&&(y>=z)
11、单选题:
表示关系式x≤y≤z的C语言表达式的是( )
A: (x<=y)&&(y<=z)
B: (x<=y)||(y<=z)
C: (x<=y<=z)
D: (x<=y)!(y<=x)
答案: (x<=y)&&(y<=z)
12、单选题:
下关于关系运算符两侧运算对象的叙述中正确的是( )
A: 可以是任意合法的表达式
B: 只能是整数0或非0整数
C: 可以是结构体类型的数据
D: 只能是整数0或1
答案: 可以是任意合法的表达式
13、单选题:
下列条件语句中,输出结果与其他语句不同的是( )
A: if ( a!=0 ) printf(“%dn”, x); else printf(“%dn”, y);
B: if ( a==0 ) printf(“%dn”, y); else printf(“%dn”, x);
C: if ( a==0 ) printf(“%dn”, x); else printf(“%dn”, y);
D: if ( a ) printf(“%dn”, x); else printf(“%dn”, y);
答案: if ( a==0 ) printf(“%dn”, x); else printf(“%dn”, y);
14、单选题:
有以下程序#include <stdio.h>main(){ char c=’A’; int x=36, b; b= (x>>2) && ( c<‘a’ ); printf(“%dn”, b );}程序运行后的输出结果是( )
A: 1
B: 0
C: 2
D: 4
答案: 1
15、单选题:
有定义:int x=11,y=12,z=0;,以下表达式值不等于12的是( )
A: (z,x,y)
B: (z=x,y)
C: z=(x,y)
D: z=(x==y)
答案: z=(x==y)
16、单选题:
若变量已正确定义,以下选项中非法的表达式是( )
A: a!=4||’b’
B: ‘a’=1/2*(x=y=20,x*3)
C: ‘a’ % 4
D: ‘A’ + 32
答案: ‘a’=1/2*(x=y=20,x*3)
17、单选题:
以下选项中,当x为大于1的奇数时,值为0的表达式是( )
A: x%2==0
B: x/2
C: x%2!=0
D: x%2==1
答案: x%2==0
18、单选题:
当变量c的值不为2、4、6时,值为”真”的表达式是( )
A: (c>=2 && c<=6)&&(c%2!=1)
B: (c==2)||(c==4)||(c==6)
C: (c>=2 && c<=6)&& !(c%2)
D: (c>=2 && c<=6) || (c!=3) || (c!=5)
答案: (c>=2 && c<=6) || (c!=3) || (c!=5)
19、单选题:
以下叙述中正确的是( )
A: 对于逻辑表达式:a++ || b++,设a的值为1,则求解表达式的值后,b的值会发生改变
B: 对于逻辑表达式:a++ && b++,设a的值为0,则求解表达式的值后,b的值会发生改变
C: else不是一条独立的语句,它只是if语句的一部分
D: 关系运算符的结果有三种:0,1,-1
答案: else不是一条独立的语句,它只是if语句的一部分
20、单选题:
有以下程序 #include <stdio.h> main() { int x=35, B; char z=’B’ ; B = (( x ) && ( z <‘b’ )); printf(“%dn”, B ); }程序运行后的输出结果是( )
A: 1
B: 0
C: 35
D: 66
答案: 1
21、单选题:
以下叙述中正确的是( )
A: 逻辑”或”(即运算符||)的运算级别比算术运算要高
B: C语言的关系表达式:0<x<10完全等价于: (0<x) && (x<10)
C: 逻辑”非”(即运算符!)的运算级别是最低的
D: 由&&构成的逻辑表达式与由||构成的逻辑表达式都有”短路”现象
答案: 由&&构成的逻辑表达式与由||构成的逻辑表达式都有”短路”现象
22、单选题:
若有以下程序 #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,%dn”, a,b,c,d); }则程序的输出结果是( )
A: 2,2,2,4
B: 2,1,2,-1
C: 5,1,2,-1
D: 1,2,3,4
答案: 5,1,2,-1
23、单选题:
已知a=6,b=5,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c<d)后n的值为( )
A: 1
B: 0
C: 2
D: -1
答案: 1
24、单选题:
以下叙述中正确的是( )
A: 在C语言中,1代表真,0代表假
B: 关系运算符两边的运算对象可以是C语言中任意合法的表达式
C: 对于浮点变量x和y,表达式:x==y 可以精确判定两个浮点数值相等
D: 分支结构是根据算术表达式的结果来判断流程走向的
答案: 关系运算符两边的运算对象可以是C语言中任意合法的表达式
25、单选题:
若变量已正确定义,以下选项中非法的表达式是( )
A: a!=4||’b’
B: ‘a’=1/2*(x=y=20,x*3)
C: ‘a’ % 4
D: ‘A’ + 32
答案: ‘a’=1/2*(x=y=20,x*3)
26、单选题:
若有以下程序 #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,%dn”, a,b,c,d); }则程序的输出结果是( )
A: 1,2,3,4
B: 2,1,2,-1
C: 5,1,2,-1
D: 2,2,2,4
答案: 2,2,2,4
27、单选题:
设有定义:int a=0,b=1;,以下表达式中,会产生”短路”现象,致使变量b的值不变的是( )
A: a++ && b++
B: a++ || ++b
C: ++a && b++
D: ++a || ++b
答案: a++ && b++
28、单选题:
设有定义:int a=0,b=1;,以下表达式中,会产生”短路”现象,致使变量b的值不变的是( )
A: a++||++b
B: a–||++b
C: ++a&&b++
D: a++&&b++
答案: a++&&b++
29、单选题:
已知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
答案: 2
30、单选题:
设有定义:int a=64,b=8;,则表达式(a&b)||(a&&b)和(a|b)&&(a||b)的值分别为( )
A: 1和1
B: 1和0
C: 0和1
D: 0和0
答案: 1和1
31、单选题:
若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中的条件表达式(x-y) 等价的是( )
A: (x-y<0||x-y>0)
B: (x-y<0)
C: (x-y>0)
D: (x-y==0)
答案: (x-y<0||x-y>0)
32、单选题:
设有宏定义: #define IsDIV(k,n) ( ( k%n==1) ? 1 : 0)且变量m已正确定义并赋值,则宏调用: IsDIV(m,5) && IsDIV(m,7)为真时所要表达的是( )
A: 判断m是否能被5和7整除
B: 判断m被5和7整除是否都余1
C: 判断m被5或者7整除是否余1
D: 判断m是否能被5或者7整除
答案: 判断m被5和7整除是否都余1
33、单选题:
若有定义:int a=0,b=0,c=0,d=0;,以下关于C语言表达式:(++a || ++b) ? ++c : ++d 执行顺序的叙述正确的是( )
A: 先执行++a,表达式++a的值为1;再执行++b,表达式++b的值为1,由此可确定(++a || ++b)值为1,因此执行++c
B: 先执行++a,表达式++a的值为1,由此可确定(++a || ++b)值为1,因此执行++c
C: 先执行++b,表达式++b的值为1;再执行++a,表达式++a的值为1,由此可确定(++a || ++b)值为1,因此执行++c
D: 先执行++b,表达式++b的值为1,由此可确定(++a || ++b)值为1,因此执行++c
答案: 先执行++a,表达式++a的值为1,由此可确定(++a || ++b)值为1,因此执行++c
34、单选题:
若有定义:int a=0,b=0,c=0,d=0; ,有C语言表达式 (a++ && b++) ? c++ : d++,以下关于其执行顺序的叙述正确是( )
A: 先执行a++,表达式a++的值为0,由此即可确定(a++&&b++)的值为0,因此执行d++
B: 先执行a++,表达式a++的值为0;再执行b++,表达式b++的值为0,由此可确定(a++ && b++)值为0,因此执行d++
C: 先执行a++,表确定(a++ && b++)值为1,因此执行c++,表达式a++的值为1;再执行b++,表达式b++的值为1
D: 先执行b++,表达式b++的值为1;再执行a++,表达式a++的值为1,由此可确定(a++ && b++)值为1,因此执行c++
答案: 先执行a++,表达式a++的值为0,由此即可确定(a++&&b++)的值为0,因此执行d++
35、单选题:
若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中的条件表达式(x-y) 等价的是( )。
A: (x-y<0||x-y>0)
B: (x-y<0)
C: (x-y>0)
D: (x-y==0)
答案: (x-y<0||x-y>0)
36、单选题:
有以下程序#include <stdio.h>main(){ int a=0,b=0,c=0,d=0; (++a || ++b) ? ++c : ++d; printf(“%d,%d,%d,%dn”, a,b,c,d);}程序的运行结果是( )
A: 1,0,1,0
B: 1,1,0,1
C: 1,0,0,1
D: 1,1,1,0
答案: 1,0,1,0
37、单选题:
有以下程序 #include <stdio.h> main() { double x=2.0, y; if( x<0.0 ) y=0.0; else if( (x<5.0) && (!x) ) y=1.0 / ( x+2.0 ); else if( x<10.0 ) y=1.0 / x; else y=10.0; printf(” %fn “, y ); }程序运行后的输出结果是( )
A: 0.000000
B: 0.250000
C: 0.500000
D: 1.000000
答案: 0.500000
38、单选题:
有以下程序#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,%dn”,a,b,c); else printf(“%d,%d,%dn”,a,b,c); else printf(“%d,%d,%dn”,a,b,c);}程序运行后的输出结果是( )
A: 1,3,2
B: 1,3,3
C: 1,2,3
D: 3,2,1
答案: 1,3,3
39、单选题:
若有以下程序 #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,%dn”, a,b,c,d); }则程序的输出结果是( )
A: 2,2,2,4
B: 2,1,2,-1
C: 5,1,2,-1
D: 1,2,3,4
答案: 5,1,2,-1
40、单选题:
若有以下程序 #include <stdio.h> main() { int a=1,b=2,c=3,d=4, r=0; if (a!=1) ; else r=1; if (b==2) r+=2; else; if (c!=3) r+=3; else; if (d==4) r+=4; printf(“%dn”, r); }则程序的输出结果是( )
A: 10
B: 7
C: 6
D: 3
答案: 7
41、单选题:
若有以下程序 #include <stdio.h> main() { int a=1,b=2,c=3,d=4, r=0; if (a!=1) ; else r=1; if (b==2) r+=2; if (c!=3); r+=3; if (d==4) r+=4; printf(“%dn”, r); }则程序的输出结果是( )
A: 3
B: 7
C: 6
D: 10
答案: 10
42、单选题:
以下程序的功能是判断输入的一个整数是否能被3或7整除,若能整除,输出YES,否则输出NO。在下划线处应填入的选项是( )#include <stdio.h>main(){ int k; printf(“Enter a int number : “); scanf(“%d”, &k ); if ________ printf(“YESn”); else printf(“NOn”); printf(“%dn”,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) )
答案: ( (k%3==0) || (k%7==0) )
43、单选题:
有如下程序#include <stdio.h>main() { int a = 0, b = 1; if (++a == b++) printf(“T”); else printf(“F”); printf(“a=%d,b=%dn”, a, b); printf(“n”);}程序运行后的输出结果是( )
A: Ta=0,b=1
B: Fa=1,b=2
C: Ta=1,b=2
D: Fa=0,b=2
答案: Ta=1,b=2
44、单选题:
有以下程序 #include <stdio.h> main() { int x=1, y=0,a=0,b=0; switch( x ) { case 1: switch ( y ) { case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break; } printf(“a=%d,b=%dn”,a,b ); }程序运行后的输出结果是( )
A: a=1,b=0
B: a=1,b=1
C: a=2,b=1
D: a=2,b=2
答案: a=2,b=1
第5单元 身高体型判定系统”完整版——循环结构程序设计
过关斩将5-1
1、单选题:
有以下程序 #include <stdio.h> main() { int y=10; while(y–); printf(“y=%dn”, y); }程序执行后的输出结果是( )
A: y=0
B: y=-1
C: y=1
D: while构成无限循环
答案: y=-1
2、单选题:
有以下程序 #include <stdio.h> main() { int k=5; while(–k) printf(“%d”,k -= 3); printf(“n”); }执行后的输出结果是( )
A: 1
B: 2
C: 4
D: 死循环
答案: 1
3、单选题:
关于”while(条件表达式)循环体”,以下叙述正确的是( )
A: 循环体的执行次数总是比条件表达式的执行次数多一次
B: 条件表达式的执行次数总是比循环体的执行次数多一次
C: 条件表达式的执行次数与循环体的执行次数一样
D: 条件表达式的执行次数与循环体的执行次数无关
答案: 条件表达式的执行次数总是比循环体的执行次数多一次
4、单选题:
有以下程序 #include <stdio.h> main() { int a = 7; while ( a– ) ; printf (“%dn”, a); }程序运行后的输出结果是( )
A: 0
B: -1
C: 1
D: 7
答案: -1
5、单选题:
在以下给出的表达式中,与while(E)中的(E)不等价的表达式是( )
A: (E>0||E<0)
B: (E==0)
C: (! E==0)
D: (E!=0)
答案: (E==0)
6、单选题:
若有以下程序 #include <stdio.h> main() { int a=-2, b=0; while(a++) ++b ; printf(“%d,%dn”, a, b); }则程序的输出结果是( )
A: 1,2
B: 0,2
C: 1,3
D: 2,3
答案: 1,2
7、单选题:
对于while(!E) s; ,若要执行循环体s,则E的取值应为( )
A: E等于1
B: E不等于0
C: E不等于1
D: E等于0
答案: E等于0
8、单选题:
有以下程序 #include <stdio.h> main() { int a = -2, b = 0; while (a++ && ++b) ; printf(“%d,%dn”, a, b ); }程序运行后输出结果是( )
A: 0,2
B: 0,3
C: 1,3
D: 1,2
答案: 1,2
9、单选题:
要求通过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);
答案: while((ch=getchar())!=’N’) printf(“%c “,ch);
10、单选题:
有以下程序#include <stdio.h>main(){ char c; while((c=getchar()) != ‘#’) putchar(c);}执行时如输入abcdefg##<回车> , 则输出结果是( )
A: abcdefg
B: abcdefg#
C: abcdefg##
D: ##
答案: abcdefg
11、单选题:
有如下程序#include <stdio.h>main() { char ch = ‘A’; while (ch < ‘D’) { printf(“%d”, ch – ‘A’); ch++; } printf(“n”);}程序运行后的输出结果
上方为免费预览版答案,如需购买完整答案,请点击下方红字:
为了方便下次阅读,建议在浏览器添加书签收藏本网页
添加书签方法:
1.电脑按键盘的Ctrl键+D键即可收藏本网页
2.手机浏览器可以添加书签收藏本网页
点击浏览器底部菜单-【添加书签】-收藏本网页
点击浏览器底部菜单-【书签/历史】-可查看本网页
获取更多慕课答案,欢迎在浏览器访问我们的网站:
http://mooc.mengmianren.com
注:请切换至英文输入法输入域名,如果没有成功进入网站,请输入完整域名:http://mooc.mengmianren.com/
我们的公众号
打开手机微信,扫一扫下方二维码,关注微信公众号:萌面人APP
本公众号可查看各种网课答案,还可免费查看大学教材答案
点击这里,可查看公众号功能介绍
APP下载
APP功能说明
1.可查看各种网课答案
点击【萌面人官网】,可查看知到智慧树,超星尔雅学习通,学堂在线等网课答案
点击【中国大学慕课答案】,可查看mooc慕课答案
2.可一键领取淘宝/天猫/京东/拼多多无门槛优惠券
如图所示,点击对应图标即可领取淘宝/天猫/京东/拼多多无门槛优惠券
确对堪队聊悼航习软莆拔砰矢