- 博客(65)
- 收藏
- 关注
原创 【数据结构】7-2 Infix to Postfix Conversion (40 分)
Convert the infix expression to postfix expression.输入格式:1 line. A correct expression include +,-,*,/,(,) and integer. Each integer is less than 10 and more than 0.输出格式:2 line. The first line gives the result of expression. Keep 2 digits after the de.
2021-11-26 16:45:34
1603
原创 【数据结构】7-1 Balancing Symbols (60 分)
Balancing symbols: Check if parenthesis (), brackets[], and braces{} are balanced.输入格式:1 line An expression includes variables and symbols. The max length is 50.输出格式:1 line If all the () [] {} are balanced, then output 0. If () are not balanced, out.
2021-11-26 16:42:02
1468
原创 PAT (Basic Level) Practice (中文)1011 A+B 和 C (15 分)
给定区间 [−231,231] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。输入格式:输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。输出格式:对每组测试用例,在一行中输出 Case #X: true 如果 A+B>C,否则输出 Case #X: false,其中 X 是测试用例的编号(从 1 开始)。输入样例:41 2 32 3 42147483647 0 2.
2021-10-27 17:49:14
166
原创 PAT (Basic Level) Practice (中文)1010 一元多项式求导 (25 分)
设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn-1 。)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。输入样例:3 4 -5 2 6 1 -2 0结尾无空行输出样例:12 3 -10 1 6 0结尾无空行#include<std.
2021-10-27 17:40:34
132
原创 PAT (Basic Level) Practice (中文)1009 说反话 (20 分)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Here I Come输出样例:Come I Here World Hello#include<stdio..
2021-10-27 17:00:47
76
原创 PAT (Basic Level)1006 换个格式输出整数 (15 分)
让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出 n。输入样例 1:234结尾无空行输出样例 1:BBSSS1234结尾无空行输入样例 2.
2021-09-25 16:00:34
62
原创 PAT (Basic Level) Practice (中文)1005 继续(3n+1)猜想 (25 分)
卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了,我们称 5、8、4、2 是被 3“覆盖”的数。我们称一个数列中的某个数 n 为“关键数”,如果 n 不能被数列中的其他数字所覆.
2021-09-25 15:46:07
68
原创 PAT (Basic Level) Practice (中文)1004 成绩排名 (20 分)
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含 1 个测试用例,格式为第 1 行:正整数 n第 2 行:第 1 个学生的姓名 学号 成绩第 3 行:第 2 个学生的姓名 学号 成绩… … …第 n+1 行:第 n 个学生的姓名 学号 成绩其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。输出格式:对每个测试用例输出 2 行.
2021-09-24 15:44:29
271
原创 PAT (Basic Level) Practice (中文)1003 我要通过! (20 分)
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A .
2021-09-24 15:33:10
46
原创 PAT (Basic Level) Practice (中文)1002 写出这个数
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu#include<stdio.h>main(){ char num[101]; in.
2021-09-23 19:23:35
62
原创 PAT (Basic Level) Practice (中文)1001 害死人不偿命的(3n+1)猜想 (15 分)
卡拉兹(Callatz)猜想:对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简.
2021-09-23 19:20:16
58
原创 7-34 通讯录的录入与显示 (10分)
通讯录中的一条记录包含下述基本信息:朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。 本题要求编写程序,录入N条记录,并且根据要求显示任意某条记录。输入格式:输入在第一行给出正整数N(≤10);随后N行,每行按照格式姓名 生日 性别 固话 手机给出一条记录。其中姓名是不超过10个字符、不包含空格的非空字符串;生日按yyyy/mm/dd的格式给出年月日;性别用M表示“男”、F表示“女”;固话和手机均为不超过15位的连续数字,前面有可能出现+。在通讯录记录输入完成后,最后一行给出正整数K,并.
2021-01-02 16:27:47
295
原创 6-6 求单链表结点的阶乘和 (15分)
本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。函数接口定义:int FactorialSum( List L );其中单链表List的定义如下:typedef struct Node *PtrToNode;struct Node { int Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List; /* 定义单链表类型 */.
2021-01-02 16:25:24
85
原创 7-6 学生信息管理系统 (100分)
创建学生信息管理系统,具体要求如下:学生信息包括:学号 姓名 数学成绩 英语成绩 计算机成绩功能1:添加学生信息 执行1时,输入学号,姓名,三门科目成绩;如果添加学生成功则输出“Add success”,如果学生已存在则输出“Students already exist”功能2:删除学生信息 执行2时,输入学号信息;如果学生不存在,输出“Students do not exist”,如果存在,则输出“Delete success”功能3:更改学生成绩信息 执行3时,输入学号信息;如果学生不存在,输.
2021-01-02 16:22:28
517
原创 7-5 实验11_3_结构排序 (100分)
有n名学生,每个学生的属性包括姓名与总成绩。已知学生的姓名与总成绩,你的任务是将学生的信息按照以下方式排序:首先比较总成绩,总成绩高的在前面,总成绩低的在后面,当总成绩相同时,你要比较学生的姓名,姓名字典序小的同学在前面,姓名字典序大的同学在后面(ASCII码顺序)。n的范围是1—100;学生的姓名中只能包含大小写字母,不会超过20个字符;总成绩为整数。要求:在本题中,你要设计一个结构来存储学生的信息。在此结构中,需要有一个字符数组来存储姓名,一个整型变量存储总成绩。 输入与输出要求:输出:。。输.
2021-01-02 16:20:57
333
原创 7-4 实验11_2_初识结构数组 (100分)
有n名学生,每个学生的信息包括姓名、学号、5门课程的成绩,平均成绩与总成绩。已知学生的姓名、学号与5门课程的成绩,你的任务是计算每个学生的平均成绩与总成绩,并将它们输出。学生的姓名中只能包含大小写字母与空格字符,不会超过20个字符;学生的学号是个长度不会超过20的字符串,只包含数字字符;课程成绩均为0—100的整数。要求:在本题中,你要设计一个结构来存储一个学生的信息。在此结构中,需要有一个字符数组来存储姓名;一个字符数组来存储学号;一个长度为5的整型数组来存储5门课程的成绩;一个双精度浮点型变量存储平.
2021-01-02 16:19:53
238
原创 7-3 实验11_1_初识结构 (100分)
学生的属性包括姓名、学号、5门课程的成绩、平均成绩与总成绩。已知一个学生的姓名、学号与5门课程的成绩,你的任务是计算该学生的平均成绩与总成绩,并将该学生的5门课程成绩按照从高到底进行排序,最后将这个同学的完整信息输出。学生的姓名中只能包含大小写字母与空格字符,不会超过20个字符;学生的学号是个长度不会超过20的字符串,只包含数字字符;课程成绩均为0—100的整数。要求:1.在本题中,你要设计一个结构来存储学生的信息。在此结构中,需要有一个字符数组来存储姓名;一个字符数组来存储学号;一个长度为5的整型数.
2021-01-02 16:18:41
222
原创 7-1 实验10_9_指针数组进阶 (100分)
已知正整数n,n的范围是1—100。你要从键盘读入n个字符串,每个字符串的长度不确定,但是n个字符串的总长度不超过100000。你要利用字符指针数组将这n个字符串按照ASCII码顺序进行升序排序,然后再打印到屏幕上。字符串中可能包含ASCII码中的任意字符,每个字符串以换行符结束输入。要求:不允许定义如char str[100][100000];这样的二维数组,因为会极大的浪费内存空间。你应定义char str[100000];这样的存储空间,将n个字符串连续的存储在一维字符空间内,然后将这n个字符串的.
2021-01-02 16:17:03
367
原创 6-1 6-2 6-3 综合成绩排名-结构体一、二、三
众所周知,计算机院要对申请转入计算机大类的学生进行考核,考核方式包括机试和面试。学生综合成绩采取百分制,其中50%由机试成绩核算,另50%由学生已获得的加权成绩核算。综合成绩优秀者可进入面试环节。现请你写一个根据学生成绩来确定综合成绩排名的程序。输入: 第一行为一个整数n(0<n<100),代表学生人数。 后边n行为学生信息,格式为,一个字符串代表学生学号(长度不超过15),后边为两个整数,前边的代表机试成绩,后一个代表学生已获得的加权成绩。(两类成绩均在0到100之间)。输出: 共n.
2021-01-02 16:09:32
345
原创 7-3 祖玛 (100分)
《祖玛》是由Popcap Games于2004年01月01日开放的一款益智小游戏。游戏目标是尽量消除珠子,以防止珠子滚入轨迹尽头的洞中。游戏的主角是一只石青蛙,石青蛙会吐出各种颜色的珠子,珠子造型美丽,色彩鲜艳,环绕着石青蛙的是承载珠子的轨道,各种颜色的珠子沿着轨道往前滑动,石青蛙必需遏止珠子滚进轨道终点的洞穴。石青蛙吐出的珠子与轨道上的珠子相结合,颜色相同即可消失得分,当轨道上的所有珠子被消除干净时即取得游戏的胜利。 根据这个游戏还编出了其他游戏,比如:埃及祖玛,埃及祖玛之阿蒙神叛乱,亚特兰蒂斯祖玛,.
2021-01-02 13:41:01
500
1
原创 【练习】实验10_7_动态分配内存_2
已知正整数n、m,你要利用malloc函数动态开辟一个n行、m列的整型二维数组,然后读取nm个整数存入该数组中。再将这nm个整数全部改为其相反数的10倍,然后将其输出。最后你要利用free函数将该动态数组所占用的空间释放。提示:malloc与free的使用,以下代码即建立了一个n行m列的整型二维动态数组,并释放:int **a,n ,m;scanf(“%d%d”,&n,&m);a=(int **)malloc(sizeof(int *)*n);//建立长度为n的动态指针数组f.
2020-12-15 18:49:24
363
原创 【练习】实验10_7_动态分配内存_1
已知正整数n,你要利用malloc函数动态开辟一个长度为n的整型数组,然后读取n个整数存入该数组中。再将这n个整数全部改为其相反数(例如10的相反数是-10,-10的相反数是10)的10倍,然后将其输出。最后你要利用free函数将该动态数组所占用的空间释放。提示:malloc与free的使用,以下代码即建立了一个长度为n的整型动态数组,并释放:int *a,n;scanf(“%d”,&n);a=(int * )malloc(sizeof(int) * n);// 建立长度为n的动态整型.
2020-12-15 17:55:23
506
原创 【练习】链表的创建+打印+删除
#include<stdio.h>#include<stdlib.h>struct list{ int data; struct list *p;};struct list *creatFIFOlist(){ int num; struct list *current=NULL,*head=NULL,*last=NULL; scanf("%d",&num); while(num!=-1){ current=malloc(sizeof(struct li
2020-12-12 19:42:29
83
原创 【练习】递归函数:小明爱游戏
小明爱上了玩魔兽世界,想购买一些游戏装备来提升属性,于是小明设计了两个作弊器,可以通过投入x (x>=0)个魔法币产生更多的魔法币。作弊器1: 如果投入x个魔法币,魔法机器会将其变为2x+1个魔法币。作弊器2: 如果投入x个魔法币,魔法机器会将其变为2x+2个魔法币。假定小明采购装备总共需要n个魔法币,并且小明一开始没有一个魔法币(x=0),请帮助小明设计一个投入方案,使他通过使用两台作弊器恰好产生n个魔法币。本题要求使用递归算法,请自行设计递归函数 ,输入与输出说明:第一行:正整数n.
2020-12-10 22:27:41
129
原创 【练习】用指针编写字符串比较函数
请求编写一个函数int STRCMP(char *source, char *dest),实现字符串比较。如果两个字符串相等则返回0,否则返回-1; 编程要求:1,请不要使用直接调用相关的库函数等等,应自己编写处理逻辑;2,程序通过控制台输入数据,并且程序应该清晰、简洁;3,写一个main函数用于调试、验证函数STRCMP的功能#include<stdio.h>int STRCMP(char *source, char *dest){ char *p=source,*q=dest.
2020-12-10 14:36:30
1876
原创 【练习】利用指针编写函数复制字符串
编写一个copy函数,完成对于字符串的复制功能,并在主函数中输入任意字符串,调用该copy函数,输出拷贝后的字符串。#include<stdio.h>void copy(char *p,char *q){ int i; while(*(p+i)!='\0'){ *(q+i)=*(p+i); i++; } *(q+i+1)='\0';}main(){ char s1[100],s2[100]; scanf("%s",s1); char *p=s1,*q=s2; .
2020-12-10 14:28:40
5270
1
原创 【练习】利用指针打印偶数因子
编写函数 void f(int x, int *p,int *q) 它的功能是求出x的偶数因子,并从小到大的顺序存放到p所指向的数组中,这些因子的个数通过形参q返回。这里假定p指向的数组空间足够大。例如x为24,则一共6个偶数满足需求,分别是2,4,6,8,12,24.#include<stdio.h>void f(int x, int *p,int *q){ int i=2,j=0; while(i<=x){ if(x%i==0){ *(p+j)=i; j+.
2020-12-10 14:23:42
573
原创 【练习】利用指针将数组中的0挪到最后
有一个数组 int a[n];要求构造如下的函数void fun(int *p,int n)将数组a中的0都移动到末尾,并将非0的元素移动到开始并保证顺序型不变。例如a原来是1 0 3 4 0 -3 5经过处理后改为1 3 4 -3 5 0 0#include<stdio.h>void fun(int *p,int n){ int i,tmp,j; for(i=0;i<n-1;i++){ for(j=i+1;j<n;j++){ if(*(p+i)==.
2020-12-10 14:09:08
433
原创 2020-12-06课堂练习:函数指针
#include<stdio.h>int max(int x,int y){ if(x>y) return x; else return y;}main(){ int (*p)(int,int); p=max; int a=3,b=4,c=(*p)(a,b); printf("max is %d",c);}
2020-12-06 10:16:05
55
原创 2020-12-6课堂练习:指向指针的指针
#include<stdio.h>#include<stdlib.h>main(){ int a[5]={2,4,6,8,9}; int *num[5]={&a[0],&a[1],&a[2],&a[3],&a[4]}; int **ptr,i; ptr=num; for(i=0;i<5;i++){ printf("%d\t",**ptr); ptr++; }}
2020-12-06 09:33:36
155
原创 6-2 设计函数 locatesubstr
设计函数 char *locatesubstr(char *str1,char *str2),查找str2指向的字符串在str1指向的字符串中首次出现的位置,返回指向该位置的指针。若str2指向的字符串不包含在str1指向的字符串中,则返回空指针NULL。 注意这里必须使用指针而不是数组下标来访问字符串。函数接口定义:函数接口如下:char *locatesubstr(char *str1,char *str2);在这里解释接口参数。例如:其中 str1 和 str2 都是用户传入的参数,其含义如.
2020-12-02 23:55:08
885
原创 实验9_8_设计函数 void delcharfun(char *str,char ch)
设计函数 void delcharfun(char *str,char ch)实现从字符串str中删除指定的字符ch。同一字母的大、小写按不同字符处理。函数接口定义:函数原型如下:void delcharfun(char *str,char ch);其中 str 和 ch 都是用户传入的参数。 str 为指向待删除数组的指针; ch 指定字符。函数没有返回值。裁判测试程序样例:函数被调用的例子如下:#include<stdio.h>void delcharfun(cha.
2020-12-02 23:31:38
1787
4
原创 PTA基础编程题目集7-35 有理数均值
本题要求编写程序,计算N个有理数的平均值。输入格式:输入第一行给出正整数N(≤100);第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。输出格式:在一行中按照a/b的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。输入样例1:41/2 1/6 3/6 -5/10输出样例1:1/6输入样例2:24/3 2/3输出样例2:1#includ.
2020-12-02 19:49:59
3286
4
原创 PTA基础编程题目集7-33 有理数加法
本题要求编写程序,计算两个有理数的和。输入格式:输入在一行中按照a1/b1 a2/b2的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。输出格式:在一行中按照a/b的格式输出两个有理数的和。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。输入样例1:1/3 1/6输出样例1:1/2输入样例2:4/3 2/3输出样例2:2#include<stdio.h>main(){ int a1,a2,b1,b2,re1,re2,i,t=0.
2020-12-02 18:24:58
3794
原创 实验9_20_字符串排序
问题描述:整数可以按照大小来排序,其实字符串也可进行排序。排序时需要比较字符串大小。字符串比较规则见Problem13中对于strcmp功能的描述。任意给定n个字符串,字符串中可以包含除换行符之外的任意字符。你的任务是将这n个字符串从小到大进行排序,然后输出。输入与输出要求:输入一个不超过200的整数n,代表待排序字符串的个数。然后输入n个字符串,每个字符串长度不会超过100,以换行符结束。输出排序后的n个字符串,每个字符串占一行。程序运行效果:Sample 1:5↙bbb↙zzz.
2020-12-01 23:17:07
290
原创 实验9_10_统计子串
问题描述:任意给定两个字符串str1与str2, str1与str2中可以包含任意字符。你的任务是统计字符串str2在str1中出现的次数。如字符串str1为“asasasbbbasbas”,str2为“as”,则统计结果为5。注意如果字符串str1为“aaaaa”,字符串str2为“aaa”,则统计结果为3。输入与输出要求:输入两个长度不超过100的字符串,以换行符结束。输出统计次数,占一行。程序运行效果:dhd dhdhdfg dhd dh zx67 dhd mklodhdh↙dhd.
2020-12-01 22:45:06
256
原创 2020-12-01课堂练习2
#include<stdio.h>struct date{ int year; int month; int day;};struct student{ char no[7]; char name[9]; char sex[3]; struct date birthday;}; void func(struct student stu){ stu.birthday.year=2000;}main(){ struct student stu={"000102","张
2020-12-01 17:56:43
53
原创 2020-12-01结构体课堂练习
#include<stdio.h>struct date{ int year; int month; int day;};struct student{ char no[7]; char name[9]; char sex[3]; struct date birthday;}; main(){ struct student stu={"000102","张三","男",{1980,9,20}}; struct student *ptr=&stu; print
2020-12-01 17:39:18
143
原创 实验8_5_寻找鞍点
问题描述:任意给定一个n*m的矩阵,矩阵的行数为n,列数为m。你的任务是寻找该矩阵的鞍点。一个矩阵的鞍点即该位置上的元素在所在行上最大,在所在列上最小。有的矩阵也可能没有鞍点。不难证明,如果一个矩阵有鞍点,那么这个鞍点一定是唯一的。如果某个矩阵只有1行(1列),则默认该行上的所有元素满足列上最小(行上最大)的要求。例如矩阵M:1 2 3 4 52 4 6 8 103 6 9 12 154 8 12 16 20该矩阵的鞍点为M[0][4]=5,该数在第0行最大,在第4列最小。注:测试用例保证.
2020-12-01 17:26:50
1813
原创 A. 实验8_1_矩阵转置
问题描述:任意给定一个n*m的矩阵,矩阵的行数为n,列数为m。你的任务是实现矩阵的转置,即行列互换。输入与输出要求:输入两个整数n、m,代表矩阵的行数与列数,n、m的范围均是1—100。然后输入n*m个整数,即此矩阵的元素。输出经过矩阵转置得到的新矩阵,新矩阵占m行,n列。每行的每个元素用空格分隔,注意最后一个数的后面为换行符。程序运行效果:Sample 1:3 5↙5 5 5 5 5↙3 3 3 3 3↙1 1 1 1 1↙5 3 15 3 15 3 15 3 15 .
2020-12-01 17:07:33
2465
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人