C语言程序设计教程书后作业参考答案2013_第1页
C语言程序设计教程书后作业参考答案2013_第2页
C语言程序设计教程书后作业参考答案2013_第3页
C语言程序设计教程书后作业参考答案2013_第4页
C语言程序设计教程书后作业参考答案2013_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、重要提醒:请同学们认真复习,为后续课程打好基础,祝取得好成绩!五种题型:填空、选择、阅读程序写结果,程序填空,编程题每章基本概念要熟练掌握(教材中填空和选择有可能认真做一遍)常用算法一定要掌握:顺序结构:定义,赋值(输入),处理,输出分支结构:能够读懂各种结构程序循环结构:读程序,填空最大公约数,最小公倍数,求和,阶乘,水仙花数,回文数,完数,同构数,素数判断,哥德巴赫猜想,孪生素数等。数组:一维数组排序,查找(顺序,折半),找最大小值,求平均值等二维数组;输入和输出二维数组,杨辉三角形函数:能将上述循环、数组部分用函数实现,并正确调用指针:掌握相关概念,能够阅读程序写结果预处理:基本概念,阅

2、读程序自定义数据类型、文件中的基本概念(填空,选择)附书后作业的选择和填空题的全部答案及部分编程题的参考答案练习题1参考答案一、选择题序号12345678参考答案ACADCCCA二、填空题1.程序设计语言主要分为以下三类:机器语言、 汇编语言 和 高级语言 。2.在C语言中,一个函数一般由两个部分组成,它们是函数首部 和 函数体 。3.C程序开发过程的一般步骤为:源程序的编辑、 编译 、 连接 和运行。4. C程序源文件的扩展名为 .c ,编译成功后产生的文件扩展名为 .obj ,连接成功后产生文件扩展名为 .exe 。三、应用题略练习题2参考答案一、选择题序号12345678910参考答案B

3、ACCBABBDC序号1112131415参考答案ABCAC二、填空题1.通常一个字节包含 8 个二进制位。在一个字节中能存放的最大(十进制)整数是 255(无符号),127(带符号) ,最小(十进制)整数是 -128 ,它的二进制数的形式是 10000000 。2.在C语言中,十进制数30的八进制数表示形式是 036 ,十六进制数表示形式是 0x1e ,在内存中它的二进制数表示形式是 0000000000011110 。3.条件“20<x<30或x<-100”的C语言表达式是 x>20&&x<30|x<-100 。4.若a、b和c均是int

4、型变量,则计算表达式a=(b=4)+(c=2)后,a值为 6 ,b值为 4 ,c值为 2 。5.已知int y; float x=-3; ,执行语句y=x2; 后,变量y的值为 语句出错 。6.字符串"ab034x79"的长度为 5 。7.在C语言中(以16位PC机为例),一个float型数据在内存中所占用的字节数为 4 ;一个double型数据在内存中所占的字节数为 8 。8.若s是int型变量,且s=6,则s%2+(s+1)%2表达式的值为 1 。9.表达式pow(2.8,sqrt(double(x)值的数据类型为 double 。10.若a是int型变量,则表达式(a

5、=4*5, a*2), a+6的值为 26 。11.若a是int型变量,则执行表达式a=25/3%3后a的值为 2 。12.若i为int整型变量且赋值为6,则运算i+后表达式的值是 6 ,变量i的值是 7 。13.若x为int型变量,执行语句:x=10;x+=x-=x-x;则x的值为 20 。14.若x和y为double型变量,则表达式x=1,y=x+3/2的值是 2.000000 。15.(-b+sqrt(b*b-4*a*c)/(2*a)的数学式子是 -b+(b2-4ac)/2a 16.sqrt(p*(p-a)*(p-b)*(p-c)的数学式子是 p*(p-a)*(p-b)*(p-c) 。1

6、7.判断某一年份是否为闰年的表达式是(year%4=0|year%100=0) && year%400!=0)。18.用随机函数rand()产生一个在-20,20两位整数的表达式是 x=rand()%41-20。三、阅读分析下列程序。1. 写出下列程序的输出结果。182. 已知字母B的ASCII码为66,写出下列程序的输出结果。67,E3. 写出下列程序的输出结果。a=4,b=3练习题3参考答案一、选择题序号12345678910参考答案DBDDCDDBBA二、填空题1.C语句句尾用 分号 结束。2.若有变量定义:int a=1,b=2,c=3,d=4,x=5,y=6;则表达式

7、(x=a>b)&&(y=c>d) 的值为 0 。3.使用强制转换方法将正整数转换成字符。本题程序如下:本程序的执行结果为 输入一个正整数(小于255):97 a的ASCII码为97 。4.下面程序的输出是 -100,50i=-100,j=50i=-100j=50。5.执行以下程序时,若从第一列开始输入数据,为使变量a=2,b=8,x=6.5, y=56.62,el='C',c2='b',正确的数据输入形式是 a=2 b=8x=6.5 y=56.62c1=C c2=b 。三、程序设计题1.编写程序交换两个变量a,b的值,并输出。如输入时

8、a=3,b=5,输出a=5,b=3。#include<stdio.h>void main() int a,b,c;printf(“输入两个数:a,b”);scanf(“a=%d,b=%d”,&a,&b);c=a;a=b;b=c;printf(“a=%d,b=%d”,a,b);2. 编写程序输入小写字符boy,输出大写字符BOY。#include<stdio.h>void main()char c;printf(“Input:”);scanf(“%c”,&c);c=c-32;printf(“%c”,c);3.已知华氏温度与摄氏温度的转换公式为:C=

9、(F-32)*5/9。编写程序当输入华氏温度F时,输出对应的摄氏温度。#include<stdio.h>void main()float F;scanf(“%f”,&F);printf(“%f”,(F-32)*5/9);4.设圆的半径r=1.5,圆柱高h=3,编写程序求圆周长、圆面积、圆球表面积、圆球体积及圆柱体积。用scanf函数输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。#include<stdio.h>int main()float h,r,l,s,sq,vq,vz;float pi=3.141592;printf(“请输入圆半径r,

10、圆柱高h:”);scanf(“%f,%f”,&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=3.0/4.0*pi*r*r*r;vz=pi*r*r*h;printf(“圆周长为: l=%6.2fn”,l);printf(“圆面积为: s=%6.2fn”,s);printf(“圆球表面积为: sq=%6.2fn”,sq);printf(“圆球体积为: vq=%6.2fn”,vq);printf(“圆柱体积为: vz=%6.2fn”,vz);ruturn 0;5.编写程序输入梯形的上底a,下底b和高h,输出该梯形的面积。#include<stdi

11、o.h>void main()float a,b,h,s;printf(“请输入梯形上底,下底和高:n”);scanf(“%f%f%f”,&a,&b,&h);s=(a+b)*h/2;printf(“梯形面积为: %fn”,s);练习题4参考答案一、选择题序号12345678910参考答案CBAACCBAAB二、填空题1表示“整数x的绝对值大于5”时值为“真”的C语言表达式是 abs(x)>5 && floor(x)=x 。2以下程序运行后的输出结果是 20,0 。3若从键盘输入58,则以下程序输出的结果是 585858 。4以下程序输出的结果

12、是 0 。5以下程序的输出结果是 2 。6若int i=10; 则行下列程序后,变量i的正确结果是 13 。三、程序设计题1.编写程序输入有3个整数a、b、c,并按照从小到大的顺序输出。#include<stdio.h>int main()int a,b,c,t;printf(“please input a b cn”);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;printf(“%d,%d,%dn”,a,b,c);re

13、turn 0;2.有一个函数:编写一个程序,输入x的值,输出y的值。#include<stdio.h>int main()int x,y;printf(“输入x:”);scanf(“%d”,&x);if(x<1)y=x;printf(“x=%d, y=x=%dn”,x,y);else if(x<10)y=2*x-1;printf(“x=%d, y=2*x-1=%dn”,x,y);elsey=3*x-11;printf(“x=%d, y=3*x-11=%dn”,x,y);return 0;3.输入学生的百分制成绩,要求输出学生的成绩、等级以及相应的评语。设用A、B

14、、C、D、E五个等级,且90分以上为等级A,评语为“成绩优秀”,80-89分为等级B,评语为“成绩良好”,70-79分为等级C,评语为“成绩中等”,60-69分为等级D,评语为“成绩及格”,60分以下为等级E,评语为“成绩不及格”。分别用if条件语句和switch开关语句编写程序。方法一:if条件语句#include<stdio.h>void main()int score;printf("输入成绩:");scanf("%d",&score);if(score>100 | score<0)printf("输入错误

15、!n");else if(score>=90)printf("成绩为%d,等级为A,成绩优秀n",score);else if(score>=80)printf("成绩为%d,等级为B,成绩良好n",score);else if(score>=70)printf("成绩为%d,等级为C,成绩中等n",score);else if(score>=60)printf("成绩为%d,等级为D,成绩及格n",score);elseprintf("成绩为%d,等级为E,成绩不及格n

16、",score);方法二:switch开关语句#include<stdio.h>void main()int score;printf("输入成绩:");scanf("%d",&score);if(score>100 | score<0)printf("输入错误!n");elseswitch(score/10) case 10:case 9: printf("成绩为%d,等级为A,成绩优秀n",score);break;case 8: printf("成绩为%d,

17、等级为B,成绩良好n",score);break;case 7: printf("成绩为%d,等级为C,成绩中等n",score);break;case 6: printf("成绩为%d,等级为D,成绩及格n",score);break;default:printf("成绩为%d,等级为E,成绩不及格n",score);4.编写程序输入三个整数,判断它们是否能够构成三角形。若能构成三角形,则输出三角形的类型(等边三角形、等腰三角形、一般三角形),并计算三角形的面积;若不能构成三角形,则输出“不能构成三角形”的信息。#incl

18、ude<stdio.h>#include<math.h>void main()float a,b,c,s,t;printf("input a,b,cn");scanf("%f%f%f",&a,&b,&c);if(a+b>c)&& (a+c>b)&& (b+c>a)t=(a+b+c)/2;s=sqrt(t*(t-a)*(t-b)*(t-c);if(a=b&&b=c)printf("这是等边三角形,面积为%fn",s);els

19、e if(a=b)&&(b!=c)|(b=c)&&(a!=c)|(a=c)&& (a!=b)printf("这是等腰三角形,面积为%fn",s);else printf("这是一般三角形,面积为%fn",s);else printf("不能构成三角形");7.编写程序计算个人所得税。个人所得税的计算方法:(实发工资-3500)*税率-扣除数,设个人所得税起征点为3500元。共分为7级,具体如下:级数应纳税额 税率(%)扣除数1不超过1500元的302超过1500元至4500元的部分101

20、053超过4500元至9000元的部分205554超过9000元至35000元的部分2510055超过35000元至55000元的部分3027556超过55000元至80000元的部分3555057超过80000元的部分4513505#include<stdio.h>void main()float a; /实发工资float b; /应纳税部分工资float s; /税率float kouchu;/扣除数float ptax; /个人所得税 printf("输入工资:");scanf("%f",&a);b=a-3500;if(b&g

21、t;0&&b<=1500)s=0.03;kouchu=0;else if(b<=4500)s=0.1;kouchu=105;else if(b<=9000)s=0.2;kouchu=555;else if(b<=35000)s=0.25;kouchu=1005;else if(b<=55000)s=0.3;kouchu=2755;else if(b<=80000)s=0.35;kouchu=5505;elses=0.45;kouchu=13505;ptax=b*s-kouchu;printf("个人所得税为%fn",pta

22、x);10.编写程序对数据进行加密。设加密方法为:对任意给定的4位整数,每一位数字均加2,若某位数字加2后大于9,则取其除以10的余数,如数据6987加密后的数据为8109。#include<stdio.h>void main()int a,b,c,d,m;scanf("%d",&m);a=m%10+2;if(a>=10) a=a%10;b=m/10%10+2;if(b>=10) b=b%10;c=m/100%10+2;if(c>=10) c=c%10;d=m/1000+2;if(d>=10) d=d%10;m=a+b*10+c*

23、100+d*1000;printf("%dn",m);练习题5参考答案一、选择题序号12345678910参考答案ABBABDCDBD二、填空题1以下程序的输出结果是 52 。2以下程序的输出结果是 17 。3有以下程序:程序运行时,如果从键盘输入:Y? N?<回车>,则输出结果为 X 。4下面程序的运行结果 s=254 。5下面程序段中循环体的执行次数是 3 。6下面程序段的运行结果是 * 。7下面程序的运行结果是 1, -2 。8下面程序段的运行结果是 8 。9下面程序的功能是:计算110之间的奇数之和与偶数之和,试完善程序。10下面程序的功能是:输出100

24、以内能被3整除且个位数为6的所有整数,请填空。三、程序设计题1.编写程序计算1+3+5+7+97+99的值。#include<stdio.h>void main()int i,sum;sum=0;for(i=1;i<=99;i+=2)sum=sum+i; printf("%dn",sum);2.编写程序从键盘输入正整数n,求n!。#include<stdio.h>void main() int i,n,fact=1;scanf ("%d",&n);for(i=1;i<=n;i+)fact*=i;printf(&

25、quot;n=%d,n!=%dn",n,fact);3.编写程序求一个十进制整数的位数。#include<stdio.h>void main()int n,m;scanf("%d",&n);if(n<0)printf("请输入正整数!谢谢合作!n");if(n<=9&&n>=0)m=1;elsem=0; while(n>=1) n=n/10; +m; printf("%dn",m);4.编写程序输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。#in

26、clude<stdio.h>int main(void) /输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 char ch; int char_num=0,kongge_num=0,int_num=0,other_num=0; while(ch=getchar()!='n')/回车键结束输入,并且回车符不计入 if(ch>='a'&&ch<='z'|ch<='z'&&ch>='a') char_num+; else if(ch=

27、' ') kongge_num+; else if(ch>='0'&&ch<='9') int_num+; else other_num+; printf("字母= %d,空格= %d,数字= %d,其它= %dn",char_num,kongge_num,int_num,other_num); return 0; 5.编写程序判断一个3位数是否为回文数。所谓回文数是指从左向右读或从右向左读都是相同的数,也就左右对称的数,如:232、3553、123321等。(此处用函数实现)#include<

28、;stdio.h>#include<string.h>int huiwen(int n) /此处仅判断三位数的回文数int a,c;a=n/100; /百位c=n%10; /个位if(a=c)return 1;else return 0;void main()int huiwen(int n);int x;printf("请输入一个3位正整数:");scanf("%d",&x);if(huiwen(x)printf("%d是回文数n",x);elseprintf("%d不是回文数n",x)

29、;6.编写程序用两种方法(一种方法是使用三重循环形成100999之间的所有数,另一种方法是使用单重循环直接形成100999之间的所有数)求100999之间的所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33。方法一:三重循环#include<stdio.h>int main()int i,j,k,n;printf("parcissus numbers are:");for(i=1;i<=9;i+)for(j=0;j<=9;j+)for(k=0;k<=9;k+

30、)n=i*100+j*10+k;if(n=i*i*i+j*j*j+k*k*k)printf("%5d",n);printf("n");return 0;方法二:单重循环#include<stdio.h>int main()int i,j,k,n;printf("parcissus numbers are:");for(n=100;n<1000;n+)i=n/100;j=n/10-i*10;k=n%10;if(n=i*i*i+j*j*j+k*k*k)printf("%5d",n);printf(&q

31、uot;n");return 0;7.编写程序找出1000之内的所有“完美数(完全数、完备数)”。“完美数”也称为“完数”,它是指一个数恰好等于它的因子之和。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。#include<stdio.h>void main()int m,s,i;for(m=2;m<1000;m+)s=0;for(i=1;i<m;i+)if(m%i)=0)s=s+i;if(s=m)printf("%d,its factors are 1 ",m);for(i=2;i<m;i+)if(m%i=0)pri

32、ntf("+%3d",i);printf("n");14.编写程序验证哥德巴赫猜想(任何一个大于等于6的偶数都可以分解为两个素数之和),验证范围限定为6到2000。#include <stdio.h>int main() int i,x,k; int prime(int n); printf("请输入一个6到2000的偶数:"); scanf("%d",&x); for (i=2;i<=(int)(x/2);i+) k=x-i; if (prime(i)&&prime(k)

33、 printf("%d + %d = %dn",i,k,x); break; /验证成立就退出 return 0;int prime(int n) int i; for(i=2;i<=n/2;i+) if (n%i=0) return 0; return 1; 练习题6 参考答案一、选择题序号12345678910参考答案DDDAADACBC序号11121314参考答案CDAA二、填空题1下面程序的运行结果是 1 1 2 35 8 13 21 34 552以下程序的输出结果是 abc 。3若有定义:int a34=1, 2, 0, 4, 6, 8, 10; ,则初始化

34、后,a12得到的初值是 0 ,a21得到的i初值是 6 。4以下程序可求出所有水仙花数(水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。如:407=4*4*4+0*0*0+7*7*7,故407是一个水仙花数)。请填空。#include <stdio.h>void main()int x,y,z,a8,m,i=0;printf("The special numbers are:n");for(m=100;m<1000; m+) x=m/100;y= (m/10)%10 ;z=m%10;if(x*100+y*10+z=x*x*x+y*y*y+z*

35、z*z) ai=m ; i+; for(x=0; x<i; x+) printf("%6d",ax);5下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。#include <stdio.h>#include <string.h>void main()char a="c language", t; int i,j,k; k=strlen(a);for(i=0;i<=k-2;i+=2) for(j=i+2;j<k; j+=2; ) if( ai>aj ) t=ai; ai=a

36、j; aj=t; puts(a); printf("n"); 8以下程序是求矩阵a,b的和,结果存入矩阵C中,并按矩阵形式输出。请填空。 #include <stdio.h> void main() int a34=3,-2,7,5,1,0,4,-3,6,8,0,2; int b34=-2,0,1,4,5,-1,7,6,6,8,0,2; int i,j,c34; for(i=0;i<3;i+) for(j=0;j<4;j+) cij= aij+bij ; for(i=0;i<3;i+) for(j=0;j<4;j+)printf(&quo

37、t;%3d",cij); printf("n") ; 三、程序设计题1.从键盘输入某个班级的30名学生信息(设只含有学号),编写程序用折半查找法通过输入一个学生的学号查找某一学生(注意:查找前要先进行排序)。#include<stdio.h>#define N 30void main()int aN;int i,j,t,x,mid,low=0,high=N-1;printf("请输入%d名学生的学号:n",N);for(i=0;i<N;i+)scanf("%d",&ai);for(j=0;j<

38、N-1;j+)for(i=0;i<N-j-1;i+)if(ai>ai+1)t=ai;ai=ai+1;ai+1=t;printf("请输入需要查找的学生的学号:n");scanf("%d",&x);domid=(low+high)/2;if(amid=x)break;else if(amid>x)high=mid-1;elselow=mid+1;while(low<=high);if(low<=high)printf("这个学生学号为%dn",x);elseprintf("查找不到n&qu

39、ot;);2.设有某班级35名学生的一门课程考试成绩,编写程序求超过平均的学生(包括学号和成绩),并将所有学生按成绩降序排列输出。#include <stdio.h> #define NUM 35 void main( ) int aNUM2; float sum=0,ave; int i,j,t; printf("请输入%d位同学的学号和成绩:n",NUM); for(i=0;i<NUM;i+) scanf("%d%d",&ai0,&ai1); for(i=0;i<NUM;i+) sum=sum+ai1; ave

40、=sum/NUM; for(i=0;i<NUM;i+) if(ai1>ave) printf("超过平均分的学生学号为:%d,成绩为:%dn",ai0,ai1); for(j=0;j<NUM-1;j+) for(i=0;i<NUM-j-1;i+)if(ai1<ai+11)t=ai0;ai0=ai+10;ai+10=t; t=ai1;ai1=ai+11;ai+11=t;printf("所有学生成绩(降序排列):n"); for(i=0;i<NUM;i+) printf("学号为:%d,成绩为:%dn"

41、,ai0,ai1);4.输入一行字符串,编写程序分别统计各个英文字母出现的次数(不区分字母大小写)。#include <stdio.h>int main()int let26 = 0;int i;char ch;while(ch=getchar()!='n')if (ch>='A' && ch<='Z') letch-'A'+;else if (ch >='a' && ch <='z') letch-'a'+;for

42、 (i=0;i<26;i+)printf("%c: %dn", i+'a', leti);return 0;5.编写程序输出以下杨辉三角形(要求打印出10行)。1 1 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1#include<stdio.h>#define N 10void main() int i,j,k; int aNN; for(i=0;i<N;i+) ai0=1;aii=1; for(i=2;i<N;i+) for(j=1;j<i;j+) aij=ai-1j-1+ai-1j; for(

43、i=0;i<N;i+)for(j=0;j<=i;j+) printf("%4d ",aij) ;printf("n"); 6.编写程序输入并求一个4×4矩阵的两条对角线元素之和、四周靠边元素之和。#include <stdio.h>#define N 4void main() int aNN; int i,j; int sum1=0; /对角线元素之和 int sum2=0; /四周靠边元素之和 printf("请输入%d*%d矩阵:n",N,N); for(i=0;i<N;i+) for(j=

44、0;j<N;j+) scanf("%d",&aij); printf("产生的矩阵如下:n"); for(i=0;i<N;i+) for(j=0;j<N;j+) printf("%4d",aij); printf("n"); /计算对角线元素之和 for(i=0;i<N;i+) for(j=0;j<N;j+) if(i=j|i+j=N-1) sum1+=aij; printf("两条对角线上的元素之和为:%5dn",sum1); for(i=0;i<N

45、;i+) for(j=0;j<N;j+) if(i=0|i=N-1|j=0|j=N-1)sum2+=aij; printf("四周靠边的元素之和为:%5dn",sum2);练习题7参考答案一、选择题序号12345678910参考答案ADBDCADAAB序号11121314151617181920参考答案BCACCCCDAC序号21参考答案A二、填空题1下列程序的输出结果是 5 6 。2下面程序的运行结果是 10 。3下面程序的运行结果是 A+B=9 。4以下程序的输出结果是 246 。三、程序设计题1.编写程序在主函数中键盘输入两个整数,通过调用两个函数分别求出两个整

46、数的最大公约数和最小公倍数,并输出结果。#include<stdio.h> int gcd(int m,int n) /最大公约数函数定义int r;r=m%n;while(r!=0) /先判断后执行,有可能一次也不执行循环体。m=n;n=r;r=m%n;return n;/最小公倍数函数定义int lcm(int m,int n) /最大公约数在前面已定义,调用前可不作函数声明return m*n/gcd(m,n);int main()int a,b;int gcd(int m,int n); /函数声明 int lcm(int m,int n); /函数声明printf(&qu

47、ot;输入两个数:"); scanf("%d%d",&a,&b);printf("最大公约数:%dn",gcd(a,b);printf("最小公倍数:%dn",lcm(a,b);return 0;2.编写程序在主函数输入一个整数,通过调用一个判素数的函数求素数,并输出是否是素数的信息。#include <stdio.h>int prime(int x); /在函数外部声明,作用域为整个文件int main()int m;while(1) /可实现多次判断printf("请输入数字(输入0

48、退出):");scanf("%d",&m);if (m = 0)return 0;if (prime(m)printf("%d是素数!",m);elseprintf("%d不是素数!",m);return 0;int prime(int x) /不同方法,同一算法思想int n,flag=1;for(n=2;n<x;n+)if(x%n=0)flag=0;break;return flag;3.编写程序在主函数中输入一个给定的3×3的二维整型数组,通过调用一个用函数将这个二维整型数组进行转置,最后输出转

49、置后的二维数组。#include <stdio.h> /用二个不同数组存放int b33;void main()void convert(int a33);int i,j,a33; for(i=0;i<3;i+)for(j=0;j<3;j+)scanf("%d",&aij);convert(a);for(i=0;i<3;i+)for(j=0;j<3;j+)printf("%d ",bij);printf("n");getchar();void convert(int a33)int i,j,

50、t;for(i=0;i<3;i+)for(j=0;j<3;j+)bji=aij;10.编写程序用函数递归的方法求n阶勒让德多项式的值,递归公式为:#include <stdio.h>#include <stdlib.h>float p(int n,float x) if (n=0) return 1; else if (n=1) return x; else return (2 * n - 1) * x - p(n - 1 , x) - (n - 1) * p(n - 2, x) / n;int main() int n,x; float result; p

51、rintf("please input n,x:"); scanf("%d,%d",&n,&x); result = p(n,x); printf("the result is : %fn",result); return 0;练习题8参考答案一、选择题序号12345参考答案CCBCB二、填空题1. C 提供的预处理功能主要有_条件编译_、_宏定义_、_文件包含_等三种。2. C 规定预处理命令必须以 # 开头;定义宏的关键字是_define_。3. 在预编译时将宏名替换成_字符串_的过程称为宏展开。 4. 预处理命令

52、不是 C 语句,不必在行末加_分号_。 5. 以头文件 stdio.h 为例,文件包含的两种格式为:_#include<stdio.h>_,_#include “stdio.h”_。 6下面程序的运行结果为 12 。7以下程序的输出结果是 28 。8以下程序输出的结果是 c=0 。 三、程序设计题1. 定义一个带参的宏,求两个整数的余数。通过宏调用,输出求得的结果。#include <stdio.h>#define R(m,n) (m)%(n)void main()int m,n;printf("enter two integers:n");scanf("%d%d&qu

温馨提示

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

评论

0/150

提交评论