C语言程序设计》课后习题详细答案
C语言程序设计课后各章节习题答案

main()
{
float x,y,d;
printf("Input x,y:");
scanf("%f,%f",&x,&y);
d=sqrt((x-2)*(x-2)+(y-2)*(y-2));
if(d>1)printf(ntf("inside");
}
12有一函数
x-1 -5<x<0
y= x x=0
x+1 0<x<8
编写一程序,要求输入x的值,输出y的值。分别用不嵌套的if语句,嵌套的if语句,switch语句编写。
答使用不嵌套的if语句程序如下:
main()
{
int x,y;
printf("Input x:");
scanf("%d",&x);
答main()
{
int x,a,b,c;
printf("Input number:");
scanf("%d",&x);
a=x/100;/*变量a中记录x的百倍数字*/
b=x/10%10;/*变量b中记录x的十位数字*/
c=x%10;/*变量c中记录x的个位数字*/
if(a*a*a+b*b*b+c*c*c==x)
if(m==2)
d=28+f;
else
d=31-(m==4)+(m==6)+(m==9)+(m==11);
printf("%d-%d is %d days.\n",y,m,d);
c语言程序设计 课后习题答案

c语言程序设计课后习题答案C语言程序设计课后习题答案C语言是一门广泛应用于计算机科学和软件开发领域的编程语言。
学习C语言的过程中,课后习题是非常重要的一部分,通过解答习题可以加深对所学知识的理解和掌握。
本文将为大家提供一些C语言程序设计课后习题的答案,希望能对大家的学习有所帮助。
1. 编写一个程序,输入一个整数,判断该整数是否为奇数。
答案:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("该整数是偶数\n");} else {printf("该整数是奇数\n");}return 0;}```2. 编写一个程序,输入一个字符,判断该字符是否为字母。
答案:```c#include <stdio.h>int main() {char ch;printf("请输入一个字符:");scanf("%c", &ch);if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) { printf("该字符是字母\n");} else {printf("该字符不是字母\n");}return 0;}```3. 编写一个程序,输入一个年份,判断该年份是否为闰年。
答案:```c#include <stdio.h>int main() {int year;printf("请输入一个年份:");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {printf("该年份是闰年\n");} else {printf("该年份不是闰年\n");}return 0;}```4. 编写一个程序,输入一个正整数,计算并输出该正整数的阶乘。
c语言程序设计课后习题及答案

c语言程序设计课后习题及答案C语言程序设计是计算机科学与技术专业的核心课程之一,它不仅教授了编程语言的基本知识,还培养了学生的逻辑思维能力和问题解决能力。
课后习题是巩固课堂学习内容的重要手段,以下是一些C语言程序设计的典型课后习题及答案。
习题1:基本数据类型编写一个程序,输入一个整数和一个浮点数,然后输出它们的和。
```c#include <stdio.h>int main() {int a;float b, sum;printf("请输入一个整数:");scanf("%d", &a);printf("请输入一个浮点数:");scanf("%f", &b);sum = a + b;printf("它们的和是:%f\n", sum);return 0;}```习题2:条件语句编写一个程序,根据输入的成绩判断学生的等级。
```c#include <stdio.h>int main() {float score;printf("请输入学生的成绩:");scanf("%f", &score);if (score >= 90) {printf("等级:A\n");} else if (score >= 80) {printf("等级:B\n");} else if (score >= 70) {printf("等级:C\n");} else if (score >= 60) {printf("等级:D\n");} else {printf("等级:F\n");}return 0;}```习题3:循环结构编写一个程序,计算1到100的整数之和。
C语言程序设计课后习题答案谭浩强

C语言程序设计课后习题答案谭浩强This model paper was revised by LINDA on December 15, 2012.第1章程序设计和C语言1什么是计算机程序1什么是计算机语言1语言的发展及其特点3最简单的C语言程序5最简单的C语言程序举例6语言程序的结构10运行C程序的步骤与方法12程序设计的任务141-5 #include <>int main ( ){ printf ("**************************\n\n"); printf(" Very Good!\n\n");printf ("**************************\n"); return 0;}1-6#include <>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max); return 0;}第2章算法——程序的灵魂16什么是算法16简单的算法举例17算法的特性21怎样表示一个算法22用自然语言表示算法22用流程图表示算法22三种基本结构和改进的流程图26用N S流程图表示算法28用伪代码表示算法31用计算机语言表示算法32结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计37顺序程序设计举例37数据的表现形式及其运算39常量和变量39数据类型42整型数据44字符型数据47浮点型数据49怎样确定常量的类型51运算符和表达式52语句57语句的作用和分类57最基本的语句——赋值语句59数据的输入输出65输入输出举例65有关数据输入输出的概念67用printf函数输出数据68用scanf函数输入数据75字符数据的输入输出78习题823-1 #include <>#include <>int main(){float p,r,n;r=;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <>#include <>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000;r5=;r3=;r2=;r1=;r0=;p1=p*((1+r5)*5); #include <> #include <>int main(){float d=300000,p=6000,r=,m;m=log10(p/(p-d*r))/log10(1+r);printf("m=%\n",m);return 0;}3-4#include <>int main(){int c1,c2;c1=197;c2=198;printf("c1=%c,c2=%c\n",c1,c2);printf("c1=%d,c2=%d\n",c1,c2);return 0;}3-5#include <>int main(){int a,b;float x,y;char c1,c2;scanf("a=%d b=%d",&a,&b);scanf("%f %e",&x,&y);scanf("%c%c",&c1,&c2);printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2); return 0;}3-6#include <>int main(){char c1='C',c2='h',c3='i',c4='n',c5='a';c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf("passwor is %c%c%c%c%c\n",c1,c2,c3,c4,c5); return 0;}3-7#include <>int main (){float h,r,l,s,sq,vq,vz;float pi=;printf("请输入圆半径r,圆柱高h∶");scanf("%f,%f",&r,&h); #include <> int main(){ int x,y;printf("输入x:");scanf("%d",&x);if(x<1) /* x<1 */{ y=x;printf("x=%3d, y=x=%d\n" ,x,y);}else if(x<10) /* 1=<x<10 */{ y=2*x-1;printf("x=%d, y=2*x-1=%d\n",x,y);}else /* x>=10 */{ y=3*x-11;printf("x=%d, y=3*x-11=%d\n",x,y); }return 0;}4-7-1#include <>int main(){int x,y;printf("enter x:");scanf("%d",&x);y=-1;if(x!=0)if(x>0)y=1;elsey=0;printf("x=%d,y=%d\n",x,y); return 0;}4-7-2#include <>int main(){int x,y;printf("please enter x:"); scanf("%d",&x);y=0;if(x>=0)if(x>0) y=1;else y=-1;printf("x=%d,y=%d\n",x,y); return 0;}4-8#include <>int main(){ float score;char grade;printf("请输入学生成绩:"); scanf("%f",&score);while (score>100||score<0) {printf("\n 输入有误,请重输"); scanf("%f",&score);}switch((int)(score/10))case 9: grade='A';break;case 8: grade='B';break;case 7: grade='C';break;case 6: grade='D';break;case 5:case 4:case 3:case 2:case 1:case 0: grade='E';}printf("成绩是 %,相应的等级是%c\n ",score,grade); return 0;}4-9#include <>int main(){int num,indiv,ten,hundred,thousand,ten_thousand,place;位,万位和位数printf("请输入一个整数(0-99999):");scanf("%d",&num);if (num>9999)place=5;else if (num>999)place=4;else if (num>99) .=%d\n",sn);return 0;}5-6int main(){double s=0,t=1;int n;for (n=1;n<=20;n++){t=t*n;s=s+t;}printf("1!+2!+...+20!=%\n",s); return 0;}5-7#include <>int main(){int n1=100,n2=50,n3=10;double k,s1=0,s2=0,s3=0;for (k=1;k<=n1;k++) /*计算1到100的和*/{s1=s1+k;}for (k=1;k<=n2;k++) /*计算1到50各数的平方和*/ {s2=s2+k*k;}for (k=1;k<=n3;k++) /*计算1到10的各倒数和*/ {s3=s3+1/k;}printf("sum=%\n",s1+s2+s3);return 0;}5-8#include <>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("%d ",n);}printf("\n");return 0;}5-9-1#define M 1000 /*定义寻找范围*/ #include <>int main(){int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;int i,a,n,s;for (a=2;a<=M;a++) /* a是2-1000之间的整数,检查它是否完数 */{n=0; /* n用来累计a的因子的个数 */s=a; /* s用来存放尚未求出的因子之和,开始时等于a */ for (i=1;i<a;i++) /* 检查i是否a的因子 */if (a%i==0) /* 如果i是a的因子 */{n++; /* n加1,表示新找到一个因子 */s=s-i; /* s减去已找到的因子,s的新值是尚未求出的因子之和 */ switch(n) /* 将找到的因子赋给k1...k9,或k10 */{case 1:k1=i; break; /* 找出的笫1个因子赋给k1 */case 2:k2=i; break; /* 找出的笫2个因子赋给k2 */case 3:k3=i; break; /* 找出的笫3个因子赋给k3 */case 4:k4=i; break; /* 找出的笫4个因子赋给k4 */ case 5:k5=i; break; /* 找出的笫5个因子赋给k5 */ case 6:k6=i; break; /* 找出的笫6个因子赋给k6 */ case 7:k7=i; break; /* 找出的笫7个因子赋给k7 */ case 8:k8=i; break; /* 找出的笫8个因子赋给k8 */ case 9:k9=i; break; /*找出的笫9个因子赋给k9 */ case 10:k10=i; break; /* 找出的笫10个因子赋给k10 */ }}{printf("%d ,Its factors are ",a);if (n>1) printf("%d,%d",k1,k2); /* n>1表示a至少有2个因子 */if (n>2) printf(",%d",k3); /* n>2表示至少有3个因子,故应再输出一个因子 */if (n>3) printf(",%d",k4); /* n>3表示至少有4个因子,故应再输出一个因子 */if (n>4) printf(",%d",k5); /* 以下类似 */if (n>5) printf(",%d",k6);if (n>6) printf(",%d",k7);if (n>7) printf(",%d",k8);if (n>8) printf(",%d",k9);if (n>9) printf(",%d",k10);printf("\n");}}}5-9-2#include <>int 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 ",m); for (i=1;i<m;i++)if (m%i==0) printf("%d ",i); printf("\n");}}return 0;}5-10#include <>int main(){int i,n=20;double a=2,b=1,s=0,t; for (i=1;i<=n;i++){s=s+a/b;t=a,a=a+b,b=t;}printf("sum=%\n",s);return 0;}5-11#include <>int main(){double sn=100,hn=sn/2;int n;for (n=2;n<=10;n++){sn=sn+2*hn; /*第n次落地时共经过的米数*/ hn=hn/2; /*第n次反跳高度*/}printf("第10次落地时共经过%f米\n",sn); printf("第10次反弹%f米\n",hn);return 0;}5-12#include <>int main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2; /*第1天的桃子数是第2天桃子数加1后的2倍.*/ x2=x1;day--;}printf("total=%d\n",x1);return 0;}5-13#include <>#include <>int main(){float a,x0,x1;printf("enter a positive number:");scanf("%f",&a);x0=a/2;x1=(x0+a/x0)/2;do{x0=x1;x1=(x0+a/x0)/2;}while(fabs(x0-x1)>=1e-5);printf("The square root of % is %\n",a,x1);return 0;}5-14#include <>#include <>int main(){double x1,x0,f,f1;x1=;do{x0=x1;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x1=x0-f/f1;}while(fabs(x1-x0)>=1e-5);printf("The root of equation is %\n",x1); return 0;}5-15#include <>#include <>int main(){float x0,x1,x2,fx0,fx1,fx2; do{printf("enter x1 & x2:"); scanf("%f,%f",&x1,&x2);fx1=x1*((2*x1-4)*x1+3)-6;fx2=x2*((2*x2-4)*x2+3)-6;}while(fx1*fx2>0);do{x0=(x1+x2)/2;fx0=x0*((2*x0-4)*x0+3)-6;if ((fx0*fx1)<0){x2=x0;fx2=fx0;}else{x1=x0;fx1=fx0;}}while(fabs (fx0)>=1e-5); printf("x=%\n",x0);return 0;}5-16#include <>int main(){int i,j,k;for (i=0;i<=3;i++){for (j=0;j<=2-i;j++) printf(" ");for (k=0;k<=2*i;k++) printf("*");printf("\n");}for (i=0;i<=2;i++) {for (j=0;j<=i;j++) printf(" ");for (k=0;k<=4-2*i;k++) printf("*");printf("\n");}return 0;}5-17#include <>int main(){char i,j,k; /*是a的对手;j是b的对手;k是c的对手*/ for (i='x';i<='z';i++)for (j='x';j<='z';j++)if (i!=j)for (k='x';k<='z';k++)if (i!=k && j!=k)if (i!='x' && k!='x' && k!='z')printf("A--%c\nB--%c\nC--%c\n",i,j,k);return 0;}第6章利用数组处理批量数据142怎样定义和引用一维数组142怎样定义一维数组143怎样引用一维数组元素144一维数组的初始化145一维数组程序举例146怎样定义和引用二维数组148怎样定义二维数组149怎样引用二维数组的元素150二维数组的初始化151二维数组程序举例152字符数组154怎样定义字符数组154字符数组的初始化155怎样引用字符数组中的元素155字符串和字符串结束标志156字符数组的输入输出159使用字符串处理函数161字符数组应用举例165习题1686-1#include <>#include <>int main(){int i,j,n,a[101];for (i=1;i<=100;i++)a[i]=i;a[1]=0;for (i=2;i<sqrt(100);i++) for (j=i+1;j<=100;j++) {if(a[i]!=0 && a[j]!=0) if (a[j]%a[i]==0)a[j]=0;}printf("\n");for (i=2,n=0;i<=100;i++) { if(a[i]!=0){printf("%5d",a[i]);n++;}if(n==10){printf("\n");n=0;}}printf("\n");return 0;}6-2#include <>int main(){int i,j,min,temp,a[11];printf("enter data:\n");for (i=1;i<=10;i++){printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\n");printf("The orginal numbers:\n"); for (i=1;i<=10;i++)printf("%5d",a[i]);printf("\n");for (i=1;i<=9;i++){min=i;for (j=i+1;j<=10;j++)if (a[min]>a[j]) min=j;temp=a[i];a[i]=a[min];a[min]=temp;}printf("\nThe sorted numbers:\n"); for (i=1;i<=10;i++)printf("%5d",a[i]);printf("\n");return 0;}6-3#include <>int main(){int a[3][3],sum=0;int i,j;printf("enter data:\n");for (i=0;i<3;i++)for (j=0;j<3;j++)scanf("%3d",&a[i][j]);for (i=0;i<3;i++)sum=sum+a[i][i];printf("sum=%6d\n",sum);return 0;}6-4#include <>int main(){ int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number,end,i,j;printf("array a:\n");for (i=0;i<10;i++)printf("%5d",a[i]);printf("\n");printf("insert data:"); scanf("%d",&number); end=a[9];if (number>end)a[10]=number;else{for (i=0;i<10;i++){if (a[i]>number) {temp1=a[i];a[i]=number;for (j=i+1;j<11;j++) {temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}printf("Now array a:\n"); for (i=0;i<11;i++)printf("%5d",a[i]);printf("\n");return 0;}6-5#include <>#define N 5int main(){ int a[N],i,temp;printf("enter array a:\n");for (i=0;i<N;i++)scanf("%d",&a[i]);printf("array a:\n");for (i=0;i<N;i++)printf("%4d",a[i]);for (i=0;i<N/2;i++) n",number);; printf("continu or not(Y/N)");scanf(" %c",&c);if (c=='N'||c=='n')flag=0;}return 0;}6-10#include <>int main(){int i,j,upp,low,dig,spa,oth;char text[3][80];upp=low=dig=spa=oth=0;for (i=0;i<3;i++){ printf("please input line %d:\n",i+1);gets(text[i]);for (j=0;j<80 && text[i][j]!='\0';j++){if (text[i][j]>='A'&& text[i][j]<='Z')upp++;else if (text[i][j]>='a' && text[i][j]<='z') low++; else if (text[i][j]>='0' && text[i][j]<='9') dig++; else if (text[i][j]==' ')spa++;elseoth++;}}printf("\nupper case: %d\n",upp); printf("lower case: %d\n",low); printf("digit : %d\n",dig); printf("space : %d\n",spa); printf("other : %d\n",oth); return 0;}6-11#include <>int main(){ char a[5]={'*','*','*','*','*'}; int i,j,k;char space=' ';for (i=0;i<5;i++){ printf("\n");printf(" ");for (j=1;j<=i;j++)printf("%c",space);for (k=0;k<5;k++)printf("%c",a[k]);}printf("\n");return 0;}6-12a-c#include <>int main(){ int j,n;char ch[80],tran[80];printf("input cipher code:"); gets(ch);printf("\ncipher code :%s",ch);j=0;while (ch[j]!='\0'){ if ((ch[j]>='A') && (ch[j]<='Z')) tran[j]=155-ch[j];else if ((ch[j]>='a') && (ch[j]<='z')) tran[j]=219-ch[j];elsetran[j]=ch[j];j++;}n=j;printf("\noriginal text:");for (j=0;j<n;j++)putchar(tran[j]);printf("\n");return 0;}6-12b#include <>int main(){int j,n;char ch[80];printf("input cipher code:\n");gets(ch);printf("\ncipher code:%s\n",ch);j=0;while (ch[j]!='\0'){ if ((ch[j]>='A') && (ch[j]<='Z'))ch[j]=155-ch[j];else if ((ch[j]>='a') && (ch[j]<='z')) ch[j]=219-ch[j];elsech[j]=ch[j];j++;}n=j;printf("original text:"); for (j=0;j<n;j++)putchar(ch[j]);printf("\n");return 0;}6-13#include <>int main(){ char s1[80],s2[40];int i=0,j=0;printf("input string1:");scanf("%s",s1);printf("input string2:");scanf("%s",s2);while (s1[i]!='\0')i++;while(s2[j]!='\0')s1[i++]=s2[j++];s1[i]='\0';printf("\nThe new string is:%s\n",s1); return 0;}6-14#include <>int main(){ int i,resu;char s1[100],s2[100];printf("input string1:");gets(s1);printf("\ninput string2:");gets(s2);i=0;while ((s1[i]==s2[i]) && (s1[i]!='\0'))i++; if (s1[i]=='\0' && s2[i]=='\0')resu=0;elseresu=s1[i]-s2[i];printf("\nresult:%d.\n",resu);return 0;}6-15#include <>#include <>int main(){ char s1[80],s2[80];int i;printf("input s2:");scanf("%s",s2);for (i=0;i<=strlen(s2);i++)s1[i]=s2[i];printf("s1:%s\n",s1);return 0;}第7章用函数实现模块化程序设计170为什么要用函数170怎样定义函数172为什么要定义函数172定义函数的方法173调用函数174函数调用的形式174函数调用时的数据传递175函数调用的过程177函数的返回值178对被调用函数的声明和函数原型179函数的嵌套调用182函数的递归调用184数组作为函数参数192数组元素作函数实参193数组名作函数参数194多维数组名作函数参数197局部变量和全局变量199局部变量199全局变量200变量的存储方式和生存期204。
《C语言程序设计》 课后习题答案 高等教育出版社

2.2 #include<stdio.h>main(){float x=2.5,y=2.5,z=2.5;printf("x=%f\n",x);printf("y=%f\n",y);printf("z=%f\n",z);}3.1(1)#include<stdio.h>main(){int a=12,b=3;float x=18.5,y=4.6;printf("%f\n",(float)(a*b)/2);printf("%d\n",(int)x%(int)y);}3.1(2)#include<stdio.h>main(){int x=32,y=81,p,q;p=x++;q=--y;printf("%d %d\n",p,q); printf("%d %d\n",x,y); }3.2#include<stdio.h>main(){int x,b0,b1,b2,s;printf("Inputx:");scanf("%d",&x);b2=x/100;b1=(x-b2*100)/10;//或(x%100)/10;或x/10%10; b0=x%10;s=b0*100+b1*10+b2;printf("s=%d\n",s);}3.3#include<stdio.h>#include<math.h>main(){float rate=0.0225;float n,capital,deposit;printf("Input n,capital:");scanf("%f,%f",&n,&capital);deposit=capital*pow(1+rate,n);printf("deposit=%f\n",deposit);}3.4#include<stdio.h>#include<math.h>main(){float a, b, c;double x, y;printf("Input a, b, c:");scanf("%f %f %f", &a, &b, &c);x=(-b+sqrt(b*b-4*a*c))/(2*a);y=(-b-sqrt(b*b-4*a*c))/(2*a);printf("x=%f,y=%f\n",x,y);}习题44.1(1)#include<stdio.h>main(){char c1='a',c2='b',c3='c';printf("a%cb%cc%c\n",c1,c2,c3);}4.1(2)#include<stdio.h>main(){int a=12,b=15;} 4.1(3)#include<stdio.h>main(){int a,b;printf("%d,%d\n",a,b);}4.2#include<stdio.h>main(){long a,b;float x,y;scanf("%d,%d\n",&a,&b);scanf("%f,%f\n",&x,&y);printf("a=%d,b=%d\n",a,b);printf("x=%f,b=%f\n",x,y); }5.1#include<stdio.h>main(){float a;printf("Input a:");scanf("%f",&a);if(a>=0){a=a;printf("a=%f\n",a);}else{a=-a;printf("a=%f\n",a);}}5.2#include<stdio.h>main(){int a;printf("Input a:");scanf("%d", &a);if(a%2==0){printf("a是偶数");}else{printf("a是奇数");}}5.3#include<stdio.h>#include<math.h>main(){float a,b,c,s,area;printf("Input a, b, c:");scanf("%f %f %f", &a, &b, &c);if(a+b>c&&a+c>b&&b+c>a){s=(a+b+c)/2;area=(float)sqrt(s*(s-a)*(s-b)*(s-c));printf("area=%f\n",area);}else{printf("不是三角形");}}5.4#include<stdio.h>#include<math.h>main(){float a,b,c,x,y;printf("Inputa,b,c:");scanf("%f,%f,%f",&a,&b,&c);if(a==0){printf("该方程不是一元二次方程\n");}if(b*b-4*a*c>0){x=(-b+sqrt(b*b-4*a*c))/(2*a);y=(-b-sqrt(b*b-4*a*c))/(2*a);printf("x=%f,y=%f\n",x,y);}else if(b*b-4*a*c==0){x=-b/(2*a);y=-b/(2*a);printf("x=%f,y=%f\n",x,y);}else{printf("该方程无实根\n");}}5.5#include<stdio.h>main(){int year,flag;printf("Input a year:");scanf("%d",&year);if(year%4==0&&year%400!=0||year%400==0){flag=1;}else{flag=0;}if(flag==1){printf("%d is a leap year!\n",year);}else{printf("%d is not a leap year!\n",year);}}5.6#include<stdio.h>main(){int year,flag;printf("Input a year:");scanf("%d",&year);flag=year%400==0||year%4==0&&year%100!=0?1:0;if(flag==1&&flag!=0){printf("%d is a leap year!\n",year);}else{printf("%d is not a leap year!\n",year);}}5.7#include<stdio.h>main(){char ch;printf("Inputch:");scanf("%c",&ch);if(ch>='a'&&ch<='z'){ch=getchar();ch=ch-32;printf("%c,%d\n",ch,ch);}else if(ch>='A'&&ch<='Z'){ch=getchar();ch=ch+32;printf("%c,%d\n",ch,ch);}else{printf("%c",ch);}}5.8#include<stdio.h>main(){char ch;printf("Inputch:");scanf("%c",&ch);if(ch>=48&&ch<=57){printf("ch是数字字符\n");}else if(ch>=65&&ch<=90){printf("ch是大写字母\n");}else if(ch>=97&&ch<=122){printf("ch是小写字母\n");}else if(ch==32){printf("ch是空格\n");}else{printf("ch是其他字符\n");}}5.9#include<stdio.h>main(){int score,grade;printf("Input score:");scanf("%d",&score);grade=score/10;if(score<0||score>100){printf("Input error\n");}if(score>=90&&score<=100){printf("%d--A\n",score);}else if(score>=80&&score<90){printf("%d--B\n",score);}else if(score>=70&&score<80){printf("%d--C\n",score);}else if(score>=60&&score<70){printf("%d--D\n",score);}else if(score>=0&&score<60){printf("%d--E\n",score);}}5.10#include<stdio.h>main(){int year,month;printf("Input year,month:");scanf("%d,%d",&year,&month);if(month>12||month<=0){printf("error month\n");}else{switch(year,month){case12:case10:case8:case7:case5:case3:case1:printf("31天\n");break;case11:case9:case6:case4:printf("30天\n");break;case2:if(year%4==0&&year!=0||year%400==0){printf("29天\n");}else{printf("28天\n");}break;default:printf("Input error\n");}}}6.1(1)#include<stdio.h>main(){int i,j,k;char space='';for(i=1;i<=4;i++){for(j=1;j<=i;j++){printf("%c",space);}for(k=1;k<=6;k++){printf("*");}printf("\n");}}6.1(2)#include<stdio.h>main(){int k=4,n;for(n=0;n<k;n++){if(n%2==0)continue;k--;}printf("k=%d\n,n=%d\n",k,n);}6.1(3)#include<stdio.h>main(){int k=4,n;for(n=0;n<k;n++){if(n%2==0)break;k--;}printf("k=%d,n=%d\n",k,n);}6.2(1)#include<stdio.h>main(){int i,sum=0;for(i=1;i<=101;i++){sum=sum+i;}printf("sum=%d\n",sum);}6.2(2)#include<stdio.h>main(){long i;long term,sum=0;for(i=1;i<=101;i=i+2){term=i*(i+1)*(i+2);sum=sum+term;}printf("sum=%ld\n",sum);}6.2(4)#include<stdio.h>#include<math.h>main(){int n=1;float term=1.0,sign=1,sum=0;while(term<=-1e-4||term>=1e-4){term=1.0/sign;sum=sum+term;sign=sign+n;n++;}printf("sum=%f\n",sum);}6.2(5)#include<stdio.h>#include<math.h>main(){int n=1,count=1;float x;double sum,term;printf("Input x:");scanf("%f",&x);sum=x;term=x;do{term=-term*x*x/((n+1)*(n+2));sum=sum+term;n=n+2;count++;}while(fabs(term)>=1e-5);printf("sin(x)=%f,count=%d\n",sum,count);}6.3#include<stdio.h>main(){int x=1,find=0;while(!find){if(x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0){printf("x=%d\n",x);find=1;x++;}}}/*int x,find=0;for(x=1;!find;x++){if(x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0){printf("x=%d\n",x);find=1;}}}*/6.4#include<stdio.h>main(){int i,n;long p=1,m=1;printf("Input n:");scanf("%d",&n);for(i=1;i<=n;i++){p=i*i;m=i*i*i;printf("p=%d,m=%d\n",i,p,i,m);}}6.5#include<stdio.h>main(){float c,f;for(c=-40;c<=110;c=c+10){f=9/5*c+32;printf("f=%f\n",f);}}6.6#include<stdio.h>#include<math.h>main(){int n;double c=0.01875,x;do{x=x*pow(1+c,12)-1000;n++;}while(x>0);printf("x=%d\n",x);}6.7#include<stdio.h>main(){int n=0;float a=100.0,c;printf("Inputc:");scanf("%f",&c);do{a=a*(1+c);n++;}while(a<=200);printf("n=%d\n",n);}6.8#include<stdio.h>#include<math.h>main(){int n=1,count=1;double sum=1,term=1;while(fabs(term)>=1e-5){term=pow(-1,count)*(1.0/(n+2));sum=sum+term;n=n+2;count++;}sum=4*sum;printf("sum=%f,count=%d\n",sum,count); }6.9#include<stdio.h>#include<math.h>main(){int n=1,count=1;double sum=1,term=1;while(fabs(term)>=1e-5){term=term*(1.0/n);sum=sum+term;n++;count++;}printf("sum=%f,count=%d\n",sum,count);}6.10#include<stdio.h>#include<math.h>main(){int x;for(x=100;x<=999;x++){if(x==pow(x/100,3)+pow(x/10%10,3)+pow(x%10,3))printf("x=%d\n",x);}}6.11#include<stdio.h>main(){int i=0,n;long sum=0,term=1;printf("Inputn:");scanf("%d",&n);do{i++;term=term*i;sum=sum+term;}while(sum<n);printf("%d\n",i-1);}6.12#include<stdio.h>main(){int i,n,m,count=0,sum=0;printf("Input n:");scanf("%d",&n);for(i=1;i<=n;i++){printf("Inputm:");scanf("%d",&m);if(m>0){sum=sum+m;count++;}else{break;}printf("sum=%d,count=%d\n",sum,count);}}6.13#include<stdio.h>main(){int i,n,m,count=0,sum=0;printf("Inputn:");scanf("%d",&n);for(i=1;i<=n;i++){printf("Inputm:");scanf("%d",&m);if(m>0||m<0){sum=sum+m;count++;}else{break;}printf("sum=%d,count=%d\n",sum,count);}}6.14#include<stdio.h>main(){int x,y,z;for(x=0;x<=17;x++){for(y=0;y<=25;y++){3*x+2*y+z==50;z=30-x-y;if(3*x+2*y+z==50&&x+y+z==30)printf("x=%d,y=%d,z=%d\n",x,y,z);}}}6.15#include<stdio.h>main(){int x,y;for(x=0;x<=98;x++){y=98-x;2*x+4*y==386;if(x+y==98&&2*x+4*y==386){printf("x=%d,y=%d\n",x,y);}}}6.16#include<stdio.h>main(){int x,y,z;for(x=0;x<=20;x++){for(y=0;y<=33;y++){3*y+5*x+z/3.0==100;z=100-x-y;if(5*x+3*y+z/3.0==100&&z+x+y==100){printf("x=%d,y=%d,z=%d\n",x,y,z);}}}}6.17#include<stdio.h>main(){int x,y,z;for(x=1;x<=9;x++){for(y=1;y<=17;y++){10*x+5*y+z==100;z=50-x-y;if(10*x+5*y+z==100&&x+y+z==50&&z>0){printf("x=%d,y=%d,z=%d\n",x,y,z);}}}}7.1#include<stdio.h>int Square(int i){return i*i;}int main(){int i=0;i=Square(i);for(;i<3;i++){static int i=1;i+=Square(i);printf("%d,",i);}printf("%d\n",i);return0;}7.2#include<stdio.h>int hour,minute,second;void update(){second++;if(second==60){second=0;minute++;}if(minute==60){minute=0;hour++;}if(hour==24)hour=0;}void display(){printf("%d,%d,%d\n",hour,minute,second); }void delay(){int t;for(t=0;t<100000000;t++);}int main(){int i;void updaye(),display(),delay();for(i=0;i<1000000;i++){update();display();delay();}return0;}7.3#include<stdio.h>int GetMax(int a,int b);int main(){int x,y,max;printf("Inputx,y:");scanf("%d,%d",&x,&y);max=GetMax(x,y);printf("max=%d\n",max);return0;}int GetMax(int m,int n){if(m>=n)return m;elsereturn n;}7.4#include<stdio.h>int LCM(int n,int m);int main(){int a,b;printf("Inputa,b:");scanf("%d,%d",&a,&b);printf("%d\n",LCM(a,b));return0;}int LCM(int n,int m){int x;int find=0;for(x=1;!find;x++){if(x%n==0&&x%m==0){find=1;}}return x-1;}7.5#include<stdio.h>long Fact(int n);int main(){int m,a;printf("Inputm:");scanf("%d",&m);for(a=1;a<=m;a++){printf("%d!=%ld\n",a,Fact(a));}return0;}long Fact(int n){int i;long result=1;for(i=2;i<=n;i++)result*=i;return result;}7.6#include<stdio.h>long Fact(int n);int main(){int m;long ret;printf("Inputm:");scanf("%d",&m);ret=Fact(m);printf("ret=%d\n",ret);return0;}long Fact(int n){int i;long result=1,sum=0;for(i=2;i<=n;i++){result*=i;sum=sum+result;}return sum;}7.7(1)#include<stdio.h>int Gcd(int a,int b);int main(){int m,n;printf("Inputm,n:");scanf("%d,%d",&m,&n);printf("%d\n",Gcd(m,n));return0;}int Gcd(int a,int b){int t,min,find=0;min=a<b?a:b;t=min;for(t=min;!find;t--){a%t==0;b%t==0;if(a%t==0&&b%t==0)return t;}find=1;}7.7(2)#include<stdio.h> int Gcd(int a,int b);int main(){int m,n;printf("Inputm,n:");scanf("%d,%d",&m,&n);printf("%d\n",Gcd(m,n));return0;}int Gcd(int a,int b){int r,temp;r=a%b;if(r==0)return b;elsedo{temp=b;b=r;a=temp;r=a%b;}while(r!=0);return b;}8.1(1)#include<stdio.h> void Func(int x){x=2;}int main(){int x=10;Func(x);printf("%d",x);return0;}8.1(2)#include<stdio.h> void Func(int b[]){int j;for(j=0;j<4;j++){b[j]=j;}}int main(){static int a[]={5,6,7,8},i;Func(a);for(i=0;i<4;i++){printf("%d",a[i]);}return0;}8.2(1)int PositiveNum(int a[],int n) {int i,count=0;for(i=0;i<n;i++){if(a[i]>0)count++;}return0;}8.2(2)void Fib(long f[],long n){int i;f[0]=0;f[1]=1;for(i=2;i<n;i++){f[i]=f[i-1]+f[i-2];}}8.2(3)#include<stdio.h>int main(){int a[10],n,max,min,maxPos,minPos;for(n=0;n<10;n++){scanf("%d",&a[n]);}max=min=a[0];maxPos=minPos=0;for(n=0;n<10;n++){if(a[n]>max){max=a[n];maxPos=n;}else if(a[n]<min){min=a[n];minPos=n;}}printf("max=%d,pos=%d\n",max,maxPos);printf("min=%d,pos=%d\n",min,minPos);return0;}8.3void DivArray(int*pArray,int n){int i;for(i=0;i<n;i++){pArray[i]/=pAttay[0];}}8.4#include<stdio.h>#define N40int FailNum(int score[],int n);void ReadScore(int score[],int n);int main(){int score[N],n;printf("Input n:");scanf("%d",&n);ReadScore(score,n);FailNum(score,n);printf("FailNum students are%d\n",FailNum(score,n));return0;}int FailNum(int score[],int n){int i,count=0;for(i=0;i<n;i++){if(score[i]<60)count++;}return count;}void ReadScore(int score[],int n){int i;printf("Input score:");for(i=0;i<n;i++){scanf("%d",&score[i]);}}8.5#include<stdio.h>#define N40int HighAver(int score[],int n);int ReadScore(int score[]);int main(){int score[N],n;n=ReadScore(score);printf("HighAver students are%d\n",HighAver(score,n));return0;}int HighAver(int score[],int n){int i,count=0,sum=0,aver;for(i=0;i<n;i++){sum=sum+score[i];aver=sum/n;}for(i=0;i<n;i++){if(score[i]>aver)count++;}return count;}int ReadScore(int score[]){int i=-1;do{i++;printf("Input score:");scanf("%d",&score[i]);}while(score[i]>=0);return i;}8.6#include<stdio.h>#define N40int ReadScore(int score[],long num[]);int FindMax(int score[],long num[],int n);int main(){int score[N],n,max,num,t;long num[N];t=FindMax(score,n);max=score[t];num=num[t];printf("max=%d,num=%d\n",max,num);return0;}int ReadScore(int score[],long num[]){int i=-1;do{i++;printf("Input student's ID and score:");scanf("%ld%d",&num[i],&score[i]);}while(num[i]>0&&score[i]>=0);return i;}int FindMax(int score[],long num[],int n){int max,i;max=score[0];for(i=1;i<n;i++){if(score[i]>max)max=score[i];}return i;}8.7#include<stdio.h>#define N40int Read(int a[]);int ChangeArry(int a[],int n);int main(){int a[N],n;printf("%d\n",ChangeArry(a,n));return0;}int Read(int a[]){int i;for(i=0;i<9;i++){printf("Input a:");scanf("%d",&a[i]);return i;}int ChangeArry(int a[],int n){int max,min,i,maxpos,minpos,term;max=min=score[0];for(i=1;i<n;i++){if(a[i]>max)max=score[i];maxpos=n;else(a[i]<min)min=a[i];minpos=n;temp=maxpos;maxpos=minpos;minpos=temp;}return a[i];}8.10#include<stdio.h>#define N5void main(){int a[N][N];int sum=0;int i,j;printf("请输入一个%d*%d的矩阵\n",N,N);for(i=0;i<N;i++){for(j=0;j<N;j++){scanf("%d",&a[i][j]);}}for(i=0;i<N;i++){for(j=0;j<N;j++){if(i==j||i+j==N-1)sum=sum+a[i][j];}}printf("对角线元素之和为:%d\n",sum);}8.11#include<stdio.h>#define N2#define M3void main(){int a[N][M],b[N][M];int i,j,sum1=0,sum2=0,sum=0;printf("请输入一个%d*%d的矩阵\n",N,M);for(i=0;i<N;i++){for(j=0;j<M;j++){scanf("%d",&a[i][j]);sum1=sum1+a[i][j];}}printf("请输入一个%d*%d的矩阵\n",N,M);for(i=0;i<N;i++){for(j=0;j<M;j++){scanf("%d",&b[i][j]);sum2=sum2+a[i][j];}}sum=sum1+sum2;printf("sum=%d\n",sum);}8.12#include<stdio.h>#define N7void YangHui(int a[N][N],int n);void main(){int i,j,n,b[N][N];printf("Input n:");scanf("%d",&n);YangHui(b,n);for(i=0;i<n;i++){for(j=0;j<=i;j++){printf("%4d",b[i][j]);}printf("\n");}}void YangHui(int a[N][N],int n){int i,j;for(i=0;i<n;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<n;i++){for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];}}8.13#include<stdio.h>#define N12void main(){int i;int f[N]={1,1};printf("%d:%d\n",0,f[0]);printf("%d:%d\n",1,f[1]);for(i=2;i<N;i++){f[i]=f[i-1]+f[i-2];printf("%d:%d\n",i+1,f[i]);}}8.14#include<stdio.h>#include<stdlib.h>#include<time.h>#define N6000void main(){int a[N],i;int b1=0,b2=0,b3=0,b4=0,b5=0,b6=0;float p1,p2,p3,p4,p5,p6;srand(time(NULL));for(i=0;i<N;i++){a[i]=rand()%6+1;printf("%3d",a[i]);if(a[i]==1)b1++;if(a[i]==2)b2++;if(a[i]==3)b3++;if(a[i]==4)b4++;if(a[i]==5)b5++;if(a[i]==6)b6++;p1=(float)(b1/6000.0);p2=(float)(b2/6000.0);p3=(float)(b3/6000.0);p4=(float)(b4/6000.0);p5=(float)(b5/6000.0);p6=(float)(b6/6000.0);}printf("骰子出现1的概率:%.2f\n",p1);printf("骰子出现2的概率:%.2f\n",p2);printf("骰子出现3的概率:%.2f\n",p3);printf("骰子出现4的概率:%.2f\n",p4);printf("骰子出现5的概率:%.2f\n",p5);printf("骰子出现6的概率:%.2f\n",p6);}9.1(1)void Swap(int*x,int*y){int*pTemp;//*pTemp未进行初始化,*pTemp指向哪里位置*pTemp=*x;*x=*y;*y=*pTemp;}9.1(2)void Swap(int*x,int*y){int*pTemp;pTemp=x;x=y;y=pTemp;}//错误,x,y没有指向类型9.2#include<stdio.h>int main(){int a[]={1,2,3,4,5};int*p=a;printf("%d,%d,%d,%d,%d,%d,%d\n",*p,*(++p),(*p)++,*p,*p--,--(*p),*p);return0;}9.3#include<stdio.h>void Swap(int*x,int*y);int main(){int a[6]={1,2,3,4,5,6},b[6]={11,22,33,44,55,66};int i;printf("Before Array\n");for(i=0;i<6;i++){printf("%d\n",a[i]);}for(i=0;i<6;i++){printf("%d\n",b[i]);}for(i=0;i<6;i++){Swap(&a[i],&b[i]);}printf("After Array\n");for(i=0;i<6;i++){printf("%d\n",a[i]);}for(i=0;i<6;i++){printf("%d\n",b[i]);}return0;}void Swap(int*x,int*y){int temp;temp=*x;*x=*y;*y=temp;}9.4#include<stdio.h>#define N10void FindMaxMin(int a[],int*pMaxa,int*pMaxnum,int*pMina,int*pMinnum);int main(){int a[N];int i,maxa,mina,maxnum,minnum;printf("Input a:");for(i=0;i<10;i++){scanf("%d",&a[i]);}FindMaxMin(a,&maxa,&maxnum,&mina,&minnum);printf("maxa=%d,maxnum=%d,mina=%d,minnum=%d\n",maxa,maxnum,mina,minnum);return0;}void FindMaxMin(int a[],int*pMaxa,int*pMaxnum,int*pMina,int*pMinnum){int i;*pMaxa=a[0];*pMina=a[0];*pMaxnum=0;*pMinnum=0;for(i=0;i<10;i++){if(a[i]>*pMaxa){*pMaxa=a[i];*pMaxnum=i;}else if(a[i]<*pMina){*pMina=a[i];*pMinnum=i;}}}10.1void MYStrcpy(char*dstStr,const char*srcStr){while((*dstStr++=*srcStr++)!='\0'){}}10.2#include<stdio.h>main(){char*a="main(){char*a=%c%s%c;printf(a,34,a,34);}";printf(a,34,a,34);} 10.3(1)unsigned int MyStrlen(char*p)main(){unsigned int len;len=0;for(;*pa!='\0';pa++){len++;}return len;}10.3(2)unsigned int MyStrlen(char s[]){char*p=s;while(*p!='\0'){p++;}return(p-*p);}10.3(3)int MyStrcmp(char*p1,char*p2){for(;*p1==*p2;p1++,p2++){if(*p1=='\0')return-1;}return1;}10.3(4)int MyStrcmp(char s[],char t[]){int i;for(i=0;s[i]==t[i];i++){if(s[i]=='\0')return0;}return i;}10.3(5)#include<stdio.h>#include<string.h>int main(){char password[7]="secret";char userInput[81];printf("Input Password:");scanf("%s",userInput);if(strcmp(userInput,password)==0)printf("Coorrect password!Welcome to the system...\n");else if(strcmp(userInput,password)<0)printf("Invalid password!user input<password...\n");elseprintf("Invalid password!user input>password...\n");return0;}10.4#include<stdio.h>#define N24unsigned int CountLetter(char str[]);int main(){char a[N];printf("Input a letter:\n");gets(a);printf("The length of the letter is:%d\n",CountLetter(a));return0;}unsigned int CountLetter(char str[]){char*p=str;int c=0,flag=0;while(*p!='\0'){if(*p!='')flag=1;else if(flag==1){c++;flag=0;}p++;}return c+1;}12.1#include<stdio.h>typedef struct data{int year;int month;int day;}DATA;typedef struct work{char a[14];char b[10];char c[6];}WORK;typedef struct student{char studentName[10];char studentSex;DATA birthday;WORK profession;}STUDENT;int main(){STUDENT stu={"王刚",'M',{1991,5,19},{"信息工程系","学习人员","学生"}};printf("stu:%2s%3c%6d/%02d/%02d%4s,%4s,%4s\n",stu.studentName,stu.studentSex,st u.birthday.year,stu.birthday.month,stu.birthday.day,stu.profession.a,stu.profession.b,stu.profession.c);return0;}12.4#include<stdio.h>#include<string.h>#define N10typedef struct people{char peopleName[10];}PEOPLE;int main(){int sum1=0,sum2=0,sum3=0,sum4=0;int i;char name[N][N];PEOPLE stu[5]={"zhang","li","wang"};printf("Enter their name:\n");for(i=0;i<10;i++){gets(name[i]);if(strcmp(name[i],stu[0].peopleName)==0)sum1++;else if(strcmp(name[i],stu[1].peopleName)==0) sum2++;else if(strcmp(name[i],stu[2].peopleName)==0) sum3++;elsesum4++;}printf("stu:%4s%2d\n",stu[i].peopleName,sum[j]);printf("stu:%4s%2d\n",stu[1].peopleName,sum2);printf("stu:%4s%2d\n",stu[2].peopleName,sum3);printf("%2d\n",sum4);return0;}。
c语言程序设计课后习题答案

c语言程序设计课后习题答案C语言程序设计课后习题答案在C语言程序设计的学习过程中,完成课后习题是巩固知识点和提升编程技能的重要方式。
以下是一些常见课后习题的解答示例:1. 习题一:编写一个程序,计算并输出1到100的和。
```c#include <stdio.h>int main() {int sum = 0, i;for (i = 1; i <= 100; i++) {sum += i;}printf("1到100的和是:%d\n", sum);return 0;}```2. 习题二:求一个整数的阶乘。
```c#include <stdio.h>int factorial(int n) {if (n == 0)return 1;elsereturn n * factorial(n - 1);}int main() {int num, result;printf("请输入一个整数:");scanf("%d", &num);result = factorial(num);printf("%d的阶乘是:%d\n", num, result); return 0;}```3. 习题三:判断一个数是否为素数。
```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num))printf("%d是素数。
《C语言程序设计》(苏小红)课后习题答案高等教育出版社.docx
3.1(1)#i nclude<stdio.h> mai n() {int a=12,b=3;float x=18.5,y=4.6;Prin tf("%f\n",(float)(a*b)/2); Prin tf("%d ∖n",(i nt)x%(i nt)y); } 3.1(2)#i nclude<stdio.h> mai n() {int x=32,y=81,p,q; p=x++; q=--y;Prin tf("%d %d ∖n",p,q); Prin tf("%d %d ∖n",x,y);} 3.2#i nclude<stdio.h> mai n() {int x,bθ,b1,b2,s; Prin tf("I nputx:"); SCa nf("%d", &x); b2=x∕100;b1= (x-b2*100)∕10;// 或(x%100)/10或 x/10%10;b0=x%10;S=b0*100+b1*10+b2;2.2 #i nclude<stdio.h> mai n() { float x=2.5,y=2.5,z=2.5; Prin tf("x=%f ∖n",x); Prin tf("y=%f\n",y);Prin tf("z=%f\n",z);}L r G :V 乍 1\启言訪ett□M7V∙加炬=Ξ.539Qβ3⅞.50θβ09Pn)CC3s C)Cited after H .365 XeCnndw Uith retIlrn UdlUlC 6fe ⅛任琳续…Prin tf("s=%d ∖n",s); } 3.3#i nclude<stdio.h> #in clude<math.h> mai n() {float rate=0.0225;float n, CaPital,deposit;Prin tf("I nput n, capital:"); SCa nf("%f,%f', &n,&capital);deposit=capital*pow(1+rate, n); Prin tf("deposit=%f\n",deposit); } 3.4#i nclude<stdio.h> #in clude<math.h> mai n() {float a,b,c; double x,y;Prin tf("I nputa,b,c:");SCa nf("%f %f%f",&a,&b,&c); x=(-b+sqrt(b*b-4*a*c))∕(2*a); y=(-b-sqrt(b*b-4*a*c))∕(2*a); Prin tf("x=%f,y=%f\n",x,y); }4.1 (2)#i nclude<stdio.h> mai n() {int a=12,b=15; Prin习题44.1(1)#i nclude<stdio.h> mai n() {Char C 仁'a',c2='b',c3='c'; Printf("a%cb%cc%c ∖n",c1,c2,c3);1 G:\2O17-2O18gl 学期工作 l∖CitW4∙=3)⅛nc -udeA S fdio∙hvmain()宀infab SCanf(=%2d%*2s %2d =ooa⅛ob=Pllmf(=%d⅛2n=pbx4∙2 ⅛nc -ude A S fdio∙hvmain() 宀ongab f o a f ><y 八SCanf(=%d -%2rτ⅛oa ⅛ob x SCanf (=%→>%f∖rr⅛o x⅛oy )八PIlnff(=aH%d-bH%2rΓ0b)八PII nff (=X H %→>b H %f ∖n =x⅛八5」⅛nc -ude A Sfdio∙hvf o a f BPIlnff (=-n p uω√SCanf(=%f⅛a)八if(avH0)宀a dPilnff(=aH%f∖n=a)八e-se宀ωH i -Pilnff(=aH%f∖n=a)八5.2⅛nc -ude A Sfdio∙hvmain() 宀i n ωPIlnff (=-n p u ω√if(a%2==0){printf("a 是偶数");}else{printf("a 是奇数");}}5.3#include<stdio.h>#include<math.h>main(){floata,b,c,s,area;printf("Inputa,b,c:");scanf("%f%f%f",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a){s=(a+b+c)/2; area=(float)sqrt(s*(s-a)*(s-b)*(s-c));printf("area=%f\n",area);}else{Printf("不是三角形");}}5.4#include<stdio.h>#include<math.h>main(){floata,b,c,x,y;Printf("InPuta,b,c:");scanf("%f,%f,%f",&a,&b,&c);if(a==0){Printf(" 该方程不是一元二次方程\n");}if(b*b-4*a*c>0){x=(-b+sqrt(b*b-4*a*c))/(2*a); y=(-b-sqrt(b*b-4*a*c))/(2*a);Printf("x=%f,y=%f\n",x,y);}elseif(b*b-4*a*c==0){x=-b/(2*a);y=-b/(2*a);printf("x=%f,y=%f\n",x,y);}else{printf(" 该方程无实根\n");}}5.5#include<stdio.h>main(){intyear,flag;printf("Inputayear:");scanf("%d",&year);if(year%4==0&&year%400!=0||year%400==0){flag=1;}else{flag=0;}if(flag==1){ printf("%disaleapyear!\n",year);}else{ printf("%disnotaleapyear!\n",year);}}5.6#include<stdio.h>main(){intyear,flag;printf("Inputayear:");scanf("%d",&year);flag=year%400==0||year%4==0&&year%100!=0?1:0;if(flag==1&&flag!=0){printf("%disaleapyear!\n",year);}else{ printf("%disnotaleapyear!\n",year);}}5.7#include<stdio.h>main(){charch;printf("Inputch:");scanf("%c",&ch);if(ch>='a'&&ch<='z'){ch=getchar();ch=ch-32; printf("%c,%d\n",ch,ch);}elseif(ch>='A'&&ch<='Z'){ch=getchar();ch=ch+32; printf("%c,%d\n",ch,ch);}else{printf("%c",ch);}}5.8#include<stdio.h>main(){charch;printf("Inputch:");scanf("%c",&ch); if(ch>=48&&ch<=57) { printf("ch 是数字字符\n");}elseif(ch>=65&&ch<=90){printf("ch 是大写字母\n");}elseif(ch>=97&&ch<=122){printf("ch 是小写字母\n");}elseif(ch==32){printf("ch 是空格\n");}else{printf("ch 是其他字符\n");}}5.9#include<stdio.h>main(){intscore,grade;printf("Inputscore:");scanf("%d",&score);grade=score/10;if(score<0||score>100){printf("Inputerror\n");} if(score>=90&&score<=100){printf("%d--A\n",score);}elseif(score>=80&&score<90){printf("%d--B\n",score);} elseif(score>=70&&score<80) {printf("%d--C\n",score);} elseif(score>=60&&score<70) {printf("%d--D\n",score);}elseif(score>=0&&score<60){printf("%d--E\n",score);}}5.10#include<stdio.h>main(){intyear,month;printf("Inputyear,month:"); scanf("%d,%d",&year,&month);if(month>12||month<=0){printf("errormonth\n");}else{switch(year,month){case12:case10:case8:case7:case5:case3:case1:Prin tf("31 天∖n");break;case11:case9:case6:case4:Printf("30 天∖n");break;case2: if(year%4==0&&year!=0||year%400==0) {Printf("29 天∖n");}else{Printf("28 天∖n");} break;default:Printf("InPuterror∖n");}}}6.1(1)#include<stdio.h>main(){inti,j,k;charsPace='';for(i=1;i<=4;i++){ for(j=1;j<=i;j++) {Printf("%c",sPace);} for(k=1;k<=6;k++){Printf("*");}Printf("∖n");}}6.1(2)#include<stdio.h>main(){intk=4,n; for(n=0;n<k;n++){ if(n%2==0)continue;k--;}Printf("k=%d∖n,n=%d∖n",k,n);6.1(3)#include<stdio.h>main(){intk=4,n;for(n=0;n<k;n++){ if(n%2==0)break; k--;}printf("k=%d,n=%d\n",k,n);}6.2(1)#include<stdio.h>main(){inti,sum=0;for(i=1;i<=101;i++){sum=sum+i;}printf("sum=%d\n",sum);}6.2(2)#include<stdio.h>main(){longi;longterm,sum=0;for(i=1;i<=101;i=i+2){ term=i*(i+1)*(i+2); sum=sum+term;}printf("sum=%ld\n",sum);}6.2(4)#include<stdio.h>#include<math.h>main(){intn=1;floatterm=1.0,sign=1,sum=0; while(term<=-1e-4||term>=1e-4) {term=1.0/sign; sum=sum+term; sign=sign+n;n++;} printf("sum=%f\n",sum);} 6.2(5)#include<stdio.h> #include<math.h> main(){ intn=1,count=1; floatx; doublesum,term; printf("Inputx:");scanf("%f",&x); sum=x; term=x; do{term=-term*x*x/((n+1)*(n+2));sum=sum+term;n=n+2; count++;}while(fabs(term)>=1e-5);printf("sin(x)=%f,count=%d\n",sum,count);}6.3#include<stdio.h> main(){ intx=1,find=0; while(!find) {if(x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0){printf("x=%d\n",x); find=1; x++;}}}/*intx,find=0;for(x=1;!find;x++){ if(x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0) { printf("x=%d\n",x); find=1;}}}*/6.4#include<stdio.h>main(){inti,n;longp=1,m=1;printf("Inputn:");scanf("%d",&n);for(i=1;i<=n;i++){p=i*i;m=i*i*i;printf("p=%d,m=%d\n",i,p,i,m);}}6.5#include<stdio.h>main(){floatc,f;for(c=-40;c<=110;c=c+10){f=9/5*c+32; printf("f=%f\n",f);}}6.6#include<stdio.h>#include<math.h>main(){intn;doublec=0.01875,x;do{ x=x*pow(1+c,12)-1000; n++;}while(x>0); printf("x=%d\n",x);}6.7#include<stdio.h>main()intn=0;floata=100.0,c;printf("Inputc:");scanf("%f",&c);do{a=a*(1+c);n++;}while(a<=200); printf("n=%d\n",n); }6.8#include<stdio.h>{#include<math.h>main(){intn=1,count=1;doublesum=1,term=1;while(fabs(term)>=1e-5){ term=pow(-1,count)*(1.0/(n+2)); sum=sum+term; n=n+2;count++;}sum=4*sum;printf("sum=%f,count=%d\n",sum,count); }6.9#include<stdio.h>#include<math.h>main(){intn=1,count=1;doublesum=1,term=1;while(fabs(term)>=1e-5){term=term*(1.0/n); sum=sum+term; n++;count++;}printf("sum=%f,count=%d\n",sum,count);}6.10#include<stdio.h> #include<math.h>main(){intx;for(x=100;x<=999;x++){ if(x==pow(x/100,3)+pow(x/10%10,3)+pow(x%10,3))printf("x=%d\n",x);}}6.11#include<stdio.h> main(){inti=0,n; longsum=0,term=1; printf("Inputn:"); scanf("%d",&n);do{ i++; term=term*i; sum=sum+term;}while(sum<n);printf("%d\n",i-1);} 6.12#include<stdio.h> main(){ inti,n,m,count=0,sum=0; printf("Inputn:"); scanf("%d",&n);for(i=1;i<=n;i++){ printf("Inputm:"); scanf("%d",&m); if(m>0){ sum=sum+m; count++;}else{ break;} printf("sum=%d,count=%d\n",sum,count); }6.13#include<stdio.h>main(){inti,n,m,count=0,sum=0;printf("Inputn:");scanf("%d",&n);for(i=1;i<=n;i++){printf("Inputm:");scanf("%d",&m);if(m>0||m<0){sum=sum+m;count++;}else{break;}printf("sum=%d,count=%d\n",sum,count);}}6.14#include<stdio.h>main(){intx,y,z;for(x=0;x<=17;x++){for(y=0;y<=25;y++){3*x+2*y+z==50;z=30-x-y;if(3*x+2*y+z==50&&x+y+z==30)printf("x=%d,y=%d,z=%d\n",x,y,z);}}}6.15#include<stdio.h>main(){intx,y;for(x=0;x<=98;x++)y=98-x;2*x+4*y==386;if(x+y==98&&2*x+4*y==386){printf("x=%d,y=%d\n",x,y);}}}6.16#include<stdio.h>main(){intx,y,z;for(x=0;x<=20;x++){for(y=0;y<=33;y++){3*y+5*x+z/3.0==100;z=100-x-y;if(5*x+3*y+z/3.0==100&&z+x+y==100){printf("x=%d,y=%d,z=%d\n",x,y,z);}}}}6.17#include<stdio.h>main(){intx,y,z;for(x=1;x<=9;x++){for(y=1;y<=17;y++){10*x+5*y+z==100;z=50-x-y;if(10*x+5*y+z==100&&x+y+z==50&&z>0){printf("x=%d,y=%d,z=%d\n",x,y,z);}}}7.1#include<stdio.h>intSquare(inti){returni*i;}intmain(){inti=0;i=Square(i);for(;i<3;i++){staticinti=1;i+=Square(i);printf("%d,",i);}printf("%d\n",i);return0;}7.2#include<stdio.h>inthour,minute,second;voidupdate(){second++;if(second==60){second=0;minute++;}if(minute==60){minute=0;hour++;}if(hour==24)hour=0;}voiddisplay(){printf("%d,%d,%d\n",hour,minute,second);} voiddelay(){intt;for(t=0;t<100000000;t++);}intmain(){inti;voidupdaye(),display(),delay();for(i=0;i<1000000;i++){update();display();delay();}return0;}7.3#include<stdio.h> intGetMax(inta,intb);intmain(){intx,y,max;printf("Inputx,y:"); scanf("%d,%d",&x,&y); max=GetMax(x,y);printf("max=%d\n",max); return0;}intGetMax(intm,intn){if(m>=n)returnm;elsereturnn;}7.4#include<stdio.h> intLCM(intn,intm);intmain(){inta,b;printf("Inputa,b:"); scanf("%d,%d",&a,&b);printf("%d\n",LCM(a,b)); return0;}intLCM(intn,intm)intx;intfind=0; for(x=1;!find;x++){if(x%n==0&&x%m==0){find=1;}} returnx-1;} 7.5#include<stdio.h> longFact(intn);intmain(){intm,a; printf("Inputm:"); scanf("%d",&m);for(a=1;a<=m;a++){ printf("%d!=%ld\n",a,Fact(a));}return0;} longFact(intn){inti; longresult=1;for(i=2;i<=n;i++) result*=i;returnresult;}7.6#include<stdio.h> longFact(intn);intmain(){intm; longret; printf("Inputm:"); scanf("%d",&m); ret=Fact(m);printf("ret=%d\n",ret);return0;}longFact(intn){inti; longresult=1,sum=0;for(i=2;i<=n;i++){ result*=i; sum=sum+result;} returnsum;} 7.7(1)#include<stdio.h> intGcd(inta,intb);intmain(){intm,n;printf("Inputm,n:"); scanf("%d,%d",&m,&n);printf("%d\n",Gcd(m,n));return0;} intGcd(inta,intb){ intt,min,find=0; min=a<b?a:b; t=min; for(t=min;!find;t--) {a%t==0;b%t==0; if(a%t==0&&b%t==0) returnt;} find=1;} 7.7(2)#include<stdio.h> intGcd(inta,intb);intmain()intm,n;printf("Inputm,n:"); scanf("%d,%d",&m,&n);printf("%d\n",Gcd(m,n)); return0;} intGcd(inta,intb){ intr,temp; r=a%b; if(r==0) returnb;elsedo{ temp=b; b=r; a=temp; r=a%b;}while(r!=0); returnb;} 8.1(1)#include<stdio.h> voidFunc(intx){x=2;} intmain(){intx=10;Func(x); printf("%d",x);return0;} 8.1(2)#include<stdio.h> voidFunc(intb[]){intj;for(j=0;j<4;j++){ b[j]=j;}} intmain(){ staticinta[]={5,6,7,8},i; Func(a); for(i=0;i<4;i++){{printf("%d",a[i]);}return0;}8.2(1)intPositiveNum(inta[],intn){inti,count=0;for(i=0;i<n;i++){if(a[i]>0)count++;}return0;}8.2(2)voidFib(longf[],longn){inti;f[0]=0;f[1]=1;for(i=2;i<n;i++){f[i]=f[i-1]+f[i-2];}}8.2(3)#include<stdio.h>intmain(){inta[10],n,max,min,maxPos,minPos;for(n=0;n<10;n++){scanf("%d",&a[n]);}max=min=a[0];maxPos=minPos=0;for(n=0;n<10;n++){if(a[n]>max){max=a[n];maxPos=n;}elseif(a[n]<min)min=a[n];minPos=n;}printf("max=%d,pos=%d\n",max,maxPos);printf("min=%d,pos=%d\n",min,minPos);return0;}8.3voidDivArray(int*pArray,intn){inti;{for(i=0;i<n;i++){ pArray[i]/=pAttay[0];}}8.4#include<stdio.h>#defineN40 intFailNum(intscore[],intn);voidReadScore(intscore[],intn);intmain(){intscore[N],n;printf("Inputn:");scanf("%d",&n);ReadScore(score,n);FailNum(score,n);printf("FailNumstudentsare%d\n",FailNum(score,n)); return0; } intFailNum(intscore[],intn){inti,count=0; for(i=0;i<n;i++){if(score[i]<60)count++;}returncount;}voidReadScore(intscore[],intn)inti;printf("Inputscore:"); for(i=0;i<n;i++){scanf("%d",&score[i]);}}8.5#include<stdio.h>#defineN40 intHighAver(intscore[],intn); intReadScore(intscore[]); intmain(){ intscore[N],n; n=ReadScore(score);printf("HighAverstudentsare%d\n",HighAver(score,n));return0;} intHighAver(intscore[],intn){ inti,count=0,sum=0,aver; for(i=0;i<n;i++){sum=sum+score[i]; aver=sum/n;} for(i=0;i<n;i++){if(score[i]>aver)count++;}returncount;}intReadScore(intscore[]){{inti=-1;do{i++;printf("Inputscore:");scanf("%d",&score[i]);}while(score[i]>=0);returni;}8.6#include<stdio.h>#defineN40 intReadScore(intscore[],longnum[]); intFindMax(intscore[],longnum[],intn);intmain(){intscore[N],n,max,num,t;longnum[N];t=FindMax(score,n);max=score[t];num=num[t];printf("max=%d,num=%d\n",max,num);return0;}intReadScore(intscore[],longnum[]){inti=-1;do{i++; printf("Inputstudent'sIDandscore:");scanf("%ld%d",&num[i],&score[i]);}while(num[i]>0&&score[i]>=0);returni;}intFindMax(intscore[],longnum[],intn){intmax,i;max=score[0];for(i=1;i<n;i++){if(score[i]>max)max=score[i];}returni;}8.7#include<stdio.h>#defineN40intRead(inta[]);intChangeArry(inta[],intn);intmain(){inta[N],n;printf("%d\n",ChangeArry(a,n));return0;}intRead(inta[]){inti;for(i=0;i<9;i++){printf("Inputa:");scanf("%d",&a[i]);returni;}intChangeArry(inta[],intn){intmax,min,i,maxpos,minpos,term; max=min=score[0];for(i=1;i<n;i++){if(a[i]>max) max=score[i]; maxpos=n;else(a[i]<min)min=a[i];minpos=n;temp=maxpos;maxpos=minpos;minpos=temp;}returna[i];}8.10#include<stdio.h>#defineN5voidmain(){inta[N][N];intsum=0;inti,j;Printf("请输入一个%d*%d 的矩阵∖n",N,N);for(i=0;i<N;i++){for(j=0;j<N;j++){scanf("%d",&a[i][j]);}}for(i=0;i<N;i++)for(j=0;j<N;j++){if(i==j||i+j==N-1) sum=sum+a[i][j];}}printf(" 对角线元素之和为:%d\n",sum);}8.11#include<stdio.h>#defineN2#defineM3{voidmain(){inta[N][M],b[N][M];inti,j,sum1=0,sum2=0,sum=0;Printf("请输入一个%d*%d 的矩阵∖n",N,M);for(i=0;i<N;i++){for(j=0;j<M;j++){scanf("%d",&a[i][j]);sum1=sum1+a[i][j];}}Printf("请输入一个%d*%d 的矩阵∖n",N,M);for(i=0;i<N;i++){for(j=0;j<M;j++){scanf("%d",&b[i][j]);sum2=sum2+a[i][j];}}sum=sum1+sum2;Printf("sum=%d∖n",sum);}8.12#include<stdio.h>#defineN7voidYangHui(inta[N][N],intn);voidmain(){inti,j,n,b[N][N];Printf("InPutn:");scanf("%d",&n);YangHui(b,n);for(i=0;i<n;i++)for(j=0;j<=i;j++){printf("%4d",b[i][j]);}printf("\n");}}voidYangHui(inta[N][N],intn){inti,j;for(i=0;i<n;i++){a[i][0]=1;a[i][i]=1;} for(i=2;i<n;i++){ for(j=1;j<i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j];}}8.13#include<stdio.h>#defineN12 voidmain() {inti;intf[N]={1,1};printf("%d:%d\n",0,f[0]); printf("%d:%d\n",1,f[1]);for(i=2;i<N;i++) {f[i]=f[i-1]+f[i-2]; printf("%d:%d\n",i+1,f[i]);}}8.14#include<stdio.h>#include<stdlib.h> #include<time.h> #defineN6000 voidmain() { inta[N],i; intb1=0,b2=0,b3=0,b4=0,b5=0,b6=0;{floatp1,p2,p3,p4,p5,p6;srand(time(NULL));for(i=0;i<N;i++){a[i]=rand()%6+1;printf("%3d",a[i]);if(a[i]==1)b1++;if(a[i]==2)b2++;if(a[i]==3)b3++;if(a[i]==4)b4++;if(a[i]==5)b5++;if(a[i]==6)b6++;p1=(float)(b1/6000.0);p2=(float)(b2/6000.0);p3=(float)(b3/6000.0);p4=(float)(b4/6000.0);p5=(float)(b5/6000.0);p6=(float)(b6/6000.0);}Printf("骰子出现1 的概率:%.2f∖n",p1); Printf("骰子出现2 的概率:%.2f∖n",p2); Printf("骰子出现3 的概率:%.2f∖n",p3); Printf("骰子出现4 的概率:%.2f∖n",p4); Printf("骰子出现5 的概率:%.2f∖n",p5); Printf("骰子出现6 的概率:%.2f∖n",p6);}9.1(1)voidSwap(int*x,int*y){int*pTemp;//*pTemp 未进行初始化,*pTemp 指向哪里位置*pTemp=*x;*x=*y;*y=*pTemp;}9.1(2)voidSwap(int*x,int*y)int*pTemp; pTemp=x; x=y; {y=pTemp;}//错误,x,y 没有指向类型9.2#include<stdio.h>intmain(){inta[]={1,2,3,4,5};int*p=a;printf("%d,%d,%d,%d,%d,%d,%d\n",*p,*(++p),(*p)++,*p,*p--,--(*p),*p); return0; }9.3#include<stdio.h>voidSwap(int*x,int*y);intmain(){inta[6]={1,2,3,4,5,6},b[6]={11,22,33,44,55,66};inti;printf("BeforeArray\n");for(i=0;i<6;i++){printf("%d\n",a[i]);}for(i=0;i<6;i++){printf("%d\n",b[i]);}for(i=0;i<6;i++){Swap(&a[i],&b[i]);}printf("AfterArray\n");for(i=0;i<6;i++){printf("%d\n",a[i]);}for(i=0;i<6;i++){printf("%d\n",b[i]);}return0;}voidSwap(int*x,int*y)inttemp;temp=*x;*x=*y;*y=temp;}9.4#include<stdio.h>#defineN10 voidFindMaxMin(inta[],int*pMaxa,int*pMaxnum,int*pMina,int*pMinnum); intmain(){inta[N];inti,maxa,mina,maxnum,minnum;printf("Inputa:");for(i=0;i<10;i++){scanf("%d",&a[i]);}FindMaxMin(a,&maxa,&maxnum,&mina,&minnum);printf("maxa=%d,maxnum=%d,mina=%d,minnum=%d\n",maxa,maxnum,mina,minnum);return0;} voidFindMaxMin(inta[],int*pMaxa,int*pMaxnum,int*pMina,int*pMinnum){inti;*pMaxa=a[0];*pMina=a[0];*pMaxnum=0;*pMinnum=0;for(i=0;i<10;i++){if(a[i]>*pMaxa){*pMaxa=a[i];*pMaxnum=i;}elseif(a[i]<*pMina){*pMina=a[i];*pMinnum=i;}}}10.1voidMYStrcpy(char*dstStr,constchar*srcStr)while((*dstStr++=*srcStr++)!='\0'){}}10.2#include<stdio.h>main(){char*a="main(){char*a=%c%s%c;printf(a,34,a,34);}";printf(a,34,a,34);}10.3(1)unsignedintMyStrlen(char*p)main(){unsignedintlen;len=0;for(;*pa!='\0';pa++){len++;}returnlen;}10.3(2)unsignedintMyStrlen(chars[]){char*p=s;while(*p!='\0'){p++;}return(p-*p);}10.3(3)intMyStrcmp(char*p1,char*p2){for(;*p1==*p2;p1++,p2++){if(*p1=='\0')return-1;}return1;}10.3(4)intMyStrcmp(chars[],chart[]){inti;for(i=0;s[i]==t[i];i++){if(s[i]=='\0')return0;}returni;}10.3(5)#include<stdio.h>#include<string.h> intmain(){ charpassword[7]="secret"; charuserInput[81]; printf("InputPassword:"); scanf("%s",userInput); if(strcmp(userInput,password)==0) printf("Coorrectpassword!Welcometothesystem...\n");elseif(strcmp(userInput,password)<0) printf("Invalidpassword!userinput<password...\n");elseprintf("Invalidpassword!userinput>password...\n"); return0;} 10.4#include<stdio.h> #defineN24 unsignedintCountLetter(charstr[]);intmain(){chara[N]; printf("Inputaletter:\n");gets(a); printf("Thelengthoftheletteris:%d\n",CountLetter(a)); return0;} unsignedintCountLetter(charstr[]){ char*p=str; intc=0,flag=0; while(*p!='\0') { if(*p!='') flag=1;elseif(flag==1){c++; flag=0;}p++;}returnc+1;}12.1#include<stdio.h>typedefstructdata{intyear;intmonth;intday;}DATA;typedefstructwork{chara[14];charb[10];charc[6];}WORK; typedefstructstudent{charstudentName[10];charstudentSex;DATAbirthday;WORKprofession;}STUDENT;intmain(){STUDENTStu={"王刚",'M',{1991,5,19},{"信息工程系","学习人员","学生"}};printf("stu:%2s%3c%6d/%02d/%02d%4s,%4s,%4s\n",stu.studentName,stu.studentSex,st u.birthday.year,Stu.birthday.month,Stu.birthday.day,Stu.profeSSion.a,Stu.profeSSion.b,Stu.profeSSion.c);return0;}12.4#include<Stdio.h>#include<String.h>#defineN10typedefStructpeople{charpeopleName[10];}PEOPLE;intmain(){intSum1=0,Sum2=0,Sum3=0,Sum4=0;inti;charname[N][N];PEOPLEStu[5]={"zhang","li","wang"};printf("Entertheirname:\n");for(i=0;i<10;i++){getS(name[i]);if(strcmp(name[i],stu[0].peopleName)==0)sum1++;elseif(strcmp(name[i],stu[1].peopleName)==0) sum2++;elseif(strcmp(name[i],stu[2].peopleName)==0)sum3++;elsesum4++;}printf("stu:%4s%2d\n",stu[i].peopleName,sum[j]);printf("stu:%4s%2d\n",stu[1].peopleName,sum2);printf("stu:%4s%2d\n",stu[2].peopleName,sum3);printf("%2d\n",sum4);return0;}1。
(完整版)C语言程序设计课后习题答案
C语言程序设计(第2版)课后习题答案第一章1.请参照本章例题,编写一个C程序,输出以下信息:**************************Very good!**************************解:#include<stdio.h>void main(){printf(“**************************”);printf(“\n”);printf(“Very good!\n”);printf(“\n”);printf(“**************************”);}2.编写一个C程序,输入a、b、c三个值,输出其中最大值。
解:#include<stdio.h>void main(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;printf(“最大数为: %d”,max);}第二章1.假如我国国民生产总值的年增长率为10%,计算10年后我国国民生产总值与现在相比增长多少百分比。
计算公式为P=(1+r)^n,r为年增长率;n为年数;P为与现在相比的百分比。
解:#include<stdio.h>#include<math.h>void main(){double P, r=0.1, n=10;P=pow((1+r), n);printf(“%lf\n”, P);}3.请编程序将“China”译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。
例如,字母“A”后面第4个字母是“E”,“E”代替“A”。
因此,“China”应译为“Glmre”。
请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。
《C语言程序设计》课后习题参考答案
运行结果:13
4.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第12次落地时,第12次反弹多高?按四舍五入的方法精确到小数点后面四位。
#include "stdio.h"
main()
{
float hn,sn=100.0;
int i;
hn=sn/2;
for(i=2; i<=12; i++)
#include <math.h>
main()
{
int sum=0, i, j, yes;
for(i=2; i<=500; i++)
{
yes=1;
for(j=2; j<=sqrt(i); j++)
if(i%j==0)
{
yes=0;
break;
}
if(yes) sum+=i;
}
printf("%d\n", sum);
源代码
#include <stdio.h>
void main()
{
int a[5]={3,-5,8,2,9};
int sum=0;
float average = 0;
int max = a[0];
int min = a[0];
int i;
for(i=0; i<5;i++)
sum += a[i];
average = (float)sum/5;
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
void main( )
C语言程序设计课后习题答案
C语言程序设计(第2版)课后习题答案第一章1.请参照本章例题,编写一个C程序,输出以下信息:**************************V ery good!**************************解:#include<stdio.h>void main(){printf(“**************************”);printf(“\n”);printf(“V ery good!\n”);printf(“\n”);printf(“**************************”);}2.编写一个C程序,输入a、b、c三个值,输出其中最大值。
解:#include<stdio.h>void main(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;printf(“最大数为: %d”,max);}第二章1.假如我国国民生产总值的年增长率为10%,计算10年后我国国民生产总值与现在相比增长多少百分比。
计算公式为P=(1+r)^n,r为年增长率;n为年数;P为与现在相比的百分比。
解:#include<stdio.h>#include<math.h>void main(){double P, r=0.1, n=10;P=pow((1+r), n);printf(“%lf\n”, P);}3.请编程序将“China”译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。
例如,字母“A”后面第4个字母是“E”,“E”代替“A”。
因此,“China”应译为“Glmre”。
请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为‟C‟、‟h‟、‟i‟、‟n‟、‟a‟,经过运算,使c1、c2、c3、c4、c5分别变为‟G‟、‟l‟、‟m‟、‟r‟、‟e‟,并输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf(″(1) a=%d,b=%d,c=%d\n″,a,b ,c);
t=c; c=b; b=a; a=t;
printf(″(2) a=%d,b=%d,c=%d\n″,a,b,c);
}
第四章选择结构习题分析与解答
一、选择题
4.1【参考答案】A)
4.2【参考答案】A)
4.3【参考答案】A)
4.4【参考答案】D)
(6)设计输出语句。输出a、b、c和ave。
(7)把以上内容放在主函数的一对花括号中。
(8)编写程序如下:
main()
{ double a,b,c,ave;
printf(″Enter a ,b ,c :″);
scanf(″%lf%lf%lf″, &a, &b, &c );
ave=(a+b+c)/3;
2.15【参考答案】[1]4.2[2]4.2
2.16【参考答案】[1]{[2]}[3]定义[4]执行
2.17【参考答案】[1]关键字[2]用户标识符
2.18【参考答案】[1]int[2]float[3]double
2.19【参考答案】float a1=1.0, a2=1.0;
或float a1=1, a2=1;(系统将自动把1转换为1.0)
3.27【参考答案】x=127, x=127 , x=$127 ,x=$000127, x=%06d
3.28【参考答案】a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500
三、编程题和改错题
3.29【分析与解答】
(1)主函数名main后应有一对圆括号。
(2)设计输入语句从终端输入1500和350;在输入语句之前,应当设计一个输出语句,用以提示输入。
(3)可用整除求商数,结果放在变量q中。可用求余运算符%求两数之余数,结果放在变量r中。
(4)设计输出语句。输出a、b、q、r。
(5)把以上内容放在主函数的一对花括号中。
本题的程序与3.30相似,请大家参考上题并根据本题的解释自己编程,并上机调试。
第3行的错误:
(1)在主函数的起始行main()的后面是函数体,函数体由左花括号({}开始。但在函数体的第一行:float的前面缺少了左花括号({}。
(2)在同一行上的/* /*r is radius*/, /* s is area of circular*/ */显然是注释;C语言规定:注释由/*开头,由*/结束,并且开头的/*将去找最近的*/去配对,因此在/* /*r is radius*/中,第一个/*与radius后的那个*/配上了对,结果紧跟在后面的那个逗号(,)落在了注释的外面,而构成了一个多余符号,为此,在编译时将报告“语法错”。/* s is area of circular*/ */中第一个*/就结束了注释,第一个*/就成了多余的了。
2.27【分析与解答】
第2行的错误:在main的后面缺少一对圆括号。
第4行的错误:在c=4.0的后面缺少分号。
第6行的错误:在printf(″%f\n″,v)的后面缺少分号。
第三章顺序结构习题分析与解答
一、选择题(单选题)
3.1【参考答案】C)
3.2【参考答案】C)
3.3【参考答案】D)
3.4【参考答案】C)
(6)请同学们自己写出修改后的程序,并上机调试。
3.30【分析与解答】
(1)分析:可用算术式560÷60把分钟换算成小时和分钟,商数就是小时数,余数就是分钟数。
(2)确定变量的名字和定义变量的类型:在程序中把小时数放在变量h中,把分钟数放在变量m中。这两个变量的类型可以是整型(本题中采用整型),也可以是实型。
(4)第七行的printf语句中应当把%d都改成%lf或%f;按输出要求在格式串中应添加相应的原样输出的字符;因为下一个printf的输出从新的一行开始,因此在本输出语句的格式串的最后应当加换行符——\n。
(5)第八行的printf语句中应当把格式串整理合并放在输出项的前面,输出项放在后面,%d都改成%lf或%f;中间的\n删去。
《全国计算机等级考试二级教程——C语言程序设计》
习题分析与详细解答
第一章程序设计基本概念习题分析与解答
1.1【参考答案】EXE
1.2【参考答案】[1].C[2].OBJ[3].EXE
1.3【参考答案】[1]顺序结构[2]选择结构[3]循环结构
第二章C程序设计的初步知识习题分析与解答
一、选择题
2.1【参考答案】B)
4.17【参考答案】1
4.18【参考答案】[1]x<=0[2]1
4.19【参考答案】[1]3[2]2[3]2
4.20【参考答案】*#
三、编程题
4.21【分析与解答】相关内容请参考《教程》4.2节和4.4节。
(1)改写如下:
switch(a/10)
printf(″ave=%f\n″, ave); /*用以比较四舍五入前后的数据*/
ave=(int)((ave+0.05)*10)/10.0;
/*上句也可写成ave=(int)(ave*10+0.5)/10.0;*/
printf(″a=%f, b=%f, c=%f, ave=%f\n″, a,b,c,ave);
3.24【参考答案】分号(;)
3.25【参考答案】
[1]:100 25.81 1.89234
[2]:100 <CR>
25.81 <CR>
1.89234 <CR>
[3]:100 <Tab> 25.81 <Tab> 1.89234
3.26【参考答案】x=127, x= 127, x= 177,x= 7f, x= 127
3.5【参考答案】D)
3.6【参考答案】B)
3.7【参考答案】C)
3.8【参考答案】D)
3.9【参考答案】A)
3.10【参考答案】B)
3.11【参考答案】C)
3.12【参考答案】D)
3.13【参考答案】D)
3.14【参考答案】A)
3.15【参考答案】C)
3.16【参考答案】C)
3.17【参考答案】C)
(2)第三行的printf语句用以提示输入,但是原样输出的字符串没有用双引号括起来;另外,从输入的形式看,输入的数据紧跟在提示之后,因此,printf格式串中最后不应该有换行符——\n。
(3)因为输入项a、b、c从定义和计算结果来看都是double类型,因此,第四行scanf语句格式串中的格式说明不应当用%d而应当用%lf;且每一个变量之前应该加地址运算符&。
(5)交换的步骤如下:
①把c中的值赋给t。
②把b中的值赋给c。
③把a中的值赋给b。
④把t中的值赋给a。
经过以上步骤,已按要求进行了交换。
(6)输出a、b、c中的值。
(7)编写程序如下:
main()
{ int a, b, c, t;
printf(″Enter a, b, c :\n″);
scanf(″%d%d%d″,&a,&b,&c);
2.20【参考答案】存储单元
2.21【参考答案】3.5
2.22【参考答案】[1]a*b/c[2]a/c*b[3]b/c*a
2.23【参考答案】把10赋给变量s
2.24【参考答案】[1]位[2]1位二进制数据(0或1)
2.25【参考答案】[1]8[2]127[3]01111111[4]-128 [ 5 ] 10000000
4.14【参考答案】[1]:
[2]:<、>、<=、>=(小于、大于、小于等于、大于等于)
[3]:==、![KG-*2]=(等于、不等)
[4]:&&(逻辑与)[5]:[JB>1|][JB>1|](逻辑或)。
4.15【参考答案】!
4.16【参考答案】[1]a=b或a<c[2][JB>1|]x[JB>1|]>4
第6行的错误:
(1) printf(″%f\n″,s)应当是一条输出语句,但在最后缺少了一个分号。
(2) printf(″%f\n″,s);是程序的最后一条语句,程序应当结束;但缺少了程序体结束所需的右花括号());此右花括号可以放在printf(″%f\n″,s);的后面,也可以放在printf(″%f\n″,s);的下一行上。
3.32【分析与解答】
(1)定义4个双精度变量a、b、c和ave,变量a、b、c分别存放读入的3个双精度数,ave存放它们的平均值。
(2)设计输入语句,以及在此之前用于提示输入的(printf)语句。
(3)设计求平均值的算法,把所求得的平均值放入变量ave中。
(4)设计把变量ave中的数,从小数点后第二位数进行四舍五入的算法。现举例说明:若ave中的数为123.4644,为了保留此值小数点后一位,可用表达式:(int)(123.4644*10)/10.0;依次推算,为了保留此值小数点后二位,可用表达式:(int)(123.4644*100)/100.0;其他依此类推。
2.26【参考答案】[1]32767[2]-32768[3]1000000000000000
2.27【参考答案】[1]十[2]八[3]十六
三、上机改错题
2.28【分析与解答】