大一C语言作业 12.14

1.A

A:将pa指向的元素赋值给x,即x = a0
B:将a数组第二个元素的值赋给x,即x = a1
C:将pa指向的下一个元素的值赋给x,即x = a1
D:将a数组第二个元素的值赋给x,即x = a1

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 = p0; 这一行将指针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 的地址。由于数组名就是数组的地址,所以 &aa 相同。

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.

cs 复制代码
#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;
}
cs 复制代码
#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.

cs 复制代码
#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;
}
相关推荐
SilentSlot29 分钟前
【C/C++】手写 DPDK 协议栈(十二):TCP 并发与自实现 epoll 的就绪事件分发
c语言·c++·tcp/ip
雨落在了我的手上33 分钟前
Java数据结构(九):栈和队列
java·开发语言·数据结构
SilentSlot37 分钟前
【C/C++】手写 DPDK 协议栈(六):TCP 三次握手、状态机与数据回显
c语言·c++·tcp/ip
j7~40 分钟前
【C语言】《C语言自定义类型(结构体+联合体+枚举类型)》--详解
c语言·开发语言·深度学习·结构体·位段·联合体·枚举类型
Escalating_xu1 小时前
C++11 彻底吃透 emplace_back 与 push_back(最全闭环:左右值|深浅拷贝|移动构造|万能引用|完美转发)
开发语言·c++
天天进步20151 小时前
Python全栈项目--基于机器学习的金融风险评估系统
开发语言·python·机器学习
皓月斯语1 小时前
B3865 [GESP202309 二级] 小杨的 X 字矩阵 题解
开发语言·c++·矩阵·题解
Highcharts.js9 小时前
教程:基于 React + Highcharts 构建一个单页应用程序、按需数据拉取与图表渲染
开发语言·前端·数据结构·react.js·前端框架·highcharts·页面应用
头发还在的女程序员11 小时前
医院陪诊管理系统怎么选择?——2026 年选型避坑与架构参考
java·开发语言·陪诊系统·陪诊app·医院陪诊陪护
爱写代码的小朋友13 小时前
从零开始学 Win32 API:C++ 窗口编程实战(VS Code + MinGW-w64 命令行详解)
开发语言·c++