浙大版《C语言程序设计(第3版)》题目集
yangbocsu
少年一贯快马扬帆,道阻且长不转弯;
要盛大,要绚烂,要哗然;
要用理想的泰坦尼克,去撞现实的冰川;
要当烧赤壁的风,而非借鉴草船;
要为了一片海,就肯翻万山。
展开
-
习题8-4 报数 (20 分)
报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。本题要求编写函数,给出每个人的退出顺序编号。函数接口定义:void CountOff( int n, int m, int out[] );其中n是初始人数;m是游戏规定的退出位次(保证为小于n的正整数)。函数CountOff将每个人的退出顺序编号存在数组out[]中。因为C语言数组下标是从0开始的,所以第i原创 2021-05-06 15:08:34 · 107 阅读 · 0 评论 -
习题8-5 使用函数实现字符串部分复制 (20 分)
本题要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。函数接口定义:void strmcpy( char *t, int m, char *s );函数strmcpy将输入字符串char *t中从第m个字符开始的全部字符复制到字符串char *s中。若m超过输入字符串的长度,则结果字符串应为空串。裁判测试程序样例:#include <stdio.h>#define MAXN 20void strmcpy( char *t, int m, ch原创 2021-05-05 22:33:18 · 338 阅读 · 0 评论 -
习题8-4 报数 (20 分)
报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。本题要求编写函数,给出每个人的退出顺序编号。函数接口定义:void CountOff( int n, int m, int out[] );其中n是初始人数;m是游戏规定的退出位次(保证为小于n的正整数)。函数CountOff将每个人的退出顺序编号存在数组out[]中。因为C语言数组下标是从0开始的,所以第i原创 2021-05-05 22:09:42 · 557 阅读 · 0 评论 -
习题8-3 数组循环右移 (20 分)
本题要求实现一个对数组进行循环右移的简单函数:一个数组a中存有n(>0)个整数,将每个整数循环向右移m(≥0)个位置,即将a中的数据由(a0a1⋯an−1)变换为(an−m⋯an−1a0a1⋯an−m−1)(最后m个数循环移至最前面的m个位置)。函数接口定义:int ArrayShift( int a[], int n, int m );其中a[]是用户传入的数组;n是数组的大小;m是右移的位数。函数ArrayShift须将循环右移后的数组原创 2021-05-05 20:34:30 · 405 阅读 · 0 评论 -
习题8-2 在数组中查找指定元素 (15 分)
本题要求实现一个在数组中查找指定元素的简单函数。函数接口定义:int search( int list[], int n, int x );其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。裁判测试程序样例:#include <stdio.h>#define MAXN 10int search( int list[], int n, int x原创 2021-05-05 20:09:58 · 654 阅读 · 0 评论 -
习题8-1 拆分实数的整数与小数部分 (15 分)
习题8-1 拆分实数的整数与小数部分 (15 分)本题要求实现一个拆分实数的整数与小数部分的简单函数。函数接口定义:void splitfloat( float x, int *intpart, float *fracpart );其中x是被拆分的实数(0≤x<10000),*intpart和*fracpart分别是将实数x拆分出来的整数部分与小数部分。裁判测试程序样例:#include <stdio.h>void splitfloat( float x,原创 2021-05-04 22:48:33 · 474 阅读 · 0 评论 -
练习8-8 移动字母 (10 分)
本题要求编写函数,将输入字符串的前3个字符移到最后。函数接口定义:void Shift( char s[] );其中char s[]是用户传入的字符串,题目保证其长度不小于3;函数Shift须将按照要求变换后的字符串仍然存在s[]里。裁判测试程序样例:#include <stdio.h>#include <string.h>#define MAXS 10void Shift( char s[] );void GetString( char s[]原创 2021-05-04 22:36:52 · 385 阅读 · 0 评论 -
练习8-2 计算两数的和与差 (10 分)
本题要求实现一个计算输入的两数的和与差的简单函数。函数接口定义:void sum_diff( float op1, float op2, float *psum, float *pdiff );其中op1和op2是输入的两个实数,*psum和*pdiff是计算得出的和与差。裁判测试程序样例:#include <stdio.h>void sum_diff( float op1, float op2, float *psum, float *pdiff );int m原创 2021-05-04 22:20:01 · 7643 阅读 · 0 评论 -
习题6-6 使用函数输出一个整数的逆序数 (20 分)
本题要求实现一个求整数的逆序数的简单函数。函数接口定义:int reverse( int number );其中函数reverse须返回用户传入的整型number的逆序数。裁判测试程序样例:#include <stdio.h>int reverse( int number );int main(){ int n; scanf("%d", &n); printf("%d\n", reverse(n)); return 0原创 2021-05-04 22:05:22 · 513 阅读 · 0 评论 -
习题6-5 使用函数验证哥德巴赫猜想 (20 分)
习题6-5 使用函数验证哥德巴赫猜想 (20 分)本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。函数接口定义:int prime( int p );void Goldbach( int n );其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数分解,其中p≤q均为素数。又因为这样的分解不唯一(原创 2021-05-04 17:48:48 · 541 阅读 · 0 评论 -
习题6-4 使用函数输出指定范围内的Fibonacci数 (20 分)
本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。函数接口定义:int fib( int n );void PrintFN( int m, int n );其中函数fib须返回第n项Fibonacci数;函数PrintFN要在一行中输出给定范围[m,n]内的所有Fibonacci数,相邻数字...原创 2021-05-04 17:24:22 · 476 阅读 · 0 评论 -
习题6-3 使用函数输出指定范围内的完数 (20 分)
习题6-3 使用函数输出指定范围内的完数 (20 分)本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有完数。所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。函数接口定义:int factorsum( int number );void PrintPN( int m, int n );其中函数factorsum须返回int number的因子和;函数PrintPN要逐行原创 2021-05-03 20:27:56 · 315 阅读 · 2 评论 -
习题6-2 使用函数求特殊a串数列和 (20 分)
习题6-2 使用函数求特殊a串数列和 (20 分)给定两个均不超过9的正整数a和n,要求编写函数求a+aa+aaa++⋯+aa⋯a(n个a)之和。函数接口定义:int fn( int a, int n );int SumA( int a, int n );其中函数fn须返回的是n个a组成的数字;SumA返回要求的和。裁判测试程序样例:#include <stdio.h>int fn( int a, int n );int SumA( int a, int n原创 2021-05-03 19:57:04 · 371 阅读 · 0 评论 -
习题6-1 分类统计字符个数 (15 分)
习题6-1 分类统计字符个数 (15 分)本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。函数接口定义:void StringCount( char s[] );其中char s[]是用户传入的字符串。函数StringCount须在一行内按照letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数的格式输出。裁判测试程序样例:#include <std..原创 2021-05-03 19:47:24 · 10982 阅读 · 0 评论 -
习题5-7 使用函数求余弦函数的近似值 (15 分)
习题5-7 使用函数求余弦函数的近似值 (15 分)本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e:cos(x)=x0/0!−x2/2!+x4/4!−x6/6!+⋯函数接口定义:double funcos( double e, double x );其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。裁判测试程序样例:...原创 2021-05-03 19:26:12 · 304 阅读 · 0 评论 -
习题5-6 使用函数输出水仙花数 (20 分)
习题5-6 使用函数输出水仙花数 (20 分)水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。函数接口定义:int narcissistic( int number );void PrintN( int m, int n );函数narcissistic判断number是否为水仙花数,是则返原创 2021-04-02 16:24:30 · 410 阅读 · 0 评论 -
习题5-5 使用函数统计指定数字的个数 (15 分)
本题要求实现一个统计整数中指定数字的个数的简单函数。函数接口定义:int CountDigit( int number, int digit );其中number是不超过长整型的整数,digit为[0, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。裁判测试程序样例:#include <stdio.h>int CountDigit( int number, int digit );int main(){ int...原创 2021-04-02 14:47:51 · 355 阅读 · 0 评论 -
习题5-4 使用函数求素数和 (20 分)
本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。函数接口定义:int prime( int p );int PrimeSum( int m, int n );其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数PrimeSum返回区间[m,n]内所有素数的和。题目保证用户传入的参数m≤n。裁判测试程序样例:#include <stdio.h>#includ.原创 2021-04-01 21:32:56 · 282 阅读 · 0 评论 -
习题5-3 使用函数计算两点间的距离 (10 分)
本题要求实现一个函数,对给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离。函数接口定义:double dist( double x1, double y1, double x2, double y2 );其中用户传入的参数为平面上两个点的坐标(x1,y1)和(x2,y2),函数dist应返回两点间的距离。裁判测试程序样例:#include <stdio.h>#include <math.h>doub...原创 2021-04-01 10:08:56 · 228 阅读 · 0 评论 -
习题5-2 使用函数求奇数和 (15 分)
本题要求实现一个函数,计算N个整数中所有奇数的和,同时实现一个判断奇偶性的函数。函数接口定义:int even( int n );int OddSum( int List[], int N );其中函数even将根据用户传入的参数n的奇偶性返回相应值:当n为偶数时返回1,否则返回0。函数OddSum负责计算并返回传入的N个整数List[]中所有奇数的和。裁判测试程序样例:#include <stdio.h>#define MAXN 10int even( int原创 2021-03-31 21:10:18 · 1177 阅读 · 0 评论 -
习题5-1 符号函数 (10 分)
本题要求实现符号函数sign(x)。函数接口定义:int sign( int x );其中x是用户传入的整型参数。符号函数的定义为:若x大于0,sign(x)=1;若x等于0,sign(x)=0;否则,sign(x)=−1。裁判测试程序样例:#include <stdio.h>int sign( int x );int main(){ int x; scanf("%d", &x); printf("sign(%...原创 2021-03-31 20:54:55 · 492 阅读 · 0 评论 -
练习5-3 数字金字塔 (15 分)
本题要求实现函数输出n行数字金字塔。函数接口定义:void pyramid( int n );其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注意每个数字后面跟一个空格。裁判测试程序样例:#include <stdio.h>void pyramid( int n );int main(){ int n; scanf("%d", &n); pyramid(n);原创 2021-03-31 20:45:34 · 307 阅读 · 0 评论 -
练习5-2 找两个数中最大者 (10 分)
本题要求对两个整数a和b,输出其中较大的数。函数接口定义:int max( int a, int b );其中a和b是用户传入的参数,函数返回的是两者中较大的数。裁判测试程序样例:#include <stdio.h>int max( int a, int b );int main(){ int a, b; scanf("%d %d", &a, &b); printf("max = %d\n", max(a,...原创 2021-03-31 19:28:36 · 677 阅读 · 0 评论 -
练习5-1 求m到n之和 (10 分)
本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。函数接口定义:int sum( int m, int n );其中m和n是用户传入的参数,保证有m<n。函数返回的是m~n之间所有整数的和。裁判测试程序样例:#include <stdio.h>int sum(int m, int n);int main(){ int m, n; scanf("%d %d", &m, &n); print原创 2021-03-31 19:24:11 · 430 阅读 · 0 评论