文档库 最新最全的文档下载
当前位置:文档库 › 习题七和上机答案

习题七和上机答案

习题七和上机答案
习题七和上机答案

习题七

7.1 画出对长度为10的有序表进行折半查找的判定树,并求其等概率时查找成功的平均查找长度。

解:依题意,假设长度为 10 的有序表为 a,进行二分查找的判定树如图 10.3 所示。查找成功的平均查找长度:

ASL=(1×1+2×2+3×4+4×3)/10=2.9

7.2 假设按下述递归方法进行顺序表的查找:若表长≤10,则进行顺序查找,否则进行折半查找。试画出对表长n=50的顺序表进行上述查找时,描述该查找的判定树,并求出在等概率情况下查找成功的平均查找长度。

解:查找的判定树如下(结点从0开始,升序顺序查找):

结点所在树深度即为查找次数,由此可计算平均查找长度为

ASL=( 1×1+2×2+4×3+8×4+8×5+8×6+8×7+8×8+3×9 ) / 50 = 5.68

7.3 一组有序的关键字如下:15,17,22,28,33,41,51,67,90。设法画出一棵具有平衡性的二叉排序树。如果对每一个关键字的查找概率相等,计算平均查找长度ASL。进一步写出解决该问题的算法。(提示:以中间位置元素为根)。

ASL=(1×1+2×2+3×4+4×2)/ 9=2.78

。若用拉链法解决冲突情况又如何?

解:线性探测法(哈希表长度大于8时)

ASL(7)=(1×5+3+6)/7=2

哈希表长度等于8时

ASL(7)=(1×5+3+7)/7=2.14

α= 表中填入的记录数 / 哈希表的长度

拉链法

ASL(7)=(1×5+2×2)/7=1.28

7.5 已知一个含有1000个记录的表,关键字为中国人姓氏的拼音,请给出此表的一个哈希表设计方案,要求它在等概率情况下查找成功的平均查找长度不超过3。

解:将姓氏中的每一个字母换成字母表中的位置,将所有位置两两相乘再相加的和作为key值如周zhou, 字母位置为26,8,15,21 则key=(26×8+15×21)%1000=523

7.6 试编写一个开放地址法解决冲突的哈希表删除算法。

解:

/************************************************************************************/ /*基本思想*/ /*将哈希表中最后一个与删除关键字key相同的关键字覆盖删除关键字*/ /*例如1 2 3 4 5 15 35,删除5后,1 2 3 4 35 15 */ /************************************************************************************/ #include "stdio.h"

#define SIZE 10 /* 最大表长度*/

#define M 10 /* 冲突处理函数*/

/*****************************************************************************/

void creat_hash(int *); /* 建立哈希表*/

void del_hash(int *,int); /* 删除元素*/

void output(int *); /* 显示哈希表*/

/*****************************************************************************/

void main(void)

{

int hash[SIZE]={0}; /* 哈希表,初始化为0,表示没有元素*/

int k; /* 删除的元素*/

printf("\n=====================Del Hash List=====================\n");

creat_hash(hash);

output(hash);

printf("\nInput the del key: ");

scanf("%d",&k);

del_hash(hash,k);

output(hash);

getch();

}

/*****************************************************************************/

void creat_hash(int *hash) /* 建立哈希表*/

{

int m,n,i;

printf("Input data(most %d,-1 is end):\n",SIZE);

for(i=0;i

{ scanf("%d",&m);

if(m==-1) break; /* 输入元素是-1结束*/

n=m % M; /* 求key */

while(*(hash+n)) n=++n%SIZE; /* 线性探测再散列,查找填入位置*/

*(hash+n)=m; /* 填入哈希表*/

}

}

/*****************************************************************************/

void del_hash(int *hash,int k) /* 删除元素*/

{

int i,n,m,l; /* i当前元素下标,n同一组key的第一个元素*/

/* m记录同一组key的最后一个元素,l删除元素下标*/ l=m=n=k % M;

for(i=(n+1)%SIZE;i!=n;) /* 循环处理整个哈希表*/

{ if(n==*(hash+i)%M) m=i; /* 如果key值相同,则记入m */

if(*(hash+i)==k) l=i; /* 元素值相同,记入l */

i=++i%SIZE; /* 改变i

}

*(hash+l)=*(hash+m); /* 将同一组key的最后一个元素覆盖删除元素*/

*(hash+m)=0; /* 删除最后一个元素*/

}

/*****************************************************************************/ void output(int *hash) /* 显示哈希表*/

{

int i;

printf("Hash List:\n");

printf("Position ");

for(i=0;i

putchar('\n');

printf("Data ");

for(i=0;i

if(*(hash+i)) printf("%4d",*(hash+i));

else printf(" ");

}

第七章上机内容

7.1、编程实现在一个无序表A中采用顺序查找算法查找值为x的元素,返回其位置。解:

#include "stdio.h"

#define SIZE 10

/************************************************************************/

int search(int *,int);

/************************************************************************/

void main(void)

{

int i,k,m;

int a[SIZE];

printf("\nInput data:\n");

for(i=0;i

scanf("%d",a+i);

printf("Input search data: ");

scanf("%d",&k);

m=search(a,k);

if(m==-1) printf("No this data\n");

else printf("The position is %d",m);

getch();

}

/************************************************************************/

int search(int *a,int k)

{

int i;

for(i=0;i

return -1;

}

7.2、编写一个算法,利用二分查找算法在一个有序表中插入一个元素x,并保持表的有序性。

解:

/* 基本思想*/

/* 使用二分查找递归法找到插入的位置,再移动数据,达到插入的目的*/

#include "stdio.h"

#include "string.h"

#define MAXNUM 20

/************************************************************************************ /

int input(int *); /* 输入数据*/

int search(int *,int,int); /* 查找插入位置*/

void plug(int *,int,int); /* 插入数据*/

/************************************************************************************ /

void main(void)

{

int data[MAXNUM],m;

int insert=1;

m=input(data);

printf("Input the insert num:");

scanf("%d",data); /* 输入插入数据存放在data数组0号位置*/

insert=search(data,1,m); /* 返回插入位置*/

plug(data,insert,m);

for(insert=1;insert<=m+1;insert++) /* 显示数据*/

printf("%3d",*(data+insert));

getch();

}

/************************************************************************************ /

int input(int *data) /* 输入数据*/

{

int i,m;

printf("\nInput the max num:");

scanf("%d",&m);

printf("Input data\n");

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

scanf("%d",data+i);

return m;

}

/************************************************************************************ /

int search(int *data,int low,int high) /* 递归查找插入位置*/

{ /* low低地址,high高地址*/

int mid; /* 中间位置*/

if(low>high) return low; /* 没找到插入数据,返回low */

else

{ mid=(low+high)/2;

if(*(data+mid)==*data) return mid; /* 找到插入数据,返回mid */

else if (*(data+mid)<*data) low=mid+1;

else if (*(data+mid)>*data) high=mid-1;

}

search(data,low,high);

}

/***************************************************************************/

void plug(int *data,int insert,int m) /* 移动并插入数据*/

{

int i;

for(i=m;i>=insert;i--)

*(data+i+1)=*(data+i);

*(data+insert)=*data;

}

7.3、编写一个算法,求出利用二分查找算法查找任意一个元素所比较的次数。

解:

/* 基本思想*/

/* 用二分查找法查找元素,同时用一个计数器计数*/

#include "stdio.h"

#include "string.h"

#define MAXNUM 20

/***************************************************************************/

int input(int *); /* 输入数据*/

int search(int *,int); /* 查找数据*/

/***************************************************************************/

void main(void)

{

int data[MAXNUM],m;

m=input(data);

printf("Input the search num:");

scanf("%d",data); /* 待查找数据放在0号位置*/

printf("%d time\n",search(data,m));

getch();

}

/***************************************************************************/

int input(int *data) /* 输入数据*/

{

int i,m;

printf("\nInput the max num:"); /* 输入数据个数*/

scanf("%d",&m);

printf("Input data\n");

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

scanf("%d",data+i);

return m;

}

/***************************************************************************/

int search(int *data,int m) /* 查找数据*/

{

int mid,low=1,high=m,d=0; /* mid中间位置,low低位置*/

/* high高位置,d计数器*/

while(low<=high) /* 二分查找*/

{ d++;

mid=(low+high)/2;

if(*(data+mid)==*data) break;

else if (*(data+mid)<*data) low=mid+1;

else if (*(data+mid)>*data) high=mid-1;

}

return low<=high?d:0; /* 是否查找成功,成功返回d,否则返回0 */ }

7.4、设计一个算法,读入一串整数,构造其对应的二叉排序树,并在其上删除任意一个值为键盘输入的结点。

解:

/************************************************************************************/

/* 基本思想*/

/* 删除排序二叉树结点有三种情况,结点是叶子,只有左或右子树,左右子树都有*/

/* 先判断是否有左子树,有,则将左子树代替删除结点,再把右子树作为最右结点的右子树*/

/* 这样做可以处理左右子树都有和只有左子树的情况*/

/* 如果没有左子树,则将右子树代替删除节点,这样可以处理结点是叶子和只有右子树的情况*/

/* 具体可参阅《数据结构》230页图9.9 */

/************************************************************************************/

#include

#define MAXNUM 20

/***************************************************************************/ typedef struct tree{ /* 二叉树结点*/

int num;

struct tree *right,*left;

}tree;

/***************************************************************************/ void input(int *); /* 输入结点信息*/

tree *creat_tree(int *); /* 建立排序二叉树*/

void del(tree **,int); /* 删除一个结点*/

void output(tree *); /* 中序遍历输出排序二叉树*/

/***************************************************************************/ void main(void)

{

int data[MAXNUM+1]={0},m; /* 0号结点存储结点个数,m删除结点*/

tree *pai; /* 二叉树根结点*/

input(data);

pai=creat_tree(data);

output(pai);

printf("\nDel point: ");

scanf("%d",&m); /* 输入删除结点*/

del(&pai,m);

output(pai);

getch();

}

/***************************************************************************/ void input(int *data) /* 输入结点数据*/

{

int i,temp; /* i结点个数,temp暂时存储结点信息*/

printf("\nInput num(most %d,-1 is end)\n",MAXNUM);

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

{ scanf("%d",&temp);

if(temp==-1) break;

*(data+i)=temp; }

*data=i-1; /* 结点个数保存在0号结点中*/

}

/***************************************************************************/

tree *creat_tree(int *data) /* 创建二叉树*/

{

int i; /* i 当前结点数据下标*/

tree *root=NULL,*p,*q; /* root根节点,p 当前比较根节点,q 是p的双亲*/ for(i=1;i<=*data;i++)

{ p=root;

while(p) /* 查找当前数据的插入点*/

{ q=p;

p=p->numright:p->left;

}

p=(tree *) malloc (sizeof(tree));

p->num=data[i];

p->left=p->right=NULL;

if(root==NULL) root=p; /* root为空,将p 作为根节点*/

else if(q->num>data[i]) q->left=p; /* 否则插入p结点*/

else q->right=p;

}

return root;

}

/***************************************************************************/

void del(tree **root,int m) /* 删除结点*/

{

tree *p=*root,*q=*root,*n; /* p当前处理结点,q是p的双亲结点,n访问p的右子树*/ if(root==NULL) return; /* 空树*/

while(p!=NULL) /* 查找删除结点的位置*/

{ if(p->num==m) break;

q=p;

p=p->num>m?p->left:p->right;

}

if(p==NULL) /* 没有要删除的结点*/

{ printf("No this point\n");return; }

if(p->left!=NULL) /* 左子树不空*/

{ if(p!=q) /* p 不是根结点*/

if(p==q->left) q->left=p->left; /* 重建左子树*/

else q->right=p->left;

else *root=p->left;

n=p->left; /* 向右访问最右结点*/

while(n->right) n=n->right;

n->right=p->right; /* 重建右子树*/

}

else /* 左子树为空*/

{ if(p!=q) /* 重建右子树*/

if(p==q->left) q->left=p->right;

else q->right=p->right;

else *root=p->right;

}

free(p);

}

/***************************************************************************/

void output(tree *root) /* 中序遍历二叉树,并显示结点*/

{

if(root==NULL) return;

output(root->left);

printf("%4d",root->num);

output(root->right);

}

7.5、使用哈希函数:H(k)=3k MOD 11

并采用链地址法处理冲突。试对关键字序列(22,41,53,46,30,13,01,67)构造哈希表,求等概率情况下查找成功的平均查找长度,并设计构造哈希表的完整的算法。

解:

/*基本思想*/

/*统计哈希表中每个数据的查找长度,在将其除以总的数据个数*/

#include "stdio.h"

#define SIZE 20 /* 最大表长度*/

/***************************************************************************/

typedef struct list{ /* 链表中的结点*/

int data; /* 数据域*/

struct list *next; /* 后序指针域*/

}list;

/***************************************************************************/

void creat_hash(list **); /* 建立哈希表*/

float search_hash(list **); /* 求平均查找长度*/

void output(list **); /* 显示哈希表*/

/***************************************************************************/

void main(void)

{

list *hash[SIZE]={NULL}; /* 哈希表的指针数组*/

printf("\n============== Averge Search Length of Hash List================\n");

creat_hash(hash);

output(hash);

printf("Search length %.2f",search_hash(hash));

getch();

}

/***************************************************************************/

void creat_hash(list **hash) /* 建立哈希表*/

{

int m,n,i;

list *p,*q;

printf("Input data(most %d,-1 is end):\n",SIZE);

for(i=0;i

{ scanf("%d",&m);

if(m==-1) break; /* 输入元素是-1结束*/

n=3*m%11; /* 求key */

p=(list *) malloc (sizeof(list)); /* 建立一个新结点*/

p->data=m;p->next=NULL;

q=*(hash+n);

if(!q) *(hash+n)=p; /* 如果指针指向空,则将p作为第一个结点*/

else /* 否则查找最后一个结点*/

{ while(q->next) q=q->next;

q->next=p; }

}

}

/***************************************************************************/

float search_hash(list **hash) /* 删除元素*/

{

int i,n=0,m=0,l; /* i 访问数据的下标,n总结点数,m总访问数*/

/* l 当前位置的冲突结点个数*/ list *p; /* p用于访问后序结点*/

for(i=0;i

{ l=0;

p=*(hash+i);

while(p) { l++;p=p->next; }

n+=l;

m+=l*(l+1)/2; /* 当前位置冲突结点访问次数是等差数列*/ }

return 1.0*m/n; /* 求平均访问次数*/

}

/***************************************************************************/

void output(list **hash) /* 显示哈希表*/

{

int i;

list *p;

printf("Hash List:\n");

for(i=0;i

{ p=*(hash+i);

if(!p) continue;

printf("%d ",i);

while(p)

{ printf("%3d",p->data);

p=p->next;

}

printf("\n");

}

}

VB程序设计教程实验指导与习题解答上机答案

程序代码 Private Sub Command1_Click() End Sub Private Sub Command2_Click() = True End Sub Private Sub Command3_Click() = True End Sub Private Sub Command4_Click() = 10 = False = False End Sub 初始窗口:单机放大之后窗口:单机下划线之后窗口:单击加粗之后窗口: 自测2 单击还原之后窗口:

Private Sub Command1_Click() Label1 = "visual basic" Text1 = " 程序设计题" End Sub Private Sub Command2_Click() Text1 = "visual basic" Label1 = " 程序设计题" End Sub 初始窗口:单击显示之后窗口:单击交换之后的窗口:自测题3 Private Sub Command1_Click() End Sub Private Sub Command2_Click() = + 30 End Sub = + 20 = 1 初始窗口:

单击缩小两倍之后的窗口:单击向右下角移动之后的窗口:自测题4 程序代码 Private Sub Command1_Click() = "VB 学习" Print"简单的VB程序设计" End Sub Private Sub Command2_Click() Cls End Sub Private Sub Command3_Click() End End Sub Private Sub Command3_Click() End End Sub 初始化窗口:单击显示之后的窗口:单击清除之后的窗口: 自测题5 单击退出之后的窗口:

习题5及其解答

习题5及其解答 5.1 选择题 1.有说明 struct point { int x; int y; }p; 正确的赋值语句是( c )。 (a) point.x = 1; point.y = 2; (b) point={ 1, 2 }; (c) p.x = 1; p.y = 2; (d) p = { 1, 2 }; 2.已知有职工情况结构变量emp定义为: struct Date { int year; int month; int day; }; strnct Employee { char name[20] ; long code ; Date birth }; Employee emp ; 下列对emp的birth的正确赋值方法是( d )。 (a) year=1980; month=5; day=1; (b) birth.year=1980; birth.month=5; birth.day=1; (c) emp.year=1980; emp.month=5; emp.day=1; (d) emp.birth.year=1980; emp.birth.month=5; emp.birth.day=1; 3.假定有以下说明语句,则下面引用形式错误的是( b )。 struct Student { int num ; double score ; }; Student stu[3]={{1001,80}, {1002,75}, {1003,91}}, *p=stu ; (a) p->num (b) (p++).num (c) (p++)->num (d) (*p).num 4.若有以下说明语句,则下列错误的引用是( d )。 struct Worker { int no; char name[20]; }; Worker w, *p = &w ; (a) w.no (b) p->no (c) (*p).no (d) *p.no 5.s1和s2是两个结构类型变量,若要赋值s1=s2合法,则它们的说明应该是( c )。 (a) s1只能接受相同类型的数据成员 (b) 结构中的成员相同 (c) 同一结构类型的变量 (d) 存储字节长度一样的变量

习题二和上机答案

习题二 ⒉1描述以下四个概念的区别:头指针变量,头指针,头结点,首结点(第一个结点)。解:头指针变量和头指针是指向链表中第一个结点(头结点或首结点)的指针;在首结点之前附设一个结点称为头结点;首结点是指链表中存储线性表中第一个数据元素的结点。若单链表中附设头结点,则不管线性表是否为空,头指针均不为空,否则表示空表的链表的头指针为空。 2.2简述线性表的两种存储结构有哪些主要优缺点及各自使用的场合。 解:顺序存储是按索引直接存储数据元素,方便灵活,效率高,但插入、删除操作将引起元素移动,降低了效率;而链式存储的元素存储采用动态分配,利用率高,但须增设表示结点之间有序关系的指针域,存取数据元素不如顺序存储方便,但结点的插入和删除十分简单。顺序存储适用于线性表中元素数量基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素的情况;而链式存储适用于频繁进行元素动态插入或删除操作的场合。 2.3 在头结点为h的单链表中,把值为b的结点s插入到值为a的结点之前,若不存在a,就把结点s插入到表尾。 Void insert(Lnode *h,int a,int b) {Lnode *p,*q,*s; s=(Lnode*)malloc(sizeof(Lnode)); s->data=b; p=h->next; while(p->data!=a&&p->next!=NULL) {q=p; p=p->next; } if (p->data==a) {q->next=s; s->next=p;} else

{p->next=s; s->next=NULL; } } 2.4 设计一个算法将一个带头结点的单链表A分解成两个带头结点的单链表A和B,使A中含有原链表中序号为奇数的元素,而B中含有原链表中序号为偶数的元素,并且保持元素原有的相对顺序。 Lnode *cf(Lnode *ha) {Lnode *p,*q,*s,*hb; int t; p=ha->next; q=ha; t=0; hb=(Lnode*)malloc(sizeof(Lnode)); s=hb; while(p->next!=NULL) {if (t==0) {q=p;p=p->next;t=1;} else {q->next=p->next; p->next=s->next; s->next=p; s=p; p=p->next; t=0; } } s->next=NULL; return (hb); }

数据库上机习题及答案

数据库及应用复习题 一、设计题 有一个[学生课程]数据库,数据库中包括三个表: 学生表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为: Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 为关键字。 课程表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为:Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。 成绩表SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为:SG(Sno,Cno,Grade) (SNO, CNO)为关键字。 用SQL语言实现下列功能: 1.建立学生表Student,其中学号属性不能为空,并且其值是唯一的。 2.向Student表增加“入学时间(Scome)”列,其数据类型为日期型。 3.查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。4.查询学习1号课程的学生最高分数、平均成绩。 5.查询与“李洋”在同一个系学习的学生。 6.将计算机系全体学生的成绩置零。 7.删除学号为05019的学生记录。 8.删除计算机系所有学生的成绩记录。 1. CREATETABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20), Ssex CHAR(2), Sage INT, Sdept CHAR(15)) 2. ALTER TABLE Student ADD Scome DATETIME 3. SELECT Sno, Grade FROM SG WHERE Cno='3' ORDER BY Grade DESC 4. SELECT MAX(Grade), AVG(Grade) FROM SC WHERE Cno='1' 5. SELECT Sno, Sname, Sdept FROM Student WHERE Sdept IN

Access上机操作练习题参考答案

基本操作题: (一)(2)主键:职工ID (3)有效性规则:IS NOT NULL (5)输入掩码:00000 (二)(2)主键:编号(3)有效性规则:<=DateSerial(Year(Date())-1,5,1) (4)“邮箱密码”字段的输入掩码:PassWord 或密码; “联系电话”字段的输入掩码:“010-”00000000。 (三)(2)主键:编号(3)默认值:Date()-1 (4)“单价”字段的小数位数设为2,同时设置该字段的“格式”为“固定”或“标准” (5)输入掩码:AAAAAAAA (四)(2)打开表的“属性”窗口: ①在有效性规则行中输入:[学时]=[学分] ②在有效性文本行中输入:学时必须与学分相同 (3)默认值:DateSerial(Year(Date()),9,1) (5)将文本文件“Test.TXT”导入到表“tTemp”中时,应在“导入文本向导”的第二步中选中“第一行包含字段名称”复选框,否则会出现导入错误。 (7)将宏mTest改名为AutoExec。 (五)(1)有效性规则:>0 (6)在“链接数据表向导”中的第一步中选“Sheet1”工作表,在第二步中选中“第一行包含列标题”复选框,在第三步中输入链接表名“tTest”,点击“完成”。 (7)选中“线路”表并右击,在打开的快捷菜单中选“导出…”,打开相应的导出对话框;在该对话框的“保存类型”中选“文本文件”、在“文件名”中输入“Line.TXT”,点击“导出”按钮;在“导出文本向导”的第二步中分别选中“第一行包含字段名称”复选框和“请选择字段分隔符”下的“分号”选项按钮,其它按提示操作。 简单应用题: (一)samp14.mdb (1)【操作步骤】 步骤1:选中"查询"对象,单击"新建"按钮,选中"设计视图",单击"确定"按钮。在"显示表"对话框中分别双击表"tA"、"tB",关闭"显示表"对话框。 步骤2:分别双击"姓名"、"房间号"、"电话"和"入住日期"字段将其添加到"字段"行。 步骤3:单击工具栏中"保存"按钮,另存为"qT1"。关闭设计视图。 (2)【操作步骤】 步骤1:选中"查询"对象,单击"新建"按钮,选中"设计视图",单击"确定"按钮。在"显示表"对话框中分别双击表"tA"、"tB",关闭"显示表"对话框。 步骤2:分别双击"姓名"、"房间号"字段将其添加到"字段"行。在"姓名"字段的"条件"行输入"[请输入姓名:]"。 步骤3: 在"字段"行下一列输入"已住天数:Date()-[入住日期]"。 步骤4:在"字段"行下一列输入"应交金额:(Date()-[入住日期])*[价格]"。 步骤5:单击工具栏中"保存"按钮,另存为"qT2"。关闭设计视图。 (3)【操作步骤】 步骤1:选中"查询"对象,单击"新建"按钮,选中"设计视图",单击"确定"按钮。在"显示表"对话框中分别双击表"tA"、"tB",关闭"显示表"对话框。 步骤2:分别双击"姓名"、"入住日期"、"价格"和"身份证"字段添加到"字段"行。 步骤3:在"身份证"字段的"条件"行输入"Mid([身份证],4,3)=102",单击"显示"行取消该字段显示。

上机练习题参考答案

1.(10分)从键盘任意输入一个整数,编程判断它的奇偶性。 **输入格式要求:"%d" 提示信息:"Input an integer number:" **输出格式要求:"a is an even number\n" "a is an odd number\n" 程序运行示例1如下: Input an integer number:2 a is an even number 程序运行示例2如下: Input an integer number:5 a is an odd number #include main() { int n; printf("Input an integer number:"); scanf("%d",&n); if(n%2!=0)printf("%d is an even number\n",n); else printf("%d is an odd number\n",n); return 0; } 2.(10分)利用求阶乘函数Fact(),编程计算并输出1! + 2! + …… + n!的值。**输入格式要求:"%u" 提示信息:"Input n(n>0):" **输出格式要求:"sum = %lu\n #include double fact(int n); int main (void) { int i,n; double sum; sum=0; printf("Input n(n>0):"); scanf("%u",&n); for(i=1;i<=n;i++) { sum=sum+fact(i); } printf("sum = %lu\n",sum); return 0; } double fact(int n) { int j; double a; a=1;

VB上机考试习题以及答案

VB上机考试 1、利用随机函数产生25个100到999之间的整数,构成5 5的矩阵,输出该矩阵。Dim a(1 To 5, 1 To 5) Private Sub Form_Click() Ran domize For i = 1 To 5 Forj = 1 To 5 a(i, j) = Int(Rnd * (999 - 100 + 1) + 100) Print a(i, j); Next j Print Next i End Sub 2、利用随机函数产生25个10到99之间的整数,求其平均值(要求保留3位小数,第4 位四舍五入)。Private Sub Form_Click() For i = 1 To 25 a = In t(R nd * (99 - 10 + 1) + 10) Print a; s = s + a Next i Print Avg = s / 25 Print Avg End Sub 3、在窗体上按下鼠标的右键,记录其坐标。 Private Sub Form_Load() Label1.BorderStyle = 1 Label1.Alig nment = 2 End Sub Private Sub Form_MouseDow n(Button As In teger, Shift As In teger, X As Si ngle, Y As Si ngle) If Butt on = 2 The n Label1.C apti on = X & "," & Y End If End Sub 4、利用随机函数产生25个10到99之间的整数,按从小到大的顺序显示。Dim a(1

习题九和上机答案

习题九 9.1 以下代码中递归函数f 所产生的数值序列是什么? long f (int n) { if (n= =0 | | n= =1) return 1; else return 3*f(n-2)+2*f(n-1); } 解:返回值为: 6 4 5 2 3 3 4 0 1 1 2 1 2 2 3 9.2 n 个元素的数组的最大元素可以用递归计算出来。定义函数 int max(int x ,int y); 它返回x 和y 两个整数中的较大值。试用递归方法编写函数 int arraymax(int a[ ],int n); 它使用递归返回数组a 的最大元素值 终止条件:n= =1 递归步骤:arraymax=max(max(a[0],…,a[n -2]),a[n-1]) 解: int arraymax(int a[ ],int n) { int t; if(n==1) return a[n]; else { if(a[n]>a[n+1]) { t=a[n]; a[n]=a[n+1]; a[n+1]=t; } return arraymax(int a[ ],int n+1); } } 9.3 试写出求递归函数F(n)的递归算法,并消除递归: F(n)=???>?=+0 )2/(01n n F n n n 解: int merge(int n) { if(n==0)

return(n+1); if(n>0) return(n*merge(n/2)); } 9.4 试编写如下定义的递归函数的递归算法,并根据算法画出求g(5,2)时栈的变化过程。 ???≥>-≥==0,0)21(000)(n m n n m g n m n m g +, ,, 解: int merge(int m,int n) { if(m==0&&n>=0) return(0); if(m>0&&n>=0) return(merge(m-1,2*n)+n); } 9.5 试将下列递归过程改写为非递归过程。 void test (int &num) { int x ; scanf(x); if (x=0) sum=0; else {test(sum);sum+=x ;} printf(sum); } 解: 非递归算法 void test(int num) { int x; sum=0; scanf(“%d ”,&x); if(x==0) sum=0; while(x>0) { sum+=x; scanf(“%d ”,&x); } printf(“sum=%d\n ”,sum); }

大学计算机基础上机指导与习题集参考答案[2]

大学计算机基础上机指导与习题集参考答案第1章计算机基础知识部份 一.选择题: 1-10:CBABC;BDCDD 11-20:DCBAD;DCBAB 21-30:DADAA;CAABA 31-40:AAAAB;BDBBB 41-50:ADBBD;CCDDA 51-60:BCDDC;ABACB 61-69:BACCBBDAC 二.填空题: 1.6GB/80MB 2.硬件/软件 3.控制总线/地址总线 4.存储程序/程序控制 5.power键 6.任意一个字符/任意多个字符 7.0-9和A-F来表示 8.1位 9.应用 10.1和\ 11.倍频12.寄存器 13.指令周期 14.水平分辩率\垂直分辩率 15.激光\ 喷墨 16.解释和编译 17.指令 18.7 19.ASCLL码 20.数值处理、非数值处理 21.数据、程序、存储器 22.汇编语言

23.72、0.6 24.ROM\RAM 25.取指令、执行指令 26.F\J 27.SA TA(串行) 28.温盘 29.内存 30.数/模 31.简单、可靠性32.1010111 33.速度 34.汇编语言、高级语言 35.CPU 36.平均修复时间 37.机械 38.70 39.光电 40.11110000 第二章windowsxp部份一、选择题 1-10:BACDA;DCCCBC 11-20:CBDAB;BCCAD 21-30:ACDAB;DDCDA 31-40:BBDAC;CCCBC 41-50:CDBCB;DDBAB 51-60:ADDCA;CCDBB 61-70:DBBBC;CCDAD 71-80:BAABA;DCCDA 81-90:DDCBD;ABABA 91-100:BCABA;BCCBC 101-110:CDCCB;BBDDA

word上机练习题与答案

word上机练习题及答案 1、本次决赛包含十个大题,其中五个word大题,四个Excel大题。共一百分。 2、本次决赛时间是分钟。 3、决赛中新建word文档后缀是”.doc”。 第一题,将素材一按要求排版。 、将标题字体设置为“华文行楷”,字形设置为“常规”,字号设置为“小初”、选定“效果”为“空心字”且居中显示。 、将“李白”的字体设置为“隶书”、字号设置为“小三”,文字右对齐加双曲线边框,线型宽度应用系统默认值显示。且首行缩进两个字符。 将正文行距设置为25磅,。将文本“蜀道难”作为水印插入文档,水印格式版式”斜式”其他均为默认。 . 将全文中的“难”加粗,并设置为斜体,颜色为红色。 《素材一》 蜀道难 --李白 噫吁嚱!危乎高哉!蜀道之难,难于上青天!蚕丛及鱼凫,开国何茫然!尔来四万八千岁,不与秦塞通人烟。西当太白有鸟道,可以横绝峨眉颠。地崩山摧壮士死,然后天

梯石栈相钩连。上有六龙回日之高标,下有冲波逆折之回川。黄鹤之飞尚不得过,猿猱欲度愁攀援。青泥何盘盘,百步九折萦岩峦。扪参历井仰胁息,以手抚膺坐长叹。问君西游何时还?畏途巉岩不可攀。但见悲鸟号古木雄飞雌从绕林间。又闻子规啼夜月,愁空山。蜀道之难,难于上青天,使人听此凋朱颜!连峰去天不盈尺,枯松倒挂倚绝壁。飞湍瀑流争喧豗,砯崖转石万壑雷。其险也如此,嗟尔远道之人胡为乎来哉! 剑阁峥嵘而崔嵬,一夫当关,万夫莫开。所守或匪亲,化为狼与豺。朝避猛虎,夕避长蛇,磨牙吮血,杀人如麻。锦城虽云乐,不如早还家。蜀道之难,难于上青天,侧身西望长咨嗟。 第二题,对素材二操作要求如下 设置第一段首字下沉,第二段首行缩进两个字符。 将第一段字体设置为“宋体”,字号设置为“五号”。 将第二段字体设置为“方正舒体”,字号设置为“四号”,加双横线下划线。 在该页插入页眉页脚均输入”归去来兮辞”。将文本“归去来兮”作为水印插入文档,水印格式版式”斜式”颜色为”黄色”其他均为默认。 《素材二》 归去来兮,请息交以绝游。世与我而相遗,复驾言兮

第二章上机练习题及答案

第二章上机练习题 先建立一个数据库,命名为“学校信息管理”,放置在D盘中,再拷贝到自己的U盘中。 单击工具栏上的新建按钮,再 1、在数据库“学校信息管理”中建立一个“老师”表,表的字段有:[教师编号:文本型(5位);姓名:文本型(4位);性别:文本(1位);工作日期:日期型(短日期);年龄:数字型(整型);党员否(是/否型);照片(OLE型);简历(备注型);个人网页(超链接)] 选择“自行键入所需的值”,两行中分别输入“男”、“女”,点击下一步,单击完成。 3、在”张爽”的照片中插入本机上的任意一张图片。个人网页中显示AAA,链接到https://www.wendangku.net/doc/f73173865.html, 右击/超链接/编辑超链接

4、把教师编号设置为主键。 先选中教师编号字段。 5、设置教师编号的有效性规则开头第一个位必须为“9”开头。 6、设置工作日期的有效性规则必须为1980年之后(包含1980年)。 7、设置年龄的有效性规则必须为大于等于18岁和小于60岁 或为:between 18 and 59 8、设置性别的有效性必须只能是男和女 或为:in(“男”,”女”) 9、(清除第6条的设置)。设置工作时间的输入掩码为短日期,占位符为“#”。 10、设置党员否的默认值为真 11、设置工作日期的默认值为当前日期 11-2、删除原原教师表,导入教学班传给你的,学校信息管理数据库中的教师表。

找到学校信息管理.mdb 数据库。单击导入,选中教师表,单击确定。 12-1、导入教学班传给你的,学校信息管理数据库中的学生表。设置学生编号显示时在前面加上“轻工”两个字或“学”一个字。后面必须显示10位。(””内是一个字时,””自动传化为\) 或是 同学们可以试一下”大学”后跟7个@和12个@。会是什么效果,什么不同。 12-2、设置学生表的学生编号字段的输入掩码为“200804”开头,后4位必须为数字。 如果要12-1题和12-2都设置,同学们输入一条新记录2008041401,张专,男,20岁,会发现什么? 对照:(“格式”是输出时的显示样式,“输入掩码”是输入时的显示样式。) 第二节默认是1。所以如果要12-1题和12-2都设置。那么要把12-2题的掩码改为“”200804”0000;0” 12-3、 设置教师表中的电话字段格式为必须显示8位数,并以货币格式显示,隔3位用逗号分隔。而且在8位数前显示$。 13、去掉12-3题的设置。把党员字段和联系电话字段交换位置 14、在教师表中添加一条新记录: 15、设置姓名字段为必填 16、把教师编号字段的显示标题设置为“编号”

上机练习2及答案

上机练习题2 一、建立数据库TwoDB; 二、为描述书店对图书的进书情况,创建了三张表:图书表,书店表和书店进书表。图书表用于表示图书的基本信息,书店表用于描述书店的基本信息,书店进书表描述了书店的图书进书情况。三张表的结构如下: 1.图书表(TShB)(记录出版社所印的每种图书的情况,一个图书编号对应一种图书,而不是一本图书) 图书ISBN(ISBN):普通编码定长字符型,4位长,主码 书名(ShM):普通编码可变长字符型,30位长,非空 类别(LB):普通编码定长字符型,10位长,允许空,取值范围为{计算机、通讯、数学、外语} 印刷数量(ShL),小整型,允许空,取值:大于等于1000 单价(DJ):定点小数,小数点后保留2位,小数点前4位,允许空 出版日期(ChBRQ):小日期时间型,允许空 2.书店(ShDB) 书店编号(ShDBH):普通编码定长字符型,4位长,主码 书店名称(DM):普通编码定长字符型,20位长,非空 地址(DZh):普通编码可变长字符型,30位长,允许空 电话(DH):普通编码定长字符型,12位长,取值形式为:“(3位数字)-6位数字” 3.书店进书表(JShB) 图书ISBN(ISBN):普通编码定长字符型,4位长,非空 书店编号(ShDBH):普通编码定长字符型,4位长,非空 进书日期(JShRQ):小日期时间型,非空,默认值为插入记录时的当前时间 进书数量(JShL):小整型,允许空,取值:大于等于10 其中:(图书ISBN,书店编号,进书日期)为主码 图书ISBN为引用图书表的外码,书店编号为引用书店表的外码。 假设一个书店对一种图书一天最多进书一次。 三、利用SQL Server的DTS工具,将“图书表及书店表数据.XLS”文件中的数据分别导入到“图书 表”和“书店表”中,将“书店进书表数据.txt”文件中的数据导入到“书店进书表”中。 四、利用第二题的三张表,写出实现如下要求的SQL语句(用一条语句完成)。 1. 查询单价在10到20之间、印刷数量大于5000的“外语”类图书的书名、单价和印刷数量。 select shm,dj,shl from tshb where dj between 10 and 20 and shl > 5000 and lb = '外语' 2. 查询店名为“王府井书店”的进书情况,列出图书的书名、进书数量及进书日期。 select shm, jshl, jshrq from tshb a join jshb b on a.isbn = b.isbn join shdb c on b.shdbh = c.shdbh where dm = '王府井书店'

Linux上机操作复习题答案

一、命令部分 1.新建一个用户wang,密码设为123456,并将其加到root组。写出所用命令。 # useradd wang # passwd wang 123456 123456 # groupadd root # usermod –g root wang 2.将当前计算机的IP地址设为192.168.1.123,子网掩码为255.255.255.0。写出所用命令。 # ifconfig eth0 192.168.1.123 netmask 255.255.255.0 3.你是公司的Linux服务的管理员。你使用vi编缉/etc/inittab文件时,在命令模式下查询shutdown字符串,使用的命令。 vi /etc/initab /shutdown 4.显示当前系统的日期和时间命令。 # date –d –y 5.查看命令sort的帮助文件,写出所用命令。 # man sort 6.统计/etc/passwd文件的字节数和行数,写出所用命令。 # wc –cl /etc/passwd 7.分屏显示/etc/httpd/conf/httpd.conf文件的命令。 # less /etc/httpd/conf/httpd.conf 按“Q”退出该命令 8.将hello!写入 /home/wang/test.txt的命令(vi及vim编辑器除外)。 # echo ‘hello!’> /home/wang/test.txt 9.让named守护进程运行在级别3,5的命令。 # telinit 3 # telinit 5 10.更改用户zhang的登录shell为/sbin/nologin的命令。 # usermod –s /sbin/nologin zhang 11.查看当前linux服务器的主机名的命令。 # cat /proc/sys/kernel/hostname 或 # sysctl kernel.hostname 或 # hostname 12.查看当前主机的路由的命令。 # route 13.配置当前主机的默认网关为192.168.2.254的命令。 # route add default gw 192.168.2.254 14.连续ping目的IP为192.168.2.245为10次的的命令。

VB程序设计指导实验指导与习题解答上机答案

自测1 程序代码 Private Sub Command1_Click() Label1.FontSize = Label1.FontSize + 3 End Sub Private Sub Command2_Click() Label1.FontBold = True End Sub Private Sub Command3_Click() Label1.FontUnderline = True End Sub Private Sub Command4_Click() Label1.FontSize = 10 Label1.FontBold = False Label1.FontUnderline = False

End Sub 初始窗口: 单机放大之后窗口: 单机下划线之后窗口:

单击加粗之后窗口: 单击还原之后窗口:

自测2 程序代码 Private Sub Command1_Click() Label1 = "visual basic" Text1 = "程序设计题" End Sub Private Sub Command2_Click() Text1 = "visual basic" Label1 = "程序设计题" End Sub 初始窗口:

单击显示之后窗口:

单击交换之后的窗口: 自测题3 Private Sub Command1_Click() Label1.FontSize = Label1.FontSize * (0.5) End Sub Private Sub Command2_Click() Label1.Top = Label1.Top + 30 Label1.Width = Label1.Width + 20 Label1.Alignment = 1 End Sub

T-SQL上机练习习题和答案

上机练习: 1. 从xs_kc表中,查询学号为…020101?学生的成绩状况,若全部90分以上显示“该学生成绩全部优秀!”若全部60分以上显示“该学生成绩全部合格!”否则显示“该学生有的成绩不合格!”并且要显示最低分。(使用if,自行换为student操作) 2. 实现1---100之间的奇数和。(使用书本上以外的方法) 3. 在xs_kc表中,学号为…020101?学生的平均成绩如果小于75,则将该学生的每门成绩以5%的比例提高,当平均成绩大于等于75或者所有课程都及格时,终止操作。(使用while,自行换为student 操作) 参考答案: 1、 Declare @verygood int Select @verygood=(select min(成绩) From xs_kc Where 学号 ='020101') If @verygood >=90 Print '该学生成绩全部优秀!'

else If @verygood >=60 Print '该学生成绩全部合格!' else print '存在不及格科目!' Select @verygood as 最低分 Print '最低分:'+cast(@verygood as char(4)) 或: If (Select min(成绩) From xs_kc Where 学号='020101' )>=90 Print '该学生成绩全部优秀!' else If (Select min(成绩) From xs_kc Where 学号='020101' )>= 60 Print '该学生成绩全部合格!' else print '存在不及格科目!'

最新习题五和上机答案

习题五 5.1 已知一棵树边的集合为 (I,M),(I,N),(E,I),(B,E),(B,D),(A,B),(G,J),(G,K),(C,G),(C,F),(TABLE,L),(C,TABLE) ,(A,C),画出这棵树,并回答下列问题: ⑴哪个是根结点? ⑵哪些是叶子结点? ⑶哪个是结点G的双亲? ⑷哪些是结点G的祖先? ⑸哪些是结点G的孩子? ⑹哪些是结点E的子孙? ⑺哪些是结点E的兄弟?哪些是结点F的兄弟? ⑻结点B和N的层次号分别是什么? ⑼树的深度是多少? ⑽以结点C为根的子树的深度是多少? 解:依题意,树的表示如图 8.23 所示。 (1)根结点是:a (2)叶子结点是:d,m,n,f,j,k,l (3)g 的双亲是:c (4)g 的祖先是:a,c (5)g 的孩子是:j,k

(6)e 的子孙是:i,m,n (7)e 的兄弟是 d,f 的兄弟是 g,h (8)b 的层次是 2,n 的层次是 5 (9)树的深度是 5 (10)以结点 c 为根的子树的深度是 3 (11)树的度数是 3 5.2 一棵度为2的树与一棵二叉树有何区别? 解:二叉树的度也可以为1。 5.3 试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。 解:二叉树: 5.4 一棵深度为N的满K叉树有如下性质:第N层上的结点都是叶子结点,其余各层上每个结点都有K棵非空子树。如果按层次顺序从1开始对全部结点编号,问 ⑴各层的结点数目是多少? ⑵编号为n 的结点的父结点(若存在)的编号是多少? ⑶编号为n 的结点的第i个儿子(若存在)的编号是多少? ⑷编号为n的结点有右兄弟的条件是什么?其右兄弟的编号是多少? 解: (1)第 i 层的结点数为 ki-1。 (2)编号为 n 的结点的双亲点为:「(n-2)/k」+1。 (3)编号为 n 的结点的第 i 个孩子结点为:(n-1)*k+i+1。 (4)编号为 n 的结点有右兄弟的条件是(n-1) % k≠0,其右兄弟的编号是 n+1。 5.5 已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,...,nm个度为m 的结点,问该树中有多少个叶子结点? 解:依题意:设 n 为总的结点个数,n0为叶子结点(即度为 0 的结点)的个数,则有:n=n0+ n1+n2+...+n m① 又有:n-1=度的总数,即: n-1= n1*1+ n2*2+...+ n m*m ② ①-②式得: 1= n0- n2-2n3-...-(m-1) n m 则有: n0=1+ n2+2n3+...+(m-1) n m

(完整版)matlab上机练习题答案

1.计算???? ??=572396a 与?? ? ???=864142b 的数组乘积 >> a=[6 9 3;2 7 5]; >> b=[2 4 1;4 6 8]; >> a.*b ans = 12 36 3 8 42 40 2.对于B AX =,如果??????????=753467294A ,???? ? ?????=282637B ,求解X 。 >> A=[4 9 2;7 6 4;3 5 7]; >> B=[37 26 28]’; >> X=A\B X = -0.5118 4.0427 1.3318 3.???? ??-=463521a ,?? ? ???-=263478b ,观察a 与b 之间的 六种关系运算的结果 >> a=[1 2 3;4 5 6]; >> b=[8 –7 4;3 6 2]; >> a>b ans = 0 1 0 1 0 1 >> a>=b ans = 0 1 0 1 0 1 >> a> a<=b ans = 1 0 1 0 1 0 >> a==b ans = 0 0 0 0 0 0 >> a~=b ans = 1 1 1 1 1 1 4计算多项式乘法(x 2+2x +2)(x 2+5x +4) >> c=conv([1 2 2],[1 5 4]) c = 1 7 16 18 8 5计算多项式除法(3x 3+13x 2+6x +8)/(x +4) >> d=deconv([3 13 6 8],[1 4]) d = 3 1 2 6求欠定方程组?? ? ???=? ??? ??5865394742x 的最小范数解 >> a=[2 4 7 4;9 3 5 6]; >> b=[8 5]'; >> x=pinv(a)*b x = -0.2151 0.4459 0.7949 0.2707 7用符号函数法求解方程a t 2+b*t +c=0 >> r=solve('a*t^2+b*t+c=0','t') r = [ 1/2/a*(-b+(b^2-4*a*c)^(1/2))] [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))] 8求矩阵?? ? ? ??=22211211 a a a a A 的行列式值、逆和特征根 >> syms a11 a12 a21 a22; >> A=[a11,a12;a21,a22] >> AD=det(A) % 行列式 >> AI=inv(A) % 逆 >> AE=eig(A) % 特征值 A = [ a11, a12] [ a21, a22] AD = a11*a22-a12*a21 AI = [ -a22/(-a11*a22+a12*a21), a12/(-a11*a22+a12*a21)] [ a21/(-a11*a22+a12*a21), -a11/(-a11*a22+a12*a21)] AE = [ 1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)] [ 1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)] 9因式分解:6555234-++-x x x x >> syms x; >> f=x^4-5*x^3+5*x^2+5*x-6; >> factor(f) ans = (x-1)*(x-2)*(x-3)*(x+1) 10? ??? ?? ?? =)sin()log(12 x x e x x a f ax ,用符号微分求df/dx 。 >> syms a x;

SAS上机练习题(全部-含参考答案)

重庆医科大学--卫生统计学统计软件包 SAS上机练习题(一) 1、SAS常用的窗口有哪三个?请在三个基本窗口之间切换并记住这些命令或功能键。 2、请在PGM窗口中输入如下几行程序,提交系统执行,并查看OUTPUT窗和LOG窗中内容,注意不同颜色的含义;并根据日志窗中的信息修改完善程序。 3、将第2题的程序、结果及日志保存到磁盘。 4、试根据如下例1的程序完成后面的问题: 表1 某班16名学生3门功课成绩表如下 问题: 1)建立数据集; 2)打印至少有1门功课不及格同学的信息;(提示,使用if语句) 参考程序: data a; input id sh wl bl; cards; 083 68 71 65 084 74 61 68 085 73 75 46 086 79 80 79 087 75 71 68 084 85 85 87 085 78 79 75

086 80 76 79 087 85 80 82 088 77 71 75 089 67 73 71 080 75 81 70 118 70 54 75 083 70 66 84 084 62 73 65 099 82 70 79 ; run; data b; set a; if sh<60 or wl<60 or bl<60then output; run; proc print data=b; var id sh wl bl; run; 5、根据下列数据建立数据集 表2销售数据 开始时间终止时间费用 2005/04/28 25MAY2009 $123,345,000 2005 09 18 05OCT2009 $33,234,500 2007/08/12 22SEP2009 $345,600 提示:( 计算,如果读入错误,可试着调整格式的宽度;显示日期需要使用输出格式) 开始时间,输入格式yymmdd10. 终止时间,输入格式date10. 费用,输入格式dollar12.

C语言上机练习题及答案

1输入三个整数x,y,z,把这三个数由小到大输出。 # include void main() { int x,y,z,a; scanf ("%d,%d,%d",&x,&y,&z); if(x>y) {a=x; x=y;y=a; } if(x>z) { a=x; x=z; z=a; } if(y>z) {a=y; y=z; z=a; } printf("%d,%d,%d\n",x,y,z); } 2输入圆的半径,输出圆的周长和面积。 # include # define PI 3.1415926 # define S ==PI*r*r # define V (4.0/3)*PI*r*r*r void main() { double r; printf("please input r:"); scanf("%lf",&r); printf("area is %.4lf\n",S); printf("volume is %.4lf\n",V); } 输入正方形的边长,输出正方形的周长和面积。 # include void main() { float c,zc,mj; printf("输入你的正方形"); scanf("%f\n",&c); zc=4*c; mj=c*c; printf("周长%f,面积%f,边长%f",zc,mj,c); } 3用格式输入函数输入3个字符,并用输出函数反向输出3个字符和他们的ASCII 码。 # include int main() {char-ch1,ch2,ch3;

相关文档