一、选择题
1. C 语言主要是借助以下( )功能来实现程序模块化的。
A. 定义函数
B. 定义常量和外部变量
C. 三种基本结构语句
D. 丰富的数据类型
答:A
【解析】C 程序的模块化主要通过函数来实现。C 语言允许对函数单独进行编译,从而可以实现模块化。
2. 有以下程序:
程序运行时键盘输入
A.10
B.11
C.9
D.8
答:A 【解析】
和则输出的结果是( )。 运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当
是先用后加,即a 以后缀形式出现时,则先取值,再进行加一或减一操作。判断条件中
因为打印是先用后减,所以先输出10, 然后a 的值变为9。
3. 有以下程序:
第 2 页,共 34 页 的值为9, 所以条件不成立,但是a 已经进行了自增1操作,a 的值此时为10。执行else 语句时,
程序运行后的输出结果是( )。
A.tuv
B. 字符t 的ASCII 码值
C.t
D. 出错
答:C 【解析】表示。
4. 关于C 语言的变量名,以下叙述正确的是( )。
A. 变量名不可以与关键字同名
B. 变量名不可以与预定义标识符同名
C. 变量名必须以字母开头
D. 变量名是没有长度限制的
答:A
【解析】合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线开头。关键字是指被C 语言保留的,不能用作其他用途的标识符,它们在程序中都代表着固定的含义,用户不可重新定义,A 项正确。预定义标识符是系统已经有过定义的标识符,用户可以重新定义,所以可以作为变量名,B 项错误。变量名除了以字母开头以外,还可以以下划线开头,C 项错误。变量名没有长度限制,但不可超过编译器可以辨识的范围,D 项错误。
5. 有以下程序:
程序运行后的输出结果是( )。
第 3 页,共 34 页 的优先级高于因此先对s 取内容,然后将s 中的内容加2。
是
答:C
【解析】f 函数的功能:用形参结构体指针b 指向的结构体对形参a 赋值,此时形参结构体a 的值为指针b 指向的值,输出a 即输出指针b 指向的结构体,返回到main 函数后,在输出实参a 的值。
6. 以下选项中叙述错误的是( )。
A.C 程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
B. 在C 程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内
C.C 程序函数中定义的自动变量,系统自动赋确定的初值
D.C 程序函数的形参不可以说明为static 型变量
答:A
【解析】在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久性的存储单元。即使退出函 数以后,下次再进入该函数时,静态局部变量仍使用原来的存储单元。由于并不
释放这些存储单元,因此这些存 储单元中的值得以保留,因而可以继续使用存储单元中原来的值。
7. 有以下程序段:
若文件已存在,则以下叙述正确的是( )。
A. 程序运行后,文件
C. 对文件
D. 对文件
答:A
【解析】fopen 函数以一定方式打开指定文件,返回一个指向文件的文件指针,如果不能实现打开指定文件的操作,则返回一个空指针NULL 。如果指定文件不存在,则创建一个文件名为指定文件名的新文件,然后打开它。在指定文件有错误或者指定文件不存在却不能创建新文件的情况下,打开文件操作错误,返回空指针。本题程序中,文件已存在,程序运行后,
文件
中的原有内容将全部消失,A 选项正确。文件原本就存在,不会导致程序出错,会按照指定的方式打开文件,B 选项错误。对文件进行写操作,只能对指针指向的位置内容进行写操作,不能随机读写,C 选项错误。对文件
件尾部,D 选项错误。
写入的内容写到指针所指向的位置,而不是添加在文中的原有内容将全部消失 B. 程序运行时,会因文件存在而出错 进行写操作后,可以随机进行读取 写入的内容总是被添加到文件尾部
第 4 页,共 34 页