c语言中可访问函数不正确,c语言的问题若有以下调用语句,则不正确的fun函数的首部是?...

39

若有以下调用语句,则不正确的fun函数的首部是????

main(){。。。

int a[50],n;。。。

fun(n, &a[9]);。。。

a

void fun(int m,int x[])

b

void fun(int s, int h[41])

c

void fun(int p, int *s)

d

void fun(int n, int a)

解答:答案d是错误的,因为调用函数中的实在参数为一个是整型变量n,一个是指针变量a[9]的地址,即为指针变量。

因为函数的实在参数与形式参数应该类型相同,个数相同。而答案d中的两个参数均为整型变量,所以d是错误答案。答案a中的m为整型变量,x是一个数组类型的变量,而数组名代表数组的首地址,所以与形式参数类型相同。答案b与答案a原因相同。而答案c中的变量p为整型变量,变量s为指针类型的变量。

40

语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是c为什么?其他3项哪里错了?

a\bre\'hi\'y\\\bou\n

a\bre\'hi'y\bou

re'hi'you

arbe'hi'y\bou(说明:'\b'是退格符)

解答:printf()函数由两部分组成,格式控制部分和输出表列,其中由双引号括起来的部分为格式控制部分,而格式控制部分有两种功能,一种是格式转换,该部分由%开始,另一部分属于原样输出的,而该print()函数中只包括原样输出的部分。

应该输出a\bre\'hi\'y\\\bou\n,但是在C语言中以'\'开始的字符为转义字符,所谓转义字符就是不是原来字符的含义,而转换成另一种含义了,比如说'\b'是退格符,就是光标由原来的位置向前移动一个位置。'\''输出的是单引号,'\\'输出的是一个反斜线,'\n'为换行。

因此该输出语句首先输出一个字符a,然后遇到'\b'向前移动一个位置,光标移动到字符a的下面,即下一次输出的从字符a的位置开始输出,然后输出re,字符r把字符a给覆盖掉了,接着输出单引号,然后输出字符hi,然后再输出单引号,然后输出字符y,然后输出一个反斜线,接着有遇到'\b'光标向前移动一个位置,即下一次输出的字符把反斜线给覆盖掉了,因此字符o把反斜线给覆盖掉了,接着输出字符u,然后换行。

因此输出数据为re'hi'you。

希望我的解释,你能明白,如果有什么不明白的地方,我会尽量给你答复的。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值