c语言第七次作业

T1(选择题)

选择A
A选项:为PA地址的值,此时Pa的地址指向a[0]
B选项: 为a加一的地址的数值,即为a[1]的值
C选项:为pa地址加一的地址,此时pa的地址和a[0]相同,所以为a[1]的值
D选项:为a[1]的值

T2(填空题)

输出6 2 3 4 5(有个空格)

#include <stdio.h>

void fun(int *p,int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		(*p)++;
	}



}

int main()
{
	int a[5]={1,2,3,4,5},i;
	fun(a,5);
	for(i=0;i<5;i++)
	printf("%d",a[i]);

	return 0;
}

fun函数调用,数组的首地址代入进去,*P取地址的值为1,for循环5次,(*p)++5次,a[0]就变为了6,也就是数组首地址的指向了6

T3

选择B
首先了解到p是指向一个地址,
A选项中
p是指向一个变量的值而不是地址
B选项中是指向一个地址,正确的
C选项中p指向value链表的值,也是个数值
D选项指向的是p[0],是数组的第一个值

T4

*p输出为5
*p=&a[2]+1;
*p指向了数组第三个值(4),然后加一,所以为5

T5

选择B
A选项:正确,函数调用为数组首地址与数组名字的地址是相同的
B选项:f(p,n)该函数调用的p不是一个值,不合法
C选项:形参是函数的地址,所以两个函数中的数组是同一个
D选项:正确

T6

#include <stdio.h>

int main()
{
	int a[]={10,9,8,7,6,5,4,3,2,1};
	int *p;
		p=a;
		printf("%p,%p,%p,%p,%d,%d\n",a,&a,p,p+9,*p+9,*(p+9));

	return 0;
}

在这里插入图片描述
第一个值输出为数组首地址
第二个也是数组首地址(数组名字与&a相同)
第三个为p=a后p的地址
第四个为p+9的地址
第五个为* p(为数组a首地址的值,即10)然后加上9,输出为19
第六个为* (p+9) 既数组a第十个数的地址存放的值
就是a[9],就是1

T7

void swap1 (double *p,double *q){
    double* temp = p;
    p = q;
    q = temp;
    
}

void swap2 (double *p,double *q){
    double temp = *p;
    *p = *q;
    *q = temp; 
}

T8

#include<stdio.h>
void bubble_sort(float *a,int n)
{
	int i,j;
	for(i = 0;i<n;i++)
	{
		for(j = i;j < n;j++)
		{
			if(*(a+i)>*(a+j))
			{
				float temp;
				temp = *(a+i);
				*(a+i) = *(a+j);
				*(a+j) = temp;
			}
		}
	}

}

int main()
{
	float a[5];
	int i;
	for(i = 0;i < 5;i++)
	{
		scanf("%f",&a[i]);
	}
	bubble_sort(a,5);
	for(i = 0;i < 5;i++)
	{
		printf("%.2f  ",*(a+i));
	}
	return 0;
}
 

在这里插入图片描述
1.主函数输入数组的值
2.调用函数,将数组的地址调用给函数
3,用地址的大小进行判断,如果后一个比前一个大则二者的地址直接交换,就不用交换值了
4,最后输入即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值