C语言程序设计 上机实验指导与习题 参考答案.docx

上传人:b****6 文档编号:8190439 上传时间:2023-01-29 格式:DOCX 页数:40 大小:27.26KB
下载 相关 举报
C语言程序设计 上机实验指导与习题 参考答案.docx_第1页
第1页 / 共40页
C语言程序设计 上机实验指导与习题 参考答案.docx_第2页
第2页 / 共40页
C语言程序设计 上机实验指导与习题 参考答案.docx_第3页
第3页 / 共40页
C语言程序设计 上机实验指导与习题 参考答案.docx_第4页
第4页 / 共40页
C语言程序设计 上机实验指导与习题 参考答案.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

C语言程序设计 上机实验指导与习题 参考答案.docx

《C语言程序设计 上机实验指导与习题 参考答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计 上机实验指导与习题 参考答案.docx(40页珍藏版)》请在冰豆网上搜索。

C语言程序设计 上机实验指导与习题 参考答案.docx

C语言程序设计上机实验指导与习题参考答案

C语言程序设计

上机实验指导与习题

参考答案

仅供教师内部参考

华南农业大学

上机实验1

实验1C语言程序初步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

上机实验

实验1C语言程序初步

一实验目的

1了解所用的计算机系统的基本操作方法学会独立使用该系统

2了解在该系统上如何编辑编译连接和运行一个C程序

3通过运行简单的C程序初步了解C程序的特点

4在教师的指导下学会使用JudgeOnline实验系统

二实验内容

1运行第一个C程序

[题目ThefirstCProgram]

将下列程序输入TC或VC编译连接和运行该程序

voidmain

printf"ThefirstCProgram\n"

[具体操作步骤]

以TurboC上的操作为例

1Windows进入后按照第一章中介绍的方法进入TurboC

2在编辑窗口中输入程序

3保存程序取名为a1c

4按照第一章中介绍的方法编译连接和运行程序

2在JudgeOnline系统中提交实现了计算ab功能的程序

[题目1001计算ab]

由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下

voidmain

intab

scanf"dd"ab

1

printf"d"ab

1在程序编辑窗口中输入程序

2保存程序取名为a2c

3按照前二章中介绍的方法编译连接和运行程序

4在程序运行过程中输入

1530↙

↙表示输入回车符

5如果看到如下输出结果则表明1530的结果正确如果得不到如下结果则需检查并更正程序

45

6按照第三章中介绍的方法进入JudgeOnline实验系统

7显示题目列表点击题号为1001题名为计算ab的题目

8查看完题目要求后点击页面下端的sumbit参照第二章提交程序的方法提交程序a2c

9查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确

2

实验2基本数据类型运算和表达式

一实验目的

1掌握C语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法

2掌握不同的类型数据之间赋值的规

3学会使用C的有关算术运算符以及包含这些运算符的表达式特别是自加和自减--运

算符的使用

4进一步熟悉C程序的编辑编译连接和运行的过程

二实验内容

1变量的定义

[题目1117变量定义按要求完成程序]

下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句

voidmain

intab定义整型变量a和b

intij定义实型变量i和j

a5

b6

i314jiab

printf"adbdifjf\n"abij

[具体操作步骤]

1将代码补充完整

2在TC或VC上运行通过

3在JudgeOnline实验系统上提交

2赋值表达式与赋值语句

[题目1118赋值表达式与赋值语句写出程序运行结果]

阅读下面程序写出运行结果

voidmain

floata

intbc

charde

a35

ba

c330

dc

3

e\\

printf"fddcc"abcde

运行结果为

35000003330J\

[提示]赋值语句具有类型转换的功能但可能会改变数据

3基本运算

[题目1119基本运算写出程序运行结果]

阅读下面程序写出运行结果

voidmain

intabc

floatd15ef

a357

b1510

cb

e1510

fd10

printf"dddfff"abcdef

运行结果为

0211500000010000001500000

[提示]除法分整除与普通除法之分

4

实验3基本输入与输出

一实验目的

1熟练掌握putchargetcharprintfscanf函数的使用方法

2掌握各种类型数据的输入输出的方法能正确使用各种格式转换符

二实验内容

[题目1126字符的输入与输出]

编程实现由键盘输入一个字符后在屏幕上输出该字符

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

a↙↙

[正确输出][正确输出]

a

参考程序

include"stdioh"

main

charch

chgetchar

putcharch

[题目1127计算加法]

编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

1020↙-1560↙

[正确输出][正确输出]

3045

参考程序

include"stdioh"

main

intab

scanf"dcd"ab

printf"d"ab

[题目1014求圆面积]

由键盘输入圆半径r请计算该圆的面积注取314159结果保留两位小数位另外程序只

要能对r在0到10000范围的情况输出正确答案即可

[第一组自测数据][键盘输入]

5

652↙[键盘输入]

[正确输出]112↙

1335502[正确输出]

[第二组自测数据]39408

[提示]结果保留两位小数可采用printf函数的格式控制字符来实现

参考程序

include"stdioh"

main

floatarear

scanf"f"r

area314159rr

printf"02f"area

2

[题目1015计算摄氏温度值]

从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位

数学公式描述为

5

CF32

9

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

100↙100↙

[正确输出][正确输出]

37783778

[提示]注意公式中的除为普通除法

参考程序

include

voidmain

floatfc

scanf"f"f

c509f-32

printf"2f"c

3

实验4选择结构程序设计

一实验目的

1了解C语言表示逻辑的方法以0代表假以非0代表真

2学会正确使用逻辑运算符和逻辑表达式

3熟练掌握if语句和switch语句

4结合程序掌握一些简单的算法

二实验内容

[题目1120判断点是否在圆]

由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y不在圆上输出

N使用小数点后3位精度进行判断

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

07070707↙8>0505↙

[正确输出][正确输出]

YN

[提示]1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2

判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001的方法实现

参考程序

include"stdioh"

include"mathh"

voidmain

floatab

scanf"ff"ab

iffabsaabb-11e-3

printf"Y\n"

elseprintf"N\n"

[题目1017求数的位数]

由键盘输入一个不多于9位的正整数要求输出它是几位数

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

349213↙10000↙

[正确输出][正确输出]

65

[提示]划定一位数二位数九位数的范围后用ifelseifelse语句实现判断

4

参考程序

main

intnplace

scanf"ld"n

ifn99999999place9

elseifn9999999place8

elseifn999999place7

elseifn99999place6

elseifn9999place5

elseifn999place4

elseifn99place3

elseifn9place2

elseplace1

printf"ld\n"place

[题目1018数的排序]

由键盘输入三个整数abc按从小到大的顺序输出这三个数

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

654590↙963↙

[正确输出][正确输出]

456590369

参考程序

include

main

intabct

scanf"ddd"abc

ifabtaabbt

ifactaacct

ifbctbbcct

printf"ddd"abc

[题目1016字符变换]

由键盘输入5个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

ApPLe↙aB5↙

[正确输出][正确输出]

appleab5

[提示]下面代码实现由键盘读入一个字符并按题意处理后输出

chara

agetchar

ifaAaZaa32

putchara

5

现在题目要求处理5个字符怎么做呢请自己思考

参考程序

include

main

charabcde

scanf"ccccc"abcde

ifaZaAaa32

ifbZbAbb32

ifcZcAcc32

ifdZdAdd32

ifeZeAee32

printf"ccccc"abcde

[题目1019数的整除]

由键盘输入5个整数逐个判断它们能否被27整除能的输出YES不能的输出NO注意

输出时一个判断结果占一行5个数的判断共占5行

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

8271757732554↙8271757732554↙

[正确输出][正确输出]

NONO

YESYES

YESYES

NONO

YESYES

[提示]整除即除得余数为0

参考程序

include"stdioh"

main

intabcde

scanf"ddddd"abcde

ifa270printf"YES\n"elseprintf"NO\n"

ifb270printf"YES\n"elseprintf"NO\n"

ifc270printf"YES\n"elseprintf"NO\n"

ifd270printf"YES\n"elseprintf"NO\n"

ife270printf"YES\n"elseprintf"NO\n"

[题目1020正负奇偶判断]

由键盘输入非零整数x判断该数正负正数输出positive负数输出negative接着判断该数的奇

偶性奇数输出odd偶数输出even

[第一组自测数据]negative

[键盘输入]odd

-43↙[第二组自测数据]

[正确输出][键盘输入]

6

98↙positive

[正确输出]even

参考程序

include"stdioh"

main

intn

scanf"d"n

ifn0printf"negative\n"

elseprintf"positive\n"

ifn20printf"even\n"

elseprintf"odd\n"

[题目1023简单计算器]

下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结

果6000如果输入8*6计算机输出4800如果输入204计算机输出500如果输入8-6计算机

输出200请在空处填上适当的代码运行通过后并提交

include"stdioh"

voidmain

floatabc

charop

scanf"fcf"

switchop

case

case-_

case_

case__

defaultprintf"error"

return

printf"result"c

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

452↙501-23↙

[正确输出][正确输出]

902710

7

参考程序

include

intmain

floatabc

charop

scanf"fcf"aopb

switchop

casecabbreak

case-ca-bbreak

casecabbreak

casecabbreak

defaultprintf"error"

break

printf"result2f"c

8

实验5循环结构程序设计一

一实验目的

1熟悉掌握用while语句do-while语句和for语句实现循环的方法

2掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等

二实验内容

[题目1024计算阶乘]

输入正整数n计算n结果用长整型数表示注n123n

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

5↙8↙

[正确输出][正确输出]

12040320

参考程序

include

main

longin1a

scanf"ld"a

fori1iainni

printf"ld\n"n

[题目1025计算数列和]

有数列1357911

现要求由键盘输入n计算输出该数列的前n项和

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

2↙5↙

[正确输出][正确输出]

425

9

参考程序

include

main

longnsum0it1

scanf"ld"n

fori1ini

sumsumt

tt2

printf"ld\n"sum

include

main

longnsum

scanf"ld"n

sumnn

printf"ld"sum

注评判系统不对程序实现细节进行分析只对运行结果进行评测

[题目1026加一行字符中的数字]

由键盘输入一行字符总字符个数从1个至80个均有可能以回车符表示结束将其中每个数字

字符所代表的数值累加起来输出结果

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

abc123↙A6H7T65↙

[正确输出][正确输出]

624

[提示]1可以使用下面程序段逐个读入键盘输入的一行字符

charch

whilechgetchar\n

2数字字符转为对应的数值可用ach-0

参考程序

include

main

charc

ints0a

whilecgetchar\n

ifc0c9

ac-48

ssa

printf"d"s

10

[题目1029求最大公约数]

由键盘输入两个正整数mnmn用长整数表示计算它们的最大公约数

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

1624↙1725↙

[正确输出][正确输出]

81

[提示]公约数是既能整除m又能整除n的数题目要求满足这一条件的最大的一个

参考程序

include

main

longrmntemp

scanf"ldld"mn

whilem0

rnm

nm

mr

printf"ld\n"n

include

main

longmntis

scanf"ldld"mn

tmnnm

forit-1i1i--

ifmi0ni0

sibreak

printf"d"s

[题目1030字符变换]

由键盘输入一个句子总字符个数从1个至80个均有可能以回车符表示结束将其中的大写字

符变成小写其它类型的字符不变最后输出变换后的句子

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

HowAreYou↙ThiSISMyfIrStCProgrAm↙

[正确输出][正确输出]

howareyouthisismyfirstcprogram

11

参考程序

include

main

charc

whilecgetchar\n

ifcAcZ

cc32

putcharc

[题目1037计算数列和]

有数列

编程实现由键盘输入n计算输出数列前n项和结果保留四位小数

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

20↙30↙

[正确输出][正确输出]

326603880403

参考程序

include

main

intitn

floata2b1s0

scanf"d"n

fori1ini

ssab

taaabbt

printf"4f\n"s

[题目1044输出最小值]

从键盘输入十个整数输出最小值

[自测数据]

[键盘输入]

1245768758743559921↙

[正确输出]

5

12

参考程序

include"stdioh"

main

intitmin

scanf"d"min

fori1i10i

scanf"d"t

iftminmint

printf"d\n"min

*[题目1031统计单词个数]

由键盘输入一个句子总字符个数从1个至80个均有可能以回车符表示结束以空格分割单词

要求输出单词的个数

[第一组自测数据][第二组自测数据]

[键盘输入][键盘输入]

HowAreYou↙Therearemanystudentsandmany

[正确输出]trees↙

3[正确输出]

7

参考程序

include

main

intinum0word0

charc

fori0cgetchar\ni

ifcword0

elseifword0

word1

num

printf"d"num

*[题目1042百万富翁]

一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m元

而你第一天只需给我一分钱第二天我仍给你m元你给我2分钱第三天我仍给你m元你给我4

分钱依次类推你每天给我的钱是前一天的两倍直到一个月38天百万富翁很高兴欣接受这

个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱

[第一组自测数据]18

[键盘输入][第二组自测数据]

100↙[键盘输入]

[正确输出]10000↙

13

[正确输出]25

参考程序

include

include

main

intnmi

scanf"d"m

fori1i38i

if001pow2i-1-1-im0break

printf"d"i-1

14

实验6循环结构程序设计二

一实验目的

1进一步熟悉掌握用while语句do-while语句和for语句实现循环的方法

2掌握在程序设计中使用多重循环

二实验内容

[题目1028求素数]

输出2到200之间包括2200的所有素数注要求1行1个素数按由小到大的顺序输出

[提示]采用双重循环外层循环产生2到200之间的数内层循环对数进行判断是否

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1