文档库 最新最全的文档下载
当前位置:文档库 › C语言程序设计基础实验报告6

C语言程序设计基础实验报告6

C语言程序设计基础实验报告6
C语言程序设计基础实验报告6

实验6 数组

一、实验目的

1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;

2、掌握字符数组和字符串函数的使用;

3、掌握与数组有关的算法(特别是排序算法)。

二、实验内容和步骤

编程序并上机调试运行。

1、以下给定程序MODI1.C的功能是:

求一维数组a中所有元素的平均值, 结果保留两位小数。例如,当一维数组a中的元素为:10, 4, 2, 7, 3, 12, 5, 34, 5, 9时,程序的输出应为:The aver is: 9.10

程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误,使它能得出正确的结果。

注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构!

#include

#include

void main()

{ int a[10]={10,4,2,7,3,12,5,34,5,9}, i;

/************found************/

float aver, s;

/************found************/

s = a[0];

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

s += a[i];

aver = s / i;

printf("The aver is: %.2f\n", aver);

}

2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。

例如,当二维数组a中的元素为:

4 2 34

7 3 12

5 6 5

程序的输出应为:The min is: 2 。

程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误,使它能得出正确的结果。

注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构!

#include

#include

void main()

{ int a[3][3]={4,2,34,7,3,12,5,6,5}, i, j, min;

clrscr();

min = a[0][0];

/************found************/

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

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

if (min > a[i][j])

{

/************found************/

min = a[i][j];

}

printf("The min is: %d\n", min);

}

3、在考生目录下,给定程序FILL1.C的功能是:在第一个循环中给a数组的前10个数组元素依次赋1、2、3、

4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1;在最后一个循环中输出对称折叠以后的a数组的前10个元素。

程序有两个空(1)、(2)需要补充完整。并将程序调试出所需的结果。

注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!

#include

void main( )

{ int i, a[10];

clrscr();

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

/**************found************/

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

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

/**************found************/

a[9-i]=a[i];

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

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

printf("\n");

}

4、以下给定程序FILL1.C的功能是:输入一个数x,查找x在数组a中最后一次出现的位置。例如:如果a

数组中的元素为:1, 5, 2, 5, 6, 8, 7, 4, 3, 0,当x=5时,程序的输出结果为:5 is No.3 。当x=10时,该数不

在数组中,程序的输出结果应为:10 not found !。

程序有两个空(1)、(2)需要补充完整。请将程序调试出所需的结果。

注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!

#include

void main( )

{ i nt a[10] = { 1, 5, 2, 5, 6, 8, 7, 4, 3, 0 };

int i, k, x, f = 0;

scanf("%d", &x);

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

if (a[i] == x )

{ f=1;

/************found************/

k=i;

}

/************found************/

if (f==1)

printf("%d is No. %d\n", x, k);

else

printf(" %d not found !\n", x);

}

5、有一个已经从小到大排好序的整数数组:a[30]={6,9,12,15,19,23,45,67,89,98},现输入一个整数x ,要求按原来的升序规律将它插入到数组中。

#include

void main()

{ int a[30]={6,9,12,15,19,23,45,67,89,98},num,i,j,tmp1,tmp2;

scanf("%d",&num);

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

{ if(num<=a[i])

{ tmp1=a[i];a[i]=num;

for(j=i+1;j<11;j++)

{ tmp2=a[j];a[j]=tmp1;tmp1=tmp2;}

break;

}

else a[10]=num;

}

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

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

printf("\n");

}

}

6、以下程序PROG1.C的功能是:将字符串2连接到字符串1的后面并输出。例如,当字符串1为"This is a ",字符串2为"c program",则输出:"This is a c program" 。

注意: 部分源程序存在文件PROG1.C中。请在/*******begin********/ 与/********end*********/ 之间填入你编写的若干语句。请勿改动其它位置的任何内容。

#include

void main()

{ c har str1[80]="This Is a ", str2[80]="c Program";

/***********begin***********/

strcat(str1,str2);

/************end************/

printf("Result is: %s\n",str1);

}

7、以下给定程序FILL1.C的功能是:从键盘上输入一个数字组成的字符串(字符串长度小于8),将该字符串转换成一个十进制数。

例如:从键盘上输入字符串2345, 则程序运行的结果应当为:n=2345。

程序有两个空(1)、(2)需要补充完整。请将程序调试出所需的结果。

注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!

#include "stdio.h"

void main( )

{ char s[10]; int i;

long int n=0;

clrscr();

/**************found************/

scanf("%s",s);

/**************found************/

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

n = n*10 + s[i]- '0';

printf("n=%ld\n",n);

}

8、打印出以下的杨辉三角形(要求打印10行)

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

……

#include

void main()

{ int y[11][11],i,j;

y[1][1]=y[2][1]=y[2][2]=1;

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

{ y[i][1]=1;

y[i][i]=1;

}

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

for (j=2;j

y[i][j]=y[i-1][j-1]+y[i-1][j];

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

{ for (j=1;j<=i;j++)

{ printf("%5d",y[i][j]);}

printf("\n");

}

}

9、编程查找一个二维字符数组里为“a”的元素的个数。假定是3行5列的字符数组。#include

#include

void main()

{ char a[3][5]={"abcef","daryd","agdys"};

int i,j,k;

k=0;

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

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

if(a[i][j]=='a')

k++;

printf("%d\n",k);

}

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语言程序设计实训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语言实验报告 说明 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.熟悉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语言实验报告六

数学与软件科学学院实验报告 学期: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语言实验报告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语言实验报告

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

{ 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.掌握数组与指针的关系并能够利用指针解决数组的相关问题; 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语言实验报告

实验一进制转换 一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 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);

C语言实验报告第六章

实验报告 课程名称_____ C语言程序设计_____ 实验项目___数组(2)___ 实验仪器______计算机___________ 系别_____信息与通信工程学院_______ 专业______通信工程________ 班级/学号_____ 学生姓名______ ________ 实验日期____2013年6月25日___ 成绩_______________________ 指导教师______李文杰_________

一、实验目的 1、掌握二维数组的定义。 2、掌握二维数组元素的应用。 3、掌握字符数组的定义和元素的引用。 4、掌握字符数组元素和字符串的应用。 二、实验内容 1、描述 输入一个字符串str和一个子串s,统计str中子串s的个数。 输入 输入数据有2行,第一行为str,第二行为s,字符串长度不超过128。输出 输出子串的个数 样例输入 输入样例1: sdf$$$sdf$$ sdf 输入样例2: abcabcaaannnnbbbnc abc 样例输出 样例输出1: 2

样例输出2: 2 提示 所有的测试样例都不包含类似于下面的统计:输入:aaaabbbaaabbabaaaa aa 程序代码: #include "stdio.h" char st[500],str[500]; int ji; int shu1,shu2; int pd; int strl(char tt[1000]) { int sum=0; while (tt[sum]!='\0') sum++; return sum; } int main(void) { scanf("%s",&st); scanf("%s",&str); shu1=strl(st); shu2=strl(str); int i,j; int kk; for(i=0;i<=shu1-shu2;i++) { pd=0; kk=0; for(j=i;j

C语言实验报告六

南京信息工程大学实验(实习)报告实验(实习)名称函数日期2019.5.22 得分指导老师 系专业年级2018级班次班姓名学号 一、实验目的 1.实验目的 (1) 掌握C语言函数定义及调用的规则。 (2) 理解参数传递的过程。 (3) 掌握函数返回值的大小和类型确定的方法。 (4) 理解变量的作用范围。 二、实验内容 (1) 上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。 #include int main( ) { int,y; printf(" %d\n",sum(x+y)) ; int sum(a,b) { int a,b; return(a+b) ; } return 0 ; } (2)编写一个程序,输人系数a、b、c,求一元二次方ax^2+bx+c=0的根,包括主函数和如下子函数。 ①判断a 是否为零。 ②计算判别式b^2-4ac。 ③计算根的情况。 ④输出根。 (3) 输入下面程序,分析运行结果。 #include int func (int,int); int main () { int k=4,m=1,p1,p2; pl=func(k.m); p2=func(k,m); printf("%d,%d\n",p1,p2);

return 0 ; } Int func (int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } 一:第一个程序输入后 出错原因是int后不应直接跟逗号,而是定义的变量名称;剩下的错误就是程序当中所要使用到的变量未能给出定义 改正上述提到的错误后 #include int main( ) { int a,b,sum,x,y; printf(" %d\n",sum(x+y)) ; int sum(a,b) { int a,b; return(a+b) ; } return 0 ; }

C语言实验报告6

实验报告 实验名称:数组成绩: 实验日期:2011 年11 月14 日实验报告日期:2011 年11 月14 日实验者:桂婷 一、实验目的 1、熟悉掌握一维数组和二维的定义、赋值和输入输出的方法。 2、掌握字符数组和字符串函数的使用。 3、掌握与数组有关的算法(特别是排序算法) 二、实验内容 1、用先择法对10个整数排序。10个整数用scanf函数输入。 2、已有一个已排好序的数组,要求输入一个数后,按原来规律将它插入数组中。 3、有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母,小写字母,数字,空格以及其他字符的个数。 三、实验步骤 1、

总结:1、注意排序的方法。如果有N个数,则要进行N-1趟比较,在第一趟比较中要进行N-1次两两比较,在第j趟比较中要进行N-j次两两比较。 2、在比较之后,如果要交换位置的则要交换。 2、

总结:1、如果插入的数比num比a数组最后一个数大,则将插入的数入在a数组末尾。 2、如果插入的数不比num比a数组最后一个数大,则将它依次和a[0]~a[n-1]比较, 直到出现a[i]>num为止。 3、在编程时仍要注意if,else的配对,for语句的使用。 3、 总结:1、注意二维数组的定义。 2、要注意逻辑运算符各算术运算符在该程序中的使用。 3、在程序中输出行数时用i+1,而不用i,并不会影响对数组的处理。

四、实验出现的问题、实验结果分析 1、正确定义数组,要有数组名,指定数组包含的个数。如果在被调用的函数(不包括主函 数)中定义数组,其长度可以是变量或非常量表达式。 2、数组命名也应遵循相应的规则,记得最好是给数组赋初值,否则都是零,这样会影响结 果。并且赋初值时要加{}把它们括起来。 3、数组不能一次性的使用所有的元素或多个元素,它一次只能引用一个。 4、在逐个字符初始化时要多留一个空间来放\0。 5、&a[i]表示取数组a的首地址。 五、实验小结和思考 1、思考第1题是否可以用getchar()一个一个的输入。 2、如果将&a[i]改为&a,可以吗? 3、在复合语句中不用{}将它们作为一个整体,会出现什么情况?

c语言实验报告127691

C语言程序设计报告 日期:2222年11月2日

程序主要内容 任务1. 程序首先随机产生一到十之间的正整数,在屏幕上打印出问题,例如6*7=然后让学生输入答案,序检查学生输入的答案是否正确,若正确,则“RIGHT”,然后问下一个问题,否则打印“WRONG,PLEASE TRY AGAIN”,然后提示学生重做,直到答对为止。 程序如下: #include<> #include<> #include<> int Magic(int x); int Answer(); main() { int guess,answer,counter=1; do{ printf("%d*%d=",Magic(1),Magic(2)); answer=Magic(1)*Magic(2); if(Answer()==answer) { printf("Right\n"); break; } else printf("Wrong!,please try again\n"); }while(counter>=1); } int Magic(int m) { int x,int y; srand(time(NULL)); x=rand()%10+1; y=rand()%10+1; if(m==1) return x; if(m==2) return y; } int Answer() { int n; scanf("%d",&n);

return n; } 任务2:在(1)的基础上,当学生回答错误时,最多给三次重做的机会。 :程序如下: #include<> #include<> #include<> int Magic(int x); int Answer(); int Exam(); main() { int n; n=Exam(); if(n==0) printf("Right\n"); else if(n==1) printf("Wrong!You have tried three times!Test over\n "); } int Magic(int m) { int x,int y; srand(time(NULL)); x=rand()%10+1; y=rand()%10+1; if(m==1) return x; if(m==2) return y; } int Answer() { int n; scanf("%d",&n); return n; } int Exam() { int guess,answer,counter=1; do{ printf("%d*%d=",Magic(1),Magic(2)); answer=Magic(1)*Magic(2); counter++; if(Answer()==answer) return 0; else if(counter<=3)

c语言实验报告

课程设计报告 学院:计算机学院·软件学院 课程名称:高级语言程序设计 专业班级:11科技2班 学生姓名:学号: 指导教师:李革 完成时间:2011 年12 月25

目录 1.菜单选择程序课程设计 2.学生信息管理系统课程设计 题目1:菜单选择程序课程设计 一、课程设计内容与要求 1.主菜单 编写程序能够显示以下的主菜单: **************************************** 主菜单: 1.字母数字转换 2.奖金发放 3.打印月历 4.打印水仙花 5.查找最大最小数 6.退出 **************************************** 在主菜单程序中,根据输入的数字1~6来选择相应的选项,在执行完每一个选项之后,返回主菜单(退出除外)。每一个菜单要完成的任务由下面的2~7依次给出。编写的源程序以zhsy1.cpp保存。 2.字母数字转换 编写一个函数,能够将字母电话号码转换成数字号码(假设输入的字母都是大写字母,输入的电话号码以#结束): 例如:输入电话号码:CALLATT,则输出:2255288。 输入电话号码:1-800-COL-LECT,则输出:1-800-265-5328。 提示:电话上的字母、数字对照表如下:2=ABC,3=DEF,4=GHI,5=JKL,6=MNO,7=PRS,8=TUV,9=WXY。如果原始的电话号码中出现了非字母字符,则这部分字符保持不变。 3.奖金发放 企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;超过40万元的部分按3%提成,编写一个函数从键盘输入当月利润,输出应发放奖金的总数? 4.打印月历 编写一个函数,打印一个月的月历。要求给出要打印月份的天数以及本月第一天是星期几。

C语言实验报告(五)

华北水利水电大学C语言程序设计实验报告 2015--2016学年第二学期2015级道路桥梁与渡河工程专业 班级:2015069学号:201506912姓名:杨玉冰 一、实验题目:函数 二、实验目的:(略) 三、实验内容 1.程序验证(略) 2.程序设计 1)编程实现求两个正整数的最大公约数,要求计算最大公约数用函数fun(int a,int b)实现。 源代码:运行结果: #include int fun(int,int); void main() { int A,m,n; printf("Please input two number:"); scanf("%d%d",&m,&n); A=fun(m,n); printf("最大公约数=%d\n",A); } int fun(int a,int b) { int r,t; if(b>a) {t=b;b=a;a=t;} while((r=a%b)!=0) {a=b;b=r;} return(b); } 2)编程实现打印出2~n之间的所有素数,要求判断素数过程用自定义函数实现。 源代码:运行结果: #include int isprime(int m)

int i; for(i=2;i2) 例如:当t=1000时,函数值为:1597。 源代码:运行结果: #include int fun(int t) {

c语言实验报告六 二维数组

《C程序设计》课程实验报告 学院:班级:姓名:学号: 实验设备:计算机1台实验日期:2011年3月1日 实验项目名称二维数组 实验目的掌握二维数组的定义、初始化,以及二维数组元素的下标法引用。 实验要求: 熟练掌握掌握二维数组的定义、初始化,以及二维数组元素的下标法引用。编写简单程序。 实验内容(包括步骤): 1.有5名学生,每名学生有语文、数学、物理和外语四门课的考试成绩,编程统计各学生的总分和平均分,以及所有学生各科的总计分和平均分。 要求:(1)成绩在程序中初始化,结果以表格的形式输出。 (2)用下标法实现。 2.将4×4阶矩阵的4个最小值按升序存放在主对角线上。 要求:(1)矩阵元素从键盘输入。 (2)用下标法实现。

调试与结果测试: 调试与结果正常。 代码注释: 6-1 #include int main() { int a[7][6]={{80,82,98,76},{78,89,96,68},{87,85,78,92},{68,69,72,76},{92,97,96, 94}}; int i,j,m=0,s1=0,s2=0; printf("\t语文\t数学\t物理\t外语\t平均分\t总分\n"); for(i=0;i<5;i++) {for(j=0;j<4;j++) {s1+=a[i][j]; a[i][5]=s1; a[i][4]=s1/4;} s1=0; } for(j=0;j<4;j++)

{for(i=0;i<5;i++) {s2+=a[i][j]; a[6][j]=s2; a[5][j]=s2/5;} s2=0; } for(i=0;i<7;i++) for(j=0;j<6;j++) {m++; if(m%6==1&&i<5){printf("学生%d\t",i+1);} if(m%6==1&&i==5){printf("平均分\t");} else if(m%6==1&&i==6){printf("总分\t");} printf("%d\t",a[i][j]); if(m%6==0) printf("\n");} return 0; } 6-2 #include int main() { int a[4][4],b[16]={0},i,j,m,k=0,t=0; for(i=0;i<4;i++) {for(j=0;j<4;j++) scanf("%d",&a[i][j]);} for(i=0;i<4;i++) {for(j=0;j<4;j++) {b[k]=a[i][j];

C语言实验报告

实验17.7.2(3) 1.实验代码与运行结果 #include float input_score(float b[5],int i) {int k; printf("请输入第%d个学生的5门成绩:\n",i+1); for(k=0;k<5;k++) scanf("%f",&b[k]); return 0; } float average1(float b[5],int i) {float s=0;int k; for(k=0;k<5;k++) s+=b[k]; s=s/5; printf("第%d个学生的平均分是:%9.2f\n",i+1,s); return 0; } float average2(float c[10],int i) {float s=0; int k=0; for(k=0;k<10;k++) s+=c[k]; s=s/10; printf("第%d门学科的平均分是:%9.2f\n",i+1,s); return 0; } void main() {float a[10][5],c[10],max; int i,j,p=0,q=0; for(i=0;i<10;i++) input_score(a[i],i); for(i=0;i<10;i++) average1(a[i],i); for(i=0;i<5;i++) {for(j=0;j<10;j++) c[j]=a[j][i]; average2(c,i);}; max=a[0][0]; for(i=0;i<10;i++) {for(j=0;j<5;j++) {if(a[i][j]>=max) max=a[i][j],p=i,q=j;};}; printf("最大值是第%d个学生的第%d个课程:%9.2f\n",p+1,q+1,max); }

游戏C语言实验报告

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录

一、实验目的和要求 (1)使用C语言编写2048这款游戏。 (2)能够正常运行,拥有游戏界面。 (3)能正常进行游戏从开始到结束。 (4)用户操作方便。 二、实验环境、内容和方法 实验内容:1、游戏开始时随机产生两个数值为2/4的方格,其中一个方格置于4个角中的一个位置,另一个方格随机的置于其他位置,其他方格置于0。 2、每次按方向键(w,s,a,d)后,逐行计算移动后的方格值。每行移动的算法是:先将所有值为0的数移至行首。能后从行尾开始逐一和前一个数比较,如果相等则合并这2个格子。 3、每合并一次格子,将其值累计到游戏总分中。 4、一次移动结束后,在所有值为0的方格中随机的分配一个2/4的值。 5、所有方格值不为0且上下、左右相邻的方格都不相等,则游戏结束。 6、2出现的概率为70%,4出现的概率为30%。 实验方法: 通过上机操作完成各内容。 实验环境: 实验用PC机一台,使用操作系统为Windows 7/ Windows 8/ Windows10,安装vc++或v2008等编译软件 三、程序设计 Y

N N Y 四、源代码 #include<> #include<> #include<> #include<> #define M 2048 void up(); n"); printf(" 玩家可以选择上(w)下(s)左(a)右(d)四个方向,若棋盘内的数字出现位移或合并,视为有效移动.\n"); printf(" 若有相同的数字则合并,每次有效移动可以同时合并,但不可以连续合并.\n"); printf(" 合并所得的所有新生成数字想加即为该步的有效得分.\n"); printf(" 玩家选择的方向行或列前方有空格则出现位移.\n"); printf(" 每有效移动一步,棋盘的空位(无数字处)随机出现一个数字(依然可能为2或4).\n");

C语言实验报告

《C语言》实验报告 专业_____________ 年级_____________ 学号_____________ 学生_____________ 指导老师_____________ 华中师大学信息管理系编

I 实验要求 1.每次实验中有若干习题,每个学生至少应该完成其中的三道习题。 2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率,严禁一边上机一边编写。 3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。 4.上机结束后,应整理出实验报告。书写实验报告时,重点放在调试过程和小结部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力之目的。 II 实验容 实验一简单程序设计 【实验目的】 1.熟悉TC++、Borland C++和VC++6.0的运行环境。 2.了解在TC++、Borland C++和VC++6.0上如何编辑、编译、连接和运行一个C程序。 3.熟练使用各种C语言的数据类型、运算符与表达式。 4.熟练掌握格式输入与格式输出函数的使用。 5.通过运行简单的C程序,初步了解C源程序的特点,初步掌握查错和排错的技能. 【上机实习指导】 1.通过以下程序来掌握上机操作的全过程 在VC、BC或TC中练习输入、编译、运行一个C语言程序的全过程 以下程序是计算函数y=3x2+2x-4(假设x=2)。 # include “stdio.h” void main( ) { int x=2,y; y=3*x*x+2*x-4; printf(“\ny=%d”,y); } 2.基本数据类型表示围练习 假设有如下程序: #include void main ( ) { char ch1, ch2, ch; unsigned char c; int a; ch1 = 80;

相关文档