台州城乡建设规划网站,一见钟情 网站,福建网站建设有限公司,虹口上海网站建设1、C语言–求和 1、展开式求和。输入一个实数x#xff0c;计算并输出下式的和#xff0c;直到最后一项的绝对值小于0.00001.计算结果保留2位小数#xff0c;试编程。 S x x/2#xff01; x/3#xff01; … /*
算法思想#xff1a;定义一个求阶乘的函数fact(),
头文件调…1、C语言–求和 1、展开式求和。输入一个实数x计算并输出下式的和直到最后一项的绝对值小于0.00001.计算结果保留2位小数试编程。 S x x²/2 x³/3 … /*
算法思想定义一个求阶乘的函数fact(),
头文件调用math.h函数库pow()函数求次幂fabs()函数取绝对值
直到最后一项的绝对值小于0.00001则输出求和结果结果保留两位小数
*/
#includestdio.h
#includemath.h// 求阶乘
int fact(int n){int i,sum1;for(i1;in;i){sumsum*i;}return sum;
}int main(){int a,n,i;double x,result,s0;scanf(%lf,x);for(i1;(pow(fabs(x),i)/fact(i))0.00001;i){resultpow(x,i)/fact(i);sresult;}printf(s%.2lf,s);return 0;
}2、C语言–元素移动 2、有n个整数使前面各数顺序向后移动m个位置移出的数再从头移入编得一个函数实现以上功能在主函数中输入n个整数 并输出调整后的n个数。 # includestdio.h/*
解题思路
定义一个数组t存放传入的数组A,然后跟据移动的情况从t中取出元素从新放回A中
remove(*A,5,3)假设有5个元素向后移动3位
A{1,2,3,4,5} A{3,4,5,1,2}
首先就是将t中下标为 5-3 2 的元素一次存放到A中
然后将剩余的元素放入A中
*/// 元素移动的方法
void remove(int *A,int n,int m) { // n表示元素个数m表示移动几位int t[100]; // 用于存储A[]中的元素 int i;for(i0; in; i) { // 将A中的元素全部存储到t中 t[i] A[i];}for(i 0 ; im; i) { // 将t 中 下标n-m的元素存放到A中 A[i] t[n-mi];}for(i m; in; i) { // 将剩余的元素存放到A中 A[i] t[i-m];}for(i 0; in; i) { // 遍历 printf(%d ,A[i]);}
}int main() {int i,x,num;scanf(%d,num);int A[num];for(i 0; inum; i) {printf(请输入第%d个元素,i1);scanf(%d,x);A[i] x;}printf(移动后的元素序列);remove(A,num,3);return 0;
}3、C语言-文件操作 3、将C盘根目录下文件from.txt的内容复制到to.txt文件中to.txt与from.txt在同一目录。 /*
解题思路首先以只读的方式打开文件from.txt,然后以写的方式打开文件to.txt
使用fgetc()函数将文件from.txt里面的字符一个一个读取出来然后用fputc()函数将读取出的文件写入to.txt中
*/# include stdio.h
int main()
{// 文件复制FILE *fp1,*fp2;char ch;// 打开文件 fp1 fopen(from.txt,r);if(fp1 NULL){printf(文件打开失败\n); } fp2 fopen(to.txt,w);if(fp2 NULL){printf(文件打开失败:\n); }// 将读取出来的文件写入 to.txt 中 while((ch fgetc(fp1)) ! EOF){fputc(ch,fp2);}// 文件关闭 fclose(fp1);fclose(fp2); return 0; } 4、C语言–复数计算 4、要求设计函数完成两个复数相乘的算法。在主函数中输入两个复数计算后输出乘积结果 /*
解题思路
复数的运算 i*i -1
abi* (cdi) a*c a*di- b*d b*ci
*/
//复数的结构体定义如下
struct Complex{float real;float imag;
}Complex;
//要求设计函数完成两个复数相乘的算法。在主函数中输入两个复数计算后输出乘积结果。Complex Mul(Complex c1,Complex c2){Complex product;product.real c1.real*c2.real - c1.imag*c2.imag; // 乘积以后的虚部 i*i -1product.imag c1.imag*c2.real c1.real*c2.iamg; // 虚部return product;
}5、数据结构 5、下面程序段的功能是建立二叉树的算法请在下划线处填上正确的内容。 typedef struct node{
int data;
struct node *lchild;
____struct node *rchild____;
}bitree;
void createbitree(bitree *bt) {
scanf( “%c”,ch);
if(ch#)
____bt-data ch_______;
else {
bt(bitree*)malloc(sizeof(bitree));
bt-datach;
___createbitree(bt-lchild)_____;
createbitree(bt-rchild);
}
}6、数据结构 6、建立链表 typedef struct node {
int data;
struct node *next;
} lklist;
void lklistcreate(_____lklist___ *head ) {
for (i1;in;i) {
p(lklist *)malloc(sizeof(lklist));
scanf( “%d”,(p -data));
p-next0;if(i1)
headqp;
else {
q-nextp;
______q p______;
}
}
}
7、数据结构–链表合并 7、实现链式结构上合并排序的算法 # includestdio.h//单链表的定义
typedef struct LNode {ELemType data;LNode *next;
} LNode,*LinkList;/*
将两个递增有序的链表A,B合并成一个递增有序的链表C解题思路假设A,B带有头指针定义pa,pb指针分别指向A,B的下一个结点
运用尾插法先将AB中较小的元素插入C中实现整体按元素值递增有序
因为AB链表中的结点个数不一样
所以当A中的结点数更少时 将B中的元素依次加入C中
反之则将A中的元素依次加入C中
*/
void Merge(LNode A,LNode B,LNode C) {LNode *pa A-next;LNode *pb B-next; LNode *pc C;while(papb) { if(pa-data pb-data) { // 运用尾插法将小的元素率先加入C链表中pc-next pa;pc pa;pa pa-next;} else {pc-next pb;pc pb;pb pb-next;}}while(pa) {pc-next pa;pc pa;pa pa-next;}while(pb) {pc-next pb;pc pb;pb pb-next;}
}8、数据结构–二叉树查找 8、实现在二叉树中查找结点x的算法 # includestdio.h/*
解题思路跟据二叉树的先序遍历进行改造传入该二叉树和要查找的值
先比较根节点是不是寻找的目标结点如果是就返回结点不是就寻找递归寻找左子树和右子树
直到二叉树全部查找完
*/// 二叉树的结构定义
typedef struct BiNode{ELemType data;struct BiNode *lchild;struct BiNode *rchild;
}BiNode,*BiTree; BiNode *find_x(BiTree Bt,ELemType x){while(Bt){if(Bt-data x){return Bt;}*find_x(Bt-lchild,x);*find_x(Bt-lchild,x);}
}9、数据结构–堆排序 9、关键字序列k1,k2,k3,…,kn-1是堆写出将k1,k2,k3,…,kn-1,x调整为堆的算法 # includestdio.h
/*
解题思路堆排序的思路
以大根堆为例把关键字看成一颗完全二叉树根节点(堆顶元素)就是整个序列的最大值输出堆顶元素
堆结构被破坏然后进行调整将最大的元素交换到堆顶
从n/2开始依次交换
*/
void adjustHeap(ELemType A[],int len,int k) {int i;A[0] A[k];// A[0] 暂存子树的根节点for(i 2*k; ilen; i*2) { // 沿K较大的子结点向下筛选if(ilen A[i]A[i1]){i; // 取K较大的子节点下标 }if(A[0]A[i]){ // 筛选结束 break;}else{A[k] A[i]; // 将A[i] 调整到双亲结点上 k i; // 修改 k 值以便继续向下筛选 } }A[k] A[0]; // 筛选结点放入最终位置
}10、数据结构–最小生成树 10、给一组数画邻接矩阵和邻接表写出prim和克鲁斯卡尔的最小生成树