C语言程序设计实验指导答案
C语言程序设计实验指导书课后答案Word版

实验一(1)编程求37+29的值,实习VC环境。
#include<stdio.h>void main(){int a,b,sum;a=37;b=29;sum=a+b;printf("sum=%d",sum);}(2)从键盘输入三个整数,求出最大数并输出。
#include<stdio.h>void main(){int a,b,c,y;int max(int x,int y);printf("input a,b,and c:");scanf("%d,%d,%d",&a,&b,&c);y=max(a,b);y=max(y,c);printf("\nmax=%d\n",y);}int max(int x,int y){int z;if(x>y) z=x;else z=y;return(z);}(3)通过上机实践,运行下列程序并分析输出结果。
A 程序代码#include<stdio.h>void main(){char ch='a';printf("%c对应的ASCII码是:%d\n",ch,ch);}程序输出结果:a对应的ASC||码是:97B 程序代码#include<stdio.h>void main(){int a=168;float b=123.456;float x=35.567,y;printf("a=%5d\n",a);printf("a=%-5d\n",a);printf("b=%6.2f\n",b);printf("b=%e\n",b);y=(int)(x*100+0.5)/100.0;printf("x=f,y=%f\n",x,y);}程序输出结果:a=168a=168b=123.46b=1.234560e+002x=f,y=35.567001C程序代码#include<stdio.h>void main(){int a=168;printf("十进制数%d对应的八进制数是%o\n",a,a);printf("十进制数%d对应的十六进制数是%x\n",a,a); }程序输出结果:十进制数168对应的八进制数是250十进制数168对应的十六进制数是a8实验二2.1顺序结构2.1.1已知a=1.5,b=5.3,c=2.9,计算s=b2 -4ac的结果并输出。
C语言程序设计练习指导书实验答案

(2)以下程序输入圆的半径,求圆面积。请将程序中的5处语法错误和逻辑错误改正。
#include "stdio.h"
void main()
{ int r;
float s;
printf("Enter r:");
scanf("%d", &r);
s=3.14159*r*r;
}
}
(2)已知鸡兔共有30只,脚共有90个,下面程序的功能计算并输出鸡兔各有多少只,请改正程序中的错误。
#include "stdio.h"
void main()
{ int x,y;
for(x=1;x<=30;x++)
{ y=30-x ;
if(2*x+4*y==90)printf("%d,%d\n",x,y) ;
0 x<0
y= x 0<=x<10
10 10<=x<20
-0.5x+20 20<=x<40
#include "stdio.h"
void main()
{ int a=1,b=2,c=3;
float d=4,e;
e=a/((b+c)*d);
printf("%f\n",e);
}
3.2 顺序结构程序设计
1、改错题
(1)以下程序计算并输出长方形面积和体积,请改正程序中的错误。
printf("s=%f\n",s);
}
2、填空题
《C语言程序设计》实验指导书答案

实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。
2.熟悉编译环境Visual C++或者Dev C++或者Turbo C2.0//3.0。
3.初步熟悉C语言程序的语法规定。
4.了解简单函数的使用方法。
实验内容:1.编程且上机运行:求3个整数的和。
2.编程且上机运行:求2个数的和、差、积和商。
3.编程且上机运行:输入3个数,求最大值。
4.编程且上机运行:输入圆的半径,求圆的面积和周长。
5.在屏幕上输出:“hello world!”6.输入并编辑本章中给出的C程序例子,在自己用的环境中形成一个C语言源程序文件;对这个源程序进行加工,得到对应的可执行程序,看一看它的效果。
实验结果:1.#include <stdio.h>#include <stdlib.h>main( ){ int i,j,k;printf("input i,j,k:");//输入整数数据,以半角逗号间隔,比如:1,2,3scanf("%d,%d,%d",&i,&j,&k);//不能缺少地址符号“&”printf("%d+%d+%d=%d\n",i,j,k,i+j+k);system("Pause");}2.#include <stdio.h>#include <stdlib.h>main( ){ int i,j;printf("input i,j(not 0):");//输入整数数据,以半角逗号间隔,j不为0,因为做除数scanf("%d,%d,%d",&i,&j);//不能缺少地址符号“&”printf("%d+%d=%d\n",i,j,i+j);printf("%d-%d=%d\n",i,j,i-j);printf("%d*%d=%d\n",i,j,i*j);printf("%d/%d=%d\n",i,j,i/j);system("Pause");}3. #include <stdio.h>#include <stdlib.h>main( ){ int i,j,k;printf("input i,j,k:");//输入整数数据,以半角逗号间隔scanf("%d,%d,%d",&i,&j,&k);//不能缺少地址符号“&”if(i>j){if(j>k)printf("max:%d",i);else if(i>k)printf("max:%d",i);elseprintf("max:%d",k);}else{if(j<k)printf("max:%d",k);elseprintf("max:%d",j);}system("Pause");}4. #include <stdio.h>#include <stdlib.h>#define pi 3.14main( ){ float r;printf("input r:");scanf("%f",&r);//不能缺少地址符号“&”printf("circle area is:%6.2f",pi*r*r);system("Pause");}5.#include <stdio.h>#include <stdlib.h>#define pi 3.14main( ){printf("hello world!");system("Pause");}6.略实验二(第3章实验一)实验目的:理解C语言的类型系统。
C语言程序设计实验指导含答案

C语言程序设计实验指导含答案实验一:C语言程序设计基础实验内容:本实验主要以C语言的基础语法为主,通过一些简单的示例和练习来帮助学生熟悉C语言的基本概念和语法规则。
实验步骤:1. 编写一个简单的C程序,输出"Hello, World!"。
要求程序能够顺利编译并执行。
答案:#include <stdio.h>int main(){printf("Hello, World!");return 0;}2. 基于上一题的程序,修改代码,要求程序输入一个整数,并将其乘以2输出。
答案:#include <stdio.h>int main(){int num;printf("请输入一个整数:");scanf("%d", &num);printf("乘以2的结果为:%d", num * 2);return 0;}3. 编写一个C程序,输入一个圆的半径,计算并输出其面积和周长。
要求保留2位小数。
答案:#include <stdio.h>#define PI 3.14159int main(){float radius;printf("请输入圆的半径:");scanf("%f", &radius);float area = PI * radius * radius;float circumference = 2 * PI * radius;printf("圆的面积为:%.2f\n", area);printf("圆的周长为:%.2f\n", circumference);return 0;}实验二:循环和判断语句实验内容:本实验主要通过不同的练习来帮助学生熟悉和掌握C语言中的循环和判断语句的使用方法。
C语言程序设计实验指导书课后答案

实验一(1)编程求37+29得值,实习VC环境。
#include<stdio、h>void main(){ﻩ int a,b,sum;a=37;ﻩ b=29;sum=a+b;printf("sum=%d",sum);}(2)从键盘输入三个整数,求出最大数并输出。
#include<stdio、h>void main(){int a,b,c,y;ﻩint max(int x,inty);ﻩ printf("input a,b,and c:");ﻩ scanf("%d,%d,%d",&a,&b,&c);y=max(a,b);ﻩ y=max(y,c);ﻩ printf("\nmax=%d\n",y);}int max(int x,int y){int z;if(x>y) z=x;else z=y;return(z);}(3)通过上机实践,运行下列程序并分析输出结果。
A 程序代码#include<stdio、h>void main(){char ch='a';ﻩprintf("%c对应得ASCII码就是:%d\n",ch,ch); ﻩ }程序输出结果:a对应得ASC||码就是:97B 程序代码#include<stdio、h>voidmain(){int a=168;ﻩ float b=123、456;float x=35、567,y;printf("a=%5d\n",a);ﻩprintf("a=%-5d\n",a);printf("b=%6、2f\n",b);ﻩprintf("b=%e\n",b);ﻩ y=(int)(x*100+0、5)/100、0;printf("x=f,y=%f\n",x,y);}程序输出结果:a=168a=168b=123、46b=1、234560e+002x=f,y=35、567001C程序代码#include<stdio、h>voidmain(){int a=168;printf("十进制数%d对应得八进制数就是%o\n",a,a);printf("十进制数%d对应得十六进制数就是%x\n",a,a);}程序输出结果:十进制数168对应得八进制数就是250十进制数168对应得十六进制数就是a8实验二2、1顺序结构2、1、1已知a=1、5,b=5、3,c=2、9,计算s=-4ac得结果并输出。
C语言程序设计教程习题解答与实验指导

C语言程序设计教程习题解答与实验指导C语言程序设计是计算机科学与技术专业的核心课程之一,它不仅教授编程语言的基础知识,还培养学生的逻辑思维和问题解决能力。
本教程旨在为学习C语言的学生提供习题解答和实验指导,帮助他们更好地理解和掌握C语言的编程技巧。
第一部分:习题解答1. 基础语法- 问题1:编写一个程序,输出“Hello, World!”。
解答:在C语言中,最基本的程序结构是`main`函数。
使用`printf`函数可以输出文本到控制台。
```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```- 问题2:声明一个整型变量`a`,并为其赋值为10。
解答:在C语言中,使用`int`关键字声明整型变量。
```cint a = 10;```2. 控制结构- 问题3:编写一个程序,根据用户输入的分数判断成绩等级。
解答:使用`if-else`语句可以实现条件判断。
```c#include <stdio.h>int main() {int score;printf("请输入你的分数:");scanf("%d", &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. 循环结构- 问题4:使用循环结构打印1到10的数字。
c语言程序设计实验指导答案

太原理工大学现代科技学院C语言程序设计课程实验报告专业班级学号姓名指导教师焦雄5.#include <stdio.h> void main(){int a=10,n=5;a+=a;printf("%d\n",a);a=10,a-=2;printf("%d\n",a);a=10,a*=2+3;printf("%d\n",a);a=10,a/=a+a;printf("%d\n",a);a=10,a%=(n%=2);printf("%d\n",a);a=10,a+=a-=a*=a;printf("%d\n",a); }遇到的问题和解决方法心得体会实验三简单程序、分支程序和循环程序设计实验名称实验目的和要求1.理解C语言程序的基本结构和实现基本结构的语句;2.熟练应用赋值、输入和输出语句;3.理解并掌握关系运算符、逻辑运算符及其表达式的使用;4.熟练掌握if语句、switch语句、while语句、do—while语句和for语句的用法;实验内容1.输入并运行第3章例3-3、例3-6中的程序,通过输出结果理解对应的格式说明。
2.输入并运行第3章例3-8、例3-10中的程序,注意输入数据的格式。
3.已知圆柱半径r=1.5,圆柱高h=3,编程求圆周长,圆面积和圆柱体积。
4.输入一百分制成绩,输出成绩等级A、B、C、D、E。
90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。
要求程序能处理错误的输入数据。
5.利用公式:π/4=1-1/3+1/5-1/7+……,求π的近似值,直到最后一项的绝对值小于10-6为止。
(fabs(t)表示t的绝对值,1e-6=1*10-6)。
6.求100-200间所有素数。
7.输出三角形的九九乘法口诀表。
8.打印水仙花数。
水仙花数是指一个3位数,其各位数字立方和等于该数本身。
【免费下载】C语言程序设计实验与习题指导第2版参考答案

二、填空题
sum/n
index=-1 break
end-1
(aver-max-min)/6
top=min+1
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c+=32; else
c=c; putchar(c); return 0; } 注意在此程序中有两点容易发生错误:第一 if(c>='a' && c<='z')写成 if(‘a’<=c<=’z’)。第二就 是 if(c>='A' && c<='Z')语句前应该加 else,如果不加 else,可以考虑当输入小写字符 if(c>='a' && c<='z')满足,执行 c-=32 此时 c 变成大写字母,再继续判断 if(c>='A' && c<='Z')又满足 执行 c+=32 又回到小写。☆☆☆☆☆ 8 if(a==5) 9 添加的代码为 if((x>=0 && x<=5)|| x>=10) 10 easy 11 easy!但是要注意 a=0&&b!=0 时,此时有一个根。 12 #include<stdio.h>
解释:a 和 b 值不同的原因是在给 a 赋值的时刻,2,3 是用括号包围的,而 b 没有,而逗号
表达式的值等于最后面的那个值。☆☆☆☆☆
4. 输出:-264 原因是首先执行 a-=a*a 也就是 a=12-(12*12)=-132,然后 a+=a 因此变为-264☆☆
5. 输出:a=2,b=0,c=2,d=1 这是因为在执行 b=a++ && c++时,由于首先使用 a 的当前值
printf(“优”); else if(score>=80 && score<90)
printf(“良”); else if(score>=70 && score<80)
printf(“中”); else if(score>=60 && score<70)
printf(“及格”); else
printf(“不及格”); } 5. 注意 switch case 中的“fall throught”现象,也就是在没有 break 的情况下,程序根据匹配 的入口一直向下执行,知道碰到 break 或者}终止。修改时只需要在每个 case 后面的 printf 语句后面加上 break 即可。☆☆☆☆☆ 6. else 为 if(b>0)的分支,应该改为: #include<stdio.h> int main() {
int a=2,b=-3; if(a>0)
if(b>0) printf("a,b>0");
else printf("a>0,b<0");
else printf("a<0");
return 0; } 7. #include<stdio.h> int main() {
char c;
4
c=getchar(); if(c>='a' && c<='z')
把 i++换成++i 输出:-1 6. #include<stdio.h> void main() {
为 0,而在“&&”运算符中当左侧的操作数为 0 时会发生“短路”现象,即不再计算右侧的”c++”
直接就可以判定 b=0,因此在这一步中 c 的值并没有发生变化,而运算完此步 a=1。而在下一步
d=a++ || ++c 中,同样会发生短路现象,因为此时首先利用 a 的当前值 1 直接就可以判定 d=1,
而不再执行++c
☆☆☆☆☆
6. 输出:3,18
输出:3,3 还是逗号运算符和赋值运算符的问题 ☆☆☆☆☆
7. 把 s=1/2*a*b 改为 s=1.0/2*a*b 千万不要忘了在 c 语言中 1/2=0 ☆☆☆☆☆
8. easy!
9. #include<stdio.h>
int main()
{
char ch;
6
case 6: printf("合格"); break;
default: printf("不及格");
} return 0; }
实验六:循环结构程序设计(一) 1. easy! 2. 输出 0 3. 循环次数:无限次 for(;;)代表无限次循环 4. 输出:-2-1 ☆☆☆☆☆还是考后缀和前缀的问题 5. 输出:-1 0
实验二:变量类型与输入输出
1. a=34,a=53,b=1234,b=4660 ☆ 因为 0x1234 超出了字符类型的表示范围,因此打印的结果看起来奇怪。 2. 输入:a 回车
输出:****ch1=a,97****
****ch2= 10,**** 解释 ch2 的输出:由于输入 a 回车,因此 ch2 的值就接受了这个回车,而回车的 ascii 码的值等于 10,因此出现这种结果。如果要修改,需要在 ch2=getchar()之前加入一句: getchar(); ☆☆☆ 3. 把 scanf(“%d”,a)改为 scanf(“%f”,&a) 4. 把 scanf(“%f”,&a)改为 scanf(“%lf”,&a),因为 a 是 double 类型的。☆☆☆ 5. 42 42 123.540000 123.540000 1.235400e+002 1.235400e+002 6. 正确的形式:a=3.12,b=9.0 c=10.0 注意的事项是在 scanf()中,””中的内容按照原样输入, 尽管在实践中没有按照此题那样进行类似输入。 7. 此题不用看 8. #include<stdio.h> #define PI 3.14159 int main() { double radius,high,volume; printf("please input the radius and high!"); scanf("%lf%lf",&radius,&high); volume=PI*radius*radius*high; printf("the volume is:%lf",volume); return 0; } 9 #include<stdio.h> int main() { int i; printf("please input the value!"); scanf("%d",&i); printf("%u,%o,%x",i,i,i);//分别以无符号、八进制、十六进制 return 0; }
int main() {
int birthYear,age; printf(“please input the year of your birth!”); scanf(“%d”,&birthYear); age=2006-birthYear; age=age>=0?age:12-(-age%12); switch(age%12) {
case 0: printf(“属狗”); break;
case 1: printf(“属鸡”); break;
case 2: printf(“属猴”); break;
case 3: printf(“属羊”); break;
case 4: printf(“属马”); break;
case 5:
5
printf(“属蛇”); break; case 6: printf(“属龙”); break; case 7: printf(“属兔”); break; case 8: printf(“属虎”); break; case 9: printf(“属牛”); break;
s=3.14*r*r 和语句 scanf(“%d”,r)次序颠倒,因为一个变量只有先有值之后才能使用。
2. 执行结果为 3,5,8,-858993444,因为 d 没有赋初值因此打印出一个看起来非常奇怪的值。
☆☆☆☆
3. 是因为 ch1=’2’,ch2=’7’ 输入 2 7 输出 4,这是因为 ch1=’2’,ch2=’(‘ 空格),而空格的 ascii 码为 32,’0’的 ascii 码为 48 因此算出结果为 4
3
行强制类型转换。 ☆☆☆☆☆
实验五:选择结构程序设计 1.2 easy 忽略 3. -1 此题简单 4. 判定一个数位于一个区间,绝对不能出现 60<=score<70 的情况 应该 (score>=60 && score<70) 此程序修改为:
#include<stdio.h> void main() { int score; if(score>=90 && score<=120)
5 输出 1,1 ☆ 6. 输出 6,7 ,只需要知道++的前缀和后缀的区别即能做出此题。☆☆☆☆ 7. sum=d1+d2+d3+d4+d5;
avg=(float)sum/5; /*需要强制类型转换*/ 8. #include<stdio.h> int main() {
int a,b,c,max; printf("please input the values of a,b and c!"); scanf("%d%d%d",&a,&b,&c); max=a>b?a:b; max=max>c?max:c; printf("the max value of a,b and c is:%d",max); return 0; } 9. #include<stdio.h> #include<math.h> int main() {