(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
c语言编程的问题求解
答案:2 悬赏:60 手机版
解决时间 2021-05-06 06:08
- 提问者网友:了了无期
- 2021-05-05 10:13
最佳答案
- 五星知识达人网友:渡鹤影
- 2021-05-05 10:22
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
全部回答
- 1楼网友:过活
- 2021-05-05 10:55
答案为C和B
第一题:
a为动态数组,size根据其初始化的内容决定,其中有7个可见字符和一个不可见结束字符'\0',因此=8
b为静态数组,size为定义时决定,不管其中有效元素个数,空间开辟在定义时已定,因此=10
第二题:
swap1函数为地址传递,函数内部的操作影响参数的值,功能为交换数据位置,因此a[0]=5,a[1]=3
swap2函数为值传递,函数内部操作不影响参数的值,功能也为交换数据位置,但仅限函数内部,因此b[0]=3,b[1]=5
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯