c++上机实验答案实验六

合集下载

c程序设计实验参考答案

c程序设计实验参考答案
编程求出某学生期末三门课程的总分及平均分。结果保留小数点后一位。
main( )
{ float a,b,c;
float s,v;
scanf("%f,%f,%f,%f",&a,&b,&c);
s=a+b+c;
v=s/3.0;
printf("\n%7.1f,%7.1f",s,v);
}
实验五参考答案
一.1、a=10,b=30,c=10
}
2、main()
{int i;
double m=100000,n,s;
n=0.01;
s=0;
for(i=1;i<=30;i++)
{s+=n;
n=n*2;
}
printf("%f %f\n",s,m*30 );
}
实验八参考答案:
一.1、s=12345
2、7,
5,
3,
3、<1,2>=6
二.1、% for(j=k;j>0;j--)
第4行改为scanf("%d",&a[i]);
第12行改为printf("av=%d\n",av);
四.1、分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,取出其中两种作为参考。
方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比
{ case 10:
case 9: ch='A'; break;
case 8: ch='B'; break;

西南交大各次C上机实验报告答案(全)

西南交大各次C上机实验报告答案(全)

2014-2015各次C++上机实验报告答案(全)实验__1__①实验报告一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务1.新建源程序文件,编辑以下程序,编译,链接,得出运行结果,并保存程序:#include <iostream>using namespace std;void main( ){ cout<<'a'<<endl;/*输出语句*/cout<<'\141'<<endl;cout<<'\x61'<<endl;}2.新建源程序文件,编辑以下程序,编译,链接,运行,输入36和64,得出运行结果,并保存程序:#include <iostream>using namespace std;int main(){ float num1,num2,sum;cout << "Enter first number: ";/*输出语句*/cin >> num1; /*输入语句*/cout << "Enter second number: ";cin >> num2; /*输入语句*/sum=num1+num2; /*运算语句*/cout << "The sum is " << sum << endl; /*输出语句*/return 0;}三、实验结果1.2.实验一②实验报告一、实验目的1.熟悉C++程序的集成开发环境;2.学习新建和打开控制台应用程序的方法;3.掌握简单数据运算以及输入与输出方法。

二、实验任务1.输入一个摄氏温度,输出并显示转换出的华氏温度(提示:摄氏温度=(华氏温度—32)*5/9);2.画出一头威武雄壮的雄狮。

C实验报告答案完整版

C实验报告答案完整版

实验1简单判定性问题求解一、实验学时完成本实验需4学时。

二、实验目的1、阅读程序题(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法;(2)掌握不同的类型数据之间赋值的规律;(3)掌握数据在内存中的存储方式;(4)学会输入、输出函数的基本格式和使用方法;(5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。

2、编程题(1)如何运用if-else判定性结构进行程序设计;(2)如何运用switch判定性结构进行程序设计。

3、调试题(1)熟悉C程序的编辑、编译、连接和运行的过程。

三、实验指导为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。

1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。

2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。

要注意简单判定性问题的结构选择。

3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。

对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

四、实验内容1、阅读程序题(1)main( ){ /*定义字符型变量*/char c1,c2; /*向字符变量赋以整数*/c1=97;c2=98;printf("%c %c\n",c1,c2); /*以字符形式输出*/printf("%d %d\n",c1,c2); /*以整数形式输出*/}思考:可否改成int c1,c2;输出结果是?相同(2)main(){int a=7,b=5;printf("%d\n",b=b/a);}思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main(){int a=9;a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/printf("%d\n",a);}思考:赋值表达式a+=a-=a+a的求解步骤?第一步:a=a-(a+a)=-9 第二步a=a+a=18(4)main(){int k=-1;printf("%d,%u\n",k,k);}思考:-1在内存中的存储形式?取反加一11111111111111111111111111111111(32个)(5)main(){unsigned x1;int b=-1;x1=b; /*有符号数据传送给无符号变量*/printf("%u",x1);}(6)main(){int a=3,b=4,c=5;printf("%d\n",(!(a<b))&&(c=c+1));printf("%d",c);}思考:若将第一个1(换行)6(7)main(){ int a=1,b=2,c=3;if(c=a) ; printf("%d\n",c);else printf("%d\n",b);}2、编程序并上机调试运行(包括题目及要求、流程图、程序清单、测试数据及结果)(1)将一个百分制成绩转换成等级制成绩,百分制与等级制的对应具体要求如下:1)用switch语句实现该功能;2)用键盘输入百分制成绩,输入前要有提示信息,对于不合理的数据应输出错误信息;3)输出结果应包含百分制成绩和成绩等级;4)分别输入成绩-10,30,60,68,75,83,95,102,查看记录运行结果。

C上机实验6含答案及代码

C上机实验6含答案及代码

`特别注意事项:1,文件名“_王小小_数学0801_实验1.doc”中的实验1指的是第几次上机实验,与“实验指导书”中的实验几没有关系;2,文件名“_王小小_数学0801_实验1.doc”中的doc是文件扩展名,请注意不要提交如“*******.doc.doc”的文件;3,上机实验作业一律以word形式提交;4,若上机实验有多个作业,请按照下列加粗方式给每个作业命名,如:实验1_1,实验1_25,实验作业的word文件的页眉不可少,请每次注意修改;6,每个实验作业均要给出比较详细的程序说明,且程序说明位于程序之后。

程序说明是特别重点考察的部分,请按照你的理解进行撰写;7,该部分“特别注意事项”可以随同作业一并提交,请提交作业前进行对照。

实验8_1/******************************************************************* 主程序中定义一个类对象,把新定义的类对象作为参数传递给普通函数***********************************************************************/ // Tdate.h:Tdate类声明#include<iostream>using namespace std;class Tdate{public:void Set(int,int,int); //成员函数的声明int IsLeapYear();void Print();private:int month;int day;int year;};//Tdate.cpp:#include "Tdate.h"void Tdate::Set(int m,int d,int y){month=m;day=d;year=y;}int Tdate::IsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}void Tdate::Print(){ cout<<month<<"/"<<"/"<<year<<endl;}//应用程序:lab12.cpp#include <iostream>using namespace std;# include"Tdate.h"void someFunc(Tdate someday){ someday.Print ();if (someday.IsLeapYear())cout<<"leap yrar\n";elsecout<<"not leap year\n";}void main(){ Tdate s;s.Set (21,10 ,2012);someFunc(s);}程序说明:定义一个日期类Tdate,它的数据成员有年、月、日;它的函数成员有设置值、打印输出和判断是否闰年。

C上机实验报告实验六修订稿

C上机实验报告实验六修订稿

C上机实验报告实验六 Document number【AA80KGB-AA98YT-AAT8CB-2A6UT-A18GG】实验六实验目的1.掌握运算符重载的方法2.学习使用虚函数实现动态多态性实验要求1.定义Point类,有坐标_x,_y两个成员变量;对Point类重载“++”(自增)、“――”(自减)运算符,实现对坐标值的改变。

2.定义一个车(vehiele)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。

观察虚函数的作用。

3.(选做)对实验4中的People类重载“==”运算符和“-”运算符,“==”运算符判断两个people类对象的id属性是否相等;“-”运算符实现People类对象的赋值操作。

实验内容及实验步骤1.编写程序定义Point类,在类中定义整型的私有成员变量_x_y,定义成员函数Point&operator++();Pointoperator++(int);以实现对Point类重载“++”(自增)运算符,定义成员函数Point&operator--();Pointoperator --(int);以实现对Point类重载“--”(自减)运算符,实现对坐标值的改变。

程序名:1ab8_1.Cpp#include<iostream>usingnamespacestd;classPoint{public:Point();Point(intx,inty);~Point(){}//Point类析构函数Point&operator++();//公有成员函数Pointoperator++(int);Point&operator--();Pointoperator--(int);voidShow();private:int_x;//私有数据成员int_y;};Point::Point(){//Point类构造函数_x=0;_y=0;}Point::Point(intx,inty)//Point类构造函数{_x=x;_y=y;}Point&Point::operator++()//重载后置++运算符为Point类成员函数{_x++;_y++;}PointPoint::operator++(int)//重载前置++运算符为Point类成员函数{Pointold=*this;++(this->_x);++(this->_y);returnold;}Point&Point::operator--()//重载后置--运算符为Point类成员函数{_x--;_y--;}PointPoint::operator--(int)//重载前置--运算符为Point类成员函数{Pointold=*this;--(this->_x);--(this->_y);returnold;}voidPoint::Show()//输出Point的坐标值{cout<<_x<<","<<_y<<")"<<endl;}intmain(){Pointa(2,3);//定义一个Point类对象aPointb=a++;//定义Point类对象b并用a++初始化bPointc=++a;//定义Point类对象c并用++a初始化cPointd=--a;//定义Point类对象d并用--a初始化dPointe=a--;//定义Point类对象e并用a--初始化ecout<<"Pointa(";a.Show();//输出a的坐标cout<<"Pointb(";b.Show();//输出b的坐标cout<<"Pointc(";c.Show();//输出c的坐标cout<<"Pointd(";d.Show();//输出d的坐标cout<<"Pointe(";e.Show();//输出e的坐标return0;}运行结果:2编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。

河南科技大学C语言上机实验指导书答案

河南科技大学C语言上机实验指导书答案

河南科技大学C语言上机实验指导书答案C语言上机实验指导实验2.1-2.9答案2.1 实验1 C语言表达式1.阅读程序,分析结果,并上机验证(1) t=550 (2) a+u=22,b+u=-14 (3) f ge(4) x=3.600000,i=3 (5) a=100 c ike2.阅读程序,分析程序中的错误,每处错误均在提示行/********************/的下一行,请将错误改正,并上机验证。

(1) int a=3; (2) /********************//********************/ int a=99,b=100;a+=4(3) /********************/ (4) /********************/a=(int)c%3; int b;(5) /********************/a=5;3.阅读程序,在程序中提示行/********************/的下一行填写正确内容,将程序补充完整,并上机验证。

(1) int float (2) sqrt(x) (3) x*x+3*x+2(4) *(x+32) (5) abs(a)+abs(b)2.2 实验2 顺序结构程序设计1.阅读程序,分析结果,并上机验证(1) i=5,j=6 (2) i=5,j=6 (3) i=1234,j=5(4) i=12.500,j=-4.000 (5) c=652.阅读程序,分析程序中的错误,每处错误均在提示行/********************/的下一行,请将错误改正,并上机验证。

(1) /********************/ (2) /********************/scanf(―%f‖,&i); printf(―%c‖,a);(3) /********************/ (4) /********************/int b=20;a=10; scanf(―%d‖,&a);(5) /********************/scanf(―%d%d‖,a,b);3.阅读程序,在程序中提示行/********************/的下一行填写正确内容,将程序补充完整,并上机验证。

C语言实验教程实验答案

C语言实验教程实验答案
}
7.x、y有如下函数关系,编写程序输入x,输出y值。
x (x<1)
y = 2x–1 (1≤x<10)
3x–11 (x≥10)
参考答案:
#include "stdio.h"
main()
{ double x,y;
scanf ("%lf",&x);
if (x<1)
y=x;
else if(x<10)
y=2*x-1;
printf("area=%f",area);
}
运行结果:(具体情况根据自己输入的数据而定)
如在键盘上输入:3,4,5↙
则运行结果为:
area=6.000000
3.已知圆半径、圆柱高、求圆周长、圆柱体积。
程序清单如下:
#include "stdio.h"
main()
{
float r,h,l,v,pi;
3.分析下面程序,写出运行结果,再输入计算机中运行,将得到的结果与分析得到的结果比较对照。
#include "stdio.h"
main()
{
int i , j , m , n ;
i=8; j=10;
m=++i; n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
运行结果:
9,11,9,10
pi=3.1415926;
scanf("%f,%f",&r,&h);
l=2*pi*r;
v=pi*r*r*h;
printf("圆周长为:%6.2f\n",l);

c语言上机实验题及参考答案

c语言上机实验题及参考答案
4、编写程序,求1-3+5-7+...-99+101的值。(文件名为44.c。备注:程序运行结果为51,关于符号转换的问题可以参考教科书上的例6.6)
5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}

C实验报告6参考答案

C实验报告6参考答案

《高级语言程序设计》实验报告班级: 学号: 姓名: 成绩:实验6 数组程序设计一、实验目的1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。

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

3. 掌握与数组有关的算法。

二、实验内容1(1)下列程序的功能为:为指定的数组输入10个数据,并求这些数据之和。

纠正程序中存在的错误,以实现其功能。

程序以文件名保存。

#include<>void main(){int n=10,i,sum=0;int a[n]; int a[10];for(i=0;i<10;i++){scanf("%d",a[i]); scanf("%d",&a[i]);sum=sum+a[i];}printf("sum=%d\n",sum);}(2)下列程序的功能为:将字符串b 连接到字符串a 。

纠正程序中存在的错误,以实现其功能。

程序以文件名保存。

#include<>void main( ){ char a[]="wel",b[]="come"; char a[20]="wel",b[]="come";int i,n=0;while(!a[n]) n++; while(a[n] != '\0') n++;for(i=0;b[i]!='\0';i++)a[n+i]=b[i];a[n+i]=’\0’;printf("%s\n",a);}(3)下列程序的功能为:找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。

也可能没有鞍点。

纠正程序中存在的错误,以实现其功能。

程序以文件名保存。

#include<>#define N 4#define M 4main(){for (i=0;i<N;i++)for (j=0;j<M;j++)scanf("%d",&a[i][j]);flag2=0;for (i=0;i<N;i++){max=a[j][0]; max=a[i][0];for (j=0;j<M;j++)if (a[i][j]>max) if (a[i][j]>=max){max=a[i][j];maxj=j;}for (k=0,flag1=1;k<N&&flag1;k++)if (max>a[k][maxj])flag1=0;if (flag1){printf("\nThe saddle point is:a[%d][%d]=%d\n",i,maxj,max);flag2=1;}}if ( flag2) if (! flag2)printf("\nThere is no saddle point in the Matrix\n");}2.程序填空题(1)以下程序的功能是:采用二分法在给定的有序数组中查找用户输入的值,并显示查找结果。

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一样的位置处。

C语言程序设计 上机实验指导与习题 参考答案

C语言程序设计 上机实验指导与习题 参考答案

C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。

C语言实验报告第6章答案

C语言实验报告第6章答案

C语⾔实验报告第6章答案6.2基础实验⼀、程序分析分析以下程序段完成的功能,填写在序号后的空⽩处,并运⾏验证结果。

1. ⊙以下程序的运⾏结果是:_______s=12345↙____________________。

#includeint main( ){ inta[]={1,2,3,4,5},i,j=1,s=0;for(i=4;i>=0;i--){ s=s+a[i]*j;j=j*10;}printf(“ s= %d \n” , s );return 0;}2. 以下程序的运⾏结果是:_____7 5 3______________________。

#includeint main( ){ int k ;int a[3][3]={9,8,7,6,5,4,3,2,1};for(k=0;k<3;k++)printf(“%d ”,a[k][2-k]);return 0;}3. 以下程序的功能是:____查找最⼤值元素及下标_________________。

#includeint main( ){ int i, j ,x =0 ,y = 0 , m ;int a[3][3] = { 1, -2 , 0 , 4 , -5 , 6 , 2 , 4 };m = a [0][0] ;for (i=0 ;i < 3 ;i++)for (j = 0 ; j<3 ; j++ )if ( a[ i] [ j ] >m ){ m = a[ i ][ j ] ;x = i ;printf(“ ( % d , % d ) = % d \n”, x , y,m );return 0;} 运⾏结果:___(1 , 2 ) = 6↙_________________4. 以下程序的的运⾏结果是:__8,I am student!___________________。

#include int main( ){ char s1[50]= “I am ”;char s2[ ]=“student!” ;printf(“%d,”, strlen(s2) );strcat(s1,s2);printf(“%s\n”,s1);return 0;}5.以下程序的运⾏结果是:_______6_____________________。

C#上机实验题目和答案6

C#上机实验题目和答案6
protectedstringmystring;
publicvirtualstringGetstring()
{
returnmystring;
}
publicstringContainString
{
set
{
mystring =value;
}
}
publicabstractvoidPrintString();
set{ theValue =value; }
}
publicstaticMyclassoperator+(Myclassx,Myclassy)
{
returnnewMyclass(x.TheValue + y.TheValue);
}
publicstaticMyclassoperator-(Myclassx,Myclassy)
{
}
}
publicabstractclassMyclass
{
protectedstringmystring;
publicvirtualstringGetstring()
{
returnmystring;
}
publicstringContainString
{
set
{
mystring=value;
}
}
publicabstractvoidPrintString();
3、创建一个控制台应用程序,在该应用程序中创建一个类MyClass,该类中有一个私有整型字段theValue,通过一个公共的整型属性TheValue来对它进行读和写。为MyClass类创建加、减、乘、除四个运算符的重载。
4、创建一个控制台应用程序,输出2-1000之间的所有的素数,要求每行输出10个素数,每个素数占5个字符左对齐显示。

C语言上机实验 答案

C语言上机实验 答案

实验一上机操作初步(2学时)一、实验方式:一人一机二、实验目的:1、熟悉VC++语言的上机环境及上机操作过程。

2、了解如何编辑、编译、连接和运行一个C程序。

3、初步了解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程序设计(4学时)一、实验方式:一人一机二、实验目的:1、掌握C语言的数据类型。

C语言实验报告 实验六 参考答案

C语言实验报告 实验六  参考答案

实验六二维数值数组(参考答案)(1) 设计程序sy6-1.c,从键盘上输入一个3行3列矩阵各个元素的值,输出其主对角线元素和反向对角线元素之和。

算法分析:方阵主对角线上的元素,行下标和列下标相同;辅对角线元素,如果行下标为i,列下标就为2-i;参考答案:# include <stdio.h># include <stdlib.h># include <math.h># include <time.h>void main(){int a[3][3];int i,j,sum=0;srand( time( NULL ) );printf("矩阵:\n");for(i=0;i<3;i++) //用随机函数生成3行3列的二维数组并按矩阵格式输出{for(j=0;j<3;j++){a[i][j]=rand()%20;printf("%4d",a[i][j]);}printf("\n");}for(i=0;i<3;i++)sum=sum+a[i][i]+a[i][2-i];printf("该矩阵的正、反对角线元素之和为:%d\n",sum);}运行结果:(2) 设计程序sy6-2.c,找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于b数组中。

算法分析:按列序遍历二维数组,每列用打擂台的方法求最大数,N列则有N个最大值,分别存于b数组的对应元素中。

# include <stdio.h># include <stdlib.h># include <math.h># include <time.h># define N 4void main(){int a[N][N],b[N];int i,j;srand( time( NULL ) );printf("矩阵:\n");for(i=0;i<N;i++) //用随机函数生成N行N列的二维数组并按矩阵格式输出{for(j=0;j<N;j++){a[i][j]=rand()%20;printf("%4d",a[i][j]);}printf("\n");}for(j=0;j<N;j++) //外循环控制列下标{b[j]=a[0][j]; //假设每列的0行元素是最大数for(i=1;i<N;i++)if(b[j]<a[i][j])b[j]=a[i][j];}printf("该矩阵每列元素的最大值是:\n");for(i=0;i<N;i++)printf("%4d",b[i]);printf("\n");}运行结果:(3) 设计程序sy6-3.c,定义一个3×3的二维数组,通过随机函数自动赋值。

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)

C语言实验报告实验1-1:hello world程序:源代码:#include<stdio.h>main(){printf("hello world!\n");system("pause");}实验1-2:完成3个数据的输入、求和并输出计算结果的程序:源代码:#include<stdio.h>main(){int i,j,k,sum;scanf("%d%d%d",&i,&j,&k);sum=i+j+k;printf("sum=%d",sum);system("pause");实验1-3:在屏幕上输出如下图形:ABBBCCCCC源代码:#include<stdio.h>main(){printf(" A\n");printf(" BBB\n");printf(" CCCCC\n");system("pause");}实验2-1:计算由键盘输入的任何两个双精度数据的平均值源代码:#include<stdio.h>main(){double a,b;scanf("%lf%lf",&a,&b);printf("%.1lf\n",(a+b)/2);system("pause");}实验2-2:写一个输入7个数据的程序,把输入的数据代入a + b * (c – d ) / e * f – g 表达式进行运算源代码:#include<stdio.h>main(){float a,b,c,d,e,f,g,x;scanf("%f%f%f%f%f%f%f",&a,&b,&c,&d,&e,&f,&g);x=a + b * (c - d ) / e * f - g;printf("x=%f",x);system("pause");}实验2-3:编写一个C语言程序,测试下列各表达式:i, ji + 1 , j + 1i++ , j++++i , ++ji+++++j源代码:#include<stdio.h>main(){int i=1,j=1;printf("%d %d\n",i+1,j+1);printf("%d %d\n",i++,j++);printf("%d %d\n",++i,++j);printf("%d\n",(i++)+(++j));system("pause");}实验2-4:输入存款金额money,存期year和年利率rate,根据下列公式计算存款到期时的利息interest (税前),输出时保留2位小数。

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

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

C++上机实验报告实验六C++上机实验报告实验六一、实验目的1、熟练掌握 C++中类和对象的概念及使用方法。

2、深入理解类的成员变量和成员函数的特性及作用。

3、通过实际编程,提高运用类和对象解决问题的能力。

二、实验环境操作系统:Windows 10编程软件:Visual Studio 2019三、实验内容本次实验主要围绕创建一个简单的学生信息管理系统展开。

1、定义一个名为`Student` 的类,包含学生的学号、姓名、年龄和成绩等成员变量。

2、为`Student` 类编写成员函数,实现对学生信息的输入、输出和修改。

3、创建一个包含多个`Student` 对象的数组,模拟学生信息的存储。

4、编写函数,实现对学生信息的排序(如按照成绩从高到低排序)。

四、实验步骤1、首先,打开 Visual Studio 2019 并创建一个新的 C++控制台应用程序项目。

2、在项目中定义`Student` 类,代码如下:```cppclass Student {private:int id;std::string name;int age;double score;public://输入学生信息的函数void inputInfo(){std::cout <<"请输入学号:";std::cin >> id;std::cout <<"请输入姓名:";std::cin >> name;std::cout <<"请输入年龄:";std::cin >> age;std::cout <<"请输入成绩:";std::cin >> score;}//输出学生信息的函数void outputInfo(){std::cout <<"学号:"<< id <<",姓名:"<< name <<",年龄:"<< age <<",成绩:"<< score << std::endl;}//修改学生信息的函数void modifyInfo(){int choice;std::cout <<"1、修改学号 2、修改姓名 3、修改年龄 4、修改成绩" << std::endl;std::cin >> choice;switch (choice) {case 1:std::cout <<"请输入新的学号:";std::cin >> id;break;case 2:std::cout <<"请输入新的姓名:";std::cin >> name;break;case 3:std::cout <<"请输入新的年龄:";std::cin >> age;break;case 4:std::cout <<"请输入新的成绩:";std::cin >> score;break;default:std::cout <<"无效的选择!"<< std::endl;}}};```3、在`main` 函数中创建`Student` 对象数组,并进行相关操作。

安徽建筑大学C实验内容答案

安徽建筑大学C实验内容答案

《程序设计基础—C程序实验》说明:实验1和实验2均为电子实验报告,后面8个实验是纸制实验报告。

电子实验报告:按照每次的实验内容完成一个文件,然后上传到文件服务器上张燕的文件夹里面。

纸制实验报告要求:1.准备一个能写八次实验内容的实验报告;2.实验报告书写格式:标号,题目,程序,输入,输出(注意输入输出的格式)。

3.独立完成实验,请勿抄袭!实验1 计算机基本操作实验目的⑴熟悉计算机,能够正确进行开、关机操作。

⑵熟悉键盘,掌握键盘上所有字符的输入,掌握正确的指法,能够进行中、英文切换。

⑶理解操作系统概念,掌握Windows XP的基本操作,能够利用“控制面板”进行一些参数的设置。

⑷知道“回收站”的功能,学会有关文件、文件夹的基本操作。

⑸学会在计算机上搜索或查找相关的文件或文件夹,掌握通配符的使用。

实验内容⑴在桌面上新建一个文件夹,该文件夹以学生自己的学号和姓名命名,如:123342134张燕。

将此文件夹上传到ftp://10.10.9.222上张燕的文件夹中。

⑵在桌面上新建一个以1.doc命名的word文件。

⑶利用“控制面板”修改系统时间、桌面背景、鼠标属性,将具体的操作步骤写在1.doc文件中。

⑷打开一级模拟题,输入准考证号码(11111100105,最后两位可以是01到30的任意数),进入打字题,把打字题目做完,并将打字的内容复制到1.doc文件中,并保存。

最后点击交卷,将打字题的得分记录截屏后复制粘贴到1.doc文件中。

⑸在1.doc文件中输入以下内容,并保存。

注意:输入时,标点符号和字符要正确;汉字与汉字之间的相对位置要保持一致。

⑹将你正在使用的电脑的IP地址和DNS记录在1.doc中。

(7) 将下列转换结果写在1.doc中●(101101)2=()10=()8=()16●(123.125)10=()2==()8=()16● (37) 8=()16●(11001)2、(28)10、(32)8、(2A)16将这四个数按照从大到小排序:(8) 将1.doc文件上传到ftp://10.10.9.222上自己的文件夹中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int main()
{
int i;
string str[3],temp;
for(i=0;i<3;i++)
cin>>str[i];
for(i=0;i<3;i++)
{
for(int j=0;j<3-i-1;j++)
{
if(str[j]>str[j+1])
{
temp=str[j];
str[j]=str[j+1];
cout<<name[n-1]<<endl;
}
4.有n个人围成一圈,顺序排号。从第1个人开始报数(从1~3),凡报到3的人退出圈子,问最后留下的原来排在第几号。
#include<iostream>
using namespace std;
void main()
{
const int n=11;
int a[n];
使用%运算符将各个数字分离出来。
对于大于100的数值,处理方式类似。
#include<iostream>
ain()
{
char *digits[10]={" ","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE"};
if(!digit2)
cout<<tens[digit1];
else cout<<tens[digit1]<<" "<<digits[digit2]<<" ";
}
cout<<"and "<<" "<<cents<<"/100"<<'\n';
return 0;
}
6.编写一个程序,把两个字符型链表对象链接成一个链表。该程序应该包含函数concatenate,它以对两个链表对象的引用为参数,并将第2个链表链接到第一个链表上。
scanf("%c",&p->data);
getchar();
p->next = NULL;
head->next = p;
head = head->next;
}
return OK;
}
Status DestroyLink(LinkList &L)///销毁链表
{
LinkList p = L->next;
cin>>dollars>>cents;
cout<<endl;
if (dollars<10)
cout<<digits[dollars]<<" ";
else if(dollars<20)
cout<<teens[dollars-10]<<" ";
else
{
digit1=dollars/10;
digit2=dollars%10;
{
LinkList Pc = Lc = La;
LinkListPa= La->next;
LinkList Pb = Lb->next;
while (Pc->next)
{
//Pc->next = Pa;
Pc = Pc->next;
//Pa = Pa->next;
}
while (Pb)
{
Pc->next = Pb;
4.理解引用的概念,掌握引用的应用方法。
5.了解指向函数的指针变量;
6.了解指针与链表关系。
二、实验内容
1.分析如下程序的结果(数组与指针的关系)
#include<iostream>
using namespace std;
void main()
{
char s1[5]={‘m’, ‘n’, ‘p’, ‘q’,‘\0’};
char *teens[10]={"TEN","ELEVEN","TWELVE","THIRTEEN","FOURTEEN","FIFTEEN",
"SIXTEEN","SEVENTEEN","EIGHTEEN","NINETEEN"};
char *tens[10]={" ","TEN","TWENTY","THIRTY","FORTY","FIFTY","SIXTY","SEVENTY","EIGHTY",
{
if(str[j]>str[j+1])
{
temp=str[j];
str[j]=str[j+1];
str[j+1]=temp;
}
}
}
for(i=0;i<3;i++)
cout<<str[i]<<endl;
(2)用string方法
#include<iostream>
#include<string>
using namespace std;
"NINETY"};
int dollars;/*接收输入的美元*/
int cents;/*接收输入的美分*/
int digit1;/*用来计算十位数*/
int digit2;//用来计算个位数
cout<<"enter the check amout(0 to 99)and cents(0-99):";
return 0;
}
三、实验体会
教师评价



及格
不及格
教师签名
日期
if(a[i]==1) cout<<"最后留下的人原来排在第"<<i+1<<"号"<<endl;
}
编程挑战:
5.编写一个程序,读取支票上的一个数值金额,并输出其文字表示。例如,数字112.43应写为:
ONE HUNDRED TWELEVE and 43/100
提示:
只处理0到100之间的值。
创建一个字符型指针数组,包含所有的个位和十位数表示(40,50、60等),不要忘记11~19之间的数字!
中国矿业大学计算机学院实验报告
课程名称高级程序设计语言实验名称___实验六指针__
实验报告要求:1.实验目的2.实验内容3.实验步骤
4.运行结果5.流程图6.实验体会
一、实验目的
1.掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式;
2.掌握用指针处理数组和字符串的方法
3.掌握用指针作为函数参数的方法
p = p->next;
}
printf("\n");
return OK;
}
int main()
{
LinkList la;
LinkList lb;
LinkList lc;
CreatLink(la,3);///创建链表1
PrintLink(la);
printf("------------------------------------\n");
CreatLink(lb,2);///创建链表2
PrintLink(lb);
printf("------------------------------------\n");
concatenate(la,lb,lc);///连接后的链表
PrintLink(lc);
DestroyLink(lc);///销毁
str[j+1]=temp;
}
}
}
for(i=0;i<3;i++)
cout<<str[i]<<endl;
return 0;
}
3.编写一程序,输入月份,输出该月的英文名。例如,输入“3”,则输出March,要求用指针数组实现。
#include<iostream>
using namespace std;
void main()
{
int n;
char *name[12]={"January","February","March","April","May","June","July","August",
"September","October","November","December"};
cin>>n;
char *ps=s1;
cout<<s1<<'\n';mnpq
相关文档
最新文档