一、实验目的
熟悉在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语句来完成分数等级的判断。
五、实验体会:
描述自己在编程或程序编译运行中遇到的难点和问题及解决的办法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)