您好,欢迎来到客趣旅游网。
搜索
您的当前位置:首页东北大学2014考研程序题

东北大学2014考研程序题

来源:客趣旅游网
c语言 1.

韩信点兵:卫兵排成5列多1人,6列多5人,7列多4人,11列多10人,求最小人数。 #include \"stdio.h\" void main() {

int n=0; while(n) {

if(n%5==1 && n%6==5 && n%7==4 && n%11==10) { printf(\"%d\ break;} n++; } } 2.

输入字符序列,统计大小写字符个数,并将大写字符反向输出

基本思想:检查每一个字符,大些则变量增1,并记入字符数组,小写则另一变量增1,检查完毕,输出

两变量值,反向输出数组内容。 #include \"stdio.h\" void main(){

char str1[100],str2[100]; char *p=str1,*q=str2; int big=0,small=0; gets(str1); while(*p) {

if(*p>=A&&*p<=Z) {big++;*q=*p;q++;} if(*p>=a&&*p<=z) {small++;} p++; }

printf(\"大写字母反序为:\\n\"); for(;q>=str2;q--) printf(\"%c\

printf(\"大写字符个数: %d\ printf(\"小写字符个数: %d\} 3.

给定一个二维数组,给出满足行最大,列最小的元素

基本思想:检查每一行,找出当前行的最大元素,检查该元素所在的列,看它是否为最小元素。如果

是输出元素值,终止循环。 void GetMs(int a[m][n]) {

int i,j,k,l,tag; for(i=0;ifor(j=0;jif(a[i][j]>a[i][k]) k=j;tag=1; //行最大元素a[i][k] for(l=0;lif(a[l][k]>a[i][k]) {tag=0;break;}

if(tag=1) {printf(\"所求行最大,列最小元素为 %d\ } }

数据结构 1.

线性表按顺序存于内存当中,用最少时间把所有负数移动到正数之前 基本思想:改造快速排序算法,每比较不是与轴元素比较,而是与0比较 void Sort(a[n]) {

int high=n,low=1; int s=a[1];

while(high>low){

while(a[high]>0) high--; a[low]=a[high];

while(a[low]<0) high++; a[high]=a[low]; }

a[low]=s; } 2.

求二叉树中以值为x的结点为根的子树深度

基本思想:找到为x的结点,对它调用求树深度的函数 int Depth(BiTree &T) {

if(T==NULL) return 0;

if(T->lchild==NULL && T->rchild==NULL) return 1; else{

i=Depth(T->lchild); j=Depth(T->rchild); return (i>j?i:j)+1;

} }

int GetXDepth(BiTree &T,int x) {

if(T->data==x) return Depth(T); else{

GetXDepth(T->lchild,x); GetXDepth(T->rchild,x); } } 3.

无向图使用邻接表结构,输出从u到v的长度为len的简单路径

基本思想:使用深度优先搜索,递归调用,每次调用的参数为len-1,当len为0,而且找到了v,输出队 列元素

void FindPath(Graph &G,int u,int v,int path[],int d,int len) {

int w,i; ArcNode *p d++;

path[d]=u;

if(u==v && len==0) printf(path[]);

for(p=G.vertices[u].firstarc;q!=NULL;p=p->nextarc) {

w=p->adjvex;

if(visited[w]==0)

FinePath(G,w,v,path[],d,len-1); }

visited[u]=0; }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- kqyc.cn 版权所有 赣ICP备2024042808号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务