文档视界 最新最全的文档下载
当前位置:文档视界 › C语言实验六

C语言实验六

C语言实验六
C语言实验六

姓名李彤班级0615122 学号061612126 实验日期2014年12月课程名称C语言程序设计指导教师赵毅成绩

实验六数组

一、实验目的

(一)一维数组

1、一维数组的定义

格式:类型标识符数组名[常量表达式]

例如:int a[10]定义了10个整数的数组a,下标从0到9,数组元素为a[0],a[1],…,a[9];

注意:下标从0 开始,到9结束,不可越界。

2、数组元素的初始化

(1)定义的时候初始化:

int a[10]={1,2,3,4,5,6,7,8,9,10}

(2)通过键盘输入初始化:

for(i=0;i<10;i++)

scanf(“%d”,&a[i]);

(3)通过程序初始化为特定值:

for(i=0;i<10;i++)

a[i]=0;

3、数组的处理

因为数组元素具有相同的数组名,不同的只是下标,一般采用for循环方式进行处理。(1)查找数组元素中的最小元素

min=a[0];

for(i=0;i<10;i++)

if(a[i]

min=a[i];

(2)查找数组中最小的元素及下标:

index=0;

for(i=1;i<10;i++)

姓名李彤班级0615122 学号061612126 实验日期2014年12月

课程名称C语言程序设计指导教师赵毅成绩

if(a[i]

index=i;

(3)查找数组元素中最小的元素及下标,并将其与第一个元素交换

index=0;

for(i=1;i<10;i++)

if(a[i]

index=i;

t=a[0]; a[0]=a[index]; a[index]=t;

(二)字符串及二维数组

1、一维字符数组和字符串的区别

字符串常量是用双引号括起来的一串字符,通常用一维字符数组来存放并自动添加’\0’作为字符串的结束标记。

字符数组与一般数组的处理方法不同在于:程序是对字符串的结束标记’\0’进行判断来结束对该字符数组的处理,而与字符的个数(即字符串长度)无关。因此,编写字符数组的处理程序常被要求为能处理不同字符串长度的通用程序。

2、字符串的输入(以回车结束的字符串)

Char ch[80];

I=0;

While( ch[i]=getchar ()!=’\n’)

i++;

ch[i]=’\0’;

3、字符串的循环判断条件

for ( i=0;ch[i]!’\0’;i++)

putchar(ch[i]);

4、二维数组的处理

因为二维数组存在2个下标,一般是通过嵌套循环来处理。

Int a[6][6]

姓名李彤班级0615122 学号061612126 实验日期2014年12月

课程名称C语言程序设计指导教师赵毅成绩

for (i=0;i<6;i++)

for( j=0;j<6;j++)

scanf( “%d”,&a[i][j]);

二、实验内容

6.1.1输入一个正整数n(1

#include

int main(void)

{

int a[10],i,n,count;

float sum,avg;

printf("Enter n: ");

scanf("%d",&n);

printf("Enter %d intergers: ",n);

for(i=0;i

scanf("%d",&a[i]);

sum=0;

count=0;

for(i=0;i

if((i+1)%2==0)

{

sum=sum+a[i];

count++;

}

avg=sum/count;

printf("avg=%.2f\n",avg);

printf("\n");

}

6.1.2

输入一个正整数n(1<=n<=10),再输入n个整数,输出最小值及下标(设最小值唯一,下标从0开始)。#include

int main(void)

{

int i,n,min,index ;

int a[10];

printf("Enter n: ");

scanf("%d",&n);

printf("Enter %d intergers: ",n);

姓名李彤班级0615122 学号061612126 实验日期2014年12月

课程名称C语言程序设计指导教师赵毅成绩

for(i=0;i

scanf("%d",&a[i]);

min=a[0];

index=0;

for(i=1;i

if(min>a[i])

{

min=a[i];

index=i;

}

printf("min=%d,index=%d\n",min,index);

}

6.1.3

输入一个正整数n(1<=n<=10),再输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。

#include

int main(void)

{

int i,n,min,max,index ,indexx,t,h;

int a[10];

printf("Enter n: ");

scanf("%d",&n);

printf("Enter %d intergers: ",n);

for(i=0;i

scanf("%d",&a[i]);

min=a[0];

max=a[0];

index=0;

indexx=0;

for(i=1;i

if(min>a[i])

{

min=a[i];

index=i;

t=a[0]; a[0]=a[index]; a[index]=t;

}

if(max

{

max=a[i];

indexx=i;

h=a[n-1];a[n-1]=a[indexx];a[indexx]=h;

}

姓名李彤班级0615122 学号061612126 实验日期2014年12月课程名称C语言程序设计指导教师赵毅成绩

for(i=0;i<10;i++)

printf("%d",a[i]);

return 0;

}

6.1.4

输入一个正整数n(1

#include

int main(void)

{

int n,i,j,t;

int a[10];

printf("Enter n: ");

scanf("%d",&n);

printf("Enter %d intergers: ",n);

for(i=0;i

scanf("%d",&a[i]);

j=n-1;

for(i=0;i

{

t=a[i];

a[i]=a[j];

a[j]=t;

j--;

}

for(i=0;i

printf("%d ",a[i]);

}

6.1.5

在键盘上输入n个整数,将他们按照从大到小的次序排序后输出。要求采用冒泡排序法。

#include

int main(void)

{

int a[10],i,n,j,h;

printf("Enter n: ");

scanf("%d",&n);

printf("Enter %d intergers: ",n);

for(i=0;i

scanf("%d",&a[i]);

for(j=0;j

{

for (i=0;i

姓名李彤班级0615122 学号061612126 实验日期2014年12月课程名称C语言程序设计指导教师赵毅成绩

if (a[i]

{

h=a[i];

a[i]=a[i+1];

a[i+1]=h;

}

}

for(i=0;i

printf("%d ",a[i]);

}

6.1.6

已有一个已按递增排序的数组,输入一个整数x,要求按原来排序的规律将他插入数组中。

#include

void main()

{

int a[10],i,n,j,h,x,t;

printf("请输入整数的个数:");

scanf("%d",&n);

printf("请输入%d个正整数:\n",n);

for(i=0;i

scanf("%d",&a[i]);

for(j=0;j

{

for (i=0;i

if (a[i]>a[i+1])

{

h=a[i];

a[i]=a[i+1];

a[i+1]=h;

}

}

printf("请输入要插入的整数x:");

scanf("%d",&x);

for(i=0;i

if(a[i]>x)

{

t=i;

break;

}

for(i=n-1;i>=t;i--)

a[i+1]=a[i];

a[t]=x;

姓名李彤班级0615122 学号061612126 实验日期2014年12月

课程名称C语言程序设计指导教师赵毅成绩

for(i=0;i

printf("%d ",a[i]);

}

6.2.1

输入一个以回车结束的字符串(少于80个字符),统计其中的大写字母的个数

6.2.2

输入一个字符,再输入一个以回车结束的字符串(少于80个字符),在字符串中查找该字符。如果找到,则输出该字符在字符串中所对应的最大下标(下标从0开始)否则输出“Not found”

6.2.3

输入一串字符,直到读到句号为止,记录下这串字符中是字母或是数字的所有字符,然后把这些字符按与输入相反的次序输出。

6.2.4

输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面的规则进行加密处理,其余字符不变,输出加密后的字符串。

加密规则:A<—>Z, B<—>Y, C<—>X, D<—>W…

6.2.5

输入一个正整数n(1<=n<=6), 再读入n阶矩阵a,计算该矩阵主对角线和副对角线的所有元素之和(主对角线为从矩阵的左上角至右下角的连线,副对角线为从矩阵的右上角至左下角的连线)。

6.2.6

读入一个正整数n(1<=n<=6),再读入n阶矩阵a,如果a是上三角矩阵,输出“YES”否则暑促胡“NO”(上三角矩阵,即主对角线以下的元素都是0)

C语言实验报告合集

《C语言程序设计》实验报告 专业:班级:学号:学生姓名:实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验一熟悉VC++环境 二、实验目的 1. 熟悉C程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h" int main() {int a,b,sum; a=2; b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum); return 0; } 运行结果为:

2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

《C语言程序设计》实验报告 专业:班级:学号:学生姓名: 实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验二顺序结构程序设计 二、实验目的 (1)掌握C语言数据类型以及变量的声明。 (2)掌握C语言的赋值运算符、赋值表达式、赋值语句。 (3)掌握C语言的整型和字符型的混合运算。 (4)掌握C语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f,请编写程序把它转换为摄氏温度c。 已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3.将字符串“China”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母 替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进

C语言实验

C语言上机指导指导教师:李辉李晓丽 东北电力大学 电气工程学院 2006年3月

实验2数据类型、运算符和表达式 1.实验目的 掌握C语言数据类型,熟悉如何定义一个整形、字符型和实型的变量,以及对他们赋值的方法。 掌握不同的类型数据之间赋值的规律。 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 进一步熟悉C程序的编辑、编译、连接和运行的过程。 2.实验内容和步骤 (2).在此基础上增加一个语句: printf(“%d%d\n”,c1,c2); 再运行,并分析结果。 (3).再将第2行改为: int c1,c2; 再使之运行,并观察结果。 (4).再将第3、4行改为: c1 = a; /* 不用单撇号*/ c2 = b; 再使之运行,分析其运行结果。

(5).再将第3、4行改为: c1 = ”a”; /* 用双撇号*/ c2 = ”b”; 再使之运行,分析其运行结果。 (6).再将第3、4行改为: c1 = 300; /* 用大于255的整数*/ c2 = 400; 再使之运行,分析其运行结果。 输入并运行教材第3章习题3.6给出的程序 (1).将一个负整数赋给一个无符号的变量,会得到什麽结果。画出它们在内存中的表示形式。 (2).将一个大于32765的长整数赋给整形变量,会得到什麽结果。画出它们在内存中的表示形式。 (3).将一个长整数赋给无符号的变量,会得到什麽结果(分别考虑该长整数的值大于或等于65535 以及小于65535 的情况)。画出它们在内存中的表示形式。 同学们可以改变程序中各变量的值,以便比较。例如:a = 65580, b = -40000, e = 65535, f = 65580。 输入习题3.10

C语言实验报告

《C语言程序设计实训1》报告 设计题目:基于数组的学生信息管理系统学院名称:信息科学技术学院

专业:计算机科学与技术 班级: 姓名:学号 指导教师: 提交日期: 2014年12月22日 一、实验内容 编写并调试程序,实现学校各专业班级学生信息的管理。10个学生的信息存储在文件中。在头文件中定义学生信息的结构体类型,包括: 学号、姓名、专业、班级、3门成绩;和符号常量N(学生数)。(同一班 级的学生可以属于不同的专业,同一专业的学生可以属于不同的班级)

二、实验要求 (1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择, 调用相应的函数。 STU student[N]; 函数 #include "" void main() { int i,n,id,num,m,sub,corse;将从文件中读取10个人的信\n"); printf("\n2.您将从文件中随机读取第n(0<=n<=9)个学生的信息\n") printf("\n3.您将根据某一班级某一专业总分超过多少进行查找\n"); printf("\n4.您将求某一课程分数最高的学生序号的下标\n"); printf("\n5.您将对平均成绩由低到高进行简单选择排序法\n ");

printf("\n6.您将对某一个班的平均成绩由低到高进行起泡排序法\n"); printf("\n7.您将对某门专业的学生的某门课程成绩由低到高进行直接插入排序法\n"); printf("\n8.您将把学生信息存入文件\n"); scanf("%d",&id); getchar(); switch(id){ case 1: { printf("\n从文件中读取信息\n"); Input(students,sizeof(students)/sizeof(STU));Sort_select 函数 #include "" void Sort_select(STU * p) { int i,j,k; float sum,ave[N],t; STU tem; for(i=0;i

c语言实验六

常熟理工学院 《C语言程序设计》实验指导与报告书 ______学年第____ 学期 专业: ___________________________________________ 学号: ___________________________________________ 姓名: ___________________________________________ 实验地点:___________________________________________ 指导教师:___________________________________________ 计算机科学与工程学院 2014

实验7 数组程序设计(1) 7.1 实验目的 1.掌握一维数组的定义及初始化方法。 2.掌握用循环语句对一维数组进行处理的方法。 3.熟悉对数组元素进行处理的常规算法(如排序、插入、删除及查找等)。 7.2 示例程序 【实验7.1】本程序的功能是:取出一个十进制正整数中的所有偶数数字,用这些数字构成一个最大数。 程序代码: #include #define N 10 int main() { int i,j,k=0,t,d,a[N]; long n,m=0; printf("Please enter a long integer."); scanf("%ld",&n); while(n>0) /* 依次取出每位数,并将偶数存入数组*/ { t=n%10; /* 取出一位数*/ if(t%2==0) /* 判断是否偶数*/ a[k++]=t; /* 将偶数存入数组*/ n/=10; /* 为取下一位数做准备*/ } for(i=0;ia[d]) /* 后续元素依次与起始元素进行比较*/ d=j; /* 记录比起始元素大的元素的下标*/ if(d!=i) /* 一轮比较后判断记录的下标是否发生了变化*/ { t=a[d];a[d]=a[i];a[i]=t;} /* 若发生了变化,则交换元素值*/ } for(i=0;i

c语言实验报告

C语言实验报告 说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。 实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。 (2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 三、程序调试与问题解决: (1)输人并运行下面的程序 #include void main() { char c1,c2; c1='a'; c2='b'; printf("%c %c\n",c1,c2); } ○1运行此程序。 ○2在上面printf语句的下面再增加一个printf语句。

printf("%d %d\n",c1,c2); 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。 a,b没有定义,编译报错。 ○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。 以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include main () { char c1='a',c2='b',c3='c',c4='\101',c5='\116';

华北水利水电大学C语言实验报告(六)

华北水院高级语言程序设计(C语言)实验报告(六) --学年第学期 级专业:学号:姓名:……………………………………………………………………………………………… 一、实验题目:指针 二、实验目的:(略) 三、实验内容: 1. 程序验证(略) 2.程序设计 1)分别求出数组中所有3的倍数之和以及5的倍数之和。形参n给了数组中数据的个数,利用指针three返回3的倍数之和,利用指针five返回5的倍数之和。例如:数组中的值依次为:1,5,9,2,3,15,11,6,10;则利用指针three返回3的倍数之和33;利用指针five返回5的倍数之和30。请在下面空白处完善这一函数的功能,并且调试运行出结果。 源代码:运行结果: #include #define N 20 void fun(int *a,int n,int *three,int *five) { int i; *three=0;*five=0; for(i=0;i

C语言实验报告

实验一进制转换一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。

五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制 的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n");

} else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c;

c语言实验报告

丽水学院计算机实验报告

丽水学院计算机实验报告 一、实验目的 1.熟悉Visual C++和C-Free等集成环境,掌握运行一个C程序的基本步骤,包括编辑、编译、连接和运行。 2.掌握算术表达式和赋值表达式的使用。 3.掌握基本输入、输出函数的使用。 4.能够编程实现简单的数据处理。 二、实验环境 硬件:Pentium以上的计算机。 软件:Windows XP操作系统、Visual C++和C-Free等集成环境。 三、实验内容和结果 1.编程题1 在屏幕上显示一个短句“What is a computer?” 思考: (1)如何在屏幕上显示你自己的学号,姓名和班级? (2)如何在屏幕上显示数字、英文字母和汉字等信息?例如:“你在机房吗?” 编程题1源程序: #include<> void main() { printf("What is a computer?\n");

} 程序运行结果: What is a computer? 思考题(1): #include<> void main() { printf(",小王,班级\n"); } 思考题(2): #include<> void main() { printf("英文字母abcdefgABCDEFG\n"); printf("汉字:哇哈哈啊哈和\n"); } 2.编程题2 在屏幕上显示下列图形。 * * * * * * * * * *

思考:如何在屏幕上显示下列图形? A A A A 编程题2源程序: #include<> void main() { int i,j; for(j=1;j<5;j++) { for(i=5;i>j;i--) printf("*"); printf("\n"); } } 程序运行结果: * * * * * * * * * * 思考题:

C语言实验6(附参考答案)

实验6:运算符与表达式(5)实验目的: 1、熟悉字符的输入输出和格式化的输出,了解基本规则。 2、进一步熟悉C语言程序的编辑、编译、连接和运行的方法。 实验内容: 1、 getchar函数的作用是从终端输入____1______个字符。 2、如果从键盘输入字符’a’并按回车键,请写出以下程序运 行效果_____a_____。 main() { putchar(getchar()); } 3、以下程序的输出结果为 main() { char c=‘x’; printf(“c:dec=%d,oct=%o,ASCII=%c\n”,c,c,c); } 4、以下程序的输出结果为。 main() { int x=1,y=2;

printf(“x=%d y=%d *sum*=%d\n”,x,y,x+y); printf(“10 Squared is:%d\n”,10*10); } 5、以下程序的输出结果为____________________。 #include main() { float a=123.456; double b=8765.4567; printf(“(1) %f\n”,a); printf(“(2) %14.3f\n”,a); printf(“(3) %6.4f\n”,a); printf(“(4) %lf\n”,b); printf(“(5) %14.3lf\n”,b); printf(“(6) %8.4lf\n”,b); printf(“(7) %.4f\n”,b); } 二、程序设计题

1、若a=3,b=4,c=5,x=1.2,y=2.4,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 要求输出的结果如下:□表示空格 a=□3□□b=□4□□c=□5 x=1.200000,y=2.400000,z=-3.600000 x+y=□3.60□□y+z=-1.20□□z+x=-2.40 u=□51274□□n=□□□128765 c1=’a’□or□97(ASCII) c2=’B’□or□98(ASCII) 2、假定有:int a=1,b=2,设计一个程序,将变量a和b的值互换并且输出来。 3、已知变量a=23. 4、b=54.33、c=434.33,求它们的平均值。并按如下形式输出: average of **、** and ** is **.** 。

C语言实验报告 C

实验编号:05四川师大实验报告2016年月日 计算机科学学院级06班实验名称:函数_ 姓名:仁青拉初_______学号:2014110637指导老师:_刘洪_实验成绩:_____ 实验五函数实验 (验证性综合性实验4学时) 1、目的要求: (1)学习函数的编程思想,编写一个包括3~4个函数的程序。 (2)掌握函数中参数传递的两种方式和函数的相互调用。 (3)编写实验报告。 2、实验内容(参考实验指导书): (1)写一个函数int digit(int n,int k),它返回数n的从右向左的第k个十进数字值。例如,函数调用digit(1234,2)将返回值3。 (2)写一个函数int isprime(int n),当n是质数时,函数返回非零值;当n是合数时,函数返回零值。 (3)写一个函数reverse(char s[]),将字符串s[]中的字符串倒序输出。试分别用递归和非递归两种形式编写。 (4)写一个主函数输入测试数据(自己指定),并调用上述函数,检查函数功能的正确性。(5)一个数如果从左到右和从右到左读,数字是相同的,则称这个数字为回文数,比如898、1221、15651都是回文数。求:既是回文数又是质数的5位十进制数有多少个?要求:回文判断和质数判断都需要通过子函数实现,输出的时候要求5个数字一行。 (5)在n个已排好序(设为从小到大)的数据(数或字符串)中查找某一个数据,如果找到了,就指出其在n个数中的位置;否则给出无该数据的信息。请用递归的方法实现二分查找来实现这一查找过程。 提示:采用二分法求解本问题的基本思路是:设数列为a1,a2,…,a n,被查找的数为x,则查找首先对a m(m=(n+1)/2)进行,于是得到三种情形。 若x>a m,则x只可能在区间[a m+1,a n] 若x

C语言实验报告六

数学与软件科学学院实验报告 学期:2013至_2014 第_ 1 学期时间:2013年12月07日 课程名称:程序设计基础教程-C语言专业:数学与应用数学 2012级1班 实验编号:06实验项目:基于函数的模块化程序设计 指导教师_ 姓名:学号:实验成绩:良+ 一、实验目的及要求 (1)了解和掌握C语言环境下模块化程序设计的基础----基于函数模块的程序设计技术; (2) 复习C语言程序的基本结构特点,了解基于函数模块的程序模块及其调用关系、过程; (3) 函数的声明、定义、使用方法; (4) 对各种变量属性的使用方法; (5) 对C语言中常用的预编译语句的基本掌握。 二、实验内容(第1题任选其两个小题,第2题和第3题必做) 1.函数的声明、定义和使用方法。具体实例如下: (1) 编写一个在屏幕上画一条正弦曲线的函数; (2) 编写一个函数,它可以求出给定数的所有因子,如下形式显示其结果: 72=2*2*2*3*3; (3) 分别写出一个求N个数的最大公约数和最小公倍数的递归函数; (4) 试编制n碟片hanoi塔的问题求解函数,并利用它求解4个盘片的结果; (5) 试编写求n!的函数,并求n=7的结果。 具体要求如下: (1) 编写程序通过调试获得正确结果; (2) 分析函数的声明、定义和使用方法; (3) 分别分析函数调用时的参数传值调用方法。 2.有关变量的属性实验(静态、动态、全局、局部等方面)。具体实例如下: (1) 仔细分析以下程序的执行结果,然后上机运行如下程序段,并对各个 变量的属性及其使用结果进行比较分析: int main(void) { /******(a)******/ int nX=1; {/******(b)******/ void prt(void); int nX=3;

c语言实验答案

n"); printf("The first number:"); scanf("%d",&a); printf("The second number"); scanf("%d",&b); printf("Results as follows:\n"); printf("%d+%d=%d\n",a,b,a+b); printf("%d-%d=%d\n",a,b,a-b); printf("%d*%d=%d\n",a,b,a*b); printf("%d+%d=%f\n",a,b,*a/b); .+1/n!的值。 #include<> void main() { int n,p=1,i; float sum=0; printf("please input n:"); scanf("%d",&n); for(i=1;i<=n;i++) { p=p*i; sum+=p; } printf("sum=%f\n",sum); } .14 p=j; switch(p) umber); for(j=0;j<3;j++) printf("%",stu[i].score[j]); printf(" ave=%.2f\n",average(stu[i]));umber); printf("score:"); for(j=0;j<3;j++) scanf("%f",&(stu[i].score[j])); } } void main() { struct student stu[3]; //定义结构体数组 input(stu); //数组名做参数,传递的是地址 output(stu); } //静态链表的建立,有三个学生,包括学号(sno char(8)),姓名(sname char(20)),分数(grade float[]), //定义结构体类型数组存学生信息,使用链表所有学生,实现链表的输入输出。 //静态的书上有原题目,我写成动态的了,用子函数的方式实现 #include <> #include<> #include <> struct stu //定义全局结构体 { char sno[8]; char sname[20]; float grade; struct stu *next; } ; //////////////////////////////////////////////////////// void main( ) { struct stu *creat(struct stu *); void print(struct stu*); struct stu *head; head=NULL; head=creat(head); print(head); } ///////////////////////////////////////////////////////// struct stu *creat(struct stu*head) //建立链表 { struct stu *p,*q; q=(struct stu*)malloc(sizeof(struct stu)); //分配空间 printf("please input sno:"); scanf("%s",q->sno); printf("please input sname:"); scanf("%s",q->sname);

C语言实验报告6——函数

学生实验报告 学号 : 日期 : 2014-06-22 系别计算机科 学与技术 专业 计算机科学 与技术(师) 班级姓名 课程名称程序设计基础 课程 类型 专业课学时数 2 实验 名称 函数 实验目的: 掌握C语言函数的定义与调用方法; 理解C语言函数的调用过程; 学会编写函数构造程序.。 实验要求: 实验后写实验报告。 1.实验内容: 1.阅读下列程序并执行,理解程序的功能并记录程序运行结果#include "stdio.h" int x,y; void num() { int a = 15,b = 10; x = a - b; y = a + b; } void main() { int a = 7,b = 5; x = a + b; y = a - b; num(); printf("%d,%d\n",x,y);

} 运行结果: 2、阅读下面程序并执行,理解程序并记录程序运行结果#include "stdio.h" void main() { int a=2,i; for (i=0;i<3;i++)printf("%4d",f(a)); } f(int a) {

int b=0; int c=3; b++; c++; return(a+b+c); } 运行结果: 3、调试运行教材146页-156页例7.1-例7.3页程序,理解并掌握程序改进所采用的程序设计技术。 7.1题

#include "stdio.h" /*函数功能:用迭代法计算n!*/ long Fact (int n) { int i; long result=1; for(i=2;i<=n;i++) { result*=i; } return result; } int main() { int m; long ret; printf("Input m:"); scanf("%d",&m); ret=Fact(m); printf("%d!=%ld\n",m,ret); return 0;

C语言实验六实验报告——指针

一、实验项目名称 指针 二、实验目的 1.掌握指针的基本概念和基本用法。包括:变量的地址和变量的值,指针变量的说明、指针变量的初始化、指针的内容与定义格式、指针的基本运算等; 2.掌握数组与指针的关系并能够利用指针解决数组的相关问题; 3.掌握字符串与指针的关系并能够利用指针处理字符串的问题; 4.掌握指针与函数的关系并能够利用指针处理函数问题; 5.了解指向指针的指针的概念及其使用方法; 6.能够使用指针进行程序设计。 三、实验内容 有关指针的程序设计 1.编程实现:任意输入的10个数,求其平均值。 要求: (1)10个数采用scanf语句读入。 (2)利用指针实现对这10个数的访问。 (3)要求平均值的精度为小数后面2位。 2.编程实现:将一个任意整数插入到一个已排序的整数数组中,插入后数组中的数仍然保持有序。 要求: (1)整数数组由初始化方式输入。任意整数由scanf函数输入; (2)实现过程采用指针处理; (3)输出原始数组数据以及插入数据后的数组数据并加以相应说明。 3.编写函数newcopy(char *new,char *old),它的功能是删除old所指向的字符串中的小写字母,并将所得到的新串存入new中。 要求: (1)在主函数中以初始化方式输入一个字符串; (2)调用newcopy()函数; (3)在主函数中输出处理后的结果。 4.编程实现:输入三个整数,按由大到小的顺序输出。

要求: (1)通过scanf函数输入三个数据并存入三个变量中; (2)利用指针实现从大到小输出; (3)修改程序,将三个整型数据改为字符型数据,输入三个字符,按从大到小数顺序输出; (4)修改程序,将三个字符型数据改为字符串数据,输入三个字符串,按从小到大顺序输出; (5)体会指针对不同数据处理的特点。 四、实验步骤及结果 一、 #include void main() { int a[10],n,sum=0; float aver;/* 定义平均数为浮点型*/ int *p=a;/*初始化*/ printf("Please input 10 numbers:\n"); for (n=0;n<10;++n) scanf("%d",&a[n]);/*输入十个数*/ for (n=0;n<10;++n) sum=sum+*(p+n);/*使用指针访问数据*/ aver=(float)sum/n; printf("Average is %.2f",aver);/*精确到小数点后两位*/ } 二、 #include void arr(int *a,int n);/*定义排序函数*/ void insert(int *a,int num);/*插入并排序函数*/ int n=10;/*定义数据个数,可修改*/ void main()

C语言实验六实验报告.doc

高级语言程序设计上机实验报告 一、实验目的 1.理解递归问题基本思想 2.学会编写递归程序,理解递归何时结束。 3、清楚明白结束条件无法满足的递归程序将导致无穷递归的情况发生。 二实验题目 1.计算游戏人员的年龄 有5个人围坐在一起,问第5个人多大了年纪,他说比第4个人大2岁:问第4个人多大年纪。他说比第3个人大2岁;问第3个人多大年纪,他说比第2个人大2岁;问第2个人多大年纪,他说比第1个人大2岁。第1个人说自己10岁,问第5个人多大年纪。 (1)程序源代码: #include unsigned int ComputeAge(unsigned int n); void main () { unsigned int n =5; printf("The 5th person's age is %d\n",ComputeAge(n)); } unsigned int ComputeAge(unsigned int n) { unsigned int age; if (n==1) { age =10; } else { age =ComputeAge(n-1)+2; } return age; }

(2)运行结果 2.计算最大公约数 利用计算最大公约数的三条性质,用递归方法计算两个整数的最大公约数。 性质1 如果x>y, 则x和y的最大公约数与x-y和y的最大公约数相同,即 gcd(x,y)=gcd(x-y,y)(x>y) 性质2 如果y>x,则x和y的最大公约数与x和y-x的最大公约数相同,即 gcd(x,y)=gcd(x,y-x)(x int MaxCommonFactor(int a, int b); void main() { int x,y,z; printf("Please int x, y:"); scanf("%d, %d", &x, &y); z=MaxCommonFactor(x, y); printf("The max common factor = %d\n", z); } int MaxCommonFactor(int a, int b) { if (a<=0 ||b <=0) return -1; if (a == b) { return a; } else if (a>b) { return MaxCommonFactor(a-b, b); } else { return MaxCommonFactor(a, b-a);

C语言实验报告

《程序设计基础》实验报告

{ float a, b; printf_s("please input cost price of TV:"); scanf_s("%f", &a); b = a*K; printf_s("the current price of TV:"); printf_s("%f", b); return 0; 2. #include"stdafx.h" int main() { int a, b, c, d, e, f; printf_s("please input three figures:"); scanf_s("%d", &a); b = a / 100; c = a % 100; d = c / 10; e = c % 10; f = e * 100 + d * 10 + b; printf_s("the new three figures:"); printf_s("%d", f); return 0; } 3. #include"stdafx.h" int main() { float a, b, c, d, e; printf_s("please input scores:\n");

scanf_s("%f%f%f", &a, &b, &c); d = a + b + c; e = (a + b + c) / 3; printf_s("the total scores:"); printf_s("%5.1f\n", d); printf_s("the average scores:"); printf_s("%4.1f\n", e); return 0; } 4. #include"stdafx.h" int main() { float a, b; printf("please input a number:"); scanf_s("%f", &a); printf_s("the integer part is:"); printf_s("%d\n", (int)a); b = a - (int)a; printf_s("the decimal part is:"); printf_s("%2.1f", b); return 0; } 5. #include"stdafx.h"

C语言实验六

实验六选择结构程序设计 一、实验目的 (1)掌握逻辑运算符和逻辑表达式; (2)掌握if语句的使用以及选择结构的嵌套应用; (3)能够灵活运用各种选择结构进行综合程序设计。 二、实验内容 1.输入一个字符,判断它是否是大写字母。如果是,将它转换为小写字母输出;否则不转换直接输出。 分析:判断大写英文字母的逻辑表达式为ch>='A'&&ch<='Z'或者ch>=65&&ch<=90。void main( ) { char ch; printf("请输入一个字符:"); scanf("%c",&ch); ch=(ch>='A'&&ch<='Z')?(ch+32):ch; printf("%c\n",ch); getch(); } /* 将此程序改为if语句输出*/ 2.某商品的零售价为每公斤9.3元,批发价为每公斤7.5元,购买量在20公斤以上,便可按批发价计算,设某顾客购买此商品weight公斤,请编程计算该顾客需付费(pay)多少?分析: 购买某商品,顾客付费pay=weight*单价。 而每公斤的单价是根据购买重量weight是否在20公斤以上,若是则按批发价为每公斤7.5元,否则按零售价为每公斤9.3元。 所以计算顾客付费应先判断其购买重量weight是否大于等于20,若weight>=20, pay=weight*7.5;否则pay=weight*9.3。 main() { float weight,pay; printf("请输入购买此商品的重量weight:"); scanf("%f",&weight); if (weight>=20) /* 购买量在20公斤以上*/ pay=weight*7.5; else pay=weight*9.3; printf("你应付%.2f元",pay);

C语言实验学生版(最新版)

实验一:简单的C程序设计(2学时) 一、实验方式: 一人一机 二、实验目的: 1、了解C语言程序的编译环境和编写过程。 2、掌握C语言程序在Visual C++ 6.0环境下的调试过程。 3、初步了解C语言程序的特点。 4、掌握C语言的数据类型。 三、实验内容: 1、计算两个数x和y的和。(教材P5【例1-2】) 2、从键盘输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。(实验教 材P18) 3、给定圆环,输入内圆环半径r1、外圆环半径r2,求出圆环的面积。(实验教材P27) 4、从键盘上输入两个整数x、y,实现两个数的交换,并求出最大值、最小值和两个数 的平均值。(实验教材P21) 5、输入并运行以下程序,分析运行结果。(实验教材P27) #include void main( ) { int i,j; i=8; j=10; printf(“%d,%d\n”,++i,++j); i=8; j=10; printf(“%d,%d\n”,i++,j++); i=8; j=10; printf(“%d,%d\n”,++i,i); i=8; j=10; printf(“%d,%d\n”,i++,i); } 四、实验程序代码: 五、实验运行结果(截图): 实验二:顺序结构程序设计(2学时)

一、实验方式: 一人一机 二、实验目的: 1、掌握标识符、常量、变量的定义及使用。 2、掌握C语言的常用运算符及表达式。 3、掌握单分支if语句的使用方法。 4、掌握双分支if-else语句的使用方法。 三、实验内容: 1、从键盘输入一个3位整数,请输出该数的逆序数。(实验教材P27) 2、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。(实验教 材P27) 3、判断箱子是正方体还是长方体。(实验教材P33) 4、有一函数: x (x<1) y= 2x-1 (1≤x<10) 3x-11 (x≥10) 编写程序,输入x值,输出y值。 5、从键盘上输入3个数a、b、c,求一元二次方程的解x1、x2,并分别把这两个解的绝 对值作为圆柱的半径与高,计算圆柱的体积。(实验教材P20) 四、实验程序代码: 五、实验运行结果(截图): 实验三:选择结构程序设计(2学时) 一、实验方式: 一人一机 二、实验目的: 1、掌握多分支语句的一般形式和使用方法。 2、掌握switch语句的一般形式和使用方法。 3、利用switch语句与break语句相结合解决生活中的问题。 4、学习调试和修改选择结构的程序。 三、实验内容: 1、定义4个实型变量a、b、c、d,利用单分支if语句对其进行排序,最后将结果输出。

C语言实验报告

实验一进制转换 一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。 五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n"); } else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c; char cIn = 0; do { printf("\n输入正整数,转换的进制:"); scanf("%d %d",&a,&c); fun(a,c); printf("Go on? (Y/N):"); cIn = getchar( ); if(cIn == 'N' || cIn == 'n') return 0; } while(1);fun(a,c);

相关文档