练习3

二级C语言必过教程

共 1445字,需浏览 3分钟

 ·

2021-06-15 01:22

点击蓝字

关注我们

DRAGON BOAT FESTIVAL







练习3


考试规则:点击你认为正确的选项



1.以下叙述中正确的是( )。

A. 任何情况下都不能用 函数名作为实参

回答错误 ✕

解析:

在某些情况下,函数名可以作为实参传递,所以A选项错误。



B. 函数既可以直接调用自己,也可以间接调用自己

回答正确 √


C. 函数的递归调用不需要额外开销,所以效率很高

回答错误 ✕

函数递归调用使用栈区来递归,需要额外开销,并且效率不高,C选项错误。


D. 简单递归不需要明确的结束递归的条件

回答错误 

递归调用需要明确指出递归结束条件,否则就陷入死循环了。D选项错误。

点击空白答题丨淡出动画




2.有以下程序

#include

main( )

{

int x=3,y=5;

x=x^y; y=x^y; x=x^y;

printf( "%d,%d\n",x, y);

}

程序运行后的输出结果是( )。

A.3,5

回答错误 ✕



B.5,3

回答正确 √

试题解析

^运算符为按位异或运算符,即0^1=1,1^0=1,1^1=0,0^0=0;

经计算可得x=x^y,y=x^y,x=x^y,作用是交换x,y的值。因此答案为B选项。


C.35,35

回答错误 ✕


D.8,8

回答错误 


点击空白答题丨淡出动画




3.有以下程序

#include

main()

{

int sum, pad, pAd;

sum=pad=5;

pAd = ++sum, pAd++, ++pad;

printf(%d\n", pad );

}

程序的输出结果是( )。

A.5

回答错误 ✕



B.6

回答正确 √

试题解析

C语言区分大小写,pad与pAd是两个不同的变量。首先将

5赋值给两个变量,由于赋值运算符的优先级高于逗号运算

符,所以计算pAd=++sum,此时pAd为6,sum也为6,然后计算

pAd+ +,pAd的值变为7,++pad,pad的值变为6,所以选择B。





C.7

回答错误 ✕


D.8

回答错误 


点击空白答题丨淡出动画




4.有以下程序.

#include

#include

void fun( double *p1,double *p2,double *s)

{ s= (double *)calloc( 1,sizeof(double) );

*s=*p1 +*(p2+1 );

main(

{ double a[2] ={1.1, 2.2}, b[2]={10.0, 20.0}, *s=a;

fun(a,b,s);

printf( "%5.2f\n", *s);

}

程序的输出结果是( )。

A.11.10

回答错误 ✕

B.1.10


回答正确 √

试题解析

函数fun()的功能是用calloc(0函数重新分配了1个长度为

sizeof(double)的连续空间并把返回的内存地址赋值给s,

之后对往新分配的内存中写入数据。由于函数传递过程中

形参指针指向的变化不能影响到实参指针的指向,所以函

数fun0并不能改变s的指向, *s与a[0]等价,格式输出的结

果为1.10,答案选B。


C.12.10

回答错误 ✕


D.21.10

回答错误 


点击空白答题丨淡出动画




浏览 13
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报