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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言上机试题操作.docx

1、C语言上机试题操作2007年春 C语言上机 (C01)一、改错题(18分)【程序功能】下列程序中函数fun的功能是:首先将s数组中的字符串按以下规则复制到t数组:对于下标值为偶数位置上的字符复制n次(n=下标值+1),对于下标值为奇数位置上的字符只复制一次;其次将t数组中的字符串按字符编码从小到大的顺序排序。【测试数据与运行结果】当s中的字符串为“abcdefg”时,运行结果应为“abcccdeeeeefggggggg”当s中的字符串为“136254”时,运行结果应为“123455555666”【含有错误的源程序】#include stdio.h#include conio.hvoid fun

2、 (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); printf(The result is:

3、%sn, t); getch();【要求】1将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。2改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。3改正后的源程序(文件名myf1.c)保存在考试软盘的根目录中供阅卷使用,否则不予评分。二、编程题(22分)【程序功能】验证对于任意一个不超过9位的自然数按下列步骤经过有限次的变换得到的新数最终收敛到123:统计该数中偶数数字的个数a,该数中奇数数字的个数b,该数的总位数c。用a、b、c按以下规则组成一个新数:当a0时,a为百位

4、,b为十位,c为个位;当a=0时,b为百位,a为十位,c为个位。当这个新数不等于123时,对这个新数重复上述操作。经过多次重复,新数最终收敛到123,数学上称123为陷阱数。【编程要求】1. 编写函数int fun(long n,long a),对给定的一个长整型数n根据上述规则作变换,直到新生成的数收敛到123。在转换过程中,把n及转换过程中生成的所有数依次保存到数组a中,函数返回a数组中数据个数。2. 编写main函数,从键盘输入n的值,调用函数fun判断n是否收敛到123,将n及转换过程中生成的所有数依次输出到屏幕并用写文件函数保存到结果文件myf2.out,最后将考生本人的准考证号字符

5、串也保存到结果文件myf2.out中。【测试数据与运行结果】当n=12345678时,输出结果为:12345678,448,303,123当n=13579时,输出结果为:13579,505,123 my exam number is : 考生本人准考证号字符串C02一、改错题(18分)【程序功能】找到并输出2100之间的所有素数及互逆素数对。互逆素数对:若一个素数的反序数也是素数,则称该素数和其反序数为互逆素数对。例如,13是素数,13的反序数31也是素数,故(13,31)是互逆素数对。算法提示:函数prime的功能是先用筛法求出保存在a指向的结构数组元素的成员i中2n之间的所有素数,再从中选

6、出大于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 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 13, 31 17, 71 31, 13 37, 73 71, 17 73, 37 79, 97 97, 79【含有错误的源程序】#include #include #include #define N

7、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=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; for(i=2;iN;i+) ai=i; prime(

8、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中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。2改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。3改正后的源程序(文件名myf1.c)保存在考试软盘的根目录中供阅卷使用,否则不予评分。二、编程题(22分) 【

9、程序功能】字符串变换。【编程要求】1. 编写函数void conv(char *ss),其功能是:从左至右依次扫描字符串ss,把小写字母o左边的所有字符移到该串的右边,并把该小写字母o删除,继续扫描字符串ss并做上述操作,直到所有的小写字母o被删除为止。2. 编写main函数,声明一个长度为80的字符数组并用测试数据初始化该数组,调用conv函数对数组中的字符串作上述变换,将变换后的结果字符串输出到屏幕并用写文件函数保存到结果文件myf2.out中,最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。【测试数据与运行结果】测试数据: You can create an index

10、 on any field. 输出结果:n any field.Yu can create an index my exam number is : 考生本人准考证号字符串C03一、改错题(18分)【程序功能】验证:在72000之间的所有素数中存在这样的两个素数,它们的差恰好是1898。算法提示:main函数先将72000之间的所有素数放入a数组中,然后调用fun函数验证命题。若命题成立,则fun函数将找到的两个素数保存到x和y指向的两个变量中,fun函数返回1,否则返回0。main函数根据fun函数的返回值或输出满足条件的这两个素数,或输出“not found!”。【测试数据与运行结果】运行

11、结果为:1951-53=1898【含有错误的源程序】#include stdio.h#include conio.hint 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

12、=7;i2000;i+=2) if(prime(i) ak+=i; flag=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中。【测试数据与运

14、行结果】测试数据(排序前):101806090102709050103607080运行结果(按第3列排序后):102709050103607080101806090my exam number is : 考生本人准考证号字符串C04一、 改错题(18分)【程序功能】下列程序中fun函数的功能是:从键盘接收若干个字符串(不超过10个),将它们依次连接并保存到string数组中,直到输入的字符串为done为止(不连接done),统计连接的字符串个数并存放到n指向的变量中。main函数中首先将字符串0422400110存储到结构变量str的成员number中,然后调用fun函数并把连接的字符串个数存

15、入结构变量str的count成员中,最后将string数组起始地址保存到结构变量str的string成员中。【测试数据与运行结果】输入的字符串依次为:abxyz1234done (注:代表回车)输出结果为:0422400110,3 abxyz1234【含有错误的源程序】#include stdio.h#include string.h#include conio.htypedef struct char number12; char *string; int count; CAR;char string100;void fun(int *n) char p10,*strp;int limit=

16、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.string=string; printf(%s,%dn,str.number,str.count); printf(%sn,str.string); getch();【要求】1将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑

17、关系对程序中的错误进行修改。2改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。3改正后的源程序(文件名myf1.c)保存在考试软盘的根目录中供阅卷使用,否则不予评分。二、编程题(22分)【程序功能】 求级数的前n项之和。【编程要求】1. 编写函数double fun(double eps),其功能是计算当第n项的绝对值小于eps时,下列级数前n项的和,函数返回计算结果。 其中:pi(i=1,2,3,n)是500以内素数序列中的第i个素数。 500以内素数序列为:2,3,5,7,11,13,17,2. 编写main函数

18、,接收键盘输入的eps值,调用函数fun计算级数前n项的和,将计算结果输出到屏幕并用写文件函数保存到结果文件myf2.out中,最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。【测试数据与运行结果】测试数据: 键盘输入1e-7输出结果:s=0.954760 my exam number is : 考生本人准考证号字符串C05一、 改错题(18分)【程序功能】下列程序完成对n阶矩阵(n为奇数)的变换,将原矩阵左下角n/2阶子块中的数据与矩阵右上角n/2阶子块中的数据作交换,显示交换过子块后的n阶矩阵。【测试数据与运行结果】n=5原矩阵: 变换后的矩阵:【含有错误的源程序】#in

19、clude #include #define M 10void swap(int x,int y) int 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,

20、j,n=0; printf(nINPUT N (N=10|n%2=0) printf( cant do it); getch(); return; for(i=0;in;i+) for(j=0;jbj.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;main() 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=me

21、rge(*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改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。3改正后的源程序(文件名myf1.c)保存在考试软盘的根目录中供阅卷使用,否则不予评分。二、编程题(22分)【程序功能】查找指定范围内的互满数对。如果数a的真因子

22、之和等于数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范围内的互满数对,把找到的互满数对输出到屏幕并用写文件函数保存

23、到结果文件myf2.out中,最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。【测试数据与运行结果】测试数据: m=200,n=10000输出结果:(220,284) (1184,1210)(2620,2924)(5020,5564)(6232,6368) my exam number is : 考生本人准考证号字符串 C07一、 改错题(18分)【程序功能】下列程序中函数fun的功能是:在N名学生中按学习成绩从高到低的顺序排出前m名学生(m10),并将这些学生的数据存放在一个动态分配的连续存储区中,函数返回此存储区的首地址。【测试数据与运行结果】m=5时,输出结果为: A1

24、0 91 A06 90 A02 89 A04 87 A01 81【含有错误的源程序】#include stdio.h#include stdlib.h#include conio.h#define N 10typedef struct ss char num10; int s; STU;STU *fun(STU a, int m) STU bN,*t; int i,j,k; t=(STU *)malloc(m,sizeof(STU); for(i=0;iN;i+) bi=ai; for(k=0;km;k+) for(i=j=0;ibj) j=i; tk=bj; bj.s=0; return t;main() STU aN=A01,81,A02,89,A03,6

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

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