- 博客(33)
- 收藏
- 关注
原创 习题11-7 奇数值结点链表
本题难度较高,需要对结构体变量、指针、链表结构等相关知识具有较深的理解,适宜C语言进阶练习,或作为数据结构的练习题。
2022-11-01 16:54:00
649
1
原创 习题10-7 十进制转换二进制
本题要求实现一个函数,将非负整数n转换为二进制后输出。函数接口定义:void dectobin( int n ); 函数dectobin应在一行中打印出二进制的n。建议用递归实现。裁判测试程序样例:#include <stdio.h> void dectobin( int n ); int main() { int n; scanf("%d", &n); dectobin(n); return 0; } /* 你的代码将被嵌在这里 */ 输入样例:
2022-04-17 17:03:38
1276
原创 习题10-6 递归求Fabonacci数列
本题要求实现求Fabonacci数列项的函数。Fabonacci数列的定义如下:f(n)=f(n−2)+f(n−1) (n≥2),其中f(0)=0,f(1)=1。函数接口定义:int f( int n );函数f应返回第n个Fabonacci数。题目保证输入输出在长整型范围内。建议用递归实现。裁判测试程序样例:#include <stdio.h>int f( int n );int main(){ int n; scanf("%d
2022-02-19 20:58:30
390
原创 习题10-5 递归计算Ackermenn函数
本题要求实现Ackermenn函数的计算,其函数定义如下:函数接口定义:int Ack( int m, int n );其中m和n是用户传入的非负整数。函数Ack返回Ackermenn函数的相应值。题目保证输入输出都在长整型范围内。裁判测试程序样例:#include <stdio.h>int Ack( int m, int n );int main(){ int m, n; scanf("%d %d", &m, &am
2022-02-19 20:52:33
428
原创 习题9-6 按等级统计学生成绩
本题要求实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。函数接口定义:int set_grade( struct student *p, int n );其中p是指向学生信息的结构体数组的指针,该结构体的定义为:struct student{ int num; char name[20]; int score; char grade;};n是数组元素个数。学号num、姓名name和成绩score均是已经存储好的。set_grade..
2022-01-10 00:27:10
151
原创 习题8-9 分类统计各类字符个数
本题要求实现一个函数,统计给定字符串中的大写字母、小写字母、空格、数字以及其它字符各有多少。函数接口定义:void StringCount( char *s );其中 char *s 是用户传入的字符串。函数StringCount须在一行内按照大写字母个数 小写字母个数 空格个数 数字个数 其它字符个数的格式输出。裁判测试程序样例:#include <stdio.h>#define MAXS 15void StringCount( char *s );
2022-01-09 21:49:59
301
原创 习题8-8 判断回文字符串
本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。函数接口定义:bool palindrome( char *s );函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。裁判测试程序样例:#include <stdio.h>#include <string.h>#define MAXN 20typedef enu
2022-01-09 13:25:45
125
原创 习题8-6 删除字符
本题要求实现一个删除字符串中的指定字符的简单函数。函数接口定义:void delchar( char *str, char c );其中char *str是传入的字符串,c是待删除的字符。函数delchar的功能是将字符串str中出现的所有c字符删除。裁判测试程序样例:#include <stdio.h>#define MAXN 20void delchar( char *str, char c );void ReadString( char s[] ); /*
2022-01-08 00:47:57
281
原创 习题8-5 使用函数实现字符串部分复制
本题要求编写函数,将输入字符串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-12-31 18:51:00
337
原创 习题8-4 报数
报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。本题要求编写函数,给出每个人的退出顺序编号。函数接口定义:void CountOff( int n, int m, int out[] );其中n是初始人数;m是游戏规定的退出位次(保证为小于n的正整数)。函数CountOff将每个人的退出顺序编号存在数组out[]中。因为C语言数组下标是从0开始的,所以第i
2021-12-31 16:31:58
148
原创 习题8-3 数组循环右移
本题要求实现一个对数组进行循环右移的简单函数:一个数组a中存有n(>0)个整数,将每个整数循环向右移m(≥0)个位置,即将a中的数据由(a0a1⋯an−1)变换为(an−m⋯an−1a0a1⋯an−m−1)(最后m个数循环移至最前面的m个位置)。函数接口定义:void ArrayShift( int a[], int n, int m );其中a[]是用户传入的数组;n是数组的大小;m是右移的位数。函数ArrayShift须将循环右移后的数组仍然存在a[]中。裁...
2021-12-30 20:49:01
179
原创 习题8-2 在数组中查找指定元素
本题要求实现一个在数组中查找指定元素的简单函数。函数接口定义: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-12-30 18:53:42
547
原创 习题8-1 拆分实数的整数与小数部分
本题要求实现一个拆分实数的整数与小数部分的简单函数。函数接口定义:void splitfloat( float x, int *intpart, float *fracpart );其中x是被拆分的实数(0≤x<10000),*intpart和*fracpart分别是将实数x拆分出来的整数部分与小数部分。裁判测试程序样例:#include <stdio.h>void splitfloat( float x, int *intpart, float *fracpa
2021-12-30 18:44:24
402
原创 练习8-8 移动字母
本题要求编写函数,将输入字符串的前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-12-18 23:13:12
343
原创 练习8-2 计算两数的和与差
本题要求实现一个计算输入的两数的和与差的简单函数。函数接口定义: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-12-18 22:08:19
228
原创 习题6-6 使用函数输出一个整数的逆序数
本题要求实现一个求整数的逆序数的简单函数。函数接口定义: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-18 21:52:51
103
原创 习题6-5 使用函数验证哥德巴赫猜想
本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于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-17 20:36:04
100
原创 习题6-4 使用函数输出指定范围内的Fibonacci数
本题要求实现一个计算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-12 19:05:30
538
原创 习题6-3 使用函数输出指定范围内的完数
本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数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-12 18:15:34
93
原创 习题6-2 使用函数求特殊a串数列和
给定两个均不超过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-12 00:00:21
501
原创 习题6-1 分类统计字符个数
函数接口定义:void StringCount( char s[] );其中char s[]是用户传入的字符串。函数StringCount须在一行内按照letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数的格式输出。裁判测试程序样例:#include <stdio.h>#define MAXS 15void StringCount( char s[] );void ReadStr..
2021-12-11 23:29:42
732
原创 习题5-7 使用函数求余弦函数的近似值
本题要求实现一个函数,用下列公式求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-10 00:09:36
604
原创 逆序输出(10分)——C语言程序设计进阶(翁恺)
逆序输出(10分)题目内容:你的程序会读入一系列的正整数,预先不知道正整数的数量,一旦读到-1,就表示输入结束。然后,按照和输入相反的顺序输出所读到的数字,不包括最后标识结束的-1。输入格式:一系列正整数,输入-1表示结束,-1不是输入的数据的一部分。输出格式:按照与输入相反的顺序输出所有的整数,每个整数后面跟一个空格以与后面的整数区分,最后的整数后面也有空格。输入样例:1 2 3 4 -1输出样例:4 3 2 1时间限制:500ms内存限制:3.
2021-12-09 21:58:22
341
原创 带头节点的简单有序链表的创建和查询修改
头结点是在链表的开始结点之前附加的一个结点。可以使得无论链表是否为空,头节点总是非空 头指针:指向链表的第一个节点(或者说是链表中第一个结点的存储位置叫做头指针),如果链表有头结点,则是指向头结点的指针。 在访问链表时,只能顺序访问,我们要先找到链表的头指针,因为它是指向第一个节点的指针,只有找到第一个节点之后 才能通过它访问后续节点,之后的每一个结点,其实就是上一个的后继指针指向的位置。 头指针具有标识作用,所以常用链表名称命名头指针。 无论链表是否为空,头指针均不为空。头指针是链表的.
2021-12-08 21:01:04
707
原创 习题5.5使用函数统计指定数字的出现次数
返回习题5-5 使用函数统计指定数字的个数 (15 分)本题要求实现一个统计整数中指定数字的个数的简单函数。函数接口定义:int CountDigit( int number, int digit );其中number是不超过长整型的整数,digit为[0, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。裁判测试程序样例:#include <stdio.h>int CountDigit( int number, int d
2021-11-28 15:18:56
596
原创 习题5.4使用函数求素数和
习题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 .
2021-11-28 11:22:40
103
原创 练习5-3 数字金字塔
本题要求实现函数输出n行数字金字塔。补充代码段如下:void pyramid( int n ){int i = 0, j = 0, t = 0; for (i = 1; i <= n; i++) { for (t = n - i; t >= 1; t--) { printf(" "); } for (j = i; j > 0; j--) { printf("%d ", i); } if (i != n) printf("\n"); }
2021-11-27 20:57:02
318
原创 字符串对比——C语言程序设计进阶(翁恺)
题目内容:题目说起来很简单,你会读到两个字符串,每个字符串占据一行,每个字符串的长度均小于10000字符,而且第一个字符串的长度小于第二个字符串的。你的程序要找出第一个字符串在第二个字符串中出现的位置,输出这些位置,如果找不到,则输出-1。注意,第一个字符的位置是0。注意,第一个字符串在第二个字符串中的位置可能不止一处。注意,字符串中可能含有空格。注意,两个字符串的长度一定大于0。输入格式:两个字符串,一行一个。输出格式:第一个字符串在第二个字符串
2021-11-22 22:40:33
211
原创 GPS数据处理——程序设计入门-C语言(翁恺)
题目内容:NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机、GP
2021-11-14 00:39:21
684
2
转载 C语言中指针与函数的关系——详解
指针和函数的关系1、函数指针(指向函数的指针)一个函数在编译之后,会占据一部分内存,而它的函数名,就是这段函数的首地址。可以把一个指针声明成为一个指向函数的指针。C 语言规定函数名会被转换为指向这个函数的指针,除非这个函数名作为 & 操作符或 sizeof 操作符的操作数(注意:函数名用于 sizeof 的操作数是非法的)。也就是说 f = test; 中 test 被自动转换为 &test,而 f = &test; 中已经显示使用了 &test,所以 tes
2021-10-23 12:27:37
1248
原创 C语言中的数组指针与指针数组的具体区别
int *a[3]:为什么这里是指针数组,[]的优先级高于*,所以这是一个数组,而*修饰数组,所以是指针数组,数组的元素是整型的指针。示例:int main() { char *str[3]; str[0] = "abc"; str[1] = "efg"; str[2] = "hij"; for (int i = 0; i < 3; ++i) { printf("%s\n"...
2021-10-23 10:56:11
121
原创 C语言中的指针数组与数组指针及具体的使用
指针数组:指针的数组,实际是一个数组,长度由数组本身决定,这个数组的所有元素都是指针类型,存放的都是地址。int *prt[ 10 ] ; *prt[ 1 ],*prt[ 2 ],*prt[ 3 ]......数组中每个元素都指向一个地址。数组指针:数组的指针,实际是一个指针,长度固定(32 位系统下占 4 个字节),这个指针指向数组,但指向的数组占多少个字节不确定。int a[5]={ 1,2,3,4,5 }; //定义一个一维数组 aint (*prt)[5]; /.
2021-10-23 10:51:35
854
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人