浙大版《C语言程序设计(第3版)》题目集

习题10-4 递归求简单交错幂级数的部分和 (15 分)

本题要求实现一个函数,计算下列简单交错幂级数的部分和:

f(x,n)=xx2+x3x4++(1)n1xn

函数接口定义:

double fn( double x, int n );

其中题目保证传入的n是正整数,并且输入输出都在双精度范围内。函数fn应返回上述级数的部分和。建议尝试用递归实现。

裁判测试程序样例:

#include <stdio.h>

double fn( double x, int n );

int main()
{
    double x;
    int n;

    scanf("%lf %d", &x, &n);
    printf("%.2f\n", fn(x,n));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

0.5 12

输出样例:

0.33
double fn( double x, int n )
{	
	if(n==1)
		return x;
	else
		return x-x*fn(x,n-1);
}

 

浙大版《C语言程序设计(第3版)》题目集

习题10-3 递归实现指数函数 (15 分)

本题要求实现一个计算xnn1)的函数。

函数接口定义:

double calc_pow( double x, int n );

函数calc_pow应返回xn次幂的值。建议用递归实现。题目保证结果在双精度范围内。

裁判测试程序样例:

#include <stdio.h>

double calc_pow( double x, int n );

int main()
{
    double x;
    int n;

    scanf("%lf %d", &x, &n);
    printf("%.0f\n", calc_pow(x, n));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

2 3

输出样例:

8
double calc_pow( double x, int n )
{
	double result;
	if(n==1)
		result=x;
	else
		result=x*calc_pow(x,n-1);
	return result;
}

 

浙大版《C语言程序设计(第3版)》题目集

习题10-2 递归求阶乘和 (15 分)

本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 1!+2!+3!+…+n! 的值。

函数接口定义:

double fact( int n );
double factsum( int n );

函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+…+n! 的值。题目保证输入输出在双精度范围内。

裁判测试程序样例:

#include <stdio.h>

double fact( int n );
double factsum( int n );

int main()
{
    int n;

    scanf("%d",&n);
    printf("fact(%d) = %.0f\n", n, fact(n));
    printf("sum = %.0f\n", factsum(n));
		
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例1:

10

输出样例1:

fact(10) = 3628800
sum = 4037913

输入样例2:

0

输出样例2:

fact(0) = 1
sum = 0
double fact( int n )
{
	double result;

	if(n==1||n==0)
		result=1;
	else
		result=n*fact(n-1);
	return result;
}
double factsum( int n )
{
	double sum=0;
			
	for(int i=1;i<=n;i++)
	{
		sum+=fact(i);
	}
	return sum;
}

 

浙大版《C语言程序设计(第3版)》题目集习题

习题10-1 判断满足条件的三位数 (15 分)

本题要求实现一个函数,统计给定区间内的三位数中有两位数字相同的完全平方数(如144、676)的个数。

函数接口定义:

int search( int n );

其中传入的参数int n是一个三位数的正整数(最高位数字非0)。函数search返回[101, n]区间内所有满足条件的数的个数。

裁判测试程序样例:

#include <stdio.h>
#include <math.h>

int search( int n );

int main()
{
    int number;

    scanf("%d",&number);
    printf("count=%d\n",search(number));
		
    return 0;
}


/* 你的代码将被嵌在这里 */

输入样例:

500

输出样例:

count=6
int search( int n )
{
	int count=0,i=10;
	int a[5],j=0,m;
	while(i<=sqrt(n))
	{
		m=pow(i,2);
		while(m)
		{
			a[j]=m%10;
			m=m/10;
			j++;
		}
		j=0;
		if(a[j]==a[j+1]||a[j]==a[j+2]||a[j+1]==a[j+2])
		count++;
		i++;
	}
	count=count-1;
	return count;
}

 

用指针实现内存动态分配

动态内存分配的步骤

  • 了解需要多少内存空间
  • 利用C语言提供的动态分配函数来分配所需要的存储空间
  • 使指针指向所获得的内存空间,以便用指针在该空间内实施运算或操作
  • 当使用完毕内存后,释放这一空间

动态内存分配函数

动态内存分配函数malloc()

void *malloc(unsigned size)

功能:

  • 在内存的动态存储区中分配一连续空间,其长度为size
  • 若申请成功,则返回指向所分配内存空间的起始地址的指针;若申请内存空间不成功,则返回NILL
if((p=(*int)malloc(n*sizeof(int)))==NULL)
{
   printf("unable to allocate memory.\n");
   exit(1);
}

计算动态存储分配函数calloc()

void*calloc(unsigned n,unsigned size)

功能:

  • 在内存的动态存储区中分配n个连续空间;每一存储空间的长度为size
  • 分配后把存储块里全部初始化为0
  • 若申请成功,则返回一个指向被分配内存空间的起始地址的指针;若申请内存空间不成功,则返回NULL
if((p=(*int)calloc(n,sizeof(int)))==NULL)
 {
 printf("unable to allocate memory.\n");
 exit(1); 
}

动态存储释放函数free()

void free(void*ptr)

分配调整函数realloc()

void*realloc(void*ptr,unsigned size)

功能:

  • 更改以前的存储分配
  • 如果分配成功,原存储块的内容就可能改变,因此不允许再通过ptr去使用它

指针数组的概念

如果数组的各个元素都是指针类型,用于存放内存地址,那么这个数组就是指针数组。

int a[10];
char *color[5];

分别定义了整型数组a和字符指针数组color。指针数组color的每个元素color[i]分别指向一个字符串,color中存放的是字符串的首地址。

char *tmp;
tmp=color[0];
color[0]=color[4];
color[4]=tmp;

color[0]和color[4]交换所指向的单元。

关于谷歌adsense申请的记录

最近终于申请成功了Adsense,特发此贴发表一下自己的感慨。

其实,这个服务器最初我并没有想来做网站,这只是我的一个魔法上网的小鸡(还是免费从gcp那里薅来的,详细可以看看这里:官方网站 ),顺便做离线下载服务器(这个以后可能有教程,敬请期待)。

不过实在是感觉太浪费了(吐槽一下:gcp的小鸡太贵了,流量还要收费),于是想着就随便做了一个网站。前前后后大概花了一周时间吧,终于做的能看了。下面来说说我是怎么申请到Adsense的吧。

其实我申请的过程并不算波折,看了不少其他网站的申请记录分享,甚至有申请23次之多的。而我一共也不过申请了2次,真的幸运。

第一次:

其实第一次申请时我自己都不觉得能通过,那时候整个网站的文章不过区区5篇,还都是水文,就急吼吼地提交了申请。

结果嘛,自然没有通过了,仅仅3天后就收到了拒绝的邮件:

不过这里吐槽一下,谷歌真的很严格的,以下是他们内容合作规范,就是禁止的一些内容:

成人内容
老少皆宜内容中的成人主题
危险或诋毁内容
与消遣性药物和毒品相关的内容
与酒精饮料相关的内容
与烟草相关的内容
与赌博和游戏相关的内容
与医疗保健相关的内容
与黑客和破解相关的内容
为用户操作提供报酬的网页
与虚假陈述相关的内容
惊悚内容
与武器相关的内容
助长欺诈行为的内容
非法内容

这就有很讨厌的一点了,谷歌不会告诉你网站到底哪里出问题了,只会让你去参阅内容政策或访问帮助中心。

第二次:

其实我在谷歌给我发邮件之后,几乎立刻就重新提交了申请(大概是受到了那位申请了23次的大佬的感召),不过其实我也没有报什么期望。

这次申请提交后就一直没有消息,天天去adsense上看,但都是灰色的

等了至少半个月了吧,一直都没有一点动静。突然前两天收到了邮件

以上就是我申请AdSense的全过程了,接下来只用照着谷歌给的教程投放广告就行了。

其实投放广告也不是为了赚钱,只是闲来无事做了一个,希望各位能够多点一点广告,能赚一点是最好的了。如果实在讨厌的话,就把广告屏蔽了吧(adblock plus应该没有人不知道吧)。

如果您支持本网站,请点一点广告。(如果发现有不良信息的广告,请通过telegram或邮箱提交给我)