C语言练习题
Aaron Hill
这个作者很懒,什么都没留下…
展开
-
删除链表中不符合条件的元素
在一个顺序存储的线性表中删除大于min但小于max的数#include<stdio.h>#include<stdlib.h>typedef struct LNode *List;struct LNode{ int data; List Next;};List Create( ){ List temp,tail,head; head = tail = NULL; int N,x,i; scanf("%d",&N); for(i=0;i<N;i原创 2020-09-07 20:58:00 · 176 阅读 · 0 评论 -
递增整数序列链表插入整数使有序性不变
使用的是带头结点的链表#include<stdio.h>#include<stdlib.h>typedef struct LNode *PtrToLNode;struct LNode{ int data; PtrToLNode Next;}; typedef PtrToLNode List;List Create( ){ List head,tail,temp,L; L = (List)malloc(sizeof(struct LNode)); int m原创 2020-09-04 21:50:03 · 391 阅读 · 0 评论 -
L1-003 个位数统计 (15分)
#include<stdio.h>int main(void){ int i = 0; int a[10] = {0}; char str[1001]; //是一个不超过1000位的数字,所以用字符数组存储 scanf("%s",str); while(str[i]!='\0'){ a[str[i]-'0']++; i++; } for(i = 0;i<10;i++){ if(a[i.原创 2020-11-13 22:10:28 · 94 阅读 · 0 评论 -
实验7-2-10 简易连连看 (20分)
本题要求实现一个简易连连看游戏模拟程序。给定一个2N×2N的方阵网格游戏盘面,每个格子中放置一些符号。这些符号一定是成对出现的,同一个符号可能不止一对。程序读入玩家给出的一对位置(x1 ,y1 )、(x2 ,y2 ),判断这两个位置上的符号是否匹配。如果匹配成功,则将两个符号消为“*”并输出消去后的盘面;否则输出“Uh-oh”。若匹配错误达到3次,则输出“Game Over”并结束游戏。或者当全部符号匹配成功,则输出“Congratulations!”,然后结束游戏原创 2020-09-15 23:10:43 · 1418 阅读 · 0 评论 -
实验4-1-7 特殊a串数列求和 (20分)
给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。输入格式:输入在一行中给出不超过9的正整数a和n。输出格式:在一行中按照“s = 对应的和”的格式输出。输入样例:2 3输出样例:s = 246#include<stdio.h>int main(void){ int a,t,n,sum=0,i; scanf("%d %d",&a,&n); t = a; sum = a; fo原创 2020-09-04 16:39:23 · 444 阅读 · 0 评论 -
实验7-2-7 方阵循环右移 (20分)
本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。输入格式:输入第一行给出两个正整数m和n(1≤n≤6)。接下来一共n行,每行n个整数,表示一个n阶的方阵。输出格式:按照输入格式输出移动后的方阵:即输出n行,每行n个整数,每个整数后输出一个空格。输入样例:2 31 2 34 5 67 8 9输出样例:2 3 15 6 48 9 7#include<stdio.h>原创 2020-09-04 16:15:41 · 754 阅读 · 1 评论 -
实验6-8 简单计算器 (20分)
模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。输出格式:在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。输入样例:1+2*10-10/2=输出样例:10#include<stdio.h>int main(void){ char ch; int b原创 2020-09-04 15:56:36 · 1189 阅读 · 0 评论 -
1002 写出这个数 (20分)
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10^100。输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu...原创 2020-07-24 09:11:59 · 119 阅读 · 0 评论 -
7-19 求链式线性表的倒数第K项 (20分)
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。输入格式:输入首先给出一个正整数K,随后是若干非负整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。输出格式:输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。输入样例:4 1 2 3 4 5 6 7 8 9 0 -1输出样例:7#include<stdio.h>#include<stdlib.h>struct data{ int val; //存原创 2020-07-22 19:28:27 · 321 阅读 · 1 评论 -
PTA 7-18 银行业务队列简单模拟 (25分)
设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。输入格式:输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。输出格式:按业务处理完成的顺序输出顾客原创 2020-07-22 09:41:00 · 280 阅读 · 0 评论 -
7-4 列车调度 (25分)
7-4 列车调度 (25分)火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N (2 ≤ N ≤105),下一行给出从1到N的整数序号的一个重排列。数字间以原创 2020-07-21 21:42:54 · 2062 阅读 · 0 评论 -
7-3 一帮一 (15分)
“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。输入格式:输入第一行给出正偶数N(≤50),即全班学生的人数。此后N行,按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)和姓名(不超过8个英文字母的非空字符串),其间以1个空格分隔。这里保证本班男女比例是1:1,并且没有并列名次。输出格式原创 2020-07-21 18:58:57 · 1484 阅读 · 0 评论 -
7-3 输出GPLT (20分)
给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT…这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。输出格式:在一行中按题目要求输出排序后的字符串。题目保证输出非空。输入样例:pcTclnGloRgLrtLhgljkLhGFauPewSKgt输出样原创 2020-07-18 21:54:54 · 2170 阅读 · 0 评论 -
PTA 实验7-3-2 查找指定字符 (15分)
输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。输出格式:如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。输入样例1:mprogramming输出样例1:index = 7输入样例2:a1234输出样例2:Not FoundAC代码#include<stdio.h>int main(void){ int index =原创 2020-07-16 10:37:10 · 1146 阅读 · 0 评论 -
PTA 实验7-3-3 统计大写辅音字母 (15分)
英文辅音字母是除A、E、I、O、U以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。输出格式:输出在一行中给出字符串中大写辅音字母的个数。输入样例:HELLO World!输出样例:4#include<stdio.h>int main(void){ char str[80]; int count=0,i=0; while((str[i]=getchar( ))!='\原创 2020-07-16 10:33:37 · 579 阅读 · 0 评论 -
自测-2 素数对猜想 (20分)
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出格式:在一行中输出不超过N的满足猜想的素数对的个数。输入样例:20输出样例:4#include<stdio.h>#include<stdbool原创 2020-06-26 10:36:44 · 188 阅读 · 0 评论 -
实验11-1-8 查找子串 (20分)
本题要求实现一个字符串查找的简单函数。函数接口定义:char *search( char *s, char *t );函数search在字符串s中查找子串t,返回子串t在s中的首地址。若未找到,则返回NULL。裁判测试程序样例:#include <stdio.h>#define MAXS 30char *search(char *s, char t);void ReadString( char s[] ); / 裁判提供,细节不表 */int main(){char s[M原创 2020-06-23 17:26:48 · 413 阅读 · 0 评论 -
实验7-2-9 螺旋方阵 (20分)
所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式:输入在一行中给出一个正整数N(<10)。输出格式:输出N×N的螺旋方阵。每行N个数字,每个数字占3位。输入样例:5输出样例: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9#include<stdio.h>原创 2020-06-22 14:19:48 · 497 阅读 · 0 评论 -
实验7-2-8 找鞍点 (20分)
实验7-2-8 找鞍点 (20分)一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点。输入格式:输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。输出格式:输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。输入样例1:41 7 4 14 8 3 61 6 1 20 7 8 9输出样例1:2原创 2020-06-20 19:30:06 · 612 阅读 · 0 评论 -
PTA 练习7-8 方阵循环右移 (20分)
代码如下:#include<stdio.h>#define MAX 6int main(int argc,char *argv){ int m,n; scanf("%d%d",&m,&n); //输入 m和n int i,j,num[MAX][MAX],t[20],k; for(i=0;i<n;i++) f...原创 2020-03-29 12:20:18 · 542 阅读 · 0 评论 -
实验7-1-11 求整数序列中出现次数最多的数 (15分)
#include<stdio.h>/*借助结构数组保存输入的数和出现的次数*/struct data{ int x; //储存输入的数字 int y; //记录出现的次数};int main(void){ int n,index,i,j,temp,count=1; scanf("%d",&n); struct data datas[n]; scanf("%d",&datas[0].x); //输入第一个数 da.原创 2020-06-16 15:58:53 · 663 阅读 · 0 评论 -
实验4-2-4 换硬币 (20分)
解一:#include<stdio.h>int main(void){ int money,five,two,one,count=0,total; scanf("%d",&money); for(five=money/5;five>0;five--) for(two=money/2;two>0;two--){...原创 2020-04-24 12:41:51 · 343 阅读 · 0 评论 -
实验4-1-12 黑洞数 (20分)
输入样例:123输出样例:1: 321 - 123 = 1982: 981 - 189 = 7923: 972 - 279 = 6934: 963 - 369 = 5945: 954 - 459 = 495#include<stdio.h>void max (int* a,int* b,int* c);int main(void){ int a,b,c,n,...原创 2020-04-23 22:28:45 · 324 阅读 · 0 评论 -
7-6 福到了 (15分)
#include<stdio.h>int main(void){ int n,i,j,cnt=0; char ch,fp[10][10]; scanf("%c %d",&ch,&n); getchar();//读取换行符 for(i=0;i<n;i++){ for(j=0;j<n;j++) ...原创 2020-04-20 17:39:57 · 2005 阅读 · 0 评论