版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
{printf("**************************\n\n");printf("VeryGood!\n\n");printf("**************************\n");}}——2.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34第章最简单的C程序设计——顺序程序设计373.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.4用scanf函数输入数据753.4.5字符数据的输入输出78printf("p=%f\n",p);}p2=p*(1+2*r2)*(1+3*r3);//先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2);//先存3年期,到期后将本息再存2年期//存活期存款。活期利息每一季度结算一次//输出按第1方案得到的本息和//输出按第2方案得到的本息和//输出按第3方案得到的本息和//输出按第4方案得到的本息和//输出按第5方案得到的本息和}p2=p*(1+2*r2)*(1+3*r3);//先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2);//先存3年期,到期后将本息再存2年期//存活期存款。活期利息每一季度结算一次//输出按第1方案得到的本息和//输出按第2方案得到的本息和//输出按第3方案得到的本息和//输出按第4方案得到的本息和//输出按第5方案得到的本息和}p2=p*(1+2*r2)*(1+3*r3);//先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2);//先存3年期,到期后将本息再存2年期//存活期存款。活期利息每一季度结算一次//输出按第1方案得到的本息和//输出按第2方案得到的本息和//输出按第3方案得到的本息和//输出按第4方案得到的本息和}//输出按第5方案得到的本息和}}}}scanf("%f,%f",&r,&h);//要求输入圆半径r和圆柱高hl=2*pi*r;//计算圆周长ls=r*r*pi;//计算圆面积ssq=4*pi*r*r;//计算圆球表面积sqvq=3.0/4.0*pi*r*r*r;//计算圆球体积vqvz=pi*r*r*h;//计算圆柱体积vzprintf("圆周长为:l=%6.2f\n",l);printf("圆球体积为:v=%6.2f\n",vq);printf("圆柱体积为:vz=%6.2f\n",vz);}{printf("请输入两个整数c1,c2:");printf("按字符输出结果:\n");printf("按ASCII码输出结果为:\n");}{charc1,c2;//定义字符型变量inti1,i2;//定义整型变量printf("请输入两个字符c1,c2:");i1=c1;//赋值给整型变量printf("按字符输出结果:\n");printf("按整数输出结果:\n");}{inti1,i2;printf("请输入两个整数i1,i2:");printf("按字符输出结果:\n");printf("按整数输出结果:\n");}//定义为字符型//定义为整型//将整数赋值给字符变量{printf("请输入两个字符c1,c2:");printf("用putchar语句输出结果为:");printf("\n");printf("用printf语句输出结果为:");}第4章选择结构程序设计854.1选择结构和条件判断854.2用if语句实现选择结构874.2.1用if语句处理选择结构举例874.2.2if语句的一般形式894.3关系运算符和关系表达式914.3.1关系运算符及其优先次序914.3.2关系表达式924.4逻辑运算符和逻辑表达式924.4.1逻辑运算符及其优先次序934.4.2逻辑表达式944.4.3逻辑型变量964.5条件运算符和条件表达式974.6选择结构的嵌套994.7用switch语句实现多分支选择结构1024.8选择结构程序综合举例105{printf("请输入三个整数:");if(b<c)}printf("请输入三个整数:");printf("三个整数的最大数是%d\n",max);}{inti,k;printf("请输入一个小于%d的整数i:",M);while(i>M){printf("输入的数不符合要求,请重新输入一个小于%d的整数i:",M);}printf("%d的平方根的整数部分是:%d\n",i,k);}{inti,k;printf("请输入一个小于%d的整数i:",M);if(i>M){printf("输入的数不符合要求,请重新输入一个小于%d的整数i:",M);}printf("%d的平方根的整数部分是:%d\n",i,k);}{intx,y;printf("输入x:");if(x<1)/*x<1*/{y=x;}{y=2*x-1;printf("x=%d,y=2*x-1=%}{y=3*x-11;}}{if(x!=0)if(x>0)}{if(x>=0)if(x>0)y=1;}printf("请输入学生成绩:");{printf("\n输入有误,请重输");}}}{位,万位和位数printf("请输入一个整数(0-99999):");//分别代表个位,十位,百位,千printf("每位数字为:");printf("\n反序数字为:");printf("\n反序数字为:");printf("\n反序数字为:");printf("\n反序数字为:");printf("\n反序数字为:");printf("%d\n",indiv);} }{inti;printf("请输入利润i:");}{inti;printf("请输入利润i:");}}printf("请输入四个数:");if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("排序结果如下:\n");}{printf("请输入一个点(x,y):");scanf("%f,%f",&x,&y);d1=(x-x4)*(x-x4)+(y-y4)*(y-y4);/*求该点到各中心点距离*/d2=(x-x1)*(x-x1)+(y-y1)*(y-y1);d3=(x-x2)*(x-x2)+(y-y2)*(y-y2);d4=(x-x3)*(x-x3)+(y-y3)*(y-y3);if(d1>1&&d2>1&&d3>1&&d4>1)h=0;/*判断该点是否在塔外*/printf("该点高度为%d\n",h);}第5章循环结构程序设计1145.1为什么需要循环控制1145.2用while语句实现循环1155.6几种循环的比较1255.7改变循环执行的状态1255.7.1用break语句提前终止循环1265.7.2用continue语句提前结束本次循环1275.7.3break语句和continue语句的区别128{{pi=pi+term;sign=-sign;//sign代表符号,下一项的符号与上一项符号相反}pi=pi*4;//多项式的和pi乘以4,才是π的近似值printf("pi=%10.8f\n",pi);//输出π的近似值}{printf("请输入两个正整数n,m:");if(n<m){}{}printf("它们的最大公约数为:%d\n",n);printf("它们的最小公约数为:%d\n",p/n);}{printf("请输入一行字符:\n");{if(c>='a'&&c<='z'||c>='A'&&c<='Z')digit++;}}{printf("a,n=:");{tn=tn+a;/*赋值后的tn为i个a组成数的值*/++i;}}{t=t*n;}}{for(k=1;k<=n2;k++)/*计算1到50各数的平方和*/{s2=s2+k*k;}}{inti,j,k,n;{j=n/10-i*10;if(n==i*i*i+j*j*j+k*k*k)}printf("\n");}{for(i=1;i<a;i++)/*a是2-1000之间的整数,检查它是否完数*//*n用来累计a的因子的个数*//*s用来存放尚未求出的因子之和,开始时等于a*//*检查i是否a的因子*//*如果i是a的因子*/{n++;/*n加1,表示新找到一个因子*/s=s-i;/*s减去已找到的因子,s的新值是尚未求出的因子之和*/k1=i;break;/*找出的笫1个因子赋给k1*/k2=i;break;/*找出的笫2个因子赋给k2*/k3=i;break;/*找出的笫3个因子赋给k3*/k4=i;break;/*找出的笫4个因子赋给k4*/k5=i;break;/*找出的笫5个因子赋给k5*/k6=i;break;/*找出的笫6个因子赋给k6*/k7=i;break;/*找出的笫7个因子赋给k7*/k8=i;break;/*找出的笫8个因子赋给k8*/k9=i;break;/*找出的笫9个因子赋给k9*/}}{if(n>1)printf("%d,%d",k1,k2);if(n>2)printf(",%d",k3);/*n>2表示至少有3个因子,故应再输出一个if(n>3)printf(",%d",k4);/*n>3表示至少有4个因子,故应再输出一个if(n>4)printf(",%d",k5);/*以下类似*/if(n>5)printf(",%d",k6);if(n>6)printf(",%d",k7);if(n>7)printf(",%d",k8);if(n>8)printf(",%d",k9);if(n>9)printf(",%d",kprintf("\n");}}}for(i=1;i<m;i++)for(i=1;i<m;i++)if(m%i==0)printf("%d",i);printf("\n");}}}{for(i=1;i<=n;i++){}}{{sn=sn+2*hn;/*第n次落地时共经过的米数*/hn=hn/2;/*第n次反跳高度*/}}{{x1=(x2+1)*2;/*第1天的桃子数是第2天桃子数加1后的2倍.*/}}#include<math.h>{}#include<math.h>f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x1=x0-f/f1;}#include<math.h>{printf("enterx1&x2:");scanf("%f,%f",&x1,&x2);fx1=x1*((2*x1-4)*x1+3)-6;fx2=x2*((2*x2-4)*x2+3)-6;}while(fx1*fx2>0);fx0=x0*((2*x0-4)*x0+3)-6;if((fx0*fx1)<0)fx2=fx0;}fx1=fx0;}printf("x=%6.2f\n",x0);}{inti,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++)printf("");for(k=0;k<=2*i;k++)printf("*");printf("\n");}for(i=0;i<=2;i++){for(j=0;j<=i;j++)printf("");for(k=0;k<=4-2*i;k++)printf("*");printf("\n");}}{for(i='x';i<='z';i++)for(j='x';j<='z';j++)if(i!=j)if(i!=k&&j!=k)if(i!='x'&&k!='x'&&k!='z')printf("A--%c\nB--%c\nC--%c\n}第6章利用数组处理批量数据1426.1怎样定义和引用一维数组1426.1.1怎样定义一维数组1436.1.2怎样引用一维数组元素1446.1.3一维数组的初始化1456.1.4一维数组程序举例1466.2怎样定义和引用二维数组1486.2.1怎样定义二维数组1496.2.2怎样引用二维数组的元素1506.2.3二维数组的初始化1516.2.4二维数组程序举例1526.3.1怎样定义字符数组1546.3.2字符数组的初始化1556.3.3怎样引用字符数组中的元素1556.3.4字符串和字符串结束标志1566.3.5字符数组的输入输出1596.3.6使用字符串处理函数1616.3.7字符数组应用举例165a[i]=i;for(j=i+1;j<=100;j++){if(a[i]!=0&&a[j]!=0)if(a[j]%a[i]==0)a[j]=0;}printf("\n");{if(a[i]!=0){printf("%5d",a[i]);}{printf("\n");}}printf("\n");}for(i=1;i<=10;i++){printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\n");for(i=1;i<=10;i++)printf("%5d",a[i]);printf("\n");for(i=1;i<=9;i++){min=i;for(j=i+1;j<=10;j++)if(a[min]>a[j])min=j;a[i]=a[min];}for(i=1;i<=10;i++)printf("%5d",a[i]);printf("\n");}{inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%3d",&a[i][j]);for(i=0;i<3;i++)}for(i=0;i<10;i++)printf("%5d",a[i]);printf("\n");{for(i=0;i<10;i++)for(j=i+1;j<11;j++)}}}}for(i=0;i<11;i++)printf("%5d",a[i]);printf("\n");}for(i=0;i<N;i++)for(i=0;i<N;i++)printf("%4d",a[i]);for(i=0;i<N/2;i++)//循环的作用是将对称的元素的值互换a[i]=a[N-i-1];}for(i=0;i<N;i++)printf("%4d",a[i]);printf("\n");}{inti,j,a[N][N];for(i=0;i<N;i++){a[i][i]=1;a[i][0]=1;}for(i=2;i<N;i++)for(j=1;j<=i-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<N;i++){for(j=0;j<=i;j++)printf("%6d",a[i][j]);printf("\n");}printf("\n");}if((n!=0)&&(n<=15)&&(n%2!=0))}for(i=1;i<=n;i++)for(j=1;j<=n;j++)a[i][j]=0;a[1][j]=1;{i=i-1;j=j+1;if((i<1)&&(j>n)){i=i+2;j=j-1;}{if(i<1)i=n;if(j>n)j=1;}if(a[i][j]==0)a[i][j]=k;{i=i+2;j=j-1;a[i][j]=k;}}for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("%5d",a[i][j]);printf("\n");}}{inti,j,k,a[N][M],max,maxj,flag;for(i=0;i<N;i++)for(j=0;j<M;j++)scanf("%d",&a[i][j]);for(i=0;i<N;i++){max=a[i][0];for(j=0;j<M;j++)if(a[i][j]>max){max=a[i][j];}if(max>a[k][maxj])if(flag)/*输入数组*//*开始时假设a[i][0]最大*//*将列号0赋给maxj保存*//*找出第i行中的最大数*//*将本行的最大数存放在max中*//*将最大数所在的列号存放在maxj中*//*先假设是鞍点,以flag为1代表*//*将最大数和其同列元素相比*//*如果max不是同列最小,表示不是鞍点令flag1为0*//*如果flag1为1表示是鞍点*/{printf("a[%d][%d]=%d\n",i,maxj,max);/*输出鞍点的值和所在行列号*/}}if(!flag)/*如果flag为0表示鞍点不存在*/}while(i<N){scanf("%d",&a[i]);if(a[i]>=a[i-1])i++;}printf("\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");bott=N-1;//bott是查找区间的最末位置}}}}for(i=0;i<3;i++)for(j=0;j<80&&text[i][j]!='\0';j++){if(text[i][j]>='A'&&text[i][j]<='Z')elseif(text[i][j]>='a'&&text[i][j]<='z')low++;elseif(text[i][j]>='0'&&text[i][j]<='9')elseif(text[i][j]=='')}}printf("digit:%d\n",dig);}{chara[5]={'*','*','*','*','*'};inti,j,k;for(i=0;i<5;i++){printf("\n");printf("");for(j=1;j<=i;j++)printf("%c",a[k]);}printf("\n");}{intj,n;j=0;while(ch[j]!='\0'){if((ch[j]>='A')&&(ch[j]<='Z'))tran[j]=155-ch[j];elseif((ch[j]>='a')&&(ch[j]<='z'))tran[j]=219-ch[j];tran[j]=ch[j];j++;}printf("\noriginaltext:");for(j=0;j<n;j++)printf("\n");}{intj,n;j=0;while(ch[j]!='\0'){if((ch[j]>='A')&&(ch[j]<='Z'))ch[j]=155-ch[j];elseif((ch[j]>='a')&&(ch[j]<='z'))ch[j]=219-ch[j];ch[j]=ch[j];j++;}printf("originaltext:");for(j=0;j<n;j++)printf("\n");}while(s1[i]!='\0')i++;while(s2[j]!='\0')}while((s1[i]==s2[i])&&(s1[i]!='\0'))i++;if(s1[i]=='\0'&&s2[i]=='\0')}inti;s1[i]=s2[i];}第7章用函数实现模块化程序设计1707.1为什么要用函数1707.2.1为什么要定义函数1727.2.2定义函数的方法1737.3.2函数调用时的数据传递1757.4对被调用函数的声明和函数原型1797.7数组作为函数参数1927.7.1数组元素作函数实参1937.7.2数组名作函数参数1947.7.3多维数组名作函数参数1977.8局部变量和全局变量1997.8.2全局变量2007.9变量的存储方式和生存期2047.9.1动态存储方式与静态存储方式2047.9.2局部变量的存储类别2057.9.3全局变量的存储类别2087.9.4存储类别小结2127.10关于变量的声明和定义2147.11内部函数和外部函数2157.11.2外部函数215{inthcf(int,int);intlcd(int,int,intprintf("L.C.D=%d\n",l);}{intt,r;if(v>u){t=u;u=v;v=t;}{u=v;v=r;} }{}{voidhcf(int,int);printf("L.C.D=%d\n",Lcd);}{intt,r;if(v>u){t=u;u=v;v=t;}{u=v;}Hcf=v;}{Lcd=u*v/Hcf;}scanf("%f,%f,%f",&a,&b,&c);printf("root:\n");{printf("x1=%f\t\tx2=%f\n",x1,x2);}printf("x1=%f\t\tx2=%f\n",x1,x2);}printf("x1=%f+%fi\tx2=%f-%fi\n",p,q,p,q);}}}{}{}}{intflag=1,i;for(i=2;i<n/2&&flag==1;i++)if(n%i==0) }intarray[N][N];inti,j;for(i=0;i<N;i++)for(j=0;j<N;j++)scanf("%d",&array[i][j]);for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%5d",array[i][j]);printf("\n");}for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%5d",array[i][j]);printf("\n");}}{inti,j,t;for(i=0;i<N;i++)for(j=i+1;j<N;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}}inti,j;{t=str[i];str[i]=str[j-1];str[j-1]=t;}}}{inti,j;for(i=0;string1[i]!='\0';i++)string[i]=string1[i];for(j=0;string2[j]!='\0';j++)string[i+j]=string2[j];string[i+j]='\0';}printf("inputstring}{inti,j;for(i=0,j=0;s[i]!='\0';i++){c[j]=s[i];j++;}c[j]='\0';}printf("inputfourdigits:"}{inti;{str[2*i]=str[i];str[2*i-1]='';}}printf("string:");}{inti;for(i=0;str[i]!='\0';i++)if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))elseif(str[i]>='0'&&str[i]<='9')digit++;}inti;printf("%c",line[i]);printf("\n");}{if((c>='a'&&c<='z')||(c>='A'&&c<='z'))}if(flag){point=i;}}}}inti,flag;{printf("inputstring:\n");}for(i=0;i<N;i++)printf("%c",str[i]);printf("\n");}{inti,j;for(j=1;j<N;j++)for(i=0;(i<N-j)&&(str[i]!='\0');i++)if(str[i]>str[i+1]){t=str[i];str[i]=str[i+1];}}scanf("%f,%f,%f,%f",&a,&b,&c,&d);}{x0=x;f=((a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;x=x0-f/f1;}}{inti,j;for(i=0;i<N;i++)for(j=0;j<M;j++)printf("%8.2f",score[i][j]);}for(j=0;j<M;j++)printf("%8.2f",a_couprintf("\n");}{inti,j;for(i=0;i<N;i++)for(j=0;j<M;j++)scanf("%f",&score[i][j]);}}{inti,j;for(i=0;i<N;i++){for(j=0,s=0;j<M;j++)a_stu[i]=s/5.0;}}{inti,j;for(j=0;j<M;j++)for(i=0;i<N;i++)}}inti,j;for(i=0;i<N;i++)for(j=0;j<M;j++)if(score[i][j]>high){high=score[i][j];r=i+1;}}{inti;for(i=0;i<N;i++)}}{inti,j;for(i=0;i<N;i++)for(j=0;j<M;j++)printf("%8.2f",score[i][j]);}for(j=0;j<M;j++)printf("%8.2f",a_couprintf("\n");}{inti,j;for(i=0;i<N;i++)for(j=0;j<M;j++)scanf("%f",&score[i][j]);}}{inti,j;for(i=0;i<N;i++){for(j=0,s=0;j<M;j++)a_stu[i]=s/5.0;}}{inti,j;for(j=0;j<M;j++)for(i=0;i<N;i++)}}inti,j;for(i=0;i<N;i++)for(j=0;j<M;j++)if(score[i][j]>high){high=score[i][j];r=i+1;}}{inti;for(i=0;i<N;i++)}}}}{inti;for(i=0;i<N;i++){printf("inputNO.:");}}for(i=0;i<N-1;i++){min=i;for(j=i;j<N;j++)if(num[min]>num[j])min=j;num[i]=num[min];}for(i=0;i<N;i++)}if(n==num[mid])}}}chart[MAX];while((c=getchar())!='\0'&&i<MAX&&flag1){if(c>='0'&&c<='9'||c>='a'&&c<='f'||c>='A'&&c<='F')t[i++]=c;}{t[i]='\0';}}}}{inti,n;for(i=0;s[i]!='\0';i++){if(s[i]>='0'&&s[i]<='9')if(s[i]>='a'&&s[i]<='f')if(s[i]>='A'&&s[i]<='F')}}printf("output:");{putchar('-');putchar('');/*先输出一个‘-’号和空}printf("\n");}{inti;if((i=n/10)!=0)}//*调用函数leap*/}inti;day+=day_tab[i];/*累加所在月之前天数*/}/*函数leap:判断是否为闰年*/}第8章善于利用指针2208.1指针是什么2208.2指针变量2228.2.1使用指针变量的例子2228.2.2怎样定义指针变量2238.2.3怎样引用指针变量2248.2.4指针变量作为函数参数2268.3通过指针引用数组2308.3.1数组元素的指针2308.3.2在引用数组元素时指针的运算2318.3.3通过指针引用数组元素2338.3.4用数组名作函数参数2378.3.5通过指针引用多维数组2458.4通过指针引用字符串2558.4.1字符串的引用方式2558.4.2字符指针作函数参数2598.4.3使用字符指针变量和字符数组的比较2638.5指向函数的指针2668.5.1什么是函数指针2668.5.2用函数指针变量调用函数2668.5.3怎样定义和使用指向函数的指针变量2688.5.4用指向函数的指针作函数参数2708.6返回指针值的函数2748.7指针数组和多重指针2778.7.1什么是指针数组2778.7.2指向指针数据的指针2808.7.3指针数组作main函数的形参2828.8动态内存分配与指向它的指针变量2858.8.1什么是内存的动态分配2858.8.2怎样建立内存的动态分配2858.8.3void指针类型2878.9有关指针的小结288int*p1,*p2,*p3;}{intp;}}}{voidinput(int*);}{inti;for(i=0;i<10;i++)}}{int*p;printf("%d",*p);printf("\n");}for(i=0;i<n;i++)for(i=0;i<n;i++)printf("\n");}*p=*(p-1);}for(i=0;i<n;i++)*(p+i)=i+1;{if(*(p+i)!=0)k++;if(k==3){*(p+i)=0;}i++;if(i==n)i=0;}}}{intn;while(*p!='\0'){n++;}}printf("inputstringprintf("inputerror!");}}{intn;{n++;}{*p2=*p1;}}p=&s[0];while(*p!='\n'){if(('A'<=*p)&&(*p<='Z'))elseif(('a'<=*p)&&(*p<='z'))elseif((*p<='9')&&(*p>='0'))++digit;}}inta[3][3],*p,i;printf("inputmatrix:\n");for(i=0;i<3;i++)scanf("%d%d%d",&a[i][0],&a[i][1],&a[i][2]);p=&a[0][0];printf("Now,matrix:\n");for(i=0;i<3;i++)printf("%d%d%d\n",a[i][0],a[i][1],a[i][2]);}{inti,j,t;for(i=0;i<3;i++)for(j=i;j<3;j++){t=*(pointer+3*i+j);*(pointer+3*i+j)=*(pointer+3*j+i);*(pointer+3*j+i)=t;}}inta[5][5],*p,i,j;printf("inputmatrix:\n");for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);p=&a[0][0];printf("Now,matrix:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%d",a[i][j]);printf("\n");}}for(i=0;i<5;i++)for(j=i;j<5;j++){if(*pmax<*(p+5*i+j))pmax=p+5*i+j;if(*pmin>*(p+5*i+j))pmin=p+5*i+j;}*p=*pmin;for(i=0;i<5;i++)for(j=0;j<5;j++)if(((p+5*i+j)!=p)&&(*pmin>*(p+5*i+j)))pmin=p+5*i+j;*pmin=*(p+4);for(i=0;i<5;i++)for(j=0;j<5;j++)if(((p+5*i+j)!=(p+4))&&((p+5*i+j)!=p)&&(*pmin>*(p+5*i+j)))pmin=p+5*i+j;for(i=0;i<5;i++)for(j=0;j<5;j++)&&if(((p+5*i+j)!=p)&&((p+5*i+j)!=(p+4))&&((p+5*i+j)!=(p+20))(*pmin>*(p+5*i+j)))&&pmin=p+5*i+j;}inta[5][5],*p,i,j;printf("inputmatrix:\n");for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);p=&a[0][0];printf("Now,matrix:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%d",a[i][j]);printf("\n");}}for(i=0;i<5;i++)//找最大值和最小值的地址,并赋给pmax,pminfor(j=i;j<5;j++){if(*pmax<*(p+5*i+j))pmax=p+5*i+j;if(*pmin>*(p+5*i+j))pmin=p+5*i+j;}temp=*(p+12);//将最大值与中心元素互换temp=*p;//将最小值与左上角元素互换*p=*pmin;//将a[0][1]的地址赋给pmin,从该位置开始找最小的元素for(i=0;i<5;i++)//找第二最小值的地址赋给pminfor(j=0;j<5;j++){if(i==0&&j==0)continue;if(*pmin>*(p+5*i+j))pmin=p+5*i+j;}temp=*pmin;//将第二最小值与右上角元素互换*pmin=*(p+4);for(i=0;i<5;i++)//找第三最小值的地址赋给pminfor(j=0;j<5;j++){if((i==0&&j==0)||(i==0&&j==4))continue;if(*pmin>*(p+5*i+j))pmin=p+5*i+j;}temp=*pmin;//将第三最小值与左下角元素互换for(i=0;i<5;i++)//找第四最小值的地址赋给pminfor(j=0;j<5;j++){if((i==0&&j==0)||(i==0&&j==4)||(i==4&&j==0))continue;if(*pmin>*(p+5*i+j))pmin=p+5*i+j;}temp=*pmin;//将第四最小值与右下角元素互换}inti;for(i=0;i<10;i++)for(i=0;i<10;i++)printf("%s\n",str[i]);}{inti,j;for(i=0;i<9;i++)for(j=0;j<9-i;j++)}}inti;for(i=0;i<10;i++)for(i=0;i<10;i++)printf("%s\n",str[i]);}{inti,j;for(i=0;i<9;i++)for(j=0;j<9-i;j++)}}inti;for(i=0;i<10;i++)p[i]=str[i];for(i=0;i<10;i++)for(i=0;i<10;i++)printf("%s\n",p[i]);}{inti,j;for(i=0;i<9;i++)for(j=0;j<9-i;j++)*(s+j)=*(s+j+1);}}}{inti;for(i=1;i<=n;i++){x=x+h;}} printf("inputn:");for(i=0;i<n;i++)p=&num[0];for(i=0;i<n;i++)printf("%d",num[i]);printf("\n");}{inti;for(i=0;i<m/2;i++)}}for(i=0;i<5;i++)printf("NO.");for(i=0;i<5;i++)printf("\n");for(i=0;i<4;i++)for(j=0;j<5;j++)}printf("\n\n");printf("\n\n");printf("\n\n");}//求出每个学生的平均成绩//求出第一门课的平均成绩//找出成绩好的学生{inti,j;for(i=0;i<4;i++)for(j=0;j<5;j++)}//累计每个学生的各科成绩//计算平均成绩}{inti;for(i=0;i<4;i++)}//找两门以上课程不及格的学生的函数printf("NO.");for(i=0;i<5;i++)for(i=0;i<4;i++)for(j=0;j<5;j++){printf("%d",num[i]);printf("%11.2f",*(pscoprintf("%11.2f\n",aver[}}}//找成绩优秀学生(各门85以上或平均90分以上)的函数{inti,j,k,n;printf("NO.");for(i=0;i<5;i++)for(i=0;i<4;i++)for(j=0;j<5;j++){printf("%d",num[i]);printf("%11.2f",*(pscorprintf("%11.2f\n",aver[}}}{pstr=&str[0];/*字符指针pstr置于数组str首地址*/pa=&a[0];/*指针pa置于a数组首地址*/ndigit=0;/*ndigit代表有多少个整数*/i=0;/*代表字符串中的第几个字符*/j=0;while(*(pstr+i)!='\0'){if((*(pstr+i)>='0')&&(*(pstr+i)<='9'))j++;{if(j>0){digit=*(pstr+i-1)-48;/*将个数位赋予digit*/while(k<j)/*将含有两位以上数的其它位的数值累计于digit*/digit=digit+(*(pstr+i-1-k)-48)*e10;/*将该位数的数值\累加于digit*/k++;/*位数K自增*/}*pa=digit;/*将数值赋予数组a*/pa++;/*指针pa指向a数组下一元素*/j=0;}} i++;}if(j>0)/*以数字结尾字符串的最后一个数据*/{digit=*(pstr+i-1)-48;/*将个数位赋予digit*/while(k<j)/*将含有两位以上数的其它位的数值累加于digit*/digit=digit+(*(pstr+i-1-k)-48)*e10;/*将该位数的数值累加于digit*/k++;/*位数K自增*/}*pa=digit;/*将数值赋予数组a*/j=0;}j=0;for(j=0;j<ndigit;j++)/*打印数据*/printf("%d",*(pa+j));printf("\n");}}{inti;while(*(p1+i)==*(p2+i))if(*(p1+i++)=='\0')return(0);//相等时返回结果0return(*(p1+i)-*(p2+i));//不等时返回结果为第一个不等字符ASCII码的差值}if((n<=12)&&(n>=1))printf("Itiswrong.\n"}针}return(NULL);}//指定开辟存区的最大容量//定义字符数组newbuf//定义指针变量newp,指向可存区的始端//定义开辟存区的函数new,开辟存储区后返回指//开辟区未超过newbuf数组的大小//返回一个指针,它指向存区的开始位置//当存区不够分配时,返回一个空指针}#defineLINEMAX20/*定义字符串的最大长度*/{inti;char**p,*pstr[5],str[5][LINEMAX];for(i=0;i<5;i++)pstr[i]=str[i];/*将第i个字符串的首地址赋予指针数组pstr的第i个元素*/for(i=0;i<5;i++)for(i=0;i<5;i++)printf("%s\n",pstr[i]);}sort(char**p)/*冒泡法对5个字符串排序函数*/{inti,j;for(i=0;i<5;i++){for(j=i+1;j<5;j++){if(strcmp(*(p+i),*(p+j))>0)/*比较后交换字符串地址*/{temp=*(p+i);*(p+i)=*(p+j);}}}}{voidsort(int**p,intn);printf("inputn:\n");for(i=0;i<n;i++)pstr[i]=&data[i];//将第i个整数的地址赋予指针数组pstr的第i个元素for(i=0;i<n;i++)for(i=0;i<n;i++)printf("%d",*pstr[i]);printf("\n");}{inti,j,*temp;for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(**(p+i)>**(p+j))//比较后交换整数地址{temp=*(p+i);*(p+i)=*(p+j);}}}}第9章用户自己建立数据类型2939.1定义和使用结构体变量2939.1.2定义结构体类型变量2959.1.3结构体变量的初始化和引用2979.2使用结构体数组3009.2.1定义结构体数组3009.2.2结构体数组的应用举例3019.3结构体指针3039.3.1指向结构体变量的指针3039.3.2指向结构体数组的指针3049.3.3用结构体变量和结构体变量的指针作函数参数3069.4用指针处理链表3099.4.1什么是链表3099.4.2建立简单的静态链表3109.4.3建立动态链表3119.4.4输出链表3159.5共用体类型3179.5.1什么是共用体类型3179.5.2引用共用体变量的方式3189.5.3共用体类型数据的特点3199.6使用枚举类型3239.7用typedef声明新类型名326 }}}}}}} }}stu[N];inti,j;for(i=0;i<N;i++)printf("NO.:");for(j=0;j<3;j++)}printf("\n");}}{inti,j;for(i=0;i<N;i++)for(j=0;j<3;j++)printf("\n");}}}stu[N];}{inti,j;for(i=0;i<N;i++)printf("NO.:");for(j=0;j<3;j++)}printf("\n");}}{inti,j;\n");for(i=0;i<N;i++)for(j=0;j<3;j++)printf("\n");}}stu[N];{inti,j,maxi;for(i=0;i<N;i++)printf("NO.:");for(j=0;j<3;j++)}}for(i=0;i<N;i++)for(j=0;j<3;j++)}}for(i=0;i<N;i++)for(j=0;j<3;j++)printf("%9.2f",stu[i].score[j]printf("%8.2f\n",stu[i].avr);}}}link[N+1];for(i=1;i<=N;i++){if(i==N)link[i].nextp=1;link[i].nextp=i+1;link[i].number=i;}printf("\n");{i=0;while(i!=3)if(link[h].number)i++;}}for(i=1;i<=N;i++)if(link[i].number)printf("%3d",link[i].number);printf("\n");}};if(head==NULL)//是空表{printf("\nlistnull!\n");}while(num!=p1->num&&p1->next!=NULL)//p1指向的不是所要找的结点且后面还有结点*/}}};//使p1指向第一个结点//指向要插入的结点//原来的链表是空表//使p0指向的结点作为头结点{p2=p1;//使p2指向刚才p1指向的结点}//p1后移一个结点}p0->next=NULL;//插到最后的结点之后}}n=n+1;//结点数加1}};}}}{printf("\nlistnull!\n");}}}}}}}if(head!=NULL)}while(p!=NULL);}};}}}{printf("\nlistnull!\n");}}}}}}}if(head!=NULL)}while(p!=NULL);}};}}}}{printf("\nlistnull!\n");return}}}}}if(head!=NULL)}while(p!=NULL);}};printf("inputlistb:\n");}if(n==1)}}}}}while((pa1->next!=NULL)||(pa1==NULL&&pb1!=NULL));if((pb1!=NULL)&&(pb1-}if(p!=NULL)}while(p!=NULL);}}a[LA],b[LB];{structstudenta[LA]={{101,"Wang"},{102,"Li"},{105,"Zhang"},{106,"Wei"}};structstudentb[LB]={{103,"Zhang"},{104,"Ma"},{105,"Chen"},{107,"Guo"},{108,"lui"}};inti;printf("listA:\n");{if(i<LA)p1->next=a+i;}printf("\nlistB:\n");{if(i<LB)p2->next=b+i;}while(p1!=NULL)}}while(p1!=NULL)}}intfind=0;//找到待删除元素find=1,否则find=0{printf("inputlengthof}//建立链表if(i==0)printf("NO.:");}while(p!=NULL)}//删除printf("inputage:");//输入待删年龄}elsewhile(pt!=NULL)}}if(!find)while(p!=NULL)}}第10章对文件的输入输出33110.1C文件的有关基本知识33110.2打开与关闭文件33510.2.1用fopen函数打开数据文件33510.2.2用fclose函数关闭数据文件33710.3顺序读写数据文件33810.3.1怎样向文件读写字符33810.3.2怎样向文件读写一个字符串34110.3.3用格式化的方式读写文件34410.3.4用二进制方式向文件读写一组数据34510.4随机读写数据文件34910.4.1?募恢帽昙羌捌涠ㄎ?34910.5文件读写的出错检测353习题354第11章常见错误分析355附录370附录A在Vi附录B常用字符与ASCII代码对照表377附录CC语言中的关键字378附录EC语言常用语法提要380参考文献390{FILE*fp;if((fp=fopen("a1","w"))==NULL)}while(str[i]!='!'){if(str[i]>='a'&&str[i]<='z')str[i]=str[i]-32;fputc(str[i],fp);i++;}}{FILE*fp;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年山东省人教版小学四年级道德与法治第8课练习题
- 2026年宪法基本原理与制度理解习题
- 2025-2026年陕西省北师大版高中化学选择性必修第12章有机化学习题
- 机器拆检及组装记录
- 成都一诊-2026届高三-2025年12月-物理-答案
- 铜绿假单胞菌对头孢菌素的耐药机制新进展总结2026
- 江西省玉山县樟村中学2027届物理高一第一学期期中学业水平测试试题含解析
- 2027届广西贵港市港南中学高一物理第一学期期中检测试题含解析
- 浙江省强基联盟2026-2027学年高二上学期开学考试政治试卷(含答案)
- 新生儿病区医院感染预防与控制标准考核试题及答案
- 26秋 语文一年级上册彩色课课贴
- 2026年主要负责人《金属冶炼(黑色金属铸造)》安全生产模拟考试题
- 康复护理中的感染控制技术
- 2025年民政系统公务员笔试真题附答案
- 家政服务行业标准与流程(标准版)
- 离子氮化培训
- 服务器运维委托合同
- 单县介绍教学课件
- 浙美版(2024)小学二年级上册美术 6.潺潺小溪水 教案
- Removed-中央财经大学《金融学》课件1-10章
- 智能制造概论 课件全套 第1-6章 绪论、面向智能制造的新一代信息技术 -智能工厂设计与运行
评论
0/150
提交评论