永发信息网

c语言编程的问题求解

答案:2  悬赏:60  手机版
解决时间 2021-05-06 06:08
(31)有以下程序
  main( )
  { char a[]="abcdefg",b[10]="abcdefg";
   printf("%d %d\n",sizeof(A) ,sizeof(B) );
  }
  执行后输出结果是( )。
  A) 7 7    B) 8 8    C) 8 10   D) 10 10
  
  (32) 有以下程序
  void swap1(int c[])
  { int t;
   t=c[0];c[0]=c[1];c[1]=t;
  }
  void swap2(int c0,int c1)
  { int t;
   t=c0;c0=c1;c1=t;
  }
  main( )
  { int a[2]={3,5},b[2]={3,5};
   swap1(A) ; swap2(b[0],b[1]);
   printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]);
  }
  其输出结果是( )。
  A) 5 3 5 3   B) 5 3 3 5   C) 3 5 3 5   D) 3 5 5 3
  
最佳答案

31)


a[]没有指定大小,按初始化内容来定。字符串后面还要有结束字符\0,所以a[]的数组大小是7+1=8


b[10]指定大小为10。 所以答案是 8 10


32)


swap1(A)写错了,应该是swap1(a)


swap1函数的形参int c[],形参不能改变实参,但int c[]是一个指向整型数组的指针。通过指针的操作,会改变指针所指向的内容。


结果交换了传入的数组的两个元素。


swap2函数的形参c0 c1是两个整型变量,由于形参不能改变实参,所以不会改变原来的值。


因此答案为:5 3 3 5


全部回答

答案为C和B

第一题:

a为动态数组,size根据其初始化的内容决定,其中有7个可见字符和一个不可见结束字符'\0',因此=8

b为静态数组,size为定义时决定,不管其中有效元素个数,空间开辟在定义时已定,因此=10

第二题:

swap1函数为地址传递,函数内部的操作影响参数的值,功能为交换数据位置,因此a[0]=5,a[1]=3

swap2函数为值传递,函数内部操作不影响参数的值,功能也为交换数据位置,但仅限函数内部,因此b[0]=3,b[1]=5

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
农行自动取款机最少取多少钱
QQ三国旧装备和新装备是什么意思
YY要怎么玩
双子星是个什么样的性格
Mark Ronson feat. Tiggers - Toxic MP3
考取ISO内审员资格证可以具体从事什么工作?
大邑县养鸟协会安仁分会我想知道这个在什么地
QQ密保忘了,怎么办?三个问题就还能记住一个
今天江西萍乡天气
2010广东岭南职业学院 文科最低录取分数
朝花夕拾的优美短句子,朝花夕拾琐记优美的语
人活着学英语有何用?
求一个运动会十班的口号~越快越好在线等!
峨嵋汇在哪里啊,我有事要去这个地方
上海办个天翼3G无线上网多少钱啊,最便宜的多
推荐资讯
李晓红发艺这个地址在什么地方,我要处理点事
怎么来打发这无聊的时间???
外星球有其他生物吗》
华泰壹品地址在什么地方,想过去办事
张姓的男孩7月29日8点37分生母亲姓孔起什么名
everyday birthday成时京
天龙八部比较正规的SF网站
DNF广告一区首饰中血怒、野性、达芙妮加起来
股票长期持有好吗,哪些股可以长期持有?
台服魔兽世界的问题
江阴华莱士几点钟开门啊!!!
支付宝换手机号码怎么改
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?