C语言程序设计实验指导书课后答案
- 格式:doc
- 大小:125.00 KB
- 文档页数:34


姓名:_________________ 学号:_________________ 专业:_________________日期:_________________指导原则:促进学生针对实际问题,用所学C语言知识编写符合规范的源程序代码,在某一集成开发环境下尽一切调试技能调试程序,并对运行结果进行分析处理,得出正确结论,解决好实际问题。
更快更好地掌握所学知识,技能和软件的一向开发方法目的:1,通过上机实验,加深对教材内容的理解,特别是一些语法规定,熟练掌握各种语法规则。
2,通过上机实验,熟悉某个C语言集成开发环境。
掌握集成开发环境下程序的编辑、编译与连接、运行的完整过程3,通过上机实验,要学会调试程序。
能根据系统给出的“出错信息”,判断错误所在,并修改错误,使程序正确运行。
要求:1,复习与本次实验相关的教学内容2,了解集成开发环境的操作步骤3,准备好实验内容。
对于编程题,一定要自己动手,书写工整,并人工检查无误后才能上机实验,以提高上机效率。
4,要准备好调试和运行程序时所需的数据。
5,对运行中可能出现的问题事先作出估计,并对程序中有疑问的地方作上标记,以便在运行时给予注意。
并在程序调试时,把系统给出的出错原因,解决方法等记载在源程序之后;程序运行结束后,把运行结果也记录下来。
6,每个实验应独立完成,对实际问题所编写的源程序需写出完整实验的报告。
第一次上机作业熟悉C语言集成开发环境实验目的:1,熟悉C语言集成开发环境2,掌握集成开发环境下文件的编写与调用,源程序的编译与调试,程序运行结果的观察与分析。
3,掌握C语言程序的基本结构实验要求:1, 程序编写完后,要对输入的每一个符号和词进行检查核对,不能有错。
2,编写源程序时,不要在中文输入法下进行,也不要有首字符大写,否则调试时,会有错误。
实验内容:1,在D盘新建文件夹:D:\C语言程序\×××(所在班级如0709401)\×××(自己学号或姓名如01),作为以后所做程序的存放位置。
实验一Visual C++集成环境实验内容(一)程序改错1、(1)无法运行(2)将第二个C程序重新存放到另一个工程文件中(3)同一个工程文件只能有一个main函数2、(1)/*一个简单的程序*/(2)void main()(3)}3、(1)int a,b,c;(2)a=2;(3)c=a*b;(二)完善程序1、(1)year(2)month(3)day2、(1)c(2)a*a+b*b(3)c3、(1)4(2)4*a(3)s课后练习1、D2、D3、A4、C5、C6、C7、stdio、h8、main函数实验二数据类型、运算符与表达式课前练习1、20 8 70 02、Abs3 Class _else sum my_class 、3block a+b for fun(4) a-b3、B4、D5、A6、C7、D8、B实验内容(一)程序改错1、(1)int x1,x2,x3,x4;(2)scanf("%d,%d",&a,&b);(3)c=x4*1000+x2*100+x3*10+x1;2、程序1:① 2 2②error C2065: 'a1' : undeclared identifier变量a1没有定义sum=a+b+c③ 1error C2146: syntax error : missing ';' before identifier 'printf' printf语句之前缺少分号sum=a+b+c;④0 error(s), 0 warning(s)⑤a=1 b=3 c=2 sum=6⑥语句以分号结束;变量要先定义后使用。
程序2:① 2 2②error C2065: 'sum' : undeclared identifier变量sum没有定义int sum=a+b;1error C2086: 'c' : redefinition变量c重复定义c=a+b+sum;③a=1 b=3 sum=8④在同一个函数体内,变量要先定义后使用,但不能重复定义程序3:① 1error C2106: '=' : left operand must be l-value赋值符号左边参数错误c=a+b;②c=4③赋值符号左边只能就是变量,不能就是常量或表达式3、(1)t=a;(2)a=b;;(3)printf("a=%d\tb=%d\n",a,b);(二)完善程序1、(1) int n(2)”%d”,&n(3)s2、(1)float s(2)(float)a/b(3)%f3、(1)#include<math、 h>(2)pow(x,y)(3)“%lf”,s课后练习1、D2、D3、A4、B5、C6、D7、D8、A9、C10、A11、A12、B13、B14、C15、B16、A17、C18、819、5与420、2、00000021、double (删除最后“语句”两字)22、double23、a=3(回车)实验三if选择结构语句课前练习1、9 02、11 03、(1)n%2==0(2)n%2!=0(3)a>=’0’&& a<=’9’(4)a>=’a’&& a<=’z’(5)a>=’A’&& a<=’Z’(6)(a>=’a’&& a<=’z’) || (a>=’A’&& a<=’Z)(7) (x<-10) || ((x>10) && (x<=20))(8)a%b!=0(9)a*b>04、-15、D6、10 30 407、C8、A9、D10、A实验内容(一)程序改错1、(1)scanf("%d",&t);(2)if(t%5==0 && t%7==0)(3)else2、(1)char y;(2)if(x==0)(3)printf("%c\n",y);3、(1)if(x==m)(2){ printf("Wrong\n");(3)printf("Too low\n");}(二)完善程序1、(1)#include<math、h>(2)(-b+sqrt(d))/(2*a);(3)sqrt(fabs(d))/(2*a); 2、(1)c>='a'&& c<='u'(2)c>='v'&& c<='z'(3)c=c+5-26;3、(1)c>='a'&& c<='z'(2)c>='A'&& c<='Z'(3)else课后练习1、D2、C3、A4、A5、B6、C7、C8、C9、B10、D11、A12、D13、D14、A15、2,016、A17、D18、A19、D20、B21、C22、!23、D24、C25、D26、B实验四switch开关语句课前练习1、 4 112、if((k==1)||(k==2)printf("a\n");else if((k==3)||(k==4)||(k==5))printf("b\n");elseprintf("c\n");3、switch (x){case 1:case 2:case 3:printf("x\n");break;case 19:case 20:case 21:printf("y\n");break;default:printf("z\n");}实验内容(一)程序改错1、(1)switch(x)(2)case 4:(3)default:2、(1)a=s/250;(2)case 0:d=0;break;(3)default:d=15;3、(1)else p=1;(2)a=num/1000;(3)num%10(二)完善程序1、(1)grade/10(2)break(3)default2、(1)x<0(2)a=x/10(3)a3、(1)month(2)days=31(3)(year%4==0 && year%100!=0)||(year%400==0)课后练习1、C2、D(将程序最后一条语句改为:printf("a=%d,b=%d\n",a,b);)3、A4、B5、pass 中及格不及格6、2实验五while、do… while循环结构语句课前练习1、02、103、A4、C5、A6、A7、C实验内容(一)程序改错1、(1)long k=1;(2)num/=10;(3)while(num);2、(1)int m=0,mc=0,j;(2)if((k%7==0)||(k%11==0))(3) m=m+k3、(1)max=min=grade;(2)while(grade>=0)(3)if(grade<min)(二)完善程序1、(1)t%2==0(2)m=m*10+t;(3)n=n/10 ;2、(1)ch=getchar()(2)ch>='0'&& ch<='9'(3)(ch>='a'&& ch<='z') ||(ch>='A'&& ch<='Z')3、(1)fabs(t)(2)s/n(3)pi*4课后练习1、A2、A3、D4、B5、A6、C7、A8、30实验六for循环结构语句课前练习1、C2、D3、C4、for(i=100;i!=0;i--) printf("p");5、D6、C7、D8、k<=nk++9、A10、C11、C实验内容(一)程序改错1、(1)int sum=1,s0=0,s1=0,s2=1,s;(2)for(n=4;n<=10;n++)(3)s2=s;2、(1)for(i=1;i<=y;i++)(2)t*=x;(3)t=t%1000;3、(1)int i,count=0;(2)if((i%7==0 || i%11==0) &&(i%77!=0))(3)count++;(二)完善程序1、(1)s=0、0(2)scanf("%d",&n)(3) s+1、0/s12、(1)i%100(2)a+b+c==x(3)t++3、(1)2(2)n(3)n%i==0课后练习1、A2、B3、C4、A5、D6、C7、A8、B9、A10、C实验七循环控制语句课前习题1、D2、循环语句3、break4、A5、206、 6 67、88、B实验内容(一)程序改错1、(1)int i,j,k,sum=0;(2)for(i=1;i<=3;i++)(3)if((k>=1&&k<=6) && (i!=0)&&(j!=0)||(k==0)) 2、(1)for (j=2; j<i; j++)(2)if (i%j == 0)(3)if (j>= i)3、(1)m=n;(2)while(m!=0 && m>=c)(3)if(m==0)(二)完善程序1、(1)i<10(2)j%3!=0(3)continue;2、(1)total=0;(2)sum=0;(3)total+sum;3、(1)j=(y%100)/10;(2)i!=j && i!=k && k!=j(3)t%5==0课后练习1、D2、C3、D4、B5、C6、B7、A8、9 19、10 710、x=16 y=8实验八函数的初步应用课前练习1、void return2、C3、A4、C5、7 36、C7、D8、D实验内容(一)程序改错1、(1)int fun(int a,int b,int c)(2)if(a+b>c&&b+c>a&&a+c>b)(3)else if(a==b||b==c||a==c) 2、(1)if(n==1)(2)c=age(n-1)+2;(3)printf("%d\n",age(5))3、(1)while(n!=i)(2)if(n%i==0)(3)n=n/i;(二)完善程序1、(1)i*i==x(2)return 0(3)f(i+100) && f(i+168)2、(1)x(2)s1+s2+s3==15(3)t++3、(1)f<t(2)return f(3)fun(n)课后练习1、C2、C3、A4、D5、A7、B8、A9、A10、C11、A12、A13、B14、D15、10,2016、13 11 1217、218、 3 119、-3120、22121、2222、main函数23、return void24、void int实验九函数的其她应用课前练习1、B2、A3、A4、C5、D6、D7、558、C9、D10、A实验内容(一)程序改错1、(1)#define S) temp=x;x=y;y=temp(2)int a,b,temp;(3) S);2、(1) #define DIV(m) (m)%3==0(2)scanf("%d",&m);(3)if(DIV(m))3、(1)switch(n%10)(2)case 1:c1++;break;(3)case 2:c2++;break;(二)完善程序1、(1)#define f1(x,y) x*y(2)#define f2(a,b) (a)*(b)(3)#include<abc、h>2、(1) 12 48(2) 12 12 3、(1)2 313 8 52 315 10 52 3(2)略课后习题1、C2、C3、A4、C5、D6、A7、A8、 1 39、11010、911、 4 012、1013、2714、auto15、6 72016、4817、 1 218、5,2519、620、3实验十一维数组课前练习1-3、BDD4、24 85、B6、int ss[s];7、37158、6 5 4, 3 2 1实验内容(一)程序改错1、(1)scanf("%f", a); 改为scanf("%f", &a);(2)max=min=avg=a[1]; 改为max=min=avg=a[0];(3)if(min<a[i]) 改为if(min>a[i]) 或if(a[i]<min)2、(1)while(x[++i]!=0); 改为while(x[i++]!=0);(2)while(x[i] = 0) 改为while(x[i] == 0)(3)sum\=c; 改为sum/=c;3、(1)s=count=1; 改为s=count=0;(2)scanf("%d", a[i]); 改为scanf("%d", &a[i]);(3)break; 改为continue;(4)printf("s=%f count=%f\n", s, count); 改为printf("s=%d count=%d\n", s, count);(二)完善程序1、(1)k=p2、(1)#include<math、h>(2)aver=s/N(3)s=fabs(a[i]-aver)(4)printf(“%f”,t)3、(1)s=i*3+j*5(2)break(3)a[k]!=0 && s!=0课后练习1-2、DC3、I=1、x[I-1]4、0 1 2, 2 0 15、47,176、15,127、6, 28、2 3 4, 5 5 69、0 2 3, 2 3 5, 7 11 13 实验十一二维数组课前练习1、A2、96、83-6、BBDB7、x<4、y<3、z==38、0、1 0、2 1 0、3 2 1 0实验内容(一)程序改错1、(1)s1=s2=s3=s4=0 改为s1=0,s2=0,s3=0,s4=0(2)s2=s2+a[m][j] 改为s2=s2+a[m-1][j](3)for(i=0; i<m; i++) 改为for(i=1; i<m-1; i++)(4)s=s1-s2-s3-s4 改为s=s1+s2+s3+s42、(1)int a[3][3],sum 改为int a[3][3],sum=0(2)scanf("%d",a[i][j]) 改为scanf("%d",&a[i][j])(3)sum=sum+a[i][j] 改为sum=sum+a[i][i](4)sum=%f\n 改为sum=%d\n3、(1)int i,j,s,a[3][3],sum 改为int i,j,s,a[3][3],sum=0(2)for(i=0; i<3; i++) 改为for(i=0; i<3; i=i+2)(3)sum=*a[i][j] 改为sum*=a[i][j](二)完善程序1、(1)sum=0(2)a[i][i]2、(1)i<M(2)j<N(3)a[i][j](4)printf("\n")3、(1)printf("\n")(2)(j+2)%3(3)printf("\n")课后练习1-3、CDD4、85、sum1=38, sum2=346、A7、168、1 0 0, 1 2 0, 3 5 89、1 1, 1 3 3 110、1 3 6 102 5 94 87实验十二数组与函数课前练习1-3、ACB4、改变、不改变5、D实验内容(一)程序改错1、(1)fun(int a[],int n) 改为double fun(int a[],int n)(2)int i,n; 改为int i;(3)double s; 改为double s=0;(4)s=s+a(i); 改为s=s+a[i];(5)ave=fun(a[],n); 改为ave=fun(a,n);2、(1)float j=0; 改为float xa=0;(2)j<=n 改为j<n(3)j<=n 改为j<n(4)return xa 改为return c3、(1)sum=array[0] 改为sum=0(2)int score[10] 改为float score[10](3)scanf("%f", score) 改为scanf("%f", &score)(4)aver=average(score[10]) 改为aver=average(score) 课后练习1-2、DC3、-1、24、225、3、6、96、1、a[i-1][j-1]+a[i-1][j]、j<=i7、1、1 2 1、1 3 3 18、1 3 4 5 6 7、3 4 5 6、End of main()!9、0 1 2、3 4 510、2 3 4、1 2 3、2 3 4实验十三字符数组与字符串课前练习1-5、BCDBD6、strcmp(s1,s2)==0实验内容(一)程序改错1、(1)char p[ ] 改为char p[20](2)n=1; 改为n=0;(3)p[n]=='\0' 改为p[n]!='\0'(4)length(s[20]) 改为length(s)2、(1)max = 0 改为max = p[0](2)max > p[i] 改为max < p[i](3)i = k 改为k = i(二)完善程序1、(1)s[i]!='\0'(2)s[i]='A'(3)s[i] += 1(4)s2、(1)strlen(s)(2)s[i]!='\0'(3)s[i] >= 'A' && s[i] <= 'Z'(4)fun(s)课后练习1-5、DAACB6、77、GL8、dian e9、France、England、China、Australia10、Simon、Niku、Josiah、George11、strlen(s)、s[i]>=’a’ && s[i]<=’z’、s[i]+32、’\0’、s2[j]!=s2[n2-j-1]、j<n3、f(s) 实验十四指针与一维数组课前练习1、DDDAC2、5实验内容(一)程序改错1、(1)printf("%d ", p+i) 改为printf("%d ", *(p+i))(2)m=0 改为m=i(3)k=m 改为m=k(二)完善程序1、(1)math、h(2)&b(3)*pb2、(1)n(2)*(p +i-1) * 3 - 11、42-11、BBBACDACAA12、2、213、3、714、4、16、6415、36、21416、26、22、46实验十五指针与字符串课前练习1-6、CBAAAA实验内容(一)程序改错1、(1)int *a = upper 改为int *a = &upper(2)int *b = lower 改为int *b = &lower;(3)a++ 改为(*a)++(4)b++ 改为(*b)++(二)完善程序1、(1)*p!='\0'(2)*p<='Z'(3)*p += 322、(1)s(2)*p!='\0'(3)*p-'0'1-9、BDCDDCBAD10、gae11、65、7、8、7612、b5、c7、h1013、432156、43265114、jih、gfe、dcba实验十六指针与函数课前练习1-2、BB3、100 2004、B实验内容(一)程序改错1、(1)scanf("%d", p) 改为scanf("%d", p++)(2)*p < *max 改为*p > *max(3)if(max = arr) 改为if(max == arr)(4)while(i=0; i<n; i++); 改为for(i=0; i<n; i++) 2、(1)int num[ ] 改为int num[5](2)num[i] = 0 改为num[k]=0(3)switch (s) 改为switch (*s)(4)num[k]++ 改为num[i]++(二)完善程序1、(1)int *x(2)x[i]==x[i+1](3)n-1(4)f==11-4、DCCD5、10,15,15,106、21437、i<n-1、a[i]>a[j]、”%d”,p+i、”%d”,*(p+i)8、4、5、649、36、9410、*p1=15、*p2=011、43210、9876512、10、15、19实验十七结构体、共同体与枚举类型课前习题1、B2、D3、A4、B5、D6、A7、B8、C9、A10、A实验内容(一)程序改错1、(1)enum day{sun,mon,tue,wed,thu,fri,sat};(2)scanf("%s",s);(3)printf("明天就是:%s\n",str[d+1]);2、(1) };(2)struct employee em[4]={{1,"wang",25},{2,"li",38},{3,"zhang",30},{4,"qian",45}};(3)if(em[i]、age>35)3(1)strcpy(s1、name,"Liming");(2)s1、sex='F';(3)printf("%s\n",s1、name);(二)完善程序1、(1)struct Date(2)&t、year,&t、month,&t、day(3)t、year,t、month,t、day2、(1)stu[i]、score(2)stu[i]、score<=stu[j]、score(3)sum/N3、(1)S(2)x[i]、sex=='M'(3)n课后习题1、B2、C3、D4、D5、B6、37、0,6,7,8,158、64,48 4,39、410、0 111、712、struct student a={1021,'M',"zhang"};13、8014、typedef int Integer实验十八文件操作课前练习1、FILE *zx2-4、BBC实验内容(一)程序改错1、(1) 改为FILE *fp(2)fopen("stu_list、txt", "rb") 改为fopen("stu_list、txt", "wb")(3)fwrite(stu[i] 改为fwrite(&stu[i](4)fread(stu[i] 改为fread(&stu[i](二)完善程序1、(1)FILE(2)NULL2、(1)"","r"(2)!feof(3)fgetc(fp)课后练习1-9、CDACBBDAC10、fscanf11、a+12、123,45613、3、3实验十九指针与二维数组课前练习1-3、ADC实验内容(一)程序改错1、(1)int *p[3] 改为int (*p)[3](2)p[i][j] = (*(p+i)+j) * 5 改为p[i][j] = *(*(p+i)+j) * 5(3)fun(array[3], 3) 改为fun(array, 3)(二)完善程序1、(1)(*p)[4](2)i==3(3)*(*(p+i)+j)(4)a课后练习1-9、ACBBBCBCA10、511、if、for、while、switch12、1 2 5、6 7 8、9 11 12实验二十指针的其她应用课前练习1-2、DB3、分配内存单元的首地址(一)程序改错1、(1)(char *)table[] 改为char *table[](2)strcpy 改为strcmp(3)lookup_keyword("return", *keyword 改为lookup_keyword("return", keyword(4)lookup_keyword("main", *keyword 改为lookup_keyword("main", keyword(二)完善程序1、(1)double (*f)(double)(2)b = x(3)cos课后练习1-2、AC3、44、true、true、a=5、*p1=5、**p2=55、one、two、three、hree6、invisible7、pip、install、numpy实验二十一内存的动态分配及链表课前练习1、A2、113、C(一)程序改错1、(1)s = (NODE)malloc(sizeof(NODE)) 改为s = (NODE*)malloc(sizeof(NODE))(2)s= (NODE*)malloc(sizeof(*NODE)) 改为s= (NODE*)malloc(sizeof(NODE))(3)p->next = s->next 改为p->next = s(二)完善程序1、(1)stdlib、h(2)(int *)malloc(sizeof(int))(3)free(p)课后练习1、head->next、p、head->next、(NODE*)malloc(sizeof(NODE))2、NODE*、i<n、h==NULL、p->x>p2->x3、POT、head、p2->next、p->next4、p1->word、NULL、c[i]、num++、h = h->next。
C语言程序设计及实验指导练习及习题参考答案(8--10) 8练习参考答案1、练习8-1.如果有定义:intm,n=5,某p=&m;与m=n等价的语句是BA.m=某p;B.某p=某&n;C.m=&n;D.m=某某p;8-2.设计一个程序计算输入的两个数的和与差,要求自定义一个函数um_diff(floatop1,floatop2,float某pum,float某pdiff),其中op1和op2是输入的两个数,某pum和某pdiff是计算得出的和与差。
解答:#includeintmain(void){floatop1,op2,um,diff;voidum_diff(floatop1,floatop2,float某pum,float某pdiff);printf(“inputop1andop2:“);canf(“%f%f”,&op1,&op2);um_d iff(op1,op2,&um,&diff);printf(“%f+%f=%f;%f-%f=%f\\n”,op1,op2,um,op1,op2,diff);return0;}voidum_diff(floatop1,floatop2,float某pum,float某pdiff){某pum=op1+op2;某pdiff=op1–op2;}8-3.两个相同类型的指针变量能不能相加?为什么?解答:不能。
因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在C语言中指针变量相加是非法的。
8-4.根据表8.2所示,这组数据的冒泡排序其实循环到第6遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1次循环。
请思考如何改进冒泡排序算法并编程实现(提示:当发现一遍循环后没有数据发生交换,说明已经排好序了)。
解答:设置一个标志变量flag,进入一轮循环前设置为0,在循环中有发生数据交换就改写flag值为1。
P27 (2):#include<stdio.h>#include<math.h>int main(void){int year;double interest,money,rate;printf("Enter money,yearand rate:");scanf("%lf%d%lf",&money,&year,&rate);interest=money*pow((1.0+rate),year)-money;printf("interest=%.2lf\n",interest);return 0;}P28 (3):#include<stdio.h>#include<math.h>int main(void){double x;double y;printf("Enter x: ");scanf("%lf",&x);if(x<0){y=pow(x+1,2)+2*x+1/x;}else{y=sqrt(x);}printf("f(%.2f)=%.2f\n",x,y);return 0;}P28 (4):#include<stdio.h>#include<math.h>int main(void){int num1,num2;printf("Enter num1: ");scanf("%d",&num1);printf("Enter num2: ");scanf("%d",&num2);printf("%d+%d=%d\n",num1,num2,num1+num2);printf("%d-%d=%d\n",num1,num2,num1-num2);printf("%d*%d=%d\n",num1,num2,num1*num2);printf("%d/%d=%d\n",num1,num2,num1/num2);printf("%d%%%d=%d\n",num1,num2,num1%num2);return 0;}思考:#include<stdio.h>#include<math.h>int main(void){double num1,num2;printf("Enter num1: ");scanf("%lf",&num1);printf("Enter num2: ");scanf("%lf",&num2);printf("%.2f+%.2f=%.2f\n",num1,num2,num1+num2);printf("%.2f-%.2f=%.2f\n",num1,num2,num1-num2);printf("%.2f*%.2f=%.2f\n",num1,num2,num1*num2);printf("%.2f/%.2f=%.2f\n",num1,num2,num1/num2);// printf("%.2f%%%.2f=%.2f\n",num1,num2,num1%num2);return 0;} (其中最后一句不能执行!)P28 (5):P28(6):P34 (1):#include<stdio.h>int main(void){int m,sum;printf("Enter m:"); scanf("%d",&m);sum=0;for(m;m<=100;m++){sum=sum+m;}printf("sum=%d\n",sum); return 0;}思考:#include<stdio.h>int main(void){int m,n,sum;printf("Enter m:"); scanf("%d",&m);printf("Enter n:");scanf("%d",&n);sum=0;for(m;m<=n;m++){sum=sum+m;}printf("sum=%d\n",sum); return 0;}P34 (2):#include<stdio.h>int main(void){int m,n;double item,sum;printf("Enter m:"); scanf("%d",&m);printf("Enter n:");scanf("%d",&n);sum=0;item=0;for(m;m<=n;m++){item=1.0/m;sum=sum+item;}printf("sum=%.3f\n",sum); return 0;}思考:#include<stdio.h>int main(void){int m,n;double item,sum;printf("Enter m:");scanf("%d",&m);printf("Enter n:");scanf("%d",&n);sum=0;item=0;for(m;m<=n;m++){item=m*m+1.0/m;sum=sum+item;}printf("sum=%.3f\n",sum); return 0;}P34 (3):#include<stdio.h>int main(void){int i,n,denominator;double item,sum;printf("Enter n:");scanf("%d",&n);sum=0;item=0;denominator=1;for(i=0;i<n;i++){item=1.0/denominator;sum=sum+item;denominator=denominator+2; }printf("sum=%.6f\n",sum); return 0;}P35 (4):#include<stdio.h>int main(void){int i,n,denominator,flag;double item,sum;printf("Enter n:");scanf("%d",&n);sum=0;item=0;denominator=1;flag=1;for(i=0;i<n;i++){item=flag*1.0/denominator;sum=sum+item;denominator=denominator+3;flag=-flag;}printf("sum=%.3f\n",sum);return 0;}思考:#include<stdio.h>int main(void){int i,n,denominator,flag,molecular;double item,sum;printf("Enter n:");scanf("%d",&n);sum=0;item=0;denominator=1;flag=1;molecular=1;for(i=0;i<n;i++){item=flag*1.0*molecular/denominator;sum=sum+item;denominator=denominator+2;flag=-flag;molecular=molecular+1;}printf("sum=%.3f\n",sum);return 0;}P35 (5):#include<stdio.h>int main(void)int i, m,n,factorial1,factorial2,sum; printf("Enter m: ");scanf("%d",&m);printf("Enter n: ");scanf("%d",&n);factorial1=1;factorial2=1;for(i=1;i<=m;i++){factorial1=factorial1*i;}for(i=1;i<=n;i++){factorial2=factorial2*i;}sum=factorial1+factorial2;printf("%d!+%d!=%d\n",m,n,sum);return 0;}P35 (6):#include<stdio.h>int main(void){int x,n,i,sum;printf("Enter x: ");scanf("%d",&x);printf("Enter n: ");scanf("%d",&n);sum=1;for(i=1;i<=n;i++){sum=sum*x;}printf("%d的%d次方是%d\n",x,n,sum);return 0;}P42 (1):#include<stdio.h>int pow(int a ,int n);int main(void){int a,n,result;printf("Enter n: ");scanf("%d",&n);a=3;result=pow(a,n);return 0;}int pow(int a,int n){int result=1;int i;for(i=0;i<=n;i++){printf("pow(3,%d)=%d\n",i,result);result=result*n;}return result;}P42 (2):#include<stdio.h>double fact(int n);int main(void){int n,result;printf("Enter n:");scanf("%d",&n);result=(int)fact(n);return 0;}double fact(int n){int i,result;result=1;for(i=1;i<=n;i++){result=result*i;printf("%d!=%d\n",i,result);}return result;}P42 (3):#include<stdio.h>double fact(int n);int main(void){int n,result;result=(int)fact(n);printf("result=%d\n",result);return 0;}double fact(int n){int i,m,factorial1,factorial2,factorial3,result;printf("Enter m: ");scanf("%d",&m);printf("Enter n:");scanf("%d",&n);factorial1=factorial2=factorial3=1;for(i=1;i<=n;i++){factorial1=factorial1*i;}for(i=1;i<=m;i++){factorial2=factorial2*i;}for(i=1;i<=n-m;i++){factorial3=factorial3*i;}result=factorial1/(factorial2*factorial3); return result;}P43(4):#include<stdio.h>#include<math.h>int main (void){int i;double y;y=0;for(i=100;i<=1000;i++){y=y+sqrt(i);printf("sum=%.2f\n",y);return 0;}P48(1):#include<stdio.h>int main(void){int x;printf("Enter x: ");scanf("%d",&x);if(x<0){printf("sign(%d)=-1\n",x);}else if(x>0){printf("sign(%d)=1\n",x);}else{printf("sign(%d)=0\n",x);}return 0;}P49(2):#include<stdio.h>int main(void){int x;printf("Enter x: ");scanf("%d",&x);if(x%3==0&&x%5==0&&x%7==0){printf("x能同时被3,5,7整除!\n");}else if(x%3==0&&x%5==0)printf("x能被其中两个数整除!\n");}else if(x%3==0&&x%7==0){printf("x能被其中两个数整除!\n");}else if(x%5==0&&x%7==0){printf("x能被其中两个数整除!\n");}else if(x%3==0||x%5==0||x%7==0){printf("能被其中一个数整除!\n");}else{printf("x不能被3,5,7中任一个数整除!\n");}return 0;}P49(3):#include<stdio.h>int main(void){char ch;printf("Input Grade: ");scanf("%c",&ch);switch(ch){case'A':printf("A对应的百分制成绩区间是(90~100)\n");break;case'B':printf("B对应的百分制成绩区间是(80~89)\n");break;case'C':printf("C对应的百分制成绩区间是(70~79)\n");break;case'D':printf("D对应的百分制成绩区间是(60~69)\n");break;case'E':printf("对应的百分制成绩区间是(0~59)\n");break;}return 0;}P49(4):#include<stdio.h>int main(void){int n;printf("Enter n: ");scanf("%d",&n);if(n>=5){printf("exit!\n");}else{switch(n){case 1 :printf("[1] apple--3.0元/千克\n");break;case 2 :printf("[2] pear--2.5元/千克\n");break;case 3 :printf("[3] orange--4.1元/千克\n");break;case 4 :printf("[4] grape--10.2元/千克\n");break;case 0 :printf("[0] exit\n");break;}}return 0;}P50(5):#include<stdio.h>int main(void){double salary,rate,tax,deduction;printf("Enter salary:");scanf("%lf",&salary);if(salary<=3500){rate=0;deduction=0;tax=rate*(salary-3500)-deduction;printf("tax=%.2f\n",tax);}if(salary>3500&&salary<=5000){rate=0.03;deduction=0;tax=rate*(salary-3500)-deduction;printf("tax=%.2f\n",tax);}if(salary>5000&&salary<=8000){rate=0.1;deduction=105;tax=rate*(salary-3500)-deduction;printf("tax=%.2f\n",tax);}if(salary>8000&&salary<=125000){rate=0.2;deduction=555;tax=rate*(salary-3500)-deduction;printf("tax=%.2f\n",tax);}if(salary>12500&&salary<=385000){rate=0.25;deduction=1005;tax=rate*(salary-3500)-deduction;printf("tax=%.2f\n",tax);}if(salary>38500&&salary<=585000){rate=0.3;deduction=2755;tax=rate*(salary-3500)-deduction;printf("tax=%.2f\n",tax);}if(salary>58500&&salary<=835000){rate=0.35;deduction=5505;tax=rate*(salary-3500)-deduction;printf("tax=%.2f\n",tax);}if(salary>83500){rate=0.45;deduction=13505;tax=rate*(salary-3500)-deduction;printf("tax=%.2f\n",tax);}return 0;}P51(6):#include<stdio.h>int main(void){int i, n,grade,count1,count2,count3,count4,count5;printf("Emter n: ");scanf("%d",&n);count1=count2=count3=count4=count5=0;for(i=1;i<=n;i++){printf("Enter grade %d:",i);scanf("%d",&grade);if(grade>90&&grade<=100){count1++;}if(grade>80&&grade<=89){count2++;}if(grade>70&&grade<=79){count3++;}if(grade>60&&grade<=69){count4++;}if(grade>0&&grade<=59){count5++;}}printf("The number of is A(90~100):%d\n",count1);printf("The number of is B(80~89):%d\n",count2);printf("The number of is C(70~79):%d\n",count3);printf("The number of is D(60~69):%d\n",count4);printf("The number of is E(0~59):%d\n",count5);return 0;}P66(1):#include<stdio.h>int main(void){int n,sum=0;printf("Enter n: ");scanf("%d",&n);while(n>0){if(n%2!=0){sum=sum+n;}scanf("%d",&n);}printf("The sum of the odd numbers is %d\n",sum);return 0;}P56(2):#include<stdio.h>int main(void){int i,n,min,numbers;printf("Enter n: ");scanf("%d",&n);printf("Enter numbers: ");scanf("%d",&numbers);min=numbers;for(i=1;i<n;i++){if(min>numbers)min=numbers;scanf("%d",&numbers);}printf("Min= %d\n",min);return 0;}P56(3):#include<stdio.h>int main(void){int number,sum,count,n;printf("Input an number: ");scanf("%d",&number);sum=count=n=0;while(number!=0){n=number%10;count++;number=number/10;sum=sum+n;}printf("count=%d sum=%d\n",count,sum);return 0;}P57(4):#include<stdio.h>int main(void){int n;for(n=1;;n++){if(n%5==1&&n%6==5&&n%7==4&&n%11==10){printf("%d",n);break;}}printf("\n");return 0;}P57 (5):#include<stdio.h>int main(void){int i,n,numerator,denominator;double product,sum;printf("Enter n: ");scanf("%d",&n);product=1;denominator=1;numerator=2;sum=0;for(i=0;i<n;i++){product=1.0*numerator/denominator;sum=sum+product;numerator=denominator+numerator;denominator=numerator-denominator;}printf("sum=%.2f\n",sum);return 0;}P57(6):#include<stdio.h>int main(void){int a,n,i,sum,t=0,s=0;printf("Enter a, n: ");scanf("%d%d",&a,&n);sum=0;for(i=0;i<n;i++){for(i=1;i<=n;i++){t=t+a;s=s+t;a=10*a;}sum=sum+s;}printf("sum=%d \n",sum);return 0;}P57(7):#include <stdio.h>int main(void){int i,n;double height,distance;printf("Enter height: ");scanf("%lf",&height);printf("Enter n: ");scanf("%d",&n);distance=height;for(i=0;i<n;i++){distance=distance+height;height=height/2;}printf("distance=%.1f\n",distance);printf("height=%.1f\n",height);return 0;}P62(1):#include<stdio.h>int main(void){int i,n;double item,e;printf("Enter n: ");scanf("%d",&n);e=1;item=1;for(i=1;i<n;i++){item=item*i;e=e+1.0/item;}printf("e=%.4f\n",e);return 0;}方法二:#include<stdio.h>double fact(int n);int main(void){int n;double e;printf("Enter n: ");scanf("%d",&n);e=fact(n);printf("e=%.4f\n",e);return 0;}double fact(int n){int j;double item,e;e=1;item=1;for(j=1;j<=n;j++){item=item*j;e=e+1.0/item;}return e;}P63(2):#include<stdio.h>#include<math.h>int main(void){int i,n, num;printf("Enter n: ");scanf("%d",&n);for(i=1;i<=n;i++){num=(int)pow(2,i)-1;printf("%d\n",num);}return 0;}P63(3):#include<stdio.h>int main(){int count=0,money,i,j,m;printf("Input money:");scanf("%d",&money);for(i=1;i<money;i++){for(j=1;j<money/2;j++){for(m=1;m<money/5;m++){if((i+j*2+m*5)==money){printf("%3d个1分%3d个2分%3d个5分\n",i,j,m);count++;}}}}printf("count=%d\n",count);return 0;}P63(4):#include<stdio.h>int main(void){int m,n,i,a=0,b=0,c=0;printf("Enter m: ");scanf("%d",&m);printf("Enter n: ");scanf("%d",&n);for(i=m;i<=n;i++){a=i/100;b=i%100/10;c=i%10;if(a*a*a+b*b*b+c*c*c==a*100+b*10+c)printf("%d\n",i);}return 0;}P63(5):#include<stdio.h>int main(void){int i,j,n;char ch='A';printf("Enter n: ");scanf("%d",&n);for(i=0;i<n;i++){for(j=0;j<n-i;j++){ printf("%2c",ch);ch++;}printf("\n");}return 0;}P71(1):#include<stdio.h>int sign(int x);int main(void){int result,x;result=sign(x);return 0;}int sign(int x){int result;printf("Enter x: ");scanf("%d",&x);if(x>0)result=1;}else if(x<0){result=-1;}else{result=0;}printf("sign(%d)=%d\n",x,result);return result;}P71(2):#include<stdio.h>int even (int n);int main(void){int sum,n=0;sum=even(n);return 0;}int even(int n){int sum;sum=0;printf("Input integers: ");scanf("%d",&n);while (n>0){if(n%2!=0){sum=sum+n;}scanf("%d",&n);}printf("The sum of the odd number is %d\n",sum);return 0;}P71(3):#include<stdio.h>#include<math.h>double dist(double x1,double y1,double x2,double y2); int main(void){double x1=0,x2=0,y1=0,y2=0;double distance;distance=dist(x1,y1,x2,y2);printf("Distance=%.2f\n",distance);return 0;}double dist(double x1,double y1,double x2,double y2) {double distance;double a=0,b=0;printf("Input(x1,y1): ");scanf("%lf%lf",&x1,&y1);printf("Input(x2,y2):");scanf("%lf%lf",&x2,&y2);distance=0;a=(x2-x1);b=(y2-y1);distance=sqrt(a*a+b*b);return distance;}P71(4):#include <stdio.h>#include <math.h>int prime(int a);main(void){int m,n,sum,count,i;printf("enter m=");scanf("%d",&m);printf("enter n=");scanf("%d",&n);sum=0;count=0;for(i=m;i<=n;i++){if(prime(i)==1){sum=sum+i;count++;}}printf("count=%d,sum=%d\n",count,sum);return 0;}int prime(int a){int i;if(a==1) return 0;for(i=2;i<=sqrt (a); i++)if (a%i==0) return 0;return 1;}P72(5):#include<stdio.h>int countdigit(int number,int digit);int main(void){int count,number,digit=2;printf("Enter a integer: ");scanf("%d",&number);count=countdigit(number,digit);printf("Number of digit 2:%d\n",count);return 0;}int countdigit(int number,int digit){int count=0,result;while(number!=0){result=number%10;number=number/10;if(result==2){count++;}}return count;}P72(6):#include<stdio.h>int is(int number);int main(void){int m,n ,result,number;result=is(number);return 0;}int is(int number){int i,m,n, a,b,c,result,product;printf("Input m: ");scanf("%d",&m);printf("Input n: ");scanf("%d",&n);for(i=m;i<=n;i++){a=i/100;b=i%100/10;c=i%10;result=a*100+b*10+c;product=a*a*a+b*b*b+c*c*c;if(result==product)printf("%d\n",result);}return result;}P78 (1):#include<stdio.h>int main(void){int number;printf("Enter a number:");scanf("%d",&number);printf("%o\n",number);printf("%x\n",number);return 0;}P78 (2):#include<stdio.h>int fn(int n);int main(void){int n,sum;sum=fn(n);printf("sum=%d\n",sum);return 0;}int fn(int n){int i,a,k,sum;printf("Input a: ");scanf("%d",&a);printf("Input n: ");scanf("%d",&n);k=0;sum=0;for(i=1;i<=n;i++){k=k+a;a=a*10;sum=sum+k;}return sum;}。