C语言实训作业3

C语言实训作业3
C语言实训作业3

《C语言通识教育》实训指导书(第五次实训课)

(2学时)

指导教师:何天成

2015年6月4日

前言

C 语言是现代最流行的通用程序设计语言之一,它既具有高级程序设计语言的优点,又具有低级程序设计语言的特点,既可以用来编写系统程序,又可以用来编写应用程序。因此,C 语言正在被迅速地推广和普及。上机实验是该课程教学的一个重要环节,因此要求学生做一定数量的上机实验。本指导书可增强同学上机实验的针对性。整个教学和实验中,采用VC++6.0 作为实验环境,强调学生切实培养动手实践能力,掌握调试程序的方法,通过调试理解C语言程序运行的过程以及C 语言的语法规则,为后续的课程设计,计算机等级考试及其他应用做好充分的准备。

本实验指导书通过大量的实例,循序渐进地引导学生做好各章的实验。共计约14次实训课,其中每一讲内容分1、2两次上课。每个实验内容结构如下:

(1)实验学时

(2)实验目的

(2)预习要求

(4)实验内容

(5)实验注意事项

(6)思考题

其中思考题属于扩展应用部分,学生可以根据自己的学习情况选择完成。

在实验之前,要求学生对实验作好预习工作。在实验中,学生根据实验指导中的内容进行验证与总结,然后再去完成实验内容中安排的任务。一般要求准备好相关代码,实验课中最好以调试和讨论为主。

实验结束后,应及时先以电子版的形式填写实验报告,然后再以A4纸打印。第3次实训课上交前2次实训报告,要求源程序要以标准格式打印实验报告上都必须粘贴上每个程序的运行结果截图,并在每个程序的输出截图中添加上自己的姓名/学号/专业等信息,以表示程序执行结果确是自己调试,而不是copy别人的运行结果。通报告具体内容可根据实验内容和实验要求进行增删。实验报告一般要求包含:

(1)实验题目

(2)设计思路或算法分析

(3)流程图

(4)程序源代码

(5)程序运行结果及分析

实训第5次课:格式转换符的正确使用方法实训

一、实验目的

1、掌握C语言中使用最多的一种语句——赋值语句的使用方法。

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

二、实验内容和步骤

1、掌握各种格式转换符的正确使用方法

(2)运行此程序并分析结果。

运行结果如上图所示:

(3)在此基础上,修改程序的第8-13行:

a = 61;

b = 62;

c1 = ’a’; c2 = ’b’;

f = 3157.890121;

g = 0.123456789;

d = f;

e = g;

p = a = m = 50000;

q = b = n = -60000;

运行程序,分析结果:

a = 50000,

b =-60000——a,b初始值被覆盖

(4)改用scanf函数输入数据而不用赋值语句,scanf函数如下:

scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2,&d,&e,&f,&g,&m, &n,&p,&q);

输入的数据如下:

61,62,a,b,3.56,-6.87,3157,890121,0.123456789,50000,-60000,37678,40000↙

请分析运行结果(说明:lf和ld格式符分别用于输入double型和long型数据)。

结果如图:

(5)在(4) 的基础上将printf语句改为:

printf(“a=%d, b=%d\nc1=%c, c2=%c\nd=%15.6f, e=%15.12f\n”, a, b, c1, c2, d, e); printf(“f=%f, g=%f\nm=%d, n=%d\np=%d, q=%d\n”, f, g, m, n, p, q);

运行程序。

(6)将p、q改用%o格式符输出。

结果分析:

P,q 数据采用八进制输出

(7)将scanf 函数中的%lf 和%ld 改为%f 和%d ,运行程序并观察分析结果。 分析:

将长浮点型,长整型以浮点型和整型输入,存储数据的精度被扩大。

2、按要求编写程序

输入三角形的三边长,求三角形面积。

已知三角形的三边长a,b,c ,则该三角形的面积公式为: ,

其中s = (a+b+c)/2

参考源程序如下:

#include

main()

{

floata,b,c,s,area;

scanf(“%f,%f,%f”,&a,&b,&c);

s=1.0/2*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf(

“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f \n”,a,b,c,s);

printf(“area=%7.2f \n”,area);

}

))()((c s b s a s s area ---=

C语言上机操作实验二

2009——2010(1)C语言程序设计实验 1.从键盘输入一个正整数,若是偶数打印“even”,否则打印“odd”。文件 名为myf21.c 2.从键盘输入两个正整数m,n,判断m能否被n整除,若能输出m和n,否则 打印“NO”。文件名为myf22.c 3.将两个两位数的正整数a、的b合并形成一个整数放在c中。合并的方式是: 将a数的十位和个位数依次放在c数的千位和十位上, b数的十位和个位数依次放在c数的百位和个位上。例如,当输入45,12时,输出 c=4152。文件名为myf23.c 4.输入两个整数153和257,判断是否为“水仙花数”,所谓“水仙花数”是指 一个3位数,其各位数字立方和等于该数本身。若是输出该数,否则输出“NO”。 文件名为myf24.c 5.现编程实现:购买某商品时应付多少款?该商品的单价为12.6元,若购买这 一商品3件以上打8折,3件(包括3件)以下不打折。文件名为myf25.c 6.【动动脑子】若给定三个整型变量a,b,c,现求三个整数的最大值。算法思 想:引入变量max存放最大值,先求前二位数的最大值存放于变量 max中,再求该变量与第三数的最大值,仍存放于该变量中。最后输出该变量。文件名为myf26.c 7.【小游戏】给小学生出一道加法题,做对着输出“Goog!”,否则输出“Try hard!”。算法思想:随机产生一个被加数和一个加数,显示一道加法题,等待学生输入结果,判断其结果是否正确,若正确输出输出“Goog!”,否则输出“Try hard!”。文件名为myf27.c 班级:金属0901/2、冶金0901/2、电信工程0901/2、电子商务0901

5-6次C语言上机作业

实验5 函数(1) 【实验题5-1】以下程序的功能:从键盘输入两个数,计算出他们的和,并将结果输出在屏幕上。调试运行程序,观察出现了什么错误,提出两种修改方案。 【实验题5-2】下程序的功能:输出3~1000之的间的素数。请选择合适的内容填入程序的空白处,并调试运行程序。

【实验题5-3】从键盘输入一个整数n,计算n^3,并将结果输出在屏幕上。要求计算n^3用函数实现。 【实验题5-4】从键盘输入一个整数n,计算2n+1与++n之和。要求计算两数之和用函数

实现。 注意写计算表达式的时候3*n之间的乘号不要丢掉,否则会提示:invalid suffix “n” on integer constant. 调用用户自定义函数是只写ifun=fun(n); 就可以了,不要在括号里加上int。Ifun=fun(int n) × 【实验题5-5】编写程序,计算Cmn=n!/(n-m)!m!。要求如下: 1)编写一个函数计算n!; 2)编写主函数,输入n和m, 调用第1)项中的函数完成计算; 3)输出并计算C58、C712的结果。

【实验题6-1】以下程序功能:用已知三角形三边,求三角形面积。但程序有错,请上机调试并改正错误。

【实验题6-2】以下程序运行的结果应该是a=14, b=15,temp=0。在程序空白处填写适当的编译预处理命令。 【实验题6-3】用for循环输出20个0~99之间的随机数。要求没输出五个随机数换一行。 【实验题6-4】从键盘输入一个字母,如果是大写字母就转换成小写字母输出;如果是小写字母就转换成大写字母输出。要求用库函数实现。

C语言上机作业题及答案

实验一: 1、已知华氏温度,根据转换公式计算相应的摄氏温度。 摄氏温度= 5*(华氏温度-32)/9 2.任意输入一个有五位数字的正整数,逆序输出每一数位上的数字。 如: 输入 12345 输出 5 4 3 2 1 #include"stdio.h" main() { double t,T; printf ("已知华氏温度,根据转换公式计算相应的摄氏温度"); scanf ("%lf",&t); T=(5*(t-32)/9); printf ("摄氏温度=%lf",T); } #include"stdio.h" main() { int value,a,b,c,d,e,m,n,h; printf ("任意输入一个有五位数字的正整数,逆序输出每一数位上的数字"); scanf ("%d",&value); a=value/10000; m=value%10000; b=m/1000; n=m%1000; c=n/100; h=n%100; d=h/10; e=h%10; printf ("%d%d%d%d%d",e,d,c,b,a); } 实验二: 1.一个成年人的身高与其父母的身高密切相关,根据以下人体标准身高预测公式计算自己或某个同学的身高,并跟实际身高比较,给出结论是否符合该公式(误

差在3厘米范围内即视为相符)。 男性身高=(父亲身高+母亲身高)×1.08÷2(厘米) 女性身高=(父亲身高×0.923+母亲身高)÷2(厘米) 2.从键盘上输入税前收入,根据以下公式及规则,计算个人所得税税额并输出。应纳个人所得税税额=(税前收入—起征点额度)*适用税率—速算扣除数 其中,起征点额度是3500元,其他如下: 应纳税所得额税率速算扣除数 不超过1500元的部分 3% 0 超过1500元至4500元的部分 10% 105 超过4500元至9000元的部分 20% 555 超过9000元至35000元的部分 25% 1005 超过35000元至55000元的部分 30% 2755 超过55000元至80000元的部分 35% 5505 超过80000的部分 45% 13505 如:某人月收入5000元,则应纳个人所得税税额为(5000-3500)* 10% - 105 = 45元。 #include #include main() { float A,a,H,h,b; printf("父亲身高(厘米)\n"); scanf("%f",&A); printf("母亲身高(厘米)\n"); scanf("%f",&a); printf("孩子实际身高(厘米)\n"); scanf("%f",&H); printf("请选择孩子性别:女=0,男=1\n"); scanf("%f",&b); if(b) h=(A+a)*1.08/2; else h=(A*0.923+a)/2; if(fabs(H-h)<=3) printf("实际身高符合该公式\n"); else

C语言上机作业试题5套含答案

第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 (输入的有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。) 例:输入712 1411 (出发时间是7:12,到达时间是14:11) 输出The train journey time is 6 hours 59 minutes. 5. 数字加密 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。 例:输入1257 输出The encrypted number is 4601 思考题:你能否编程找出谁做的好事? 有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 ?A说:不是我。 ?B说:是C。 ?C说:是D。 ?D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交

扬州大学C语言上机作业1-9整理

答案仅供参考 实验一 4.设计main函数实现从键盘上输入两个整型变量a、b的值,交换它们的值并输出。#include void main() { int a,b,c; printf("enter first integer : "); scanf("%d",&a); printf("enter second integer : "); scanf("%d",&b); c=a; a=b; b=c; printf("%d,%d\n",a,b); getch(); } 5.设计main函数实现从键盘上输入两个整型变量a、b的值,并将b的值加入到a中,输出a的值。 #include void main() { int a,b,c; printf("enter first integer : "); scanf("%d",&a); printf("enter second integer : "); scanf("%d",&b); c=a+b; a=c; printf("a=%d,b=%d\n",a,b); getch(); } 6.从键盘输入整数x的值,根据公式y=x3+3x2+x-10求y的值,输出x和y的值。 #include void main() { int x,y; printf("enter first integer : "); scanf("%d",&x); y=x*x*x+3*x*x+x-10;

printf("x=%d,y=%d\n",x,y); getch(); } 实验二 1.编写程序,从键盘上输入一个整数(例如560)表示分钟,将其换算成用小时和分钟表示,然后输出至屏幕。 #include void main() { int a,b,hour,min; printf("enter first integer : "); scanf("%d",&a); b=60; hour=a/b; min=a%b; printf("hour=%d,min=%d\n",hour,min); getch(); } 2.编写程序,输入两个整数(例如1500和350),求出它们的商和余数并进行输出。 #include void main() { int a,b,c,d; a=1500,b=350; c=a/b; d=a%b; printf("%d,%d",c,d); getch(); } 3.编写程序,读入3个整数给分别变量a,b,c,然后将a,b,c的值输出到屏幕,再交换它们中的数值,把a中原来的值给b,把b中原来的值赋给c,把c中原来的值赋给a,然后再次输出a,b,c的值到屏幕。 #include void main() { int a,b,c,d; printf("enter first integer : "); scanf("%d",&a);

C语言上机作业

《程序设计基础—C程序实验》 说明: 实验1和实验2均为电子实验报告,后面8个实验是纸制实验报告。 实验1 计算机基本操作 实验目的 ⑴熟悉计算机,能够正确进行开、关机操作。 ⑵熟悉键盘,掌握键盘上所有字符的输入,掌握正确的指法,能够进行中、英文切换。 ⑶理解操作系统概念,掌握Windows XP的基本操作,能够利用“控制面板”进行一些参数的设置。 ⑷知道“回收站”的功能,学会有关文件、文件夹的基本操作。 ⑸学会在计算机上搜索或查找相关的文件或文件夹,掌握通配符的使用。 实验内容 ⑴熟悉上机实验的计算机,熟悉键盘,学会中、英文输入方式的转换。 ⑵学会用正确的指法进行输入,知道键盘上所有字符的输入。 ⑶利用“控制面板”修改系统时间、桌面背景、鼠标属性。 ⑷在桌面上新建一个文件夹,该文件夹以学生自己的名字+班级+学号的后3位命名。 ⑸用文本方式或Word文档,写一段字数不少于300字的自我介绍,以1.doc命名并保存到上述文件夹中。 ⑹将上述文件夹复制到ftp://10.10.9.222上。

实验2 常用软件的基本操作 实验目的 ⑴了解Word功能,掌握Word的基本操作,包括页眉/页脚的设置、分栏、页面设置、添加底纹等。 ⑵学会文件的保存与打开、打印预览、段落的间隔、首字符位置改变等,能够在Word中插入图片、表格、艺术字、特殊符号等。 ⑶了解Excel的功能,掌握Excel的基本操作,包括单元格属性的设置、数字的几种填充形式、单元格的合并与恢复、边框的设置等。 ⑷掌握Excel的基本公式的使用,能够用公式进行基本计算。掌握Excel中的图形制作方法,能够根据表格做出图形。 实验内容 ⑴将ftp上自己文件夹中的1.doc文件复制到桌面上,然后做如下处理: ①将标题“自我介绍”居中; ②将文章中第二段的内容进行分栏,要求中间有分割线; ③插入一个4行4列的表格,内容为学号、姓名、某门课的成绩; ④任意插入一张图片; ⑤在文章中的任意位置加底纹。 将做好的文档以2.doc命名并保存。 ⑵用Excel建立如下表格: 学生的总成绩 学号姓名语文数学英语计算机总分平均分 09001 张辉78 90 80 92 09003 万明84 87 83 90 09004 杜芳鸣91 80 78 95 09006 徐好芳87 85 80 85 09007 江珍80 67 78 70 09008 王豪78 73 85 80 09009 王小盟75 89 94 88 09010 胡甜甜82 93 88 95 09012 卫晓88 97 65 72 并对表格进行如下操作: ①利用公式计算学生的总分、平均分; ②将表中所有的数据选择居中; ③利用该表格中的姓名和计算机的成绩做簇状图形。 将做好的Excel表以2.xls命名并保存。 将本次实验的两个文件上传到ftp上自己的文件夹中。

7~8次C语言上机作业

实验7 数组(1) 【实验题7-1】此程序的功能:给数组元素赋值并进行输出。但程序中有错误,请查找原因,并调试程序以实现程序功能。 【实验题7-2】以下程序的功能:求整型数组中元素的最大值及其下标。请选择合适的内容填入程序中空白处。 【实验题7-3】以下程序的功能:把整型数组里的元素按逆序进行排序并输出。请选择合适的内容填入程序中空白处。 【实验题7-4】编写一个程序,定义一个有五个元素的一维数组,从键盘对该数组的元素进行赋值后再显示在屏幕上。 【实验题7-5】编写程序对整型数组iA的各元素进行从大到小排序。 【实验题7-6】在数组iA和数组iB中分别存放了na和nb个由小到大的有序数。编写程序,完成把两个数组中的元素按从小到大的顺序归并存放在数组iC中。 【实验题7-7】假设数组iA中的元素按由小到大的顺序存放。编写程序把数组iA中相同的元素删除至一个,然后按照每行六个元素的形式输出数组iA中的各个元素值。 【实验题7-8】在二维数组中,若某一位置上的元素在该行中最大,而在该列中最小,则该元素为该二维数组的一个鞍点。编写程序要求从键盘输入一个二维数组,当鞍点存在时,把鞍点找出来。 #include #define M 3 #define N 4 int main(){ int a[M][N],i,j,k; printf("\n请输入二维数组的数据:\n"); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i for(j=0;j

printf("M",a[i][j]); printf("\n"); } for(i=0;i k=0; for(j=1;j if(a[i][j]>a[i][k]) k=j; for(j=0;j if(a[j][k] break; if(j==M) printf("%d,%d,%d\n",a[i][k],i,k); } return 0; } 上面这个题代码运行不了,可又找不到问题所在,头疼!!! 实验8 数组(2) 【实验题8-1】此程序的功能:过滤字符数组中数字并进行输出。但程序中有错误,请查找原因,并调试程序以实现程序功能。 【实验题8-2】此程序的功能:统计字符数组中出现字符“s”的次数,并进行输出。但程序中有错误,请查找原因,并调试程序以实现程序功能。 【实验题8-3】以下程序的功能:连续输入一批“#”结束的字符串,遇“##”则全部结束,统计并输出每个字符串的有效长度。请选择适当的内容填入空白处。 【实验题8-4】

c语言上机考试界面及操作

新版VC上机考试操作过程及使用方法 重要提示:考生在上机考试中使用VC++对题目编译运行时,不要同时打开几个文件。每次完成一个题目后关闭VC++,再重新启动VC++做下一题目。 注意:本画面是真实的上机考试环境截图,不是我公司的模拟系统。 上机考试系统启动时,会出现如下画面: 考生应单击“开始登陆”按钮,注意:有的考场监考老师已经单击这个按钮了,直接出现下面的画面: 在“准考证号”输入框中正确输入你自己的准考证号码,输入正确无误后单击“考号验证”按钮,出现如下的画面:

认真核对你的准考证、身份证和姓名是否正确,如果不正确,单击“否”,重新输入,或者举手问监考老师。如果正确,单击“是”,出现下面的画面: 单击“抽取试题”,出现如下画面:

单击“开始答题并计时”,出现如下画面: 这个时候系统开始计时。在系统中,上面有一个工具栏,单击“隐藏窗口(或者显示窗口)”可以隐藏或者显示下面的题目窗口。题目窗口中的有三个按钮,分别单击这些按钮,可以查看相关的题目要求。单击题目窗口中的“答题”菜单中的“启动 Microsoft Visua l C++”菜单,可以直接启动VC,如下图所示: 启动后的VC6开发工具如下图:

单击“文件”菜单,选择“打开”菜单,如下图: 此时会出现一个打开菜单,如下图所示:

这时会打开考生文件夹,在这个打开对话框中会出现3个文件,分别是blank1.c(程序填空题)、modi1.c(程序修改题)和prog1.c(程序编写题)。 如果没有打开考试文件夹,则用鼠标单击“查找范围”后面的编辑框,选择考生文件夹。考生文件夹的具体路径写在考试系统题目界面的“考生文件夹”下方,在我的图像上就是“k:\maguoze\24010001”,每个考生的考生文件夹均不相同。 我们在做题的时候,选择相应的文件,例如要做程序填空题,就在打开文件对话框中选择blank1.c文件,然后单击“打开”按钮,出现如下图所示的界面: 在做程序填空题的时候,将填写的答案填写到类似于___1___的地方,填写完毕后,必须将___1___删除。 程序填空题、程序修改题和程序编写题目的具体做题方法,请参考《上机实验手册》(教材的第5分册)的实验五、实验六。 题目做完后必须保存。如果需要运行(编程题必须运行,填空题和改错题可以不运行),单击“组建”菜单的“编译”菜单,如下图所示:

C语言上机作业12 答案

C语言程序设计上机作业12 答案 结构体与共用体上机作业答案 1. 答案:【1】10 【2】4 2. 答案:34 3. 答案:【1】(*b).day 【2】b->day 4. 答案:【1】struct link *next 5. 答案:【1】struct list *next 【2】int data 6. 答案:【1】struct 【2】ch 【3】NULL 7. 答案:177771,177777 8. 答案:60501 9. 答案:4,8 10. 答案:2 5 11. 答案:13 12. 答案:20 13. 答案:18 14. 答案:A 15. 答案:DDBBCC C语言程序设计上机作业12 结构体与共用体上机作业 要求:把下列各题填空。直接把答案填写在相应的位置,然后保存此word文件,上传。 1.有以下定义和语句,则sizeof(a)的值是【1】,而sizeof(a.share)的值是【2】。 struct date { int day; int month; int year; union { int share1; float share2; }share; } a; 2.若有以下说明和定义语句,则变量w在内存中所占字节数________。

union aa { float x,y ; char c[6]; }; struct st { union aa v ; float w[5]; double ave ; } w ; 3.有以下说明定义语句,可用a.day 引用结构体成员day,请写出引用结构体成员a.day 的其它两种形式【 1 】 【 2 】。 { int day ; char mouth ; int year ; } a,*b ; b=&a ; 4.为了建立如图所示的存储结构(即每个结点含两个域,data 是数据域,next 是指向该结 构的指针域,data 用以存放整型数)请填空。 data next struct link {char data ;( 【 1 】 )}node ; 5.变量root 有如图所示的存储结构,其中sp 是指向字符串的指针的指针域,next 是指向该 结构的指针域,data 用以存放整型数。请填空,完成此结构的类型说明和变量root 的定义。 root struct list { char *sp ; ( 【1】) ( 【2】 ) }root ; 6.以下函数creatlist 用来建立一带头节点的单链表,链表的结构如下图所示,新的 节点总是插入在链表的末尾。链表的头指针作为函数值返回。链表最后一个节点的next 域放入NULL ,作为链表结束的标志。data 为字符型数据域,next 为指针域。读入时字符以#表示输入结束(#不存入链表)。请填空。

c语言实验指导书作业版3

实验2 数据类型 三、实验内容 1.阅读下面程序,熟悉C语言中各种基本数据类型,写出程序运行结果,并上机验证。 #include "stdio.h" void main() { int x; long y; char c; float d; double e; x=100; y=65486l; c='a'; d=31478.5692; e=314786666666.56785643; printf("x=%d,x=%x,x=%o\n",x,x,x); printf("c=%c,c=%d\n",c,c); printf("y=%ld,y=%d\n",y,y); printf("d=%f\n",d); printf("e=%lf\n",e); } △程序输出结果为:◇上机验证结果: 总结: 根据上机验证结果,float型的有效位数为7 位,double型的有效位数为15 位。3.使用调试方法,发现下面程序的逻辑错误,并修改。 /*本程序功能是计算任意两个实数的和!*/ #include "stdio.h" /*预处理命令*/ int add(int x,int y) {int z;z=x+y; return z;} void main( ) { int a, b,sum; /*定义加数a,b和sum*/ a=1.5; /*给a赋值1*/ b=2.7; /*给b赋值2*/ sum=add(a,b); /*求a,b之和*/ printf("sum=%d\n",sum); /*输出sum*/

} 修改后: #include “stdio.h" /*预处理命令*/ int add(float x,float y) {float z; z=x+y; return z; } void main( ) { float a, b,sum; /*定义加数a,b和sum*/ a=1.5; /*给a赋值1*/ b=2.7; /*给b赋值2*/ sum=add(a,b); /*求a,b之和*/ printf("sum=%d\n",sum); /*输出sum*/ } 4.指针初步使用: (1)阅读程序,回答问题。 #include void main( ) { int i=2,*ip; /* i= 2 ip= *ip= */ ip=&i; /*i= 2 &i= 2 ip= 2 *ip= 2 */ i++; /* i= 3 */ printf("i=%d,*ip=%d\n",i,*ip); /*i= 3 *ip= 2 */ } a.写出程序运行结果并上机验证。 将相应结果填入程序的注释语句中的横线上。 (2) 按照注释语句的要求在横线上填入正确语句。 #include void main() { int i=2,*ip; ip=&i; i=ip+1 /*利用指针变量ip使得实现变量i加1运算*/ printf("i=%d,*ip=%d\n",i,*ip); }

c语言上机作业及答案

4.11 编程计算1×2×3+3×4×5+…+99×100×101的值。#include main() { long i ; long term, sum = 0; for (i = 1; i <= 99; i = i + 2) { term = i * (i + 1) * (i + 2); sum = sum + term; } printf("sum=%ld",sum); } 4.12 编程计算1!+2!+3!+4!+…+10!的值。 #include main() { long term = 1,sum = 0; int i; for (i = 1; i <= 10; i++) { term = term * i; sum = sum + term; } printf("1!+2!+...+10! = %ld \n", sum); }

#include main() { long term ,sum = 0; int i, j; for (i = 1; i <= 10; i++) { term = 1; for (j = 1; j <= i; j++) { term = term * j; } sum = sum + term; } printf("1!+2!+…+10! = %ld \n", sum); } 4.13 编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。 #include main() { long term = 0,sum = 0; int a , i, n; printf("Input a,n: "); scanf("%d,%d", &a, &n); /*输入a,n的值*/ for (i = 1; i <= n; i++) { term = term * 10 + a; /*求出累加项*/ sum = sum + term; /*进行累加*/ } printf("sum=%ld\n",sum); }

第三次作业c语言

习题四 一、单选题 4-1. 已知:char a;int b;float c;double d;则计算表达式a*c+c-d之后,结果的数据类型为:A. char B. int C. float D. double C 4-2.以下选项中不是C语句的是。 A. { int i; i++;printf("%d\n",i);} B. ; C. a=5 ,c=10 D. { ; } C 4-3. 以下合法的C语句是。 A.{ a=b}; B. k=int(a+b); C. k=a+b=c; D. --i; D 4-4.执行以下程序段后,c3的值是。 int c1=1,c2=2,c3; c3=c1/c2; A. 0 B. 1/2 C. 0.5 D. 1 A 4-5.若int a,b,c; 则为它们输入数据的正确输入语句是____。 A. read(a,b,c); B. scanf(" %d%d%d" ,a,b,c); C. scanf(" %D%D%D" ,&a,%b,%c); D. scanf(" %d%d%d",&a,&b,&c); D 4-6. 若float a,b,c; 要通过语句: scanf(" %f %f %f" ,&a,&b,&c);分别为a,b,c输入10,22,33。以下不正确的输入形式是____。 A. 10 22 33 B. 10.0, 22.0, 33.0 C. 10.0 22.0 33.0 D. 10 22 33.0 B 4-7.若在键盘上输入: 283.1900,想使单精度实型变量c的值为283.19,则正确的输入语句是。 A. scanf(" %f",&c); B. scanf(" %8.4f",&c); C. scanf(" %6.2f",&c); D. scanf(" %8",&c); A 4-8. 执行语句:printf(" |%10.5f|\n",12345.678);的输出是____。 A. |2345.67800| B. |12345.6780| C. |12345.67800| D. |12345.678| C 4-9. 若有以下程序段,其输出结果是____。 int a=0,b=0,c=0;

c语言上机作业

1、设计一函数实现对数组中前n个数求最大值,在主函数中用随机函数生成数组元素的值。在主函数中输出最大值,整数n在程序运行过程中输入。 #include #include int main() { int a[10],i; for(i=0;i<=9;i++) a[i]=rand(); for(i=0;i<=9;i++) printf("%d ",a[i]); int n; scanf("%d",&n); int maxi=a[0]; for(i=0;i<=n;i++) if(a[i]>maxi) maxi=a[i]; printf("最大的数字为:%d",maxi); return 0; } 2、设计一函数实现对数组中前n个数求平均值,在主函数中用随机函数生成数组元素的值。在主函数中输出平均值,整数n在程

序运行过程中输入。 #include #include int main() { int a[10],i; for(i=0;i<=9;i++) a[i]=rand(); for(i=0;i<=9;i++) printf("%d ",a[i]); int n; scanf("%d",&n); float sum=0,aver; for(i=0;i void main() { int a[10],i,maxi; int max(int a[],int n);

C语言上机作业第十章

1.结构体填空1 #include typedef struct { int num; char name[9]; float score[3]; } STU; void show(STU tt) { int i; printf("%d %s : ",tt.num,https://www.360docs.net/doc/ca11352166.html,); for(i=0; i<3; i++) printf("%5.1f",tt.score[i]); printf("\n"); } /**********found**********/ void modify(STU *ss,float a) { int i; for(i=0; i<3; i++) /**********found**********/ ss->score[i] *=a; } int main( ) { STU std= { 1,"Zhanghua",76.5,78.0,82.0 }; float a; scanf("%f",&a); /**********found**********/ modify(&std,a); show(std); return 0; } 2.结构体填空2 #include #include struct student { long sno; char name[10]; float score[3]; };

void fun( struct student *b) { /**********found**********/ b->sno=10004; /**********found**********/ strcpy(b->name, "LiJie"); } int main() { struct student t= {10002,"ZhangQi", {93, 85, 87}}; int i; /**********found**********/ fun(&t); printf("No: %ld Name: %s\nScores:",t.sno, https://www.360docs.net/doc/ca11352166.html,); for (i=0; i<3; i++) printf("%6.2f", t.score[i]); printf("\n"); return 0; } 3.结构体填空3 #include #include struct student { long sno; char name[10]; float score[3]; }; void fun(struct student a[], int n) { /**********found**********/ struct student t; int i, j; /**********found**********/ for (i=0; i 0) { t = a[i]; a[i] = a[j]; a[j] = t; } } int main() { struct student s[4]={{10001,"ZhangSan", {95, 80, 88}},{10002,"LiSi", {85, 70, 78}}, {10003,"CaoKai", {75, 60, 88}}, {10004,"FangFang", {90, 82, 87}}}; int i, j; fun(s, 4);

C语言第三次作业(循环)

C语言循环结构作业 一、实验目的: 1、熟悉掌握三种循环结构,while语句、do-while语句和for语句。 2、掌握在程序设计中用循环的方法实现一些常用算法。 3、进一步学习调试程序。 二、实验内容:(请写出程序代码及调试结果) 1.求Sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/(2n))其中n的值由键盘获得。 2.求S=aa….a -… -aaa - aa - a的值,其中a=3,n=6。 n个a 例如:22222-2222-222-22-2(例如:a=2,n=5) 3.根据以下公式求∏的值(要求满足精度0.0005,即某项小于0.0005 时停止迭代)∏/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+(1*2*3*4)/(3*5*7*9)+…+(1*2*3*4*…*n)/ (3*5*7*9*…*(2n+1))程序运行后,如果输入精度0.0005,则程序输出为3.140578 4.输出1至100之间每位数的乘积大于每位数的和的数 5.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,因此6是“完数”。编程序找出1000之内的所有完数及这些完数之和,并按下面格式输出因子:6的因子是1,2,3 …… 完数和是…。 6. 有一数列:

2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20项之和。 7. 大于m且紧靠m的k个素数打印出来。 例如,若输入m=17, k=5 ,则应输出“19,23,29,31,37”。 8、求1!+2!+3!+4!+ (10) 9、猴子吃桃子问题。猴子第1天摘下若干个桃子,当即吃了一半, 还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子。 10、输出以下图案: * *** ***** ******* ***** *** *

大连理工c语言第五次上机作业参考答案

大连理工c语言第五次上机 作业参考答案 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

第五次上机作业:(请用指针实现) 1. 数据移位 有n (n<=10)个整数,使前面各数顺序向后移m (m<=n )个位置,最后m 个数变成最前面的m 个数,如图所示。编写函数shift(a,n,m)实现上述功能,在主函数中输入n 个整数和输出调整后的n 个数。 SAMPLE OUTPUT Input n(n<=10):10 Input 10 integers :1 2 3 4 5 6 7 8 9 10 Output the original :1 2 3 4 5 6 7 8 9 10 Input m(m<=10):4 Output the shifted :7 8 9 10 1 2 3 4 5 6 #include #define N 10 void shift(int a[ ],int n,int m); void main( ) { int i,n,m; int a[N]; printf("Input n(n<=10):"); scanf("%d",&n); printf("Input %d integers:\n",n); for(i=0;i=0;j--) a[j+1]=a[j]; a[0]=t; } } n

C语言上机作业

单选题: 1、以下叙述正确的是 A.可以把define和if定义为用户标识符 B.可以把define定义为用户标识符,但不能把if定义为用户标识符 C.可以把if定义为用户标识符,但不能把define定义为用户标识符 D.define和if都不能定义为用户标识符 学生答案: B 参考答案: D 2、以下各选项企图说明一种新的类型名,其中正确的是 A.typedef v1 int; B.typedef v2=int; C.typedef v1 int v3; D.typedef v4: int; 学生答案: A 参考答案: C 3、有如下程序 #define N 2 #define M N+1 #define NUM 2*M+1 #main() { int i; for(i=1;i<=NUM;i++)printf("%d\n",i); } 该程序中的for循环执行的次数是 A.5 B.6 C.7 D.8 学生答案: C 参考答案: B 4、以下程序的输出结果是 #define SQR(X) X*X main() { int a=16, k=2, m=1; a/=SQR(k+m)/SQR(k+m); printf("d\n",a); } A.16 B.2 C.9 D.1 学生答案: D 参考答案: B

5、执行下面的程序后,a的值是 #define SQR(X) X*X main( ) { int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf("%d\n",a); } A.10 B.1 C.9 D.0 学生答案: B 参考答案: B 6、以下程序运行后,输出结果是 #define PT 5.5 #define S(x) PT*x*x main() { int a=1,b=2; printf ("%4.lf\n",S(a+b)); } A.49.5 B.9.5 C.22.0 D.45.0 学生答案: C 参考答案: B 7、请读程序: #define ADD(x) x+x main() { int m=1,n=2,k=3; int sum=ADD(m+n)*k; printf("sum=%d",sum); } 上面程序的运行结果是 A.sum=9 B.sum=10 C.sum=12 D.sum=18 学生答案: B 参考答案: B 8、以下程序的运行结果是 #define MIN(x,y) (x) < (y)?(x):(y) main()

C语言第三次作业

第三次作业:程序控制语句(顺叙、选择、循环) 注:建议同学们在深入理解顺序、选择、循环三种控制语句的基础上再做本次作业,过程可能会更顺利,效果可能会更好一些。 1.三角形的面积和周长 对于一个三角形,设它的三条边分别为a、b、c,三角形的周长、面积计算公式分别为:Perimeter= a+b+c aere*area = s(s-a)(s-b)(s-c),其中:s = (a+b+c)/2 要求编程实现以下功能: 输入一个正整数repeat (0 #include void main() { int a,b,c,s,repeat,p,t,q,u,i; float perimeter,area; i=1; scanf("%d",&repeat); do { scanf("%d,%d,%d",&a,&b,&c); t=(a>b)?a:b; p=(ac)?t:c; u=(tq&&q-p

相关文档
最新文档