文档库 最新最全的文档下载
当前位置:文档库 › C语言:数组的应用实验报告

C语言:数组的应用实验报告

C语言:数组的应用实验报告
C语言:数组的应用实验报告

课程名称:结构化程序设计与C语言开课实验室:年月日

一、实验目的

用C语言编写和调试数组的程序,包括一维数组和二维数组。从而对数组的程序设计有比较深入的了解。

二、内容及结果

1、程序二选择排序法

1)题目:用选择法对10个整数排序。

2)代码:

#include

int main()

{

int a[10];

int i,j,t;

printf("input 10 numbers:\n");

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

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

printf("\n");

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

for(i=0;i<9-j;i++)

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

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

printf("the sorted numbers:\n");

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

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

printf("\n");

return 0;

}

3)运行截图:

2、程序二将一个数组中的值按逆序重新存放。

1)题目:将一个数组中的值按逆序重新存放。

2)代码:

# include

int main ()

{

int a[5]={8,6,5,4,1};

int i,t;

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

{

t=a[i];

a[i]=a[4-i];

a[4-i]=t;

}

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

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

return 0;

}

3)运行截图:

3、程序三输出杨辉三角形(10行)

1)题目:输出杨辉三角形(10行)

2)代码:

#include

int main()

{

int yh[10][10]={0};

int i,j;

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

yh[i][0]=1;

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

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

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

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

{

for(j=0;j

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

printf("\n");

}

}

3)运行截图:

4、程序四找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该行上最小。也可能没有鞍点。

1)程序要求:找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该行上最小。也可能没有鞍点。

2)代码:

#include

int main()

{

int a[5][5],b[5],c[5],s[5][5],k=0,l=0;

int i,j;

printf("请你输入s[5][5]:\n");

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

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

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

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

for(j=0;j<5;j++,a[i][j]=s[i][j]);

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

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

{

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

b[k]=a[i][j+1]=a[i][j];

else

b[k]=a[i][j+1];

}

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

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

{

if(a[i][j]<=a[i+1][j])

c[l]=a[i+1][j]=a[i][j];

else

c[l]=a[i+1][j];

}

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

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

if(s[i][j]-b[k]==0)

{

if(s[i][j]-c[l]==0)

printf("s[%d][%d]=%d\n",i,j,s[i][j]);

else

printf("s[%d][%d]=%d不是鞍点\n",i,j,s[i][j]);

}

return 0;

}

3)运行截图:

三、实验结果、分析和结论:

此次试验主要就是对数组的运用,同时也运用了if条件语句以及for循环语句的运用,让以前的知识点得到了复习。通过对数组的运用,我们首先学会的就是如何对一个数组的定义,然后就是数组的作用,我们运用数组对多个数进行排序和两个数的排序。而在数组中我们运用最多、最广的就是二维数组,所以我们掌握二维数组的相关信息,首先就是怎样定义一个二维数组,其次就是怎样引用二维数组中的元素以及对二维数组的初始化。还有一个重要的数组就是字符数组,此次虽未用到,但也是需要我们掌握的,因此只有我们掌握了各种数组的运用,我们才能正确的把它运用到解题中去。

C语言实验报告参考答案(原)

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include<> main() { int a,b,c,x,y;

a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include<> main() { int a,b,c,d; float x; a=160; b=46; c=18; d=170; x=(a+b)/(b-c)*(c-d);

printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将0赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3

数组程序设计实验报告

计算机科学与技术学院 程序设计报告 程序名称:数组程序设计 专业:计算机科学与技术 班级:计算机1103班 学号: 姓名: 指导老师: 设计日期:2011年11月26日

数组程序设计 题目: 编写一个程序,其功能如下:输入n(n<50)个学生的姓名和C语言课程的成绩,将成绩按从高到低的次序排序,姓名同时作相应的调整,输出排序后的学生姓名和C语言课程的成绩。然后输入一个C 语言课程成绩值,用二分法查找进行搜索。如果查找到该成绩,输出该成绩同学的姓名和C语言课程的成绩;否则输出提示“not found !”. 程序源代码: #include #include #define n 3 void main() { int i,j,k,t,x,a[n]; int top=0,bottum=n-1,mid; char b[n][10],str[10],c[20]; for(i=0;i

printf("input the name of the %dth student:",i+1); gets(b[i]); printf("input the score of the C language:"); scanf("%d",&a[i]); printf("\n"); gets(c); } for(i=0;i

Java语言程序设计实验四 方法及数组实验报告

**大学 Java语言程序设计实验报告

四、实验步骤: 1: import java.util.Scanner; public class sy41 { public static void main(String[] args) { // TODO Auto-generated method stub int t,bbk=0; int []a; a=new int[10]; Scanner chm=new Scanner(System.in); System.out.println("请输入十个数"); for(int i=0;i<10;i++) { a[i]=chm.nextInt(); } System.out.println("请输入要找的数"); t=chm.nextInt(); for(int j=0;j<10;j++) { if(t==a[j]) bbk=1; } if(bbk==1) System.out.println("有"); else System.out.println("无"); } } 2: package syyyy; import java.util.*; class first {

System.out.println("输出排序前"); f.printarray(a); f.sort(a); System.out.println("输出排序后"); f.printarray(a); f.delelement(a, 2); System.out.println("输出删除第2个数后"); f.printarray(a); } } 3): import java.util.Scanner; public class syyyyyyyy43 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner bbk=new Scanner(System.in); System.out.println("请输入一个十进制数:"); int a=bbk.nextInt(); int pok=a/2; int shu[]=new int [pok+1]; if(pok<3000){ if(a%2==0){ shu[0]=1; System.out.print(shu[0]); for(int i=1;i

C语言实验报告(五-数组2)

华北水院高级语言程序设计(C语言)实验报告(五) 2015--2016学年第二学期 2015级专业:学号:姓名:……………………………………………………………………………………………… 一、实验题目:数组(2) 二、实验目的:(略) 三、实验内容 1.有一个数值从小到大排好顺序的数组,要求从键盘输入一个数,将该数插入数组后,数组中的数仍按从小到大有序。例如,数组中原来的顺序为{1,5,11,16,18,21},从键盘输入一个数15,将其插入到该数组后,数组中数的顺序为{1,5,11,15,16,18,21} 源代码:运行结果: #include #include void main () {int a[20]; int i,t,j=0; printf("请输入数字组"); for (t=0;t<6;t++) {scanf("%d",a[t]);}; printf("请输入插入数字"); scanf("%d",&i); for (t=0;i

#include #include void main () {int xh[20]; int cj[20]; int i,j,k,m,sum=0; double b; printf("请输入学号"); for (i=0;i<10;i++) scanf("%d",&xh[i]); printf("请输入学号的成绩"); for (i=0;i<10;i++) scanf ("%d",&cj[i]); for (i=0;i<9;i++) {k=i; for (j=i+1;j<10;j++) {if (cj[k]

C++上机实验报告实验四

实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对

象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验内容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

JAVA实验报告_实验7_数组_

Java Object-Oriented Programming Experimental Report

3.2 Grading Quizzes (Choose to do) 3.3 Reversing an Array(Choose to do) 3.4 Adding To and Removing From an Integer List(Choose to do) 3.5 A Shopping Cart (Choose to do) 3.6 Averaging Numbers (Choose to do) 3.7 Exploring Variable Length Parameter Lists

3.8 Magic Squares(Choose to do) 3.9 A Shopping Cart Using the ArrayList Class (Choose to do) 3.10 A Polygon Person(Choose to do) 3.11 An Array of Radio Buttons \ 3.12 Drawing Circles with Mouse Clicks

3.13 Moving Circles with the Mouse(Choose to do) 3.14 Moving a Stick Figure(Choose to do) 4.Experimental results and data processing 5.Analysis and discussion Score: 6.Teacher Reviews Signature: Date: Experimental Report List 1 Tracking Salee package test_java_07_01;

C语言指针实验报告

C语言程序设计实验报告 1实验目得 (1)掌握指针得概念,会定义与使用指针变量; (2)能正确使用变量得指针与指向变量得指针变量; (3)能正确使用数组得指针与指向数组得指针变量; (4)能正确使用字符串得指针与指向字符串得指针变量; 2实验内容 将一个任意整数插入到已排序得整形数组中,插入后,数组中得数仍然保持有序; 要求: (1)整形数组直接由赋值得方式初始化,要插入得整数有scanf()函数数入; (2)算法实现过程采用指针进行处理; (3)输入原始数据以及插入整数后得数据,并加以说明;

3算法描述流程图

4源程序 #include main() { int a[100],m,i,*p,n,w; printf("请输入要输入得数组得元素个数:\n"); scanf("%d",&n); printf("请输入已排好序得数组:\n"); for(i=0;i=w;i--) { a[i+1]=a[i]; } a[i+1]=m; for(i=0;i<=n;i++) { printf("%-4d",a[i]); } printf("\n"); } 5测试数据 “1,3,5,7,9,11,13,15,17,19······10” 6运行结果 7出现问题及解决方法 在编写过程中,

for(i=n-1;a[i]>=w;i--) { a[i+1]=a[i]; } a[i+1]=m; 这一步没有注意a[i++]=m与a[i+1]=m中i++与i+1不同,a[i++]=m就是先将得值赋给a[i],然后在执行自增;而在实验过程中忽略了这一点,造成了不必要得麻烦; 8实验心得 通过这次指针实验掌握了指针得概念,会定义与使用指针变量,并且能利用指针来简单化一些问题,给以后得编程带来了很大得便利;

C语言实验报告《数组》.doc

《c语言程序设计》课程实验报告 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡篇二:c语言实验报告本(数组函数) 《c语言程序设计》 实验报告 2009~2010学年第二学期 专业 班级 姓名 学号 任课教师 计算机教学实验中心 2010年 5 月 《c语言程序设计》实验报告( 1 ) 学号:姓名:班级:成绩: 任课教师签名: 《c语言程序设计》实验报告( 2 ) 学号:姓名:班级:成绩: 任课教师签名:篇三:c语言实验报告数组 实验报告 实验课程名称高级c语言程序设计 实验项目名称数组 年级 09 级 专业数学 学生姓名李军 学号 0907010170 理学院 实验时间: 2010 年 4 月 22 日 学生实验室守则 一、按教学安排准时到实验室上实验课,不得迟到、早退和旷课。 二、进入实验室必须遵守实验室的各项规章制度,保持室内安静、整洁,不准在室内打闹、喧哗、吸烟、吃食物、随地吐痰、乱扔杂物,不准做与实验内容无关的事,非实验用品一律不准带进实验室。 三、实验前必须做好预习(或按要求写好预习报告),未做预习者不准参加实验。 五、实验中要节约水、电、气及其它消耗材料。 六、细心观察、如实记录实验现象和结果,不得抄袭或随意更改原始记录和数据,不得擅离操作岗位和干扰他人实验。 七、使用易燃、易爆、腐蚀性、有毒有害物品或接触带电设备进行实验,应特别注意规范操作,注意防护;若发生意外,要保持冷静,并及时向指导教师和管理人员报告,不得自行处理。仪器设备发生故障和损坏,应立即停止实验,并主动向指导教师报告,不得自行拆卸查看和拼装。 八、实验完毕,应清理好实验仪器设备并放回原位,清扫好实验现场,经指导教师检查认可并将实验记录交指导教师检查签字后方可离去。 九、无故不参加实验者,应写出检查,提出申请并缴纳相应的实验费及材料消耗费,经

C上机实验报告 实验四

精品文档 实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验内容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。

C语言数组实验报告

深圳大学实验报告课程名称:程序设计基础 实验项目名称:数组 学院:光电工程学院 专业:光电信息科学与技术 指导教师:杨艳丽 报告人:温宏宇学号:2015170174班级:4班 实验时间:2016-5-12 实验报告提交时间: 教务处制

程序核心代码: #include void main() { int a[11]; int i, j, t, p, number; printf("Input 10 numbers:\n"); for (i = 0; i<10; i++) scanf("%d", &a[i]); for (i = 0; i<9; i++) for (j = 0; j<9 - i; j++) if (a[j]>a[j + 1]) { t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } printf("The sorted numbers:\n"); for (i = 0; i<10; i++) { printf("%d ", a[i]); } 2.程序分析: #include void main() { int a[11]; int i, j, t, p, number; printf("Input 10 numbers:\n"); for (i = 0; i<10; i++) scanf("%d", &a[i]); for (i = 0; i<9; i++) for (j = 0; j<9 - i; j++) if (a[j]>a[j + 1]) { t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } printf("The sorted numbers:\n"); for (i = 0; i<10; i++) { printf("%d ", a[i]); }

数组的应用实验报告

数组的应用 电力实10 郝毅(201001000707)上机时间:周二上午 一实验目的 1 掌握数值型一维数组及二维数组的定义,初始化,以及输入输出的方法。 2 掌握用一维数组及二维数组实现的算法。 3 掌握字符型数组的定义,初始化,以及输入输出的方法。 4 掌握用字符型数组解决字符串问题的方法。 5 掌握常用字符串处理函数。 6 掌握用数组作为函数形参的相关语法规则和编程技巧。 7 掌握在VisualC++集成环境中调试与数组相关程序的方法。 二程序分析 1 Step1:定义数值型一维数组,及变量n,max,min,I,c; Step2:输入n的值,利用for语句,从键盘输入n个数据,存放在数组中。 Step3;利用for语句遍历n个数组元素,利用max存放最大值,利用min存放最小值; Step4:利用变量c将最大值与a[n-1]交换位置,并将min与a[0]交换位置; Step5;;利用for语句输出数组的前n个元素。 2题 Step1:定义数值型一维数组,整型变量s;

Step2:利用while语句输入一组数并存放在数组中,同时对该组数求和。 Step3:求出数组预案数的平均值,利用for语句遍历数组元素,并利用计数器计数其中大于等于平均值的实数个数。 Step4:输出计数器的值; 3题 Step1:定义数值型一维数组,及变量i; Step2:利用for语句遍历从1到100,将所有能被7或11整除的整数存放在数组中。 Step3:利用for语句输出数组元素十个数一行。 4题 Step1:定义数值型一维数组,数组长度为50;变量s,i,c=51;Step2:利用while语句将一组互不相同且非0的整数存放在数组中,Step3:输入s的值。 Step4:利用for语句遍历数组元素,找出与s相同的元素,并记录其位置c=I,若不存在,则c=51; Step5:判断c的值,若小于51,则输出i的值,否则输出该数不存在; 5题 Step1,定义两个一维数组a[8],b[8],并初始化a[20]为{1,2,5, 1,1,3,7,0},及变量c,i,j; Step2:输入变量c的值。

C语言数组实验报告

实验名:数组 一、实验目的 1、掌握数组定义的规则。 2、掌握C语言数组的基本用法。 二、实验内容 ) 题目1 1、编写程序,测试下列数组的定义方式是否正确 (1) main() { int n; scanf(“%d”,&n); int a[n]; …… } (2) main() { const int n=10; int a[n]; } (3) #include #define M 10 main() { int a[M]; } (4) main() { int a[2+2*4]; } (5) #include #define M 2 #define N 8 main() { int a[M+N]; } 通过这一实验,可以说明什么问题? 2、输入和输出信息描述及数据类型确定; 、输入数据 序号输入数据描述数据类型

(1)n,a[n] int (2)n a[n] cons tint int (3)a[M]或a[10] int (4)a[2+2*4] int (5)a[M+N] int 3、程序调试 错误序号错误信息(列出出错语句以及出 错提示) 是否 解决 解决方法 (1-1)main.c|5|error: expected expression before '%' token| scanf(“%d”,&n);是将%d两边的符号改为西文字符的引号scanf("%d",&n); (1-2)main.c|6|warning: unused variable 'a' [-Wunused-variable]| int a[n]; 是将前面的n的输入去掉,把n改为具体数字 (5) main.c|6|warning: unused variable 'a' [-Wunused-variable]| int a[M+N]; 是加上个scanf(“%d”,&a[M+N]); 4、相关问题回答 通过这一实验,可以说明什么问题? 1、(2)(3)(4)(5)对,(1)错,(1)中a[n]的数组定义的【】里的常量表达式不能是变量。 2、一维数组定义的时候【】里的常量表达式包括常量和符号常量,但不能是变量。 ) 题目2 1、运行下面的C程序,根据运行结果,可以说明什么? main( ) { int num[5]={1,2,3,4,5}; inti i; for(i=0;i<5;i++) printf(“%d”,num[i]); } 2、输入和输出信息描述及数据类型确定; 、输入数据 序号输入数据描述数据类型 1 num[5],i int (2)输出数据 序号输出数据描述数据类型 1 num[i] int 3、程序源代码(填写程序调试正确后的代码) #include int main( ) { int num[5]={1,2,3,4,5}; /*定义num[5]*/ int i; for(i=0;i<5;i++) /*下标应该是0到4*/ printf("%d",num[i]); /*依次输出num[0]至num[4]*/ return 0; } 4、程序调试 错误序号错误信息(列出出错语句以及出错 提示) 是否解决解决方法

C语言:数组的应用实验报告

课程名称:结构化程序设计与C语言开课实验室:年月日 一、实验目的 用C语言编写和调试数组的程序,包括一维数组和二维数组。从而对数组的程序设计有比较深入的了解。 二、内容及结果 1、程序二选择排序法 1)题目:用选择法对10个整数排序。 2)代码: #include<> int main() { int a[10]; int i,j,t; printf("input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} printf("the sorted numbers:\n");

printf("%d",a[i]); printf("\n"); return 0; } 3)运行截图: 2、程序二将一个数组中的值按逆序重新存放。 1)题目:将一个数组中的值按逆序重新存放。 2)代码: # include <> int main () { int a[5]={8,6,5,4,1}; int i,t; for(i=0;i<=2;i++) { t=a[i]; a[i]=a[4-i]; a[4-i]=t; }

printf("%d ",a[i]); return 0; } 3)运行截图: 3、程序三输出杨辉三角形(10行) 1)题目:输出杨辉三角形(10行) 2)代码: #include<> int main() { int yh[10][10]={0}; int i,j; for(i=0;i<10;i++) yh[i][0]=1; for(i=1;i<10;i++) for(j=1;j<10;j++) yh[i][j]=yh[i-1][j-1]+yh[i-1][j]; for(i=0;i<10;i++) { for(j=0;j

C语言程序设计实验报告

C语言程序设计实验报告 实验名称计算出1000以内10个素数之和 实验目的 1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。 2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。 3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。 实验内容 计算并输出1000以内的10个素数以及它们的和。 要求: 在程序内部加必要的注释。

由于偶数不是素数,可以不考虑对偶数的处理。 虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。 输出形式为:素数1+素数2+素数3+…+素数10=总和值。 算法描述流程图 Main函数: 判断素数: 源程序 #include #include int sushu(int n)/* 判断素数的函数*/ { int t,i; t=sqrt(n); for(i=2;i1;i-=2)/* x为奇数时,做函数计算*/ { n=sushu(i); /* 做判断素数的函数调用*/

( 励志天下) if(n!=0)/* 对素数的处理*/ { a[j]=n;/* 把素数由大至小存入数组a[ ]中*/ j++; if(j<11) m+=n; /* 统计前10个素数之和*/ } } if(j<10)/* 当素数个数小于10个时,结果输出*/ { for(i=0;i { n=a[i]; printf("%d",n); printf("+");

答案 实验报告_实验7_数组(学号_姓名)

实验报告_实验7_数组(学号_姓名) 一、实验目的: 1、理解数组的作用、特点; 2、掌握一维数组、二维的定义、引用、初始化,能够与循环结合实现批量数据处理(如输入、输出,比较大小,交换等); 3、掌握字符数组、字符串的使用; 4、熟悉打擂台等典型算法。 二、实验内容 1、(基础题)有一个数列,它的第一项为1,第二项为2,第三项为3,以后每一项都等于它的前三项之和。使用一维数组编程实现功能:计算该数列的前20项并赋值给数组,然后以逆序方式输出,每一行5个数据。如下图所示: 程序代码: #include int main() { int i; int f[20]={1,2,3}; for(i=3;i<20;i++) f[i]=f[i-1]+f[i-2]+f[i-3];//计算数列的值 for(i=19;i>=0;i--) { //每行输出5个数据 printf("%10d",f[i]); if(i%5==0)printf("\n"); } printf("\n\n"); return0; }

2、(基础题)青年歌手大奖赛,有7名评委进行打分,分数取值范围:0.0~10.0,试编程实现如下功能:从键盘输入7位评委给某一选手的评分,之后计算、输出该选手的平均得分(计算规则:去掉一个最高分和一个最低分,求出剩余5个得分的平均值)。如下图所示: (提示:使用一维数组来保存7位评委的给分,先计算所有评委给分总和,并找到最高分、最低分,然后用给分总和-最高分-最低分,再除5得到选手的平均得分,最后输出。) 程序代码: #include #define N7 int main() { double score[N]; double max,min,sum,aver; int i; printf("请输入%d位评委的给分:\n",N); for(i=0;iscore[i]) min=score[i]; sum=sum+score[i]; } sum=sum-max-min; aver=sum/(N-2); printf("\n去掉一个最高分:%.4f,去掉一个最低分:%.4f\n\n",max,min); printf("该选手的最后得分是:%.4f\n\n",aver); return0; } 3、(基础题)计算矩阵之和:

c语言实验报告(同名3848)

c语言实验报告(同名3848)

C语言程序设计实验报告 1实验目的 ⑴掌握指针的概念,会定义和使用指针变量; ⑵能正确使用变量的指针和指向变量的指针变量; ⑶能正确使用数组的指针和指向数组的指针变量; ⑷能正确使用字符串的指针和指向字符串的指针变量。 2实验内容 编写函数upCopy(char *new,char *old),将old指针所指向字符串中的大写字母复制到new指针指向的字符串中,并在主函数中调用该函数。 要求: ①画出算法的流程图。 ②在主函数中以直接初始化的方式输入一个字符串。 ③在主函数中调用upCopy()函数,输出old指针和new指针指向的字符串。 3算法描述流程图 4源程序 #include void upCopy(char *new,char *old); void main() { char a[20]=("foiwheEIfjiEfj"); char b[20]; upCopy(b,a);

printf("复制之前的字符串为:"); puts(a); printf("复制之后的字符串为:"); puts(b); } void upCopy(char *new,char *old) { int i,j; j=0; for(i=0;i<20;i++) { if(*(old+i)>=65&&*(old+i)<=90) { *(new+j)=*(old+i); j++; } } *(new+j)='\0'; } 5测试数据 无测试数据。 6运行结果

7出现问题及解决方法 出现的问题是: ①在运用scanf()函数时,由于跟printf()混淆,变量地址的位置忘记输取地 址符“&”,解决办法就是加上取地址符“&”。 ②在找到该插入的位置后,进行后面的数据向后一个数据为调换的时候,没 有注意到“++”运算和“--”运算全部都作用在q上面,都在改变存储的q 的值。解决方法就是用加1的运算来代替自增运算,这样就只有自减运算 在改变q的值,程序即可正常运行。 8实验心得 通过这个实验,掌握了如何定义数组的指针和指向数组的指针变量。同时在程序编写过程中学习到了如何用for循环来寻找数组中某个元素对应的下标。另外,在自己的错误中我还学到了要牢记C语言中各种函数的语法格式,这样才能避免一些不该犯的错误。同时在逻辑上要慎重的同时使用自增和自减运算符,这种逆运算会直接影响变量的存储值。 C语言程序设计实验报告 1实验目的 ⑴掌握指针的概念,会定义和使用指针变量; ⑵能正确使用变量的指针和指向变量的指针变量; ⑶能正确使用数组的指针和指向数组的指针变量; ⑷能正确使用字符串的指针和指向字符串的指针变量。

实验六 一维数组实验报告

*** 软件类实验报告 课程名称:C语言程序设计学号: 姓名: 班级: 指导教师: 开课学期: 学院: ***教务处

⑷一维数组排序。 四、实验过程及内容:(运行结果请抓图到对应题目的下方) 1. 先分析以下程序,写出运行结果,再上机检验。 2.程序填空题。下面程序的功能是9个评委给某个参赛选手打分,去掉一个最高分和一个最低分,求该参赛选手的平均分。填空完成程序。

实验结果: 3. 程序填空题。有数列1,1,2,4,7,13,24…,该数列的规律是从第4项起,每项是它的前三项之和。下列程序的功能是将该数列的前30项存放在一维数组中,输出时每行输出5个数。填空完成程序。 实验结果: 4. 程序改错题。下面程序的功能是将数组中的数按从大到小排序后输出。改正程序中的错误。 实验结果: 5. 程序改错题。某公司从用公用电话传递数据,数据是四位的整数,在传递过程中需要加密,加密规则为每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。改正程序中的错误。

实验结果: 6. 小楚参加了一个研究生考试培训班,共30次课,由于路途较远,每次都是打车去上课,来回的车费分别存储在数组a和b中,其中-1表示未去上课。 编程计算小楚参加培训班共打车花费多少钱?(要求保留1位小数,用循环实现) 输出结果的形式为: s=1234.5 a数组和b数组定义如下: double a[30]={31.0,32.0,30.3,32.8,30.5,30.6,31.0,32.8,-1,31.8,31.9,31.5,32.3,32.3,31.8,32.5 ,31.5,30.3,30.4,32.5,30.2,30.2,30.7,32.1,32.1,31.4,31.9,31.9,-1,30.5}; double b[30]={30.2,30.2,30.3,31.6,32.7,31.5,30.4,32.4,-1,31.0,31.8,32.1,31.6,31.4,32.4,32.1 , 32.5,32.3,32.5,31.4,31.2,30.3,32.3,30.7,31.3,30.2,31.1,30.5,-1,31.9}; 五、实验小结

VB实验三 实验报告 - 2016

实验报告三 实验目的 (1)掌握一维数组(静态、动态)定义及使用 (2)掌握二维数组(静态、动态)定义及使用 (3)掌握“控件数组”的使用 (4)掌握数组相关算法(求最值,排序,查找) (5)通过数组巩固循环及多重循环程序设计 实验内容 【实验1】对一维数组A(1 to 10)先赋值1、3、5、7、9、11、13、15、17、19,然后再输出。程序运行界面如下图所示。(5分) 掌握一维静态数组的定义及使用 实验结果: 【实验1 代码】 Option Base 1 Dim A(1 T o 10) As Integer Private Sub Command1_Click() Dim i As Integer For i = 1 T o 10 A(i) = 2 * i - 1 Next i End Sub

Private Sub Command2_Click() Dim i As Integer For i = 1 T o 10 Print A(i) Next i End Sub Private Sub Form_Load() End Sub 【实验1 典型结果】 【实验2】用Array函数对一维数组进行赋值,程序运行界面如下图(5分) 掌握一维动态数组的定义及使用 实验结果:

【实验2 代码】 Option Base 1 Dim a Private Sub Command1_Click() a = Array(1, 3, 5, 7, 9, 11, 13, 15, 17, 19) End Sub Private Sub Command2_Click() Dim i As Integer For i = 1 T o 10 Print a(i); Next i End Sub Private Sub Form_Load() End Sub 【实验2 典型结果】 【实验3】动态数组声明及输入输出,程序运行界面如下图所示。(10分)

相关文档