一、选择题
1. 有以下程序
:
程序的运行结果是( )。 A.6 B.5 C.4 D.3 答:B
【解析】条件运算符
语法形式为:
执行规则为:计算表达式expl 的
值,测试其是否为0; 如果expl 的值非0, 则对exp2求值,并把这个值作为条件表达式的
结果输出,不计算exp3; 如果expl 的值为0,则对exp3求值,并把这个值作为条件表达式的结果输出,不计算exP2。函数ml 实现返回传入两个参数中的最小值。函数m2实现返回传入两个参数中的最大值。函数fun 实现返回传入两个参数之和。程序执行过程为:调用ml (2, 3)返回2, 调用m2(3, 1)返回3, 调用fun (2,3)返回5,输出结果5,故B 项正确。
2. 设有定义:以下表达式值不等于12的是( )。
答:D
【解析】逗号表达式的计算过程是从左到右逐个求每个表达式的值,取最右边一个表达式的值作为该逗号表达式的值。赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或常量,且左右两边数据类型 相同才能实现赋值。成功实现赋值后以左值为返回值。逻辑表达式成立则返回1,不成立返回0。D 选项逻辑表 达式逗号表达式X ,y 取y 值为表达式值,然后赋值给取y 值为表达式值,然后赋值给式值12。故选择D 选项。
3. 以下叙述中正确的是( )。
A. 不能用字符串常量对字符数组名进行整体赋值操作
B. 字符串常量“Hello”会被隐含处理成一个无名字符型数组,它有5个元素
第 2 页,共 35 页
不成立,则表达式值为0。B 选项
取y 值为表达
表达式值为12。C 选项逗号表达式
表达式值为12。A 选项逗号表达式
C. D. 答:A
在语法上是合法的,运行也是安全的
效果是一样的
【解析】A 项正确,不可以用赋值语句给字符数组整体赋一串字符,但是可以直接用字符串B 项错误,常量给一维字符 数组赋初始值。编译器会在字符串常量最后添加最近的’\0’作为其结束标志,运行时不安全;D 项错误,不能给数组str 赋值。
4. 有如下定义:
若文件已正确打开,且数组x 的10个元素均已赋值,以下将数组元素写到文件中的语句错误的是( )。
答:A
【解析】A 项中,因为n=l, 即每次写入1个结构体数据,x 是数组的首地址,因此,每次写入的数据都是数组的首个结构体元素,没有将整个数组写入文件中去。
5. 有以下程序:
程序运行的结果是( )。 A.4 B.34 C.31 D.32 答:C
第 3 页,共 35 页
它共有6个元素;
C 项错误,在语法上是合法的,但是没有字符串尾标识符,系统将要在其后的内存中找一个距它
【解析】函数fun 的形参有三个,第一个是指针,它指向长度为4的int 数组;后两项都是int 型变量;返回值为int 类型。fun 函数调用发生在a 的第i 行,
与
指针s 初始时指向a 的第一行,
指向
作用相同,都表示a 中第i 行第k 列元素。函数fun 的作用是找出数组
s 中,第k 列、第疔中的最大值; 即找出二维数组a 的第0列中最大值,返回31。
6. 以下叙述中正确的是( )。
A.C 语言中的文件是流式文件,因此只能顺序存取数据
B. 打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C. 在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D. 当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失 答:D
【解析】D 项正确,C 语言中读写文件是通过文件缓冲区完成的,在完成了对文件的操作之后,应当关闭文件,否则文件缓冲区中的剩余数据可能丢失。A 项错误,C 程序中的输入、输出文件都以数据流的形式存储在介质上,用顺序存取和直接存取两种方式;B 项错误,可以以追加的方式写文件;C 项错误
7. 设有定义
:用错误的是( )。
A. .
B.
C.
D. 答:A
【解析】长度为n 的数组其各个元素的下标应该是从0到n-1, 因此,长度为10的数组a , 第10个元素为而不是
8. 有以下程序:
A 项正确。
为读和写而打开文本文件,在读和写操作之间不必关闭文件。
若
则对a 数组元素的引
程序运行后的输出结果是( )。 A.123 B.ABC
第 4 页,共 35 页