




已阅读5页,还剩90页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/*-【程序设计】-题目:用函数求一个N阶方阵右下三角元素的和(包括副 对角线上的元素)。 -*/#include #include #define N 3void wwjt(); int sum(int aN) /*Program*/ /* End */main() int aNN,i,j; for(i=0;iN;i+) for(j=0;jN;j+) aij=rand()%(10)+10; printf(%3d,aij); printf(n); printf(=n); printf(sum=%5dn,sum(a); wwjt();void wwjt() FILE *IN,*OUT; int m,n; int i33; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error); for(m=0;m3;m+) for(n=0;n3;n+) fscanf(IN,%d,&imn); o=sum(i); fprintf(OUT,%dn,o); fclose(IN); fclose(OUT);【参考代码】 int i,j,k=0; for(i=0;iN;i+) for(j=N-1-i;jN;j+) k=k+aij; return(k);/*-【程序设计】-功能:删除所有值为y的元素。数组元素中的值和y的值由 主函数通过键盘输入。-*/#include #include#include#define M 20void wwjt(); void fun(int bb,int *n,int y) /*Program*/ /* End */main() int aaM,n,y,k; printf(nPlease enter n:);scanf(%d,&n); printf(nEnter %d positive number:n,n); for(k=0;kn;k+) scanf(%d,&aak); printf(The original data is:n); for(k=0;kn;k+) printf(%5d,aak); printf(nEnter a number to deletede:);scanf(%d,&y); fun(aa,&n,y); printf(The data after deleted %d:n,y); for(k=0;kn;k+) printf(%4d,aak); printf(n); wwjt();void wwjt() FILE *IN,*OUT; int n; int i10; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error); for(n=0;n10;n+) fscanf(IN,%d,&in); fun(i,&n,3); for(o=0;on;o+) fprintf(OUT,%dn,io); fclose(IN); fclose(OUT);答案: int i,j; for(i=0;i*n;) if(bbi=y) for(j=i;j*n;j+) bbj=bbj+1; *n=*n-1; else i+; /*-【程序填空】-功能:删除字符串中的指定字符,字符串和要删除的字符均由键盘 输入。-*/#include main() char str80,ch; int i,k=0; /*SPACE*/ gets(【?】); ch=getchar(); /*SPACE*/ for(i=0;【?】;i+) if(stri!=ch) /*SPACE*/ 【?】; k+; /*SPACE*/ 【?】; puts(str); 答案(1)str (2)stri!=0 (3) strk=stri (4)strk=0/*-【程序填空】-功能:对数组 A 中的N( 0 N100)个整数从小到大进行连续编 号,输出各个元素的编号。要求不能改变数组中元素的 顺序,且相同的整数要具有相同的编号。例如:数组是: A=(5,3,4,7,3,5,6) 则输出为:(3,1,2,5,1,3,4)-*/#include main() int i,j,k,n,m=1,r=1,a2100=0 ; printf(Please enter n:) ; scanf(%d,&n) ; for(i=0 ; in ; i+) printf(a%d= ,i) ; scanf(%d,&a0i) ; /*SPACE*/ while(【?】) for(i=0 ; in ; i+) if(a1i=0) /*SPACE*/ 【?】 ; k=i ; for(j=i ; jn ; j+) /*SPACE*/ if(a1j=0 & a0ja0k) 【?】 ; a1k=r+ ; m+ ; for(j=0 ; jn ; j+) if(a1j=0 & a0j=a0k) a1j=a1k ; m+ ; for(i=0 ; in ; i+) printf(a%d=%d, %dn,i,a0i,a1i) ;答案: 1). mm 2). break 3). k=j/*- 【程序改错】-功能:编写函数求2!+4!+6!+8!+10+12!+14!。-*/#include long sum(int n) /*FOUND*/ int i,j long t,s=0; /*FOUND*/ for(i=2;i=n;i+) t=1; for(j=1;j=i;j+) t=t*j; s=s+t; /*FOUND*/ return(t);main() printf(this sum=%ldn,sum(14);答案: 1). int i , j ; 2). printf(score %d., j + 1 ); 3). for(i=0;iN;i+)/*-【程序设计】-功能:求出菲波那契数列的前一项与后一项之比的极限的 近似值。例如:当误差为0.0001时,函数值为0.618056。-*/#include #include math.hvoid wwjt(); float fun() /*Program*/ /* End */ main() printf(y=%fn,fun(); wwjt();void wwjt() FILE *IN,*OUT; float fOUT; IN=fopen(19.IN,r); if(IN=NULL) printf(Please Verify The Currernt Dir.it May Be Changed); OUT=fopen(19.out,w); if(OUT=NULL) printf(Please Verify The Current Dir. it May Be Changed); fOUT=fun(); fprintf(OUT,%fn,fOUT); fclose(IN); fclose(OUT);答案floatf1=1,f2=1,f3;floatr1=2,r2;dor2=r1;r1=f1/f2;f3=f1+f2;f1=f2;f2=f3;while(fabs(r1-r2)1e-4);returnr1;/*-【程序设计】-功能:编写函数fun计算下列分段函数的值: x2+x+6 x0且x-3 f(x)= x2-5x+6 0x10且x2及x3 x2-x-1 其它-*/ /* End */main() float x,f; printf(input x=); scanf(%f,&x); f=fun(x); printf(x=%f,f(x)=%fn,x,f); wwjt();void wwjt() FILE *IN,*OUT; int n; float i; float o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error); for(n=0;n10;n+) fscanf(IN,%f,&i); o=fun(i); fprintf(OUT,%fn,o); fclose(IN); fclose(OUT);答案float y; if (x=0 & x10.0 & x!=2.0 & x!=3.0) y=x*x-5*x+6; else y=x*x-x-1;return y;/*-【程序填空】-功能:数组名作为函数参数,求平均成绩。-*/#include float aver(float a ) /*定义求平均值函数,形参为一浮点型数组名*/ int i; float av,s=a0; for(i=1;i5;i+) /*SPACE*/ s+=【a】i; av=s/5; /*SPACE*/ return 【av】;void main() float sco5,av; int i; printf(ninput 5 scores:n); for(i=0;i5;i+) /*SPACE*/ scanf(%f,【sco+i】); /*SPACE*/ av=aver(【sco】); printf(average score is %5.2fn,av);答案: 1). a 2). av 或 (av) 3). &scoi 或 sco+i 4). sco/*-【程序填空】-功能:利用指向结构的指针编写求某年、某月、某日是第 几天的程序,其中年、月、日和年天数用结构表示。-*/#include #include main()/*SPACE*/ 【int】 date int y,m,d,n; /*SPACE*/ 【return 0】; int k,f,a12=31,28,31,30,31,30,31,31,30,31,30,31; printf(date:y,m,d=); scanf(%d,%d,%d,&x.y,&x.m,&x.d); f=x.y%4=0&x.y%100!=0|x.y%400=0; /*SPACE*/ a1+=【?】; if(x.m12|x.dax.m-1) exit(0); for(x.n=x.d,k=0;kx.m-1;k+)x.n+=ak; /*SPACE*/ printf(n=%dn,【date】);答案:1).struct2).x3).f4).x.n/*- 【程序改错】-功能:输入一行字符,分别统计出其中英文字母、空格、数字和 其它字符的个数。-*/#include main() char c; int letters=0,space=0,digit=0,others=0; printf(please input some charactersn); /*FOUND*/ while(c=getchar()=n) /*FOUND*/ if(c=a)&(c=A)&(c=0&c=9) digit+; else others+; printf(all in all:char=%d space=%d digit=%d others=%dn,letters, space,digit,others);答案ints=0,i;for(i=1;i=N;i+)if(i%m=0)/*-/*-【程序设计】-功能:能计算从1开始到n的自然数中偶数的平方的和,n由 键盘输入,并在main()函数中输出。(n是偶数)-*/#include void wwjt(); int fun(int n) /*Program*/ /* End */ main() int m; printf(Enter m: ); scanf(%d, &m); printf(nThe result is %dn, fun(m); wwjt(); void wwjt() FILE *IN,*OUT; int t; int o; int c; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error); for(c=1;c=5;c+) fscanf(IN,%d,&t); o=fun(t); fprintf(OUT,%dn,o); fclose(IN); fclose(OUT);答案:-int sum,i;sum =0;for(i=2;i=n;i=i+2)sum=sum+i*i;return(sum);-/*-【程序填空】-功能:找出数组中最大值和此元素的下标,数组元素的值由键盘 输入。-*/#include void main() int a10,*p,*s,i; for(i=0;i10;i+) /*SPACE*/ scanf(%d, 【ai】); /*SPACE*/ for(p=a,s=a;【*p】10;p+) /*SPACE*/ if(*p【 4). *s/*-【程序填空】-功能:识别输入的字符串,每个单词输出一行-*/#include #include void main() int c; int inspace; /*SPACE*/ 【inspace=0】; while(c = getchar() != n) if(c = | c = t | c = n) /*SPACE*/ if(【inspace=0】) inspace = 1; putchar(n); else inspace = 0; /*SPACE*/ 【putchar(c)】; /*- 答案:=(答案1)=inspace=0=(答案2)=inspace=0=(答案3)=putchar(c)【程序改错】-功能:读入一个英文文本行,将其中每个单词的第一个字母改成 大写,然后输出此文本行 (这里的“单词”是指由空格 隔开的字符串)。例如:若输入:“i am a student to take the examination.”, 则应输出:“I Am A Student To Take The Examination.”。-*/#include #include #include /*FOUND*/upfst ( char *p ) int k=0; /*FOUND*/ for ( ; *p; p+ ) if ( k ) if ( *p = ) k = 0; /*FOUND*/ else if ( *p != ) k = 1; *p = toupper( *p ); main( ) char chrstr81; printf( nPlease enter an English text line: ); gets( chrstr ); printf( nnBefore changing:n %s, chrstr ); upfst( chrstr ); printf( nAfter changing:n %sn, chrstr );-【标准答案】-【1】upfst(char*p)【2】for(;*pp+)【3】elseif(*p!=)/*-【程序设计】-功能:将字符串中的小写字母转换为对应的大写字母, 其它字符不变。-*/#include string.h#include void wwjt(); void change(char str) /*Program*/ /* End */main() void change(); char str40; gets(str); change(str); puts(str); wwjt();void wwjt() FILE *IN,*OUT; char i200; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error); fscanf(IN,%s,i); change(i); fprintf(OUT,%sn,i); fclose(IN); fclose(OUT);答案inti;for(i=0;stri!=0;i+)if(stri=a&stri=z)stri=stri-32;/*-【程序设计】-功能:编写函数求3!+6!+9!+12!+15!+18!+21!。-*/#include void wwjt(); float sum(int n) /*Program*/ /* End */main() printf(this sum=%en,sum(21); wwjt();void wwjt() FILE *IN,*OUT; int i; float o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error); fscanf(IN,%d,&i); o=sum(i); fprintf(OUT,%fn,o); fclose(IN); fclose(OUT);答案:-int sum,i;sum =0;for(i=2;i=n;i=i+2)sum=sum+i*i;return(sum);-/*-【程序填空】-功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出 其和。-*/#include #include main() int i,n,sum; sum=0; /*SPACE*/ 【?】; /*SPACE*/ for(i=1; 【?】 ;i+) /*SPACE*/ if(【?】) if(i%2=0) sum=sum+i; n+; printf(%6d,i); /*SPACE*/ if(【?】) printf(n); printf(ntotal=%d,sum);答案: 1). n=0 2). i=300 或 i=i 或 300i 3). i%7 = 0 | i%17 = 0 或 !(i%7)|!(i%17) 或 !(i%17)|!(i%7) 或 !(i%7&i%17) 4). n%5 = 0 或 !(n%5) 或 n/5*5=n/*-【程序填空】-功能:将一个数组中的元素按逆序存放。-*/#include #define N 7main () static int aN=12,9,16,5,7,2,1,k,s; printf(n the origanal array:n); for (k=0;kN;k+) printf(%4d,ak); /*SPACE*/ for (k=0;kN/2; 【?】 ) s=ak; /*SPACE*/ 【?】 ; /*SPACE*/ 【?】 ; printf(n the changed array:n); for (k=0;kN;k+) /*SPACE*/ 【?】 (%4d,ak);答案: 1). k+ 或 k= k + 1 或 k+=1 或 +k 2). ak=aN-k-1 或 ak=aN-1-k 或 ak=a6-k 或 *(a+k)=*(a+N-k-1) 或 *(a+k)=*(a+N-1-k 或 ak=a-1+N-k 或 ak=a-1-k+N 或 ak=a-k-1+N 或 ak=a-k+N-1 或 *(a+k)=*(a+N-k-1) 或 a6-k=s 3). aN-k-1=s 或 aN-1-k=s 或 a6-k=s 或 aN -k -1=s 或 *(a +N -k -1)=s 4). printf/*-【程序设计】-功能:求一组数中大于平均值的数的个数。例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。-*/ #include void wwjt(); int fun(int a,int n) /*Program*/ /* End */ main() int a10=1,3,6,9,4,23,35,67,12,88; int y; y=fun(a,10); printf(y=%dn,y); wwjt();void wwjt() FILE *IN,*OUT; int iIN10,iOUT,i,j; IN=fopen(in.dat,r); if(IN=NULL) printf(Please Verify The Currernt Dir.it May Be Changed); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Please Verify The Current Dir. it May Be Changed); for(j=0;j10;j+) for(i=0;i10;i+) fscanf(IN,%d,&iINi); iOUT=fun(iIN,10); fprintf(OUT,%dn,iOUT); fclos
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件民族复兴梦
- 火焊操作培训课件
- 培训现场互动
- 课件朗读绿色的梦
- 美术人体结构课件
- 课件显示屏黑色问题
- 广东工程计量自考试题及答案
- 辣椒种植考试题及答案
- 2025年教师招聘之《幼儿教师招聘》模考模拟试题及答案详解【名校卷】
- 多功能机组操作工转正考核试卷及答案
- 社区两委测试卷及答案
- 板房拆除协议书样本
- 行政事务知识培训课件
- 预防出生缺陷健康知识讲座
- 康复专转本试题及答案
- 机械工程图纸会审标准及流程解析
- 院感应知应会习题(含参考答案)
- DBJ50-T-157-2022房屋建筑和市政基础设施工程施工现场从业人员配备标准
- 风险评估技术-危险与可操作性分析(HAZOP)
- 2024年秋季学期新苏科版七年级上册数学课件 2.4 有理数的加法与减法-2.4.1 有理数的加法
- 《串行通讯及其接口》课件
评论
0/150
提交评论