ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:23.49KB ,
资源ID:9850072      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9850072.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(春C语言上机考试题8套.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

春C语言上机考试题8套.docx

1、春C语言上机考试题8套2007春C语言上机考试题8套发表时间:2007-10-19 2007年(春)上机试卷(01)一、改错题(18分)程序功能 下列程序中函数fun的功能是: 首先将s数组中的字符串按以下规则复制到t数组:对于下标值为偶数位置上的字符复制n次(n=下标值+1),对于下标值为奇数位置上的字符只复制一次;其次将t数组中的字符串按字符编码从小到大的顺序排序。测试数据与运行结果当s中的字符串为“abcdefg”时,程序运行结果应为“abcccdeeeeefggggggg”当s中的字符串为“136254”时,程序运行结果应为“123455555666”含有错误的源程序*/#includ

2、e stdio.h#include conio.hvoid fun(char *s,char *t)int i,j,k,n=0; char temp;for(i=0;si!=0; +i) if(i%2=0) for(k=0;ki+1;+k) tn=si; n+; else tn=si;tn=0;for(i=0;in-1;i+)k=i; for(j=0;jn;j+) if(tjtk) k=j; if(k!=i) temp=ti; ti=tk; tk=temp; main()char s20,t100;printf(nPlease enter string s:); gets(s);fun(s);

3、printf(The result is: %s,t);getch();/*二、编程题(22分)程序功能 验证对于任意一个不超过9位的自然数按下列步骤经过有限次的变换得到的新数最终转换成123并(1)统计该数中偶数数字的个数a(0被当作偶数对待),该数中奇数数字的个数b,该数的总位数c。(2)用a,b,c按以下规则组成一个新数:当a!=0时,a为百位,b为十位,c为个位;当a=0时,b为百位,a为十位,c为个位。(3)当这个新数不等于123时,对这个新数重复上述操作。经过多次重复,新数最终转换成123。数学上称123为陷阱数。编程要求1、编写函数int fun(long n,long a),对

4、给定的一个长整型数n根据上述规则作变换,直到新生成的数等于123。在转换过程中,把n及转换过程中生成的所有数依次保存到数组a中,函数返回a数组中数据个数。2、编写main函数,从键盘输入n的值,调用函数fun判断n是否转换成123,将n及转换过程中生成的所有数依次输出到屏幕并用写文件函数保存保存到结果文件myf2.out,最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。测试数据与运行结果当n=12345678时输出结果为: 12345678,448,303,123 my exam number is :考生本人准考证号字符串2007年(春)上机试卷(02)一、改错题(18分)

5、程序功能 找到并输出2100之间的所有互逆素数对。互逆素数对:若一个素数的反序数也是素数,则称该素数和其反序数为互逆素数对。例如,13是素数,13的反序数31也是素数,故(13,31)是互逆素数对。算法提示:函数prime的功能是先用筛选法求出保存在a指向的结构数组元素的成员i中2n范围内的所有素数,再从中选出大于11的互逆素数对。存放互逆素数对的方法是:将互逆素数对分别存放于同一结构数组的i和flag成员中。例如,13和31是互逆素数对,故a13.i=13,a13.flag=31;a31.i=31,a31.flag=13。测试数据与运行结果运行结果2 3 5 7 11 13 17 19 23

6、 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 9713, 3117, 7131, 1337, 7371, 1773, 3779, 9797, 79含有错误的源程序#include#define N 101struct PR int i;int flag; ;void prime(struct PR a,int n) int i,j; for(i=2;isqrt(n);i+) if(ai.i) for(j=i+1;jn;j+) if(aj.i & aj.i%ai.i=0) aj.i=0; for(i=12;i=n;i+) if(ai.i) int k

7、=i,s=0; while(k) s=s*10+k%10;k/=10; if(as.i) ak.flag=i;ai.flag=k; main() struct PR aN=0;int i; clrscr(); for(i=2;iN;i+) ai=i; prime(a,N); for(i=2;iN;i+) if(ai.i) printf(%3d,ai.i); printf(n); for(i=10;iN;i+) if(ai.flag) printf(%4d,%4dn,ai.i,ai.flag); getch();要求:1、将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系

8、对程序中的错误进行修改。2、改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。3、改正后的源程序(文件名myf1.c)保存在考试软盘的根目录中供阅卷使用,否则不予评分。二、编程题(22分)程序功能字符串变换编程要求1 编写函数void conv(char *ss),其功能是:从左到右依次扫描字符串ss,把小写字母o左边的所有字符移到该串的右边,并把该小写字母o删除,继续扫描字符串ss并做上述操作,直到字符串ss中所有的小写字母o被删除为止。2 编写main函数,声明一个长度为80的字符数组并用测试数据初始化该数组,调用

9、conv函数对数组中的字符串作上述变换,将变换后的结果字符串输出到屏幕并用写文件函数保存到结果文件myf2.out中,最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。测试数据与运行结果测试数据:You can create an index on any field.输出结果:n any field.Yu can create an indexMy exam number is: 考生本人准考证号字符串要求1 源程序文件名必须取为myf2.c,输出结果文件名必须取为myf2.out。2 数据文件的打开、使用和关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。3 源程序文件

10、和运行结果文件均须保存在考试盘的根目录下,供阅卷用。4 不要复制扩展名为OBJ和EXE的文件到考试盘上。2007年(春)上机试卷(03)一、改错题(18分)程序功能 验证:在72000之间的所有素数中存在这样的两个素数,它们的差恰好是1898。算法提示:main函数先将72000之间的所有素数放入a数组中,然后调用fun 函数验证命题。若命题成立,则fun函数将找到的两个素数所在的数组元素下标保存到x和y指向的两个变量中,fun函数返回1,否则返回0。main函数根据fun函数的返回值,输出满足条件的这两个素数,或输出“not found!”。测试数据与运行结果运行结果为:1951-53=18

11、98含有错误的源程序#include#includeint prime(int n) int i; for(i=2;i=n/2;i+) if(n%i=0) return 0; else return 1;int fun(int a,int n,int *x,int *y) int i,j; for(i=0;in-1;i+) for(j=1;jn;j+) if(aj-ai=1898) x=i,y=j; return 1; return 0;main() int a1000=0;int i,k=0,flag,m,n; for(i=7;i2000;i+=2) if(prime(i) ak+=i; f

12、lag=fun(a,k,m,n); if(flag) printf(%d-%d=%dn,an,am,an-am); else printf(not found!n); getch();要求:1、将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。2、改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。3、改正后的源程序(文件名myf1.c)保存在考试软盘的根目录中供阅卷使用,否则不予评分。二、编程题(22分)程序功能以矩阵的行作为排序的交换单位,使得排序后的矩阵按指定列的元素

13、值递减有序。编程要求1编写函数void sort(int x4,int n,int col)。函数功能:对x指向的二维数组(该数组中保存了一个n4矩阵)以行作为交换单位,按照下标为col的列元素值做递减排序。2编写main函数。函数功能:声明一个3行4列二维数组并用测试数据初始化该数组,调用 sort 函数对该数组中保存的矩阵按第3列(列下标为2)排序,将排序后二维数组中的矩阵输出到屏幕并用写文件函数保存到结果文件myf2.out中。最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。测试数据与运行结果测试数据: 101 80 60 90 102 70 90 50 103 60

14、70 80运行结果(按第3列排序后):102 70 90 50103 60 70 80101 80 60 90My exam number is: 考生本人准考证号字符串要求1 源程序文件名必须取为myf2.c,输出结果文件名必须取为myf2.out。2 数据文件的打开、使用和关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。3 源程序文件和运行结果文件均须保存在考试盘的根目录下,供阅卷用。4 不要复制扩展名为OBJ和EXE的文件到考试盘上。2007年(春)上机试卷(04)一、改错题(18分)程序功能 下列程序中fun函数的功能是:从键盘接收若干个字符串(不超过10个),将它们依次连接并保

15、存到string数组中,直到输入的字符串为“done”为止(不连接字符串“done”)。统计连接的字符串个数并存放到n指向的变量中。main函数中首先将字符串“0422400110”存储到结构变量str的成员number中,然后调用fun函数,把连接的字符串个数存放结构变量str的count成员中,最后将string数组起始地址保存到结构变量str的string成员中。测试数据与运行结果 输入的字符串依次为:abxyz1234done 代表回车 输出结果为:0422400110,3 abxyz1234含有错误的源程序#include stdio.h#include string.h#inclu

16、de conio.htypedef structchar number12; char *string; int count; CAR;char string100;void fun(int *n)char p10,*strp; int limit=0; strp=string; gets(p); while(limit10) if(p=done) break; strcat(strp,p); strp+=strlen(p); *n+; gets(p); limit+; main()CAR str=0,0,0;str.number=0422400110;fun(str.count);str.s

17、tring=string;printf(%s,%dn,str.number,str.count); printf(%sn,str.string);getch();二、编程题(22分)程序功能 求级数前n项之和编程要求1、编写函数double(fun(double eps),其功能是计算下列正项级数的部分和,当级数某项的值小于eps时,函数返回计算结果。 s=1/2+2/2*3+3/2*3*5+.+n/p1*p2*p3*.*pn 其中:pi(i=1,2,3,.n)是500以内素数序列中的第i个素数。 500以内素数序列为:2,3,5,6,11,13,17,.2、编写main函数,接收键盘输入的e

18、ps值,调用函数fun计算级数前n项的和,将计算结果输出到屏幕并用写文件函数保存到结果文件myf2.out中,最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。测试数据与运行结果测试数据: 键盘输入1e-7输出结果:s=0.954760 my exam number is:考生本人准考证号字符串要求1、源程序文件名必须取为myf2.c,输出结果文件名为myf2.out。2、数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。3、源程序文件和运行结果文件均需保存在考试盘根目录中供阅卷使用。4、不要复制扩展名为obj和exe的文件到考试盘上。2007年(春)

19、上机试卷(05)一、改错题(18分)程序功能下列程序完成对n阶矩阵(n为奇数)的变换,将原矩阵左下角n/2阶子块中的数据与矩阵右上角n/2阶子块中的数据作交换,显示交换过子块后的n阶矩阵。测试数据与运行结果n=5原矩阵:0 1 2 3 45 6 7 8 910 11 12 13 1415 16 17 18 19 20 21 22 23 24变换后的矩阵:0 1 2 15 165 6 7 20 2110 11 12 13 143 4 17 18 19 8 9 22 23 24含有错误的源程序#include #include #define M 10void swap(int x,int y)i

20、nt t;t=*x; *x=*y; *y=t; void change(int aM,int n)int i,j,c;for(i=0;in/2;i+) for(j=n/2+1;jn;j+) swap(&aij,&ai+n/2+1j-n/2+1);void print(int aM,int n)int i,j;printf(n);for(i=0;in;i+) for(j=0;jn;j+) printf(%5d,aij); printf(n); void main()int aMM,i,j,n=0;printf(nINPUT N (N=10|n%2=0) printf(Cant do it );

21、getch(); return; for(i=0;in;i+) for(j=0;jn;j+) aij=i*n+j;print(a,n);change(a);print(a,n);getch();二、编程题(22分)程序功能 解密 密文由若干个8进制数形式的字符串组成,相邻两个8进制数形式的字符串之间用字符8分隔,每个8进制数形式的字符串对应的8进制数是一个字符的ASCII码,ASCII码对应的字符是解密后的明文字符。 例如:密文为“10181248124810181038113840810181248408104810181278116” 则明文为“ATTACK AT DAWN”编程要求1、编

22、写函数void fun(char *s,char *c),其功能是将s指向的密文解密,并将明文保存到c指向的数组中。2、编写main函数,声明字符数组s和c,用测试数据初始化s数组,调用函数fun对s数组中的密文解密,将解密后得到的明文输出到屏幕并用写文件函数保存到结果文件myf2.out中,最后将学生本人的准考证号字符串也保存到结果文件myf2.out中。测试数据与运行结果测试数据:10181248124810181038113840810181248408104810181278116输出结果:ATTACK AT DAWN my exam number is : 考生本人准考证号字符串20

23、07年(春)上机试卷(06)一、改错题(18分)程序功能 合并两个整系数多项式,输出合并后的多项式。main函数中将两个多项式中每一项的系数和指数分别保存于结构数组a和b中,结构的成员a用于存入多项式中某一项的系数,成员n用于存入该项的指数,结构数组a和b存储的数据按降幂次序排列。merge函数合并存储在a、b数组中的两个多项式,并将合并后多项式中每一项的系数和指数保存于C数组中。测试数据与运行结果输入两个多项式分别是5x6-4x4-7x3+1 和 4x4+3x3+5x2+4x则输出结果为+5x6-4x3+5x2+4x1+1含有错误的源程序#include#includestruct pint

24、 a;int n;int merge(struct p *a,struct p *b,struct p *c) int i=0,j=0,k=0; while(ai.a!=0 & bj.a!=0) if(ai.n=bj.n) if(ai.a+bj.a=0) ck.a=ai.a+bj.a; ck.n=ai.n; k+;i+;j+; else i+,j+; if(ai.nbj.n) ck+=ai+; else if(ai.nbj.n) ck+=bj+; if(ai=0) while(bj.a!=0) ck+=bj+; else while(ai.a!=0) ck+=ai+; return k;mai

25、n() struct p a20=5,6,-4,4,-7,3,1,0; struct p b20=4,4,3,3,5,2,4,1,c20=0; int i,k; k=merge(*a,*b,*c); for(i=0;ik;i+) printf(%+d,ci.a); if(ci.n=0) printf(n); else printf(x%d,ci.n); getch();要求:1、将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。2、改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去

26、整条语句。3、改正后的源程序(文件名myf1.c)保存在考试软盘的根目录中供阅卷使用,否则不予评分。二、编程题(22分)程序功能查找指定范围内的互满数对。如果数a的真因子之和等于数b,且数b的真因子之和等于数a,则称(a,b)为一对互满数。例如,(220,284)是一对互满数,因为220的真因子之和为284(1+2+4+5+10+11+20+22+44+55+110=284),且284的真因子之和为220(1+2+4+71+142=220)编程要求1 编写函数int ampairs(int m,int n,int a2),其功能是找出m,n之间的所有互满数对,并将它们依次保存到二维数组a中,函数返回找到的互满数对的个数。2编写main函数。从键盘输入m和n的值,调用函数ampairs查找m,n范围内的互满数对,把找到的互满数对输出到屏幕并用写文件函数保存到结果文件 myf2.out中,最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。测试数据与运行结果测试数据: m=200,n=10000输出结果:(220,284)(1184,1210)(2620,2924)(5020,5564)(6232,6368)My exam number is: 考生本人准考证号字符串要求1 源程序文件名必须取为myf2.c,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1