大一C语言作业12.14
- 互联网
- 2025-07-21 19:14:07

1.A
A:将pa指向的元素赋值给x,即x = a[0] B:将a数组第二个元素的值赋给x,即x = a[1] C:将pa指向的下一个元素的值赋给x,即x = a[1] D:将a数组第二个元素的值赋给x,即x = a[1]
2. 6 2 3 4 5
函数fun接受一个整型指针p和一个整数n作为参数。在函数内部,使用for循环对指针p所指向的值进行n次自增操作。在main函数中,创建了一个包含5个元素的整型数组a,并将其初始化为{1, 2, 3, 4, 5}。然后调用fun函数,将数组a和5作为参数传递给fun函数。最后,使用for循环打印数组a中的每个元素。
在fun函数中,对指针p所指向的值进行了5次自增操作,因为p指向了数组a的第一个元素,所以数组a中的第一个元素变为了6。但是,指针p没有被移动,所以对于后续的自增操作,仍然是对第一个元素进行自增。因此,数组a中的第一个元素变为了6,而其他元素没有发生变化
3. D
A和B都是错误的,因为它们试图将一个指针的值赋给指针自己 D*p = p[0]; 这一行将指针p指向的数组的第一个元素赋给指针p所指向的变量。
4. 5
`*p` 是指针 p 指向的元素的值。 具体来说,指针 `p` 初始化为指向数组 `a` 的第三个元素(下标为2)之后的一个位置。因此,`*p` 将会是数组 `a` 中第四个元素的值,即 5。
5.D
在C语言中,数组名作为函数参数时,实际上是传递了该数组的地址。因此,在f()函数内部,可以通过指针来访问和修改main()函数中的数组元素。但是,这并不是双向的值传递,因为实参(即main()函数中的数组)并没有被复制到形参(即f()函数中的数组),而是传递了数组的地址。因此,任何对形参的操作都不会影响实参本身。
6. 0x7fffb6514a90, 0x7fffb6514a90, 0x7fffb6514a90, 0x7fffb6514aa4, 19, 1
a 是数组名,它代表整个数组的首地址。
&a 表示获取数组 a 的地址。由于数组名就是数组的地址,所以 &a 和 a 相同。
p 是一个指针变量,初始化为指向数组 a 的首地址。
p+9 表示将指针 p 向后移动9个元素(即增加9倍于元素类型大小的偏移量)。由于数组 a 中每个元素都是整型(int),所以在32位系统中,p+9 指向的是数组 a 中第10个元素的位置。
*p+9 表示先获取指针 p 指向的元素的值(即数组 a 中第一个元素的值),然后将其与整数9相加。因此,*p+9 等于19。
*(p+9) 表示获取指针 p+9 指向的元素的值(即数组 a 中第10个元素的值)。因此,*(p+9) 等于1。
7.
#include<stdio.h> double Swap(double *a,double *b); int main(){ double x = 80.0,y =90.0; Swap(&x,&y); printf("x=%f,y=%f",x,y); return 0; } double Swap(double *a,double *b){ double temp; temp = *a; *a = *b; *b = temp; } #include<stdio.h> double Swap(double x,double y); int main(){ double a = 100.0,b = 200.0; Swap(a,b); printf("a=%f,b=%f",a,b); return 0; } double Swap(double x,double y){ double temp; temp = x; x = y; y = temp; }8.
#include <stdio.h> #include <stdlib.h> void bubble_sort(float *arr, int n) { float temp; int i, j; for (i = 0; i < n - 1; i++) { for (j = 0; j < n - i - 1; j++) { if (*(arr + j) > *(arr + j + 1)) { temp = *(arr + j); *(arr + j) = *(arr + j + 1); *(arr + j + 1) = temp; } } } } int main() { int i; float arr[5], temp; printf("Enter 5 real numbers: "); for (i = 0; i < 5; i++) { scanf("%f", &arr[i]); } bubble_sort(arr, 5); printf("Sorted numbers in descending order:\n"); for (i = 0; i < 5; i++) { printf("%.2f ", arr[i]); } return 0; }大一C语言作业12.14由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“大一C语言作业12.14”