1、第 1次作业 一、单项选择题(本大题共 40分,共 20 小题,每小题 2 分) 1. #inlucde 是一条( )。 A. 文件包含预处理命令 B. 宏定义预处理语句 C. 条件编译预处理命令 D. C语句 2. C程序中,主函数可以有( )。 A. 0个 B. 1个 C. 2个 D. 3个 3. 在由多个函数组成的 C程序中,函数排列顺序上主函数( )。 A. 必须在第一个位置 B. 必须在最后一个位置 C. 可以在任意位置 D. 可以在第一个位置 4. C语 言中要求被操作数必须是整型或字符型数据的运算符是( )。 A. ! B. ,那么与变量 x等价的是( )。 A. p2 B. *
2、p2 C. *p2 D. a=12345; b=54321; a=12345; b=54321; printf(“a=%d,b=%dn“,a,b); return 0; A. a=30,b=30 B. a=60,b=60 C. a=60,b=30 D. a=30,b=60 13. 关于语句: int (*ptr)();,以下说法错误的是( )。 A. ptr是指向函数的指针 B. ptr可以指向定义为类似 int a()的函数 C. ptr是一个函数名,该函数返回值是指向整型数据的指针 D. ptr是 C语言的标识符合,命名要符合 C 语言的规定 14. 下面关于结构体变量的描述中,错误的是(
3、 )。 A. 结构体变量也遵循先定义、后使用的原则 B. 结构体变量可以初始化 C. 结构体变量不能作为整体实现数据的输入 D. 结构体变量虽然不能整体输入,但可以整体实现数据输出 15. 下面关于某结构体类型一级指针变量和数组关系的描述中,正确的是( )。 A. 指针变量不仅能够指向数组元素,也能够指向数组 B. 指针变量仅能够指向数组元素,但不能指向数组 C. 指针变量不能指向数组元素,但可以指向数 组 D. 指针变量既不能指向数组元素,也不能指向数组 16. 下面关于带参数宏的叙述中,错误的是( )。 A. 宏也有默认的作用域 :从其定义处开始到所在源文件结束为止 B. 带参数宏中的参数
4、不需要指定数据类型 C. 为避免歧义,替换用字符串中的形参最好用括号括起来 D. 宏调用与函数调用都有调用时系统开销 17. 下面关于一维动态数组特点的描述中,错误的是( )。 A. 动态一维数组使用完成后应该用 free函数释放 B. 动态一维数组也可以进行初始化 C. 创建动态一维数组时,长度最好使用 sizeof 运 算符进行计算 D. 动态一维数组就是程序运行过程中分配空间构造的线性空间 18. 下面关于条件编译预处理 #if系列命令的叙述中,正确的是( )。 A. 使用 #if系列预处理命令,可以在程序执行时对流程进行控制 B. 在使用 #if系列预处理命令时, #if必须和 #en
5、dif配合使用 C. 使用 #if系列预处理命令,可以在编译时对处理代码进行选择 D. 使用 #if系列预处理命令,只能在编译时进行二者择一的选择 19. 对于下面的程序,正确的结论是( )。 #define Msg “stdio.h“ #include Msg void main() printf(“Hello, world!n“); A. 程序有错, printf 函数没有定义 B. 程序没有错误,输出是: Hello, world! C. 程序没有语法错误,但没有输出数据 D. 程序没有错误,输出是: Hello, world!n 20. 对于字符常量 B,与其对应的转义字符书写形式是(
6、 )。 A. 101 B. x42 C. x41 D. A 二、判断题(本大题共 60 分,共 20 小题,每小题 3 分) 1. C程序中,使用字符数组表示字符串数据时,可以修改该字符串数据中的内容。 2. 在书写 C语言表达式时,如参与乘法运算的两个数据对象都是变量,则可以省略乘号不写。 3. 在 C表达式计算中,参与运算的两个数据对象不同数据类型时,只能由系统按照默认的方式进行数据类型转换。 4. C程序中,合理使用枚举类型不但可以限制数据的取值范围,而且还可以在一定程度上描述出数据对应的物理含义。 5. 如果要定义一个指向 double类型二维数组元素的指针变量,那么指针变量的数据类型
7、也 应该是 double。 6. 排序分为内排序和外排序,内排序指的是被处理的数据全部进入计算机系统内存中进行的排序。 7. C程序中,定义一个联合体类型,就是确定有哪些成员参与存储区域的共享。 8. C程序中,文件指针和文件内部读写位置指针都用于表示被处理的文件。 9. 数学学科中我们常常把方程也称为函数,所以 C程序中的函数就是方程。 10. C语言中,结构体变量输入时,可以在输入函数中使用系统提供的结构体类型控制符进行输入数据的控制。 11. 由于所有的数据在内存中都是用二进制存储的,所以在程序中所有类型 的数据都可以参加位运算。 12. C程序中初始化多维数组时,如果提供了数组的全部元
8、素值,则可任意地选择省略其中一维的长度指定。 13. C语言中,枚举类型和实数类型一样,都属于无序数据类型,都不能直接用作 switch结构的条件表达式。 14. 如果要求程序中处理的文件既可以是文本文件,有能够使二进制文件,那么应该用函数 feof 来判断文件尾。 15. C程序中初始化字符数组时,若在此后的程序代码中将字符数组作为字符串整体考虑,那么初始化数据最后的 0字符是必须的。 16. C语言中,无论是赋值表达式还是 赋值语句,其赋值运算符的左边不但可以是简单变量,也可以是表达式。 17. C语言中, break语句只能在循环体中使用。 18. 标准函数 strchr 的原型声明是:
9、 char *strchr(const char *s, int c);,所以程序中需要定义一个字符变量来接受 strchr函数的返回数据。 19. C语言中,虽然没有逻辑数据类型,但逻辑运算符的结果仍然需要使用“True” 和 “False” 来表示。 20. 为了在 C程序中模拟出真正意义上的随机数,需要在程序中使用初始化随机数发生器的标准 函数 srand。 答案: 一、单项选择题( 40 分,共 20 题,每小题 2 分) 1. A 2. B 3. C 4. D 5. A 6. C 7. C 8. A 9. C 10. A 11. A 12. D 13. C 14. D 15. A 16. D 17. B 18. C 19. B 20. B 二、判断题( 60 分,共 20 题,每小题 3 分) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.