C语言程序设计实验及代码_第1页
C语言程序设计实验及代码_第2页
C语言程序设计实验及代码_第3页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西南林业大学C语言程序设计实验题、代码、输出结果编写目的:学生的痛,大家都明白,特别是学渣的痛。呃,不过我渐渐从学渣成功逆袭,所以最C语言时不会那么脑大,不用像我们开始时候的茫然。GET时间,但就像那句话说的:Nopain,noget.付出不一定会有收获,但是不付出一定会让你后悔。所以,认真听课,不仅仅只是C语言,还有其他的课程。实验题目及代码、输出结果实验题目目录目录 P1 P6Printf简单输出三角形 P6给定圆半径值为5编程求圆面积和圆周长 P6编写一个摄氏温度与华氏温度之间的转换程序 P6编写程序从键盘上输入两个电阻值求它们并联电阻值和串电阻值,输出结果保留两位小数。 P7(有主函数子函数----------P26)使用两种指定的方法打印正三角形数阵 P7从键盘输入3个数字字符将它们分别转换为对应的整数(即字符’0’转换为整数0,字符’1’转换为整数1,依次类推然后求3个整数的平均值。 P8从键盘输入两个两位的正整数按照以下格式组装成一个四位正整数。------------------------P8(指针变量 P19)输入三角形的三条边长,求三角形的面积。 P9从键盘任意输入3个整数,选出其中的最大数并打印。 P10从键盘输入三个正整数,判断否能构成三角形的三边? P10从键盘输入一个合法的算术运算符(*、/)使用if。---------------------P11(有主函数子函数 P21)从键盘输入一个年份和一个月份使用switch语句编程判断并印该月的天数 P12从键盘输入1个整型的分数使用switch语句编程判断如果数介于0~59分之间就打“不及格如果介于60~79分之就打印“及格;如果介于80~89之间就打印“良好;如果介于90~100之间就打印“优秀。 P13使用while语句编程求100以内能被5整除但不能同时被7整的数,并统计找到的数的个数。 P13从键盘输入一个正整数,使用while语句编程求该整数是一个几位数n使用while语句编程a=∑n1的前n项和 P14n1n1使用for语句编程求an=∑n的前n项和 P151n使用for语句编程求an= 1 的前n项和 P16n∑i=0n∑使用for语句的嵌套结构编程打印九-九乘法表 P16定义一个大小为10的整型一维数组,初始化所有数组元素,程查找数组中的所有奇数,并统计奇数的个数 P17109个元素,91数插入到已有的元素中,需保证这10个数仍然按照降序排序。--------------------------------------------------------------P18利用指针编程,其功能是求电阻的并联值和串联值。 P18利用指针编程,其功能是利用“除号”和“求余号”将输入的个两位的正整数组合成一个新的四位的正整数。 P16定义一个大小为10的整型一维数组并初始化数组元素,再定义一个指针变量让其指向该数组利用指针编程查找数组中的所奇数。 P20输入三角形的三条边长,定义一个子函数fun()求三角形的面积--------------------P21定义一个子函数fun()打印菱形。 P22定义一个子函数fun()其功能是求1累加到100的和 P23n定义一个子函数fun(),求表达式a=1的前n项和 P23nn!定义一个fun()函数,其功能是:求两个整数的和、差、积、商。----------------P26ax2+bx+c=0abc,求方程的实根。定义三个子函数fun1(fun2(fun3()分别处理方程有无实根、有两个相同实根、有两个不同实根的情况----------------------------------------------------------------P27从键盘上输入一个的字符串,输出所有ASCII码为奇数的字符并统计这些字符的个数。 P28从键盘上输入一个由大写字母、小写字母、数字字符、其它字构成的字符串,统计字符串中的大写字母个数、小写字母个数数字字符个数、其它字符个数。 P28从键盘输入两个字符串,分别存到字符数组a和字符数组b中编程将第二个字符串连接到第一个字符串末尾形成一个新字符串(不使用#include<string.h>库函数) P29使用while语句编程求

=xn(n从0开始)前n项值,直到某一项n!的值小于10-6就结束循环。 P30使用for语句的嵌套结构编程打印行数为奇数的对称三教菱形----------------------------------------------P31从键盘输入一个正整数x,编程求比x大的,最临近x的n个素数例如为x和n分别输入数值10和就表示求出比10大的最临近10的15个素数。 P31题目及答案printf()函数的编程练习——格式1编程输出如图所示的三角形。voidmain(){printf("*\n");printf("**\n");printf("***\n");printf("****\n");}给定圆半径值为5,编程求圆面积和圆周长提示:doubler5sl;%lf(3)C语言中没有∏这个符号,编写程序时直接使用3.14159(4)C语言中没有求次方的运算符,求次方可用连乘的方法#include<stdio.h>#definePI3.14159intmain(){floatr=5;printf("圆半径=%lf\n圆面积=%f\n圆周长=%f\n",r,PI*r*r,2*PI*r);}(其中一个数的n次方可以用数学运算来算rn)scanf()函数、运算符编程练习编写一个摄氏温度与华氏温度之间的转换程序,转换公式是:

F9C325提示:该公式中的“C”是一个从键盘输入的已知量;“F”是通过公式计算并打印出来的未知量。#include<stdio.h>voidmain(){doubleF,C;printf("请输入一个摄氏温度值:",C);scanf("%lf",&C);或2若定义类型为2或或用强制类型转换(”在运算时为整型运算printf(":%.2lf",F);}果保留两位小数。运行结果如图所示:注:并联和串联的电阻值计算公式如下。并联电阻RP

R1*R2R1+R2串联电阻RSR1+R2提示:scanf函数可以写成scanf("%d,%d"&r1&r2);结果保留两位小数的格式说明符是“%.2lf”。#include<stdio.h>voidmain(){doubleR1,R2,RP,RS;printf("请输入两个电阻值:",R1,R2);scanf("%lf,%lf",&R1,&R2);RP=(R1*R2)/(R1+R2);RS=R1+R2;printf("并联电阻值:%.2lf\n串联电阻阻值:%.2lf",RP,RS);}字符的输入和输出1、使用两种指定的方法打印如图所示图形。方法一:使用printf()函数的“%c”格式打印图形。提示:一个“%c”只能打印一个字符。方法二:使用printf()函数的“%d”格式打印图形。方法一:#include<stdio.h>voidmain()}printf("%c%c%c\n",b,b,b);printf("%c%c%c%c%c\n",c,c,c,c,c);{printf("%4d\n%4d\n%d\n",1,222,33333方法二的类似(运用ASCLL码));#include<stdio.h>}voidmain()方法二:{#include<stdio.h>inta,b,c;voidmain()a=49;{b=50chara,b,c;c=51;a='1';printf(" %c\n", a);b='2';printf("%c%c%c\n",b,b,b);c='3';printf("%c%c%c%c%c\n",c,c,c,c,c);printf("%c\n",a);}1、从键盘输入3个数字字符,将它们分别转换为对应的整数值(即字符’0’转换为整数0,字符’1’转换为整数1,依次类推然后求3运行结果如图所示:提示:本题的变量定义可参考如下:chara,bc; //变量a,b,c入的3个数字字符intx,y,z; //变量x,y,z换后的3个整数doubleaver;//变量aver保存求出的平均值#include<stdio.h>#include<math.h>voidmain(void){double a,b,c,d;printf("请输入三个数字字符:");scanf("%lf,%lf,%lf",&a,&b,&c);d=(a+b+c)/3;printf("平均值=%lf\n",d);}

#include<stdio.h>voidmain(void){chara,b,c;intx,y,z;doubleaver;printf("请输入三个数字字符:");x=a-48;z=c-48;aver=(x+y+z)/3.0;printf("平均值为:%2lf",aver)从键盘输入两个两位的正整数,按照以下格式组装成一个四位的正整数。例如:输入12和34,组装成的四位数是1324。运行效果如右图所示:提示:首先利用“除号”和“求余号”分别把两个两位正整数的十位数、个位数分离开;再经过数学运算组装成一个四位数。scanf函数可以写成scanf("%d%d"&a&b);#include<stdio.h>#include<math.h>voidmain(void){inta,b,z;printf("请输入两个两位数的正数:");scanf("%d%d",&a,&b);z=a/10*1000+b/10*100+a%10*10+b%10;printf("合成的四位正整数是:%d\n",z);}数学函数的使用1、输入三角形的三条边长,求三角形的面积。运行结果如图所示:提示:本题的变量定义可参考如下:inta,b,c;doublex,s;scanf函数可以写成scanf("%d,%d,%d",&a,&b,&c);计算三角形面积的公式是:

x1

(abc)s x(xa)(xb)(xc) 2其中x的开方值的库函数是sqrt(x),使用时需包含头文件math.h#include<stdio.h>voidmain(void){inta,b,c;doublex,s;printf("请输入三角形的三边:");scanf("%d%d%d",&a,&b,&c);x=(a+b+c)/2;s=sqrt((x-a)*(x-b)*(x-c)*x);printf("s=%lf\n",s);}单分支if语句编程练习从键盘任意输入3个整数,选出其中的最大数并打印。提示:要判断最大数,需对每两个数作两两比较。3个if语句编写程序。2a、bab中。#include<stdio.h>voidmain(){inta,b,c,t;printf("请输入三个整数:");scanf("%d%d%d",&a,&b,&c);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=b;b=c;c=t;

}#include<stdio.h>voidmain(){inta,b,t;printf("a,b中");scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);if(a>b){t=a;a=b;b=t;printf("运行结果:a=%d,b=%d\n",a,b);}elseprintf(" 运 行 果:a=%d,b=%d\n",a,b);}printf("最大数是:%d\n",a); }从键盘输入三个正整数息。提示:该题属于“if-else语句”结构。能构成三角形的逻辑条件是:任意的两边之和均要大于第三边。计算三角形面积的公式是:x(xx(xa)(xb)(xc)

x12

(abc)本题的变量定义可参考如下:inta,b,c; doublex,s;xsqrt(x),需包含头文件math.h#include<stdio.h>voidmain(void){intdoublex,s;printf("请输入三角形的三边:");scanf("%d%d%d",&a,&b,&c);m=a+b;n=b+c;t=a+c;if(m>c&&n>a&&t>b){x=(a+b+c)/2;s=sqrt((x-a)*(x-b)*(x-c)*x);printf("构成的三角形面积是:%.2lf\n",s);}elseprintf("不能构成三角形\n");}从键盘输入一个合法的算术运算符-*及两个实数if语句编写程序(要求结果保留两位小数)。程序运行效果如下图所示:提示:该题属于“if语句”结构。本题的变量定义可参考如下:charfu; //fu变量用来存放运算符doublexyz; //x、y2个实数,z存放运算结果输入字符型数据的格式说明符是%c,实型数据的格式说明符是%lf。2位小数的格式说明符是%.2lf。P613.7switch语句编写该题程序。voidmain(){charfu;doublex,y,z;intt,a;printf("请输入一个算数运算符和两个浮点数");scanf("%c%lf%lf",&fu,&x,&y);t=47-fu;if(t==4){z=x+y;printf("%.2lf %c %.2lf = %.2lf\n",x, fu ,y ,z);}elseif(t==5){z=x*y;printf("%.2lf %c %.2lf = %.2lf\n",x, fu ,y ,z);}elseif(t==2){z=x-y;printf("%.2lf %c %.2lf = %.2lf\n",x, fu ,y ,z);}elseif(t==0){}else}

z=x/y;printf("%.2lf %c %.2lf = %.2lf\n",x, fu ,y printf("\n");switch程序运行效果如下所示:提示:本题先使用if判断年份和月份是否有效。如果年份和月份有效,再嵌套switch语句判断每个月份的天数。对于2参考教材P62例3.8。#include<stdio.h>voidmain(){intyear,month,day;printf("请输入一个年份和一个月份:");scanf("%d%d",&year,&month);if(month>0&&month<=12){switch(month){case1:case3:case5:case7:case8:case10:case12:printf("%d月有31天\n",month);break;case4:case6:case9:case11:printf("%d月有30天\n",month);break;default:if((year%4==0&&year%100!=0)||(year%400==0))printf("2月有29天\n");elseprintf("2月有28天\n");break;}else

}printf("输入的月份值无效!");}从键盘输入1个整型的分数,使用switch语句编程,判断如果分数介于0~590~9~90~0#include<stdio.h>voidmain(){inta,b;printf("请输入一个分数介于<0~100>间:");scanf("%d",&a);if(a>0&&a<=100){b=a/10;

break;case9:case10:printf("优秀\n");break;default:printf("不及格\n");break;switch(b){case6:case7:

printf("及格\n");

}else

}printf("输入的分数份值无效!\n");break;case8: }printf("良好\n");使用while语句编程求100以内能被5整除但不能同时被7整除的数,并统计找到的数的个数。提示:该题变量可定义为:int i=1,n=0;//i是循环变量, n是统计个数的变量整除问题应使用求余号“/#include<stdio.h>voidmain(){if(b==0&&c!=0){printf("%d ",i);inti,n,b,c;n=n+1;i=1;n=0;}printf("100以内能被5整除但不能i++;同时被7整除的数是:\n");}while(i<=100){printf("符合条件的数有%d 个b=i%5;\n",n);c=i%7;}从键盘输入一个正整数,使用while语句编程求该整数是一个几位数。程序运行效果如下所示:提示:该题变量可定义为 intx,n=0,m;其中,x保存输入的正整数,n统计位数,m暂存x的值。每次循环将x10倍,直到x0整数的位数。#include<stdio.h>voidmain(){intx,n,m,i;n=0;printf("请输入一个正整数:");i=x;while(m!=0){n++;x=m;}printf("%d是一个%d位数\n",i,n);}使用while语句编程求以下表达式的值,程序运行结果如图所示:1 1 1sum11

...2 123

12...10提示:该题变量可定义为:int i;double mu,t,sum;本题的循环体里有3个通式:①分母的通式、②当前项的通式、③求和的通式、④i自增的通式。#include<stdio.h>voidmain()sum=1/mu+t;{t=sum;inti;i++;doublemu,t,sum;mu=mu+i;mu=1;t=0;}printf("表达式的值为:\n");i=1;printf("sum=%f\n",sum);while(i<=10)}{for语句编程练习1、使用for语句编程求以下表达式的值,如果从键盘输入20赋值给变量n,则运行效果如图所示:提示:该题变量可定义为inti,n; doublet,sum;sqrt,并包含头文件math.hS1 2) 2 3) 2 3 n)#include<stdio.h>voidmain(){inti,n;doublet,sum,b=0;printf("请输入整数值:");scanf("%d",&n);sum=0;for(i=0;i<=20;i++){t=sqrt(i,2);b=b+t;sum=sum+b;}printf("sum=%lf\n",sum);}使用for语句编程求以下表达式的值,程序运行结果如图所示:1 1 1sum11提示:

...2 123 12...10注意观察可知相邻两项中,后一项的分母是前一项的分母加i值。该题变量可定义为:int i;double mu,t,sum;其中i是循环变量,mu保存每一次循环的当前项的分母,t保存每一次循环的当前项,sum保存N项式的总和。#include<stdio.h>voidmain(){inti;mu=mu+i;t=1/mu;sum=sum+t;doublet=0,sum=0,mu=0;}printf("表达式值为:\n");for(i=1;i<=10;i++)printf("sum=%lf\n",sum);{}循环的嵌套编程练习使用for语句的嵌套结构编程打印九-九乘法表,程序运行效果如图所示:#include<stdio.h>voidmain(){inti,m,n;for(i=1;i<10;i++){for(m=1;m<=i;m++){n=i*m;printf("%d*%d=%d",m,i,n);}printf("\n");}}定义一个大小为10的整型一维数组,初始化所有数组元素,编程查找数组中的所有奇数,并统计奇数的个数。运行效果如图所示:提示:本题变量定义可参考如下inta[10]={2,4,5,6,9,11,13,16,17,19},i,sum=0;首先用一个for10个数组元素的初值。再用一个循环嵌套if语句查找并打印数组中的奇数。(1)源程序粘贴在此处。#include<stdio.h>printf("数组中的奇数是:");//#defineN10for(i=0;i<=10;i++)voidmain(){{int a[10]={2,4,5,6,9,11,13,16,17,19},if(a[i]%2!=0)i,n=0;{ printf("%d",a[i]);printf("数组中的初始值是:");n++;}for(i=0;i<10;i++){}printf("%d",a[i]);printf("\n");}printf("\n");printf("\n");printf("奇数个数是:%d\n",n);printf("\n");}1099个元素已经1这10个数仍然按照降序排序。程序运行效果如下图所示:提示:本题变量定义可参考如下inta[10]={20,18,15,12,10,9,7,5,2}, i, j, t;本题使用冒泡法排序,先将键盘输入的1个整数放到数组元素a[9]使用排序算法对这10个数进行降序排序。#include<stdio.h>//#defineN10voidmain(){inta[9]={20,18,15,12,10,9,7,5,2};inti,j,t;printf("9for(i=0;i<9;i++){printf("%d",a[i]);}printf("\n");printf("\n");

}printf("\n");for(i=0;i<10;i++){for(j=0;j<9-i;j++){if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("请输入一个整数:");printf("降序排序后的整数为:");scanf("%d",&a[9]);for(i=0;i<10;i++)printf("\n");数组中的0{printf("%d",a[i]);for(i=0;i<10;i++)}{printf("\n");printf("%d",a[i]);}利用指针编程,其功能是求电阻的并联值和串联值。程序运行效果如图所示:要求:输入电阻值;计算并联串联值;打印结果都必须使用指针完成。提示:该题的变量可定义为intr1,r2,*p1,*p2; doublerp,rs,*pp,*ps;其中指针p1、p2用来指向并操作变量r1、r2;指针pp、ps用来指向并操作变量rp、rs。在利用指针编程之前,应将指针指向对应的变量。#include<stdio.h>voidmain(){intr1,r2,*p1,*p2;doublerp,rs,*pp,*ps;printf("请输入两个电阻值");scanf("%d%d",&r1,&r2);p1=&r1;p2=&r2;rp=(double)(*p1**p2)/(double)(*p1+*p2);rs=*p1+*p2;pp=&rp;ps=&rs;printf("并联电阻组织=%lf\n",*pp);printf("串联电阻组织=%lf\n",*ps);}利用指针编程,其功能是利用“除号”和“求余号”将输入的两个两位的正整数组合成一个新的四位的正整数。要求:输入整数值;计算;打印结果都必须使用指针完成。提示:该题的变量可定义为inta,b,c,*pa,*pb,*pc;其中指针pa、pb、pc分别用来指向并操作变量a、b、c。变量a、b用来存放输入的两个两位正整数,变量c用来存放组合后的四位的正整数。{方法一}#include<stdio.h>voidmain(){inta,b,c,*pa,*pb,*pc;printf("请输入两个两位数的正整数:");scanf("%d%d",&a,&b);pa=&a;pb=&b;pc=&c;printf("组合成的四位正整数是:%d\n",*pc);}{方法二}#include<stdio.h>voidmain(){inta,b,c,*pa,*pb,*pc;pa=&a;pb=&b;scanf("%d%d",pa,pb);c=*pa/10*1000+*pb/10*100+*pa%10*10+*pb%10;pc=&c;printf("%d\n",*pc);} //Int前不能空行,不然无法识别。定义一个大小为10指向该数组,利用指针编程查找数组中的所有奇数。运行效果如图所示:提示:该题变量可定义为inta[10]={2,4,5,6,9,11,13,16,17,19},*p,i;p指向数组。要求:使用“下标法”编程,即使用“p[i]”的形式引用数组元素。[方法一]#include<stdio.h>{voidmain()if(p[i]%2!=0){{ printf("%d",p[i]);intn++;a[10]={2,4,5,6,9,11,13,16,17,19},*p,i,n=0;p=&a[i];(p=a;)printf("数组中的初始值是:");}}for(p=a,i=0;i<10;i++) {printf("%d",p[i]);

printf("\n");printf("\n");printf("奇数个数是:%d\n",n);}printf("\n");printf("\n");printf("数组中的奇数是:");for(p=a,i=0;i<=9;i++) (for(i=0;i<=9;i++))printf("\n");printf("\n");for(i=0;i<=9;i++){if(p[i]%2!=0)[方法二]#include<stdio.h>voidmain(){}printf("%d",p[i]);n++;{int}a[10]={2,4,5,6,9,11,13,16,17,19},*p,i,n=0;printf("\n");p=a;printf("数组中的初始值是:");printf("\n");printf("奇数个数是:%d\n",n);for(i=0;i<10;i++){printf("%d",p[i]);}}fun所示::数据输入和结果打印都必须在main()函数中完成。fun提示:计算三角形面积的公式是:s x(xa)(xb)(xc)

x12

(abc)计算x的开方值的库函数是sqrt(x),使用时需包含头文件math.hfun函数的函数首部可参考如下doublefun(inta,intb,intc)//该函数有3个形参,返回值类型为double#include<stdio.h>#include<math.h>doublefun(inta,intb,intc){doublem;doubled,s;d=(a+b+c)/2;s=sqrt((d-a)*(d-b)*(d-c)*d);return(s);}voidmain(){inta,b,c;doublem;printf("请输入三角形的三边:");scanf("%d%d%d",&a,&b,&c);m=fun(a,b,c);printf("三角形面积=%lf\n",m);}定义一个子函数fun()打印菱形。运行结果如图所示:要求:菱形的行数在main()函数中输入,根据输入的行数决定菱形打印几行。提示:fun函数的函数首部可参考如下voidfun(intx)//1回值在fun函数内部,首先根据形参x后再执行循环的嵌套结构分别打印正三角和倒三角。#include<stdio.h>voidfun(intx)

printf("\n");}{inti,j,k;for(i=1;i<=x/2+1;i++){for(k=1;k<=x/2+2-i;k++)printf("");for(j=1;j<=2*i-1;j++)printf("*");

for(i=1;i<=x/2;i++){printf("");for(k=1;k<=i;k++)printf("");for(j=1;j<=x-2*i;j++)printf("*");printf("\n");} printf("请输入菱形的行数(注意:行数} 为奇数:voidmain(){inta;

scanf("%d",&a);fun(a);}定义一个子函数fun(),其功能是求1累加到100的和。要求:结果在子函数打印。(1)函数写在前,()函数写在后。(2)fun()函数定义为无参、无返回值形式。#include<stdio.h>voidfun(){inti,sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("1+2+3+...+100=%d\n",sum);printf("\n");}voidmain(){fun();定义一个子函数fun(),求表达式 S 1 n

1n!的值。主函数定义如下所示,请完成fun()函数。#include<stdio.h>doublefun(intn);voidmain(){intn;doublesum;printf("请输入n的值:");scanf("%d",&n);sum=fun(n);printf("sum=%lf\n",sum);}doublefun(intn){inti;doublea=1,b,sum=1;for(i=1;i<=n;i++){a=(double)a*i;b=(double)1/a;sum=sum+b;}return(sum);}2、定义一个子函数fun()求算术表达式的解。要求:运算符(*/)和两个整数在主函数输入,结果也在主函数打印。(1)数。如果运算符非法,就打印错误提示信息,不调用fun()函数。(2)fun()函数的函数首部可以参考如下double fun(char fu, int a, int b)其中形参fuabdouble,表示函数的运行结果是实数。doublefun(char fu, doubledouble y,intt){doubleans;{if(t==4)ans=x+y;elseif(t==5)ans=x*y;elseif(t==2)ans=x-y;elseif(t==0)ans=x/y;/* elseprintf("运算符非法,无法参与运算\n");*/}return(ans);}

printf("请输入一个算数运算符和两个浮点数");scanf("%c%lf%lf",&fu,&x,&y);t=47-fu;if(t==4||t==5||t==2||t==0){z=fun(fu,x,y,t);printf("%.2lf %c = %.2lf\n",x ,fu ,y ,z);}elseprintf("运算符非法,无法参与运算\n");}#include<stdio.h>voidmain(){charfu;doublex,y,z;intt;参数的“传值”方式与“传地址”方式编程练习1、在主函数中输入2个电阻值,定义2提示:主函数中的变量定义可参考如下doublea,b,bing,chuan;#include<stdio.h>voidfun(doublea,doubleb){doublebing,chuan;bing=(a*b)/(a+b);chuan=a+b;printf("并联电阻阻值=%lf\n",bing);printf("串联电阻阻值=%lf\n",chuan);return;}voidmain(){doublea,b,bing,chuan;scanf("%lf%lf",&a,&b);fun(a,b);}2、定义一个fun()函数,其功能是:求两个整数的和、差、积、商。程序运行效果如图所示:

要求:两个整数值在主函数中输入,运算结果在主函数中输进行运算。提示:main()inta,b,he,chaji;doubleshang;本题需使用参数的传地址方式,fun()函数有6个参数。fun()函数首部为:voidfun(inta,intb,int*he,int*cha,int*ji,double*shang)#include<stdio.h>voidfun(inta,intb,int*he,int*cha,int*ji,double*shang){*he=a+b;*cha=a-b;*ji=a*b;*shang=(double)a/(double)b;}voidmain(){

inta,b,he,cha,ji;doubleshang;printf("scanf("%d%d",&a,&b);fun(a,b,&he,&cha,&ji,&shang);printf("和:%d+%d=%d\n",a,b,he);printf("差:%d-%d=%d\n",a,b,cha);printf("积:%d*%d=%d\n",a,b,ji);printf("商:%d/%d=%lf\n",a,b,shang);}在主函数中输入一元二次方程ax2+bx+c=0的三个系数a、b、c,求方程的实根。定义三个子函数fun1()、fun2()、fun3()分别处理方程有无实根、有两个相同实根、有两个不同实根的情况。要求:(1)a、b、c值需在主函数中输入;

main函数中打印提示:求方程实根的计算公式是#include<stdio.h>#include<math.h>

//fun3函数double

if(deta<0){//fun1函数voidfun1(){a,doubleb,doublec){doublex1,x2,deta;//doublem;fun1();printf("\n");return;deta=((b*b)-4*a*c);}}x1=(double)(-b+sqrt(deta))/(elseif(deta==0.0)//fun2函数double)(2*a);x2=(double)(-b-sqrt(deta))/({m=fun2(a,b,c);doublefun2(doubledouble)(2*a);printf("X1=X2=%lf\n",ma,doubleb,doublec)return(x1,x2););{}doublex1,deta;}//doublem;voidmain()elsedeta=((b*b)-4*a*c);{{x1=(double)(-b+sqrt(deta))/(doublea,b,c;m=fun3(a,b,c);double)(2*a);doubledeta;printf("X1=%lfreturn(x1);doublem;printf("请输入一元二次方程组的系数\nabc:\n");X2=%lf\n",m);}}scanf("%lf%lf%lf",&a,&b,&c);deta=((b*b)-4*a*c);}从键盘上输入一个的字符串,输出所有ASCII码为奇数的字符,并统计这些字符的个数。运行效果如图所示:提示:gets函数。本题的变量可定义为chara[50];intn=0,i=0;#include<stdio.h>voidmain()printf("%c",a[i]);{n++;chara[50],b[50];}intn=0,i=0;printf("请输入一个字符串:");gets(a);printf("ASCIIfor(i=0;i<=50;i++){if(a[i]%2!=0){

}printf("\n");printf("ASCII码为奇数的字符个数是:%d\n",n);}从键盘上输入一个由大写字母、小写字母、数字字符、其它字符构成的字符串,统计字符串中的大写字母个数、小写字母个数、数字字符个数、其它字符个数。运行效果如图所示:要求:字符串的输入/gets、puts提示:本题的变量可定义为chara[50];inti=0,da=0,xiao=0,shu=0,qi=0;a用来存放字符串;变量i作循环变daxiaoshu、qi其它字符的个数。#include<stdio.h>voidmain(){chara[50];int i=0,da=0,xiao=0,shu=0,qi=0;printf("gets(a);for(i=0;i<=50;i++){if(a[i]>=97&&a[i]<=122)xiao++;elseif(a[i]>=65&&a[i]<=90)da++;elseif(a[i]>=48&&a[i]<=57)shu++;elseif(a[i]>=33&&a[i]<=47)qi++;}printf("大写字母个数是:%d\n",da);//puts(da);printf("\n");printf("小写字母个数是:%d\n",xiao);//puts(xiao);printf("\n");printf("数字字符个数是:%d\n",shu);//puts(sh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论