- 博客(25)
- 收藏
- 关注
原创 两个单链表元素交叉合并
设带头结点的线性单链表A={a1,a2,…,am},B={b1,b2,…,bn} 。试编写算法按下列规则合并A、B为线性单链表C,使得 C={a1,b1,a2,b2,...am,bm,...,bn} , m<=n 或者 C={b1,a1,b2,a2,...,bn,an,...,am} , m>n函数接口定义:LinkList CombineList(LinkList La,LinkList Lb);其中 La 和 Lb 都是用户传入的参数,分别为
2021-09-17 09:09:28
1938
原创 最大与次大值
题目内容:编写程序,找出给定的n个数中的最大值及次大值。输入格式:在第一行中输入一个正整数n(1<n≤10)。第二行输入n个整数,用英文逗号,隔开。输出格式:在一行中输出最大值及次大值,中间用英文逗号,隔开。输入样例:7 12,1,2,5,4,7,3输出样例:12,7...
2021-09-17 08:41:16
2775
原创 删除字符
本题要求实现一个删除字符串中的指定字符的简单函数。函数接口定义: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[] ); /*
2021-06-06 23:28:45
160
原创 使用函数实现字符串部分复制
本题要求编写函数,将输入字符串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-06-03 23:24:40
1751
1
原创 使用函数验证哥德巴赫猜想
本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于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-05-31 20:22:25
201
原创 在数组中查找指定元素
本题要求实现一个在数组中查找指定元素的简单函数。函数接口定义: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-31 20:17:34
446
原创 移动字母
本题要求编写函数,将输入字符串的前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-31 09:35:29
122
原创 使用函数输出一个整数的逆序数
本题要求实现一个求整数的逆序数的简单函数。函数接口定义: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-31 08:42:00
843
原创 使用函数输出指定范围内的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-05-30 20:26:24
171
原创 使用函数输出指定范围内的完数
本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数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-05-30 17:05:44
341
原创 分类统计字符个数
本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。函数接口定义:void StringCount( char s[] );其中char s[]是用户传入的字符串。函数StringCount须在一行内按照letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数的格式输出。裁判测试程序样例:#include <stdio.h>#define MAXS 1..
2021-05-28 22:50:23
141
原创 使用函数求余弦函数的近似值
本题要求实现一个函数,用下列公式求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>#in
2021-05-27 22:46:51
120
原创 学生成绩管理系统
编写程序来完成对学生成绩的管理,要求实现的功能包括:(1)学生信息录入:从键盘按学号顺序输入 N名学生信息(学号、姓名和三门成绩)(2)计算平均值。(3)学生信息排序:按照平均值大小从高到低进行学生信息排序。(4)学生信息查询:按照输入的学号查找并输出对应学生的信息。# include <stdio.h>struct student{ char number[20];//学号 char name[20];//姓名 int score[3];//三科成绩 float
2021-05-27 21:43:40
526
原创 使用函数输出水仙花数
水仙花数是指一个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则打印开区间
2021-05-24 23:02:54
631
原创 使用函数统计指定数字的个数
本题要求实现一个统计整数中指定数字的个数的简单函数。函数接口定义: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-05-24 21:28:17
229
原创 插入有序数组
一个长度为10的数组中输入n(0≤n≤9)个整数,这n个整数从小到大有序。再输入一个x,把它插入数组适当位置,使数组仍保持有序。输入格式:输入n,再以从小到大顺序输入n个整数,再输入x。输出格式:在一行输出 插入 x 后的数组的数据, 每个数后面有一个空格, 最后再回车换行。输入样例:51 3 5 7 92输出样例:1 2 3 5 7 9 # include <stdio.h>int main (void){ int a[100]; int
2021-05-23 19:26:22
906
原创 字符串的连接 (不能使用strcat函数)
第1种:# include <stdio.h>int main(void){ char str1[100],str2[50]; gets(str1); gets(str2); char * p; char * q; p = str1; //p指向str1数组第一个元素的地址 q = str2; //q同样 while(*p) //*p等于str1数组第1个元素,进行p++,一直加到'\0'才会停止, p++; 此时
2021-05-22 23:40:05
934
原创 二分法(折半查找)
# include <stdio.h>int main (void){ int a[10]={1,3,6,9,12,37,45,49,79,99}; int n,high,low,mid,found=0; scanf("%d",&n); high = 9 ; low = 0; while(low < high) { mid = (low+high)/2; if(n == a[mid]) { found=1; break;
2021-05-22 19:39:38
104
原创 二维数组每列排序
一个4×5的整型二维数组,从键盘输入数据,并对该数组的每一列按从小到大的顺序排列后输出。输入格式:输入4行5列的矩阵,每行第一个数前没有空格,每行的每个数之间各有一个空格。输出格式:输出4行5列的矩阵,每行第一个数前没有空格,每个数输出占4列列宽。输入样例:5 1 1 4 21 2 3 4 58 4 5 2 17 5 3 6 4输出样例: 1 1 1 2 1 5 2 3 4 2 7 4 3 4 4
2021-05-22 17:39:15
1974
原创 选择排序
第1种:# include <stdio.h>int main(void){ int a[50]; int i,j,t,len,min; scanf("%d",&len);//输入数组长度 for(i=0;i<len;++i) scanf("%d",&a[i]);//元素 for(i=0;i<len;++i)//总体进行的循环次数 { min = i; for(j=i+1;j < len;++j)/
2021-05-22 11:40:04
89
原创 冒泡排序
# include <stdio.h>int main(void){ int a[100]; int i,j,t,len; scanf("%d",&len); for(i=0;i < len;++i) scanf("%d",&a[i]); for(i=0;i < len;++i) for(j=0;j < len-1-i;++j) { if(a[j]>a[j+1]) {
2021-05-22 11:20:43
72
原创 数组循环左移
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0a1⋯an−1)变换为(am⋯an−1a0a1⋯am−1)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整数,其间以空格分隔。输出格式:
2021-05-21 11:55:54
95
原创 时制转换
现在输入一个24小时制的时间,请编程将其转换为12小时制时间格式,输出转换后的时间,原来时间如果是上午,那么需要在转换时间之后输出空格和AM,原来时间如果是下午,在转换时间之后输出空格和PM,输出具体参考样例。注:在24小时制中 , [00:00~12:00]认为是上午,[12:01~23:59]认为是下午。提示:输出时间:分钟的格式请使用 printf("%02d:%02d AM或PM"),%02d表示占2个数字宽度,数不够2位的前面补0 。 输出前面带0 的数据依然可以使用scanf("%d".
2021-05-18 23:39:29
1457
原创 字母大小写转换
# include <stdio.h>int main (void){ char a[40]; int i; gets(a); for(i = 0;a[i] != '#';++i) { if(a[i] >= 'a' && a[i] <= 'z') a[i] -= 32; else if(a[i] >= 'A' && a[i] <= 'Z') a[i] += 32; } for.
2021-05-17 22:40:10
153
原创 基本数据类型、运算符及表达式
1.以下符合C语言语法的赋值表达式是(B )。A.a=9+b+c=d+9 B.a=(9+b, c=d+9)C.a=9+b, b++, c+9 D.a=9+b++=c+9解析:赋值表达式: 变量 = 表达式 A.D.d+9的左边是表达式与定义不符 B.括号里是逗号表达式,赋给a最后一个值 C.赋给a的是9+b,而后面两个是另外两个式子2.哪些逻辑运算符执行短路定值(C)A.or, not ...
2021-05-17 21:59:46
1519
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人