求山东理工大学C语言实验答案(在线等、求速度)

求山东理工大学C语言实验答案(在线等、求速度),第1张

实验一 简单C程序的调试

一、实验目的

熟悉在VC的运行环境下,编辑调试C语言程序的一般步骤。掌握编写与调试简单C语言程序的基本方法。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序

2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,并记录下调试运行过程中出现的所有错误及改正方法。

4. 掌握如何根据出错信息查找语法错误。

5. 写出本次实验的实验报告。

三、实验内容

1.从键盘输入一个以秒为单位的时间值(如10000秒),将其转化为以时、分、秒表示的时间值并输出。

#include <stdio.h>

void main()

{int time,h,min,sec

printf("请输入时间,以秒为单位\n")

scanf("%d",&time)

h=time/3600

min=(time%3600)/60

sec=(time%3600)%60

printf(" 时间转换为:%d h %d min %d s\n",h,min,sec)

}

2.已知如下二元一次方程组的系数值,求该方程组的解。

a1x+b1y=c1

a2x+b2y=c2

#include <stdio.h>

void main()

{float a1,b1,c1,a2,b2,c2,m,n,p

printf(" 请输入二元一次方程组的各项参数:")

scanf("%f %f %f %f %f %f",&a1,&b1,&c1,&a2,&b2,&c2)

p=a1*b2-a2*b1

if(p!=0)

m=(b2*c1-b1*c2)/(a1*b2-a2*b1)

n=(a1*c2-a2*c1)/(a1*b2-a2*b1)

printf("%fx+%fy=%f\n%fx+%fy=%f\n",a1,b1,c1,a2,b2,c2)

printf("解为:\n x=%f\n y=%f\n",m,n)

}

实验二 顺序结构程序设计

一、实验目的

掌握顺序程序设计的基本思想和顺序程序设计的基本方法

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。

2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,并记录下调试运行过程中出现的所有错误及改正方法。

4. 掌握如何根据出错信息查找语法错误。

5. 掌握如何通过动态跟踪程序运行过程查找逻辑错误。

6. 写出本次实验的实验报告。

三、实验内容

1.编程序实现:输入一个年份y,求出从公元1年1月1日到y年的1月1日,总共有多少天(提示:400年97闰)。

#include <stdio.h>

void main()

{

int year,days

printf("please enter a year:")

scanf("%d",&year)

days=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%100)/4+1

printf("公元1年1月1日到公元%d年1月1日有%d天。\n",year,days)

}

实验三 选择结构程序设计

一、 实验目的

掌握选择结构程序设计的一般方法及选择结构程序的调试方法。

二、实验要求

1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。

2. 在VC运行环境下,编辑录入源程序。

3. 调试运行源程序,并记录下调试运行过程中出现的所有错误及改正方法。

4. 掌握如何根据出错信息查找语法错误。

5. 掌握如何通过动态跟踪程序运行过程查找逻辑错误。

6. 写出本次实验的实验报告。

三、实验内容

1.编程序实现:输入一个年份和月份,求出这个月的天数并输出。

#include <stdio.h>

void main()

{

int year,month,n

printf("please enter a date like 2010/4\n")

scanf("%d/%d",&year,&month)

switch (month)

{

case 1: n=31break

case 2: n=28break

case 3: n=31break

case 4: n=30break

case 5: n=31break

case 6: n=30break

case 7: n=31break

case 8: n=31break

case 9: n=30break

case 10: n=31break

case 11: n=30break

case 12: n=31break

default:break

}

if(year%4==0&&year%100!=0||year%400==0&&month==2)

n=29

printf("%d年%d月有%d天。、\n",year,month,n)

}

2.编程序实现:输入一个年份y,求出y年的1月1日是星期几(提示:公元1年1月1日是星期一)。

#include <stdio.h>

void main()

{

int m,n=0,year,i

printf("please enter a year")

scanf("%d",&year)

n=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%100)/4+1

printf("%d年1月1日是",year)

m=n%7

switch (m)

{

case 0: printf("星期天\n")

case 1:printf("星期一\n")break

case 2:printf("星期二\n")break

case 3:printf("星期三\n")break

case 4:printf("星期四\n")break

case 5:printf("星期五\n")break

case 6:printf("星期六\n")break

default:break

}

}

3.(拓展题,选做)编程序实现:输入任意一个日期的年、月、日的值,求出是星期几并输出。

#include <stdio.h>

void main()

{

int year,month, day,n,i

printf("please enter a date like 2010/4/16\n")

scanf("%d/%d/%d",&year,&month,&day)

n=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%100)/4

switch (month)

{

case 1: n+=daybreak

case 2: n+=day+31break

case 3: n+=day+59break

case 4: n+=day+90break

case 5: n+=day+120break

case 6: n+=day+151break

case 7: n+=day+181break

case 8: n+=day+212break

case 9: n+=day+243break

case 10: n+=day+274break

case 11: n+=day+304break

case 12: n+=day+344break

default:break

}

if(year%4==0&&year%100!=0||year%400==0&&month>2)

n+=1

n=n%7

switch (n)

{

case 0: printf("星期天\n")

case 1:printf("星期一\n")break

case 2:printf("星期二\n")break

case 3:printf("星期三\n")break

case 4:printf("星期四\n")break

case 5:printf("星期五\n")break

case 6:printf("星期六\n")break

default:break

}

}

 

实验四 循环程序综合应用

一、实验目的:

掌握循环结构程序设计的一般方法及循环结构程序的调试方法,能够综合运用顺序、选择和循环结构解决一般难度的实际应用问题。

二、实验要求:

1.仔细阅读下列实验内容,并编写出相应的C语言源程序。

2.在VC运行环境下,编辑录入源程序。

3.调试运行源程序,并记录下调试运行过程中出现的所有错误及改正方法。

4.掌握如何根据出错信息查找语法错误。

5.掌握如何通过动态跟踪程序运行过程查找逻辑错误。

6.写出本次实验的实验报告。

三、实验内容:

1.编程序实现如下功能:输入任意一个年份的值,按以下格式输出该年份一月份的公历日历。

要求用循环控制打印。

2011年日历

1月

日一 二三四 五六

1

2 3 4 5 6 7 8

9 10 1112 131415

16171819 202122

2324252627 2829

3031

#include <stdio.h>

void main()

{

int year,days,i,m,k=0,j

printf("please enter a year:")

scanf("%d",&year)

days=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%

100)/4+1

m=days%7

printf("%d年日历\n一月\n",year)

printf(" 日 一 二 三 四 五 六\n")

for(i=1i<=mi++)

{

k++

printf(" ")}

k=m

for(j=1j<=31j++)

{

k++

printf("%3d",j)

if(k%7==0)

printf("\n")}

printf("\n")

}

2.(拓展题,选做)编程序实现如下功能:输入任意一个年份的值,输出该年份全年的公历日历。#include <stdio.h>

void main()

{

int year,days,i,m,n,k=0,j,day,month

printf("please enter a year:")

scanf("%d",&year)

printf("%d年日历\n",year)

days=365*(year-1)+97*((year-1)/400)+24*(((year-1)%400)/100)+(((year-1)%400)%100)/4+1

for(month=1month<=12month++)

{

switch (month)

{

case 1: day=31break

case 2: day=28break

case 3: day=31break

case 4: day=30break

case 5: day=31break

case 6: day=30break

case 7: day=31break

case 8: day=31break

case 9: day=30break

case 10: day=31break

case 11: day=30break

case 12: day=31break

default:break

}

if(year%4==0&&year%100!=0||year%400==0&&month==2)

n=29

switch (month)

{

case 1: days+=0break

case 2: days+=31break

case 3: days+=59break

case 4: days+=90break

case 5: days+=120break

case 6: days+=151break

case 7: days+=181break

case 8: days+=212break

case 9: days+=243break

case 10: days+=274break

case 11: days+=304break

case 12: days+=334break

default:break

}

if(year%4==0&&year%100!=0||year%400==0&&month>2)

days+=1

m=days%7

printf("%d月\n",month),

printf(" 日 一 二 三 四 五 六\n")

for(i=1i<=mi++){k++

printf(" ")}

k=m

for(j=1j<=dayj++)

{

k++

printf("%3d",j)

if(k%7==0)

printf("\n")}

printf("\n")

}

}

都是同学啊!

最后两题米看到答案,我的方法不大对,就不给你了。

#include <math.h>

int primeNum(int p)

{

int i, q

/* Negative number is not a prime */

if (p <0)

return 0

q = (int) sqrt(p)

for (i = 2i <qi++)

if ((p % i) == 0)

return 0

/* No factor of p is found */

return 1

}

/*原理::

从2-sqrt(x)的数中看是否有可以整除的, 如果没有, 则为素数.

*/

只是个例子,不可照抄。

实验内容与要求:

[实验内容]

1、 通过本试验初步培养计算机逻辑解题能力。熟练掌握赋值语句和if语句的应用;掌握switch多路分支语句和if嵌套语句的使用

2、 将前期所学习到的基本数据类型、运算符和表达式等程序设计基础知识运用于具体的程序设计。

3、 进一步熟练掌握输入输出函数scanf, printf和getchar的使用,熟悉math.h中常用数学函数的使用方法

4、 掌握循环语句的应用方法。

5、 了解随机数生成函数。

[实验要求]

在规定期限独立完成实验内容

1、 提交实验报告(电子版)

2、 提交相应源程序文件(文件名 EX6_x姓名.c, 如EX6_1彭健.c)

3、 要求从简单到复杂,后面的要求均在前面的基础上进行修改,前六题,每题均需要保留各自的程序,六题以后,每题均在前一题基础上修改,保留最后一个程序即可(如做到第九题,则保留EX6_9姓名.c,做到第11题,则保留ex6_11姓名.c)

二、实验原理和设计方案:

1、函数头的选则,while循环语句,switch(case)语句,条件表达式,if else条件语句,自增运算符,设置复杂变量,输出随机 *** 作数。

2、 变量要有分数变量和等级变量,要有选择算法题数的变量和计算正确与否的变量,要有随机输出的两个 *** 作数变量和自己按运算符号输入结果的变量,最后还有判断是否要进行的变量字符。中间结果有选择运算符的switch()和分数等级的switch()和错题对题的自增和选择运算符计算的自增。

3、 问题的分析方法:先考虑设置整形变量和字符变量,考虑到要不断循环计算,选择用while语句来循环。在循环体中,将前面的输出提示运算符,和自行选择运算符、答案及输出随机 *** 作数完成。再用switch语句对选择的运算符进行判断,并用变量进行自增运算,计算出错题于对题个数和选择了那种运算符号。在循环体最后用if else语句来判断是否继续执行还是跳出循环。最后根据自增计算的结果和公式进行分数计算,并用switch语句来是想等级的制定。

三、源代码

#include

#include

#include

void main()

{

..........

}

四、试验结果和启发

因为输入y要继续循环,所以选择用while语句。在while语句中要结合前面的按提示计算,并嵌套switch语句并用条件表达式,来计算结果正确与否,计算的题型是什么。最后再用switch语句来完成分数等级的判断。

五、实验体会:

描述自己在编程或程序编译运行中遇到的难点和问题及解决的办法。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/7810989.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存