《C语言》课程书面作业答案.doc_第1页
《C语言》课程书面作业答案.doc_第2页
《C语言》课程书面作业答案.doc_第3页
《C语言》课程书面作业答案.doc_第4页
《C语言》课程书面作业答案.doc_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

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

文档简介

1用传统流程图表示求解以下问题的算法。(分别用流程图和N-S图表示)(1)依次将10个数输入,要求将其中最大的数输出。(1)#include main( ) int a10,i,j; printf(输入n); for(i=0;i10;i+) scanf(%d,&ai); i=0;j=a0;for(i=1;i=j) j=ai; printf(最大值:%dn,j);(2)求1+2+3+ +100。 #include void main( ) int i; int S=0; for (i=1;i=100;i+) S=S+i; 2. 求下面算术表达式的值:(1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5(2)43. 写出下面程序的运行结果:#includevoid main() int i,j,m,n; i=8; j=10; m=+i; n=j+; printf(“%d,%d,%dn”,i,j,m,n); 8,10,164.写出下面赋值表达式运算后a的值,设原来a=12:(1)a+=a ;(2) a-=2; (3)a*=2+3; (4)a/=a+a; (5)a%=(n%=2),n的值等于5;(6) a+=a-=a*=a(1)a=a+a=24 (2)a=a-2=10(3)a=a(2+3)=60(4)a=a/(a+a)=12/24=0 (5) a=a%(n=n%2),n=5 -a=a%(n=5%2)=a%(n=1)=12%1=0(6) a=a+(a=a-(a=a*a)=a+(a=a-(a=12*12)=a+(a=144-144)=0+0=05.设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字,请编程序。#include main( ) int a,b,C,s1,s2,v1,v2; printf(请输入圆柱的半径和圆柱的高:) scanf(%d%d,&a,&b); C=2*3.14*a; s1=3.14*a*a; s2=C*b+2*s1; v1=1/3*3.14*a*a*a*4; v2=s1+b; printf(n圆的周长为:%.2fn,C); printf(圆的面积为:%.2fn,s1); printf(圆球表面积为:%.2fn,s2; printf(圆球体积为:%.2fn,v2) ; printf(圆柱体积为:%.2fn,v2); 6.输入一个华氏温度,要求输出摄氏温度。公式为: #include main( ) double tem_c, tem_f; printf(请输入华氏温度:); scanf(%lf, &tem_f); tem_c = (tem_f - 32) * 5.0 / 9.0; printf(%f对应的摄氏温度为%.2f, tem_c); renturn 0; 7.写出下面各逻辑表达式的值。设a=3,b=4,c=5。(1) a+bc & b=c; (2) a|b+c & b-c; (3)!(ab) & !c|1;(4) !(x=a) & (y=b) & 0; (5) !(a+b)+c-1 & b+c/2;8.有一个函数:。写一段程序,输入x,输出y值。 #include main( ) float x,y; scanf(please input number x: %f,x); if (x1) y=x; else if (x10)y=2*x-1; else y=3*x-11printf(ny=%f,y); 9有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),原半径为1,如图。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点建筑高度(塔外的高度为0)。 #include void main( ) int x,y,h,p; float i,j; printf(请输入坐标(i,j):); scanf(%f,%f,&i,&j); if(i0&j0) p=1;x=2;y=2; /*求输入坐标所在区域(第一区间)*/ if(i0) p=2;x=-2;y=2; /*求输入坐标所在区域(第二区间)*/ if(i0&j0&j0) p=4;x=2;y=-2; /*求输入坐标所在区域(第四区间)*/ switch(p) case 1:h=(i-x)*(i-x)+(j-y)*(j-y)=1)?10:0;break; /*求到圆心的距离*/ case 2:h=(i-x)*(i-x)+(j-y)*(j-y)=1)?10:0;break; case 3:h=(i-x)*(i-x)+(j-y)*(j-y)=1)?10:0;break; case 4:h=(i-x)*(i-x)+(j-y)*(j-y)=1)?10:0;break; printf(该点高度为:%dn,h); 10求之值,其中a是一个数字,n表示a 的位数,例如:2+22+222+2222+22222(此时n=5)。n由键盘输入。 #includevoid main()int i,a,n,Sn=0,An=0;printf(请输入a和n的值:);scanf(%d%d,&a,&n);for(i=1;i=n;i+)An=An*10+2;Sn+=An;printf(a+aa+aaa+.=%dn,Sn);11.求(即求)#include main() int i,b=1,j,sum=0; for(i=1;i=20;i+) for(j=1;j=i;j+) b=b*j; sum=sum+b; printf(%d,sum); 12输出以下图案: #include main( ) for(int i=1;i7;i+,i+) for(int j=1;j0;i=i-2) for(int j=1;ji;j+) printf(*);printf(n); 13求一个的整型矩阵对角线元素之和。#include void main() int a33,i,j,sum=0; for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); for(i=0;i3;i+) for(j=0;j3;j+) printf(%d,aij); printf(n); 14将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。 #include #define N 10 void main() int aN,i,temp; printf(请输入%d个整数:n,N); for(i=0;iN;i+) scanf(%d,&ai); printf(输入的数字是:n); for(i=0;iN;i+) printf(%3d,ai); printf(n); for(i=0;iN/2;i+) temp=ai; ai=aN-1-i; aN-1-i=temp; printf(重新排序后的数组是:n); for(i=0;iN;i+) printf(%3d,ai); printf(n); 15编一个程序,将两个字符串连接起来,不要用strcat。 #include void xstrcat(str1,str2) int i,len1; for(i=0;str1i!=0;i+); len1=i; for(i=0;str2i!=0;i+) str1i+len1=str2i; 16写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。#include stdio.h #include int ss (int n) int k; for(k=2;k=sqrt(n);k+) if(n%k=0) return 0; return 1; main() int x; scanf(%d,&x); if(ss(x) printf(YESn); else printf(NOn); 17写一个函数,使给定的一个的二维整型数组转置,即行列互换。#include iostream using namespace std; int main(void) int a33; int b33; int i=0,j=0; for (i=0;i3;i+) for (j=0;jaij; for (i=0;i3;i+) for (j=0;j3;j+) coutaji ; coutendl; return 0; 18编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。#include void main() int c,e,x,y,z; printf(n输入字符串:); fflush(stdin); e=0;x=0;y=0;z=0; while ( (c = getchar ( ) ) != n ) if(c=a&c=A&c=0&c=! & c=: & c=) z+; printf(nn英文字母数为:%d个nn空格数为:%d个nn,e,x); printf(数字为:%d个nn其它字符数为:%d个nn,y,z); 19输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:1输入10个数;2进行处理;3输出10个数。 main( ) int number10; input(number); /*调用输入函数输入number数组的元素*/ max_min_value(number); /*调用对换函数处理number数组*/ output(number); /*调用输出函数输出number数组中元素的值*/ input(int number10) /*此函数向首地址为number的数组输入10个元素*/ int i; printf(Input 10 numbers:); for(i0;i10;i) scanf(%d,&numberi); max_min_value(int array10) /*此函数交换array数组的对应元素*/ int *max,*min,*p,*array_end; array_endarray10; maxminarray; /*max、min初值为数组首地址*/ for(parray1;p*max) maxp; /*max中存放最大数的地址*/ else if(*p*min) minp; /*min中存放最小数的地址*/ *parray0;array0*min;*min*p; /*最小数与第一个数交换*/ *parray9;array9*max;*max*p; /*最大数与最后一个数交换*/ return; output(int array10) /*此函数输出array数组的10个元素*/ int *p; printf(Now,they are:); for(parray;parray9;p) printf(%d ,*p); 20写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。#include stdio.h #include string.h int stringlength( char *str ) return strlen( str ); int main() char str100; int len; printf(Please input a string: ); scanf(%s,str); len = stringlength( str ); printf(The strings length is %d.n,len); return 0; 21输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少?#include void main() int upper=0,lower=0,digit=0,space=0,other=0,i=0; char *p,s20; printf(input the string:n); while(si=getchar()!=n)i+; p=&s0; while(*p!=n) if(A=*p)&(*p=Z) +upper; else if(a=*p)&(*p=z) +lower; else if(0=*p)&(*p=9) +digit; else if(*p= ) +space; else +other; p+; printf(In string,there are %d upper words,%d lower words,%d digitals and %d spaces,the other are %d.,upper,lower,digit,space,other); 22有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。 #include #include struct student char name20; char num20; int a,a1,a2,a3,a4; int aver; stu10; void mark(student *b) int i; for(i=0;i10;i+) bi.a=bi.a1+bi.a2+bi.a3+bi.a3; printf(%d ,bi.a); printf(n); void avemark(student *b) int i; for(i=0;i10;i+) bi.a=bi.a1+bi.a2+bi.a3+bi.a3; bi.aver=bi.a/4; printf(%d ,bi.aver); printf(n); void maxstudent(student *b) int i,max; for(i=0;ibi+1.a)?bi.a:bi+1.a; for(i=0;i10;i+) if(bi.a=max) printf(最高分数学生的姓名,学号,总分,平均分如下:n); printf(%s %s %dn,,bi.num,bi.a,bi.aver); void xianshi(student *b) int i; printf(所有学生信息如下(依次为学生的姓名

温馨提示

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

评论

0/150

提交评论