1(实现简单的加法)#include <stdio.h> // 这是编译预处理命令int main( ) // 定义主函数{ // 函数开始int a,b,sum; // 本行是程序的声明部分,定义a、b、sum为整型变量a = 123; // 对变量a赋值b = 456; // 对变量b赋值sum = a + b; // 进行a+b 的运算,并把结果存放在变量sum 中printf("sum is %d\n",sum); // 输出结果return 0; // 使函数返回值为0} // 函数结束2(两个数比大小输出大值)#include <stdio.h>int main( ) // 定义主函数{ // 主函数体开始int max(int x,int y); // 对被调用函数max的声明int a,b,c; // 定义变量a,b,cscanf("%d,%d",&a,&b); // 输入变量a和b的值c = max(a,b); // 调用max函数,将得到的值赋给cprintf("max=%d\n",c); // 输出c的值return 0; // 返回函数值为0}int max(int x,int y) //定义max函数,函数值为整型, 形式参数x和y为整型{int z; // max函数中的声明部分,定义本函数中用到的变量z为整型if (x > y) z = x;else z = y;return(z); //将z的值返回,通过max带回到调用函数的位置}3(算1-1/2+1/3-1/4........+1/99-1/100)#include <stdio.h>int main( ){int sign=1;double deno=2.0,sum=1.0,term; // 定义deno,sum,term为双精度变量while (deno<=100){sign=-sign;term=sign/deno;sum=sum+term;deno=deno+1;}printf("%f\n",sum);return 0;}4#include <stdio.h>int main ( ){char c1,c2;c1='A'; // 将字符'A'的ASCII代码放到c1变量中c2=c1+32; // 得到字符'a'的ASCII代码,放在c2变量中printf("%c\n",c2); // 输出c2的值,是一个字符printf("%d\n",c2); // 输出c2的值,是字符'a'的ASCII代码return 0;}5(方程求根)#include <stdio.h>#include <math.h> // 程序中要调用求平方根函数sqrt int main ( ){double a,b,c,disc,x1,x2,p,q; // disc是判别式sqrt(b*b-4ac)scanf("%lf%lf%lf",&a,&b,&c); // 输入实型变量的值要用格式声明"%f" disc=b*b-4*a*c;if (disc<0) printf("This equation hav't real roots\n");else{ p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q; // 求出方程的两个根printf("x1=%7.2f\nx2=%7.2f\n",x1,x2); // 输出方程的两个根}return 0;}6(输出BOY)#include <stdio.h>int main ( ){char a='B',b='O',c='Y'; // 定义3个字符变量,并初始化putchar(a); // 向显示器输出字符Bputchar(b); // 向显示器输出字符Oputchar(c); // 向显示器输出字符Yputchar ('\n'); // 向显示器输出一个换行符return 0;}7#include <stdio.h>int main ( ){ char a,b,c; // 定义字符变量a,b,ca=getchar(); // 从键盘输入一个字符,送给字符变量ab=getchar(); // 从键盘输入一个字符,送给字符变量bc=getchar(); // 从键盘输入一个字符,送给字符变量cputchar(a); // 将变量a的值输出putchar(b); // 将变量a的值输出putchar(c); // 将变量a的值输出putchar('\n'); // 换行return 0;}8 (同5,不同写法)#include <stdio.h>#include <math.h> // 程序中要调用求平方根函数sqrtint main ( ){double a,b,c,disc,x1,x2,p,q; // disc是判别式sqrt(b*b-4ac)scanf("%lf%lf%lf",&a,&b,&c); // 输入双精度浮点型变量的值要用格式声明"%lf"disc=b*b-4*a*c;if (disc<0) printf("This equation hav't real roots\n");else{ p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q; // 求出方程的两个根printf("real roots:\nx1=%10.6f\nx2=%10.6f\n",x1,x2); // 输出方程的两个根}return 0;}9(实现三个数从小到大排列)#include <stdio.h>int main(){float a,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a>b){t=a;a=b;b=t;} // 实现a和b的互换if(a>c){t=a;a=c;c=t;} // 实现a和c的互换if(b>c){t=b;b=c;c=t;} // 实现b和c的互换printf("%5.2f,%5.2f,%5.2f\n",a,b,c);return 0;}10(swich 语句应用)#include <stdio.h>int main(){char grade;scanf("%c",&grade);printf("Your score:");switch(grade){ default: printf("data error!\n");break;case 'A': printf("85~100\n");break;case 'B': printf("70~84\n");break;case 'C': printf("60~69\n");break;case 'D': printf("<60\n");break;}return 0;}11(break swich复合语句)#include <stdio.h>int main(){void action1(int,int),action2(int,int);char ch;int a=15,b=23;ch=getchar();switch(ch){case 'a':case 'A': action1(a,b);break;case 'b':case 'B': action2(a,b);break;default: putchar('\a');}return 0;}void action1(int x,int y){printf("x+y=%d\n",x+y);}void action2(int x,int y){printf("x*y=%d\n",x*y);}12(判断闰年)#include <stdio.h>int main(){int year,leap;scanf("%d",&year);if (year%4==0){if(year%100==0){if(year%400==0)leap=1;elseleap=0;}elseleap=1;}elseleap=0;if (leap)printf("%d is ",year);elseprintf("%d is not ",year); printf("a leap year.\n");return 0;13(同上)#include <stdio.h>int main(){int year,leap;printf("enter year:");scanf("%d",&year);if((year%4==0 && year%100!=0) || (year%400==0)) leap=1;elseleap=0;if (leap)printf("%d is ",year);elseprintf("%d is not ",year);printf("a leap year.\n");return 0;}14(同上)#include <stdio.h>#include <stdbool.h>int main(){int year;bool leap;scanf("%d",&year);if (year%4==0){if(year%100==0){if(year%400==0)leap=true;elseleap=false;}elseleap=true;}elseleap=false;if (leap==true)printf("%d is ",year);elseprintf("%d is not ",year);printf("a leap year.\n");return 0;}15(求根,并且要先判断是否有根)#include <stdio.h>#include <math.h>int main(){double a,b,c,disc,x1,x2,realpart,imagpart;scanf("%lf,%lf,%lf",&a,&b,&c);printf("The equation ");if(fabs(a)<=1e-6)printf("is not a quadratic\n");else{disc=b*b-4*a*c;if(fabs(disc)<=1e-6)printf("has two equal roots:%8.4f\n",-b/(2*a));elseif(disc>1e-6){x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2);}else{realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(" has complex roots:\n");printf("%8.4f+%8.4fi\n",realpart,imagpart);printf("%8.4f-%8.4fi\n",realpart,imagpart);}}return 0;}16(折扣问题)#include <stdio.h>int main(){int c,s;float p,w,d,f;printf("please enter price,weight,discount:"); // 提示输入的数据scanf("%f,%f,%d",&p,&w,&s); // 输入单价、重量、距离if(s>=3000) c=12; // 3000km以上为同一折扣else c=s/250; // 3000km以下各段折扣不同,c的值不相同switch(c){case 0: d=0; break; // c=0,代表250km以下,折扣d=0 case 1: d=2; break; // c=1,代表250到500km以下,折扣d=2%case 2:case 3: d=5; break; // c=2和3,代表500到1000km 以下,折扣d=5%case 4:case 5:case 6:case 7: d=8; break; // c=4-7,代表1000到2000km以下,折扣d=8%case 8:case 9:case 10:case 11: d=10; break; // c=8-11,代表2000到3000km以下,折扣d=10%case 12: d=15; break; // c12,代表3000km以上,折扣d=15%}f = p * w * s * (1 - d / 100); // 计算总运费printf("freight=%10.2f\n",f); // 输出总运费,取两位小数return 0;}5——6章1(1,2两题注意直道型和当型的区别)#include <stdio.h>int main(){int i=1,sum=0; // 定义变量i的初值为1,sum的初值为0while (i<=100) // 当i>100,条件表达式i<=100的值为假,不执行循环体{ // 循环体开始sum=sum+i; // 第一次累加后,sum的值为1i++; // 加完后,i的值加1,为下次累加作准备} // 循环体结束printf("sum=%d\n",sum); // 输出1+2+3…+100的累加和return 0;}2#include <stdio.h>int main(){int i=1,sum=0;do{sum=sum+i;i++;}while(i<=100);printf("%d\n",sum);return 0;}3#include <stdio.h>#define SUM 100000int main(){float amount,aver,total;int i;for (i=1,total=0;i<=1000;i++){printf("please enter amount:");scanf("%f",&amount);total= total+amount;if (total>=SUM) break;}aver=total/i;printf("num=%d\naver=%10.2f\n",i,aver);return 0;}4(continue的用法输出100-200所有不被3整除的数)#include <stdio.h>int main(){int n;for (n=100;n<=200;n++){if (n%3==0)continue;printf("%d ",n);}printf("\n");return 0;}5#include <stdio.h>int main(){int i,j,n=0;for (i=1;i<=4;i++)for (j=1;j<=5;j++,n++){ if(n%5==0)printf("\n"); //控制在输出5个数据后换行if (i==3 && j==1) break; //遇到第3行第1列,终止内循环printf("%d\t",i*j);}printf("\n");return 0;}6(用π/4=1-1/3+1/5-1/7+.......+1/n²求π的近似值,直到发现某项的绝对值小于10的六次方)#include <stdio.h>#include<math.h>int main(){int sign=1; // sign用来表示数值的符号double pi=0.0,n=1.0,term=1.0; // pi代表π,n代表分母,term代表当前项的值while(fabs(term)>=1e-8) // 检查当前项term的绝对值是否大于或等于10的(-6)次方{pi=pi+term; // 把当前项term累加到pi中n=n+2; // n+2是下一项的分母sign=-sign; // sign代表符号,下一项的符号与上一项符号相反term=sign/n; // 求出下一项的值term}pi=pi*4; // 多项式的和pi乘以4,才是π的近似值printf("pi=%10.8f\n",pi); // 输出π的近似值}7#include <stdio.h>int main(){int f1=1,f2=1,f3;int i;printf("%12d\n%12d\n",f1,f2);for(i=1; i<=38; i++){f3=f1+f2;printf("%12d\n",f3);f1=f2;f2=f3;}}8(兔子问题)#include <stdio.h>int main(){int f1=1,f2=1;int i;for(i=1; i<=20; i++) // 每个循环中输出2个月的数据,故循环20次即可{printf("%12d %12d ",f1,f2); // 输出己知的两个月的兔子数if(i%2==0) printf("\n");f1=f1+f2; // 计算出下一个月的兔子数,并存放在f1中f2=f2+f1; // 计算出下两个月的兔子数,并存放在f2中}return 0;}9 注:9 10 两题为判断输入的数是否为素数#include <stdio.h>int main(){int n,i;printf("please enter a integer number,n=?");scanf("%d",&n);for (i=2;i<=n-1;i++)if(n%i==0) break;if(i<n) printf("%d is not a prime number.\n",n);else printf("%d is a prime number.\n",n);return 0;}10#include <stdio.h>#include <math.h>int main(){int n,i,k;printf("please enter a integer number:n=?");scanf("%d",&n);k=sqrt(n);for (i=2;i<=k;i++)if(n%i==0) break;if(i<=k) printf("%d is not a prime number.\n",n);else printf("%d is a prime number.\n",n);}11(此为输出100-200的所有素数)# include <stdio.h># include <math.h>int main(){int n,k,i,m=0;for(n=101;n<=200;n=n+2) // n从100变化到200,对每个n进行判定{ k=sqrt(n);for (i=2;i<=k;i++)if (n%i==0) break; // 如果n被i整除,终止内循环,此时i<k+1if (i>=k+1) // 若j>=k+1,表示n未被整除{printf("%d ",n); // 应确定n是素数m=m+1; // m用来控制换行,一行内输出10个录素数}if(m%10==0) printf("\n"); // m累计到10的倍数,换行}printf ("\n");return 0;}12#include <stdio.h>int main(){char c;c=getchar();while(c!='\n'){if((c>='a' && c<='z') || (c>='A' && c<='Z')){ if(c>='W' && c<='Z' || c>='w' && c<='z') c=c-22;else c=c+4;}printf("%c",c);c=getchar();}printf("\n");return 0;}13(将10个元素的数组依次赋值并且输出各元素的值)#include <stdio.h>int main(){int i,a[10];for (i=0; i<=9;i++)a[i]=i;for(i=9;i>=0; i--)printf("%d ",a[i]);printf("\n");return 0;}14(具有20个元素的数组,前两个元素为1 ,1 以后每个元素的大小为前两个元素大小之和,输出该数组)#include <stdio.h>int main(){int i;int f[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){if(i%5==0) printf("\n");printf("%12d",f[i]);}printf("\n");return 0;}15.#include <stdio.h>int main(){int a[10];int i,j,t;printf("input 10 numbers :\n");for (i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++) // 进行9次循环,实现9趟比较for(i=0;i<9-j;i++) // 在每一趟中进行9-j次比较if (a[i]>a[i+1]) // 相邻两个数比较{t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("the sorted numbers :\n");for(i=0;i<10;i++)printf("%d ",a[i]);printf("\n");return 0;}16(保持数值不变,将2行3列的数组变成3行2列的数组)#include <stdio.h>int main(){int a[2][3]={{1,2,3},{4,5,6}};int b[3][2],i,j;printf("array a:\n");for (i=0;i<=1;i++){for (j=0;j<=2;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf("\n");}printf("array b:\n");for (i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%5d",b[i][j]);printf("\n");}return 0;}17(利用数组输出字符串)#include <stdio.h>int main(){char c[15]={'I',' ','a','m',' ','a',' ','s','t','u','d','e','n','t','.'};int i;for(i=0;i<15;i++)printf("%c",c[i]);printf("\n");return 0;}18#include<stdio.h>#include<string.h>int main ( ){char str[3][20]; // 定义二维字符数组char string[20]; // 定义一维字符数组,作为交换字符串时的临时字符数组int i;for (i=0;i<3;i++)gets (str[i]); // 读入3个字符串,分别给str[0],str[1],str[2]if (strcmp(str[0],str[1])>0) // 若str[0]大于str[1]strcpy(string,str[0]); // 把str[0]的字符串赋给字符数组stringelse // 若str[0]小于等于str[1]strcpy(string,str[1]); // 把str[1]的字符串赋给字符数组stringif (strcmp(str[2],string)>0) // 若str[2]大于stringstrcpy(string,str[2]); // 把str[2]的字符串赋给字符数组stringprintf("\nthe largest string is:\n%s\n",string); // 输出stringreturn 0;}第7章1 **************(输出How do you do!)**************#include <stdio.h>int main(){void printstar();void print_message();printstar();print_message();printstar();return 0;}void printstar(){printf("******************\n");}void print_message(){printf(" How do you do!\n");}2(输入两个数输出较大值)#include <stdio.h>int main(){ int max(int x,int y);int a,b,c;printf("please enter two integer numbers:");scanf("%d,%d",&a,&b);c=max(a,b);printf("max is %d\n",c);}int max(int x,int y) // 定义max函数{int z; // 定义临时变量z=x>y?x:y; // 把x和y中大者赋给zreturn(z); // 把z作为max函数的伦值带回main函数}3(3与4都为建立个函数可以比较四个数大小并且输出最大值)#include <stdio.h>int main(){ int max4(int a,int b,int c,int d); // 对max4的函数声明int a,b,c,d,max;printf("Please enter 4 interger numbers:"); // 提示输入4个数scanf("%d %d %d %d",&a,&b,&c,&d); // 输入4个数max=max4(a,b,c,d); // 调用max4函数,得到4个数中的最大者printf("max=%d \n",max); // 输出4个数中的最大者return 0;}int max4(int a,int b,int c,int d) // 定义max4函数{int max2(int a,int b); // 对max2的函数声明int m;m=max2(a,b); // 调用max2函数,得到a和b两个数中的大者,放在m中m=max2(m,c); // 调用max2函数,得到a,b,c三个数中的大者,放在m中m=max2(m,d); // 调用max2函数,得到a,b,c,d四个数中的大者,放在m中return(m); // 把m作为函数值带回main函数}int max2(int a,int b) // 定义max2函数{if(a>=b)return a; // 若a>=b,将a为函数返回值elsereturn b; // 若a<b,将b为函数返回值}4#include <stdio.h>void main(){ int max4(int a,int b,int c,int d);int a,b,c,d,max;printf("Please enter 4 interger numbers:");scanf("%d %d %d %d",&a,&b,&c,&d);max=max4(a,b,c,d);printf("max=%d \n",max);}int max4(int a,int b,int c,int d){int max2(int a,int b);int m;m=max2(max2(max2(a,b),c),d); /* 仔细分析此行*/return(m);}int max2(int a,int b){return(a>b?a:b);}5#include <stdio.h>int main(){ int age(int n);printf("NO.5,age:%d\n",age(5)); //输出第5人的年龄return 0;}int age(int n) //定义递归函数{int c;if(n==1) // 如果n等于1c=10; // 年龄为10else // 如果n不等于1c=age(n-1)+2; // 年龄是前一人的年龄加2(如第4人年龄是第3人年龄加2)return(c); // 返回年龄}6(建立个Fac函数使得输入任意数N 输出Y=n*(n-1)*..........*2*1)#include <stdio.h>int main(){ int fac(int n);int n;int y;printf("input an integer number:");scanf("%d",&n);y=fac(n);printf("%lld!=%d\n",n,y);return 0;}int fac(int n){int f;if(n<0)printf("n<0,data error!");else if(n==0||n==1)f=1;else f=fac(n-1)*n;return(f);}7(构造具有10个元素的数组,输出数组的平均值)#include <stdio.h>int main(){ float average(float array[10]); // 函数声明float score[10],aver;int i;printf("input 10 scores:\n");for(i=0;i<10;i++)scanf("%f",&score[i]);printf("\n");aver=average(score); // 调用average函数printf("average score is %5.2f\n",aver);return 0;}float average(float array[10]) // 定义average函数{int i;float aver,sum=array[0];for(i=1;i<10;i++)sum=sum+array[i]; // 累加学生成绩aver=sum/10;return(aver);}8#include <stdio.h>int main(){ int max_value(int array[][4]);int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};printf("Max value is %d\n",max_value(a));return 0;}int max_value(int array[][4]){int i,j,max;max=array[0][0];for(i=0;i<3;i++)for(j=0;j<4;j++)if(array[i][j]>max)max=array[i][j];return (max);}9。