![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
练习
文章平均质量分 50
作业+课堂练习
秋有迹
这个作者很懒,什么都没留下…
展开
-
【数据结构】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 · 1601 阅读 · 0 评论 -
【数据结构】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 · 1457 阅读 · 0 评论 -
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 · 509 阅读 · 0 评论 -
7-5 实验11_3_结构排序 (100分)
有n名学生,每个学生的属性包括姓名与总成绩。已知学生的姓名与总成绩,你的任务是将学生的信息按照以下方式排序:首先比较总成绩,总成绩高的在前面,总成绩低的在后面,当总成绩相同时,你要比较学生的姓名,姓名字典序小的同学在前面,姓名字典序大的同学在后面(ASCII码顺序)。n的范围是1—100;学生的姓名中只能包含大小写字母,不会超过20个字符;总成绩为整数。要求:在本题中,你要设计一个结构来存储学生的信息。在此结构中,需要有一个字符数组来存储姓名,一个整型变量存储总成绩。 输入与输出要求:输出:。。输.原创 2021-01-02 16:20:57 · 325 阅读 · 0 评论 -
7-4 实验11_2_初识结构数组 (100分)
有n名学生,每个学生的信息包括姓名、学号、5门课程的成绩,平均成绩与总成绩。已知学生的姓名、学号与5门课程的成绩,你的任务是计算每个学生的平均成绩与总成绩,并将它们输出。学生的姓名中只能包含大小写字母与空格字符,不会超过20个字符;学生的学号是个长度不会超过20的字符串,只包含数字字符;课程成绩均为0—100的整数。要求:在本题中,你要设计一个结构来存储一个学生的信息。在此结构中,需要有一个字符数组来存储姓名;一个字符数组来存储学号;一个长度为5的整型数组来存储5门课程的成绩;一个双精度浮点型变量存储平.原创 2021-01-02 16:19:53 · 234 阅读 · 0 评论 -
7-3 实验11_1_初识结构 (100分)
学生的属性包括姓名、学号、5门课程的成绩、平均成绩与总成绩。已知一个学生的姓名、学号与5门课程的成绩,你的任务是计算该学生的平均成绩与总成绩,并将该学生的5门课程成绩按照从高到底进行排序,最后将这个同学的完整信息输出。学生的姓名中只能包含大小写字母与空格字符,不会超过20个字符;学生的学号是个长度不会超过20的字符串,只包含数字字符;课程成绩均为0—100的整数。要求:1.在本题中,你要设计一个结构来存储学生的信息。在此结构中,需要有一个字符数组来存储姓名;一个字符数组来存储学号;一个长度为5的整型数.原创 2021-01-02 16:18:41 · 217 阅读 · 0 评论 -
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 · 315 阅读 · 0 评论 -
6-1 6-2 6-3 综合成绩排名-结构体一、二、三
众所周知,计算机院要对申请转入计算机大类的学生进行考核,考核方式包括机试和面试。学生综合成绩采取百分制,其中50%由机试成绩核算,另50%由学生已获得的加权成绩核算。综合成绩优秀者可进入面试环节。现请你写一个根据学生成绩来确定综合成绩排名的程序。输入: 第一行为一个整数n(0<n<100),代表学生人数。 后边n行为学生信息,格式为,一个字符串代表学生学号(长度不超过15),后边为两个整数,前边的代表机试成绩,后一个代表学生已获得的加权成绩。(两类成绩均在0到100之间)。输出: 共n.原创 2021-01-02 16:09:32 · 340 阅读 · 0 评论 -
7-3 祖玛 (100分)
《祖玛》是由Popcap Games于2004年01月01日开放的一款益智小游戏。游戏目标是尽量消除珠子,以防止珠子滚入轨迹尽头的洞中。游戏的主角是一只石青蛙,石青蛙会吐出各种颜色的珠子,珠子造型美丽,色彩鲜艳,环绕着石青蛙的是承载珠子的轨道,各种颜色的珠子沿着轨道往前滑动,石青蛙必需遏止珠子滚进轨道终点的洞穴。石青蛙吐出的珠子与轨道上的珠子相结合,颜色相同即可消失得分,当轨道上的所有珠子被消除干净时即取得游戏的胜利。 根据这个游戏还编出了其他游戏,比如:埃及祖玛,埃及祖玛之阿蒙神叛乱,亚特兰蒂斯祖玛,.原创 2021-01-02 13:41:01 · 479 阅读 · 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 · 352 阅读 · 0 评论 -
【练习】实验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 · 502 阅读 · 0 评论 -
【练习】链表的创建+打印+删除
#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 · 80 阅读 · 0 评论 -
【练习】递归函数:小明爱游戏
小明爱上了玩魔兽世界,想购买一些游戏装备来提升属性,于是小明设计了两个作弊器,可以通过投入x (x>=0)个魔法币产生更多的魔法币。作弊器1: 如果投入x个魔法币,魔法机器会将其变为2x+1个魔法币。作弊器2: 如果投入x个魔法币,魔法机器会将其变为2x+2个魔法币。假定小明采购装备总共需要n个魔法币,并且小明一开始没有一个魔法币(x=0),请帮助小明设计一个投入方案,使他通过使用两台作弊器恰好产生n个魔法币。本题要求使用递归算法,请自行设计递归函数 ,输入与输出说明:第一行:正整数n.原创 2020-12-10 22:27:41 · 121 阅读 · 0 评论 -
【练习】用指针编写字符串比较函数
请求编写一个函数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 · 1827 阅读 · 0 评论 -
【练习】利用指针编写函数复制字符串
编写一个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 · 5242 阅读 · 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 · 554 阅读 · 0 评论 -
【练习】利用指针将数组中的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 · 428 阅读 · 0 评论 -
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 · 51 阅读 · 0 评论 -
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 · 153 阅读 · 0 评论 -
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 · 872 阅读 · 0 评论 -
实验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 · 1781 阅读 · 4 评论 -
实验9_20_字符串排序
问题描述:整数可以按照大小来排序,其实字符串也可进行排序。排序时需要比较字符串大小。字符串比较规则见Problem13中对于strcmp功能的描述。任意给定n个字符串,字符串中可以包含除换行符之外的任意字符。你的任务是将这n个字符串从小到大进行排序,然后输出。输入与输出要求:输入一个不超过200的整数n,代表待排序字符串的个数。然后输入n个字符串,每个字符串长度不会超过100,以换行符结束。输出排序后的n个字符串,每个字符串占一行。程序运行效果:Sample 1:5↙bbb↙zzz.原创 2020-12-01 23:17:07 · 280 阅读 · 0 评论 -
实验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 · 250 阅读 · 0 评论 -
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 · 50 阅读 · 0 评论 -
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 · 131 阅读 · 0 评论 -
实验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 · 1796 阅读 · 0 评论 -
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 · 2446 阅读 · 0 评论 -
【第二次机考错题】北京市机动车网上自选牌号的正误鉴别
2009年3月9日开始,北京市交通管理局正式推出北京市机动车网上自选牌号业务,极大的方便了新购车的市民自选中意的新车牌照号的需求。根据国家制定的机动车号牌号码标准,一辆机动车的号牌号码由七位字符组成,前两位是号牌号码发牌机关代码,后五位是具体号牌号码。主管部门在具体操作上又出台了以下规定:机动车所有人网上选号的号牌号码发牌机关代码为“京N”或者“京Y”。后面的五位号牌号码的最后一位必须为数字,其余四位有且必须有两位为英文字母(但字母I和O不可用),也就是说英文字母有且只有两个,不能多也不能少。例如:京NA.原创 2020-11-30 16:17:15 · 1127 阅读 · 0 评论 -
实验9_1_括号匹配
任意给定一个字符串,字符串中包含除了空格、换行符之外的任意字符。你的任务是检测字符串中的小括号是否配对,即“(”与“)”是否配对。如字符串“((a+b)* (c+d))”中小括号是配对的,而“((a+b)) c+d))”则不配对。程序运行效果:Sample 1: ((a+b)(c+d)) ↙parentheses match!↙Sample 2:((a+b)*)c+d)) ↙parentheses do not match!↙输入格式:一个长度不超过100的非空字符串,该字符串中不会出现空.原创 2020-11-27 22:43:48 · 469 阅读 · 1 评论 -
实验8_10_蛇形矩阵
问题描述:蛇形矩阵是一个nn的矩阵,将整数1到nn按照蛇形的顺序装入一个 n*n 的蛇形矩阵中,如样例所示分别为5阶和10阶蛇形矩阵:输入与输出要求:输入一个整数n,代表蛇形矩阵的阶数,n的范围是1—100。输出蛇形矩阵。每行的每个元素用空格分隔,注意最后一个数的后面为换行符。程序运行效果:Sample 1:51 3 4 10 112 5 9 12 196 8 13 18 207 14 17 21 2415 16 22 23 25Sample 2:101 3 4 10 .原创 2020-11-27 20:53:28 · 549 阅读 · 0 评论 -
实验8_6_矩阵变换
问题描述:任意给定一个n*n的矩阵,矩阵的行数与列数均为n。你的任务是通过行变换,使得矩阵每行元素的平均值按递增顺序排列。如果出现有的行平均值相同的情况,则按照原顺序输出。输入与输出要求:输入一个整数n代表矩阵的行数(列数),n的范围是1—100。然后输入n*n个整数,即此矩阵的元素。矩阵元素的绝对值不会超过1000000。输出经过行变换后的新矩阵。每行的每个元素用空格分隔,注意最后一个元素后为换行符。程序运行效果:Sample 1:3↙5 5 5↙3 3 3↙1 1 1↙1 .原创 2020-11-27 14:33:50 · 1033 阅读 · 0 评论 -
用指针构造函数复制字符串
#include<stdio.h>void copy(char *p,char *q){ while(*p!='\0'){ *q=*p; p++; q++; } *q='\0';}main(){ char *p="BUPT",str2[100]; char *q=str2; int i=0; copy(p,q); while(*q!='\0'){ printf("%c",*q); q++; }}原创 2020-11-27 14:30:55 · 250 阅读 · 0 评论 -
利用指针+函数寻找数组中的最大值及其下标
#include<stdio.h>void search(int *p,int len,int *pmax,int *pindex){ int i; for(i=1;i<len;i++){ if(*(p+i)>*pmax){ *pmax=*(p+i); *pindex=i; } }}main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; int x=0,*p=&a[0],*pmax=&a[0],*pind原创 2020-11-27 14:10:47 · 9761 阅读 · 5 评论 -
实验8_2_推销员的便条
问题描述:某公司有四个销售员(代号1—4),负责销售五种产品(代号1—5)。每个销售员都把当天售出的每种产品各写一张便条交上来。每张便条包含销售员的代号、产品的代号、这种产品的销售额。我们搜集到了每个月的所有便条,你的任务是根据这些便条,计算出每人、每种产品的总销售额。处理完销售信息后,以表格形式打印出结果。用列代表销售员,行代表产品。每种产品的销售总额输出到该行的最右边,每个销售员的销售总额输出到该列的最下边。输入与输出要求:输入一个整数n,代表便条的数量,然后是n组便条的内容,每组内容包括两.原创 2020-11-27 00:54:18 · 1091 阅读 · 1 评论 -
利用指针构造swap函数
#include<stdio.h>void swap(int *p1,int *p2){ int tmp; tmp=*p1; *p1=*p2; *p2=tmp;}main(){ int a,b; scanf("%d%d",&a,&b); int *p1=&a,*p2=&b; swap(p1,p2); printf("a:%d,b:%d",*p1,*p2);}原创 2020-11-24 17:22:04 · 322 阅读 · 0 评论