浙大版C语言题目集-函数题6

这篇具有很好参考价值的文章主要介绍了浙大版C语言题目集-函数题6。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

6-3

给定两个均不超过9的正整数a和n,要求编写函数求a+aa+aaa++⋯+aa⋯a(n个a)之和。

其中函数fn须返回的是na组成的数字;SumA返回要求的和。

#include <stdio.h>

int fn( int a, int n );
int SumA( int a, int n );
    
int main()
{
    int a, n;
    scanf("%d %d", &a, &n);
    printf("fn(%d, %d) = %d\n", a, n, fn(a,n));        
    printf("s = %d\n", SumA(a,n));    
    return 0;
}

int fn( int a, int n ){
	int i,s=0;
	for(i=0;i<n;i++){
		s=s*10+a;
	}
	return s;	
}
int SumA( int a, int n ){
	int i,s=0,j=0;
	for(i=0;i<n;i++){
		s=s*10+a;
		j+=s;
	}
	return j;
}

6-6

本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。

其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数分解,其中p≤q均为素数。又因为这样的分解不唯一(例如24可以分解为5+19,还可以分解为7+17),要求必须输出所有解中p最小的解。

题目要求:先判断m是否为素数,再计算[m,n]中所有偶数=p+q两个奇素数之和,输出p最小的解

//先判断m是否为素数,再计算[m,n]中所有偶数=p+q两个奇素数之和,输出p最小的解 
#include <stdio.h>

int prime( int p );
void Goldbach( int n );
    
int main()
{
    int m, n, i, cnt;
    scanf("%d %d", &m, &n);
    if ( prime(m) != 0 ) printf("%d is a prime number\n", m);
    if ( m < 6 ) m = 6;
    if ( m%2 ) m++;
    cnt = 0;
    for( i=m; i<=n; i+=2 ) {
        Goldbach(i);
        cnt++;
        if ( cnt%5 ) printf(", ");
        else printf("\n");
    }
    return 0;
}

int prime( int p ){
	int flag=1,i;
	if(p<2){
		flag=0;
	}else if(p==2){
		flag=1;
	} 
	for(i=2;i<p;i++){
		if(p%i==0) {
			flag=0;
			break;
		}
	}
	return flag;
}
void Goldbach( int n ){
	int p,q,i,flag=1;
	for(p=3;p<n;p++){
		if(prime(p)) {
			q=n-p;
			if(prime(q)) {
				printf("%d=%d+%d",n,p,q);break; 
			}
		}
	} 
}

6-7

本题要求实现一个求整数的逆序数的简单函数。

#include <stdio.h>

int reverse( int number );
    
int main()
{
    int n;
    scanf("%d", &n);
    printf("%d\n", reverse(n));
    return 0;
}

int reverse( int number ){
	int a=0;
	while(number!=0){
		a=a*10+number%10;
		number/=10;
	}
	return a;
}

6-8

本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有完数。所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。

其中函数factorsum须返回int number的因子和;函数PrintPN要逐行输出给定范围[mn]内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。如果给定区间内没有完数,则输出一行“No perfect number”。

#include <stdio.h>

int factorsum( int number );
void PrintPN( int m, int n );
    
int main()
{
    int m, n;
    scanf("%d %d", &m, &n);
    if ( factorsum(m) == m ) printf("%d is a perfect number\n", m);
    if ( factorsum(n) == n ) printf("%d is a perfect number\n", n);
    PrintPN(m, n);
    return 0;
}

int factorsum( int number ){
	int i,s=0;
	for(i=1;i<number;i++){
		if(number%i==0){
			s+=i;
		}
	}
	return s;
}
void PrintPN( int m, int n ){
	int a[10000],i,j,s,k=0;
	for(;m<=n;m++){
		s=0,j=0;
		for(i=1;i<m;i++){
			if(m%i==0){
				s+=i;
				a[j]=i;
				j++;
			}
		}
		if(m==s){
			printf("%d = ",m);
			printf("%d",a[0]);
			for(i=1;i<j;i++){
				printf(" + %d",a[i]);
			}
			printf("\n");
			k++;
		}
	}
	if(k==0) printf("No perfect number");
}

6-9

本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。

其中函数fib须返回第n项Fibonacci数;函数PrintFN要在一行中输出给定范围[mn]内的所有Fibonacci数,相邻数字间有一个空格,行末不得有多余空格。如果给定区间内没有Fibonacci数,则输出一行“No Fibonacci number”。

#include <stdio.h>

int fib( int n );
void PrintFN( int m, int n );
    
int main()
{
    int m, n, t;
    scanf("%d %d %d", &m, &n, &t);
    printf("fib(%d) = %d\n", t, fib(t));
    PrintFN(m, n);
    return 0;
}

int fib( int n ){
	int s[n],i=2;
	s[0]=1;
	s[1]=1;
	if(n>=3){
		do{	
			s[i]=s[i-1]+s[i-2];
			i++;
		}while (i!=n);
	}
	return s[n-1];
}

void PrintFN( int m, int n ){
	int s[10000],i=2,j=0,k=0;
	s[0]=1;
	s[1]=1;
	do{	
		s[i]=s[i-1]+s[i-2];
		i++;
		j++;
	}while (s[i-1]<10000);
	for(i=0;i<j;i++){
		if(s[i]>=m && s[i]<=n) {
			printf("%d ",s[i]);
			k++;
		}
	}
	if(k==0) printf("No Fibonacci number");
}

6-11

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。

函数narcissistic判断number是否为水仙花数,是则返回1,否则返回0。

函数PrintN则打印开区间(mn)内所有的水仙花数,每个数字占一行。题目保证100≤mn≤10000。文章来源地址https://www.toymoban.com/news/detail-832849.html

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

int narcissistic( int number );
void PrintN( int m, int n );
    
int main()
{
    int m, n;
    scanf("%d %d", &m, &n);
    if ( narcissistic(m) ) printf("%d is a narcissistic number\n", m);
    PrintN(m, n);
    if ( narcissistic(n) ) printf("%d is a narcissistic number\n", n);
    return 0;
}

int narcissistic( int number ){
	int n=number,a[10],i=0,s=0,j,flag=0;
	while(number%10!=0 || number/10!=0){
		a[i]=number%10;
		i++;
		number/=10;
	}
	for(j=0;j<i;j++){
		s+=pow(a[j],i);
	}
	if(n==s) flag=1;
	return flag;
}

void PrintN( int m, int n ){
	for(m+=1;m<n;m++){
		if(narcissistic(m)) printf("%d\n",m);
	}
}

到了这里,关于浙大版C语言题目集-函数题6的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 浙大版PTA《Python 程序设计》题目集 参考答案

    本答案配套详解教程专栏,欢迎订阅: PTA浙大版《Python 程序设计》题目集 详解教程_少侠PSY的博客-CSDN博客

    2024年02月08日
    浏览(66)
  • 【全解析 | PTA】浙大版《Python 程序设计》题目集-第二章

    一、判断题 1. 输入正整数6和5,要求和,6+66+666+6666+66666,下面程序正确吗? F     a=int(input())        n=int(input())        print(sum([int(\\\'a\\\'*i) for i in range(1,n+1)]))         在代码中,使用了字符串 ‘a’ 而不是变量 a 的值是因为字符串 ‘a’ 在引号内被视为文本常量,而不是变

    2024年03月12日
    浏览(234)
  • 【全解析 | PTA】浙大版《Python 程序设计》题目集-第三章

    一、判断题 1.\\\'age\\\'+23不是正确的表达式。T 2 . 列表可以用find()函数来搜索数据是否在列表中。F         find()函数是字符串处理函数;Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子

    2024年04月15日
    浏览(60)
  • C语言题目:阶乘数列求和(函数)

    输入一个正数x和一个正整数n,求下列算式的值。要求定义两个调用函数:fact(n)计算n的阶乘;mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是double。       x - x2/2! + x3/3! + ... + (-1)n-1xn/n! ×输出保留4位小数。 x n 数列和 定义 fact 函数 : fact(int n) 函数用于计算一个整数

    2024年04月13日
    浏览(51)
  • 经典C语言题目程序题(函数篇)

    经典的C语言函数篇题目,看完你期末考试就没有问题了!快来一起看看吧!!! 目录 1.编写一个函数,可以算出 任意两个整数的和,并返回相应的结果 2. 编写一个函数可以求出任意三个整数之中的最大值,并返回其最大值 3.编写一个函数,可以实现给出算数运算的功能,

    2024年02月01日
    浏览(53)
  • C语言题目 - 调用qsort函数对数组进行排序

    如题 其实没什么难的,只要严格按照 qsort 函数的参数来填充即可,这里要用到 函数指针 。 qsort 函数的原型如下: void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *)); 参数说明: base :指向需要排序的数组的指针,数组中每个元素的大小应为 size 字节。

    2024年02月11日
    浏览(42)
  • [C语言][PTA基础C基础题目集] strtok 函数的理解与应用

    目录 一.strtok函数的解释与说明 ①strtok函数的功能 ②strtok函数的原型 ③strtok函数的返回值 ④细节说明 二.strtok函数的具体使用 ①PTA基础编程题目集---7-26 单词长度 ②解决问题 三.总结 Find the next token in a string.  即查找字符串中的下一个标记. 就是 将一个字符串分割成一系列

    2024年03月15日
    浏览(43)
  • 浙大c语言pat试题汇总

      1-10 7-1 重要的话说三遍 (5 分)    7-1 重要的话说三遍 (5 分)_nklike的博客-CSDN博客 7-2 I Love GPLT (5 分)        7-2 I Love GPLT (5 分)_nklike的博客-CSDN博客 7-3 输出带框文字 (5 分)      7-3 输出带框文字 (5 分)_nklike的博客-CSDN博客 7-4 输出菱形图案 (5 分)      7-4 输出菱形图案 (5 分

    2023年04月09日
    浏览(33)
  • 浙大版《C语言程序设计》第四版(何钦铭颜晖) 第7章 数组 课后习题答案

    你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解,还可以在线答题。 一、选择题 1.假定 int 类型变量占用两个字节,则以下定义的数组 a 在内存中所占字节数是( )。 A. 20 B.10 C.6 D.3 答:A 解析:题目中,根据 int a[10] ,表示定义了数组的长度

    2023年04月18日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包