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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(省二级《C程序设计》上机考试练习.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

省二级《C程序设计》上机考试练习.doc

1、上机程序调试及程序设计练习 上机程序调试及程序设计练习 一、程序填空 (1) 找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1 #include #include void main() { int i,a,b,c; for(i=100;i<=999;i++) { a=i/100; _______1_______ // b=i%100/10; c=i%10; if (________2________) // a*a*a+b*b*b+c*c*c = = i printf("%d

2、is a Armstrong number!\n",i); } } (2) 输入1个整数后,输出该数的位数。(例:输入3214则输出4,输入-23156则输出5)。 #include void main() { int n,k=0; scanf("%d",&n); while( _____1_____ ){ // n!=0 k++; _____2_____; // n=n/10 } printf("%d\n",k); } (3) 求输入

3、的整数各位数字之和,如输入234则输出9,输入-312则输出6。 #include #include void main() { int n,s=0; scanf("%d",&n); ______ 1 ______ // if (n<0) n=-n; while(n!=0) { ______ 2 ______ // s+=n%10; n=n/10; } printf("%d\n",s); } (4) 调用函数f,将一个整数首尾倒置。例如:若程序输入12345

4、则输出54321;若程序输入-34567,则输出-76543。 #include #include long f(long n) { long m,y=0; m=fabs(n); while(m!=0) { y=y*10+m%10; ____1____ // m=m/10 ; } if(n>=0) return y; else _____2_____ // return -y ; } void main() { pri

5、ntf("%ld\t",f(12345)); printf("%ld\n",f(-34567)); } (5) 调用函数f,从字符串中删除所有的数字字符。 #include #include #include void f(char *s) { int i=0; while(s[i]!='\0'){ if(isdigit(s[i])) ____1____(s+i,s+i+1); // strcpy ___2___ i++;} // else

6、} void main() { char str[80]; gets(str); f(str); puts(str); } (6) 调用find函数在输入的字符串中查找是否出现"the"这个单词。如果查到返回出现的次数,如果未找到返回0。 #include int find(char *str) { char *fstr="the"; int i=0,j,n=0; while (str[i]!='\0') { for(______1______) // j=0; j<3; j

7、 if (str[j+i]!=fstr[j]) break; if (______2______) n++; // j>=3 i++; } return n; } void main() { char a[80]; gets(a); printf("%d",find(a)); } (7) 输入的一个小写字母,将字母循环后移5个位置后输出。例如:"a"变成"f","w"变成"b"。 #include void main() { char c; c=

8、getchar(); if(______1______) // c>='a'&&c<='u' c=c+5; else if (c>='v' && c<='z') ______2______ // c=(c-'a'+5)%26+'a'; putchar(c); } (8) 将字符串s中所有的字符'c'删除。 #include void main() { char s[80]; int i,j; ge

9、ts(s); for(i=j=0; ______1______; i++) // s[i] != '\0' if(s[i] != 'c') { s[j]=s[i]; ______2______ // j++; } s[j]='\0'; puts(s); } (9) 对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。 #include #include #define f(x)

10、 x*x-5*x+sin(x) void main() { int x; float max; ______1______ // max=f(1); for(x=2;x<=10;x++) ______2______ // if (f(x)>max) max=f(x); printf("%f\n",max); } (10) 输入三个整数,按由小到大的顺序输出这三个数。 #include void swap(______1______) // int *pa,

11、int *pb { /*交换两个数的位置*/ int temp; temp = *pa; *pa = *pb; *pb = temp; } void main() { int a,b,c,temp; scanf("%d%d%d",&a,&b,&c); if(a>b) swap(&a,&b); if(b>c) swap(&b,&c); if(______2______) // if ( a>b ) swap(&a,&b);

12、 printf("%d,%d,%d",a,b,c); } (11) 调用函数f,去除数组中的负数,输入数组x[7],输出结果为:1 3 4 6 #include // 数组元素的删除 void f(int *a,int *m) { int i, j ; for(i=0;i<*m;i++) if(a[i]<0) { for(j=i--;j<*m-1;j++) a[j]=a[j+1]; _____1_____; // *m = *m-1; } } void

13、main() { int i,n=7,x[7]={1,-2,3,4,-5,6,-7}; _______2_______; // f (x, &n) ; for(i=0;i float f(float, float*, int); void main() { float b

14、[5]={1.1, 2.2, 3.3, 4.4, 5.5 }; printf("%f\n", f(1.7,b,5) ); } float f( _______1________ ) // float x, float *a, int n { float y=a[0], t=1; int i; for(i=1; i

15、数字、和其他字符出现的次数。 #include #include void main() { char a[80]; int n[3]={0}, i; gets(a) ; ________1________ // for ( i=0; a[i]!='\0'; i++) {if (tolower(a[i])>='a' && tolower(a[i])<='z') /*统计字母个数*/ n[0]++; else if (________2________) /*统计数

16、字个数*/ // a[i]>='0' && a[i]<='9' n[1]++; else n[2]++; } for(i=0;i<3;i++) printf("%d\n",n[i]); } (14) 将输入的十进制整数n通过函数DtoH函数转换为十六进制数,并将转换结果以字符串形式输出。(例如:输入十进制数79,将输出十六进制4f。) # include # include char trans(int x) { if(x<10) return '0'+x; else ______

17、1________ // return 'a'+x-10; } int DtoH(int n,char *str) { int i=0; while(n!=0) { ________2________ // str[i]=trans(n%16); n/=16;i++; } return i-1; } void main() { int i,k,n; char *str; // 注意:题目有错!str是悬挂指针。应改为: char str[80]; scanf("%d",&n); k=DtoH(n,

18、str); for (i=0;i<=k;i++) printf("%c",str[k-i]); } (15) 将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。 #include void Dec2Bin(int m) { int bin[32],j; for(j=0;m!=0;j++) { bin[j]= ______1______; // m%2 m=m/2; } for( ; j!=0; j-- )

19、 printf("%d", ______2______ ); // bin[j-1] } void main() { int n; scanf("%d",&n); Dec2Bin(n); } (16) 数列的第1、2项均为1,此后各项值均为该项前二项之和。计算数列第30项的值。 #include _______1______ // long f(int n); 或者 long f(int); void main() { printf("%ld\n",f(30

20、)) ; } long f(int n) { if( ______2______ ) // n==1 || n==2 return 1; else return f(n-1)+f(n-2); } (17) 该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。 #include struct STUDENT { char name[16]; int math; int english; int computer; int aver

21、age; }; void GetAverage(struct STUDENT *pst) /* 计算平均成绩 */ { int sum=0; sum = ______1______; // pst->math+pst->english+pst->computer pst->average = sum/3; } void main() { int i; struct STUDENT st[4]={{"Jessica",98,95,90},{"Mike",80,80,90},

22、 {"Linda",87,76,70},{"Peter",90,100,99}}; for(i=0;i<4;i++) { GetAverage(______2______); // st + i } printf("Name\tMath\tEnglish\tCompu\tAverage\n"); for(i=0;i<4;i++) { printf("%s\t%d\t%d\t%d\t%d\n",st[i].name,st[i].math,st[i].english,

23、 st[i].computer,st[i].average); } } (18) 输入m、n(要求输入数均大于0)。输出它们的最大公约数。 #include void main() { int m, n, k; while ( scanf("%d%d", &m, &n), ______1______ ); // m<=0||n<=0 for (___2___ ; n%k!=0 || m%k!=0 ; k--) ; // k=m>n?n:m printf("%d\n",

24、k); } (19) 求出a中各相邻两个元素的和,并将这些和存放在数组b中,按每行3个元素的形式输出。例如:b[1]=a[0]+a[1],……,b[9]=a[8]+a[9]。 #include void main() { int a[10],b[10],i; printf("\nInput 10 numbers: "); for (i=0; i<10;i++) /* 数组输入 */ scanf("%d", &a[i]); for (i=1; i<10; i++) b[i

25、]=______1______; /* 计算b数组中的元素 */ // a[i-1]+a[i] for (i=1; i<10; i++) { printf("%3d",b[i]); if (______2______) printf("\n"); /* 每行打印3个数据 */ // i%3= =0 } } (20) 输入整数n(n>0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。 #include void main() { int m=0,t=1,n; while( _

26、 1 ________); // scanf(“%d”,&n), n<=0 // 逗号表达式 while(!(t<=n&&t*2>=n)){ _____ 2 _____ // t=t*2; m++; } printf(“%d\n”,m); } 二、程序改错 (1) 输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。 #include #include // 注意:题目有错!应增加一行:#incl

27、ude void main() { char str[256]; int i,j,k=0,n; gets(str); n=strlen(str); for(i=0;i'z') // if (tolower(str[i])>='a' && tolower(str[i])<='z') { /********2********/ str[n]=str[i]; n++;

28、 // str[k]=str[i]; k++; } str[k]='\0'; printf("%s\n",str); } (2) 输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t后面。例如:输入"ABCD",则字符串t为"ABCDDCBA"。 #include #include void fun(char *s,char *t) { int i,sl; sl=strlen(s); for(i=0;i

29、 t[i]=s[i]; for(i=0;i

30、 (3) 运行时输入10个数,然后分别输出其中的最大值、最小值。 #include void main() { float x,max,min; int i; /******** 1 *******/ for(i=0;i<=10;i++) { // for(i=1; i<=10; i++) { scanf("%f",&x); /******* 2 ********/ if(i=1) { max=x;min=x;} // if(

31、i==1) { max=x;min=x;} if(x>max) max=x; if(x #define N 10 void main() { int i, j, min, temp ; int a[N]={5, 4, 3, 2, 1, 9, 8, 7, 6, 0 }; printf("\nThe array is:\n"); /* 输出

32、数组元素 */ for (i=0;ia[j] ) min =j; /****** 2 ******/ temp=a[min]; a[min]=a[j];

33、a[j]=temp; /*数据交换*/ // 改成 temp=a[min]; a[min]=a[i]; a[i]=temp; } printf("\nThe sorted numbers: \n"); /* 输出排序结果 */ for (i=0;i #include voi

34、d main() { float x,eps,s=1,t=1,i=1; scanf("%f%f",&x,&eps); do { /***** 1 *****/ t=-t*x/++i; // t=-t*x/i++ ; s+=t; /***** 2 *****/ } while(fabs(t)=eps); printf("%f\n",s); } (6) 运行时若输入a、n分别为3、6,则输出下列表达式的值:3+33+333+3333+33333+3333

35、33。 #include void main() { int i,a,n; long t=0; /********* 1 *******/ s=0; // long s=0; scanf("%d%d",&a,&n); for(i=1;i<=n;i++) { /******* 2 ******/ t=t*10+i; // t=t*10+1; s=s+t; } s=s*a; printf("%

36、ld\n",s); } (7) 用递归法将一个六位整数n转换称字符串。例如:输入123456,应输出字符串"123456"。 #include void itoa(long i,char *s) { if(i==0) return; /****** 1 ******/ *s = '1'+i%10; // *s=i%10+'0'; itoa(i/10,s-1); } void main() { long n; char str[7]=""; scanf

37、"%ld",&n); /****** 2 ******/ itoa(n,str+6); // itoa(n,str+5); printf("%s",str); } (8) 输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。 #include #include #include void main() { int i,n; /***** 1 *****/ struct axy { float x,y; } a;

38、 // struct axy { float x,y; } *a; scanf("%d",&n); a=(float*) malloc(n*2*sizeof(float)); for(i=0;i

39、 printf("%f,%f\n",a[i].x,a[i].y); } (9) 运行时输入n,则输出n的所有质数因子。例如:n=13860,则输出2、2、3、3、5、7、11。 #include void main() { int n,i; scanf("%d",&n); /****** 1 ******/ i=1; // i=2; while(n>1) if(n%i==0) { printf("%d\t",i); n/=i;

40、 } else /******** 2 *******/ n++; // i++; } 三、编写程序 (1) 在正整数中找出1个最小的、被3、5、7、9除余数分别为1、3、5、7的数,将该数以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中。 #include #include void main() { /*考生在这里添加代码*/ FILE *p; int i; p=fopen("Desig

41、n1.dat","w"); for( i=1; ;i++) if (i%3==1 && i%5==3 && i%7==5 && i%9==7) break; fprintf(p,"%d",i); fclose(p); } (2) 若a、b为1对亲密数,则a的因子和等于b、b的因子和等于a、且a不等于b。如:220、284是1对亲密数,284、220也是1对亲密数。在6~5000内找出所有的亲密数对,并将每对亲密数用语句fprintf( p, "%6d, %6d\n", a, b)写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。 #in

42、clude void main() { FILE *p; int a,b,c,k; p=fopen("design.dat","w"); /*考生在这里添加代码*/ for(k=6;k<=5000;k++) { b=0; c=0; for(a=1;a

43、fclose(p); } (3) 设计程序:计算字符串s中每个字符的权重值,所谓权重值就是字符在字符串中的位置值与该字符的ASCII码值的乘积。位置值从1开始依此递增。将每个字符的权重值,以格式"%d "写入到源程序目录中Paper子目录下的新建文件design.dat中。 #include #include void main() { FILE *p; int i,w; char *s="we45*&y3r#$1"; /*考生在这里添加代码*/ p=fopen("design.dat","w"); for

44、i=0;s[i]!='\0';i++) { w=(i+1)*s[i]; fprintf( p,"%d ",w); } fclose(p); } (4) 将数组a的每一行均除以该行上绝对值最大的元素,然后将a数组写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。 #include #include void main() { float a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; FILE *p; float

45、x; int i,j; /*考生在这里添加代码*/ for (i=0;i<3;i++) { x=a[i][0]; for (j=1;j<3;j++) if (a[i][j]>x) x=a[i][j]; for (j=0;j<3;j++) a[i][j]/=x; } /***添加代码结束***/ p=fopen("design.dat","w"); for(i=0;i<3;i++) { for(j=0;j<3;j++) fprintf(p,"%10.6f",a[i][j]); f

46、printf(p,"\n"); } fclose(p); } (5) z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间[1,6]的整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。 #include void main() { FILE *p; float f(float x,float y),min; int x,y,x1,y1; /*考生在这里添加代码*/ min=f(1,1); x1=y1=1; for (x=

47、1;x<=6;x++) for (y=1;y<=6;y++) if (f(x,y)

48、]的整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。 #include #include void main() { FILE *p; int x,y,x1,y1; float z,z1; /*考生在这里添加代码*/ z1=10*cos(-4)+5*sin(-2); x1=y1=0; for (x=0;x<=10;x++) for (y=0;y<=10;y++) { z=10*cos(x-4)+5*sin(y-

49、2); if (z #include #define len(x1,y1,x2,y2) sqrt((x1-

50、x2)*(x1-x2)+(y1-y2)*(y1-y2)) void main() { FILE *p; int i,j; float c,minc; float x[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65}; float y[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33}; minc=len(x[0],y[0],x[1],y[1]); /*考生在这里添加代码*/ for (i=0;i<10;i++) for (j=i+1;j<10;j++)

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服