文档视界 最新最全的文档下载
当前位置:文档视界 › C语言程序设计实验指导(课后习题)参考答案

C语言程序设计实验指导(课后习题)参考答案

C语言程序设计实验指导(课后习题)参考答案
C语言程序设计实验指导(课后习题)参考答案

《实验指导》课后练习题参考答案实验1:

1.主函数

2-4:DDC

5.stdio.h

6-9:CCCC

实验2:

1.double

2-4:ABB

5.2

6-12:CDDDADC

13.!

14.8

15-17:ACC

18.G

19-20:CA

21.5 4

22.x=6c

23-25:DCA

26.0x

27.2.000000

28-29:AB

30.a=3

31.D

32.3.15

33.B

34.double

实验3:

1-3:CCD

4.B

5.2,0

6-8:CAC

9. (1)pass,

(2)中

及格

不及格

10-12:ADD

13.2

14.B

15.10

16.6

17.x>=1 && x<=sqrt(10)

实验4:

1.B

2.1

3.A

4.3/5,5/8

5.30

实验5:

1.D

2.(1)9 (2)1

3-5:CDB

6.(1)10 (2)7

7.C

8.(1)x=16 (2)y=8

9.return

实验6:

1-5:CCADA

6.10,20

7.13 11 12

8.7

9.2

10.B

11.(1)3 (2) 1

12-13:CB

14.-31

15.221

16.main函数

17.22

18.(1)return (2)void

实验7:

1.C

2.auto

3.9

4.(1) 4 (2) 0

5.10

6.(1)5 (2) 7 (3) 8

7.C

8.110

9-12:DDBC

13.(1) 1 (2) 3

15.6 720

16.auto

17.48

18.(1)1 (2)2

19.D

20.D

21.5,25

22.6

实验8:

1-2. DD

3. 16

4. (1)0 2 3 (2)2 3 5 (3)7 11 13

5. (1)i<9 (2)j<9-i (3)a[j]=a[j+1] (4)a[j+1]=temp

实验9:

1. D

2. (1)-1 (2)2

3. (1)1 (2)a[i-1][j-1]+a[i-1][j] (3)j<=i

4. (1)1 3 4 5 6 7 (2)3 4 5 6 (3)End of main()!

实验10:

1. 0或NULL

2-5. CACA

6. (1)10 (2)15 (3)19

7. (1)ia[j] (3)”%d”,p+i (4)”%d”, *(p+i)

8. (1)2 6 (2)2 2 (3)4 6

实验11:

1. A

2. C

3. 7

4. (1)strlen(s) (2)s[i]>=’a’ && s[i]<=’z’(3)s[i]+32 (4)’\0’(5)s2[j]!=s2[n2-j-1] (6)j

实验12:

1-7. BBACBDD

8. gae

9. (1)jih (2)gfe (3)dcba

实验13:

1-4. ACBB

实验14:

1-2. CC

3. 10,15,15,10

4. 2143

5. (1)*p1=15 (2)*p2=0

6. (1)43210 (2)98765

实验15:

1.B

2.7

3.C

4.4

5.(1)64,48 (2)4,3

6.3

7.C

实验16:

1. 函数名AddNodestruct改为AddNode

(1)head->next (2)p (3)head->next (4)(NODE *)malloc(sizeof(NODE))

2. (1)NODE* (2)ix>p2->x

3. (1)POT (2)head (3)p2->next (4)p->next

实验17:

1. fscanf

2. a+

3. C

4. 123,456

5. 3.3

C语言 数组 实验题目及答案

实验六数组程序设计 【实验目的】 1、掌握使用一维数组编程方法 2、掌握使用二维数组进行程序设计 【实验内容】 一、上机验证程序,并分析结果 要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。1、#include int main() { int a[ ]={1,2,3,4,5} , i, j, s=0 ; j = 1; for ( i = 4 ; i>=0 ; i--) { s = s+ a[i] * j ; j = j * 10 ; } printf(" s= %d \n" , s ); return 0; } 二、程序改错题 1.下面程序的功能,是从键盘输入一个数组(数组长度为10),查找数组中正数的个数。源代码如下,程序中存在错误,请将其改正。 #include int main()

{ int a(10);/*定义数组*/ int count,i;/* i循环变量 count 正数个数*/ for(i=0;i<=10;i++) {/*循环输入*/ scanf("%d",a[i]); } count=1; for(i=0;i<=10;i++) {/*查找正数*/ if(a(i)>0) count++; } printf("数组中正数有:%d个\n",count); return 0; } 三编写程序 1.编写程序要求输入30个学生的单科成绩,输出高于平均分的成绩。#include #define N 30 int main() { float score[N],sum=0,aver; int i; for(i=0;i<30;i++) { scanf("%f",&score[i]); sum=sum+score[i]; } aver=sum/30; printf("平均分为:%.2f\n",aver); for(i=0;iaver) printf("%.2f ",score[i]); printf("\n");

大学物理实验课后习题答案

一牛顿环的各环是否等宽?密度是否均匀?解释原因? 因为环是由空气劈上下表面反射的两束光叠加干涉形成的。劈的上表面变化在横向是不均匀的,故光程差也不是均匀变化的。所以各环是不等宽的环的密度也不是均匀的。各环不等宽,半径小的环宽,越到外边越窄,密度是不均匀的,牛顿环的半径公式是:半径r等于根号下(m+1/2)λR,其中m为环的级数。从公式可以看出,半径和环数并不是线性关系,这样环自然不均匀。计算可以知道,越往外环越密。 二牛顿环的干涉圆环是由哪两束相干光干涉产生的? 半凸透镜下表面和下底面上表面的两束反射光 三电桥由哪几部分组成?电桥平衡的条件? 由电源、开关、检流计桥臂电阻组成。 平衡条件是Rx=(R1/R2)R3 四接通电源后,检流计指针始终向一边偏转,试分析出现这种情况的原因? 指针向一侧偏转就说明发生了电子的定向移动了,这个应该没问题。 指针不偏转,有2种情况吧,其1呢是整个电路发生了断路或其他故障,还1种情况则是流过的电流太小,不足于使电表发生偏转或其偏转的角度肉眼根本看不到。 无论如何调节,检流计指针都不动,电路中可能出现故障是调节臂电阻断路或短路。。无论如何调节,检流计指针始终像一边偏而无法平衡,电路中有可能出现故障是有一个臂(非调节臂)的电阻坏了。(断路或短路) 五什么叫铁磁材料的磁滞现象? 铁磁物质经外磁场磁化到饱和以后,把磁场去掉。这些物质仍保留有剩余磁化强度。需要反方向加磁场才能把这剩余磁化强度变为零。这种现象称为铁磁的磁滞现象。也是说,铁磁材料的磁状态,不仅要看它现在所处的磁场条件;而且还要看它过去的状态。 六如何判断铁磁材料属于软.硬材料? 软磁材料的特点是:磁导率大,矫顽力小,磁滞损耗小,磁滞回线呈长条状;硬磁材料的特点是:剩磁大,矫顽力也大 用光栅方程进行测量的条件是什么? 条件是一束平行光垂直射入光栅平面上,光波发生衍射,即可用光栅方程进行计算。如何实现:使用分光计,光线通过平行光管射入,当狭缝位于透镜的焦平面上时,就能使射在狭缝上的光经过透镜后成为平行光 用光栅方程进行测量,当狭缝太窄或者太宽会怎么样?为什么? 缝太窄,入射光的光强太弱,缝太宽,根据光的空间相干性可以知道,条纹的明暗对比度会下降! 区别是,太窄了,亮纹会越来越暗,暗纹不变,直到一片黑暗! 太宽,暗条纹会逐渐加强,明纹不变,直到一片光明!

C语言程序设计实验报告参考答案

长沙理工大学C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: Thedressislong Theshoesarebig Thetrousersareblack 答案: #include main() { printf("Thedressislong\n"); printf("Theshoesarebig\n"); printf("Thetrousersareblack\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序:a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { inta,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x);

printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4.设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { inta,b,c; a=0; b=-10; c=(a>b)?b:a; printf("c=%d\n",c); }

c语言实验答案

c语言实验答案

//1.1编写一程序,在屏幕上输出如下内容:// X | X | X //---+---+--- // | | //---+---+--- // 0 | 0 | 0 #include void main() { printf(" X | X | X\n"); //注意转义字符\n的用法 printf("---+---+---\n "); printf(" | |\n"); printf("---+---+---\n "); printf(" 0 | 0 | 0\n"); } //1.2输出"Hello world!"语句 #include void main() { printf("Hello world!\n"); } //2.1编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商,程序运行结果应如下所示。 //注意,尖括号部分表示用户输入数据或要被替换的输出内容,尖括号本身并不需要输入或输出。 //多使用几组整数尝试一下,你发现了什么?//The program gets two integers,and

computes their sum,difference,produc t and quotient. //The first number:<第一个整数在此输入> //The second number:<第二个整数在此输入> //Results as follows: //<第一个整数>+<第二个整数>=<和> //<第一个整数>-<第二个整数>=<差> //<第一个整数>*<第二个整数>=<积> //<第一个整数>/<第二个整数>=<商> #include void main() { int a,b; printf("The program gets two integers,and computes their sum,difference,produc t and quotient.\n"); printf("The first number:"); scanf("%d",&a); printf("The second number"); scanf("%d",&b); printf("Results as follows:\n"); printf("%d+%d=% d\n",a,b,a+b); printf("%d-%d=% d\n",a,b,a-b); printf("%d*%d=% d\n",a,b,a*b); printf("%d+%d=% f\n",a,b,1.0*a/b); //做除法时要注意,除得的

C语言程序设计实验与习题答案

2.程序填空 (1)以下程序的功能是计算1~50之间能被7整除的整数之和。 #include void main() {int i,sum=0; for(i=1;50;i++) if(i%7==0) sum+=i; printf("sum=%d\n",sum); } (2) 下面程序接收来自键盘的输入,直到输入+Z(值为-1)键为止。这些字符被原样输出,但若有连续一个以上的空格时只输出一个空格。请填空。 #include void main() {char cx; char front=’’; while ((cx=getchar())!=’\n’) {if (cx!=’’) putchar(cx); if (cx= =’’) if (front!=’’) putchar(cx);

front=cx; } } 3.程序改错 (1)下列程序的功能是求1+3+5+…99的和。 #include void main( ) { int s,i; ★//int s=0,i; i=1; while(i<=99)s=s+i;★//{s=s+i;i++;} printf("1+3+5+…99的和是:%d\n",s); } (2)下面程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0。 #include void main() { int i,x,y=0; ★//y=1 scanf("%d",&x); for(i=2;i<=x/2&&y;i++)

if ((x%i)!=0) y=0; ★//x%i==0 printf("%d\n",y); } 4.设计性实验 (1)题 /* 方法(1)精度控制*/ #include #include main() {int s; float n,t,pi; t=1;pi=0;n=1.0;s=1; while((fabs(t))>=1e-6) {pi=pi+t; n=n+2; s=-s; t=s/n; }

大学物理实验课后答案

实验一霍尔效应及其应用 【预习思考题】 1.列出计算霍尔系数、载流子浓度n、电导率σ及迁移率μ的计算公式,并注明单位。 霍尔系数,载流子浓度,电导率,迁移率。 2.如已知霍尔样品的工作电流及磁感应强度B的方向,如何判断样品的导电类型? 以根据右手螺旋定则,从工作电流旋到磁感应强度B确定的方向为正向,若测得的霍尔电压为正,则样品为P型,反之则为N型。 3.本实验为什么要用3个换向开关? 为了在测量时消除一些霍尔效应的副效应的影响,需要在测量时改变工作电 流及磁感应强度B的方向,因此就需要2个换向开关;除了测量霍尔电压,还要测量A、C间的电位差,这是两个不同的测量位置,又需要1个换向开关。总之,一共需要3个换向开关。 【分析讨论题】 1.若磁感应强度B和霍尔器件平面不完全正交,按式(5.2-5)测出的霍尔系数比实际值大还是小?要准确测定值应怎样进行? 若磁感应强度B和霍尔器件平面不完全正交,则测出的霍尔系数比实际值偏小。要想准确测定,就需要保证磁感应强度B和霍尔器件平面完全正交,或者设法测量出磁感应强度B和霍尔器件平面的夹角。 2.若已知霍尔器件的性能参数,采用霍尔效应法测量一个未知磁场时,测量误差有哪些来源? 误差来源有:测量工作电流的电流表的测量误差,测量霍尔器件厚度d的长度测量仪器的测量误差,测量霍尔电压的电压表的测量误差,磁场方向与霍尔器件平面的夹角影响等。 实验二声速的测量 【预习思考题】 1. 如何调节和判断测量系统是否处于共振状态?为什么要在系统处于共振的条件下进行声速测定? 答:缓慢调节声速测试仪信号源面板上的“信号频率”旋钮,使交流毫伏表指针指示达到最大(或晶体管电压表的示值达到最大),此时系统处于共振状态,显示共振发生的信号指示灯亮,信号源面板上频率显示窗口显示共振频率。在进行声速测定时需要测定驻波波节的位置,当发射换能器S1处于共振状态时,发射的超声波能量最大。若在这样一个最佳状态移动S1至每一个波节处,媒质压缩形变最大,则产生的声压最大,接收换能器S2接收到的声压为最大,转变成电信号,晶体管电压表会显示出最大值。由数显表头读出每一个电压最大值时的位置,即对应的波节位置。因此在系统处于共振的条件下进行声速测定,可以容易和准确地测定波节的位置,提高测量的准确度。 2. 压电陶瓷超声换能器是怎样实现机械信号和电信号之间的相互转换的? 答:压电陶瓷超声换能器的重要组成部分是压电陶瓷环。压电陶瓷环由多晶结构的压电材料制成。这种材料在受到机械应力,发生机械形变时,会发生极化,同时在极化方向产生电场,这种特性称为压电效应。反之,如果在压电材料上加交

C语言实验报告参考答案

《C语言程序设计》 实 验 手 册

《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )

C语言程序设计_上机实验指导与习题_第三版_(陈湘骥_编著_著)_华南农业大学_参考答案

C语言程序设计上机实验指导与习题 参考答案 (仅供教师内部参考) 华南农业大学

目录 上机实验 (1) 实验 1 C语言程序初步 (1) 一、实验目的 (1) 二、实验内容 (1) 实验2基本数据类型、运算和表达式 (3) 一、实验目的 (3) 二、实验内容 (3) 实验3基本输入与输出 (5) 一、实验目的 (5) 二、实验内容 (5) 实验4选择结构程序设计 (4) 一、实验目的 (4) 二、实验内容 (4) 实验5循环结构程序设计(一) (9) 一、实验目的 (9) 二、实验内容 (9) 实验6循环结构程序设计(二) (15) 一、实验目的 (15) 二、实验内容 (15) 实验7数组 (17) 一、实验目的 (17) 二、实验内容 (17) 实验8字符数组的应用 (22) 一、实验目的 (22) 二、实验内容 (22) 实验9函数的基本应用 (24) 一、实验目的 (24) 二、实验内容 (24) 实验10指针与结构体 (26) 一、实验目的 (26) 二、实验内容 (26) *实验11链表 (29) 一、实验目的 (29) 二、实验内容 (29) *实验12文件 (32) 一、实验目的 (32) 二、实验内容 (32)

上机实验 实验 1 C语言程序初步 一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C程序。 (3)通过运行简单的C程序,初步了解C程序的特点。 (4)在教师的指导下,学会使用JudgeOnline实验系统。 二、实验内容 1. 运行第一个 C 程序 [题目:The first C Program] 将下列程序输入 TC(或 VC++),编译、连接和运行该程序。 void main() { printf("The first C Program\n"); } [具体操作步骤] 以 Turbo C 上的操作为例 (1)Windows 进入后,按照第一章中介绍的方法,进入 Turbo C。 (2)在编辑窗口中输入程序。 (3)保存程序,取名为 a1.c。 (4)按照第一章中介绍的方法,编译、连接和运行程序。 2.在JudgeOnline系统中提交实现了计算a+b功能的程序 [题目 1001:计算 a+b] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下, void main() { int a, b; scanf("%d%d", &a, &b); 1

大学物理实验课后答案

(1)利用f=(D+d)(D-d)/4D 测量凸透镜焦距有什么优点? 答这种方法可以避免透镜光心位置得不确定而带来得测量物距与像距得误差。 (2)为什么在本实验中利用1/u+1/v=1/f 测焦距时,测量u与v都用毫米刻度得米尺就可以满足要求?设透镜由于色差与非近轴光线引起得误差就是1%。 答设物距为20cm,毫米刻度尺带来得最大误差为0、5mm,其相对误差为 0、25%,故没必要用更高精度得仪器。 (3)如果测得多组u,v值,然后以u+v为纵轴,以uv为横轴,作出实验得曲线属于什么类型,如何利用曲线求出透镜得焦距f。 答直线;1/f为直线得斜率。 (4)试证:在位移法中,为什么物屏与像屏得间距D要略大于4f? 由f=(D+d)(D-d)/4D →D2-4Df=d2→D(D-4f)=d2 因为d>0 and D>0 故 D>4f 1、避免测量u、ν得值时,难于找准透镜光心位置所造成得误差。 2、因为实验中,侧得值u、ν、f都相对较大,为十几厘米到几十厘米左右,而误差为1%,即一毫米到几毫米之间,所以可以满足要求。 3、曲线为曲线型曲线。透镜得焦距为基斜率得倒数。 ①当缝宽增加一倍时,衍射光样得光强与条纹宽度将会怎样变化?如缝宽减半,又怎样改变? 答: a增大一倍时, 光强度↑;由a=Lλ/b ,b减小一半 a减小一半时, 光强度↓;由a=Lλ/b ,b增大一倍。 ②激光输出得光强如有变动,对单缝衍射图象与光强分布曲线有无影响?有何影响? 答:由b=Lλ/a、无论光强如何变化,只要缝宽不变,L不变,则衍射图象得光强分布曲线不变(条纹间距b不变);整体光强度↑或者↓。

③用实验中所应用得方法就是否可测量细丝直径?其原理与方法如何? 答:可以,原理与方法与测单狭缝同。 ④本实验中,λ=632。8nm ,缝宽约为5*10^-3㎝,屏距L 为50㎝。试验证: 就是否满足夫朗与费衍射条件? 答:依题意: L λ=(50*10^-2)*(632、8*10^-9)=3、164*10^-7 a^2/8=(5*10^-5)^2/8=3、1*10^-10 所以L λ<20θ,(10θ人为控制在mv )03.050.3(±); 2)测量散热板在20θ附近得冷却速率。 4、试述稳态法测不良导体导热系数得基本原理。

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

C语言实验报告参考答案原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include<> main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include<> main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

C语言程序设计实验与习题答案

2. 程序填空 (1) 以下程序的功能是计算1?50之间能被7整除的整数之和。 #in clude<> void mai n() {int i,sum= _____ 0______ ; for(i=1; 50 ______ ;i++) if( i%7==0 ) sum+=i; pri ntf("sum=%d\n",sum); } (2) 下面程序接收来自键盘的输入,直到输入+Z值直为-1) 键为止。这些字符被原样输出,但若有连续一个以上的空格时只输出一个空格。请填空。 #in clude <> void mai n() {char cx; char front=' '; while ((cx=getchar())!=' \n' ) {if (cx!=‘') putchar(cx); if (cx=—') if (front!='') putchar(cx); front=cx; } } 3. 程序改错 (1)下列程序的功能是求1+3+5+…99的和。

#in clude <> void main( ) { int s,i; ★ 10.6f10.6f10.6f10.6f 代表个数*/ for(i=1;i<=9;i++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) if(i*i*i+j*j*j+k*k*k==1099) /* 在所有组合中找出满足指定条件的*/ { printf("%4d",100*i+10*j+k); n++; if(n%5==0) printf("\n"); /* 表示每行输出5 个数*/ } } #include<> #include<> main() { int i,j,k; for(i=1;i<=4;i++) /* 上三角形有4 行,每循环1 次输出1 行*/ { for(k=1;k<8-((2*i-1)/2);k++) /* 该循环输出每行的空格.8 用于调节偏离位置,可换成别的数( >=8) */ printf(" "); for(j=1;j<=2*i-1;j++) /* 该循环输出每行的 '*字'符*/ printf("*"); putchar( n''); /* 换行*/

c语言实验习题及答案详解

1.数据类型 a.输入一个小数点后有多位数字的小数,实现将其保留三位小数,并输出;, #include<> main() {double b,d; printf("请输入一个小数:"); scanf("%lf",&b); printf("输出原来的数:%f\n",b); b*=1000; b+=; b=(int)b; d=b/1000; printf("输出现在的数:%.3lf\n0",d); } b.输入一个4位整数,求其得各位数字的平方和;(1234 1+4+9+16=30) #include<> main() {int n,sum=0,i,t; printf("请输入一个四位整数:\n"); scanf("%d",&n); for(i=0;i<4;i++) {t=n%10; n/=10; sum+=t*t; } printf("%d\n",sum);

} c.定义字符型变量ch,写出六种给ch赋值字符’A’的代码; #include<> main() {char ch; ch='A'; ch=65; ch=0x41; ch=0101; ch='\101'; ch='\x41'; } d.编写程序输出26组大小写字母;(AaBbCc……….XxYyZz) #include<> main() {int i; for(i=65;i<91;i++) {printf("%c",i); printf("%c",i+32); } printf("\n"); } e.定义浮点型变量f1、f2,为f1赋值10的-30次,为f2赋值10的30次 #include<> main() { double f1,f2; f1=10e-30;

C语言程序设计练习题(含程序及参考答案)

1、定义一个函数int fun(int a,int b,int c) ,它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰返回2, —般三角形返回1,若不能构成三角形返回0。 #include int fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c ) return 3; else if(a==b||b==c||a==c) return 2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf("\nl 叩ut a,b,c:"); scanf("%d%d%d", &a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape : %d\n",shape); }

2、编写一个程序,将两个变量的值交换,例如变量a中的值原为 3 , b中的值原为8,程序运行后a中的值为8, b中的值为3。 #include void fun(int *x,int *y) { int t; t=*x;*x=*y;*y=t } void main() { int a=3,b=8; printf("%d %d\n",a,b); fun(&a,b); printf("%d %d\n",a,b); } 3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c 中。 例如,输入的数为:55 12 34 , 输出结果应当是:a=55.0,b=34.0,c=12.0 。 #include void fun(float *p,float *q,float *s) { float k; if (*p<*q) { k=*p;*p=*q;*q=k;} if (*q<*s) { k=*s;*s=*p;*p=k;}

大学物理实验课后答案

大学物理实验课后答案 Final revision by standardization team on December 10, 2020.

(1)利用f=(D+d)(D-d)/4D 测量凸透镜焦距有什么优点 答这种方法可以避免透镜光心位置的不确定而带来的测量物距和像距的误差。(2)为什么在本实验中利用1/u+1/v=1/f 测焦距时,测量u和v都用毫米刻度的米尺就可以满足要求设透镜由于色差和非近轴光线引起的误差是1%。 答设物距为20cm,毫米刻度尺带来的最大误差为,其相对误差为%,故没必要用更高精度的仪器。 (3)如果测得多组u,v值,然后以u+v为纵轴,以uv为横轴,作出实验的曲线属于什么类型,如何利用曲线求出透镜的焦距f。 答直线;1/f为直线的斜率。 (4)试证:在位移法中,为什么物屏与像屏的间距D要略大于4f 由f=(D+d)(D-d)/4D → D2-4Df=d2→ D(D-4f)=d2 因为d>0 and D>0 故D>4f 1.避免测量u、ν的值时,难于找准透镜光心位置所造成的误差。 2.因为实验中,侧的值u、ν、f都相对较大,为十几厘米到几十厘米左右,而误差为1%,即一毫米到几毫米之间,所以可以满足要求。 3.曲线为曲线型曲线。透镜的焦距为基斜率的倒数。 ①当缝宽增加一倍时,衍射光样的光强和条纹宽度将会怎样变化如缝宽减半,又怎样改变 答: a增大一倍时, 光强度↑;由a=Lλ/b ,b减小一半 a减小一半时, 光强度↓;由a=Lλ/b ,b增大一倍。 ②激光输出的光强如有变动,对单缝衍射图象和光强分布曲线有无影响有何影响 答:由b=Lλ/a.无论光强如何变化,只要缝宽不变,L不变,则衍射图象的光强分布曲线不变 (条纹间距b不变);整体光强度↑或者↓。 ③用实验中所应用的方法是否可测量细丝直径其原理和方法如何 答:可以,原理和方法与测单狭缝同。 ④本实验中,λ=632。8nm,缝宽约为5*10^-3㎝,屏距L为50㎝。试验证: 是否满足夫朗和费衍射条件 答:依题意: Lλ=(50*10^-2)*(*10^-9)=*10^-7 a^2/8=(5*10^-5)^2/8=*10^-10 所以Lλ<

C语言程序设计实验实验指导书及答案

实验一熟悉C程序运行环境 班级学号姓名成绩 一、实验目的 1. 熟悉C语言Visual C++调试环境。 2. 掌握C程序的编辑、调试及运行。 二、实验内容 项目1. 调试并运行下面程序,并写出运行结果: #include <> int main() { printf(“Good morning!\n”); printf(“Hello,world!\n”); return 0; } 运行结果(注意,按照屏幕输出格式写): 项目2. 调试并运行下面程序,并写出运行结果: #include <> int main() { int a , b , sum; /*定义变量*/ a=23; b=56; /*为变量赋值*/ sum=a+b; /*计算两个变量的和*/ printf(“sum is %d\n”,sum); /*输出计算结果*/ return 0; } 运行结果:

项目3. 调试并运行下面程序,并写出运行结果: #include <> int max(int,int); int main() { int a , b , c; /*定义变量*/ a=23; b=56; /*为变量赋值*/ c=max(a,b); /*调用max函数,将得到的值赋给c*/ printf(“max is %d\n”,c); /*输出c的值*/ return 0; } int max(int x,int y) /*定义max函数,函数值为整型*/ { int z; /*定义变量*/ if(x>y) z=x; else z=y; return(z); /*将z的值返回*/ } 运行结果: 三、提高部分 1.试想,如果求10个数中的最大者,则程序该如何编写。 程序代码 运行结果:

C语言综合习题及答案

C语言练习题 一、选择题 1. 一个完整的C源程序是【B 】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成2. 以下关于函数的叙述中正确的是【C】。 A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【B】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main 函数中定义 C)在C语言程序中,函数的定义不能嵌套

D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【B 】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5.C程序的执行是从【A 】开始的。 A)主函数 B)子函数 C)从程序第一行 D)printf()函数 6.以下选项中不合法的标识符是【C 】 A)print B)FOR C)&a D)_00 7.以下选项中可作为C语言合法常量的是【A】 A)-80 B)-080 C)-8e1.0 D)-80.0e 8.以下选项中不属于字符常量的是【B】 A)′C′ B)"C" C)′\xCC′ D) ′\072′ 9. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】 A)float B)long C)int D)double 10. 以下关于函数叙述中,错误的是【D】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 11. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是 【D】。 A)参数的形实(哑实)结合 B)函数返回值 C)全局变量 D)同名的局部变量 12.若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是【C】 A)a[2][!1] B)a[2][3] C)a[1>2][!1] D) a[0][3] 13.若有说明: int a[][4]={0,0};则下面不正确的叙述是【D】 A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1 C)因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1 D)有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 14.下列选项中错误的说明语句是【D】 A)char a[]={′t′,′o′,′y′,′o′,′u′,′\0′}; B)char a[]={"toyou\0"}; C)char a[]="toyou\0"; D)c har a[]=′toyou\0′; 15.char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是 A)strcat(a2,a1); B)strcpy(a2,a1); C)strcat(a1,a2); D)strcpy(a1,a2);

大学物理实验习题参考答案

习 题(参考答案) 2.指出下列测量值为几位有效数字,哪些数字是可疑数字,并计算相对不确定度。 (1) g =(9.794±0.003)m ·s 2 - 答:四位有效数字,最后一位“4”是可疑数字,%031.0%100794 .9003 .0≈?= gr U ; (2) e =(1.61210±0.00007)?10 19 - C 答:六位有效数字,最后一位“0”是可疑数字,%0043.0%10061210 .100007 .0≈?= er U ; (3) m =(9.10091±0.00004) ?10 31 -kg 答:六位有效数字,最后一位“1”是可疑数字,%00044.0%10010091 .900004 .0≈?= mr U ; (4) C =(2.9979245±0.0000003)8 10?m/s 答:八位有效数字,最后一位“5”是可疑数字 1.仪器误差为0.005mm 的螺旋测微计测量一根直径为D 的钢丝,直径的10次测量值如下表: 试计算直径的平均值、不确定度(用D 表示)和相对不确定度(用Dr 表示),并用标准形式表示测量结果。 解: 平均值 mm D D i i 054.210110 1 ==∑=

标准偏差: mm D D i i D 0029.01 10)(10 1 2 ≈--= ∑=σ 算术平均误差: m m D D i i D 0024.010 10 1 ≈-= ∑=δ 不确定度A 类分量mm U D A 0029.0==σ, 不确定度B 类分量mm U B 005.0=?=仪 ∴ 不确定度mm U U U B A D 006.0005.00029.0222 2≈+=+= 相对不确定度%29.0%100054 .2006 .0%100≈?=?= D U U D Dr 钢丝的直径为:%29.0)006.0054.2(=±=Dr D mm D 或 不确定度A 类分量mm U D A 0024.0==δ , 不确定度B 类分量mm U B 005.0=?=仪 ∴ 不确定度mm U U U B A D 006.0005.00024.0222 2≈+=+= 相对不确定度%29.0%100054 .2006 .0%100≈?=?= D U U D Dr 钢丝的直径为: %29.0)006.0054.2(=±=Dr D mm D ,%00001.0%1009979245 .20000003 .0≈?= Cr U 。 3.正确写出下列表达式 (1)km km L 310)1.01.3()1003073(?±=±= (2)kg kg M 4 10)01.064.5()13056430(?±=±= (3)kg kg M 4 10)03.032.6()0000030.00006320.0(-?±=±= (4)s m s m V /)008.0874.9(/)00834 .0873657.9(±=±= 4.试求下列间接测量值的不确定度和相对不确定度,并把答案写成标准形式。

相关文档
相关文档 最新文档