求解几道C语言题23 有数组定义语句“char a[20];”,则正确的输入语句为( D ).A.scanf("%s",

学习 时间:2026-04-03 09:30:45 阅读:3523
求解几道C语言题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.以上均不是

最佳回答

威武的星月

追寻的奇迹

2026-04-03 09:30:45

对于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)+2f(3)=f(2)+3f(4)=f(3)+4综上 f(4)=10

最新回答共有2条回答

  • 生动的钢笔
    回复
    2026-04-03 09:30:45

    对于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)+2f(3)=f(2)+3f(4)=f(3)+4综上 f(4)=10

上一篇 新手求 车辆百公里油耗计算公式

下一篇 Don‘t waste your time on a man,who isn‘t willing to waste th