当前位置:首页 » 编程语言 » c语言程序设计实验指导答案

c语言程序设计实验指导答案

发布时间: 2024-06-01 04:36:46

‘壹’ 求山东理工大学c语言实验答案(在线等、求速度)

实验一 简单C程序的调试
一、实验目的
熟悉在VC的运行环境下,编辑调试C语言程序的一般步骤。掌握编写与调试简单C语言程序的基本方法。
二、实验要求
1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。
2. 在VC运行环境下,编辑录入源程序。
3. 调试运行源程序,并记录下调试运行过程中出现的所有错误及改正方法。
4. 掌握如何根据出错信息查找语法错误。
5. 写出本次实验的实验报告。
三、实验内容
1.从键盘输入一个以秒为单位的时间值(如10000秒),将其转化为以时、分、秒表示的时间值并输出。
#include <stdio.h>
void main()
{int time,h,min,sec;
printf("请输入时间,以秒为单位\n");
scanf("%d",&time);
h=time/3600;
min=(time%3600)/60;
sec=(time%3600)%60;
printf(" 时间转换为:%d h %d min %d s\n",h,min,sec);
}

2.已知如下二元一次方程组的系数值,求该方程组的解。
a1x+b1y=c1
a2x+b2y=c2

#include <stdio.h>
void main()
{float a1,b1,c1,a2,b2,c2,m,n,p;
printf(" 请输入二元一次方程组的各项参数:");
scanf("%f %f %f %f %f %f",&a1,&b1,&c1,&a2,&b2,&c2);
p=a1*b2-a2*b1;
if(p!=0)
m=(b2*c1-b1*c2)/(a1*b2-a2*b1);
n=(a1*c2-a2*c1)/(a1*b2-a2*b1);
printf("%fx+%fy=%f\n%fx+%fy=%f\n",a1,b1,c1,a2,b2,c2);
printf("解为:\n x=%f\n y=%f\n",m,n);
}
实验二 顺序结构程序设计
一、实验目的
掌握顺序程序设计的基本思想和顺序程序设计的基本方法
二、实验要求
1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。
2. 在VC运行环境下,编辑录入源程序。
3. 调试运行源程序,并记录下调试运行过程中出现的所有错误及改正方法。
4. 掌握如何根据出错信息查找语法错误。
5. 掌握如何通过动态跟踪程序运行过程查找逻辑错误。
6. 写出本次实验的实验报告。
三、实验内容
1.编程序实现:输入一个年份y,求出从公元1年1月1日到y年的1月1日,总共有多少天(提示:400年97闰)。
#include <stdio.h>
void main()
{
int year,days;
printf("please enter a year:");
scanf("%d",&year);
days=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%100)/4+1;
printf("公元1年1月1日到公元%d年1月1日有%d天。\n",year,days);
}
实验三 选择结构程序设计
一、 实验目的
掌握选择结构程序设计的一般方法及选择结构程序的调试方法。
二、实验要求
1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。
2. 在VC运行环境下,编辑录入源程序。
3. 调试运行源程序,并记录下调试运行过程中出现的所有错误及改正方法。
4. 掌握如何根据出错信息查找语法错误。
5. 掌握如何通过动态跟踪程序运行过程查找逻辑错误。
6. 写出本次实验的实验报告。
三、实验内容
1.编程序实现:输入一个年份和月份,求出这个月的天数并输出。
#include <stdio.h>
void main()
{
int year,month,n;
printf("please enter a date like 2010/4\n");
scanf("%d/%d",&year,&month);
switch (month)
{
case 1: n=31;break;
case 2: n=28;break;
case 3: n=31;break;
case 4: n=30;break;
case 5: n=31;break;
case 6: n=30;break;
case 7: n=31;break;
case 8: n=31;break;
case 9: n=30;break;
case 10: n=31;break;
case 11: n=30;break;
case 12: n=31;break;
default:break;
}
if(year%4==0&&year%100!=0||year%400==0&&month==2)
n=29;
printf("%d年%d月有%d天。、\n",year,month,n);
}
2.编程序实现:输入一个年份y,求出y年的1月1日是星期几(提示:公元1年1月1日是星期一)。
#include <stdio.h>
void main()
{
int m,n=0,year,i;
printf("please enter a year");
scanf("%d",&year);
n=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%100)/4+1;
printf("%d年1月1日是",year);
m=n%7;
switch (m)
{
case 0: printf("星期天\n");
case 1:printf("星期一\n");break;
case 2:printf("星期二\n");break;
case 3:printf("星期三\n");break;
case 4:printf("星期四\n");break;
case 5:printf("星期五\n");break;
case 6:printf("星期六\n");break;
default:break;
}

}
3.(拓展题,选做)编程序实现:输入任意一个日期的年、月、日的值,求出是星期几并输出。
#include <stdio.h>
void main()
{
int year,month, day,n,i;
printf("please enter a date like 2010/4/16\n");
scanf("%d/%d/%d",&year,&month,&day);
n=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%100)/4;
switch (month)
{
case 1: n+=day;break;
case 2: n+=day+31;break;
case 3: n+=day+59;break;
case 4: n+=day+90;break;
case 5: n+=day+120;break;
case 6: n+=day+151;break;
case 7: n+=day+181;break;
case 8: n+=day+212;break;
case 9: n+=day+243;break;
case 10: n+=day+274;break;
case 11: n+=day+304;break;
case 12: n+=day+344;break;
default:break;
}
if(year%4==0&&year%100!=0||year%400==0&&month>2)
n+=1;
n=n%7;
switch (n)
{
case 0: printf("星期天\n");
case 1:printf("星期一\n");break;
case 2:printf("星期二\n");break;
case 3:printf("星期三\n");break;
case 4:printf("星期四\n");break;
case 5:printf("星期五\n");break;
case 6:printf("星期六\n");break;
default:break;
}
}


实验四 循环程序综合应用
一、实验目的:
掌握循环结构程序设计的一般方法及循环结构程序的调试方法,能够综合运用顺序、选择和循环结构解决一般难度的实际应用问题。
二、实验要求:
1.仔细阅读下列实验内容,并编写出相应的C语言源程序。
2.在VC运行环境下,编辑录入源程序。
3.调试运行源程序,并记录下调试运行过程中出现的所有错误及改正方法。
4.掌握如何根据出错信息查找语法错误。
5.掌握如何通过动态跟踪程序运行过程查找逻辑错误。
6.写出本次实验的实验报告。
三、实验内容:
1.编程序实现如下功能:输入任意一个年份的值,按以下格式输出该年份一月份的公历日历。
要求用循环控制打印。

2011年日历
1月
日 一 二 三 四 五 六
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

#include <stdio.h>
void main()
{
int year,days,i,m,k=0,j;
printf("please enter a year:");
scanf("%d",&year);
days=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%
100)/4+1;
m=days%7;
printf("%d年日历\n一月\n",year);
printf(" 日 一 二 三 四 五 六\n");
for(i=1;i<=m;i++)
{
k++;
printf(" ");}
k=m;
for(j=1;j<=31;j++)
{
k++;

printf("%3d",j);

if(k%7==0)
printf("\n");}
printf("\n");
}

2.(拓展题,选做)编程序实现如下功能:输入任意一个年份的值,输出该年份全年的公历日历。#include <stdio.h>
void main()
{
int year,days,i,m,n,k=0,j,day,month;
printf("please enter a year:");
scanf("%d",&year);
printf("%d年日历\n",year);
days=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%100)/4+1;
for(month=1;month<=12;month++)
{
switch (month)
{
case 1: day=31;break;
case 2: day=28;break;
case 3: day=31;break;
case 4: day=30;break;
case 5: day=31;break;
case 6: day=30;break;
case 7: day=31;break;
case 8: day=31;break;
case 9: day=30;break;
case 10: day=31;break;
case 11: day=30;break;
case 12: day=31;break;
default:break;
}
if(year%4==0&&year%100!=0||year%400==0&&month==2)
n=29;
switch (month)
{
case 1: days+=0;break;
case 2: days+=31;break;
case 3: days+=59;break;
case 4: days+=90;break;
case 5: days+=120;break;
case 6: days+=151;break;
case 7: days+=181;break;
case 8: days+=212;break;
case 9: days+=243;break;
case 10: days+=274;break;
case 11: days+=304;break;
case 12: days+=334;break;
default:break;
}
if(year%4==0&&year%100!=0||year%400==0&&month>2)
days+=1;
m=days%7;
printf("%d月\n",month),
printf(" 日 一 二 三 四 五 六\n");
for(i=1;i<=m;i++){k++;
printf(" ");}
k=m;
for(j=1;j<=day;j++)
{
k++;
printf("%3d",j);
if(k%7==0)
printf("\n");}
printf("\n");
}
}
都是同学啊!
最后两题米看到答案,我的方法不大对,就不给你了。

‘贰’ c语言程序设计答案

只说一下思路
实在写不出来再追问
最好能自己解决
第一题:
就是一个杨辉三角问题
用双循环
外循环是行数(用
i
表示)
从0到n
(n自己输入)
内循环是列数(用
j
表示)
从0到2*i-1
然后就是赋

很多种方式
比如你定义一个
字符变量
C
给它赋值为A
然后每次都用C给数组赋值
然后让C加1
方法很多
(数组是字符二维数组,

之前要初始化一下
给数组都赋值为
空格)
第二题:
定义两个二维数组
一个一维数组
按照题目要求
先把每个同学的成绩和名字分别存放到两个二维数组里面
同样是双循环
然后再用双循环
把每个同学成绩加起来放到一维数组里面
然后接下来就是对一位数组内容进行排序
排序过程中
也要将名字的那个二维数
组同样排序
因为一维数组中的总分顺序和二维数组中的姓名顺序是一样的
比如
要将第二个同学的成绩和第五个同学的成绩交换
那么就要
将总分交换
再将姓名交换
不然分就不对人了
第三题:
题目没明白什么意思
第四题:
用循环从第一个元素判断到最后一个元素
定义4个变量存储
数字
大写
小写
空格出现的次数
查一下ASCII码
数字好像是48-57
大写字母是
65-90
小写是
97-122
判断元素内容的ASCII在哪个范围
哪个变量就加1

‘叁’ 求C语言程序设计的答案

a==b表示判断a和b是否相等,后面没输出结果!

a=b是将b的值赋给a,后面输出“*****”

‘肆’ 跪求《C语言程序设计》课本习题答案!!!

习题1参考答案
一、选择题 1. A 2. D
二、填空题
1. BASIC、FORTRAN、AL_GOL60和COBOL 2. 8
3. 关键字
4. 编辑、编译、链接和运行
三、简答题 1.答:
(1)C语言具有结构化的控制语句。C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。
(2)C语言具有丰富的数据结构类型。C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。C语言还提供了与地址密切相关的指针类型。此外,用户还可以根据需要自定义数据类型。 (3)C语言具有丰富的运算符。C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。
(4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。
(5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。它既是成功的系统描述语言,又是通用的程序设计语言。 (6)C语言与汇编语言相比,可移植性好。
(7)功能强大。C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。现在许多系统软件都用C语言来描述,可以大大提高了编程效率。
2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。 3.答:
(1)操作系统的设计与实现。C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。

‘伍’ 求c语言程序设计第三版和c语言程序设计实验与习题指导答案

c语言程序设计第三版指导答案

附录F课后题参考答案
习题1
1.1填空题
1.函数
2.主函数main();主函数main()3.主函数main()4.函数首部;函数体5.{;}
6.顺序结构;选择结构;循环结构7..c;.obj;.exe
1.2思考题
1.答:结构化程序设计是指,为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。顺序结构,选择结构,循环结构
2.答:算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:①用自然语言表示算法;②用流程图表示算法;③用伪代码表示算法;④用程序设计语言表示算法。
3.略4.略5.略1.3编程题1.答:
#include"stdio.h"main()
{floata=10,b=20,h=5,s;s=(a+b)*h/2;
printf("s=%f",s);}
2.答:
#include"stdio.h"
main()
{printf("******************************");printf("*helloworld*");printf("******************************");}
习题2
2.1单选题
DBDCADCABBCA
2.2填空题
1.2.000000

2.1;0.500000
3.9;24.65.100;d6.(1)20
(2)0

(3)607.(1)10;6;4
(2)6;9;15
(3)3;60;83
8.55或'7'
9.x=4;y=6;z=3;m=463
2.3改错题(略)
习题3
3.1单选题
BDABCADCACBBA
3.2填空题
1.32.2613.10
4.2,1;互换a,b的值5.6.66.0037.7
8.5.0,4,c=3<Enter>
9.i=10,j=20<Enter>
10.(1)65(2)65,A(3)3.14,123.46
(4)3.141600e+000,1.234560e+002(5)8765.432100(6)8.765432e+003
11.a=2b=5x=8.8y=76.34c1=65c2=9712.%d/%d;%d/%d=%.2f
3.3改错题(略)3.4编程题
1.答:
#include"stdio.h"main(){
intx,y;
scanf("%d%d",&x,&y);printf(" x y ");
printf("十进制数 %d %d ",x,y);printf("八进制数 %o %o ",x,y);printf("十六进制数 %X %x ",x,y);}
2.答:
#include"stdio.h"main(){
charch;
printf("请输入一个大写英文字母");scanf("%c",&ch);
printf("大写英文字母是%c ",ch);printf("它的前导字符是%c ",ch-1);printf("它的后续字符是%c ",ch+1);}
3.答:
#include"stdio.h"main(){
intx,a,b,c,y;
printf("请输入一个三位整数 ");scanf("%d",&x);a=x/100;
b=(x-a*100)/10;c=x%10;
y=c*100+b*10+a;
printf("反向输出该整数:%d ",y);}}
4.答:
#include"stdio.h"main()
{inthour;
doublesalary,salaryday;
scanf("%d,%lf",&hour,&salaryday);
salary=hour*salaryday-hour*salaryday*0.1;
printf("%8.2lf ",salary);}
5.答:
#include"stdio.h"main(){
inta,b,c,t;
printf("请输入三个整数 ");scanf("%d%d%d",&a,&b,&c);
printf("交换前a=%d,b=%d,c=%d ",a,b,c);t=a;a=c;c=b;b=t;
printf("交换后a=%d,b=%d,c=%d ",a,b,c);}
习题4
4.1单选题
BADDDACBBBBA
4.2填空题
1.1
2.(1)a>0||b>0
(2)x>0&&x<=10(3)a==1.5&&b==1.5&&c==1.5
(4)p<a||p<b||p<c
3.(1)0(2)1(3)1(4)0(5)1
4.c=15.-46.17.5,0,38.59.123
10.(cvb=='y'||cvb=='Y')&&(work>=3||college=='y'||college=='Y')&&age<=35
4.3改错题(略)4.4编程题
1.答
#include"stdio.h"
#include"math.h"main(){
doublea,b,c,p,area;
scanf("%lf%lf%lf",&a,&b,&c);
printf("三角形的三边为:%.llf,%.1lf,%.1lf ",a,b,c);if(a+b>c&&a+c>b&&b+c>a){p=(a+b+c)/2;
area=sqrt(p*(p-a)*(p-b)*(p-c));
printf("三角形的面积为%.2lf ",area);}else
printf("不能构成三角形 ");}
2.答:
#include"stdio.h"main()
{intx,y;
scanf("%d,%d",&x,&y);if(x*x+y*y>1000)
printf("%d ",(x*x+y*y)/100);else
printf("%d ",x+y);}
3.答:
#include"stdio.h"#include"math.h"main()
{doublex,y;
scanf("%lf",&x);if(x<-2)y=x*x-sin(x);elseif(x<=2)y=pow(2,x)+x;elsey=sqrt(x*x+x+1);
printf("x=%.2lfy=%.2lf ",x,y);}
4.答:
#include"stdio.h"main()
{longge,shi,qian,wan,x;scanf("%ld",&x);wan=x/10000;
qian=x%10000/1000;shi=x%100/10;
ge=x%10;
if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/printf("thisnumberisahuiwen ");else
printf("thisnumberisnotahuiwen ");
}
5.答:
#include"stdio.h"main()
{floatp,w,s,d,f;
scanf("%f,%,%f",p,s,w);if(s>3000)d=0.15elseif(s>=2000)d=0.1;elseif(s>=1000)d=0.08;elseif(s>=500)d=0.05;elseif(s>=250)d=0.02;elsed=0f=p*w*s*(1-d);printf("%f",f);}
6.答:
#include"stdio.h"main()
{intyear,money;charx;
printf("是否是本公司产品(y/n):");scanf("%c",&x);
if(x=='y'||x=='Y')
{printf("产品使用的年限:");scanf("%d",&year);
if(year<=1)money=0;
elseif(year<8)money=50;elsemoney=100;

printf("产品保修额是:%d ",money);
}
else
{money=200;
printf("不是本公司产品,产品保修额是:%d ",money);}}
7.答:
#include"stdio.h"main()
{intmoney,num1,num2;
printf("请输入取款额(≤2000):");scanf("%d",&money);
if(money>2000)printf("请输入取款额数≤2000! ");elseif(money%50==0){num1=money/100;num2=(money-num1*100)/50;printf("需支付100元:%d张 ",num1);printf("需支付50元:%d张 ",num2);}elseprintf("输入钱数必须是50的倍数! ");}
习题5
5.1单选题
CDABAABDDBDBCB
5.2填空题
1.202.333
3.(1)i<10或i<=9(2)j%3!=0
4.(1)flag*(float)k/(k+1)或1.0*flag*k/(k+1)(2)flag=-flag5.(1)max=x


(2)x!=-1(3)scanf("%d",&x)
6.(1)x<=9或x<10
(2)y=9-x
5.3改错题(略)5.4编程题
1.答:
(1)for循环,其他略
#include"stdio.h"
main()
{inti,s=0;
for(i=1;i<=100;i++)s+=i*i;
printf("%d ",s);}
(2)for循环,其他略
#include"stdio.h"main()
{inti=1,p=1;doubles=1;do{
s+=1.0/p;p*=++i;
}while(1.0/p>1e-6);printf("%lf",s);}
2.答:
#include"stdio.h"main()
{intm,n,t,a,b;
scanf("%d,%d",&m,&n)if(m<n)
{t=mm=nn=t}a=m;b=n;t=m%nwhile(t)
{m=nn=tt=m%n;}printf("%d",n);}
3.答:
#include"stdio.h"main()
{intx,y,s=1;
scanf("%d,%d",&x,&y)for(y>0y--)s*=x
printf("%d,%d,%d ",s%10,s/10%10,s/100%10);}
4.答:
#include"stdio.h"main()
{intx,y,z;
for(x=1x<20x++)for(y=1y<33y++){z=100-x-y
if((z%3)==0&&(5*x+3*y+z/3)==100)printf("x=%d,y=%d,z=%d ",x,y,z)}}
5.答:(a)
#include"stdio.h"main()
{intj,k
for(j=1j<=4j++)
{for(k=1;k<=4-j;k++)printf("");printf("****")printf(" ")}}
(b)
#include"stdio.h"main()
{intj,k
for(j=1j<=4j++)
{for(k=1;k<=4-j;k++)printf("");for(k=1k<=2*j-1k++)printf("*")printf(" ")}}
6.答:
程序分析:利用for循环控制在100~999之间,对每个数分解出个位、十位、百位。
#include<stdio.h>main(){inti,j,k,n;printf("waterflower'numberis:");for(n=100;n<1000;n++){i=n/100;/*分解出百位*/j=n/10%10;/*分解出十位*/k=n%10;/*分解出个位*/if(n==i*i*i+j*j*j+k*k*k){printf("%-5d",n);}}printf(" ");}
7.答:
#include<stdio.h>main(){intx;for(x=1000;x>=3;x--)if(x%3==1&&x%5==2&&x%7==3){
printf("该校的学生人数是:%d人 ",x);break;}}
8.答:
#include<stdio.h>main(){intx=12,i=1;while(1)
{if((x+20+i)==2*(x+i))break;i++;}printf("小明母亲在%d年后比小明的年龄大一倍 ",i);printf("那时小明年龄是:%d岁,小明母亲年龄是:%d岁 ",x+i,x+20+i);}
习题6
6.1单选题
DBCCBBDC
C语言程序设计教程(第3版)
278
6.2填空题
1.c2.603.1000104.16
6.3编程题
1.答:
#include"stdio.h"#include"math.h"
#defineF(a)a*a+sqrt(3*a*a+2*a+1)main()
{floatx,f;
scanf("%f",&x);
f=4.5/F(exp(x))+F(cos(x))+F(sqrt(x))/F(x*x)printf("%f ",f);}
习题7
7.1单选题
BCADACCCDABCBDB
7.2填空题
1.(1)2345(2)10010(3)QuickC

(4)1000001000001000001000001(5)Language
(6)LanguageProgramming2.(1)j+=2(2)a[i]>a[j]3.(1)i=1(2)x[i-1]
7.3改错题(略)7.4编程题
1.答:
#defineN10
#include"stdio.h"main()
{inta[N]={1,2,3,4,5,6,7,8,9,10,osum=0,qsum=0,j;for(j=0;j<10;j++)
if(j%2)qsum+=a[j];
elseosum+=a[j];
printf("osum=%d,qsum=%d ",osum,qsum);}
2.答:
#defineN10
#include"stdio.h"main()
{inta[N]={10,20,30,40,50,60,70,80,90},j,k,x;scanf("%d",&x);for(j=0;j<N;j++)
if(x<a[j])break;if(j==N)a[N-1]=x;else
{for(k=N-1;k>j;k--)a[k]=a[k-1];a[j]=x;}
for(j=0;j<N;j++)
printf("%d",a[j]);}
3.答:
#defineM3
#include"stdio.h"main()
{inta[M][M]={{1,2,3},{2,4,5},{3,5,6}},j,k,flag=1;;for(j=0;j<M;j++)
for(k=0;k<M;k++)if(a[j][k]!=a[k][j]){flag=0;break;}if(flag)printf("ok");elseprintf("NO");}
4.答:
#include"stdio.h"#include"string.h"main()
{charc1[10],c2[10],j;gets(c1);gets(c2);
for(j=0;(c1[j]==c2[j])&&c1[j]&&c2[j];j++);if(c1[j]>c2[j])printf("%d ",1);if(c1[j]<c2[j])printf("%d ",-1);if(c1[j]==c2[j])printf("%d ",0);}
5.答:
#include"stdio.h"#include"string.h"#defineM3#defineN80main()
{chara[M][N],j,k,n[5]={0};for(j=0;j<M;j++)gets(a[j]);
for(j=0;j<M;j++)
for(k=0;a[j][k];k++)
if(a[j][k]>='A'&&a[j][k]<='Z')n[0]++;
elseif(a[j][k]>='a'&&a[j][k]<='z')n[1]++;elseif(a[j][k]>='0'&&a[j][k]<='9')n[2]++;elseif(a[j][k]=='')n[3]++;elsen[4]++;
for(j=0;j<5;j++)printf("%4d",n[j]);}
习题8
8.1单选题
DBDACBACCC
8.2填空题
1.(1)2,1(2)10#30#(3)FOUR,P(4)60
2.(1)49
(2)2
(3)2

(4)

(5)
8.3改错题(略)8.4编程题
1.答:
#include"stdio.h"
main()
{intn1,n2,n3,t;int*p1,*p2,*p3;
printf("pleaseinput3number:n1,n2,n3:");scanf("%d,%d,%d",&n1,&n2,&n3);p1=&n1;
p2=&n2;p3=&n3;
if(*p1>*p2){t=*p1;*p1=*p2;*p2=t;}
if(*p1>*p3){t=*p1;*p1=*p3;*p3=t;}if(*p2>*p3){t=*p2;*p2=*p3;*p3=t;}
printf("thesortednumbersare:%d,%d,%d ",n1,n2,n3);}
2.答:
#include"stdio.h"#defineN3main()
{inta[N],*p=a;for(;p-a<N;p++)scanf("%d",p);p=a+N-1;
for(;p-a>=0;p--)printf("%d",*p);}
3.答:
#include"stdio.h"main()
{inta[10];
intj,minl=0,maxl=0;for(j=0;j<10;j++)
scanf("%d",a+j);for(j=0;j<10;j++)
{if(a[maxl]<*(a+j))maxl=j;if(a[minl]>*(a+j))minl=j;}
j=a[0];a[0]=a[minl];a[minl]=j;j=a[9];a[9]=a[maxl];a[maxl]=j;for(j=0;j<10;j++)printf("%d",*(a+j));}
4.答:
输入阵列如下:123456789101112输出阵列如下:
121110987654321
#defineM3
#defineN4
#include"stdio.h"main()
{inta[M][N]={1,2,3,4,5,6,7,8,9,10,11,12},k,j,*p=&a[0][0],t;for(k=0,j=M*N-1;k<j;k++,j--)
{t=*(p+k);*(p+k)=*(p+j);*(p+j)=t;}for(k=0k<Mk++){for(j=0j<Nj++)
printf("%4d",a[k][j]);printf(" ");
}}
5.答:
#include"stdio.h"main(){
intlen;
charstr[20],*p=str;
printf("pleaseinputastring: ");scanf("%s",str);len=0;
while(*p!=''){
len++;p++;}
printf("thestringhas%dcharacters. ",len);}
6.答:
#include"string.h"#include"stdio.h"main(){
char*str1[5],ch[5][20],k,t,j,*c;voidsort(char**);for(k=0;k<5;k++){str1[k]=ch[k];gets(str1[k]);}for(k=0;k<7;k++)
{t=k;
for(j=k+1;j<5;j++)if(strcmp(*(str1+t),*(str1+j))>0)t=j;c=*(str1+t);
*(str1+t)=*(str1+k)*(str1+k)=c}
for(k=0;k<5;k++)puts(str1[k]);}
习题9
9.1单选题
CBBADDBCCDDCABCBCCBADCDAB
9.2填空题
1.1202.x3.3,2,2,34.fac/i5.8,176.97.1.0/(i*i)8.
fun-in:30,20,10fun-end:1015,35,105010,20,309.01234510.9363611.(1)r+b[k](2)*x
12.7531913.15
14.(1)*x(2)t15.(1)''(2)n++16.024
9.3改错题(略)9.4编程题
1.答:
voidzhuan()
{charch;
while((ch=getchar())!=' ')
{if(ch>='a'&&ch<='z')ch=ch-32;putchar(ch);}}
2.答:
doubleexpp(intn){intk,fac=1;doublesum=1;
for(k=1;k<=n;k++){fac*=k;
sum+=1.0/fac}
return(sum);}
3.答:
intxy3(intx,inty)
{intk,num=1;
for(k=1;k<=yk++)num*=x
num=num%1000returnnum}
4.答:
intage(intn){intc;
if(n==1)c=10
elsec=age(n-1)+2returnc}
5.答:
#include"stdio.h"
main()
{inta,b,c,d;
voidfun(inta,intb,int*c,int*d);scanf("%d%d",&a,&b);fun(a,b,&c,&d);
printf("%d%d",c,d);
}
voidfun(inta,intb,int*c,int*d){if(b)
{*c=a/b;*d=a%b;}}
6.答:
#include"stdio.h"
main(intargc,char*argv[]){intk;
printf("argc=%d ",argc);for(k=1;k<argc;k++)printf("%s ",argv[k]);}
习题10
10.1单选题
CDBBBBBBADCCBDC
10.2填空题
1.所有结构体成员所占存储空间的总和2.与占用存储空间最大的那个成员相等
附录F课后题参考答案

285
3.(1)structsatype(2)3(3)sa.a(4)9(5)psa=&sa4.805.structnode6.0
10.3编程题
1.答:
#include"stdio.h"
structstudent{
longnum;
charname[20];charsex;floatscore;};main()
{structstudents[20],temp;intj,k,man=0,woman=0;
floatsumman=0,sumwoman=0,aveman,avewoman;for(k=0;k<20;k++)
{scanf("%ld%s%c%f",&s[k].num,s[k].name,&s[k].sex,&s[k].score);if(s[k].sex=='m')
{summan+=s[k].score;man++;}else
{sumwoman+=s[k].score;woman++}}
aveman=summan/man;
avewoman=sumwoman/woman;
printf("%d %f %d %f ",man,aveman,woman,avewoman);for(k=0;k<19;k++)
for(j=0;j<20-k;j++)
if(s[j].score<s[j+1].score)
{temp=s[j];s[j]=s[j+1];s[j+1]=temp;}printf("thesortednumbers: ");for(k=0;k<20;k++)
printf("%ld %s %c %5.1f ",s[k].num,s[k].name,s[k].sex,s[k].score);}
习题11
11.1单选题
BADD
11.2填空题
1.3d3d3302.(1)28
(2)20(3)0(4)--9
3.(1)251
(2)42
(3)209
(4)–295(5)848
习题12
12.1单选题
BCDCAADA
12.2填空题
1.rewind(文件指针)2."d1.dat","rb"3.stdin
4.文本文件;二进制文件5.(1)"w"
(2)str[i]--32

(3)"r"
6.fopen7.Hello8.(1)"r"

(2)fgetc(fp)

(3)time++


C语言程序设计实验与习题指导课后程序设计答案
P18
(1)
#include<stdio.h>intmain(void){intcelsius,fahr;fahr=150;celsius=5*fahr/9-5*32/9;printf("fahr=%d,celsius=%d ",fahr,celsius);return0;}
(2)
#include<stdio.h>intmain(void){intcelsius,fahr;celsius=26;fahr=9*celsius/5+32;printf("celsius=%d,fahr=%d ",celsius,fahr);return0;}
(3)
#include<stdio.h>intmain(void){intaverage,math,eng,comp;math=87;eng=72;comp=93;average=(math+eng+comp)/3;printf("math=%d,eng=%d,comp=%d,average=%d ",math,eng,comp,average);return0;}
(4)
#include<stdio.h>intmain(void){intn,a,b,c;n=152
c=n%10;
b=(n/10)%10;a=n/100;
printf("整数%d的个位数字是%d,十位数字是%d,百位数字是%d ",n,c,b,a);return0;
}
P27
(1)
#include<stdio.h>#include<math.h>intmain(void){intcelsius,fahr;printf("Entercelsius:");scanf("%d",&celsius);fahr=9*celsius/5+32;printf("fahr%d ",fahr);return0;}
(2)
#include<stdio.h>#include<math.h>intmain(void){intmoney,year;doublerate,interest;printf("Entermoney,year,rate:");scanf("%d%d%lf",&money,&year,&rate);interest=money*pow(1+rate,year)-money;printf("interest=%.2f ",interest);return0;}
(3)
#include<stdio.h>#include<math.h>intmain(void){doublex,y;printf("Enterx:");scanf("%lf",&x);
if(x<0){y=pow(x+1,2)+2*x+1/x;}else{y=sqrt(x);}
printf("y=f(%f)=%.2f ",x,y);return0;
}
(4)
#include<stdio.h>intmain(void){intx,y;printf("Enternum1:");scanf("%d",&x);printf("Enternum2:");scanf("%d",&y);printf("%d+%d=%d ",x,y,x+y);printf("%d-%d=%d ",x,y,x-y);printf("%d*%d=%d ",x,y,x*y);printf("%d/%d=%d ",x,y,x/y);printf("%d%%%d=%d ",x,y,x%y);return0;}
10的阶乘
#include<stdio.h>intmain(void){inti,n,proct;printf("Entern:");scanf("%d",&n);proct=1;for(i=1;i<=n;i++){proct=proct*i;}printf("proct=%d ",proct);return0;}

‘陆’ C语言程序设计教程(第二版) 周宇 课后答案

二、 1. I love China! printf("we are students.\n") 2. 6 项目实训题参考答案 1.编写一个C程序,输出以下信息: * * * * * * * * * * * * * * * * * * * * I am a student! * * * * * * * * * * * * * * * * * * * * main() { printf("********************\n"); printf(" I am a student!\n "); printf("********************\n"); } 2222....已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。 解: main() { int a,b,c,v; a=10; b=20; c=15; v=a*b*c; printf("v=%d",v); } 本程序运行结果为: v=3000 第第第第2章章章章 编制编制编制编制C程序的基础知识程序的基础知识程序的基础知识程序的基础知识 一 选择题 C B A B A C C 二 操作题 2 21. 3,2,-8,2 3.000000,2.500000,-8.000000 2. ABC DE FGH why is 21+35 equal 52 3. 3 1 4 3 2 3 1 2 4. aa bb cc abc A N 项目实训题 1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。 #define M 5 main() { int n,c; n=2; c=M*n; printf("%d\n",c); } 2.编程求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7; (2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。 (1)main() { int a=7; float x=2.5,y=4.7; printf("%f\n",x+a%3*(int)(x+y)%2/4); } (2)main() { int a=2,b=3; float x=3.5,y=2.5; printf("%f\n",(float)(a+b)/2+(int)x%(int)y); 第三章第三章第三章第三章 顺序结构程序设计顺序结构程序设计顺序结构程序设计顺序结构程序设计 一 选择题 A C D C C 二 操作题 1. x=3,a=2,b=3 2. z=12.700000 3. 1 2 1 a 2 1 2 三三三三....编程题 编程题编程题编程题编程题 1. 某工种按小时计算工资,每月劳动时间(小时)×每小时工资=总工资,总工资中扣除10%公积金,剩余的为应发工资。编写一个程序从键盘输入劳动时间和每小时工资,打印出应发工资。 解: #include <stdio.h> main() { float sj,gz,yfgz; printf("time,salary:"); scanf("%f,%f",&sj,&gz); yfgz=sj*gz*0.9; printf("total salary:%f\n",yfgz); } 本程序运行结果为: time,salary:4,3<CR> total salary:10.800000 2.编写一个程序求出任意一个输入字符的ASCII码 解: #include <stdio.h> main() { char c; printf("Input a string:"); scanf("%c",&c); printf("%c ASCII is %d\n",c,c); } 本程序运行结果为: Input a string:a<CR> a ASCII is 97 3、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付第四章第四章第四章第四章 选择结构程序设计选择结构程序设计选择结构程序设计选择结构程序设计 一、略 二、B B A B C B A 三、1. 1 0 2. 2 3 2 2 3. 10 20 0 4. ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’ ch>=’0’&&ch<=’9’ ch==’ ’ 5. -1 四、上机操作 1. 从键盘输入一个英文字母,如果是大写字母,则将它变为小写字母输出;如果是小写字母,则将其变为大写字母输出。 #include<stdio.h> main() {char ch; ch=getchar(); if(ch>='A'&&ch<='Z') ch+=32; else if(ch>='a'&&ch<='z') ch-=32; putchar(ch); putchar('\n'); } 2. 根据输入的x值依据下列表达式,计算y的值。 2x (x>-1) y = 3 (x=-1) 4+x (x<-1) 解: main() { float x,y; scanf("%f",&x); if(x>-1) y=2*x; else if(x==1) y=3; else y=4+x; printf("y=%f",y); } 本程序运行结果为: -2<CR> y=2.000000 3.编写程序,输入一个整数,判断它是奇数还是偶数,若是奇数,输出“Is Odd“;若是偶数,输出“Is Even“。 main() { int x; scanf("%d",&x); if(x%2==0) printf("Is Even\n"); else printf("Is Odd\n"); } 4.设计应用程序,求二次方程ax2+bx+c=0的解。 #include<math.h> main() { float a,b,c,disc,x1,x2,p,q; scanf("%f,%f,%f",&a,&b,&c); if(fabs(a)<=1e-6) printf(" The equation is not a quadratic\n"); else { disc=b*b-4*a*c; if(fabs(disc)< 1e-6) printf("x1=x2=%8.4f\n",-b/(2*a)); else if(disc>1e-6) {x1=(-b+sqrt(disc)/(2*a)); x2=(-b-sqrt(disc)/(2*a)); printf("x1=%8.4f,x2=%8.4f\n",x1,x2); } else { p=-b/(2*a); q=sqrt(-disc/(2*a)); printf("%8.4f+%x8.4fi\n",p,q); printf("%8.4f-%8.4fi\n",p,q);} } } 5555....按托运规则,行李不超过50公斤时,运费为0.15元/公斤,如超过50公斤,超过部分的运费为0.22元/公斤,现有行李w公斤,编写一个程序计算运费。 解: #include <stdio.h> main() { float w,f,x; printf("weight:"); scanf("%f",&w); if(w<=50) x=0.15*w; else x=0.15*50+0.22*(w-50); printf("money:%6.2f yuan\n",x); } 本程序运行结果为: weight:20<CR> money:3.00 yuan weight:60<CR> money:9.70 yuan 6. 某商场给与顾客购物的折扣率如下: 购物金额<200元 不打折 500元>购物金额>=200元 9折 1000元>购物金额>=500元 8折 购物金额>=1000元 7.5折 输入一个购物金额,输出打折率、购物实际付款金额。 #include<stdio.h> main() { float x,y,realx; scanf("%f",&x); if(x<=0) { printf("Error! You input a worry number!\n"); y=0;} else { if(x<200) y=1.0; else if(x<500) y=0.9; else if(x<1000) y=0.8; else y=0.75;} if(y!=0) {realx=x*y; printf("y=%f, the realx=%5.2f\n", y,realx);} } 第五章第五章第五章第五章 循环结构程序设计循环结构程序设计循环结构程序设计循环结构程序设计 一、选择题 C C A A D D第六章第六章第六章第六章 数组数组数组数组 、选择题 D A D A A C C A D 二、程序阅读题 13 13 13 13 13 13第七章第七章第七章第七章 函数函数函数函数 一、选择题 B D C B B D A A D第第第第8888章章章章 指针指针指针指针 一、选择题 D A C C(D) D C D 二、填空题 1. m 2. 指针数组名 3. ABCDCD 4.49 5. 25

热点内容
crm客户管理系统源码 发布:2024-11-27 07:59:26 浏览:363
匠辰app安卓在哪里下载 发布:2024-11-27 07:47:12 浏览:731
sql表操作 发布:2024-11-27 07:46:31 浏览:813
云顶之脚本 发布:2024-11-27 07:45:37 浏览:658
编程箴言pdf 发布:2024-11-27 07:43:59 浏览:369
传奇脚本经验卷 发布:2024-11-27 07:43:16 浏览:679
我的世界手机版国际服怎么创建自己的服务器 发布:2024-11-27 07:38:19 浏览:693
java中立方 发布:2024-11-27 07:07:05 浏览:484
编程Q1 发布:2024-11-27 06:52:29 浏览:459
版本编译验证 发布:2024-11-27 06:46:43 浏览:938