计算机考研自命题(4)

1、C语言-通项求和

1、编写程序:求a+aa+aaa+aaa+aaa+aaa…aaa的和,需要写一个函数fn(a,n)实现n个a的拼接,例如fn(3,2)返回的结果就是36。

# include<stdio.h>/*
解题思路:fun(a,n)
a表示构成通项的数字 
n表示有几个通项 
先让一个 temp = a,将最开始的数字保存下来
求值一次 a = a*10 + temp 
第1个通项 : a = a
第2个通项 : aa = a*10 +temp
然后就行求和 假设fun(3,2)即 2 个通项全由数字 3 构成:3+33 
temp = a=3
第1个通项 : a = 3 = 3
第2个通项 : aa == 33 = 3*10 +temp  
*/int fun(int a,int n){int i,sum = 0;int temp = a;for(i = 1;i<=n;i++){  // 求 n 个通项和 sum = sum+a;a = a*10 + temp;}return sum;
} int main() {int sum = fun(3,3);printf("sum = %d",sum);return 0;
}

2、C语言-结构体

2、编写程序:写一个学生的结构体,结构体成员有学号,年龄,性别,成绩。学生成绩等级的划分:90-100为A等,80-89为B等,

70-79为C等,60-69为D等,60以下为不及格。要求实现录入学生信息的功能,并写一个函数set_grade()实现根据学生成绩的进行

划分和统计不及格人数的功能。

# include <stdio.h>/*
解题思路:
先定义学生的结构体
然后创建函数 set_grade(stu,n),传入学生讯息,和学生总人数
然后用一个数组来存储每个阶段学生的人数 
*/ // 学生结构体定义 
struct Student{int id;     // 学号 int age;    // 年龄 char sex;   // 性别 int grade;  // 成绩 
}Student;//  
void set_grade(struct Student stu[],int n){int i,j;int sum[5] = {0};for(i = 0;i< n;i++){if(stu[i].grade>=90){sum[0]++; printf("成绩大于90 A");}if(stu[i].grade>=80&&stu[i].grade<90){sum[1]++; printf("成绩大于80小于90 B");}if(stu[i].grade>=70&&stu[i].grade<80){sum[2]++; printf("成绩大于70小于80 C");}if(stu[i].grade>=60&&stu[i].grade<70){sum[3]++; printf("成绩大于60小于70 D");}if(stu[i].grade<60){sum[4]++; printf("成绩小于60 不及格");}}printf("不及格人数为%d",sum[4]); 
} int main(){struct Student stu[5] = {{1001,16,'男',91},{1002,16,'男',41},{1003,16,'男',81}, {1004,16,'男',51},{1005,16,'男',71}};set_grade(stu,5);return 0;
}

3、C语言-文件操作

3、编写程序:实现输入10个数,将这10个数按照从小到大的顺序排序,并写入data.txt文件中。

/*
解题思路:定义一个数组,用来存储输入的10个数,
利用scanf()函数从键盘输入10个数字存储到数组中,然后对数组进行冒泡排序,
然后用 W+ (读写的方式)打开文件,将数组中的数字利用fprintf()函数写入文本中
*/#include <stdio.h>
#include <string.h>
int main()
{FILE *fp;   // 定义文件指针int arr[10];int num;int i,j; for(i=0;i<10;i++){printf("请输入第%d个整数:\n",i+1);scanf("%d",&num);arr[i] = num;}// 冒泡排序  从小到大排序 for(i = 0;i<10;i++){for(j = 0;j<10-1-i;j++){if(arr[j]>arr[j+1]){t = arr[j];arr[j] = arr[j+1];arr[j+1] = t;}}}fp = fopen("data.txt","w+");for(i = 0;i<10;i++){fprintf(fp,"%d ",arr[i]);}// 关闭文件 fclose(fp);return(0);
}

4、C语言–求和

4、编写程序:实现计算2/1+3/2+5/3+8/5…的和,分子是分母与分子之和,分母是上一个分式的分子。

// 2/1 + 3/2 + 5/3 + 8/5……/*
解题思路:
元素求和,分子是分母与分子之和,分母是上一个分式的分子。
*/
# include <stdio.h>
int main()
{// n项求和int n;double sum = 0.0;double dividend; // 分子double divisor;  // 分母 int i;double t;		// 中间变量,用于暂时存储数据; printf("输入求和的项数:");scanf("%d",&n); // 分字分母初始化 dividend = 2;divisor = 1;for(i = 1;i<=n;i++){sum += dividend/divisor;t = dividend;dividend = dividend+divisor;divisor = t;} printf("%f\n",sum);return 0;} // 2、1+ 1/2 + 1/3 +1/4…… # include <stdio.h>int main()
{// n相求和// 1+ 1/2 + 1/3 +1/4…… double i;int n;double sum = 0.0;printf("请输入求和项数:"); scanf("%d",&n);for(i = 1;i<=n;i++){sum += 1/i;} printf("n相求和为:%f",sum);return 0;} 

5、数据结构-稀疏数组

5、已知一个6*5稀疏矩阵如下所示,

(1) 写出它的三元组线性表;

i 行标j 列标data 元素值
041
21-1
34-2
405
527

(2) 给出三元组线性表的顺序存储表示。

// 三元组的结构体
typedef struct Triple{int data;   // 元素值 int i;      // 行号 int j;      // 列号 
}Triple; // 三元组线性表的顺序存储 
typedef struct TripleNode{int i;     // 行号 int j;     // 列号 int nums;  // 非零元素个数 Triple dataSum[MaxSize];  // 矩阵在三元组中的存储 
}TripleNode; 

6、数据结构–二叉排序树

6、设有一个输入数据的序列是 { 46, 25, 78, 62, 12, 80 }, 试画出从空树起,逐个输入各个数据而生成的二叉搜索树。

7、数据结构-图生成树

7、对于图6所示的有向图若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号从小到大的次序链接的,

试写出:

(1) 从顶点①出发进行深度优先搜索所得到的深度优先生成树;

(2) 从顶点②出发进行广度优先搜索所得到的广度优先生成树;

8、数据结构–图

8、已知一个图的顶点集V和边集E分别为:

V={1,2,3,4,5,6,7};

E={<2,1>,❤️,2>,❤️,6>,<4,3>,<4,5>,<4,6>,<5,1>,<5,7>,<6,1>,<6,2>,<6,5>};

若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号从小到大的次序链接的,按主教材中介绍的拓朴排序算法进行排序,试给出得到的拓朴排序的序列。

9、算法阅读–质数+BFS

9.1 算法阅读 – 判断传入的数是不是质数

/*判断传入的数是不是质数*/
int Prime(int n)
{  int i=1;int x=(int) sqrt(n);while (++i<=x){if (n%i==0) break;if (i>x){return 1;}else{return 0;}}
} 

(1) 指出该算法的功能;判断传入的 n 是不是质数

(2) 该算法的时间复杂度是多少? O(n^1/2)

9.2写出下述算法的功能:从初始点 i 开始出发,广度优先搜索由邻接表所表示的图

/*从初始点 i 开始出发,广度优先搜索由邻接表所表示的图*/
void AJ(adjlist GL, int i, int n)
{Queue Q;InitQueue(Q);cout<<i<<' ';visited[i]=true;QInsert(Q,i);while(!QueueEmpty(Q)) {int k=QDelete(Q);  edgenode* p=GL[k];  while(p!=NULL){int j=p->adjvex;  if(!visited[j]){  cout<<j<<' ';visited[j]=true;QInsert(Q,j);}p=p->next;  }}
}

10、算法填空–二分查找

10、算法填空(共8分)

// 如下为二分查找的非递归算法,试将其填写完整。Int Binsch(ElemType A[ ],int n,KeyType K){int low=0;int high=n-1;while (low<=high){int mid=_________(low+high)/2_________;if (K==A[mid].key)  return mid;    //查找成功,返回元素的下标else if (K<[mid].key) ________high = mid -1_______;     //在左子表上继续查找else ______row = mid + 1_______;    //在右子表上继续查找}return -1;    //查找失败,返回-1}

11、数据结构–删除头结点

编写算法(共8分)

HL是单链表的头指针,试写出删除头结点的算法。

ElemType DeleFront(LNode * & HL)

/*
解题思路: 设置一个p指针指向头结点的下一个结点,一个u指针表示待删除结点,
先将p赋值给u,p向后移,然后将HL指向新的头结点p 
*/ // 单链表结构定义 
typedef struct LNode{ELemType data;struct LNode *next;
}LNode,*LinkList;// HL是头指针 
ELemType DeleFront(LNode *&HL){LNode *p = HL->next; // p指向头结点 LNode *u;     // 待删除结点 ElemType x;u = p;p = p->next;   // p 向后移 HL->next = p;  // HL指向新的头结点 x = u->data;free(u);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GitHub和Gitee的区别以及具体使用

文章目录 GitHub和GiteeGitHub和Gitee区别GitHub的使用Gitee的使用 GitHub和Gitee GitHub和Gitee区别 速度不同&#xff1a;GitHub位于美国&#xff0c;而Gitee位于中国。这意味着在中国使用Gitee可能会有更快的访问速度和更好的稳定性。如果我们希望体验Git飞一般的速度&…

Mysql如何确定执行计划是最优开销?Mysql优化器!

1. 什么是 MySQL 优化器&#xff1f; MySQL 优化器是 MySQL 中的一个核心组件。MySQL 优化器的主要职责在于确定查询的执行计划。在数据库中&#xff0c;同样的查询可以有多种不同的执行方式&#xff0c;如使用不同的索引&#xff0c;使用不同的连接顺序等。每种执行方式都有其…

抛硬币有连续x次正面的期望

首先来看期望的基本公式 其中x是抛x次&#xff0c;p是在抛第x次后出现连续正面的概率 先来看出现1次正面的期望 按照公式来算是 抛1次 1/2的概率 抛2次 1/4的概率 抛3次 1/8的概率... 我们可以写一个程序试一下 signed main() {ios_base::sync_with_stdio(0); cin.tie(0…

Python学习基础笔记七十九——Socket编程2

应用消息格式&#xff1a; 为什么要定义消息格式&#xff1f; 我们发送的消息就是要传递的内容&#xff0c;比如字符串。 我们在企业中开发的程序通讯&#xff0c;消息往往是有格式定义的。消息格式的定义可以归入OSI网络模型的表示层。 比如&#xff1a;定义的消息包括消息…

自然语言处理---Self Attention自注意力机制

Self-attention介绍 Self-attention是一种特殊的attention&#xff0c;是应用在transformer中最重要的结构之一。attention机制&#xff0c;它能够帮助找到子序列和全局的attention的关系&#xff0c;也就是找到权重值wi。Self-attention相对于attention的变化&#xff0c;其实…

网络工程师最强入职指南

大家好&#xff0c;我是老杨。 秋招即将进入尾声&#xff0c;各位都找到心仪的工作了吗&#xff1f; 今年的春秋招的热度好像不是很高&#xff0c;而且很多网工都是在“全年找工作”的状态里持续着&#xff0c;字里行间无不透露出对行业和自身的焦虑。 毕竟“今年是未来10年…

面试算法35:最小时间差

题目 给定一组范围在00&#xff1a;00至23&#xff1a;59的时间&#xff0c;求任意两个时间之间的最小时间差。例如&#xff0c;输入时间数组[“23&#xff1a;50”&#xff0c;“23&#xff1a;59”&#xff0c;“00&#xff1a;00”]&#xff0c;"23&#xff1a;59&quo…

一种基于HTTPS实现的Web账号登录Linux桌面系统的实现方案

问题由来 客户需求计划列入支持第三方帐号系统&#xff0c;包括Web账号。需求来源是用户想要用它们的帐号直接登录Linux Deepin操作系统。一个失败的实现方案是用户以较小的成本改造帐号管理系统发布HTTP服务&#xff0c;我们开发一个PAM模块与Web服务器交互&#xff0c;数据格…

uni-app--》基于小程序开发的电商平台项目实战(七)完结篇

&#x1f3cd;️作者简介&#xff1a;大家好&#xff0c;我是亦世凡华、渴望知识储备自己的一名在校大学生 &#x1f6f5;个人主页&#xff1a;亦世凡华、 &#x1f6fa;系列专栏&#xff1a;uni-app &#x1f6b2;座右铭&#xff1a;人生亦可燃烧&#xff0c;亦可腐败&#xf…

Python Pandas数据处理作图——波尔共振实验

import matplotlib.pyplot as plt import pandas as pd from pylab import mplmpl.rcParams["font.sans-serif"] ["SimHei"]data {频率比例w/wr: [1.036, 1.030, 1.025, 1.020, 1.012, 1.007, 1.002,0.997,0.993,0.990,0.986,0.977,0.969],振幅测量值θ&…

【Java】利用反射设置属性对象

【Java】利用反射设置属性对象 文章目录 【Java】利用反射设置属性对象一、获取属性核心API二、测试代码类环境准备方法一设置属性demo方法二设置属性demo方法三设置属性demo方法四获取属性demo方法五获取属性demo 一、获取属性核心API 1 使用Class.forName设置类中属性 Clas…

安装Homebrew安装Git(Mac)

使用Homebrew安装Git&#xff08;Mac&#xff09; 1 安装Xcode 安装Homebrew之前&#xff0c;需要安装Xcode Comand Line Tools&#xff1a; xcode-select --install 2 安装Homebrew /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/mas…

学习周总结

http://t.csdnimg.cn/DKki2 http://t.csdnimg.cn/NvudJ 项目进度 做了大概的主界面&#xff0c;然后做了一个客户端和服务端的分离&#xff0c;实现了在客户端发送的信息&#xff0c;在服务端能收到&#xff1b;客户端和服务端的制作是我之前有写的一个http://t.csdnimg.cn/…

Python实战小项目分享

Python实战小项目包括网络爬虫、数据分析和可视化、文本处理、图像处理、聊天机器人、任务管理工具、游戏开发和网络服务器等。这些项目提供了实际应用场景和问题解决思路&#xff0c;可以选择感兴趣的项目进行实践&#xff0c;加深对Python编程的理解和掌握。在实践过程中&…

2023-mac brew安装python最新版本,遇见的问题和处理方式

#### 创建Python3.11.6符号链接我现在遇见这个问题了&#xff1a;python --version -bash: python: command not found 192:bin wangyang$ python3 --version Python 3.9.6 192:bin wangyang$ /usr/local/bin/python3 --version Python 3.11.6我要怎么做&#xff0c;我才可以直…

HTTP状态码

HTTP状态码&#xff1a; 当浏览者访问一个网页时&#xff0c;浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前&#xff0c;此网页所在的服务器会返回一个包含 HTTP 状态码的信息头&#xff08;server header&#xff09;用以响应浏览器的请求。 HTTP 状…

Qt耗时操作添加动画等待加载效果

Qt耗时操作添加动画等待加载效果_qt 等待动画-CSDN博客本例模拟耗时请求实现动画等待加载效果&#xff0c;采用QtConcurrent::run实现异步耗时操作&#xff0c;通过QFutureWatcher异步监测耗时操作结果的返回值做相应的动画演示。_qt 等待动画https://blog.csdn.net/qq_3666686…

leetcode 460. LFU 缓存

请你为 最不经常使用&#xff08;LFU&#xff09;缓存算法设计并实现数据结构。 实现 LFUCache 类&#xff1a; LFUCache(int capacity) - 用数据结构的容量 capacity 初始化对象 int get(int key) - 如果键 key 存在于缓存中&#xff0c;则获取键的值&#xff0c;否则返回 -…

高效访问数据的关键:解析MySQL主键自增长的运作机制!

文章目录 &#x1f34a; 主键自增长的概念&#x1f34a; 主键自增长的数据类型&#x1f34a; 主键自增长的步长&#x1f34a; 主键自增长的性能优化&#x1f389; 为什么需要主键自增长的性能优化?&#x1f389; 主键自增长的性能优化方案&#x1f4dd; 1. 调整主键自增长的步…

istio介绍(一)

1. 概念 1.1 虚拟服务 虚拟服务提供流量路由功能&#xff0c;它基于 Istio 和平台提供的基本的连通性和服务发现能力&#xff0c;让您配置如何在服务网格内将请求路由到服务 示例&#xff1a; apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata:nam…