实验6 数组

合集下载

C语言实验册完整答案

C语言实验册完整答案

实验2答案五.程序改错#include<stdi o.h>int main(void){int x=3,y;y = x*x;printf("%d = %d * %d\n",y,x,x); /* 输出*/printf("%d * %d = %d\n",x,x,y);return 0;}六、一般编程题6.1#include<stdio.h>int main(void){int x,y;printf("Input x: ");scanf("%d",&x);printf("Input y: ");scanf("%d",&y);printf("%d + %d = %d\n",x,y,x+y);printf("%d - %d = %d\n",x,y,x-y);printf("%d * %d = %d\n",x,y,x*y);printf("%d / %d = %d\n",x,y,x/y);printf("%d %% %d = %d\n",x,y,x%y);return 0;}6.2#include<stdio.h>int main(void){ float x; double y;printf("Input x: ");scanf("%f",&x);printf("Input y: ");scanf("%lf",&y);printf("%f + %f = %f\n",x,y,x+y);printf("%f - %f = %f\n",x,y,x-y);printf("%f * %f = %f\n",x,y,x*y);printf("%f / %f = %f\n",x,y,x/y);return 0;}6.3#include<stdio.h>int main(void){ char c;printf("Input c: ");scanf("%c",&c);printf("%c\n",c+32);return 0;}6.4#include<stdio.h>int main(void){int celsius,fahr;fahr = 150;celsius = 5*fahr/9 - 5*32/9;printf("fahr = %d, celsius = %d\n", fahr, celsius);return 0;} 如果使用公式9)32(5-⨯=f c 计算结果不一样,celsius = 65。

实验6 一维数组和二维数组

实验6  一维数组和二维数组
m=m+1;
if (a[i][j]<5)
printf("%3d",a[i][j]);}
printf("\n");
printf("żÊý¸öÊýΪ:%d\n",m);
}
4.已知一个二维数组:{{14,26,18,17},{24,37,21,8},{19,31,22,16},{7,19,14,26}},编程,输出该二维数组最小元素的行下标与列下标;计算并输出主对角线元素之和。
#include<stdio.h>
main()
{
int a[4][4]={{14,26,18,17},{24,37,21,8},{19,31,22,16},{7,19,14,26}},i,j,x,y,m,sum=0;
m=a[0][0];
for (i=0;i<4;i++)
for (j=0;j<4;j++)
i++;}
printf("\n");}
}
3.输入一个4行4列的二维数组,统计偶数的个数,并输出所有小于5的数。
#include<stdio.h>
main()
{
int a[4][4]={{2,6,7,9},{3,5,4,11},{12,8,1,13},{21,33,64,25}},i,j,m;
m=0;
}
if (m>a[i][j])
{m=a[i][j];
x=i;
y=j; }
printf("ÐÐϱêÓëÁÐϱê·Ö±ðΪ£º%d %d\n",x,y);
for (i=0;i<4;i++)

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

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 <stdio.h>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值。

《C语言程序设计》实验报告实验六

《C语言程序设计》实验报告实验六

《C语言程序设计》实验报告实验六使用指针的程序设计学号姓名一、实验目的1、掌握指针的概念,会定义和使用指针变量;2、能正确使用数组的指针和指向数组的指针变量;3、熟悉指针作为函数参数的定义和调用方法;4、能正确使用字符串的指针和指向字符串的指针变量。

二、实验内容1.分析下面的程序并上机运行程序,要求写出3组以上程序的运行结果。

#include <stdio.h>void main(){int *p1,*p2,*p;int a,b;printf("Input a b please");scanf("%d%d",&a,&b);p1=&a;p2=&b;if(a>b){ p=p1;p1=p2;p2=p;}printf("*p1=%d, *p2=%d\n",*p1,*p2);printf("a=%d, b=%d\n",a,b);}『运行结果:』输入1,2得:*p1=1,*p2=2a=1,b=2输入2,1得:*p1=1,*p2=2a=2,b=1输入56,123得:*p1=56,*p2=123a=56,b=1232.下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。

形参n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even 返回偶数之和。

请在下面空白处将实现这一功能的函数完善,并且调试运行出结果。

#include <stdio.h>#define N 10void fun(int *a,int n,int *odd,int *even){int m;*odd=0; *even=0;for(m=0;m<n;m++)if(*(a+m)%2==0)*even+=*(a+m);else*odd+=*(a+m);}void main(){int a[N]={1,10,2,3,19,6},i,n=6,odd,even;printf("The original data is:\n");for(i=0;i<n;i++)printf("%5d",*(a+i));printf("\n\n");fun(a,n,&odd,&even);printf("The sum of odd numbers:%d\n",odd);printf("The sum of even number:%d\n",even);}『运行结果:』3.编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现删除字符串str中和字符ch相等所有字符,然后输出字符串str。

实验六 一维数组实验报告

实验六 一维数组实验报告

***软件类实验报告课程名称: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.5a数组和b数组定义如下:doublea[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};doubleb[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};五、实验小结。

java实验报告--数组

java实验报告--数组

java实验报告--数组Java实验报告 - 数组引言:Java是一种广泛应用于软件开发的编程语言,其强大的数组功能使得它成为处理大量数据的理想选择。

本实验报告将探讨Java中数组的基本概念、使用方法以及一些常见的应用场景。

一、数组的定义与初始化在Java中,数组是一种用于存储多个相同类型元素的数据结构。

数组可以存储基本数据类型(如整数、浮点数等)或者对象。

声明一个数组需要指定元素的类型和数组的名称,然后使用关键字"new"来创建数组对象。

二、数组的访问与操作通过索引(index)可以访问数组中的元素,索引从0开始计数。

例如,对于一个长度为10的整数数组,可以使用arr[0]来访问第一个元素,arr[1]来访问第二个元素,以此类推。

数组的长度可以通过arr.length来获取。

三、数组的遍历与排序遍历数组是指逐个访问数组中的元素。

常用的遍历方法有使用for循环和foreach循环。

对于需要对数组进行排序的情况,可以使用Java提供的排序算法(如快速排序、冒泡排序等)或者使用Arrays类中的sort方法。

四、多维数组除了一维数组,Java还支持多维数组。

多维数组可以看作是数组的数组,可以用于存储表格、矩阵等结构化数据。

在声明多维数组时,需要指定每一维的长度。

五、数组的应用场景1. 数据存储与处理:数组可以用于存储和处理大量数据,如学生成绩、员工工资等。

通过数组,可以方便地进行数据的查找、排序和统计等操作。

2. 图像处理:图像可以用二维数组表示,每个元素代表一个像素点的颜色值。

通过对数组的操作,可以实现图像的旋转、缩放等功能。

3. 算法实现:许多算法的实现都需要使用数组,如查找算法、排序算法等。

数组的高效访问和操作使得算法的实现更加简洁和高效。

六、实验案例:数组的查找与统计为了更好地理解数组的应用,我们设计了一个实验案例:数组的查找与统计。

假设有一个整数数组,我们需要找到其中的最大值、最小值、平均值以及某个特定元素的出现次数。

实验6 PL_SQL复合数据类型

实验6 PL_SQL复合数据类型

《数据库开发技术》课程之实验六PL/SQL复合数据类型:记录、表和可变数组一、实验目的1.掌握如何创建PL/SQL 记录。

2.会用%ROWTYPE 属性创建一个记录。

3.掌握如何创建PL/SQL表和记录表。

4.掌握那些能获得复合数据信息的内置方法的使用。

5.掌握可变数组的使用。

二、实验内容和要求1.根据表emp的全部字段定义记录变量emp_record。

用SELECT语句将编号为7788的雇员的全部字段对应地存入该记录变量,最后输出记录变量的雇员名称字段emp_record.ename和雇员工资字段的内容。

执行结果如下:SCOTT的工资为:3000PL/SQL 过程已成功完成。

2.声明一张Index_By表,用来接收并存储DEPT表的信息,把部门号作为键,不要忘记部门号是10的倍数。

使用循环从DEPT表中将所有部门信息检索到PL/SQL记录表中,然后用另一个循环来显示表中的这些信息。

执行结果为:10, ACCOUNTING, NEW YORK20, RESEARCH, DALLAS30, SALES, CHICAGO40, OPERATIONS, BOSTONPL/SQL 过程已成功完成。

3. 阅读以下程序,找出出错之处,说明出错原因,预测运行输出结果是什么。

请删改错误,加上适当注释后,运行该程序,验证自己的预测是否正确。

(注:实验报告中只要指出出错的语句和出错的原因即可,不需要抄录程序清单!还要求写出程序正确运行后的输出结果。

)SET SERVEROUTPUT ONDECLARETYPE dept_list IS TABLE OF dept.dname%TYPE; --定义嵌套表TYPE top5_list IS VARRAY(5) OF dept.loc%TYPE; --定义可变数组dis_dept dept_list; --嵌套表的声明num_5 top5_list; --可变数组的声明BEGINdis_dept(1):='AMGN';IF dis_dept IS NULL THENdis_dept :=dept_list('AMGN','BGEN');DBMS_OUTPUT.PUT_LINE('dis_dept表当前元素个数为:'||to_char(dis_dept.count));END IF;num_5:=top5_list('ORCL','CSCO',NULL,NULL);IF num_5(3) IS NULL THENnum_5(3):='CPQ';END IF;num_5(4):='DELL';FOR COUNTER IN 1..4 LOOPDBMS_OUTPUT.PUT_LINE(NUM_5(COUNTER));END LOOP;END;/执行结果为:4.*将上题改为使用INDEX BY BINARY_INTEGER的索引表,则实现同一执行结果,程序要做哪些相应的改变。

C语言程序设计实验六函数答案《西北民大电气学院》

C语言程序设计实验六函数答案《西北民大电气学院》

实验六函数一,实验目的:1,掌握定义函数的方法.2,掌握函数实参与形参的对应关系,以及"值传递"的方式.3,掌握函数的嵌套调用和递归调用的方法.4,掌握全局变量和局部变量动态变量,静态变量的概念和使用方法.二,实验准备:1,复习函数调用的基本理论知识.2,复习函数的嵌套调用和递归调用的方法.3,复习全局变量,局部变量;静态变量,动态变量;外部变量等概念和具体使用. 4,源程序.三,实验步骤及内容:1,运行程序并回答问题(1)程序main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n")}void print_message(){ printf("Good Friend! \n");}void play(n)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}}问题:运行后出现什么错误为什么应如何修改请上机调试.修改:main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n");(缺少分号)}void print_message(){ printf("Good Friend! \n");}play(n)(原先void的与声明类型不同)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}getch();}运行结果(2)以下程序用于计算1+2+3+4+5.main(){ int i,sum;for(i=1;i<=5;++i)sum=add(i);printf("sum=%d\n",sum);getch();}add (a)int a;{static int s=0;s=s+a;return(s);}运行结果:问题:此程序能否得到正确结果为什么请在不增加语句的条件下,修改程序并上机调试.(3)程序int x=567,y=890;main(){ printf("x=%d,y=%d\n",x,y);}运行结果:问题:运行程序后出现什么错误为什么如何修改答:定义位置出错,y的定义在主函数之后了,将y的定义改在和x一样的位置处。

实验六 指针与引用

实验六  指针与引用

实验六指针与引用一、目的和要求1.掌握指针、指针变量、指针常量的基本概念;2.掌握指针与数组、指针与函数的关系及应用。

3.初步掌握引用的概念及简单应用。

二、实验设备及分组1.Windows XP操作系统;2.Visual C++6.0语言环境;3.每人一台PC机。

三、内容和步骤(一)验证实验程序1.指针变量的自加、自减、加n和减n运算。

假设数组a的首地址为1000。

解:# include <iostream.h>void main( ){int a[5]={0,1,2,3,4};int *p;p=&a[0]; //p指向a[0],p=1000p++ ; //p指向下一个元素a[1],p=1004cout<< *p<<'\t'; //输出a[1]的内容1。

p=p+3; //p指向下3个元素a[4],p=1016cout<< *p<<'\t'; //输出a[4]的内容4。

p――; //p指向上一个元素a[3],p=1012cout<< *p<<'\t'; //输出a[3]的内容3。

p=p―3; //p指向上3个元素a[0],p=1000cout<< *p<<'\t'; //输出a[0]的内容0。

}运行结果:1 4 3 02.指出下列程序的错误。

#include <iostream.h>void exchange(int,int);void main(){int a,b;cin>>a>>b;cout<<"Before Exchange:a="<<a<<",b="<<b<<endl;exchange(a,b);cout<<"After Exchange:a="<<a<<",b="<<b<<endl;}void exchange(int x,int y){int t;t=x;x=y;y=t;}分析:本例的目的是在子函数中交换的两个变量的值,在主函数中使用。

c++实验六

c++实验六

实验六1.实验目的通过本次实验(1)初步掌握函数的定义方法,及函数的三种调用方法;(2)理解参数传送过程中,值传送与传地址的过程与区别;(3)初步学会用递归编写程序方法;(4)学会用数组作为函数参数的编程方法。

2.实验要求(1)编写实验程序(2)在VC++运行环境中,输入源程序;(3)编译运行源程序;(4)输入测试数据进行程序测试;(5)写出运行结果。

3.实验内容(1)分别用冒泡法(升序)、选择法(降序)、擂台法(升序)编写三个对一维数组进行排序的函数,函数名为sort1()、sort2()、sort3()。

再定义一个输出数组元素值的函数print()。

在主函数中定义一维整型数组a[N](N=10),用键盘输入10个整数给a[N]数组。

依次调用sort1()、print()、sort2()、print()、sort3()、print(),进行升序、降序、升序的操作,并输出每次排序后的结果。

输入十个实验数据:10,25,90,80,70,35,65,40,55,5(2)编写一个函数px(float x,int n)用递归的方法求下列级数前n项的和s。

在主函数中定义变量x与n,用键盘输入x与n的值,调用px()函数计算并返回级数前n项和s。

最后输出s的值。

输入实验数据:x=1.2 n=10(3)编写一个字符串连接函数str_cat(char s[],char s1[],chars2[]),完成s=s1+s2的字符串连接工作。

具体要求为,先将字符串s1复制到s中,然后再将字符串s2连接到s后面。

在主函数中定义三个字符串数组str[80]、str1[40]、str2[40],将两个字符串输入到str1与str2中,调用字符串连接函数str_cat(),将str1与str2连接到str中,最后输出连接后的字符串str。

要求用两种方法编写str_cat()函数。

方法一,用字符串复制与连接函数。

方法二,用while语句编程实现。

c语言程序分类总结[修改版]

c语言程序分类总结[修改版]

第一篇:c语言程序分类总结一、选择排序法:1、函数方法:#include void main() {void sort(int array[],int n); int a[10],i; printf("enter array:\n"); for(i=0;i scanf("%d",&a[i]); sort(a,10); printf("The sorted array:\n"); for(i=0;iprintf("%d ",a[i]); printf("\n"); }void sort(int array[],int n) {int i,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(array[j]k=j;t=array[k];array[k]=array[i];array[i]=t; } }2、数组方法:实验6_1 #include void main() {int i,j,min,temp,a[11];printf("enter data:\n");for (i=1;i{printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\n");printf("The orginal numbers:\n");for (i=1;iprintf("%5d",a[i]);printf("\n");{min=i;for (j=i+1;ja[j]) min=j;temp=a[i];a[i]=a[min];a[min]=temp;}printf("\nThe sorted numbers:\n");for (i=1;iprintf("%5d",a[i]);printf("\n"); }3、指针方法:(教材209 例题8.9)#include void main() {void sort(int x[ ],int n); int *p,i,a[10]; p=a; for(i=0;i scanf("%d",p++); p=a; sort(p,10); for(p=a,i=0;i{printf("%d ",*p);p++;} printf("\n"); }void sort(int x[],int n) {int i,j,k,t;for(i=0;i{k=i;for(j=i+1;jif(x[j]>x[k]) k=j;if(k!=i){t=x[i];x[i]=x[k];x[k]=t;}} }二、素数算法:1、筛选法求素数(教辅41.1题)#include #include void main() {int i,j,n,a[101];a[i]=i;a[1]=0;for (i=2;ifor (j=i+1;j{if(a[i]!=0 && a[j]!=0)if (a[j]%a[i]==0)a[j]=0;}printf("\n");for (i=2,n=0;i{ if(a[i]!=0){printf("%5d",a[i]);n++;}if(n==10){printf("\n");n=0;}}printf("\n"); }2、(1)For循环方法:#include #include void main() {int m,i,k; printf("please enter a integer number:");scanf("%d",&m);for (i=2;iif(m%i==0) break;if(i>k) printf("%d is a prime number.\n",m);else printf("%d is not a prime number.\n",m); }(2)求100~200之间素数:# include # include void main() {int m,k,i,n=0; for(m=101;m{ k=sqrt(m);for (i=2;iif (m%i==0) break;if (i>=k+1){printf("%d ",m);n=n+1;}if(n%10==0) printf("\n");}printf ("\n"); }3、函数方法:实验7_1(教辅63.3题)#include void main() {int prime(int); int n;printf("\ninput an integer:");scanf("%d",&n);if (prime(n))printf("\n %d is a prime.\n",n);elseprintf("\n %d is not a prime.\n",n); }int prime(int n){int flag=1,i;for (i=2;iif (n%i==0)flag=0;return(flag);}三、最值问题:1、函数方法,两个数比较大小(教材144.例题7.2) #include void main() { int max(int x,int y);int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("max is %d\n",c); }int max(int x,int y) {int z;z=x>y?x:y;return(z); }2、二维数组,求出其中值最大的那个元素值:(教材123.例题6.5) #include void main() {int i,j,row=0,colum=0,max;int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};max=a[0][0];for (i=0;ifor (j=0;jif (a[i][j]>max){max=a[i][j];row=i;colum=j;}printf("max=%d,row=%d,colum=%d\n",max,row,colum); }3、有三个字符串,要求找出其中最大者(教材136.例题6.9) #include #include void main ( ) {char string[20];char str[3][20];int i;for (i=0;igets (str[i]);if (strcmp(str[0],str[1])>0)strcpy(string,str[0]);elsestrcpy(string,str[1]);if (strcmp(str[2],string)>0)strcpy(string,str[2]);printf("\nthe largest string is:\n%s\n",string); }4、函数方法,四个整数,找出最大值:(教材152.例题7.5)#include void main() { int max_4(int a,int b,int c,int d);int a,b,c,d,max;printf("Please enter 4 interger numbers:");scanf("%d %d %d %d",&a,&b,&c,&d);max=max_4(a,b,c,d);printf("max=%d \n",max); }int max_4(int a,int b,int c,int d) {int max_2(int a,int b); int m;m=max_2(a,b); m=max_2(m,c); m=max_2(m,d); return(m); }int max_2(int a,int b)这也可以这么写int max_2(int a,int b) {return(a>b?a:b);{if(a>b) return a; }elsereturn b; }四、辗转相除问题:(最大公约数最小公倍数问题)1、一般法,求最大公约数和最小公倍数(教辅26页,第一题)#include void main() { int p,r,n,m,temp;printf("请输入两个正整数n,m:");scanf("%d,%d,",&n,&m);if (n{temp=n;n=m;m=temp;}p=n*m;while(m!=0){r=n%m;n=m;m=r;}printf("它们的最大公约数为:%d\n",n);printf("它们的最小公约数为:%d\n",p/n); }2、函数法:void main() {int hcf(int,int);int lcd(int,int,int);int u,v,h,l;scanf("%d,%d",&u,&v);h=hcf(u,v);printf("H.C.F=%d\n",h);l=lcd(u,v,h);printf("L.C.D=%d\n",l); }int hcf(int u,int v) {int t,r; if (v>u){t=u;u=v;v=t;} while ((r=u%v)!=0){u=v;v=r;} return(v); }int lcd(int u,int v,int h){return(u*v/h);}五、有关指针的实验题:1、实验9-1(输入3个整数,由小到大的顺序排列)(1)#include void main() { void swap(int *p1,int *p2); int n1,n2,n3; int *p1,*p2,*p3; printf("input three integer n1,n2,n3:"); scanf("%d,%d,%d",&n1,&n2,&n3); p1=&n1; p2=&n2; p3=&n3; if(n1>n2) swap(p1,p2); if(n1>n3) swap(p1,p3); if(n2>n3) swap(p2,p3); printf("Now,the orderis:%d,%d,%d\n",n1,n2,n3); }void swap(int *p1,int *p2){int p;p=*p1; *p1=*p2; *p2=p;} (2)#include #include void main() {void swap(char *,char *); char str1[20],str2[20],str3[20]; printf("input three line:\n"); gets(str1); gets(str2); gets(str3); if(strcmp(str1,str2)>0) swap(str1,str2); if(strcmp(str1,str3)>0) swap(str1,str3); if(strcmp(str2,str3)>0) swap(str2,str3); printf("Now,the order is:\n");printf("%s\n%s\n%s\n",str1,str2,str3); }void swap(char *p1,char *p2) {char p[20];strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); }2、实验9_2(将n个数,输入时顺序的逆序排列)#include void main() {void sort (char *p,int m); int i,n; char *p,num[20]; printf("input n:"); scanf("%d",&n); printf("please input these numbers:\n"); for (i=0;iscanf("%d",&num[i]); p=&num[0]; sort(p,n); printf("Now,the sequence is:\n"); for (i=0;iprintf("%d ",num[i]); printf("\n"); }void sort (char *p,int m) {int i; char temp, *p1,*p2; for (i=0;i{p1=p+i;p2=p+(m-1-i);temp=*p1;*p1=*p2;*p2=temp;} }3、实验9_3(写一函数,求一个字符长度)#include void main() {int length(char *p); int len; char str[20]; printf("input string: "); scanf("%s",str); len=length(str); printf("The length of string is %d.\n",len); }int length(char *p){int n; n=0; while (*p!='\0'){n++;p++;} return(n); }第二篇:C 语言程序设计《C 语言程序设计》主要在计算机软件、计算机网络、计算机应用、通信技术、智能电子、电子信息工程、多媒体以及核工程与核技术等专业中开设,是电子信息类、机械类等工科专业的重要专业基础课。

高级语言程序设计实验-答案

高级语言程序设计实验-答案

r,把b保存到a中,并把余数r保存到b中,重复上述过程,
直到b为0,a中的数即为最大公约数。)
退出
实验四
13、我国古代数学家张丘建在《算经》一书中曾提出过著名
的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五; 鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、
雏各几何?请编写C程序,解决“百钱买百鸡”问题。
赏我一粒麦子,第2个小格赏我两粒,第3个小格赏我四粒,
以后每一小格都比前一小格的麦粒数增加一倍,只要把棋盘 上的64个小格全部按这样的方法得到的麦粒都赏赐给我,
退出
实验四
我就心满意足了。”舍罕王听了达依尔的这个“小小”的要
求,想都没想就满口答应下来。
如果1立方米麦粒数约1.42e8粒,国王能兑现他的许诺吗?
是X;X说他的妈妈是C;C说Z是他的孩子。主持人听后知道
他们在开玩笑,全是假话。请编程分析出正确的母子关系。
退出
高等学校精品资源共享课程(省级) 省级教学成果一等奖建设教材
第5章 函数及其应用
揭安全
jieanquan@ 江西师范大学计算机信息工程学院
实验5
实验目的:
(1)理解系统函数调用的执行过程 (2)掌握函数的定义与调用方法 (3)理解嵌套与递归函数的执行过程,能够正确应用递归 法求解递归问题 (4)理解模块化程序设计的基本思想,并能根据实际问题
采用自顶向上或自顶向下的方法进行问题求解
退出
实验五
1、编写一个函数int sum(int n),求1+2+3+…+n的和作
为函数的返回结果,并编写main函数进行测试。
2、设计函数bool isSxh(int n)判断整数n是否是水仙花数,

6个数组3中3有几组

6个数组3中3有几组

6个数组3中3有几组
6个数字三中三是120组。

从6个数字中任取3个(不能重复),这3个就是一组(且不管这3个数字的先后排列顺序),所以,一共有C=(6*5*4*3*2*1)/(3*2*1)=120种。

或者:
先从6个里面选1个,有C=6种。

再从剩下的5个里面又取1个,有C=5种;
再从剩下的4个人里面取1个,又有C=4种。

所以,总共的方法是:6*5*4=120种。

两个常用的排列基本计数原理及应用:
1、加法原理和分类计数法:
每一类中的每一种方法都可以独立地完成此任务。

两类不同办法中的具体方法,互不相同(即分类不重)。

完成此任务的任何一种方法,都属于某一类(即分类不漏)。

2、乘法原理和分步计数法:
任何一步的一种方法都不能完成此任务,必须且只须连续完成这n步才能完成此任务。

各步计数相互独立。

只要有一步中所采取的方法不同,则对应的完成此事的方法也不同。

汇编语言(王爽第三版)实验6实践课程中的程序

汇编语言(王爽第三版)实验6实践课程中的程序

汇编语⾔(王爽第三版)实验6实践课程中的程序实验6 实践课程中的程序(1)将课程中所有讲解过的程序上机测试,⽤debug跟踪其执⾏过程,并在过程中理解所讲内容。

问题7.6 将data段中每个单词的头⼀个字母改为⼤写字母。

assume cs:codedata segmentdb '1. file 'db '2. edit 'db '3. search 'db '4. view 'db '5. options 'db '6. help 'data endscode segment程序分析:1)数据段定义了6个字符串结构,长度⼀致都是16字节,并且字符都是连续的,并且头⼀个字母在字符串中的位置都是第4个字符,在上⾯的寻址⽅式中,我们发现[bx+idata]⽅式⽐较适合这种情况,idata代表每个字符串起始地址,bx代表基本偏移地址,bx的偏移量也是有规律的16。

2)在debug中,这6个字符串显⽰的正好是6⾏16列的字符,是⼀个我们在C语⾔中讲到的⼆维数组[6][16],其实它在内存中是线性单列排列的。

3)遇到此种情况我们使⽤[bx+idata]的⽅式进⾏内存的寻址⽐较科学。

完整的代码如下:assume cs:codedata segmentdb '1. file 'db '2. edit 'db '3. search 'db '4. view 'db '5. options 'db '6. help 'data endscode segmentstart:mov ax, datamov ds, axmov bx, 0 ;将ds:bx指向data第⼀个单元mov cx, 6 ;需要修改6次s: mov al, [bx+3] ;使⽤[bx+idata]寻址⽅式,并送⼊al(单字节)and al, 11011111b ;转换为⼤写字母mov [bx+3], al ;回写内存add bx, 16 ;6个字符串长度⼀致,都是16字节,增量为16loop smov ax, 4c00Hint 21Hcode endsend start结果分析:(1)在循环中,如遇到loop指令,⾸先我们要认识到,(cx)=(cx)-1;直到cx=0退出循环。

中南大学C++程序设计实践思考题答案

中南大学C++程序设计实践思考题答案

实验1 C++基础6.编写程序,输入某大写字母的ASCII码值,输出该字母的对应小写字母。

#include<iostream>using namespace std;int main(){int i;cin>>i;if(i>=65 && 1<=90 )cout<<char(i-'A'+'a')<<endl;elsecout<<"输入有误"<<endl;return 0;}实验2三、实验思考1.输入直角三角形的两条直角边长,调用平方根库函数sqrt来求斜边的长度#include<iostream>#include<cmath>using namespace std;int main(){ float a,b,c;cout<<"请输入直角三角形的两条边长:";cin>>a>>b;c=sqrt(a*a+b*b);cout<<"直角三角形的斜边="<<c<<endl;return 0;}2.从键盘输入一个字符,如果输入的是英文大写字母,则将它转换成小写字母后输出,否则输出原来输入的字符。

#include<iostream>using namespace std;int main(){char c;cout<<"请输入一个字符:";cin>>c;if(c>='A'&& c<='Z')c+='a'-'A';cout<<c<<endl;return 0;}3.输入一个学生的成绩,如高于60分,则输出“pass”;否则,输出“failed”。

实验6-寻址方式与数据处理

实验6-寻址方式与数据处理
2.任务:
用寄存器SI和DI将字符串‘welcome to masm!’复制到它后面的数据区中。
assume cs:codesg,ds:datasg
datasg segment
db 'welcome to masm!'
db '................'
datasg ends
SI称为源变址寄存器,常用做源数据区指针
3.任务:
datasg segment
db '1. file '
db '2. edit '
db '3. search '
db '4. view '
db '5. options '
db '6. help '
datasg ends
编程,将datasg段中每个单词的头一个字母改为大写字母。
用bx作变量,定位每行的起始地址,用3定位要修改的列,用[bx+idata]的方式来对目标单元进行寻址
实验六
一、实验目的及要求
1.了解数据的各种寻址方式
2.学会使用恰当的寻址方式进行数据访问和处理
3.构建双重循环处理二维数组
二、实验内容
1.任务:
数据段中定义了两'
db 'MinIx'
datasg ends
编写完整程序,程序运行后,将字符串“BaSiC”变成全部大写字母;
调试情况:
5.任务:
datasg segment
db '1. display......'
db '2. brows........'

C++语言程序设计实验6(数组、指针和字符串)

C++语言程序设计实验6(数组、指针和字符串)

{ for(i = 0; i < 4; ++ i) //二维数组赋值与输出
{
Array[t][i] = ( t * 4 ) + i + 1;
cout << Array[t][i] << ' ';
}
cout <<endl;
}
return 0;
} z 数组作为函数参数
数组元素作实参,与单个变量一样。
for(int i = 0; i < 4; i ++)
cout << "obs[" << i << "].getx(): " << obs[i].getx() << "\n";
return 0;
}
2. 指针
z 指针:内存地址,用于间接访问内存单元 z 指针变量:用于存放地址的变量
例如: int i; int *i_pointer = &i; //指向整型变量的指针,其中&表示取地址运算符
pint = (int *)pv; //void 指针赋值给 int 指针需要类型强制转换:
z 指向常量的指针
不 能 通 过 指 针 来 改 变 所 指 对 象 的 值 ,但 指 针 本 身 可 以 改 变 ,可 以 指 向 另 外 的 对 象 。例 如 :
int a, b;
int *name1 = &a;
using namespace std;
int main( )
{
int Array[10], *va = Array; //第一种访问方式

《C语言程序设计实验》指导书(实验1~6)

《C语言程序设计实验》指导书(实验1~6)

《C语言程序设计实验》指导书(简明版)**大学软件学院**年**月实验一顺序结构程序设计(2学时)一、实验目的1、熟悉C编译环境、简单C程序结构及书写方式、以及C程序的编辑、编译、连接、运行、调试的步骤;2、掌握C语言的基本数据类型及其输入输出格式,以及输入输出函数的使用方法;3、掌握C语言的算术运算符(特别是自增、自减运算符)、赋值运算符、关系运算符、逻辑运算符、条件运算符、逗号运算符的使用;4、掌握C语言顺序结构程序的执行流程、设计方法,能够根据实际问题灵活使用顺序结构,画出程序的算法流程图,设计出逻辑合理、思路清晰、结果正确的顺序结构程序。

二、实验内容及要求1、实验内容包括8道题目,分为基本内容和选做内容两部分。

要求:(1)基本内容中的实验题目是必须要完成的,选做内容中的实验题目可以根据自己的情况选做或全做(越多越好,适当加分);(2)在实验之前编写出基本内容、选做内容中的所有程序,实验前检查(视未完成情况适当扣分);(3)对于设计型题目,要求画出程序流程图(传统流程图和N-S图);(4)在上机实验过程中,注意总结和体会上机步骤(编辑、编译、连接、运行、调试、结果分析),注意培养观察、分析和排除编译错误、连接错误和程序逻辑错误的初步能力;(5)上机结束后,应按要求认真书写实验报告(格式见附件)。

2、基本内容(1)[验证型]编辑下列程序,然后进行编译、连接和运行,观察结果,并简要总结简单C程序的结构、书写格式以及上机过程;#include <stdio.h>int main( ){printf("Hello, world!\n");return 0;}(2)[验证型]通过运行下列程序,分析各种格式符的使用方法。

#include <stdio.h>int main( ){int a = 9, b = 2;float x = 32.8459, y = -792.451;char d = 'R';long n = 5461237;unsigned u = 65535;printf("%d,%d\n", a, b);printf("%3d,%3d\n", a, b);printf("%f,%f\n", x, y);printf("%-10f,%-10f\n", x, y);printf("%8.2f,%8.2\n", x, y);printf("%.4f,%.4f\n", x, y);printf("%3f,%3f\n", x, y);printf("%e,%10.2e\n", x, y);putchar(d);putchar('\n');printf("%c,%d,%o,%x\n", d, d, d, d);printf("%ld,%lo,%x\n", n, n, n);printf("%u,%o,%x,%d\n", u, u, u, u);return 0;}(3)[验证型]编辑下列程序,进行编译、连接和运行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

17.6 实验6 数组
1.实验目的
(1)掌握一维数组和二维数组的定义,赋值和输入输出的方法。

(2)掌握字符数组和字符串函数的使用。

(3)掌握有关的算法(特别是排序算法)
2.实验内容
编程序并上机调试运行
(1)用选择法对10个整数排序。

10个整数用scanf 函数输入(本题是教材第6章习题6.2)(2)已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中(本题是教材第五章习题)
(3)有一篇文章,共有3行文字,每行有80个字符。

要求分别统计出其中英文大写字母,数字,空格以及其他大字符个数(本题是教材大六章习题)
(4)找出一个二维数组的“鞍点”,机该位置上的元素在该行上最大,在该列上最小。

也可能没有鞍点(本题是教材第六章)
应当至少准备两组测试数据:
(1)二维数组有鞍点,列如:
9 80 205 40
90 -60 96 1
210 -3 101 89
(2)二维数组没有鞍点,列如
9 80 205 40
90 -60 196 1
210 -3 101 89
45 54 156 7
用scanf 函数从键盘输入数组个元素的值,检查结果是否正确。

题目并为制定二维数组的行数和列数,程序应能处理任意行数和列数的数组。

一次,从理论上来说,应当准备速度哦不同行数和列数的数组数据,但这样工作量太大,一般来说不需要这样做,只需要准备典型的数据即可。

如果已指定了数组的行数和列数,可以在程序中对数组元素赋值,而不必要用scanf
函数。

请读者修改程序以实现之。

3预习内容
预习教材第六章。

相关文档
最新文档