




已阅读5页,还剩193页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.#include #define N 20main()char sNN,i,j,k,m;if(N%2=0)m=N/2;elsem=N/2+1;for(k=0;km;k+)for(i=k;iN-k;i+)for(j=k;jN-k;j+)if(i=k|i=N-k-1|j=k|j=N-k-1)sij=A+k;for(i=0;iN;i+)for(j=0;jN;j+)printf(%c ,sij);printf(n); 求负数平均数:#include main()int a7=1,-2,9,-4,-7,2,0,i,k=0;float s=0.0;for(i=0;i7;i+)printf(%d ,ai);printf(n);for(i=0;ai!=0;i+)if(ai0)s+=ai;k+;printf(%6.4f,s/k);小写改大写#include main()int i;char a20;gets(a);for(i=0;ai!=0;i+)if(ai=a&ai=z)ai=ai-32;puts(a);第13套题(必须是main函数在上面,fun函数段再下面,要不然会出错)#include long fun(int a,int n)int i;long s,t=0;for(i=0;in;i+)t=t*10+a;s=t; for(i=1;in;i+)t=t/10;s=s-t;return s;main () int a, n ; scanf( %d%d, &a, &n ) ; printf(a=%d,n=%d,a,n); printf(n); printf( %ldn, fun ( a, n ) ); /*必须是ld,不能是l*/解法二(不调用子函数)#include main () int a, n,i ;long s,t=0; scanf( %d%d, &a, &n ) ; printf(a=%d,n=%d,a,n); printf(n); for(i=0;in;i+)t=t*10+a;s=t; for(i=1;in;i+)t=t/10;s=s-t;printf(%ldn,s); 第18套#include #include /*该句必须写上去,要不然函数中的cos,fabs函数将无来源调用,这一点要非常注意*/main () double x0,x1=0.0;do x0=x1;x1=cos(x0);while(fabs(x0-x1)=1e-6);printf(root=%fn,x1);注意区别,后者为正确结果第30套删除前导*号解法一(调用子函数)#include void fun(char *a)char *p=a,*s;while(*p=*) p+;for(s=p;*s!=0;s+) *a+=*s;*a=0;main () char a80; /*此处不能定义为*a*/gets(a);fun(a); /*此处不得直接写成puts(fun(a);必须得分两步写*/puts(a);解法二(未调用子函数)#include #include main ()int i,k=0;char s20,*p,*r;gets(s);p=s;while(*p=*) p+;for(r=p;*r!=0;r+) sk+=*r;sk=0; puts(s);循环左移#include #include main() int i,j,n,m;char a20,t;gets(a);n=strlen(a); /*要用到strlen函数的话就要用到字符串库函数*/scanf(%d,&m);for(i=0;im;i+)t=a0;for(j=0;jn-1;j+)aj=aj+1;an-1=t;puts(a);注意必须是先输入字符串数组,再输入m值二维矩阵转置:#include #include #define M 3 /*这一句是在main函数之前*/main()int aMM=1,2,2,4,1,6,1,3,2,bMM,i,j,k;printf(before motivated:n);for(i=0;iM;i+) for(j=0;jM;j+)printf(%d ,aij); printf(n); /*注意大花括号的位置,以及printf(“n”);这一句的位置,每一行结尾转行*/ for(i=0;iM;i+)for(j=0;jM;j+)bij=aij+aji;printf(after motivated:n);for(i=0;iM;i+) for(j=0;jM;j+)printf(%d ,bij); printf(n); #include #include main ()int i,n,k=0;char s20,*p;gets(s);n=strlen(s);p=s;for(i=0;in;i+) if(pi%2=0|i%2!=0) sk+=pi; sk=0; puts(s);删除字符串中某些字符:解法一#include #include main ()int i,n,k=0;char s20,*p;gets(s);n=strlen(s);p=s;for(i=0;in;i+)if(pi%2!=0&i%2=0) ; else sk+=pi; sk=0; puts(s);解法二(主要是红色字体部分内容不同)#include #include main ()int i,n,k=0;char s20,*p;gets(s);n=strlen(s);p=s;for(i=0;in;i+)if(pi%2=0|i%2!=0) sk+=pi; sk=0; puts(s);数组前m位输出#include main ()int s7=1,2,3,4,5,6,7,i,m;for(i=0;i7;i+)printf(%d ,si);printf(n);scanf(%d,&m);for(i=0;im;i+)printf(%d ,si);printf(n);求1-1/2+1/3-1/4+求前m项的和#include main ()int i,m,fg=1;double s=0.0,s1;scanf(%d,&m);for(i=1;i=m;i+)s1=i*fg;fg=fg*(-1);s+=1.0/s1;printf(%2.4fn,s); /*2.4前面的数字2代表包括总位数,前面的数字只要不超过6就能得到正确结果,后面的数字4代表小数点后的位数,即保留几位小数,此处与printf(%.4fn,s);效果一样*/ 注意这个结果不是顶行输出的,与8.4前面的数字8有关判断几组数据的大小#include #include main ()int i,a,b,n;scanf(%d,&n);for(i=0;ib) printf(Text %d:n,i+1);if(ab) printf(Text %d:n,i+1);if(a=b) printf(Text %d:=n,i+1);第一套选择题解法一(答案)#include #include main ( )int i=2,fg=1;double s=0.0,s1=0.75,t; while(s11e-3)s=s+fg*s1;t=2*i;s1=(t+1)/(t*t);fg=fg*(-1);i+; printf(the result is:%fn,s);解法二(为什么有这种差别呢?求解答)#include #include main ( )int i=1,fg=1;double s=0.0,s1,t; do t=2*i;s1=(t+1)/(t*t);s=s+fg*s1;fg=fg*(-1);i+; while(s11e-3);printf(the result is:%fn,s);解法三(带子函数段)#include #include double fun(double e)int i=1,fg=1;double s=0.0,s1,t; do t=2*i;s1=(t+1)/(t*t);s=s+fg*s1;fg=fg*(-1);i+; while(s1e);return s;main ()double e;scanf(%le,&e); /*此处红色字体%le不能写成%f,这里scanf函数与printf函数使用规则不同,scanf函数读取double型数据是用%le ,printf函数显示double型数据是用%f ,注意区别*/printf(%fn,fun(e);【实现十进制到二进制的转换】:#include main ()int k=0,i;long t,s1;char p20,ch;scanf(%ld,&t);dos1=t%2; t=t/2; pk+=s1+0; while(t0);pk=0;for(i=0;ik/2;i+) ch=pi; pi=pk-1-i; pk-1-i=ch;puts(p);【二进制到十进制的转换】:#include #include main ()int i,j,n,k;long t=0;char s20;gets(s);n=strlen(s);for(i=0;in;i+) k=1; for(j=1;j=n-1-i;j+) k=k*2; t=t+k*(si-0);printf(%ldn,t);【实现16进制到10进制的转换】:#include #include main ()int i,j,n,k;long t=0;char s20;gets(s);n=strlen(s);for(i=0;in;i+)k=1;for(j=1;j=0&si=A&si=G)t=t+k*(si-55); /*例如16进制中的A代表10进制中的10,而字符A对应的ASCII值为65,其他的B一直到F都可以依此类推*/printf(%ldn,t);【实现10进制到16进制的转换】:#include #include main ()int k=0,i;long t,s1;char p20,ch;scanf(%ld,&t);dos1=t%16; t=t/16; if(s1=1&s1=10&s10);pk=0;for(i=0;ik/2;i+) ch=pi; pi=pk-1-i; pk-1-i=ch;puts(p);【2进制转化为8进制】:思路:2进制10进制8进制#include #include main ()int i,j,n,k,m=0;long t=0,s1;char s20,p20,ch;gets(s);n=strlen(s);for(i=0;in;i+) k=1; for(j=1;j0);pm=0;for(i=0;im/2;i+) /*该for循环用于倒序输出*/ ch=pi; pi=pm-1-i; pm-1-i=ch;puts(p);【2进制转化为16进制】:思路与2进制转化为8进制相似#include #include main ()int i,j,n,k,m=0;long t=0,s1;char s20,p20,ch;gets(s);n=strlen(s);for(i=0;in;i+) k=1; for(j=1;j=1&s1=10&s10);pm=0;for(i=0;im/2;i+) /*该for循环用于倒序输出*/ ch=pi; pi=pm-1-i; pm-1-i=ch;puts(p);【从母字符串中查找子字符串的个数】:解法一#include #include main ()int i,j,k=0,n1,n2;char s100,p100,q100;gets(s);gets(p);n1=strlen(s);n2=strlen(p);for(i=0;in1;i+)for(j=0;jn2;j+)qj=si+j; /*动态保存字符串数组q,以便与子字符串p比较*/qn2=0;if(strcmp(q,p)=0)k+;printf(%dn,k);解法二(注意首先定义字符串s,p的长度要足够长,如定义为100。若定义为20,当从输入设备输入的字符串的长度超过20的时候,会出现错误)#include #include main ()int i,j,k=0, tag,n1,n2;char s100,p100;gets(s);gets(p);n1=strlen(s);n2=strlen(p);for(i=0;in1;i+)tag=1;for(j=0;jn2;j+)if(pj!=si+j)tag=0;if(tag=1) k+;printf(%dn,k);【自己研究的小课题】#include #include void fun1(char s1100)char *s=s1,*p;while(*s=*)s+;for(p=s;*p!=0;p+)*s1+=*p;*s1=0;void fun2(char s2100)int k=0;char *s=s2,*p;while(*s!=0)s+;s-;while(*s=*)s-;*(s+1)=0;main ()int i;char s1100,s2100;printf(Before transfered(s1):); gets(s1);printf(Before transfered(s2):); gets(s2);fun1(s1);fun2(s2);printf(After transfered(s1):); puts(s1);printf(After transfered(s2):); puts(s2);printf(After linked(s1+s2):); puts(strcat(s1,s2);【自己研究小课题】将Excel中的列标变换为10进制数:AAA703#include #include main ()int i,j,n;long s1=0,k;char s100;gets(s);n=strlen(s);for(i=0;in;i+)k=1;for(j=1;j=n-1-i;j+)k=k*26;s1=s1+(si-64)*k;printf(%ldn,s1);703AAA(当输入的数字为26的倍数时,会出现错误,其他的某些情况也会出现错误,有待进一步考察)#include #include main ()int k=0,i;long t,s,s1;char p20,ch;scanf(%ld,&t);dos1=t%26; t=t/26; pk+=s1+64; while(t0);pk=0;for(i=0;ik/2;i+) ch=pi; pi=pk-1-i; pk-1-i=ch;puts(p);求最大公约数:(1也可以是最大公约数,而且注意运行程序时最好切换输入法为英文输入法,要不然会出现死循环)#include #include main ()int a,b,i,k=0,s100; printf(请输入两个正整数:);scanf(%d,%d,&a,&b);while(a=0|b=0)printf(请重新输入两个正整数:);scanf(%d,%d,&a,&b);for(i=1;i=a&i=b;i+) if(a%i=0&b%i=0)sk+=i;printf(最大公约数:%dn,sk-1); /*该数组最后一个元素必为最大公约数*/求最小公倍数:#include #include main ()int i,a,b,t;printf(请输入两个正整数:);scanf(%d,%d,&a,&b);while(a=0|b=0)printf(请重新输入两个正整数:);scanf(%d,%d,&a,&b);if(ab) /*该if语句用于存储a,b中较大值,并把最大值放入t变量中*/t=b;elset=a;i=t; /*此处i可以不必从a,b中较大值开始,可以直接从i=1开始进入while循环,直至有这样一个i同时可以整除a,b,同时还可省去求a,b中较大值的过程,这一点在求多个整数的最小公倍数时尤其要注意*/while(i%a!=0|i%b!=0)i+;printf(最小公倍数:%dn,i);结合求最大公约数与最小公倍数(该程序段中的while循环部分未看懂,同时注意最小公倍数与最大公约数的关系:最小公倍数=数1*数2/最小公约数):#include main() int a,b,num1,num2,temp; printf(please input two numbers:n); scanf(%d,%d,&num1,&num2); if(num1num2) temp=num1; num1=num2; num2=temp; a=num1;b=num2; while(b!=0)/*利用辗除法,直到b为0为止*/ temp=a%b; a=b; b=temp; Fprintf(gongyueshu:%dn,a); printf(gongbeishu:%dn,num1*num2/a); 字符转换:#include #include main ()char s;s=getchar(); /*从标准输入设备中读入一个字符*/s=0+9-s;putchar(s); /*输出经过处理的字符,注意该语句不会自动转行*/printf(n);第7套修改题#include #include main ()char a100,b100;int i,k=1;gets(a);b0=a0;for(i=1;bi!=0;i+)if(i%3=0)bk+= ; /*注意这两句的顺序*/bk+=ai; /*该句前不能加else*/bk=0;puts(b);将六个字符串升序排列:(注意解体思路与数组排列相似,只不过要用到特定的字符串处理函数)#include #define N 6#include main ()int i,j;char ssN100,t100;printf(before:n);for(i=0;iN;i+)scanf(%s,ssi);for(i=0;iN;i+) for(j=i+1;j0) strcpy(t,ssi); strcpy(ssi,ssj); strcpy(ssj,t); printf(after:n);for(i=0;iN;i+)printf(%sn,ssi);对五个数按顺序排列:先把五个数赋值给数组元素,然后再对数组元素按顺序排列,最后再把排列好的数组元素返给a,b,c,d,e,这样当整数个数比较多时就会显示出其优势。#include main ()float s5,t,a,b,c,d,e;int i,j;scanf(%f %f %f %f %f,&a,&b,&c,&d,&e);s0=a;s1=b;s2=c;s3=d;s4=e;for(i=0;i5;i+) for(j=i+1;j5;j+) if(sisj) t=si; si=sj; sj=t; a=s0;b=s1;c=s2;d=s3;e=s4;printf(a=%.1f,b=%.1f,c=%.1f,d=%.1f,e=%.1fn,a,b,c,d,e);第13套题程序填空题奇数位置的字符循环右移(同时注意总结循环左移、右移等相关问题):#include #include main ()int i,n;char s100,s1100; /*定义两个字符串,以便进行处理*/gets(s);n=strlen(s);for(i=0;in;i+)s1i=si;for(i=0;2*i+1n;i+)s2*i+3=s12*i+1;if(n%2=0) /*对最末的字符进行特殊处理*/s1=s1n-1;elses1=s1n-2;sn=0;puts(s);循环右移:(提供另一种思路,为避免混淆,定义两个,以便进行相应处理)#include #include main ()int i,j,n;char s100,s1100; gets(s);n=strlen(s); for(i=0;i3;i+) /*移动三次*/for(j=0;jn;j+)s1j=sj;for(j=1;jn;j+)sj=s1j-1; s0=s1n-1;sn=0;puts(s);循环左移:#include #include main ()int i,j,n;char s100,s1100; gets(s);n=strlen(s); for(i=0;i3;i+) for(j=0;jn;j+)s1j=sj;for(j=0;jn-1;j+)sj=s1j+1; sn-1=s10;sn=0;puts(s);删掉字符串中的重复字符(应用于普遍情况,思路最重要):abaabcdd从字符串第一个字符a开始往后历寻,删掉重复的aabbcdd从新字符串第二个字符b开始往后历寻,删掉重复的babcdd从新字符串第三个字符c开始往后历寻,删掉重复的c,此时发现没有重复的c,保持不变输出abcdd从新字符串第四个字符d开始往后历寻,删掉重复的dabcd#include #include main ()int i,j,k;char s100; gets(s);for(i=0;si!=0;i+)k=i+1;for(j=i+1;sj!=0;j+)if(si!=sj)sk+=sj;sk=0;puts(s);删除整型数组中重复的元素(注意数组的处理方法与字符串的处理方法有不同之处,字符串以结尾符0结尾,而数组没有类似的结尾符,这一点尤其需要注意):#include #define N 20main ()int i,j;int sN= 2,2,-3,3,4,4,5,6,6,0,6,7,7,8,9,9,10,-2,10,10; for(i=0;iN;i+)printf(%d ,si);printf(n);for(i=0;iN;i+)for(j=i+1;jN;j+)if(si=sj)sj=-1; /*选用一个数组中没有的整数-1赋给数组中所有重复的的元素,然后把新数组中的非-1元素删掉,即可实现目标功能*/ for(i=0;iN;i+)if(si!=-1)printf(%d ,si);printf(n); 对整个二位数组做循环右移处理,然后再做一次特殊处理(即前m列元素全部置为0):#include #define M 3#define N 4main ()int sMN=1,2,3,4,4,5,6,7,7,8,9,1,s1MN,i,j,k,m;printf(循环右移之前的二维数组:n); for(i=0;iM;i+)for(j=0;jN;j+)printf(%d ,sij);printf(n);printf(循环右移m次:);scanf(%d,&m);for(i=0;iM;i+) for(k=0;km;k+) for(j=0;jN;j+) s1ij=sij; for(j=0;jN-1;j+) sij+1=s1ij; si0=s1iN-1;printf(循环右移m次之后的二维数组:n);for(i=0;iM;i+)for(j=0;jN;j+)printf(%d ,sij);printf(n); printf(再做一次特殊处理之后的二维数组:n);for(i=0;iM;i+)for(j=0;jm;j+)sij=0;for(i=0;iM;i+)for(j=0;jN;j+)printf(%d ,sij);printf(n);第23套题修改题部分:#include #include main ()int i,j,n;char s100,t1100,t2100,s1100;printf(please enter string s:);gets(s);printf(please enter substring t1:);gets(t1);printf(please enter substring t2:);gets(t2);while(strlen(t2)!=strlen(t1)printf(ERRORn);printf(please enter substring t2:);gets(t2);n=strlen(t1);for(i=0;si!=0;i+) for(j=0;jn;j+)s1j=si+j;s1n=0; if(strcmp(s1,t1)=0)for(j=i;ji+n;j+)sj=t2j-i;printf(after replacing string s become:);puts(s);第26套题填空题延伸:如果情况允许,N可以取5,6,对应1000099999,100000999999.#include #define N 4#include main ()int i,j,k=0,t,x,s1N,s21000,sum;printf(请输入一个正整数x:);scanf(%d,&x);while(x9*N)printf(请重新输入一个正整数x:); scanf(%d,&x);for(i=1000;i=9999;i+)t=i; /*为避免混淆,定义一个新变量t=i*/sum=0; /*每历寻一次sum都要初始化为0,以便以后与x比较*/for(j=0;jN;j+) /*几位数就要循环几次,得到各位数*/ s1j=t%10; t=t/10; sum+=s1j;if(sum=x)s2k+=i;printf(10009999满足条件的整数有:n);for(i=0;ik;i+)printf(%d ,s2i);if(i+1)%10=0|i=(k-1)printf(n);在字符串中特定字符后插入特定字符:详细版本(可以通过该程序段看清每一步流程的走向):#include #include main ()int i,j,n;char s100,t100,*p;printf(n原始字符串为:);gets(s);n=strlen(s);for(i=0;in;i+)ti=!; /*这里为了给插入的*号留足够的空间,作这一步处理,原字符串后链接一个同样长度的由特殊字符组成的字符串(特殊字符必须是明显有别于题目中所给的原始字符串中的所有字符)*/tn=0;strcat(s,t); printf(n经过第一次特殊处理后的字符串为:);puts(s);for(i=0;i=0&si=i+2;j-)sj=sj-1;si+1=*;s2*n=0;printf(n插入特定字符后的字符串为:);puts(s);p=s;while(*p!=!)p+;*p=0; /*去掉多余的!号*/printf(n插入后最终的字符串为:);puts(s);精简版:(忽略过程)#include #include main ()int i,j,n;char s100,t100,*p;printf(n原始字符串为:);gets(s);n=strlen(s);for(i=0;in;i+)ti=!;tn=0;strcat(s,t);for(i=0;i=0&si=i+2;j-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 伤口冲洗查房课件
- 郑州市农村管理办法
- 路灯照明巡查管理办法
- 高校交流生管理办法
- 护理团队高效协作与沟通技巧实战指南
- 企业生产安全培训知识课件
- 2025年疼痛科疼痛评估和管理规范考试答案及解析
- 税务责任追究管理办法
- 留学归国落户管理办法
- 2025年4.15全民国家安全教育日知识竞赛题汇编附答案
- 中央ppp项目管理办法
- 2025-2026学年冀人版(2024)小学科学三年级上册(全册)教学设计(附目录)
- (高清版)DB11∕T 1455-2025 电动汽车充电基础设施规划设计标准
- 2024版电网公司反事故措施(2024版)
- 退伍军人离队安全教育培训纲要
- 办案安全自查和整改情况报告
- 2025年贵州省中考理科综合(物理化学)试卷真题(含答案详解)
- 工地剪彩活动方案
- 看守所突发事件应急预案
- 酒店卫生培训课件
- 科研中试基地管理制度
评论
0/150
提交评论