11月30日作业四

物联1243陈灿阳

1. 编程题

采用递归方法求下面多项式:其中n和x为任意正整数。在主函数中输⼊数据并调⽤函数得到结

代码

#include <stdio.h>

int func(int n,int x)
{
	if(n==0)
	{
		return 0;
	}
	else if(n==1)
	{
		return x;
	}
	else if(n>1)
	{
		x = (2*n-1)*func(n-1,x) - (n-1)*func(n-2,x)/n;
		return x;
	}
} 

int main()
{
	int n,x;
	scanf("%d %d",&n,&x);
	printf("%d",func(n,x));
	return 0;
}

运行截图

在这里插入图片描述

解释:

使用递归函数,使得函数不断调用自身得出最后结果

2. 填空题

下⾯程序执行后的输出结果是( ),并给出简单解释。
在这里插入图片描述
在这里插入图片描述

我的回答

(1)结果为:5335
(2)简单解释:main函数中swap1(1)将数组a[2]的两个值进行交换,swap2(b[0],b[1])只是将b[0],b[1]两个值赋给了c0,c1,并没有改变数组内的值

3. 选择题

以下叙述中错误的是( ),并给出简单解释。
在这里插入图片描述

我的回答

(1)结果为:C、E、F
(2)简单解释:C.编译器不会给出”下标越界“的信息。 E.通常为整型表达式,而不是任何类型的表达式。 F.不指定数组的大小,也不赋初值,编译器是无法自动分配内存大小的。

4. 选择题

以下对⼀维数组、⼆维数组,不正确的定义+初始化的选项有哪些?给出简单解释
在这里插入图片描述

我的回答

(1)结果为:B、E、H
(2)简单解释:B.定义y的长度为5,但赋初值时却赋了6个值。 E.应使用花括号,而不是双引号。 H.数组第一维为2,却有三个子列表

6. 编程题:

描述:计算A与B的交集. 读⼊集合A的⾮零整数 ,集合B的⾮零整数
。要求:计算A与B的交集 ,再以由⼩到⼤的升序输出 中的
元素,如果 为空,则输出{}。

代码

#include<stdio.h>

int panduan=0;

void swap(int *a,int *b){//交换
    int t=*a;*a=*b;*b=*a;
}

void dingyi(int a[],int len){//输入
    int i;
    for ( i = 0; i < len; i++){
        scanf("%d",&a[i]);
        }
}

void daying(int a[],int len){//输出
    int i;
    if(panduan==1)
	{
    	for ( i = 0; i < len; i++){
        printf("%d ",a[i]);
        }
    	printf("\n");
	}
	else{
		printf("{}");
	}
}

void chachong(int a[],int b[],int c[],int len_a,int len_b,int *len_c){//查重
    int i,j,k=0;
    for(i=0;i<len_a;i++){
    	for(j=0;j<len_b;j++){
        	if(a[i]==b[j]){
            	c[k]=a[i];k++;
            	panduan=1;
        	}
    	}
    }
    *len_c=k;
}

void paixu(int a[],int len){//排序
    int i,j;
    int k;
    for ( i = 0; i < len; i++){   
        k=i;
        for( j = i+1;j < len; j++){
            if(a[k] > a[j])k=j;
        }
        swap(&a[i],&a[k]);
    }
}

int main(){
    int len_a,len_b,len_c=0;
    int a[100],b[100],c[100];
    int i;
    scanf("%d%d",&len_a,&len_b);
    dingyi(a,len_a);dingyi(b,len_b);
    chachong(a,b,c,len_a,len_b,&len_c);
    paixu(c,len_c);
    daying(c,len_c);
    return 0;
}

运行截图

在这里插入图片描述
在这里插入图片描述

解释

通过多个函数来实现找到a,b两个数组的交集,并赋给第三个数组,最后将第三个数组排序后进行输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值