实验七 数组

合集下载

C语言实验-第七章-第九章2

C语言实验-第七章-第九章2

实验七:指针的应用【实验目的】1.掌握指针和指针变量,内存单元和地址、变量与地址、数组与地址的关系;2.掌握指针变量的定义和初始化,指针变量的引用方式;3.能正确使用数组的指针和指向数组的指针变量;【实验内容】1.填空题输入一个字符串,将其中的大写字母转换成小写字母,然后输出本程序主要是比较scanf()输入和gets()输入的区别#include <stdio.h>void main(){ char s[20];char *p=s;scanf(“%s”,p); /*注意用scanf()输入和gets()输入的区别*/while( 1 ){if( 2 ) *p=*p+ (‘a’-‘A’);p++ ;}puts ( 3 );}答案:1、*p!=’\0’2、(*p>='A')&&(*p<='Z')3、s运行结果:输入:Program输出:program输入:This is Program输出:this提示:scanf ()输入时遇到空格认为字符串结束,用gets()输入时只有遇到回车才认为字符串结束。

如键入any boy并回车,则2。

补充程序题输入15个整数存入一维数组,再按逆序重新调整该数组中元素的顺序然后再输出。

下面给出部分程序的内容,请将程序补充完整,然后上机调试。

部分程序清单如下:#include <stdio.h>void main(){ int a[15],*p1,*p2,x;for(p1=a;p1<a+15;p1++)scanf("%d",p1);for(p1=a,p2=a+14;p1<a+7;p1++,p2--){ x=*p1;*p1=*p2;*p2=x;}……}答案:for(p1=a;p1!=a+15;p1++)printf("%d ",*p1); // %d后面有一个空格运行结果:输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15输出:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1提示:(1)在整型数组中,没有结束标志,必须依靠数组中数据元素的个数控制循环次数。

c语言程序设计案例教程 实验项目-设计性题目参考答案

c语言程序设计案例教程 实验项目-设计性题目参考答案

C语言程序设计案例教程(含实验)设计性实验的程序参考答案实验项目一 C程序的编辑、编译、连接和运行题目:编写程序,要求屏幕上显示如下信息:************************ This is a C program .************************程序:#include <stdio.h>void main(){printf(“***********************”);printf(“* This is a C program .*”);printf(“***********************”);}实验项目二数据类型、运算符、表达式题目(1)程序填空:输入1 个实数x,计算并输出其平方根(保留1 位小数)。

填空1.double x,root;2.root=sqrt(x);(2)输入一个大写英文字母,输出相应的小写字母。

填空1.ch=ch+32;实验项目三顺序结构程序设计题目(1)编写程序,输入三角形的三边长a、b、c,求三角形面积area。

程序代码:#include <stdio.h>#include <mach.h>main(){float a,b,c,s,arer;printf(" 请输入三角形的三个边a,b,c:\n");scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("三角形的边为a=%7.2f, b=57.2f, c=%7.2f\n",a,b,c);printf("三角形的面积area=%7.2\n ",area);(2)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

C语言实验报告数组

C语言实验报告数组

实验七数组1.实验目的(1)熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;(2)熟练掌握字符数组和字符串函数的使用;(3)掌握与数组有关的常用算法如查找、排序等..2.实验指导(1)对任意一个一维型数组;从中找出数组元素的最大值和最小值并输出..要求:①数组有十个元素;②使用scanf函数实现数组元素的输入前给出必要的提示;③输出时;首先输出数组的十个元素;然后输出其最大值和最小值..分析指导:①算法分析:首先定义一个数组;通过循环从键盘输入十个数组元素的值;再通过另一个循环判断数组元素的最大只和最小值;②根据分析情况编写程序:include<stdio.h>mainint a10;i;max;min;printf"please input ten integers:";fori=0;i<=9;i++{scanf"%d";&ai;}max=a0;min=a0;fori=1;i<=9;i++{ifai>maxmax=ai;ifai<minmin=ai;}fori=0;i<=9;i++{printf"a%d=%d\n";i;ai;}printf"The maximum value is %d;and the minimum value is %d\n";max;min;运行程序;输入十个整数;如:21 37 6 17 9 12 89 76 35 59运行结果如下:(2)编写函数cmpStrchar s1;char s2比较两个字符串s1和 s2的大小..如果s1>s2;返回一个正数;s1=s2;返回0;s1<s2;返回一个负数;在主函数中调用该函数完成字符串的比较操作;并输出返回的值..要求:①不允许使用strcmp函数;②用gets函数在主函数中输入两个字符串;③实现触摸屏受托人函数;返回的正数或负数的绝对值应该是进行比较的两个字符传中相应字符的ASCII码的差值..分析指导:①算法分析:两个字符串从第一个字符开始一一对应进行比较;直到不相等的那个字符;从而求得它们的ASCII码的差值..比如;‘A’与‘C’相比;由于‘A’<‘C’;应输出负数;由于‘A’与‘C’的ASCII码的差值为2;因此;应输出“-2”..同理;“And”和“Aid”比较;根据第二个字符比较结果;‘n’比‘I’大5;因此应输出‘5’;②根据分析情况编写程序:include<stdio.h>int cmpstrchar s1;char s2{int i;diff;i=0;whiles1i==s2i&&s1i='\0'i++;ifs1i=='\0'&&s2i=='\0'diff=0;elsediff=s1i-s2i;return diff;}void main{int z;char s1100;s2100;printf"input the first string:";//输入字符串1gets s1;printf"input the second string:";//输入字符串2getss2;z=cmpstrs1;s2;//输出比较结果printf"the difference between two strings is %d\n";z;}查看运行结果如下:重新输入两个字符串meet;mood运行结果如下:(3)再给定的字符串中查找指定的字符..要求:①字符串采用直接初始化的方式处理;②通过scanf函数读入一个任意字符;③在字符串中查找该字符;如果存在该字符;输出该字符在字符串中的一次出现的位置;如果再给定的字符串中不存在该字符;则给出相应的说明信息..include<stdio.h>void main{int i;char ch;char s=" program";printf" 输入一个英文字母: ";scanf"%c";&ch;for i=0;si='\0';i++{if si==chbreak;}if i<7printf"s%d=%c\n";i;ch;elseprintf"No founded\n";}输入一个英文字母O运行程序如下:再次输入一个英文字母w运行程序如下:(4)首先输入一个大于二且小于十的整数n;然后定义一个二维整型数组nn;初始化该数组;讲述组中最大元素所在的行和最小元素所在的行对调..要求:①nn数组元素的值由scanf函数从键盘输入假定最大值最小值不在同一行上;然后输出该数组;②查找最大值最小值所在的行;将数组中最大元素所在的行和最小元素所在的行对调;并输出对调后的数组;③为直观起见;数组按n行n列的方式输出;④修改程序;对最大值与最小值可能出现在一行种的情况进行处理.. include<stdio.h>main{long matrix99;min;max;temp;int i;j;n;nMax=0;nMin=0;printf"\nplease inpute n of matrix:\n";scanf"%d";&n;printf"\nplease inpute elements of matrix%d%d:\n";n;n; fori=0;i<n;i++forj=0;j<n;j++scanf"%ld";&matrixij;min=max=matrix00;fori=0;i<n;i++forj=0;j<n;j++{ifmatrixij>max{max=matrixij;nMax=i;}else ifmatrixij<min{min=matrixij;nMin=j;}}forj=0;j<n;j++{temp=matrixnMaxj;matrixnMaxj=matrixnMinj;matrixnMinj=temp;}printf"\nResult matrix:\n";fori=0;i<n;i++{forj=0;j<n;j++printf"%5ld";matrixij;printf"\n";}}输入一个数4;输入一个44的数组1 3 6 72 4 5 81 3 5 72 6 9 7运行程序如下:再次输入一个数字3;输入一个33的数组1 2 32 4 537 8运行程序如下:3 实验结论通过本次实验熟练的掌握一维数组、二维数组的定义、初始化和输入/输出方法以及字符数组和字符串函数的使用;还有就是掌握与数组有关的常用算法。

C语言上机实验1-18

C语言上机实验1-18

实验一C程序的运行环境及简单程序编写一、实验目的1.了解tc2.0编译系统的基本操作方法,学会独立使用该系统。

2.了解在该系统上如何编辑、编译、连接和运行一个C程序。

3.通过运行简单的C程序,初步了解C源程序的特点。

二、实验内容1.编写一个计算球体体积的程序,要求用户自行录入球体的半径。

参考公式V=4/3πr3.。

2.编写一个程序,要求用户输入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款。

运行结果:Ener a dollar amount:93$20 bills:4$10 bills:1$5 bills:0$1 bills:3实验二顺序结构程序设计一、实验目的1.熟悉C语言中的基本数据类型,掌握定义常量和变量以及对它们赋值的方法,了解数据输出时所用格式转换符。

2.掌握格式输入/输出函数的用法。

3.学会简单顺序程序的设计。

4.养成良好的程序设计习惯。

二、实验内容1.编写一个程序,对用户录入的产品信息进行格式化。

Enter item number:583Enter unit price:13.5Enter purchase date(mm/dd/yyyy):3/24/2010Item Unit PurchasePrice date583 $ 13.50 3/24/20102.编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数。

Enter a two-digit number:28The reversal is :82实验三选择结构程序设计一、实验目的1.熟练使用if、switch编写程序。

二、实验内容1.编写一个程序,确定一个数的位数。

Enter a number:374The number 374 has 3 digits假设输入的数最多不超过4位。

提示:利用if语句进行数的判定。

例如,如果数在0到9之间,那么位数为1;如果数在10到99之间,那么位数为2。

C语言上机实验试题

C语言上机实验试题

实验一初识Visual C++6.0环境及运行C实例作业:一.选择题1.若int a, b; scanf("%d%d", &a, &b); 不可以用( A )作为输入的分隔符。

A), B)空格 C)回车 D)TAB键2.阅读以下程序,当输入数据的形式是:25,13,10<CR>,正确的输出结果是( D )。

main(){int x,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%d",x+y+z);}A)x+y+z=48 B)x+y+z=35 C)x+z=35 D)不确定值3.已知ch是字符型变量,下边正确的赋值语句是( B )A) ch='123'; B)ch='\xff'; C)ch='\08'; D) ch="\";二.填空题1. 以下程序的输出结果是(a= +1124,a=1124 ,x=30.141500,x= 30.142)main(){int a=1124;double x=30.1415;printf("a=%+6d,a=%-6d,x=%f,x=%7.3f",a,a,x,x);}2.以下程序的输出结果是( 36.750000 ) main(){int x=10;float y=26.75;printf("%f",x+y);}实验二 C程序的调试及运算符作业:1.指出下面的是标识符、关键字还是常量。

abc,2,new,struct,″opiu″ ,′k′, ″k″,false ,bnm,true,0xad,045,if ,goto解: abc是标识符,2是整型常量,new、struct是关键字,″opiu″是字符串常量,′k′是字符常量,″k″ 是字符串常量,false是布尔常量,bnm 是标识符,true是布尔常量,0xad是十六进制的整型常量,045是八进制的整型常量,if、goto都是关键字。

C语言实验报告

C语言实验报告

中南民族大学管理学院学生实验报告课程名称:C程序语言设计姓名:郭晋学号:10056006年级:2010专业:信息管理与信息系统指导教师:李超锋实验地点:管理学院综合实验室2010 学年至20 11 学年度第2 学期目录实验一熟悉C语言的开发环境和C程序的上机步骤实验二基本数据类型及数据的输入输出实验三运算符及表达式实验四顺序结构程序设计实验五选择结构程序设计实验六循环结构程序设计实验七数组及其应用实验八函数及其应用实验九指针及其应用实验(一)熟悉C语言的开发环境和C程序的上机步骤实验时间:2011.3.29同组人员:郭晋,金亚男实验目的:1,了解T urb C3.0编译系统,熟悉各菜单的功能,掌握在该系统上编辑,编译,连接,运行一个C程序的方法。

2,通过调试,运行简单的C程序,初步了解C语言程序的特点。

实验内容:1.编写一个C程序,求一个圆的面积。

我们的程序设计#include<stdio.h>void main(){float r,s;scanf("%f",&r);s=3.14*r*r;printf("s=%f",s);}2.编写程序求任意三个书的最大值。

我们的程序设计#include<stdio.h>void main(){int a,b,c,max;scanf("%d,%d,%d" ,&a,&b,&c);if(a>b&&a>c)max=a;if(b>a&&b>c)max=b;if(c>a&&c>b)max=c;printf("max=%d\n",max);}实验步骤:1.首先,我们两人先根据题目中的编程要求确定实验步骤,分别写下相应的编程语言进行比较,未出现明显的分歧。

2.打开Turb C 程序,然后将刚刚确定的C语言程序输入,打开Proiles,进行系统纠错,看是否出现错误或者警告,进行相应的调试。

实验七 二维数组实验报告

实验七 二维数组实验报告

***软件类实验报告课程名称:C语言程序设计学号:姓名:班级:指导教师:开课学期:学院:***教务处⑶二维数组处理矩阵问题。

四、实验过程及内容:(运行结果请抓图到对应题目的下方)1.输入下面的程序,说明程序的功能并分析运行结果。

2.程序填空题。

加法口诀表。

输入1个正整数n(1≤n≤10),输出一张10以内的加法口诀表。

加数与被加数都不大于n(将加数、被加数、和放入一个二维数组中,再输出该数组),程序运行结果如图7-1所示。

填空完成程序。

实验结果:3. 程序填空题。

下列程序定义了M×N的二维数组,并在主函数中对其赋值。

函数fun()的功能是计算数组周边元素的平均值并作为函数值返回给主函数。

实验结果:4. 编程insert函数,insert函数的功能是:实现在字符串s的指定的下标位置插入另一个字符串t。

例如:字符串s为“I am a boy.”,t为“good ”,调用insert(s,7,t);则s结果为“I am a good boy.”。

主函数框架如下:#include "stdio.h"#include "string.h"void main(){char s[100]="I am a boy.",t[50]="good ";void insert(char s[],int n,char t[]);insert(s,7,t);puts(s);}请完成insert函数的定义。

实验结果:5. 程序改错题。

打印九九乘法表。

6.编写程序实现,求3*3矩阵两条对角线元素之和五、实验小结。

C语言程序设计教程上机实验--学生版(精品)

C语言程序设计教程上机实验--学生版(精品)

实验一上机操作初步一、实验内容:说明:前三题为必做题目,后两题为选做题目。

1、输出入下信息:(实验指导书P79)*************************Very Good*************************2、计算两个整数的和与积。

(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。

(书P3)4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。

二、参考答案:1、#include <stdio.h>void main( ){ printf(“********************\n”);printf(“ Very Good\n”);printf(“********************\n”);}2、#include <stdio.h>void main( ){ int a,b,c,d;printf(“Please enter a,b:”);scanf(“%d,%d”,&a,&b);c=a+b;d=a*b;printf(“%d+%d=%d\n”,a,b,c);printf(“%d*%d=%d\n”,a,b,d);}3、#include <stdio.h>#include <math.h>void main( ){ double x,s;printf(“Please input value of x:”);scanf(“%lf”,&x);s=cos(x);printf(“cos(%lf)=%lf\n”,x,s);}4、#include <stdio.h>void main( ){ printf(“==================================\n”);printf(“ 1 输入数据 2 修改数据\n”);printf(“ 3 查询数据 4 打印数据\n”);printf(“===================================\n”);}5、#include <stdio.h>void main( ){ int x,y,t;printf(“Please enter x and y:”);scanf(“%d%d”,&x,&y);t=x; x=y; y=t;printf(“After swap:x=%d,y=%d\n”,x,y);}实验二简单的C程序设计一、实验内容:说明:前四题为必做题目,后两题为选做题目。

C语言实验报告参考答案

C语言实验报告参考答案

C语言实验报告参考答案长沙理工大学2010C语言实验报告参考答案实验一熟悉C语言程序开发环境及数据描述四、程序清单1.编写程序实现在屏幕上显示以下结果:The dress is longThe shoes are bigThe trousers are black答案:#includemain(){printf("The dress is long\n");printf("The shoes are big\n");printf("The trousers are black\n");}2.改错题(将正确程序写在指定位置)正确的程序为:#includemain(){printf("商品名称价格\n");printf("TCL电视机¥7600\n");printf("美的空调¥2000\n");printf("SunRose键盘¥50.5\n");2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。

答案:#includemain(){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);}4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b 赋给c;当a<=b时,将a 赋给c。

(提示:用条件运算符) 答案:#includeint a,b,c;a=0;b=-10;c= (a>b) ? b:a;printf("c = %d\n",c);}五、调试和测试结果1.编译、连接无错,运行后屏幕上显示以下结果:The dress is longThe shoes are bigThe trousers are black3、编译、连接无错,运行后屏幕上显示以下结果:a/b的商=7a/c的商=3a/b的余数=10a/c的余数=154. 编译、连接无错,运行后屏幕上显示以下结果:c =-10实验二顺序结构程序设计四、程序清单1.键盘输入与屏幕输出练习问题1 D 。

如何使用Visual C++6.0

如何使用Visual C++6.0

精心整理C程序设计基础上机实验指导书李文杰、李桂芝、鱼涛编写实验九函数及程序结构(二)实验十指针的应用说明C程序设计同其他程序设计一样,使实践性很强的课程。

除了要听好课,多看课外书外,还需大量的上机实践才能更好地理解和掌握所学到的内容。

一般来说,上机和讲课时间之比应不少于1:1。

但由于目前各校安排的教学时数限制,课内时间将更多的精力用于讲课上,课内安排的上机时间相对较少,学生不要因此对上机的重要性有所误解。

学生应在课外再花一定的时间进行C语言的上机实践,这样才能学好该门课。

⑴实验目的和内容。

⑵程序说明,包括程序结构、各模块的算法(N-S图表示)。

⑶打印出的调试正确的源程序。

⑷打印出的程序运行记录(包括对不同测试数据的运行结果)。

⑸针对实验步骤中提出的问题,写出解决办法及对运行结果的分析。

怎样学习C语言很多同学对学习C语言感到很难,尤其是在各高校将C语言放在大学第一学年教学时经常会考试不及格。

究竟怎样才能学好C语言?这里将我对C语言本逐行啃,而是学习它们的例程。

学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止。

这一过程,就和我们学习任何其他语言比如英语和汉语一样。

我们大家都有体会,我们学习一门语言,都是从最基本的语法开始,然后学习一些字和词,再来学习一些词组或句子,然后再用词组和句子组成一段话,表达一个简单这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。

实验一C程序集成开发环境熟悉一、实验目的掌握在VisualC++6.0集成开发环境下怎样编辑、编译、连接、执行、修改和调试C语言程序。

实验七二维数组程序设计

实验七二维数组程序设计

实验七二维数组程序设计实验七二维数组程序设计一、实验学时 2学时二、实验目的(一)掌握二维数组的定义、赋值及输入输出的方法;(二)掌握与二维数组有关的算法如查找、矩阵转置等;(三)掌握在程序设计中使用数组的方法。

数组是非常重要的数据类型,循环中使用数组能更好地发挥循环的作用,有些问题不使用数组难以实现。

(四)掌握在VC++环境下上机调试二维数组程序的方法,并对结果进行分析。

三、预习要求熟悉二维数组的定义、引用和相关算法(求最大值、最小值)的程序设计,同时要掌握在程序设计中利用双重循环来实现二维数组的输入和输出。

四、实验内容(一)二维数组的初始化,即给二维数组的各个元素赋初值。

下面的几个程序都能为数组元素赋值,请输入程序并运行,比较这些赋值方法有何异同。

1.在定义数组的同时对数组元素分行初始化。

/* c7-1.c *//*二维数组的初始化(分行)*/#include "stdio.h"void main( ){ int i,j,a[2][3]={{1,2,3},{4,5,6}};for(i=0; i<2; i++){ for(j=0; j<3; j++)printf("%d ",a[i][j]);printf("\n");}}2.不分行的初始化。

把{ }中的数据依次赋值给数组的各个元素。

/* c7-2.c *//*二维数组的初始化(不分行)*/#include "stdio.h"void main( ){ int i,j,a[2][3]={1,2,3,4,5,6};for(i=0;i<2;i++){ for(j=0;j<3;j++)printf("%d ",a[i][j]);printf("\n");}}3.为部分数组元素初始化。

如:数组定义语句为:int i,j,a[2][3]={{1,2},{4}};4.可以省略第一维的定义,但不能省略第二维的定义。

实验07-1参考答案

实验07-1参考答案

实验七-1 数组程序设计班级:学号:姓名:评分:一.【实验目的】1、熟练掌握使用一维数组编程的方法。

2、熟练掌握排序算术。

3、熟练掌握使用二维数组编程的方法。

4、进一步掌握C程序的调试方法和技巧。

二.【实验内容和步骤】1、程序调试题A.目标:进一步学习掌握程序调试的方法和技巧。

B.内容:从键盘输入一个正整数n(0<n<9)和一组(n个)有序的整数,再输入一个整数x,把x插入到这组数组中,使该组数据仍然有序。

改正程序中的错误,使其实现程序的功能。

(注:程序文件保存在“调试示例”文件夹中,文件名为error07_1.cpp)①调试正确的源程序清单#include <stdio.h>int main( ){int i, j, n, x, a[10];printf("输入数据的个数n:");scanf("%d", &n);printf("输入%d个整数:", n);for(i = 0; i < n; i++)scanf("%d", &a[i]);printf("输入要插入的整数:");scanf("%d", &x);for(i = 0; i < n; i++){if(x > a[i]) continue;j = n - 1;while(j >= i){ /* 调试时设置断点 */a[j+1] = a[j];j--;} /* 调试时设置断点 */a[i] = x;break;}if(i == n) a[n]=x;for(i = 0; i < n + 1; i++)printf("%d ", a[i]);putchar('\n');return 0;}②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。

计算机实验报告

计算机实验报告

计算机实验报告C语言程序设计实验实验指导实验一 Visual C++6.0开发环境使用大气科学专业实验日期 4月 18日姓名:学号1(实验目的(1)熟悉Visual C++6.0集成开发环境。

(2)掌握C语言程序的书写格式和,语言程序的结构。

(3)掌握C语言上机步骤,了解C程序的运行方法。

(4)能够熟练地掌握C语言程序的调试方法和步骤2. 实验内容输入如下程序,实现两个数的乘积。

#include (stdio.h);int main(){x=10,y=20p=prodct(x,t)printf("The product is : ",p)int prodct(int a ,int b )int cc=a*breturn c}(1)在编辑状态下照原样键入上述程序。

C语言程序设计实验(2)编译并运行上述程序,记下所给出的出错信息。

(3)再编译执行纠错后的程序。

如还有错误,再编辑改正,直到不出现语法错误为止。

C语言程序设计实验3(分析与讨论(1)记下在调试过程中所发现的错误、系统给出的出错信息和对策。

分析讨论成功或失败的原因。

(2)总结,程序的结构和书写规则。

实验心得:通过本次实验,我了解到C语言的特点,初步认识程序设计方法和程序设计一般步骤,掌握C语言程序编译、链接和运行过程,为我进一步学好C语言打下了基础。

C语言程序设计实验实验二数据类型、运算符和表达式大气科学专业实验日期4 月 25日姓名:刘园园学号201513013271(实验目的(1)理解常用运行符的功能、优先级和结合性。

(2)熟练掌握算术表达式的求值规则。

(3)熟练使用赋值表达式。

(4)理解自加、自减运算符和逗号运算符(5)掌握关系表达式和逻辑表达式的求值2(实验内容(1)整数相除#include<stdio.h>int main(){int a=5,b=7,c=100,d,e,f;d=a/b*c;e=a*c/b;f=c/b*a;printf("d=%d , e=%d ,f=%d\n",d,e,f);return 0;}(2)自加、自减运算#include<stdio.h>int main(){int a=5,b=8;printf("a++=%d\n",a++); printf("a=%d\n",a); printf("++b=%d\n",++b); printf("b=%d\n",b); return 0;}C语言程序设计实验(3)关系运算和逻辑运算#include<stdio.h>int main(){int a=5,b=8,c=8;printf("%d,%d,%d,%d\n",a==b&&a==c,a!=b&&a!=c,a>=b&&a>=c,a<=b&&a<=c); printf("%d,%d\n",a<=b||a>=c,a==b||b==c);printf("%d,%d,%d,%d\n",!(a==b),!(a>=b),!(a>=c),!(a<=b));return 0;}C语言程序设计实验(1)在编辑状态下输入上述程序。

头歌云课C语言实验七:C语言-数组

头歌云课C语言实验七:C语言-数组

头歌云课(C语言)动动你可爱的小手为小编点点关注吧实验七:C语言-数组1选择法排序2二分段交换3计数器4复制字符数组5进制转换6回文判断第1关: 选择法排序本关任务:使用选择法排序编写一个能为数组进行升序排序的程序。

相关知识选择法排序选择法排序,是从n个数中先找出最大或者最小的数放到数组的最前面或最后面,再在剩余的n-1个数中找出最大或者最小的数放到数组的次前面或倒数第2单元,以此类推,直至排序完毕。

下图显示了从n个数中寻找最大值进行升序的排序过程:进行升序排序时,也可以寻找最小值并将其与最前面的数进行交换。

遍历数组通俗的理解,遍历数组就是:把数组中的元素都看一遍。

示例如下:int arr[5] = {1,3,5,7,9};int length = 5;for(int i = 0 ; i<length ; i++){printf(" %d ",arr[i]);}输出:1 3 5 7 9如何交换数组的值交换数组中的两个值,需要借助中间变量。

(优化:请自行思考,如何不使用中间变量交换两个变量的值)示例如下,交换数组的第二个和第三个值:int arr[5] = {1,3,5,7,9};int temp;temp = arr[1];arr[1] = arr[2];arr[2] = temp;数组长度题目要求数组长度不大于n时,可以使用固定数组,示例如下:#define SIZE 100...int arr[SIZE];...但往往会造成空间浪费,为了节省空间我们可以使用malloc创建动态数组,感兴趣的同学可以去了解一下,此处使用固定数组即可。

编程要求根据提示,在右侧编辑器补充void inArray(int arr[],int n)、void selectSort(int arr[],int n)和void outArray(int arr[],int n)的函数定义,这三个函数的输入均是一个长度不大于100的无序数组arr,以及数组的长度n,请在函数selectSort中使用选择法对数组元素进行升序排序,函数inArray用于输入数组的n个元素,函数outArray用于输出数组的n个元素。

vb6.0实验七习题与答案

vb6.0实验七习题与答案

实验七专业_____________ 班级________年级________姓名______________学号_______________一、实验目的1、掌握数组(动态、静态数组、可变数组、数组初始化、控件数组)的定义方法。

2、正确理解和使用数组的下标,熟练掌握数组的引用、赋值输入和输出。

3、学会会一些实际问题二、实验内容1、按图设计窗体:要求,编写适当的事件过程实现①单击“生成”按钮,随机生成的20个10~100之间的整数存放数组a中并在Text1中显示②单击“显示偶数”按钮,在Text2中显示其的所有偶数③单击“显示奇数”按钮,在Text3中显示其的所有奇数D i m a(1T o20)A s I n t e g e r'因为在各个按钮过程都要用到数组a(),所以要定义为全局数组P r i v a t e S u b C o m m a n d1_C l i c k()R a n d o m i z eF o r i=1T o20a(i)=I n t(R n d*81+10)T e x t1.T e x t=T e x t1.T e x t&a(i)&""N e x t iE n d S u bP r i v a t e S u b C o m m a n d2_C l i c k()F o r i=1T o20I f i M o d2=0T h e n T e x t2.T e x t=T e x t2.T e x t&a(i)&""N e x t iE n d S u bP r i v a t e S u b C o m m a n d3_C l i c k()F o r i=1T o20I f i M o d2<>0T h e n T e x t3.T e x t=T e x t3.T e x t&a(i)&""N e x t iE n d S u b2、按图设计窗体:要求,编写适当的事件过程实现①单击“生成数组”按钮,随机生成的20个10~99之间的整数存放数组a中并在列表框List1的列表项显示②单击“求极值”按钮,在Text1中显示其中的最大数,在Text2中显示其中最小数D i m a(20)A s I n t e g e rP r i v a t e S u b C o m m a n d1_C l i c k()R a n d o m i z eF o r i=1T o20a(i)=I n t(R n d*90+10)L i s t1.A d d I t e m a(i)N e x t iE n d S u bP r i v a t e S u b C o m m a n d2_C l i c k()D i m m a x%,m i n%m a x=a(1):m i n=a(1)F o r i=1T o20I f m a x<a(i)T h e n m a x=a(i)I f m i n>a(i)T h e n m i n=a(i)N e x t iT e x t1.T e x t=m a x:T e x t2.T e x t=m i nE n d S u b3、要求,编写适当的事件过程实现①单击“生成”按钮,随机生成的30个ASCII值为65~122之间的字符存放数组s中并显示在Text1②单击“分类”按钮,在Text2中显示其中的大写字母,在Text3中显示其中小写字母D i m a(1T o20)A s S t r i n gP r i v a t e S u b C o m m a n d1_C l i c k()T e x t1.T e x t=""R a n d o m i z eF o r i=1T o20a(i)=C h r(I n t(R n d*58+65))T e x t1.T e x t=T e x t1.T e x t&a(i)&""N e x t iE n d S u bP r i v a t e S u b C o m m a n d2_C l i c k()T e x t2.T e x t="":T e x t3.T e x t=""F o r i=1T o20I f A s c(a(i))>=65A n d A s c(a(i))<=90T h e n T e x t2.T e x t=T e x t2.T e x t&a(i)&""I f A s c(a(i))>=97A n d A s c(a(i))<=122T h e n T e x t3.T e x t=T e x t3.T e x t&a(i)&""N e x t iE n d S u b4、按图设计窗体:要求,编写适当的事件过程实现①单击“生成”按钮,随机生成的30个值为10~99之间的整数存放数组a中并显示在Text1②单击“处理”,选出其中能被3整除但不能被6整除的数,显示在Text2中,并统计其个数和平均值(保留小数以下一位)显示在Text3和Text4中③单击“退出”,结束运行D i m a(1T o30)A s I n t e g e rP r i v a t e S u b C o m m a n d1_C l i c k()T e x t1.T e x t=""R a n d o m i z eF o r i=1T o30a(i)=I n t(R n d*90+10)T e x t1.T e x t=T e x t1.T e x t&a(i)&""N e x t iE n d S u bP r i v a t e S u b C o m m a n d2_C l i c k()D i m s u m A s I n t e g e rT e x t2.T e x t=""F o r i=1T o30I f a(i)M o d3=0A n d a(i)M o d6<>0T h e nT e x t2.T e x t=T e x t2.T e x t&a(i)&""k=k+1'统计符合条件的个数ks u m=s u m+a(i)'统计符合条件的数的和E n d I fN e x t iT e x t3.T e x t=kT e x t4.T e x t=s u m/kE n d S u bP r i v a t e S u b C o m m a n d3_C l i c k()E n dE n d S u b5、按图设计窗体:要求,十个文本框为控件数组,编写适当的事件过程实现①单击“评委给歌手打分”,随机生成10个9.0~9.9依次显示在文本框控件数组中②单击“评分”,把十个评委中去掉一个最高和一个最低分后,平均分显示的Text2中D i m a(9)A s S i n g l eP r i v a t e S u b C o m m a n d1_C l i c k()R a n d o m i z eF o r i=0T o9T e x t1(i)=F o r m a t(R n d+9,"0.0")N e x t iE n d S u bP r i v a t e S u b C o m m a n d2_C l i c k()D i m m a x!,m i n!,s u m!m a x=T e x t1(0):m i n=T e x t1(0)F o r i=0T o9s u m=s u m+T e x t1(i)I f m a x<T e x t1(i)T h e n m a x=T e x t1(i)I f m i n>T e x t1(i)T h e n m i n=T e x t1(i)N e x t iT e x t2.T e x t=(s u m-m a x-m i n)/8E n d S u b6、打开工程文件7_6.vbp,其窗体中有一个名为Text1的文本框数组,下标从0开始,程序运行时,单击“产生随机数”就会产生10 个3位的整数并放入到Text1数组中;单击“重排数据”,将把其中的奇数移到前,偶数移到后面。

C语言上机操作指导实验五数组(1) 实验八函数(2)

C语言上机操作指导实验五数组(1) 实验八函数(2)

第 4页,共 14页
《C 程序设计》实验及课程设计项目报告
下标= a 2
0
1 8
2 16
3 14
4 1 10
5 8
6
7 16
8 4
9 20
10 6
部分源代码: k=0; if ( a[k]<a[1] ) 真 k=1; 执行 k=0; if ( a[k]<a[2] ) 假 for ( i=1; i<10; i++ ) k=2; 不执行 if ( a[k]<a[i] ) if ( a[k]<a[3] ) 真 k=i; k=3; 执行 相关知识:①删除数组元素的概念;②移动数组元素的算法;③求最大值位置的算法。 7. 以下 sy30.c 程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输 出低于平均分的学生成绩,用输入负数结束输入。请填空: #include <stdio.h> void main( ) { float x[1000], sum=0.0, ave, a; int n=0, i; printf ("Enter mark : \n") ; scanf("%f", &a); while (a>=0.0 && n<1000) { sum+= ; x[n]= ; n++; scanf("%f", &a); } ave= ; printf ("Output : \n"); printf ("ave = %f\n", ave); for (i=0; i<n; i++) if ( ) printf("%f\n", x[i]); } 8.打印如下杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 编程点拨: 杨辉三角形有如下特点: 1 只有下半三角形有确定的值; 2 第一列和对角线上的元素值都是 1; 3 其它元素值均是前一行同一列元素与前一行前一列元素之和。

实验七程序设计实验

实验七程序设计实验

实验七程序设计实验一、实验目的本实验旨在通过程序设计的方式,培养学生的编程思维和解决实际问题的能力。

通过完成一系列编程任务,学生将能够熟练掌握程序设计的基本技巧,包括算法的实现、数据结构的应用、程序的调试和优化等。

二、实验环境1. 编程语言:C/C++/Java/Python等。

2. 开发环境:Visual Studio, Eclipse, PyCharm等。

3. 硬件要求:具备基本的计算机操作能力的个人电脑。

三、实验内容本次实验分为以下几个部分:1. 基础编程练习- 编写一个简单的程序,实现基本的输入输出功能。

- 实现一个简单的数学计算器,能够进行加、减、乘、除等基本运算。

2. 数据结构应用- 使用数组或链表实现一个简单的学生信息管理系统。

- 利用栈或队列实现一个简单的表达式求值程序。

3. 算法实现- 实现排序算法(如冒泡排序、选择排序、插入排序等)。

- 实现查找算法(如线性查找、二分查找等)。

4. 综合应用- 结合前面学习的数据结构和算法,实现一个图书管理系统。

- 设计并实现一个简单的文本编辑器,具备基本的文本编辑功能。

四、实验步骤1. 环境搭建:在个人电脑上安装所需的编程语言开发环境。

2. 需求分析:明确实验任务的具体要求,分析需要实现的功能。

3. 设计阶段:根据需求分析结果,设计程序的架构和数据结构。

4. 编码实现:按照设计文档,编写程序代码。

5. 测试阶段:对编写的程序进行测试,确保其功能正确无误。

6. 调试优化:根据测试结果,对程序进行调试和优化,提高程序的稳定性和效率。

7. 文档编写:编写实验报告,记录实验过程和结果。

五、实验要求1. 严格按照实验步骤进行操作,确保实验的顺利进行。

2. 代码编写要规范,注释要清晰,便于他人阅读和理解。

3. 测试要全面,尽量覆盖所有可能的输入情况,确保程序的健壮性。

4. 实验报告要详细记录实验过程,包括遇到的问题及解决方案。

六、实验注意事项1. 遵守实验室的规章制度,保持实验室的整洁和安静。

c语言实验报告

c语言实验报告

实验报告课程名称C语言程序设计教程实验项目名称实验七数组班级与班级代码信息管理与信息系统1班112511011 实验室名称(或课室) SS-304专业信息管理与信息系统任课教师张军学号:11251101113姓名:冯启珊实验日期:2011 年12 月16 日广东商学院教务处制姓名冯启珊实验报告成绩评语:指导教师(签名)年月日说明:指导教师评分后,实验报告交院(系)办公室保存。

正文实验报告要求与排版字号:1.实验报告按实验项目填写,每个学生做完实验必须填写2.实验报告可参照如下内容格式写作:实验目的、实验原理、实验设备、结果预测、实验步骤、实验结果、实验分析、结论。

3.实验报告排版打印统一用A4(21 X 29.7cm)格式。

4.标题用小二号黑体加粗,正文用四号宋体。

行距为固定值20磅。

5.页面上边距2.54cm,下边距2.54 cm,左边距3cm,右边距2.2mm;6.实验报告页码从正文页面起计算。

页码字号,选用小四号粗黑体并居中。

一、实验目的通过做关于数组的十一个实验,实现:1、熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。

2、熟练掌握字符数组和字符串函数的应用。

3、熟练掌握一维数组以及一维数组元素的存储关系。

4、熟练掌握一维数组和二维数组的使用以及在函数中的传递。

5、通过做试验实践掌握和数组有关的算法。

二、实验原理数组是指具有形同类型的数据组成的序列,为有序集合。

通过一维数组、二维数组、字符数组和字符串函数的应用,结合前面所学的循环语句等,可将以前复杂的程序简单化,简单而方便地设计程序完成相应的功能。

三、实验设备C++软件四、实验步骤第一题:输入并运行程序main(){int i,a[5],b[5],c[5]; /*变量说明,数组说明*/a[0]=2,a[1]=6,a[2]=4,a[3]=8,a[4]=9;b[0]=2,b[1]=7,b[2]=9,b[3]=5,b[4]=3;for (i=0;i<=4;i++){c[i]=a[i]*b[i];printf("c[%d]=%d\n",i,c[i]);}}运行结果为:c[0]=4C[1]=42C[2]=36C[3]=40C[4]=27第二题:输入并运行程序main(){int sum,i;int a[]={5,8,4,6,4,3,8,2,4,5,6}; /*数组元素初始化*/sum=0;for(i=0;i<=10;i++)sum+=a[i]; /*求数组元素之和*/printf("sum=%d\n",sum);}Sum=55第三题:程序实现:从键盘输入5个数,输出最大、最小元素的值以及它们的下标。

[练习]C语言实验七、函数程序设计答案

[练习]C语言实验七、函数程序设计答案

实验七 函数及程序结构(二)一、实验目的1.掌握函数的嵌套调用和递归调用2.掌握数组做函数参数的用法3.掌握全局变量和局部变量的用法。

?4.掌握变量的存储类别。

?二、实验内容1.[目的]掌握函数的嵌套调用方法。

[题目内容] 编写程序计算cb a 。

要求设计主函数main()读取a 、b 、c 的值,并调用ratio 函数计算a/(b-c)的值。

如果(b-c)=0那么ratio 就不能计算,因此,ratio 函数调用另一个函数dif ,以测试(b-c)的差是否为零,如果b 不等于c ,dif 返回1,否则返回0。

[输入] a 、b 、c 的值[输出] 计算结果[提示] main 函数调用ratio 函数,ratio 函数调用dif 函数。

三个函数平行定义,嵌套调用。

#include <stdio.h>void main(){float ratio(int x,int y ,int z);int dif(int x,int y);int a,b,c;float d;printf("请输入a,b,c:");scanf("%d%d%d",&a,&b,&c);d=ratio(a,b,c);if(d==0.0) printf("b-c 为零。

");else printf("%d/(%d-%d)=%f\n",a,b,c,d);}float ratio(int x,int y ,int z){if(dif(y ,z)==1) return (float)x/(float)(y-z);else return 0.0;}int dif(int x,int y){if(x==y) return 0;else return 1;}2.[目的]利用标准库提供的随机数功能。

[题目内容]编写程序,帮助小学生练习乘法计算。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
scanf("%d", &a[i]); /*---------*/
for(i=0; i<n; i++) printf("%d ", a[i]);
printf("\n"); } }
7.4 交换最小值和最大值
程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个正整数 n (1<n<=10),再输入 n 个整数,将最小值与第一个数交换,最大值与最后 一个数交换,然后输出交换后的 n 个数。 例:括号内是说明 输入 3 (repeat=3) 543512 41567 554321 输出 13245 1567 14325
3 (repeat=3)
3164
3 10 8 1
512540 输出
max=6,index=1 max=10,index=0 max=5,index=2
(最大值 6 的下标是 1) (最大值 10 的下标是 0) (最大值 5 的下标是 2)
#include <stdio.h> int main( ) {
#include <stdio.h> int main( ) {
int ri, repeat; int i, index, n, t; int a[10];
scanf("%d", &repeat); for(ri=1; ri<=repeat; ri++){
scanf("%d", &n); for(i=0; i<n; i++)
实验七 数组
7.1 求平均值
程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个正整数 n (1<n<=10),再输入 n 个整数,输出平均值(保留 2 位小数)。 例:括号内是说明 输入 2 (repeat=2) 3 1 2 -6 5 12 2 5 4 0 输出 aver=-1.00 aver=4.60
#include <stdio.h> int main( ) {
int ri, repeat; int i, n, temp; int a[10];
scanf("%d", &repeat); for(ri=1; ri<=repeat; ri++){
scanf("%d", &n); for(i=0; i<n; i++)
#include <stdio.h> int main( ) {
int ri, repeat; int i, n, sum; float aver; int a[10];
scanf("%d", &repeat); for(ri=1; ri<=repeat; ri++){
scanf("%d", &n); for(i=0; i<n; i++)
scanf("%d", &a[i]); /*---------*/
printf("aver=%.2f\n", aver); } }
7.2 求最大值及其下标
程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个正整数 n (1<n<=10),再输入 n 个整数,输出最大值极其下标(设最大值惟一,下 标从 0 开始)。 例:括号内是说明 输入
for( i=0; i<=n; i++ ){ for( j=0; j<=n; j++ ) if(i==0&&j==0) printf( "%-4c", '+'); else if(i==0||j<=i) printf( "%-4d", a[i][j]); printf("\n");
} } }
7.8 判断上三角矩阵
} }
scanf("%d", &a[i]); /*---------*/
for(i=0; i<n; i++) printf("%d ", a[i]);
printf("\n"); } }
7.5 排序
程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个正整数 n (1<n<=10),再输入 n 个整数,将它们从大到小排序后输出。。 例:括号内是说明 输入 3 (repeat=3) 45176 3123 554321 输出 7651 321 54321
1
(repeat=1)
3
(n=3)
输出:
+123
12
234
3456
#include "stdio.h" int main( ) { int ri,repeat;
int i,j,n,a[10][10]; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){
scanf("%d",&n); /*---------*/
程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入 1 个正整数 n (1≤n≤6)和 n 阶方阵 a 中的元素,如果 a 是上三角矩阵, 输出"YES", 否 则, 输出"NO"。(上三角矩阵,即主对角线以下的元素都为 0, 主对角线为从矩阵的左上角至 右下角的连线) 例:括号内是说明
for(j=0;j<n;j++) scanf("%d",&a[i][j]);
/*---------*/ printf("sum=%d\n",sum);
} }
7.7 加法口诀表
程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入 1 个正整数 n(1≤n≤10), 输出一张 20 以内的加法口诀表. 加数与被加数都不大于 n, 分列第一行和第一列.(将加数、被加数、和放入一个二维数组中, 再输出该数组) 例:括号内是说明 输入:
scanf("%d",&n); for(i=0; i<n; i++)
for(j=0; j<n; j++) scanf("%d",&a[i][j]);
/*---------*/ if(flag) printf("a[%d][%d]=%d\n", row, col,a[row][col]); else printf("NO\n");
scanf("%d", &a[i]); /*---------*/
for(i=0; i<n; i++) printf("%d ", a[i]);
printf("\n"); } }
7.6 矩阵运算
程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 读入 1 个正整数 n(1≤n≤6), 再读入 n 阶方阵 a , 计算该矩阵除副对角线、最后一列和 最后一行以外的所有元素之和.(副对角线为从矩阵的右上角至左下角的连线) 例:括号内是说明 输入: 1 (repeat=1) 4 (n=4) 2341 5611 7181 1111 sum=35 (2+3+4+5+6+7+8=35)
输入:
2
(repeat=2)
3 1 2 3 0 4 5 0 0 6 (n=3)
2 1 0 -8 2 (n=2lude "stdio.h" #include "math.h" int main( ) { int ri,repeat;
int a[6][6],flag,i,j,n; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){
7.10 找鞍点(选作)
程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入 1 个正整数 n(1≤n≤6)和 n 阶方阵 a 中的元素,如果找到 a 的鞍点(鞍点的元素值 在该行上最大, 在该列上最小), 就输出它的下标, 否则,输出"NO"(设 a 最多有 1 个鞍点)。 例:括号内是说明 输入:
#include "stdio.h" int main( ) { int ri,repeat;
int a[6][6],i,j,n,sum; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){
相关文档
最新文档