没有合适的资源?快使用搜索试试~ 我知道了~
首页张玉生《C语言程序设计》双色版 C语言程序设计理论教材习题参考答案.pdf
张玉生《C语言程序设计》双色版 C语言程序设计理论教材习题参考答案.pdf

张玉生《C语言程序设计》双色版 教材课后习题答案,仅供参考,大家一定要自己做一遍再校对答案,实验书的答案已经以文章的形式发布了。
资源详情
资源评论
资源推荐

第 1 章 程序设计与 C 语言
一、填空题
1.高级语言 2.流程控制 3.程序设计语言 4.34
5.32 6.main 函数 7.对源程序进行编译
二、单选题
1.C 2.C 3.C 4.C 5.D 6.B 7.A 8.D
第 2 章 数据类型、运算符和表达式
一、叙述题
略。
二、填空题
1.unsigned 2.8 3.double 4.float
5.double
二、单选题
1.B 2.B 3.A 4.D 5.C 6.C 7.D 8.C 9.A
第 3 章 顺序结构程序设计
一、填空题
1.scanf、printf 2.%d、%f、%c 3.2 4.a=2
5.(%d)%ld 6.pow(x,y) 7.逗号、空格、回车符 8.12 34
二、单选题
1.A 2.A 3.D 4.C 5.C 6.D 7.C
第 4 章 分支结构程序设计
一、叙述题
略。
二、填空题
1.1 或 0 2.! 3.1 4.x>=1&&x<sqrt(5)
5.2 6.sqrt(fabs(x))!=4*a/b/c 7.23 8.0,1,1
9.4 10.1,2,3 11.1,0,1
三、单选题
1.A 2.C 3.A 4.C 5.A 6.C 7.D 8.D 9.C 10.C
11.D
四、阅读程序题
1.10 2.23 other 3.2
五、编程题
1.编写程序,输入一个整数,判断它是奇数还是偶数,并输出判断结果。
#include<stdio.h>
int main( )
{ int x;

printf("Please input a integer:\n");
scanf("%d",&x);
if(x%2==0)
printf("is even number.");
else
printf("is odd number.");
return 0;
}
2.编写程序,由键盘输入一元二次方程 ax
2
+bx+c=0(a≠0)的 a、b、c 的值,求方程
的解。
#include<stdio.h>
#include<math.h>
int main(void)
{ double a,b,c,x1,x2,r,i,delt;
printf("Please input the equation coefficients a,b,c: ");
scanf("%lf,%lf,%lf", &a, &b, &c);
printf("\nThen equation ");
if(fabs(a)<=1e-6)
printf("is not a quadratic\n");
else
{
delt=b*b-4*a*c;
if(fabs(delt)<=1e-6)
printf("has two equal roots:%8.4f\n", -b/(2*a));
else
if(delt>1e-6)
{ x1=(-b+sqrt(delt))/(2*a);
x2=(-b-sqrt(delt))/(2*a);
printf("has distinct real roots:%8.4f and %8.4f\n", x1,x2);
}
else
{ r=-b/(2*a);
i=sqrt(-delt)/(2*a);
printf("has complex roots:\n");
printf("%8.4f+%8.4fi\n",r,i);
printf("%8.4f-%8.4fi\n",r,i);
}
}
return 0;
}
3.编写程序,输入一个形式如“操作数 运算符 操作数”的四则运算表达式,输出运
算结果。若运算符为'/'时,能处理除数为 0 的情况。
#include<stdio.h>
int main(void)

{ char operator; double value1, value2;
printf("Type in an expression: ");
scanf("%lf%c%lf", &value1, &operator, &value2);
switch(operator)
{ case '+':
printf("=%.2f\n", value1+value2); break;
case '-':
printf("=%.2f\n", value1-value2); break;
case '*':
printf("=%.2f\n", value1*value2); break;
case '/':
if(value2==0)
printf("Cannot divide into 0");
else
printf("=%.2f\n", value1/value2); break;
default:
printf("Unknown operator\n"); break;
}
return 0;
}
4.设某公司的业务员工资的计算方法为:工资=基本工资+提成。其中,提成的计算
方法为:当销售额在 10000 元以下时,只发基本工资 1000 元;当销售额在 10000 元以上才
可以拿提成。提成的比率为:当销售额在 20000 元以下时,超出 10000 元的部分可按 5%提
成;当销售额在 20000 元以上 50000 元以下时,超出 20000 元的部分可按 6%提成;当销售
额在 50000 元以上 100000 元以下时,超出 50000 元的部分可按 7%提成;当销售额在 100000
元以上时,超出 100000 元的部分可按 8%提成。输入一个业务员的销售额,计算其应发的工
资额。
#include<stdio.h>
int main(void)
{ float salary,sale;
scanf("%f",&sale);
if(sale<10000)
salary=1000;
else if(sale<20000)
salary=1000+(sale-10000)*0.05;
else if(sale<50000)
salary=1000+(sale-20000)*0.06;
else if(sale<100000)
salary=1000+(sale-50000)*0.07;
else
salary=1000+(sale-100000)*0.08;
printf("%.3f",salary);
return 0;
}

第 5 章 循环结构程序设计
一、概念填空题
1.continue 2.do while 3.continue 4.for
二、单项选择题
1.A 2.C 3.D 4.D 5.A 6.A 7.A
三、阅读程序题
1.2 0 2.1 3.x=-1 4.n=8
5.852 6.XCF
四、编程题
1.输出 1000 之内的全部“完数”,要求每行输出 5 个,并统计完数的个数。一个数如
果恰好等于它的因子之和,就称其为完数。
#include<stdio.h>
int main()
{ int i,j,n=0,sum;
for(i=3;i<=1000;i++)
{ sum=0;
for(j=1;j<n-1;j++)
if(n%j==0)sum=sum+j;
if(i==sum)
{ printf(" %d",i);
n++;
if(n%5==0) printf("\n");
}
}
printf("\n%d\n",n);
return 0;
}
2.输出 1900~2000 年中所有的闰年。每输出 3 个年号换一行。(判断闰年的条件为:
能被 4 整除,但不能被 100 整除,或者能被 400 整除。)
#include<stdio.h>
int main()
{ int i,n=0;
for(i=1900;i<=2000;i++)
{ if(i%4==0 && i%100!=0 || i%400==0){
printf(" %d",i);
n++;
if(n%3==0) printf("\n");
}
}
return 0;
}
3.在窗体上以每行两个数的格式输出所有的“水仙花数”。所谓“水仙花数”是指一个
三位数,其各位数字的立方和等于该数本身。(提示:首先分离出每位数字)

#include<stdio.h>
int main()
{ int i,a,b,c,n=0;
for(i=100;i<=999;i++)
{ a=i/100;
b=(i-a*100)/10;
c=i%10;
if(a*a*a+b*b*b+c*c*c==i)
{ printf(" %d",i);
n++;
if(n%2==0) printf(“\n”);
}
}
return 0;
}
4.计算下式求出 e 的值(保留两位小数),要求使用循环嵌套。
!
1
!3
1
!2
1
!1
1
1
n
e L
#include<stdio.h>
int main()
{ int k=1,i,n,t;
float e=1,s=1;
scanf("%d",&n);
do
{ t=1;
for(i=1;i<=k;i++)
t=t*i;
e=e+1.0/t;
k++;
}while(k<=n);
printf("%.2f",e);
return 0;
}
5.计算表达式
,
65432
1
5432
xxxx
x
S
x>1
要求计算精度为第 n 项的绝对值小于 10
– 5
。
#include<stdio.h>
int main()
{ float y,s=1,x,xx=1,a=1,i=1;
scanf("%f",&x);
do
{ a=-a;
i++;
剩余22页未读,继续阅读










安全验证
文档复制为VIP权益,开通VIP直接复制

评论1