当前位置:文档之家› 集美大学C#实验报告实验五

集美大学C#实验报告实验五

集美大学C#实验报告实验五
集美大学C#实验报告实验五

集美大学计算机工程学院实验报告

课程名称:C#面向对象程序设计班级:计算1012实验成绩:

指导教师:陈杰姓名:林%%%

实验项目名称:接口与事件学号:201080 上机实践日期:5.28

实验项目编号:实验5组号:上机实践时间:2学时

一、目的

掌握C#中接口与事件的定义和使用的方法

二、实验要求

在实验4基础上添加会心一击的功能和反击功能

三、实验使用环境

Visual studio 2012

四、实验内容

1.定义会心一击的接口

添加一个自定义接口ISuperAttack

分别在怪物类和英雄类中实现这个接口

在循环攻击中判断是否调用SuperAttack

注意需要判断集合中的Monster是否实现了这个接口(拿攻击性武器的怪物才有会心一击的功能,会心一击的条件自定,产生会心一击的概率由武器的幸运值决定的,不同类型的英雄和怪物(如武力系,魔法系等)会心一击攻击的方法也不一样)

定义一个ISuperAttack ,接收一个实现ISuperAttack的对象调用攻击方法即可(与作为返回值类似)

2.为某些怪物和某些英雄定义被攻击事件,当遇到攻击以后可以自动反击。

五、实验过程

自定义接口ISuperAttack

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace shiyan2

{

public interface ISuperAttack

{

void AllBeat(AttackQQ qq,MagicQQ mm, DefeatBird bird1, MagicBird bird2, AttackBird bird3);

}

}

分别在怪物类和英雄类中实现这个接口

英雄继承借口实现AllBeat()

public class AttackQQ : QQ, ISuperAttack

{

public AttackQQ(string name, int firstBlood, int attackPower, int defeatPower, Point firstLoc, Size size):base(name, firstBlood, attackPower, defeatPower, firstLoc, size)

{

this.Speed = 90;

}

//int a = bird.FirstBlood;

public override void Move(Bird bird, QQ qq)

{

this.SecondLoc = new Point

(

bird.FirstLoc.X,

bird.FirstLoc.Y + bird.Size.Height + 20

);

bird.FirstBlood = bird.FirstBlood - qq.AttackPower + bird.DefeatPower;

YS = true;

}

public override void Move()

{

this.SecondLoc = this.FirstLoc;

YS = false;

}

public void AllBeat(AttackQQ qq,MagicQQ mm, DefeatBird bird1, MagicBird bird2, AttackBird bird3) {

bird1.FirstBlood -= 50;

bird2.FirstBlood -= 50;

bird3.FirstBlood -= 50;

}

}

怪物继承借口实现AllBeat()

public class MagicBird : Bird, ISuperAttack

{

//private int magicAttact;

public int MagicAttact { get; set; }

public int Speed { get; set; }

public MagicBird(string name, int firstBlood, int attackPower, int defeatPower, Point firstLoc, Size size):base(name, firstBlood, attackPower, defeatPower, firstLoc, size)

{

this.MagicAttact = 50;

this.Speed = 60;

}

public void Move(QQ qq, MagicBird bird)

{

this.SecondLoc = new Point

(

qq.FirstLoc.X,

qq.FirstLoc.Y + qq.Size.Height - 300

);

qq.FirstBlood = qq.FirstBlood - bird.AttackPower - MagicAttact + qq.DefeatPower;

YS = true;

}

public override void Move()

{

this.SecondLoc = this.FirstLoc;

YS = false;

}

public void AllBeat(AttackQQ qq, MagicQQ mm, DefeatBird bird1, MagicBird bird2, AttackBird bird3)

{

qq.FirstBlood -= 50;

mm.FirstBlood -= 50;

}

}

注意需要判断集合中的Monster是否实现了这个接口(拿攻击性武器的怪物才有会心一击的功能,会心一击的条件自定,产生会心一击的概率由武器的幸运值决定的,不同类型的英雄和怪物(如武力系,魔法系等)会心一击攻击的方法也不一样)

private void bird2_Click(object sender, EventArgs e)

{

int i = ran.Next(1, 10);

if (!mm.YS && !qq.YS && !birdTemp1.YS && !birdTemp2.YS && !birdTemp3.YS)

{

if (flag2)

{

b2 = birdTemp2.FirstBlood;

flag2 = false;

}

if (i % 2 == 0 && (qq.FirstBlood > 0 || mm.FirstBlood > 0))

{

smallqq();

}

else

{

if (qq.FirstBlood > 0)

{

qq.Move(birdTemp2, qq);

QQNewPlace(pp, qq);

BarValue = 100 * birdTemp2.FirstBlood / b2;

Judge(progressBar4);

LaterTime(1000);

qq.Move();

QQOldPlace(pp, qq);

if (birdTemp2.FirstBlood <= 0)

{

bird2.Click -= new EventHandler(bird2_Click);

goto end;

}

LaterTime(1000);

}

if (mm.FirstBlood > 0)

{

mm.Move(birdTemp2, mm);

QQNewPlace(mqq, mm);

BarValue = 100 * birdTemp2.FirstBlood / b2;

Judge(progressBar4);

LaterTime(1000);

mm.Move();

QQOldPlace(mqq, mm);

}

//progressBar4.SetBounds(270, 30, 120 * birdTemp2.FirstBlood / 150, 16);

//BarValue = 100 * birdTemp2.FirstBlood / 150;

end: if (birdTemp2.FirstBlood <= 0)

{

bird2.Click -= new EventHandler(bird2_Click);

bird2.Image = global::shiyan2.Properties.Resources.redh;

}

}

}

else

{

birdTemp2.Move();

BirdOldPlace(bird2, birdTemp2);

}

}

private void pp_Click(object sender, EventArgs e)

{

int i = ran.Next(1, 10);

if (flag4)

{

q1 = qq.FirstBlood;

flag4 = false;

}

if (!mm.YS && !qq.YS && !birdTemp1.YS && !birdTemp2.YS && !birdTemp3.YS)//当没有攻击时攻击。有攻击时后退

{

if (i % 3 == 0 && (birdTemp1.FirstBlood > 0 || birdTemp2.FirstBlood > 0 || birdTemp3.FirstBlood > 0))

{

jian();

}

else

{

if (birdTemp2.FirstBlood > 0)

{

birdTemp2.Move(qq, birdTemp2);

BirdNewPlace(bird2, birdTemp2);

//progressBar1.SetBounds(259, 340, 131 * qq.FirstBlood / 500, 22);

BarValue = 100 * qq.FirstBlood / q1;

Judge(progressBar1);

LaterTime(1000);

birdTemp2.Move();

BirdOldPlace(bird2, birdTemp2);

if (qq.FirstBlood <= 0)

{

pp.Click -= new EventHandler(pp_Click);

goto end;

}

LaterTime(1000);

}

if (birdTemp1.FirstBlood > 0)

{

birdTemp1.Move(qq, birdTemp1);

BirdNewPlace(bird1, birdTemp1);

BarValue = 100 * qq.FirstBlood / q1;

Judge(progressBar1);

LaterTime(1000);

birdTemp1.Move();

BirdOldPlace(bird1, birdTemp1);

if (qq.FirstBlood <= 0)

{

pp.Click -= new EventHandler(pp_Click);

goto end;

}

LaterTime(1000);

}

if (birdTemp3.FirstBlood > 0)

{

birdTemp3.Move(qq, birdTemp3);

BirdNewPlace(bird3, birdTemp3);

BarValue = 100 * qq.FirstBlood / q1;

Judge(progressBar1);

LaterTime(1000);

birdTemp3.Move();

BirdOldPlace(bird3, birdTemp3);

}

end: if (qq.FirstBlood <= 0)

{

pp.Click -= new EventHandler(pp_Click);

pp.Image = global::shiyan2.Properties.Resources.qqh; }

}

}

else

{

qq.Move();

QQOldPlace(pp, qq);

}

}

public void jian()

{

birdTemp2.AllBeat(qq, mm, birdTemp1, birdTemp2, birdTemp3);

pictureBox2.Image = global::shiyan2.Properties.Resources.jian; pictureBox3.Image = global::shiyan2.Properties.Resources.jian; LaterTime(500);

pictureBox2.Image = global::shiyan2.Properties.Resources.cspace; pictureBox3.Image = global::shiyan2.Properties.Resources.cspace; LaterTime(500);

pictureBox2.Image = global::shiyan2.Properties.Resources.jian; pictureBox3.Image = global::shiyan2.Properties.Resources.jian; BarValue = 100 * qq.FirstBlood / 500;

Judge(progressBar1);

BarValue = 100 * mm.FirstBlood / 400;

Judge(progressBar5);

LaterTime(1000);

pictureBox2.Image = global::shiyan2.Properties.Resources.cspace; pictureBox3.Image = global::shiyan2.Properties.Resources.cspace;

if (qq.FirstBlood <= 0)

{

pp.Click -= new EventHandler(pp_Click);

pp.Image = global::shiyan2.Properties.Resources.qqh;

}

if (mm.FirstBlood <= 0)

{

mqq.Click -= new EventHandler(mqq_Click_1);

mqq.Image = global::shiyan2.Properties.Resources.mqqh;

}

}

public void smallqq()

{

qq.AllBeat(qq, mm, birdTemp1, birdTemp2, birdTemp3);

sqq1.Image = global::shiyan2.Properties.Resources.sqq;

sqq2.Image = global::shiyan2.Properties.Resources.sqq;

sqq3.Image = global::shiyan2.Properties.Resources.sqq;

BarValue = 100 * birdTemp1.FirstBlood / 300;

Judge(progressBar3);

BarValue = 100 * birdTemp2.FirstBlood / 300;

Judge(progressBar4);

BarValue = 100 * birdTemp3.FirstBlood / 350;

Judge(progressBar2);

LaterTime(1500);

sqq1.Image = global::shiyan2.Properties.Resources.space;

sqq2.Image = global::shiyan2.Properties.Resources.space;

sqq3.Image = global::shiyan2.Properties.Resources.space;

if (birdTemp1.FirstBlood <= 0)

{

bird1.Click -= new EventHandler(pictureBox2_Click);

bird1.Image = global::shiyan2.Properties.Resources.whiteh; }

if (birdTemp2.FirstBlood <= 0)

{

bird2.Click -= new EventHandler(bird2_Click);

bird2.Image = global::shiyan2.Properties.Resources.redh;

}

if (birdTemp3.FirstBlood <= 0)

{

bird3.Click -= new EventHandler(pictureBox3_Click);

bird3.Image = global::shiyan2.Properties.Resources.blackh; }

}

英雄的会心一击

怪物会心一击

为某些怪物和某些英雄定义被攻击事件,当遇到攻击以后可以自动反击

public partial class Form1 : Form

{

public bool YS = false;

public delegate void SecAtt(QQ qq, Bird bird);

public event SecAtt SecondAttack;

public void SAttack(QQ qq, Bird bird)

{

if (SecondAttack != null)

SecondAttack(qq,bird);

}

public void BigBanBan(Form1 form1)

{

form1.SecondAttack += BigBan;

}

public void BigBan(QQ qq,Bird bird)

{

bird.SecondLoc = new Point

(

qq.FirstLoc.X,

qq.FirstLoc.Y + qq.Size.Height - 300

);

qq.FirstBlood = qq.FirstBlood - 60;

YS = true;

}

private void pictureBox2_Click(object sender, EventArgs e)

{

int i = ran.Next(1, 10);

if (!mm.YS && !qq.YS && !birdTemp1.YS && !birdTemp2.YS && !birdTemp3.YS) {

if (i % 2 == 0 && (qq.FirstBlood > 0 || mm.FirstBlood > 0))

{

smallqq();

}

else

{

//birdTemp1.FirstBlood = birdTemp1.FirstBlood - qq.AttackPower + birdTemp1.DefeatPower + birdTemp1.AddDefeat;

if (flag1)

{

b1 = birdTemp1.FirstBlood;

flag1 = false;

}

if (flag4)

{

q1 = qq.FirstBlood;

flag4 = false;

}

if (flag5)

{

q2 = mm.FirstBlood;

flag5 = false;

}

//Bird pb = (Bird)sender;

//birdTemp2.FirstBlood = birdTemp2.FirstBlood - qq.AttackPower +

birdTemp2.DefeatPower;

if (qq.FirstBlood > 0)

{

qq.Move(birdTemp1, qq);

QQNewPlace(pp, qq);

BarValue = 100 * birdTemp1.FirstBlood / b1;

Judge(progressBar3);

LaterTime(1000);

qq.Move();

QQOldPlace(pp, qq);

if (birdTemp1.FirstBlood <= 0)

{

bird1.Click -= new EventHandler(pictureBox2_Click);

goto end;

}

LaterTime(1000);

}

if (birdTemp1.FirstBlood > 0 && qq.FirstBlood > 0)

{

//birdTemp1.BigBan(qq, birdTemp1);

SAttack(qq,birdTemp1);

BirdNewPlace(bird1, birdTemp1);

BarValue = 100 * qq.FirstBlood / q1;

Judge(progressBar1);

LaterTime(1000);

birdTemp1.Move();

BirdOldPlace(bird1, birdTemp1);

if (qq.FirstBlood <= 0)

{

pp.Click -= new EventHandler(pp_Click);

pp.Image = global::shiyan2.Properties.Resources.qqh;

}

LaterTime(1000);

}

if (mm.FirstBlood > 0)

{

mm.Move(birdTemp1, mm);

QQNewPlace(mqq, mm);

BarValue = 100 * birdTemp1.FirstBlood / b1;

Judge(progressBar3);

LaterTime(1000);

mm.Move();

QQOldPlace(mqq, mm);

// progressBar3.SetBounds(501, 30,120 * birdTemp1.FirstBlood / 200, 16); }

end: if (birdTemp1.FirstBlood <= 0)

{

bird1.Click -= new EventHandler(pictureBox2_Click);

bird1.Image = global::shiyan2.Properties.Resources.whiteh;

}

LaterTime(1000);

//bird1.Image = global::shiyan2.Properties.Resources.whiteh;

if (birdTemp1.FirstBlood > 0 && mm.FirstBlood > 0)

{

//birdTemp1.BigBan(mm, birdTemp1);

SAttack(mm,birdTemp1);

BirdNewPlace(bird1, birdTemp1);

BarValue = 100 * mm.FirstBlood / q2;

Judge(progressBar5);

LaterTime(1000);

birdTemp1.Move();

BirdOldPlace(bird1, birdTemp1);

}

if (mm.FirstBlood <= 0)

{

mqq.Click -= new EventHandler(mqq_Click_1);

mqq.Image = global::shiyan2.Properties.Resources.mqqh; }

}

}

else

{

birdTemp1.Move();

BirdOldPlace(bird1, birdTemp1);

}

}

六、实验小结

用图实现了不同的攻击效果,由于图的叠加问题,只能另图相互错开或者置底。取随机数,如果被2整除则实现英雄的会心一击,如果被3整除实现怪物的会心一击,虽然概率较大,但也可以改变,为了实现效果,所以暂时不改。对于反击事件的实现,还是需要继续研究,最近由于备考,对事件才有较深的认识,但还是处于皮毛,不能真正理解掌握。

c语言实验报告 ()

丽水学院计算机实验报告

丽水学院计算机实验报告 一、实验目的 1.熟悉Visual C++和C-Free等集成环境,掌握运行一个C程序的基本步骤,包括编辑、编译、连接和运行。 2.掌握算术表达式和赋值表达式的使用。 3.掌握基本输入、输出函数的使用。 4.能够编程实现简单的数据处理。 二、实验环境 硬件:Pentium以上的计算机。 软件:Windows XP操作系统、Visual C++和C-Free等集成环境。 三、实验内容和结果 1.编程题1 在屏幕上显示一个短句“What is a computer?” 思考: (1)如何在屏幕上显示你自己的学号,姓名和班级? (2)如何在屏幕上显示数字、英文字母和汉字等信息?例如:“你在机房吗?” 编程题1源程序: #include<> void main() { printf("What is a computer?\n");

} 程序运行结果: What is a computer? 思考题(1): #include<> void main() { printf(",小王,班级\n"); } 思考题(2): #include<> void main() { printf("英文字母abcdefgABCDEFG\n"); printf("汉字:哇哈哈啊哈和\n"); } 2.编程题2 在屏幕上显示下列图形。 * * * * * * * * * *

思考:如何在屏幕上显示下列图形? A A A A 编程题2源程序: #include<> void main() { int i,j; for(j=1;j<5;j++) { for(i=5;i>j;i--) printf("*"); printf("\n"); } } 程序运行结果: * * * * * * * * * * 思考题:

C语言实验报告3

实验报告 实验名称:最简单的C程序设计——顺序程序设计成绩: 实验日期: 2011 年 10 月 24 日实验报告日期: 2011 年 10 月24 日 实验者:桂婷 一、实验目的 1、掌握C语言中使用最多的一种语句——赋值语句的使用方法。 2、掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。 3、进一步掌握编写程序和调试程序的方法。 二、实验内容 1、输入程序并运行结果。 2、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。编程序,用scanf输入数据,输出计算结果/。 3、计算存款利息。 有1000元,想存5年,可探子以下5种办法存: (1)一次存5年期; (2)先存2年期,到期后将本息再存3年期; (3)先存3年期,到期后将本息再存2年期; (4)存1年期,到期后将本息存再存1年期,连续存5次; (5)存活期存款。活期利息每一季度结算一次。 三、实验步骤: 1、

总结:1、变量在定义时就赋了初值。 2、两次的printf语句输出都指定了要输出数据的长度和小数点。2、 总结:1、程序在定义时只对部分变量赋了初值,这是允许的。 2、在计算时,乘号是用*表示,不能省略。 3、同样,在输出时指定了输出格式,长度,小数点位数。 3、

总结:1、用scanf语句输入数据,要与指定的格式一样。 2、程序用到了数学公式,调用“include ” 4、实验出现的问题、实验结果分析 1、程序在运行时是自上而下同,自左向右的。运到调用函数则会跳 转,但调用完了仍然回到主函数中。 2、printf语句中的常量是按原样输出的。 3、注意赋值语句的使用。 五、实验小结和思考 1、如果在程序2中不指定输出的长度和小数位数,看运行结果。 2、在程序3中不包含“include ”会怎样? 3、程序3若不给变量赋初值会出现什么情况。

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

C语言实验报告

《C语言程序设计实训1》报告 设计题目:基于数组的学生信息管理系统学院名称:信息科学技术学院

专业:计算机科学与技术 班级: 姓名:学号 指导教师: 提交日期: 2014年12月22日 一、实验内容 编写并调试程序,实现学校各专业班级学生信息的管理。10个学生的信息存储在文件中。在头文件中定义学生信息的结构体类型,包括: 学号、姓名、专业、班级、3门成绩;和符号常量N(学生数)。(同一班 级的学生可以属于不同的专业,同一专业的学生可以属于不同的班级)

二、实验要求 (1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择, 调用相应的函数。 STU student[N]; 函数 #include "" void main() { int i,n,id,num,m,sub,corse;将从文件中读取10个人的信\n"); printf("\n2.您将从文件中随机读取第n(0<=n<=9)个学生的信息\n") printf("\n3.您将根据某一班级某一专业总分超过多少进行查找\n"); printf("\n4.您将求某一课程分数最高的学生序号的下标\n"); printf("\n5.您将对平均成绩由低到高进行简单选择排序法\n ");

printf("\n6.您将对某一个班的平均成绩由低到高进行起泡排序法\n"); printf("\n7.您将对某门专业的学生的某门课程成绩由低到高进行直接插入排序法\n"); printf("\n8.您将把学生信息存入文件\n"); scanf("%d",&id); getchar(); switch(id){ case 1: { printf("\n从文件中读取信息\n"); Input(students,sizeof(students)/sizeof(STU));Sort_select 函数 #include "" void Sort_select(STU * p) { int i,j,k; float sum,ave[N],t; STU tem; for(i=0;i

2016年C语言实验报告

通知 各位老师: 本学期非计算机专业《计算机程序设计基础(C语言)》课实验报告要求: 1.统一用《武汉科技大学实验报告》本写。本学期交三次实验报告。 ①循环结构程序设计。 ②数组。 ③函数。 要求学生在完成以下实验报告,参考《C语言程序设计课程实验与题解》中的要求认真完成。 实验1 循环结构程序设计 一、实验目的 1.熟悉用while语句,do-while语句和for语句实现循环的方法。 2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。 3.熟悉break语句和continue语句用法的不同之处。 二、实验内容 【例】以下程序,输出下三角形状的乘法九九表。 #include void main() { int i,j; for (i=1;i<=9;i++) /* 打印表头*/ printf(" %4d",i); printf("%c",'\n'); for (i=0;i<=50;i++) printf("%c",'_'); printf("%c",'\n'); for (i=1;i<=9;i++) /* 循环体执行一次,打印一行*/ { for (j=1;j<=i;j++) printf(" %4d",i*j); /* 循环体执行一次,打印一个数据*/ printf("%c",'\n'); /* 每行尾换行*/ } printf("%c",'\n'); } 输入并执行该程序,观察输出结果,试着修改程序打印上三角形状的乘法九九表。 三、编程序并上机调试运行。 1.打印出所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和正好等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。 解题思路:根据题目要求只要分别求出一个三位数的个位、十位、百位上的数字,然后判断是否满足(某一三位数a=a的百位的立方+a的十位的立方+a的个位的立方)这个公式,满足这个三位数就是“水仙花数”。 2.李先生岁数的平方与他的夫人的岁数之和是1053,而他的夫人的岁数的平方与他

:C语言实验报告册-2016.3资料

学生实验报告册 (理工类) 课程名称:C语言程序设计实验专业班级: 16数字媒体技术学生学号: 1613031008 学生姓名:李翔 所属院部:计算机工程学院指导教师:吕艳林 20 16 ——20 17 学年第一学期 金陵科技学院教务处制

实验报告书写要求 实验报告上交电子稿,标题采用四号黑体,正文采用小四号宋体,单倍行距。 实验报告书写说明 实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。

实验项目名称:初级程序设计实验学时: 6 实验地点: A107 实验日期: 2016年10月13,20,27 实验成绩: 批改教师:批改时间:

实验1 初级程序设计 一、实验目的和要求 (1)熟悉Visual C++集成环境,进行编辑、保存、编译、连接及运行,并能进行简单程序调试; (2)掌握C语言中各种运算符的使用; (3)掌握C语言中各种数据类型的区别与应用; (4)熟练掌握C语言中变量的定义、赋值和使用,表达式语句、输入/输出语句的使用; (5)掌握C语言中输入/输出函数的使用; (6)掌握C语言中控制语句的使用,含if-else、for、while、do-while语句的使用。 二、实验仪器和设备 奔腾以上计算机,装有windows XP以上版本操作系统和Visual C++ 6.0软件。 三、实验内容与过程 1、程序调试 (1)#include main() { int s,t,p,sum; scanf(“%d%d%d”,&s,&t,&p); sum=s+t+p; printf(“sum=%d\n”,sum); } (2)#include main() { int k=3; if(k=3) printf(“***”); else printf(“###”); } (3)#include main() {int k=0; do { printf(“k=%d\n”,k); }while(k++>0); } 2、程序改错

C语言实验报告

实验一进制转换一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。

五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制 的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n");

} else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c;

C语言实验报告答案

二、编程题(参考答案) 1、 #include “stdio.h” void main() { int Math=82,eng=78,comp=91,average; average=(Math+eng+comp)/3; printf(“Math=%d,eng=%d,comp=%d,average=%d\n”,Math,eng,comp,average); } 2、 #include “stdio.h” void main() { int n=152,d1,d2,d3; d1=n%10; d2=(n/10)%10; d3=n/100; printf(“整数%d的个位数字是%d,十位数字是%d,百位数字是%d\n”,n,d1,d2,d3); } 3、 #include “stdio.h” void main() { int n1,n2; printf(“Enter n1,n2:”); scanf(“%d,%d”,&n1,&n2); printf(“%d+%d=%d\n”,n1,n2,n1+n2); printf(“%d/%d=%d\n”,n1,n2,n1/n2); printf(“%d%%%d=%d\n”,n1,n2,n1%n2); } 三、改错题 原错误行(共三行): /********************************** found ********************************/ #include “stdoi,h” /********************************** found ********************************/ printf(“%d=%d*%d\n”,x); /********************************** found ********************************/ printf(“%d*%d=%d\n”,y); 改正后: #include “stdio.h” printf(“%d=%d*%d\n”,y,x,x); printf(“%d*%d=%d\n”,x,x,y);

C语言编程实验报告(三)

华北水院高级语言程序设计(C语言)实验报告(三) 2012--2013学年第二学期 2012级专业:学号:姓名:……………………………………………………………………………………………… 一、实验题目:循环结构程序设计 二、实验目的:(略) 三、实验内容 1. 程序验证(略) 2.程序设计 1) 找出100-900之间的无暇素数。所谓无暇素数是指本身为素数,且其逆序数也是素数的数。例如:113是一个素数,311也是一个素数,113就是无暇素数。 源代码:运行结果: #include "stdafx.h" #include #include void main() { int n,m,i,j,a,b,c,k; int flag,count=0; for(n=101;n<=109;n+=2) { a=n%100; b=(n%100)/10; c=(n%100)%10; m=c*100+b*10+c; flag=1; k=(int)sqrt(n); for(i=2;i<=k;i++)

if(n%i==0&&m%i==0) { flag=0; break; } if(flag) { count++; printf("%5d",n); if(count%4==0) printf("\n"); } } } 2) 编程:用迭代法求某数a的平方根。平方根的迭代公式如下:

x n+1=(x n+a/x n)/2; 设x0=a/2; 当迭代相邻两项差的绝对值小于10-5时,迭代结束。 源代码:运行结果:#include "stdafx.h" #include #include void main() { double a,b,m,n,t; printf("请输入一个数"); scanf("%lf",&a); m=(a/2+a/(a/2)); while(t>=1e-5) { n=m; m=(n+a/n)/2; t=n-m; } printf("%lf",t); }

c语言实验三实验报告

C语言程序设计实验报告 实验三使用数组的程序设计 班级学号姓名 一、实验目的 (1)掌握一维数组和二维数组的定义、赋值和输入输出方法。 (2)掌握字符数组的使用。 (3)掌握与数组有关的算法。 二、实验内容及步骤 1、检验并打印幻方矩阵 在下面的5*5阶幻方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些幻方矩阵中的元素读到一个二维整型数组中,然后检验其是否为幻方矩阵,并将其按如下格式显示到屏幕上。 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 程序代码: #include int main() { int i,j,k=0; int sum1[5]={0},sum2[5]={0},b[2]={0}; int a[5][5]={{17,24,1,8,15},{23,5,7,14,16},{4,6,13,20,22},{10,12,19,21,3},{11,18,25, 2,9}}; for(i=0;i<5;i++) { for(j=0;j<5;j++) { printf("%4d",a[i][j]); sum1[i]=sum1[i]+a[i][j]; sum2[i]=sum2[i]+a[j][i]; } printf("\n"); } for(i=0;i<5;i++) { b[0]=b[0]+a[i][i]; b[1]=b[1]+a[i][4-i]; } for(i=0;i<5;i++) {

if(sum1[i]==b[0]&&sum2[i]==b[0]&&b[0]==b[1]) k++; } if(k==5) printf("这是一个幻方矩阵.\n"); else printf("这不是一个幻方矩阵.\n"); return 0; } 2、完成以下程序,并进行调试 某班期末考试科目为数学、英语和计算机,有最多不超过30人参加考试,考试后要求:1)计算每个学生的总分和平均分; 2)按总分成绩由高到低排出成绩的名次; 3)打印出名次表,表格内包括学生学号、各科分数、总分和平均分; 4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。 【提示】:用二维数组score存放每个学生各门课程的成绩,用一维数组num存放每个学生的学号,用一维数组sum存放每个学生的总分,用一维数组aver存放每个学生的平均分。 程序代码: #include int main() { int i,j,k,l,g,t,s,r,p; int score[31][4],num[31],sum[31]={0},aver[31],m; printf("请输入学生人数:\n"); scanf("%d",&k); for(i=1;i<=k;i++) { printf("请输入学号和各科成绩:\n");//输入学号及成绩 scanf("%d",&num[i]);getchar(); for(j=1;j<4;j++) { scanf("%d",&score[i][j]);getchar(); sum[i]=sum[i]+score[i][j]; } aver[i]=sum[i]/3; } for(j=1;j

C语言实验报告

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

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

C语言实验报告

C语言实验报告 This model paper was revised by the Standardization Office on December 10, 2020

实验一进制转换一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。

五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制的 转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include <> char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n");

c语言实验报告

C语言实验报告 说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。 实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。 (2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 三、程序调试与问题解决: (1)输人并运行下面的程序 #include void main() {

char c1,c2; c1='a'; c2='b'; printf("%c %c\n",c1,c2); } ○1运行此程序。 ○2在上面printf语句的下面再增加一个printf语句。printf("%d %d\n",c1,c2); 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。 a,b没有定义,编译报错。

○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。 以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include main () { char c1='a',c2='b',c3='c',c4='\101',c5='\116'; printf("a%c b%c\tc%c\tabc\n",c1,c2,c3); printf("\t\b%c %c\n",c4,c5); } #include void main() { int a,b;

C语言实验报告

《程序设计基础》实验报告 姓名郭晟班级17级计算机科学与技术 1班 学号1706011105 实验名称实验1、熟悉实验环境 实验时间2017年10月26日成绩91 实验目的: 1.熟悉C语言运行环境,了解和使用Visual C++ 6.0集成开发环境; 2.熟悉Visual C++ 6.0环境的功能键和常用的功能菜单命令; 3.熟悉C语言程序的书写格式和C语言程序的结构; 4.熟悉C语言的上机步骤,以及编辑、编译和运行一个C程序的方法; 5.熟悉Visual C++ 6.0环境下的程序调试方法。 实验环境: 1.所用操作系统Windows10 2.所用软件Visual c++6.0 实验内容: 1、有以下程序: 完成程序,要求: 依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序 的结构。 2、 1. 编写一个程序,从键盘输入某电视机的价格,再输出该价格打7折后的价格。分析:必须设计一个实型变量接受从键盘输入的值,输入、输出应该有提示。2.输入一个三位数,然后进行个位和百位的置换,如 234 ,转换成432 3.编程求出某学生期末三门课程的总分及平均分。结果保留小数点后一位。 4.编写一个程序,其功能为:从键盘上输入一个浮点数,然后分别输出该数的整数部分和小数部分。 分析:若输入的浮点数存入fd变量,则可用强制类型转换运算符,将输入的该数 的整数部分取出:zhs=(int)fd; 5. 编程序计算298秒是几分几秒。 提示:设 int x=298; 再定义两个变量存放分(m)、秒(s)值; 则:m=x/60;s=x%60; 请编一个程序,上机调试并运行。 实验过程及结果记录: 1. #include"stdafx.h" #define K 0.7 int main()

C语言实验报告(三)

华北水利水电大学C语言程序设计实验报告 2014--2015学年第二学期2016 级材料成型及控制工程专业 班级: 2016096 学号: 201609614 姓名:陈祥雨 一、实验题目:循环结构程序设计 二、实验目的:(略) 三、实验内容 1. 程序验证(略) 2.程序设计 1) 找出100-900之间的无暇素数。所谓无暇素数是指本身为素数,且其逆序数也是素数的数。例如:113是一个素数,311也是一个素数,113就是无暇素数。 源代码:#include #include void main() { int n,i,k,a,b,c,d; int flag; for(n=100;n<=900;n++) { flag=1; k=(int)sqrt(n); for(i=2;i<=k;i++) { if(n%i==0) flag=0; } if(flag) { a=n%10; b=n/10%10; c=n/100; d=a*100+b*10+c; } k=(int)sqrt(d); for(i=2;i<=k;i++)

{ if(d%i==0) flag=0; } if(flag) printf("%7d",n); } printf("\n"); } 运行结果: 2) 编程:用迭代法求某数a的平方根。平方根的迭代公式如下: x n+1=(x n+a/x n)/2; 设x0=a/2; 当迭代相邻两项差的绝对值小于10-5时,迭代结束。 源代码:#include #include void main() { float a=1,b,c; printf("input c\n"); scanf("%f",&c); b=c; while(fabs(a-b)>=1e-5) { a=b; b=(a+c/a)/2;

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

3.2基础实验 一、程序分析 1.以下程序若输入’a’,则输入格式为:__c1=a____;运行结果为:___a,A↙_____。 #include intmain( ) {char c1,c2; scanf(“c1=%c”,&c1); c2=c1-32; printf(“%c,%c\n”,c1,c2); return 0; } 2.以下程序如果使得a的值为2、b的值为3,则输入格式为:_a=2,b=3__;运行结果为:_2,3↙_。 #include intmain( ) { int a,b; scanf(“a=%d,b=%d”,&a,&b); printf(“%d,%d\n”,a,b); return 0; } 3.以下程序若输入12.3、7.6、1.1,则输入格式为:_12.3 7.6 1.1__;运行结果为:_aver=7.00___。 #include intmain( ) { floata,b,c,d; scanf(“%f%f%f”,&a,&b,&c); d=(a+b+c)/3; printf(“aver=%.2f”,d); return 0; } 二、程序填空 1.输入一个四位整数,求各位数字之和(如1234,则结果为1+2+3+4=10)。

若输入3562,则运行结果为:___3+5+6+2=16↙____________。 #include intmain( ) { int n,a,b,c,d,m; scanf(“%d”,&n); a=n%10; b=(n/10)%10; c=(n/100)%10; d=__n/1000________; m=__a+b+c+d________; printf(“%d+%d+%d+%d=%d\n ”, d,c,b,a,m); return 0; } 2.给定一个华氏法表示的温度值,将其转换为摄氏法表示的温度,转换公式为则运行结果为:__f=64.00,c=17.78↙__。 #include intmain ( ) { float f,c; f=64.0; c=__(f-32)*5.0/9.0_________________; printf(“f=%.2f,c=%5.2f\n”,f,c); return 0; } 三、程序改错 ) 32 ( 9 5 - =f c

c语言实验报告127691

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

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

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

C语言实验报告合集

《C语言程序设计》实验报告 专业:班级:学号:学生姓名:实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验一熟悉VC++环境 二、实验目的 1. 熟悉C程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h" int main() {int a,b,sum; a=2; b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum); return 0; } 运行结果为:

2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

《C语言程序设计》实验报告 专业:班级:学号:学生姓名: 实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验二顺序结构程序设计 二、实验目的 (1)掌握C语言数据类型以及变量的声明。 (2)掌握C语言的赋值运算符、赋值表达式、赋值语句。 (3)掌握C语言的整型和字符型的混合运算。 (4)掌握C语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f,请编写程序把它转换为摄氏温度c。 已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3.将字符串“China”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字 母替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

C语言实验报告三

南京信息工程大学实验(实习)报告 实验(实习)名称格式化输入、输出函数的使用日期2019.5.1 得分指导老师 系专业年级2018级班次班姓名学号 一、实验目的 1、掌握格式字符使用的方法。 2、掌握printf()进行格式化输出的方法。 3、掌握scanf()进行格式化输入的方法。 二、实验内容 1、输入如下程序,观察运行结果 #include int main() { int x=1234; float f=123.456; double m=123.456; char ch='a'; char a[]="Hello world!"; int y=3,z=4; printf("%d %d\n",y,z); printf("y=%d,z=%d\n",y,z); printf("%8d,%2d\n",x,x); printf("%f,%8f,%8.1f,%.2f,%.2e\n",f,f,f,f,f); printf("%lf\n",m); printf("%3c\n",ch); printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a); return 0; }

2、输入如下程序,观察调试信息 #include int main() { double x,y; char c1,c2,c3; int a1,a2,a3; scanf("%d%d%d",a1,a2,a3); printf("%d,%d,%d\n",a1,a2,a3); scanf("%c%c%c",&c1,&c2,&c3); printf("%c%c%c\n",c1,c2,c3); scanf("%f,%lf",&x,&y); printf("%f,%lf\n",x,y); return 0; } 三、实验步骤 1、在VC++6.0集成开发环境中输入上述程序,观察调试结果。第一个程序输入后: :

C语言实验报告03-1

实验名:实验三:输入与输出 实验报告人:张静成数学3班 10080338 一、实验目的 1、掌握C语言程序输入、输出的方法和格式。 2、熟练地运用输入、输出编写C程序。 二、实验内容 (一)、题目1 1、题目内容描述:编辑所给程序,并用数据测试。 2、程序分析:错误(1)、遗漏了函数体结束标志“}”。 (2)、scanf中缺少&,而printf中多了&。 3、输入和输出信息描述及数据类型确定; (1)、输入数据 序号输入数据描述数据类型 1 a, b 整型 2 c, d 单精度浮点型 3 e, f 长整型 4 u, v 八进制无符号整型 5 c1,c2 字符变量 (2)输出数据 序号输出数据描述数据类型 1 a, b 整型,宽度为7 2 c, d 单精度浮点型,宽度为10,小数点2位 3 e, f 长整型,宽度为17 4 u, v 八进制无符号整型 5 c1,c2 字符型 7、测试与结果分析 (1)、测试数据与结果 源文件名可执行文 件名测试 数据 测试输入数据测试输出结果是否 正确 结果分析 sy3.cpp sy3.exe a, b 123, 456 123, 456 是宽度为7 sy3.cpp sy3.exe c, d 17.6, 71837.65 17.60, 71837.65 是宽度为10,小数 点2位 sy3.cpp sy3.exe e, f 70000,2174506 70000, 2174506 是宽度为17 sy3.cpp sy3.exe u, v 62000, 58765 62000,5 否没有以八进制表 示 sy3.cpp sy3.exe c1,c2 …a?, ?b?…a? ,?b?是字符变量

相关主题
文本预览
相关文档 最新文档