一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。 A.3,5,5,3 B.3,5,3,5 C.5,3,3,5 D.5,3,5,3 答:B
【解析】在C 语言中,函数参数的传递是“传值”的,即形参和实参是两个没有关系的变量,本题函数的形参虽然为指针变量,但是函数内部交换的是地址值,并没有交换主函数中变量x 与y 的值。函数内对地址值的交换不会传递给实参,因此,交换函数并没有交换p 、q 所指向的值。
2. 设有如下函数定义:
若执行调用语句:A.2 B.3 C.4 D.5 答:B 会返
回
即
则函数fun ( )总共被调用的次数是( )。
【解析】函数fun 为递归函数,递归结束条件是k 为小于等于1的数。执行fun (3)语句时
执
行
时会返
回
即
执行
时会返回1,所以函数fun 总共被调用3次。
3. 设有定义
答:D
【解析】AC 两项,赋值运算优先级最低,所以先做
或
B 项,做x++运算后得到3, 然后做;D 项,运算得6,
此时为3, 然后做
即
以下表达式中,值不为6的是( )。
虽然结果为4, 但此时x 的
值仍为2, 所以 最终为4。
4. 设有定义:inta=0,b=l, c=l;以下选项中,表达式值与其他三个不同的是( )。
A.b=a==c B.a=b=c C.a=c==b D.c=a!=c 答:A
【解析】赋值运算结合性为由右向左结合,成功实现赋值后以左值为返回值。逻辑表达式成立则返回1, 不成立返回0。A 项,逻辑表达式a==c不成立,则b=0, 表达式值为0;B 项,将c 赋值给b , b=l, 再将b 赋给a , a=l,表达式值为1; C 项,逻辑表达式c==b成立,则a=l,表达式值为1; D 项,逻辑表达式a!=c成立,则c=l,表达式值为1。A 项与其他项不同。
5. 有以下程序:
程序运行时从第一列开始输入:
则输出结果是( )。
A.Peachflowefispink. B.Peachflowefis pink. C.Peachflower is pink. D.Peach flower is pink. 答:A
for 循环语句中,while 的判断条件输入的字符不为空格和回车,【解析】通过执行while 语句,
把输入的字 符串以‘’为分隔符,分别保存在二维数组b 的4行中,再通过%格式控制符,将二维数组b 的四行字符串无 空格连接输出。
6. 以下程序段中,与语句:
答:A
【解析】三元运算符表达式的形式为:表达式果果
7. 有以下程序:
程序运行后的输出结果是( )。 A.aegi B.dfhk C.abed
D.abcdefghijk 答:A
【解析】char *a[]是定义一个指针数组,即指向指针的数组,所以,由题中初始化结果得
:
但是在输出语句时题中要求输出的字符
子输出第一个字符即
8. 若a 是数值类型,则逻辑表达式
A.1 B.0 C.2
D. 不知道a 的值,不能确定
答:A
【解析】C 语言没有专门提供逻辑类型,0作为逻辑数据代表假,非0的数作为逻辑数据代
功能相同的是( )。
表达式表达式3, 当表达式1的值为真时,
的关系:①如否则
②如
结果为表达式2的值;当表达式1的值为假时,结果为表达式3的值。首先判断
那么就执行
前面的语句
且
时,
判断b 、c 的关系,如果否则
综上所述:当
与A 项语句功能相同。
所以每个
的值是( )。