求解几道C语言题

23有数组定义语句“chara[20];”,则正确的输入语句为(D)。A.scanf("%s",&a);B.scanf("%s",a[]);C.gets(a[20]);D... 23 有数组定义语句“char a[20];”,则正确的输入语句为( D )。
A.scanf("%s",&a);B.scanf("%s",a[]);
C.gets(a[20]);D.gets(a);
20.下列对字符数组s的初始化不正确的是( C )。
A.char s[5]="abc";B.char s[5]={'a','b','c','d','e'};
C.char s[5]="abcde";D.char s[]="abcde";
11. 对于以下递归函数f( ),调用f(4),其返回值为( A )。
int f(int n)
{ if(n) return f(n-1)+n;
else return n;
}
A. 10 B. 4 C. 0 D.以上均不是
展开
 我来答
kazhuanyong
2014-01-04
知道答主
回答量:8
采纳率:0%
帮助的人:7.8万
展开全部
对于23 理解%s 与gets %s是输出字符串,对应的变量应是差梁指数组名,所以应是a 不是&a 或者a[]
gets() 是读取字符串,它的变量也是数组名,所以选D
对于20 其他对的就无所谓了 C是因为超过界限了 在初始化的时候 虽然输入的是abcde 但是系统会在后面加上\0 所以实际上是6个位置, 但是只开辟了5个位置,所以数组越界了
对于11 终止的值虚配为0,即当n==0时 递归回来 过程为
if 4 return f(3)+4
调用f(3) 即
if 3 return f(2)+3
下面同理直到
if 0 则 if不通过 执行渣升return 0 对应 f(1)=1
则f(2)=f(1)+2
f(3)=f(2)+3
f(4)=f(3)+4
综上 f(4)=10
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式