浙大版《C语言程序设计(第4版)》题目集
Wwlllr
刚入门
展开
-
练习7-4 找出不是两个数组共有的元素 (20 分)
给定两个整型数组,本题要求找出不是两者共有的元素。输入格式:输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。输出格式:在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。输入样例:10 3 -5 2 8 0 3 5 -15 9 10011 6 4 8 2 6 -5 9 0 100 8 1结尾无空行输出样例:3 5 -15 6原创 2021-12-31 18:33:01 · 74 阅读 · 0 评论 -
练习7-3 将数组中的数逆序存放 (20 分)
本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。输入格式:输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。输入样例:410 8 1 2结尾无空行输出样例:2 1 8 10结尾无空行题目说要逆数存放,其实只需要反过来输出就行。#include<stdio.h>int.原创 2021-12-31 15:40:18 · 370 阅读 · 0 评论 -
练习7-2 求最大值及其下标 (20 分)
本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。输入格式:输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出最大值及最大值的最小下标,中间用一个空格分开。输入样例:62 8 10 1 9 10结尾无空行输出样例:10 2结尾无空行#include<stdio.h>int main(){ int A[10]; int n, a=0; int max原创 2021-12-31 15:27:26 · 100 阅读 · 0 评论 -
习题6-8 单词首字母大写 (15 分)
本题目要求编写程序,输入一行字符,将每个单词的首字母改为大写后输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。输入格式:输入给出一行字符。输出格式:在一行中输出已输入的字符,其中所有单词的首字母已改为大写。输入样例:How are you?结尾无空行输出样例:How Are You?结尾无空行#include<stdio.h>int main(){ int w = 1; char c; while((原创 2021-12-31 15:18:14 · 7096 阅读 · 1 评论 -
习题6-7 简单计算器 (20 分)
模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。输出格式:在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。输入样例:1+2*10-10/2=结尾无空行输出样例:10结尾无空行#include <stdio.h>int ma.原创 2021-12-31 15:06:39 · 118 阅读 · 0 评论 -
练习6-3 英文字母替换加密(大小写转换+后移1位) (15 分)
本题要求编写程序,将英文字母替换加密。为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。变换规则是:将明文中的所有英文字母替换为字母表中的后一个字母,同时将小写字母转换为大写字母,大写字母转换为小写字母。例如,字母a->B、b->C、…、z->A、A->b、B->c、…、Z->a。输入一行字符,将其中的英文字母按照以上规则转换后输出,其他字符按原样输出。输入格式:输入一行字符,以回车符 '\n'作为 结束符。输出格式:将输入的一行字符中的原创 2021-12-31 14:40:49 · 16274 阅读 · 1 评论 -
习题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-12-31 13:32:45 · 75 阅读 · 0 评论 -
习题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均为素数。又因为这样的分解不唯一(例如24可以分解为5+19,还可以分解为7+17),要原创 2021-12-25 09:36:14 · 122 阅读 · 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-12-24 22:55:47 · 215 阅读 · 0 评论 -
习题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要逐行输出给定范围[m,n]内每个完数的因子累加形式的分解式,.原创 2021-12-21 08:44:27 · 105 阅读 · 0 评论 -
习题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 );int main(){ int a,原创 2021-12-18 13:07:26 · 277 阅读 · 0 评论 -
习题6-1 分类统计字符个数 (15 分)
本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。函数接口定义:void StringCount( char s[] );其中char s[]是用户传入的字符串。函数StringCount须在一行内按照letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数的格式输出。裁判测试程序样例:#include <stdio.h>#define MAXS 1..原创 2021-12-17 09:07:36 · 202 阅读 · 0 评论 -
习题5-8 空心的数字金字塔 (15 分)
本题要求实现一个函数,输出n行空心的数字金字塔。函数接口定义:void hollowPyramid( int n );其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行空心的数字金字塔,请注意,最后一行的第一个数字前没有空格。裁判测试程序样例:#include <stdio.h>void hollowPyramid ( int n );int main(){ int n; scanf("%d", &a原创 2021-12-17 09:01:42 · 708 阅读 · 0 评论 -
习题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)的近似值。输入输出均在双精度范围内。裁判测试程序样例:#include <stdio.h>#include <ma原创 2021-12-17 08:44:13 · 294 阅读 · 0 评论 -
习题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是否为水仙花数,是则返回1,否则返回0。函数PrintN则打印开区间(m,n)内所有.原创 2021-12-13 21:45:18 · 185 阅读 · 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 nu原创 2021-12-13 21:12:13 · 124 阅读 · 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-12-13 21:00:04 · 715 阅读 · 0 评论 -
习题5-3 使用函数计算两点间的距离 (10 分)
习题5-3 使用函数计算两点间的距离 (10 分)本题要求实现一个函数,对给定平面任意两点坐标(x 1 ,y 1 )和(x 2 ,y 2 ),求这两点之间的距离。函数接口定义:double dist( double x1, double y1, double x2, double y2 );其中用户传入的参数为平面上两个点的坐标(x1, y1)和(x2, y2),函数dist应返回两点间的距离。原创 2021-12-12 11:17:46 · 188 阅读 · 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-12-12 09:58:48 · 283 阅读 · 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(%d) ...原创 2021-12-11 23:52:29 · 62 阅读 · 0 评论 -
练习5-3 字符金字塔 (15 分)
本题要求实现函数输出n行字符金字塔。函数接口定义:void CharPyramid( int n, char ch);其中n和ch是用户传入的参数,n为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行由字符ch构成的字符金字塔。注意每个字符后有一个空格。裁判测试程序样例:#include <stdio.h>void CharPyramid( int n, char ch );int main(){ int n; char ch原创 2021-12-11 23:51:20 · 2607 阅读 · 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, b)原创 2021-12-11 23:44:42 · 146 阅读 · 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-12-11 23:39:25 · 321 阅读 · 0 评论 -
习题4-11 兔子繁衍问题 (15 分)
一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?输入格式:输入在一行中给出一个不超过10000的正整数N。输出格式:在一行中输出兔子总数达到N最少需要的月数。输入样例:30结尾无空行输出样例:9结尾无空行注:成年后的大兔子每个月生一对小兔子繁殖数目增长过程:月数 1 2 3 4 5 6原创 2021-12-11 23:18:41 · 211 阅读 · 0 评论 -
习题4-10 猴子吃桃问题 (15 分)
一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?输入格式:输入在一行中给出正整数N(1<N≤10)。输出格式:在一行中输出第一天共摘了多少个桃子。输入样例:3结尾无空行输出样例:10结尾无空行#include<stdio.h>int main(){ i原创 2021-12-11 21:51:01 · 159 阅读 · 0 评论 -
习题4-9 打印菱形图案 (15 分)
本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。输入格式:输入在一行中给出一个正的奇数n。输出格式:输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。输入样例:7结尾无空行输出样例: * * * * * * * * * * * * * * * * * * * * * * * * * 结尾无空行#include<stdio.h>int main(){ i原创 2021-12-11 21:46:57 · 209 阅读 · 0 评论 -
习题4-8 高空坠球 (20 分)
皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?输入格式:输入在一行中给出两个非负整数,分别是皮球的初始高度和n,均在长整型范围内。输出格式:在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度,其间以一个空格分隔,保留一位小数。题目保证计算结果不超过双精度范围。输入样例:33 5结尾无空行输出样例:94.9 1.0结尾无空行#incl原创 2021-12-11 21:40:01 · 80 阅读 · 0 评论 -
习题4-7 最大公约数和最小公倍数 (15 分)
本题要求两个给定正整数的最大公约数和最小公倍数。输入格式:输入在一行中给出两个正整数M和N(≤1000)。输出格式:在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。输入样例:511 292结尾无空行输出样例:73 2044结尾无空行最大公约数:两个数能同时整除的最大的数。最小公倍数:由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。所以,求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用上述公式求出它们的最小公倍...原创 2021-12-11 21:23:59 · 716 阅读 · 1 评论 -
习题4-6 水仙花数 (20 分)
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N(3≤N≤7)。输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。输入样例:3结尾无空行输出样例:153370371407结尾无空行条件:每个位上的数字的N次幂之和等于它本身#include <stdio.h>#include <.原创 2021-12-11 21:15:41 · 1126 阅读 · 0 评论 -
习题4-5 换硬币 (20 分)
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。输入样例:13结尾无空行输出样例:fen5:2, fen2:1, fen1:1,原创 2021-12-10 08:51:10 · 656 阅读 · 0 评论 -
习题4-4 特殊a串数列求和 (20 分)
给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。输入格式:输入在一行中给出不超过9的正整数a和n。输出格式:在一行中按照“s = 对应的和”的格式输出。输入样例:2 3结尾无空行输出样例:s = 246结尾无空行a+aa+aaa++⋯+aa⋯a(n个a)之和,可得计算的规律为a+(a+a*10)+(a+a*10+a*100)+……#include<stdio.h>int main(){原创 2021-12-10 08:44:22 · 268 阅读 · 0 评论 -
习题4-3 求分数序列前N项和 (15 分)
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。输入样例:20结尾无空行输出样例:32.66结尾无空行审题,获取中要信息。#include<stdio.h>int main(){ int n .原创 2021-12-10 08:40:39 · 375 阅读 · 0 评论 -
习题4-2 求幂级数展开的部分和 (20 分)
q``已知函数ex可以展开为幂级数1+x+x^2/2!+x^3/3!+⋯+x^k/k!+⋯。现给定一个实数x,要求利用此幂级数部分和求e^x的近似值,求和一直继续到最后一项的绝对值小于0.00001。输入格式:输入在一行中给出一个实数x∈[0,5]。输出格式:在一行中输出满足条件的幂级数部分和,保留小数点后四位。输入样例:1.2结尾无空行输出样例:3.3201结尾无空行条件:求和一直继续到最后一项的绝对值小于0.00001 这道题采用do,wh...原创 2021-12-10 08:35:05 · 1278 阅读 · 0 评论 -
习题4-1 求奇数和 (15 分)
本题要求计算给定的一系列正整数中奇数的和。输入格式:输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。输出格式:在一行中输出正整数序列中奇数的和。输入样例:8 7 4 3 70 5 6 101 -1结尾无空行输出样例:116结尾无空行奇数:不能被2整除的数#include<stdio.h>int main(){ int m, i; int sum = 0; for(i.原创 2021-12-10 08:17:49 · 1121 阅读 · 0 评论 -
练习4-11 统计素数并求和 (20 分)
练习4-11 统计素数并求和 (20 分)本题要求统计给定整数M和N区间内素数的个数并对它们求和。输入格式:输入在一行中给出两个正整数M和N(1≤M≤N≤500)。输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。输入样例:10 31结尾无空行输出样例:7 143结尾无空行#include<stdio.h>#include<math.h>int main(void){ int m, n; s原创 2021-12-08 17:04:52 · 518 阅读 · 0 评论 -
练习4-10 找出最小值 (20 分)
本题要求编写程序,找出给定一系列整数中的最小值。输入格式:输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔。输出格式:在一行中按照“min = 最小值”的格式输出n个整数中的最小值。输入样例:4 -2 -123 100 0结尾无空行输出样例:min = -123结尾无空行#include<stdio.h>int main(){ int n, i, min, m; scanf("%d", &n);原创 2021-12-06 09:36:03 · 653 阅读 · 0 评论 -
练习4-7 求e的近似值 (15 分)
自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!+⋯来近似计算。本题要求对给定的非负整数n,求该级数的前n+1项和。输入格式:输入第一行中给出非负整数n(≤1000)。输出格式:在一行中输出部分和的值,保留小数点后八位。输入样例:10结尾无空行输出样例:2.71828180结尾无空行#include<stdio.h>int main(void){ int n, j, i; double sum, ite...原创 2021-12-06 09:32:50 · 442 阅读 · 0 评论 -
练习4-6 猜数字游戏 (15 分)
猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结原创 2021-12-06 09:26:23 · 369 阅读 · 0 评论 -
练习4-3 求给定精度的简单交错序列部分和 (15 分)
本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。输入格式:输入在一行中给出一个正实数eps。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。输入样例1:4E-2结尾无空行输出样例1:sum = 0.854457结尾无空行输入样例2:0.02输出样例2:sum = 0.826310循环的次数我原创 2021-12-06 09:14:07 · 158 阅读 · 0 评论 -
习题3-5 三角形判断 (15 分)
给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。输入格式:输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x1、y1、x2、y2、x3、y3。输出格式:若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。输入样例1:4 5 6 9 7 8结尾无空行输出样例1:原创 2021-12-06 09:05:55 · 229 阅读 · 0 评论