数据结构试卷,C语言大题考试.doc_第1页
数据结构试卷,C语言大题考试.doc_第2页
数据结构试卷,C语言大题考试.doc_第3页
数据结构试卷,C语言大题考试.doc_第4页
数据结构试卷,C语言大题考试.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2012年度期末考试试卷模拟题1. 线性查找(注:指的是从数组的第一个元素开始,依次将要查找的数和数组中元素比较,直到找到该数或找遍整个数组为止。)#include stdio.hmain()int i,n,num=15,12,4,8,6,7,9,16,20,35;scanf(%d,&n);for(i=0;i10;i+)if(numi=n)printf(数据%d在数组中的位置是%d!n,n,i+1);exit(0); printf(数据不存在该数组中!n); 2、编写一程序,将字符数组S2中的全部字符复制到字符数组S1中,不用Strcpy函数。复制时0也要复制过去,0后面的字符不复制。#include stdio.h#includestring.hmain()char s180,s280;int i;printf(请输入字符串s1:);gets(s1);printf(请输入字符串s2:);gets(s2);for(i=0;istrlen(s2);i+)s1i=s2i;printf(s1=%s,s1);1. 打印杨辉三角。(10分)main()inti,j;inta1010;printf(n);for(i=0;i10;i+)ai0=1;aii=1;for(i=2;i10;i+)for(j=1;ji;j+)aij=ai-1j-1+ai-1j;for(i=0;i10;i+)for(j=0;j=i;j+)printf(%5d,aij);printf(n);2. 用递归调用求10!。#include unsigned double fact(unsigned double n) if (n=0) return 1; return n*fact(n-1);void main() printf(%d,fact(10);3.计算一个整数的绝对值方法一:/用数学函数#include#includevoid main() int a; scanf(%d,&a); printf(%dn,abs(a);方法二:/判断#includevoid main() int a; scanf(%d,&a); if(a=0) printf(%dn,a); else printf(%dn,-a);2、下面这个程序的作用是统计公元1年到公元2000年的闰年个数。判断闰年的方法是:能被400整除的年是闰年;除能被400整除的年以外,凡是能被4整除,但不能被100整除的年是闰年。其余年份是平年。#include void main () int year; printf(请输入年份:);scanf(%d,&year); if(year%4=0)&(year%100!=0)|(year%400=0)printf(此年是闰年n); else printf(此年不是闰年n);1、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中#include stdio.h#include string.hmain() int a23=1,2,3,4,5,6; int b32,i,j; printf(array a:n); /双引号里的是字符串提示信息,作用是在屏幕上显示提示 for(i=0;i=1;i+) /外循环i遍历a数组的i行 for(j=0;j=2;j+) /内循环j是在i行遍历该行所有的数组元素 printf(%5d,aij); bji=aij; /这个就是进行行列转换的关键语句 如 b21=a12 printf(n); printf(array b:n); /这个也是 for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,bij); /输出转换后b数组的结果 printf(n); 1、这个程序输入了20个数存放在一个数组中,并且输出其中最大者与最小者、,20个数的和及它们的平均值。请填空main()float i,min,max,arr20,temp,sum=0.0,avg=0.0;for(i=0;i20;i+)scanf(%d,&arri);min=arr0;max=arr0;for(i=0;imax) max=arri; if(arrimin) min=arri;ave=(float) sum/20;printf(max=%f,min=%f,sum=%f,avg=%fn,max,min,sum,avg);2. 利用指针法将两个数按从大到小的顺序输出main()int a,b,*p1,*p2,*p; printf(“input a,b:”); scanf(“%d%d”,&a,&b);p1=&b;p2=&b;if(an2) swap(pointer1,pointer2);if(n1n3) swap(pointer1,pointer3);if(n2n3) swap(pointer2,pointer3);printf(the sorted numbers are:%d,%d,%dn,n1,n2,n3);swap(p1,p2)int *p1,*p2;int p;p=*p1;*p1=*p2;*p2=p;1下面程序的功能是计算1-3+5-7+-99+100的值,请填空2以下程序的功能是:输入三个整数n1,n2,n3,按从大到小的顺序进行输出。请填空。main()intx,y,z,t;scanf(%d%d%d,&x,&y,&z);if(xy)t=x;x=y;y=t;/*交换x,y的值*/if(xz)t=z;z=x;x=t;/*交换x,z的值*/if(yz)t=y;y=z;z=t;/*交换z,y的值*/printf(smalltobig:%d%d%dn,x,y,z);题目:输出9*9口诀。1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。2.程序源代码:#includestdio.hmain()inti,j,result;printf(n);for(i=1;i10;i+)for(j=1;j10;j+)result=i*j;printf(%d*%d=%-3d,i,j,result);/*-3d表示左对齐,占3位*/printf(n);/*每一行后换行*/水仙花2.程序源代码:main()inti,j,k,n;printf(waterflowernumberis:);for(n=100;n1000;n+)i=n/100;/*分解出百位*/j=n/10%10;/*分解出十位*/k=n%10;/*分解出个位*/if(i*100+j*10+k=i*i*i+j*j*j+k*k*k)printf(%-5d,n);printf(n);【程序28】题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。2.程序源代码:age(n)intn;intc;if(n=1)c=10;elsec=age(n-1)+2;return;main()printf(%d,age(5);题目:两个字符串连接程序1.程序分析:2.程序源代码:#includestdio.hmain()chara=acegikm;charb=bdfhjlnpq;charc80,*p;inti=0,j=0,k=0;while(ai!=0&bj!=0)if(aick=ai;i+;elseck=bj+;k+;ck=0;if(ai=0)p=b+j;elsep=a+i;strcat(c,p);puts(c);1.设有一个数组,其中存放10个整数,要求找出最大的数和它的下标,并把它和数组中的第一个元素对换位置2编写程序,求两个数的最大公约数及最小公倍数,用函数完成(即求最大公约数为一个函数,求最小公倍数为一个函数完成)。1. main() int i, k, max, t, a10= 2, 3, 9, 8, 6, 7, -5, 0, 10, 1; max=a0;for(i=0; imax) max=ai; k=i; t=a0; a0=max; ak=t;printf(max=%d, k=%d,max, k);for(i=0; iu) t=u; u=v; v=t;while( (r=u%v)!=0) u=v;v=r; return (v);int lcd(int u,int v, int h)return (u*v/h);1下面程序的功能是计算1-3+5-7+-99+100的值,请填空。 main() int i,t=1,s=0; for(i=1;i=101;i+=2) _; s=s+t;_; printf(“%dn”,s); t=t*it=-t/i1有一函数:编一程序,对于从键盘输入的x值求出满足函数关系的Y值。main() int x,y; scanf(“%d”,&x); if (x=1&x=10) y=2*x-1; printf (“x=%d y=2*x-1=%dn”, x, y); else y=3*x-11; printf (“x=%d y=3*x-11=%dn”, x, y);2 设有一个已按从大到小的顺序排好的数列存放在一维数组中,现输入一个数,仍按原来的排序规律将其插入到数组中,试编程。main ()int a11=9,8,7,6,5,4,3,2,1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论