13本科C语言程序设计实验任务书
上传者:李颖娟|上传时间:2015-04-15|密次下载
13本科C语言程序设计实验任务书
实验一 顺序结构程序设计
一、实验目的
1. 掌握C语言中使用最多的一种语句——赋值语句的使用方法。
2. 掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。 二、实验的内容和步骤
1.以下程序多处有错。要按下面指定的形式输入数据和输出数据时,请对该程序做相应的修改。
#include <stdio.h> void main ( ) { double a,b,c,s,v; printf(input a,b,c:\n); scanf("%d%d%d",a,b,c); s=a*b; v=a*b*c;
printf("%d %d %d",a,b,c); printf("s=%f\n",s,"v=%d\n",v); }
当程序执行时,屏幕的显示和要求输入形式如下:
input a,b,c:1.0 2.0 3.0 此处的1.0 2.0 3.0是用户输入的数据 a=1.000000 b=2.000000,c=3.000000 此处是要求的输出格式 s=2.000000,v=6.000000
相关知识:① 检查程序错误时应注意几点:
a)有时程序中一个错误会引发一系列错误信息,工作中不应被这种情况所迷惑,改正了一些错误后应及时对源程序重新进行编译;
b)如果修改错误时增删了行,或是一个行里有多个错误,更正前面错误时增删了字符,就可能导致系统对错误定位不准,此时应该重新编译;
c)系统给出的警告信息一般都说明程序中有问题,因为系统发现了可疑情况。对于警告信息同样要逐个仔细分析。除非明确认定不是问题,否则绝不能简单地认为不是错误而不予理睬。实际上,很多警告都是因为程序中确实有严重的隐含错误。
d) 在连接中发现新错误也需要仔细检查和修改程序。连接时发现的错误一般是由于函数名或外部变量名字写错,或者一些函数、外部变量没有定义引起的。系统不能对连接错误给以自动定位,只能提供有关的名字信息等。对于这类问题,可以借助编辑器的字符串查找命令进行定位。
② 正确调用scanf函数和printf函数构成输入和输出语句。
2.有以下程序 #include <stdio.h> void main() { char c1,c2; int n1,n2; c1=getchar(); c2=getchar();
n1=c1-'0';n2= n1*10+(c2-'0'); printf("%d\n",n2); }
程序运行时输入:12<回车>,执行后输出结果是什么?
相关知识:①getchar()函数用来输入两个字符分别赋给变量c1和c2;
②n1=c1-'0'相当于n1='1' -'0',字符1的ASCII码值比0大一,所以n1中的值为1,c2-'0'相当于'2' -'0'; ③把字符串转换为多位数的算法。 3.若有以下程序 #include <stdio.h> void main() { int i,j; int x,y;
scanf("i=%d,j=%d",&i,&j); scanf("%d%d",&x,&y); printf("i=%d,j=%d\n",i,j); printf("%4d%4d\n",x,y); }
要求给i赋值为10,j赋值为20,x赋值为10,y赋值为20,则应该怎样从键盘输入数字?
相关知识:①在调用scanf()函数时在格式串中若包含有格式描述符之外的字符时,则要求在输入数据时在对应的位置上输入完全匹配的字符;
②scanf()函数只包含格式描述符时可用跳格键Tab、空格和回车分隔数据;
③在调用printf ()函数时在格式串中若包含有格式描述符之外的字符时,则在输出数据时在对应的位置上输出完全匹配的字符,%d之类的格式符位置输出对应输出项的值;故输出时要注意插入适当的非格式符以便区分各个输出结果。 4. 计算定期存款本利之和
设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital均由键盘输入。 5. 键盘输入与屏幕输出练习
问题1 要使下面程序的输出语句在屏幕上显示1, 2, 34,则从键盘输入的数据格式应为以下备选答案中的 。
#include <stdio.h> main() {
char a,b; int c;
scanf("%c%c%d",&a,&b,&c); printf("%c,%c,%d\n",a,b,c); }
A)1 2 34 C)’1’,’2’,34
B)1, 2, 34 D)12 34
问题2 在与上面程序的键盘输入相同的情况下,要使上面程序的输出语句在屏幕上显示1 2 34,则应修改程序中的哪条语句?怎样修改?
问题3 要使上面程序的键盘输入数据格式为1,2,34,输出语句在屏幕上显示的结果也为1,2,34,则应修改程序中的哪条语句?怎样修改?
问题4 要使上面程序的键盘输入数据格式为1,2,34,而输出语句在屏幕上显示的结果为'1', '2',34,则应修改程序中的哪条语句?怎样修改?
[提示:利用转义字符输出字符单引号字符。]
问题5 要使上面程序的键盘输入无论用下面哪种格式输入数据,程序在屏幕上的输出结果都为'1', '2',34,则程序应修改程序中的哪条语句?怎样修改?
第1种输入方式:1,2,34↙(以逗号作为分隔符) 第2种输入方式:1 2 34↙(以空格作为分隔符) 第3种输入方式:1 2 34↙(以Tab键作为分隔符)
第4种输入方式:1↙
2↙
34↙(以回车符作为分隔符)
实验二 逻辑结构程序设计
一、实验目的
1. 了解C语言表示逻辑量的方法。 2. 学会正确使用逻辑运算符和逻辑表达式 3. 熟练掌握if 语句和 switch语句。 4. 结合程序掌握一些简单的算法。 5. 学习调试程序。
二、实验内容
1. 若输入10,20,30则程序的执行结果是 20,30,10 请填充下列程序。 # include “stdio.h” void main( )
{ int a, b, c ; ______________;
_________________;
_________; a=b ; b=c ; __________; printf ( "%d,%d,%d" ,a, b, c ); }
2.下列源程序中包含有一些错误,调试下列程序,使之具有如下功能:输入a、b、c三个整数,求最小值。
# include “stdio.h” void main( ) { int a,b,c;
scanf("%d%d%d",a,b,c); if((a>b)&&(a>c)) if(b<c)
printf("min=%d\n",b); else
printf("min=%d\n",c); if((a<b)&&(a<c))
printf("min=%d\n",a); }
再次运行程序,输入为“2,1,3”,程序输出却是“min=2”。用单步执行的方法,马上发现变量a、b、c的值是不对的,原因是程序要求输入数据的分隔符是空格(还允许使用回车或<Tab>键)。改正输入数据的分隔方式后,程序没有输出,还是用单步执行的方法,监视程序的执行过程,发现程序中条件设计有误,经过改正的程序如下:
# include “stdio.h”
void main() { int a,b,c;
scanf("%d%d%d",&a,&b,&c); if((a<b)&&(a<c))
printf("min=%d\n",a) else if((b<a)&&(b<c)) printf("min=%d\n",b);
else if((c<a)&&(c<b)) printf("min=%d\n",c); else
printf("No find minimum\n"); }
上述程序是按在三个数中仅有一个最小值时才称其为最小值进行设计的。另外,注意程序的书写格式,一定要采用缩进格式,即不同层次(分支)的语句左起的空格不同,这样可以有效地提高程序的可读性。
相关知识:①类似a<b<c表达式的表示方法;②if语句的嵌套;③调试工具的使用。④求最值的简单算法。 3.参考上一题,编写一个C程序,求a、b、c、d四个数中的最大者。 编程点拨:
①多定义一个变量,并一开始令变量max=a;
②if(max<b) max=b;其余多个数据中求最值依此类推。
4.输入4个整数,要求按由小到大顺序输出。得到正确结果后,修改程序使之按由大到小顺序输出。
相关知识:①输入函数scanf()的使用;②简单的排序算法;③通过中间变量t交换a和b值的方法:t=a; a=b; b=t;。 5.根据以下函数关系,对输入的每个x值,计算出相应的y值。
0 x 1
3 x 4
当x取其他值时
#include #include void main() { float x,y; scanf("%f",&x);
else if(
;
else printf("x=%f,y=%f",x,y); }
相关知识点:if语句的嵌套;数学函数的调用方式。 6.模仿第5题,写程序实现以下函数:
x(x 1)
y 2x 1(1 x 10)
3x 11(x 10)
用scanf函数输入x的值,求y值。运行程序,输入x的值(分别为x<1、1≤x<10、x>10三种情况),检查输出的y值是否正确。
相关知识:①用if的嵌套实现分段函数;②比较运算符的正确使用;③算术运算符*的正确使用。 7.阅读分析以下程序的功能。 #include <stdio.h> void main( ) {
内容需要下载文档才能查看int choice;
int value;
printf("Convert:\n"); /* 显示菜单 */ printf(" 1:decimal to hexadecimal\n "); printf(" 2:hexadecimal to decimal\n "); printf(" 3:decimal to octal\n "); printf(" 4:octal to decimal\n"); printf("enter your choice: "); scanf("%d",&choice);
switch (choice)
printf("enter decimal value:"); scanf("%d",&value);
printf("%d in hexadecimal is:%x\n",value,value); break;
printf("enter hexadecimal value:"); scanf("%x",&value);
printf("%x in decimal is:%d\n",value,value); break;
printf("enter decimal value:"); scanf("%d",&value);
printf("%d in octal is:%o\n",value,value); break;
printf("enter octal value:"); scanf("%o",&value);
printf("%o in decimal is:%d\n",value,value); break;
{ case 1: /* 选中1时处理 */
case 2: /* 选中2时处理 */
case 3: /* 选中3时处理 */
case 4: /* 选中4时处理 */
}
}
相关知识:①用switch语句实现菜单的方法;②数制转换的方法。
8.编写程序,要求对输入的数字1~7转换成文字星期几,对其它数字不转换。例如,输入5时,程序应该输出Friday。 ① 编辑、调试和运行该程序,然后输入4。其输出结果是什么?为什么是这样的结果? ② 该程序有哪些错误?如何修改?
相关知识:①switch语句的正确使用;②break在switch语句中的作用。
实验三 循环控制
一、实验目的
1. 熟练掌握用while语句、do while语句和for语句实现循环的方法。
2. 掌握在程序设计中用循的方法实现一些常用算法。并进一步学习调试程序的方法。 3. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。 4. 掌握字符数组和字符串函数的使用。 5. 掌握与数组有关的算法。
下载文档
热门试卷
- 2016年四川省内江市中考化学试卷
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
- 山东省滨州市三校2017届第一学期阶段测试初三英语试题
- 四川省成都七中2017届高三一诊模拟考试文科综合试卷
- 2017届普通高等学校招生全国统一考试模拟试题(附答案)
- 重庆市永川中学高2017级上期12月月考语文试题
- 江西宜春三中2017届高三第一学期第二次月考文科综合试题
- 内蒙古赤峰二中2017届高三上学期第三次月考英语试题
- 2017年六年级(上)数学期末考试卷
- 2017人教版小学英语三年级上期末笔试题
- 江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
- 重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
- 江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
- 江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
- 山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
- 【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
- 四川省简阳市阳安中学2016年12月高二月考英语试卷
- 四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
- 安徽省滁州中学2016—2017学年度第一学期12月月考高三英语试卷
- 山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
- 福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
- 甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷
网友关注
- 2017美国圣地亚哥州立大学入学条件
- 教材分析
- 吉大17春学期《妇产科护理学(专)》在线作业二答案
- _浅谈物理教学中人文素质的培养 (1)
- 《小企业会计准则》练习题库答案
- 7-3珠江三角洲和香港、澳门特别行政区(zjzz)Word
- _数据仓库中ETL技术的探讨与实践
- 酒吧课件(第一章第二章)Word
- 场景画Word
- 读经的好处Word
- 劳动法课件Word
- 吉大17春学期《病理解剖学(专)》在线作业一答案
- 辽宁省2015年下半年注册会计师《会计》:政府补助试题答案
- 支气管扩张伴咯血咯血Word课件
- 20120810上海写字楼发展历程Word
- 第十二章 货币的供求Word
- 一园青菜成了精Word
- 儿童节Word模板六一幼儿园小学亲子活动
- 2017年教师两学一做对照检查材料精选范文2篇
- 五年一期数学期中试卷答案
- 医学心理学复习大纲答案
- 解比例教学设计
- 辽宁省2016年上半年农村信用社招聘公共基础知识题库:管理常识(2)模拟试题答案
- 小学生食品安全教育教案
- 第十三章 货币均衡与失衡Word
- 二年级品德与生活题
- 吉大17春学期《病理解剖学》在线作业一答案
- 《交易心理分析》中文版
- 2017美国圣地亚哥州立大学专业设置
- 吉大17春学期《儿科护理学(专)》在线作业一答案
网友关注视频
- 飞翔英语—冀教版(三起)英语三年级下册Lesson 2 Cats and Dogs
- 【获奖】科粤版初三九年级化学下册第七章7.3浓稀的表示
- 北师大版八年级物理下册 第六章 常见的光学仪器(二)探究凸透镜成像的规律
- 19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T502436
- 北师大版数学四年级下册第三单元第四节街心广场
- 外研版英语七年级下册module1unit3名词性物主代词讲解
- 《空中课堂》二年级下册 数学第一单元第1课时
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,广东省
- 七年级英语下册 上海牛津版 Unit3
- 外研版英语三起5年级下册(14版)Module3 Unit1
- 外研版英语三起5年级下册(14版)Module3 Unit2
- 北师大版数学四年级下册3.4包装
- 外研版英语三起6年级下册(14版)Module3 Unit2
- 七年级英语下册 上海牛津版 Unit5
- 第19课 我喜欢的鸟_第一课时(二等奖)(人美杨永善版二年级下册)_T644386
- 3月2日小学二年级数学下册(数一数)
- 第12章 圆锥曲线_12.7 抛物线的标准方程_第一课时(特等奖)(沪教版高二下册)_T274713
- 苏科版数学七年级下册7.2《探索平行线的性质》
- 19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T3763925
- 北师大版小学数学四年级下册第15课小数乘小数一
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,湖北省
- 人教版历史八年级下册第一课《中华人民共和国成立》
- 三年级英语单词记忆下册(沪教版)第一二单元复习
- 每天日常投篮练习第一天森哥打卡上脚 Nike PG 2 如何调整运球跳投手感?
- 沪教版八年级下册数学练习册21.3(2)分式方程P15
- 冀教版英语三年级下册第二课
- 【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
- 冀教版小学数学二年级下册第二单元《租船问题》
- 冀教版小学数学二年级下册1
- 外研版英语七年级下册module3 unit2第二课时
精品推荐
- 2016-2017学年高一语文人教版必修一+模块学业水平检测试题(含答案)
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
分类导航
- 互联网
- 电脑基础知识
- 计算机软件及应用
- 计算机硬件及网络
- 计算机应用/办公自动化
- .NET
- 数据结构与算法
- Java
- SEO
- C/C++资料
- linux/Unix相关
- 手机开发
- UML理论/建模
- 并行计算/云计算
- 嵌入式开发
- windows相关
- 软件工程
- 管理信息系统
- 开发文档
- 图形图像
- 网络与通信
- 网络信息安全
- 电子支付
- Labview
- matlab
- 网络资源
- Python
- Delphi/Perl
- 评测
- Flash/Flex
- CSS/Script
- 计算机原理
- PHP资料
- 数据挖掘与模式识别
- Web服务
- 数据库
- Visual Basic
- 电子商务
- 服务器
- 搜索引擎优化
- 存储
- 架构
- 行业软件
- 人工智能
- 计算机辅助设计
- 多媒体
- 软件测试
- 计算机硬件与维护
- 网站策划/UE
- 网页设计/UI
- 网吧管理