第一篇:c程序设计实验十三
C程序设计实验报告
实验名称:指针与数组学时安排:2课时 实验类别:上机操作型实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
一、实验目的
1. 理解指针、地址和数组间的关系;
2. 掌握通过指针操作数组元素的方法;
3. 掌握数组名作为参数的编程方式。
二、实验设备介绍
软件需求: Visual C++ 6.0或CFree3.5以上版本
硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。
三、实验内容
1. 定义函数void sort(int a[],int n)amain函数,并在其中调用sort函数。示例如下: After sorted the array is: -9 -6 1 2 4 5
2. 输入10个整数存储到数组a,再输入一个整数x,在数组a中查找x,若找到则输出相应的下标,否则显示“Not found!”。要求定义和调用函数search(int list[], int n, int x),在数组list中查找元素x,若找到则返回相应下标,否则返回-1。参数n代表数组list中元素的数量。
3. 改正程序error08_1.cpp中的错误。该程序实现功能,有n个整数,使前面各数顺序循环移动m个位置(m
要求先读该源程序,并理解其中的算法。然后把正确的代码(按规范缩进)写入报告,并以注释的方式说明错误原因。
注释示例如下:
int i;/*循环控制变量不能定义为double类型*/
提示:这是一个双重循环问题,内循环进行循环移位,外循环确定后移的位置。
4. 有n个人围成一圈,按顺序从1到n编号。从第一个人开始报数,报数3的人退出圈子,下一个人从1开始重新报数,报数3的人退出圈子。如此循环,直到留下最后一个人。问留下来的人的编号。要求用指针来操作数组。输入输出示例如下: 第 1 页 共 5 页
Last No. is: 4
提示:可以把编号存在一个数组中,报到3的人赋值为0表示退出。可以另外定义两个变量,一个用来记录退出的人数,到n-1即结束,另外一个用来报数。
四、程序清单
第一题
#include
void swap(int *,int*);
void sort(int a[],int n);
void main()
{
int i,n,a[8];
printf("Input n:");
scanf("%d",&n);
printf("Input array of %d integers: ",n);
for(i=0;i
scanf("%d",&a[i]);
sort(a,n);
printf("After sorted the array is:");
for(i=0;i
printf("%3d",a[i]);
printf(" ");
}
void sort(int a[],int n)
{
int i,j,index;
for(i=0;i
{
index=i;
for(j=i+1;j
if(a[j]
index=j;
swap(&a[i],&a[index]);
}
}
void swap(int *px,int *py)
{
int t;
t=*px;
*px=*py;
*py=t;
}
第二题
#include
int search(int list[],int n,int x);
void main()
{
int i,x,result,a[10];
printf("Enter a[0]-a[9]:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("Enter x:");
scanf("%d",&x);
result=search(a,10,x);
if(result==-1)
printf("Not found! ");
else
printf("The position is %d ",result);
return 0;
}
int search(int list[],int n,int x)
{
int i,result=-1;
for(i=0;i
if(list[i]==x)
{
result=i;
break;
}
return result;
}
第三题
#include
void mov(int *, int, int);
int main()
{
int m, n, i, a[80], *p;
printf("Input n, m:");
scanf("%d%d",&n,&m);
printf("Input array of 5 int55egers:");
for(p=a,i=0;i
scanf("%d",p++);// p本身可取地址
mov(a,n,m);
printf("After moved the array is:");
for(i=0;i
printf("%5d",a[i]);
printf(" ");
return 0;
}
void mov(int *x, int n, int m)
{
int i,j,t;
for(i=0;i
{
t=x[n-1];/*保存最后位置的元素值*/
for(j=n-1;j>0;j--)/*从倒数第二个元素开始,每个元素向后一个位置 */
x[j]=x[j-1];/* 调试时设置断点 */
x[0]=t;/*将保存的最后元素值放在最前面*/
}
}
第四题
#include
int main()
{
int i,j,n,t,count,a[10000];
printf("Input n:");
scanf("%d",&n);
for(i=0;i<=n;i++)
a[i]=i;
count=0;
i=1;
j=0;
while(count
{
if(i>n)
i=1;
if(a[i]!=0)
j++;
if(j==3)
{
t=i;
a[i]=0;
j=0;
count++;
}
i++;
}
printf("Last No. is:%d ",t);
return 0;
}
五、运行结果
六、实验心得
1、 C中数组名即是数组中首元素(下标为0的元素)的地址。注意:这不包括形参数组名,因为形参数组名并不占据实际的内存单元。它只是指向其它数组首地址的指针。
2、 数组名(比如a)代表数组首元素的地址,它是一个指针常量,在程序中不能改变它的值。例如:a++是非法的。。
3、 实参数实参数组名代表一个固定的地址,或者说是指针常量。但形参数组并不是一个固定的地址,而是作为指针变量,它的值是可以改变的。在函数调用开始时,它的值等于实参数组首元素的地址,在函数执行期间,它可以再被赋值。
4、指向数组的指针变量也可以带下标,如:p[i]与*(p+i)等价。*(p+i)与*(a+i)等价。
5、 当实参是数组名时,传递的是该数组首元素的地址,即是一个指针。
第二篇:C程序实验报告
工程学院 实 验 报 告
课 程 名 称: c程序设计 课 程 代 码: 8234510 学院(直属系): 年级/专业/班:
2010级汽电1班
学 生 姓 名: 学 号: 31201008030 实验总成绩: 任 课
教 师: 开 课 学 院: 工程学院 实验中心名称: 交通实验中心
西华大学实验报告(理工类)
开课学院及实验室:汽车学院机房(5d-215) 实验时间: 年 月 日
1、实验目的
2、实验设备、仪器及材料
3、实验内容
一般实验: 3.1实验方案设计与选择(设计性、创新性实验需写该项内容) 3.2实验原理及实验步骤(实验工作原理或实验的主要操作过程) 3.3实验记录(核心代码及调试过程)
注解:理工科实验需记录实验过程中的数据、图表、计算、现象观察等,实验过程中出现的问题; 其它如在计算机上进行的编程、仿真性或模拟性实验需记录程序核心代码以及程序在调式过程中出现的问题及解决方法;记录程序执行的结果。
上机实验:
3.1上机实验的内容及要求
3.2算法设计思想与算法实现步骤 3.3程序核心代码,程序调试过程中出现的问题及解决方法 3.4 程序运行的结果
4、实验总结
4.1实验结果分析及问题讨论 4.2实验总结心得体会
注解:实验总结的内容根据不同学科和类型实验要求不一样,一般理工科类的实验需要对实验结果进行分析,并且对实验过程中问题进行讨论;在计算机上进行的编程、仿真性或模拟性实验需要对上机实践结果进行分析,上机的心得体会及改进意见。其它实验应总结实验过程写出心得体会及改进意见。
1、实验目的 (1) 熟悉c语言的集成环境,了解菜单的使用方法。 (2) 掌握c语言程序上机的编辑、编译、连接、运行的基本步骤。 (3) 了解c语言程序的结构。
2、实验设备、仪器及材料 (1) 硬件环境
微型计算机(intel x86系列cpu)一台 (2) 软件环境 windows98/2000/xp操作系统 vc6.0集成开发环境
3、实验内容
3.1上机实验的内容及要求 (1) 熟悉vc中常用菜单项及对应快捷键的使用方法。 (2) 熟悉c语言程序上机的编辑、编译、连接、运行的基本步骤。 (3) 编程实现一个字符串的输出。 (4) 编程输出两个数的最大值。 (5) 计算由键盘输入的任意两个整数的积。 3.2算法设计思想与算法实现步骤 (1)编程实现一个字符串的输出为程序一,编程中,定义一个空函数后,直接由利用printf输出字符串。 (2)编程输出两个数的最大值为程序二,编程中,用scanf函数输入两个数,再用选择函数判定两数大小,最后用printf函数输出最大值。 (3)计算由键盘输入的任意两个整数的积为程序三,编程中,用scanf函数输入两数,再由乘积函数进行求积运算。
3.3程序核心代码,程序调试过程中出现的问题及解决方法
(1)程序核心代码
程序一:
#include void main() { printf (this is a c program,一定能学好!!. ); } 程序二:
#include void main() { float a,b,m; printf(请输入两个数a和b ); scanf(%f,%f,&a,&b); /*scanf 函数直接输入修饰符 (%f)*/ if (a>b) m=a; else m=b; printf(最大数为%7.4f ,m); /*printf 可以加a=;;;*/ } 程序三:
#include void main() { int a,b,c; printf(请输入两个整数a和b ); scanf(%d,%d,&a,&b); c=a*b; printf(c=%d ,c); } (2)程序调试过程中出现的问题及解决方法 程序二丢失“;” 程序三丢失“)”
当分别添加上丢失的符号后,问题解决,程序编辑成功。 3.4 程序运行的结果
程序一运行结果:
程序二运行结果:
程序三运行结果:
4、实验总结
4.1程序运行结果分析及思考题讨论
根据程序运行结果和编程之前的预期结果一致,说明编程成功。
对于程序的结构应该熟记在心,而且在vc6.0集成开发环境中不需要用户去进行连接的操作,这一步的操作电脑会自动完成。 4.2实验总结心得体会
对第一次c语言编程上机实验,对编程还有很多不是很熟悉的地方,需要在接下来的学习中进一步熟
练掌握操作。而且在以后的编程中对于printf,csanf函数的运用将会更多。在编程中还必须小心翼翼,如果出现编译错误,可参看界面下方的错误提示,这对于编程成功很有帮助。
1、实验目的篇二:c程序设计实验三实验报告
实 验 报 告
工学院 土木工程专业 09级 2011 至 2012 学年度 第 1 学期
学号:xxxxxx 姓名:xxxxxx 2011 年10月 08日 第3~4节 综合 楼 325教室 篇三:c语言实验报告1 实验名称:熟悉c程序的运行环境
一、 实验目的和要求
了解turbo c++ 3.0的基本操作方法,学会独立使用该系统
编辑、编译、连接和运行一个c程序
通过运行简单的c程序,初步了解c源程序的特点
二、 实验内容和原理
1. 输入并运行一个简单、正确的程序 # include void main( ) { printf (this is a c program ); } 2. 输入一个有错误的程序,修改错误,直到程序能正确运行,分析程序运行结果。 # include void main ( ) { int a, b, sum a=123; b=456; sum=a+b printf(sum is %d , sum); } 3. 输入并运行一个需要在运行时输入数据的程序,输入数据,观察运行结果。 # include void main( ) { int max (int x, int y); int a, b, c; scanf(%d, %d, &a, &b); c=max(a, b); printf(max=%d,c) ; } int max (int x, int y) { int z; z=y; if (x>y) z=x; return (z); }
三、 实验环境 1. 硬件:pc机;
2. 软件:windows操作系统、turboc++ 3.0 。
四、 算法描述及实验步骤 1. 内容1 (1)启动tc++3.0,新建一个c文件;
(2)输入程序1;
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功,再次保存文件;
(5)连接程序、运行程序,观察运行结果。 2. 内容2 (1)启动tc++3.0,新建一个c文件;
(2)输入程序2;
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;
(5)连接程序、运行程序,观察运行结果。 3. 内容3 (1)启动tc++3.0,新建一个c文件;
(2)输入程序2;
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;
(5)连接程序、运行程序;
(6)输入数据,观察运行结果。
五、 调试过程
1.输入后,按alt+f9编译,出现如下信息:
成功编译。
2.输入后,按alt+f9编译,出现如下信息:
经分析是由于int a, b, sum与sum=a+b俩句未加;导致。 3. 输入后,按alt+f9编译,出现如下信息:
经分析是由于int a, b, c句未加;导致。
修改后编译结果如下:
六、 实验结果
1. 2. 3.输入123,654运行结果如下:
输入1989,1988运行结果如下:
七、 总结
经过本次上机实验,我基本了解turbo c++ 3.0的操作方法,学会在该系统上编辑、编译、连接和运行一个c程序。同时也明白在编译过程中应留心一些细节问题(如一个语句结束要加“;”),也学会通过编译错误信息找出错误,并修正错误。
实验名称:数据类型、函数和表达式
八、 实验目的和要求
掌握c语言数据类型,熟悉如何定义整型、字符型和实型变量并赋值 掌握不同类型数据之间赋值的规律
学会使用c的有关算法运算符及表达式,特别是自加(++)和自减(--)运算符的使用 进一步熟悉c程序的编辑、编译、连接和运行的过程
九、 实验内容和原理
2. 输入并运行下面程序,分析运行结果。 # include void main( ) { char c1, c2; c1=a; c2=b; printf (%c%c, c1, c2) } 3. 输入并运行下面程序,分析运行结果。 # include void main ( ) { char c1=a,c2=b,c3=c,c4=101,c5=116; printf(a%c b%c c%c abc ,c1,c2,c3); printf( %c %c,c4,c5); } 4. 输入并运行下面程序,分析运行结果。 # include void main( ) { int a, b; unsigned c,d; long e,f; a=100; b= -100; e=50000; f=32767; c=a; d=b; printf(%d, %d , a, b); printf(%u, %u , a, b); printf(%u, %u , c, d); c=a=e; d=b=f; printf(%d, %d , a, b); printf(%u, %u , c, d); } 5. 输入并运行下面程序,分析运行结果。 # include void main( ) { int i,j,m,n; i=8; j=10;
m=++i; n=j++; printf(%d,%d,%d,%d,i,j,m,n); }
十、 实验环境 1. 硬件:pc机;
2. 软件:windows操作系统、turboc++ 3.0 。 十
一、 算法描述及实验步骤
(1)启动tc++3.0,新建一个c文件;
(2)输入程序;
(3)保存文件;
(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;
(5)连接程序、运行程序,观察分析运行结果。
十二、 调试过程 1. 经分析错误是由于printf (%c%c, c1, c2)后未加;导致。
修改后运行如下:
2.
成功运行 3. printf(%u, %u a, b);改成printf(%u, %u , a, b); 成功运行 4.
成功运行。
十
三、 实验结果 1. 2. 3. 4. 十
四、 总结篇四:c程序实验报告
《程序设计综合训练》
第一部分 设 计 报 告 专 业: 软件工程 班 级: 12软件1 学 号: 12144131 姓 名: 陈 雷 指导教师: 钱 进、吕 萍 成 计算机工程学院 2013年3月 目 录
(1) 题目名称、内容、来源(如2010年省计算机等级考试秋季上机试卷2)。
(2) 解题的基本思路,
(3) 设计方案,功能模块框图与程序流程图等。
(4) 算法设计:算法描述、实现方法、详细流程图等。
(5) 源代码:主要模块的代码与注释。
(6) 程序调试:调试过程与步骤,发现的问题,解决的办法等。
(7) 测试:运行程序,输入测试数据,判断是否达到预期目的。测试数据要有
典型意义,要注意临界值的选取,注意测试数据的广泛性和普适性。 第二部分
(1) 题目名称、内容。
(2) 解题的基本思路,
(3) 设计方案,功能模块框图与程序流程图等。
(4) 算法设计:算法描述、实现方法、详细流程图等。
(5) 程序调试:调试过程与步骤,发现的问题,解决的办法等。
(6) 测试:运行程序,输入测试数据,判断是否达到预期目的。测试数据要有
典型意义,要注意临界值的选取,注意测试数据的广泛性和普适性。
(7) 总结:收获与体会,有实际内容,忌空洞无物,忌千篇一律,400字左右。
(8) 附录:源代码(含注释)。
第一部分
2010秋03等级考试 1. 编写函数int noco(int n,int *a)。函数动能是验证是验证n的立方可表示为n个连续奇数之和,若找到这样的表示则将连续奇数按从小到大的顺序存放到a指向的数组中并且函数返回1,否则函数返回0。 2. 编写函数main。函数功能是声明数组a,分别用整数1~10及数组a作为实参调用函数noco,并将结果数据按以下屏幕输出所示形式输出到屏幕及文件myf2.out中。 #include int noco(int n,int *a) { int i=1,k=1,j=1,sum=0,m; } void main() { file *fp; int i,n,k,a[10]; fp=fopen(myf2.out,w); for(n=1;n<=10;n++) { k=noco(n,a); } fprintf(fp,my exam number is :11142116); if(k) {
printf(%d^3=,n);
} else {
printf(false); } fprintf(fp,false); fprintf(fp,%d^3=,n); for(i=0;i
} k=k-2; for(j=0;j
1. 编写函数long find_m(int n)。函数功能是查找满足以下条件的整数m:(1)m是 n的整数倍;(2)m的十进制表示中仅由0和1组成。函数返回找到的m的值。 2. 编写main 函数。函数功能是声明变量n和m,输入一个整数到n中(n<100), 用n作实参调用函数find_m,将n及找到的整数m输出到屏幕及文件myf2.out. #include long find_m(int n) { int flag1=1,flag2; } void main() { file *fp; int n; long m; fp=fopen(myf2.out,w ); long m1,m2,k; k=2; while(flag1) { flag2=1; } return m1; m1=m2=n*k; while(m2&&flag2) { if(m2%10!=0&&m2%10!=1) } if(m2==0) flag1=0; else k++; flag2=0; else m2=m2/10; } scanf(%d,&n); m=find_m(n); printf( n=%d m=%ld ,n,m); fprintf(fp, n=%d m=%ld ,n,m); fprintf(fp,my exam number is :11142116); fclose(fp); 2011年江苏省计算机等级考试春季上机试卷01 1. 编写函数void cresort(int a[][3],int n )。函数功能是根据a指向的二维数组中第
一列(列下标为0)和第二列(列下标为1)的值按如下规则生成第3列各元素的值,再以行为单位重排a数组各行元素的值,使得所有行按第3列元素从小到大有序。
第3列生成规则:
用数组a作为实参调用cresort函数,将a数组中数据输出到屏幕及文件myf2.out. #include stdio.h #define n 5 int isprime(int m) { int i; } void cresort(int a[][3],int n) { int i,j,k,m,c,t; for(i=0;i
switch(c) {
case 0:a[i][2]=1;break; case 2:a[i][2]=4;break; for(i=2;i<=m/2;i++) if(m%i==0) return 0; return 1;篇五:c程序设计实验报告
《c语言程序设计》实验报告
学号 不告诉你哦~ 班级 信管一班 姓名 你猜猜~哈哈
一、实验题目
一、编程实验
猜数问题:输入两个整数,并求这两个整数的和,输入所猜的结果,如果输入数比正确的结果要大,提示“猜大了”;如果输入数比正确的结果要小,提示“猜小了”;当猜对结果时提示“猜对了”,结束游戏(用函数调用方式编程)。
二、程序改错实验
输入一个数字 b,求sum=b+bb+bbb+„,改正下列程序中的错误。 #include “stdio.h” main() { int i,j; long int b,sum,temp; scanf(“%d”,&b); do { i++; for(j=0;j<=i;j++) temp+=(long int)pow(10,j-1)*b; sum+=temp; } while(i<=3) printf(“sum=%d”,sum); }
三、编程实验
编写两个矩阵相加减的程序,两矩阵的行列数均由用户输入(两矩阵的行列数要限制最大值),在屏幕上分行列打印出结果(矩阵元素为整型变量)。
解析:两个矩阵可以定义两个二维数组matrixl[m][n],matrix2[m][n]存放,用二重循环进行输入输出或实现对应元素的相加或相减运算,相加后矩阵元素存放在matrixl中,相减后矩阵元素存放在matrix2中(上机实验时输入矩阵的行数m=10, 矩阵的列数n=10)。
第三篇:《C语言程序设计》实验报告
指导教师学院专业班级学号姓名实验室
实验题目:
实验要求:
实验内容及步骤:
运行结果
心得体会:
第四篇:C语言程序设计实验安排
C语言实验指导
实验一 顺序结构程序设计(2学时)
一、实验目的
熟悉在VC运行环境下,编辑调试C语言程序的一般步骤。掌握顺序结构程序设计的基本思想和基本方法。
二、实验要求
1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。 2. 在VC运行环境下,编辑录入源程序。
3. 调试运行源程序, 注意观察调试运行过程中发现的错误及改正方法。 4. 掌握如何根据出错信息查找语法错误。
5. 最后提交带有注释的源程序文件(扩展名为.c)。 要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。
6. 源程序注释信息可以包括以下几方面内容:
⑴ 程序功能描述。
⑵ 程序版本号、创作日期。
⑶ 作者信息描述:班级、学号、姓名。
⑷ 问题分析描述。
⑸ 算法设计描述。
⑹ 关键语句注释说明。
⑺ 调试运行过程中出现的错误及改正方法。
⑻ 输入数据样例。
⑼ 输出数据样例。
三、实验内容
以下两题,任选其一解答。
你知道淄博到北京的地面距离是多少千米吗,淄博到纽约的地面距离又是多少千米呢?说不上来了吧。还是让我们编一个程序来计算一下吧。
1.已知地球的平均半径为6371千米,假设在地球的同一纬度上,有两个处于不同经度的城市A、B,编程序求出这两个城市之间的地面距离。
输入数据样例:例如,欲求北纬30度上东经10度到东经50度的距离,输入格式应为:30 10 50
参考测试数据:
输入:0 0 180 输出:20015.08
输入:30 0 90 输出:8397.7
2输入:60 0 45 输出:2453.20
2.地球的平均半径为6371千米,已知地球上两个城市A、B的经度和纬度,编程序求出这两个城市之间的地面距离。
提示:球面上两点之间的最短距离,等于过这两点以球心为圆心的圆上,这两点之间劣弧的长度。(即这两点与球心之间的连线构成的夹角所对球面劣弧的长度)。
建议你自己一步步推导出公式,而不要照搬网上的现成公式。
四、常见问题
疑问1:这分明是两道数学题啊,能否将数学公式提供给我们呢,我们的主要任务不是编写程序吗?
答:建立数学模型也是编程序的一部分。学会分析解决现实中遇到的问题,是我们学习的重要目标。
疑问2:这个问题好像属于球面几何的范畴,用平面几何可以求解吗?
答:这个问题的确涉及到球面几何,但是也的确可以利用投影以及平面几何方法来求解。
实验二 选择结构程序设计(2学时)
一、 实验目的
掌握选择结构程序设计的一般方法及选择结构程序的调试方法。
二、实验要求
1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。 2. 在VC运行环境下,编辑录入源程序。
3. 调试运行源程序, 注意观察调试运行过程中发现的错误及改正方法。 4. 掌握如何根据出错信息查找语法错误。
5. 最后提交带有充分注释的源程序文件(扩展名为.c)。 要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。
6. 源程序注释信息可以包括以下几方面内容:
⑴程序功能描述。
⑵程序版本号、创作日期。
⑶作者信息描述:班级、学号、姓名。
⑷问题分析描述。
⑸算法设计描述。
⑹关键语句注释说明。
⑺调试运行过程中出现的错误及改正方法。
⑻输入数据样例。
⑼输出数据样例。
三、实验内容
你知道你生日那天是星期几吗,还有你知道你爸爸生日那天是星期几吗?你可能会说:可以查万年历啊。那么,不查万年历你能计算出来吗?
以下两题,任选其一解答。
1.编程序实现:输入一个年份y,求出从公元1年1月1日到y年1月1日,总共有多少天,并求出y年的1月1日是星期几。
2.编程序实现:输入任意一个日期的年、月、日的值,求出从公元1年1月1日到这一天总共有多少天,并求出这一天是星期几。
四、常见问题
疑问1:闰年的规律是不是四年一闰?
答:四年一闰是儒略历(儒略也就是凯撒大帝)的置闰规则。我们现在使用的是格里高利历,置闰规则是每400年97闰。
疑问2:公元1年1月1日是星期几呢?
答:星期一。
疑问3:据说从儒略历改为格里高利历时,将1582年10月4日的下一天定为格里高利历的10月15日,中间销去了10天,这会不会影响星期几的计算?
答:这个调整是对儒略历误差的纠正,并不会影响总天数和星期几的计算。
疑问4:这里计算总天数,好像要用到循环程序吧?
答:其实根据闰年的置闰规则,不使用循环也可以计算出来总天数。当然,你想使用循环编写该程序也是可以的。
实验三 循环结构程序设计(2学时)
一、实验目的
掌握循环结构程序设计的一般方法及循环结构程序的调试方法。
二、实验要求
1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。 2. 在VC运行环境下,编辑录入源程序。
3. 调试运行源程序, 注意观察调试运行过程中发现的错误及改正方法。 4. 掌握如何根据出错信息查找语法错误。
5. 最后提交带有充分注释的源程序文件(扩展名为.c)。 要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。
6. 源程序注释信息可以包括以下几方面内容:
⑴程序功能描述。
⑵程序版本号、创作日期。
⑶作者信息描述:班级、学号、姓名。
⑷问题分析描述。
⑸算法设计描述。
⑹关键语句注释说明。
⑺调试运行过程中出现的错误及改正方法。
⑻输入数据样例。
⑼输出数据样例。
三、实验内容
以下两题,任选其一解答。
1. 海萍夫妇为了彻底告别“蜗居”生活,痛下决心贷款60万元购买了一套三居室 。若贷款月利率为0.5%,还款期限为120个月,还款方式为等额本金还款法(即贷款期限内每期以相等的额度偿还贷款本金,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。
2. 若还款方式采用等额本息还款法(即贷款期限内每期以相等的额度偿还贷款本息,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。
四、常见问题
疑问1:等额本息还款法每个月的还款额怎么计算,应该有个公式吧,要不然怎么计算出来每个月应还的利息与本金?
答:的确有一个计算公式。当然你可以自己推导出来(这样你会很有成就感!),要不然就从网上搜索出来。
实验四 循环程序综合应用(4学时)
一、实验目的:
掌握循环结构程序设计的一般方法及循环结构程序的调试方法,能够综合运用顺序、选择和循环结构解决一般难度的实际应用问题。
二、实验要求
1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。 2. 在VC运行环境下,编辑录入源程序。
3. 调试运行源程序, 注意观察调试运行过程中发现的错误及改正方法。 4. 掌握如何根据出错信息查找语法错误。
5. 最后提交带有充分注释的源程序文件(扩展名为.c)。 要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。
6. 源程序注释信息可以包括以下几方面内容:
⑴程序功能描述。
⑵程序版本号、创作日期。
⑶作者信息描述:班级、学号、姓名。
⑷问题分析描述。
⑸算法设计描述。
⑹关键语句注释说明。
⑺调试运行过程中出现的错误及改正方法。
⑻输入数据样例。
⑼输出数据样例。
三、实验内容
以下两题,任选其一解答。
1.编程序实现如下功能:输入任意一个年份和月份,按以下格式输出该月份的公历日历。
要求由程序计算出来该月份的1日是星期几,并用循环控制打印。 打印样例如下:
2012年日历
==========
9月
--------- 日 一 二 三 四 五 六
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 -------------------------
2.编程序实现如下功能:输入任意一个年份,按以下格式输出该年份全年的公历日历。 要求由程序计算出来每个月份的1日是星期几,并用循环控制打印。
四、常见问题
疑问1:如何控制某个月1日的打印位置?
答:先由程序计算出来该月份的1日是星期几,然后控制在打印“1”之前打印相应个数的空格。
疑问2:如何控制每周和每月的打印换行?
答:可以根据当前这一天的打印位置控制每周的打印换行,并根据该月份的天数控制每月的打印换行。
实验五 字符串处理综合应用(4学时)
一、实验目的
掌握字符串处理的一般方法及字符串处理应用程序的调试方法,能够综合运用选择、循环结构和数组、指针解决一般难度的实际应用问题。
二、实验要求
1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。 2. 在VC运行环境下,编辑录入源程序。
3. 调试运行源程序, 注意观察调试运行过程中发现的错误及改正方法。 4. 掌握如何根据出错信息查找语法错误。
5. 最后提交带有充分注释的源程序文件(扩展名为.c)。 要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。
6. 源程序注释信息可以包括以下几方面内容: ⑴程序功能描述。
⑵程序版本号、创作日期。
⑶作者信息描述:班级、学号、姓名。
⑷问题分析描述。
⑸算法设计描述。
⑹关键语句注释说明。
⑺调试运行过程中出现的错误及改正方法。
⑻输入数据样例。
⑼输出数据样例。
三、实验内容
以下两题,任选其一解答。
1.编程实现,输入一个整数的小写金额值(即不考虑角和分),转化为大写金额值并输出。先实现基本功能,如输入1002300,可以输出“壹佰零拾零万贰仟叁佰零拾零元整”。
2.编程实现,输入一个小写金额值,转化为大写金额值输出。要求实现相对完善的功能,如输入1002300.90,应该输出“壹佰万贰仟叁佰元零玖角整”。
四、常见问题
疑问1:如何才能分离出整数中的每一位数字?
答:可以利用整数的求余数和除法运算实现数字的分离,同时将分离出的数字存入到一个事先定义好的数组中,每个数组元素只存储一位数字。
疑问2:若不能确定整数的实际位数,如何控制分离过程?
答:可以通过循环控制数字的分离过程,每循环一次分离出来当前的最末一位,然后去掉最末一位,直至分离出所有的位。
疑问3:如何控制给某位数字添加合适的数量单位,如万、仟、佰、拾、元?
答:可以根据该数字在原小写数值中的位置进行控制,如第0位单位为“元”,第1位单位为“拾”,依此类推。
实验六 文件应用程序设计(2学时)
一、实验目的
掌握文件应用程序设计的一般方法及其调试方法。
二、实验要求
1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。 2. 在VC运行环境下,编辑录入源程序。
3. 调试运行源程序, 注意观察调试运行过程中发现的错误及改正方法。 4. 掌握如何根据出错信息查找语法错误。
5. 最后提交带有充分注释的源程序文件(扩展名为.c)。 要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。
6. 源程序注释信息可以包括以下几方面内容:
⑴程序功能描述。
⑵程序版本号、创作日期。
⑶作者信息描述:班级、学号、姓名。
⑷问题分析描述。
⑸算法设计描述。
⑹关键语句注释说明。
⑺调试运行过程中出现的错误及改正方法。
⑻输入数据样例。
⑼输出数据样例。
三、实验内容
以下两题,任选其一解答。
1. 海萍夫妇为了彻底告别“蜗居”生活,痛下决心贷款60万元购买了一套三居室 。若贷款月利率为0.5%,还款期限为120个月,还款方式为等额本金还款法(即贷款期限内每期以相等的额度偿还贷款本金,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。要求将输出结果写入到数据文件中。
2. 若还款方式采用等额本息还款法(即贷款期限内每期以相等的额度偿还贷款本息,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。要求将输出结果写入到数据文件中。
第五篇:C语言程序设计实验十——指针
【实验1】
实验题目:
1、下列代码片段哪里有错误?
char var1,ptr1;
var1 = „x‟;
ptr1 = &var1;
2、设有如下定义:
Double var1, *ptr1, *ptr2;
Float* ptr3;
Int var2, *var4;
那么,var1, *ptr1, ptr2,*ptr2, ptr3,* ptr3,var2, var4,*var4个属于哪种数据类型?
3、下列代码片段在哪里有错误?
Char c = ‟ A ‟ ;
Char * p;
p = c;或*p=‟A‟;
4、下列代码片段的输出结果是什么?
charvar1 = „ S „;
charvar2 = „ X ‟;
char*ptr1, *ptr2;
ptr1 = &var1;
ptr2 = &var2;
*ptr2 = *ptr1;
printf ( “%c %c ”, *ptr1, var2 );
【实验2】
实验题目:输入3个整数,按由小到大的顺序输出。
【实验3】
实验题目:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
实验要求:写3个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。
【实验4】输入年和天数,输出对应的年、月、日。
例如:输入2000和61,输出2000-3-1。
要求:都用指针实现。