离散数学C语言上机题

合集下载

c语言上机春考考试试题及答案

c语言上机春考考试试题及答案

c语言上机春考考试试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:A2. 下列哪个选项是正确的C语言注释方式?A. // 这是注释B. /* 这是注释 */C. /* 这是注释D. // 这是注释答案:B3. 在C语言中,以下哪个运算符用于比较两个值是否相等?A. ==B. =C. !=D. <=答案:A4. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. charD. string答案:D5. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A6. C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A7. 在C语言中,以下哪个关键字用于定义一个宏?A. defineB. macroC. constD. #define答案:D8. 下列哪个选项是C语言中正确的数组声明?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2};D. int arr = {1, 2, 3, 4, 5};答案:A9. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. sizeof()答案:A10. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strcat()C. strncpy()D. strncat()答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个整型变量的关键字是________。

答案:int2. 在C语言中,使用________运算符可以连接两个字符串。

离散数学试题_C(答案)

离散数学试题_C(答案)

一、填空题(每小题3分,共15分)1.谓词公式⌝(∀xF(x,y)∨∃yG(x,y))的前束范式为∃x∀y(⌝F(x,u)∧⌝G(v,y)).2.设A={1,2,3,4,5},〈P(A),⊕〉构成群,其中⊕为集合的对称差.令B={1,4,5},则由B生成的循环子群〈B〉={∅,B}.3.模加群G=〈Z6, ⊕〉的所有生成元为1,5 .4.n阶无向简单图G的∆=δ=n-1,则G为K n.5.设〈G,*〉为群,a∈G且|a|=m,则|a-1|= m .二、选择题(每小题3分,共15分)1.命题公式¬(p→q)∧q∧r的类型是【D】A.重言式.B.非重言式的可满足式.C.简单合取式.D.矛盾式.2.5阶无向完全图的非同构的自补图有【B】A.1个.B.2个.C.3个.D.4个.3.设〈A,*〉是独异点,e是其单位元,若∀a∈A,有a*a=e,则〈A,*〉【B】A.是群但不是Abel群.B.是Abel群.C.不是群.D.不是代数系统.4.树T中有3个3度顶点,2个2度顶点,其余顶点都是树叶,则T中树叶片数为【C】A.1 B.4C.5 D.65.对完全二部图K r,s,当【A】时,K r,s为哈密尔顿图.A.r=s.B.r≠s.C.r<s.D.r>s.三、计算与简答题(每小题10分,共40分)1.利用等值演算法求公式⌝(r→p)∨(q∧(p∨r))的主析取范式,并给出其成真赋值.⌝(r→p)∨(q∧(p∨r))⇔⌝(⌝r∨p)∨(q∧p)∨(q∧r)⇔(⌝p∧r)∨(p∧q)∨(q∧r)⇔((⌝p∧r)∧(⌝q∨q))∨((p∧q)∧(⌝r∨r))∨((q∧r)∧(⌝p∨p))⇔(⌝p∧⌝q∧r)∨(⌝p∧q∧r)∨(p∧q∧⌝r)∨(p∧q∧r)⇔m1∨m3∨m6∨m7此为公式的主析取范式.公式的成真赋值为001、011、110和111.2.设S45表示45的全体正因子(包括1和45)组成的集合,在S45上定义整除关系≤:m≤n⇔m|n.(1)画出偏序集〈S45,≤〉的哈斯图.哈尔滨工程大学试卷考试科目:离散数学C(051121,051131-32)1 / 3(2) 求出〈S 45,≤〉中最大元、最小元和所有可逆元的逆元. (3) 〈S 45,≤〉是否构成格?简要说明理由. (1)S 45={1,3,5,9,15,45}.(2)〈S 45,≤〉中最大元、最小元分别为1和45;元素1和45互为逆元,5和9互为逆元,元素3和15无逆元. (3)〈S 45,≤〉构成格,因为S 45中任意两个元素均有最小上界和最大下界.3. 求模15加群G =〈Z 15,⊕〉的所有生成元与所有子群.G =〈Z 15,⊕〉的所有生成元为与15互质的整数有:1,2,4,7,8,11,13,14,它们就是群的生成元.15的所有正因子为1,3,5,15,因此Z 15=〈1〉有4个循环子群, 分别为〈115/1〉=〈115〉=〈15〉=〈0〉={0}, 〈115/3〉=〈15〉=〈5〉={0,5,10},〈115/5〉=〈13〉=〈3〉={0,3,6,9,12}, 〈115/15〉=〈1〉=G .4. 设集合A={a ,b ,c ,d }上的二元关系R={〈a ,b 〉,〈b ,a 〉,〈b ,c 〉,〈c ,b 〉},求R 的自反闭包r (R )和对称闭包s (R ).r (R )=I A ⋃R ={〈a ,a 〉,〈a ,b 〉,〈b ,a 〉,〈b ,b 〉,〈b ,c 〉,〈c ,b 〉,〈c ,c 〉,〈d ,d 〉}.s (R )=R ⋃R -1=R ={〈a ,b 〉,〈b ,a 〉,〈b ,c 〉,〈c ,b 〉}.5. 设有向图D 如图,求D 中长度为3的通路数, 并指出其中的回路数.有向图D 的邻接矩阵为⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=0011100001010111A ,由于 ⎪⎪⎪⎪⎪⎭⎫⎝⎛=02120011*********A ,⎪⎪⎪⎪⎪⎭⎫⎝⎛=23230212122323343A 因此,D 中长度为3的通路数为矩阵A 3中所有元素之和,为12+8+5+10=35;其中回路数为4+2+2+2=10.四、 证明题(每小题10分,共20分)1. 在一阶逻辑中构造下面推理的证明:前提:∀x (H (x )∧D (x )→⌝S (x )),∀x (H (x )→(S (x )∨F (x ))),∃x (H (x )∧⌝F (x )) 结论:∃x (H (x )∧⌝D (x )).(1) ∃x (H (x )∧⌝F (x )) 前提引入159 353(2)H(a)∧⌝F(a))EI规则(3)H(a)(2)化简(4)⌝F(a) (2)化简(5)∀x(H(x)→(S(x)∨F(x))) 前提引入(6)H(a)→(S(a)∨F(a)),UI规则(7)S(a)∨F(a)(3)(6)假言推理(8)S(a)(4)(7)析取三段论(9)∀x(H(x)∧D(x)→⌝S(x)) 前提引入(10)H(a)∧D(a)→⌝S(a) UI规则(11)⌝(H(a)∧D(a)) (8)(10)拒取式(12)⌝H(a)∨⌝D(a) (11)置换(13)⌝D(a) (3)(12) 析取三段论(14)H(a)∧⌝D(a) (3)(13)合取(15)∃x(H(x)∧⌝D(x)) EG规则2.设〈G,*〉是一个群,令C={a∈G|∀x∈G,a*x=x*a}证明:〈C,*〉是〈G,*〉的子群.对∀x∈G,e*x=x*e故e∈C,即C非空.∀a,b∈C,(a*b-1)*x=a*(b-1*x)=a*(x-1*b)-1=a*(b*x-1)-1=a*(x*b-1)=(a*x)*b-1=(x*a)*b-1 =x*(a*b-1).故a*b-1∈C,由子群判断定理知〈C,*〉是〈G,*〉的子群.五、应用题(10分)今有20人参加一个小型会议.这20人中每人至少与其中10人(不包括自己)认识,能否将这20人安排在一个圆桌上,使得每个人都和他身边的人认识,为什么?请说明理由.将每个人看作是一个图的顶点,如果两个人认识,则将这两个顶点连接起来,从而构成一个有20个顶点的简单连通图.由于每人至少与其中10人认识,这样,每个顶点的度数至少是10.因此,任意不相邻顶点的度数之和至少是20.根据哈密尔顿图的充分条件,该图是一个哈密尔顿图,从而有哈密尔顿图回路.按照该回路上顶点的排列顺序安排这20个人即可.3 / 3。

C语言上机题1

C语言上机题1

01.从键盘输入一个字符,如果是字母,就输出其对应的ASCII 码;如果是数字字符,就转换成对应整数并输出。

02.从键盘输入一个数,判断其是否能同时被3和5整除。

如果是,输出Yes ,否则输出No 。

03.从键盘输入一个4位正整数,求其各位数字之积,并输出。

例如:若输入2523,则输出应该是60。

01.根据以下函数关系编写一个程序,对输入的每个x 值,计算出y 的值并输出。

02.从键盘输入一个数,判断其是否是5的倍数而不是7的倍数。

如果是,输出Yes ,否则输出No 。

03.从键盘输入一个五位整数,判断它是不是对称数,并输出判断结果。

如43234就是对称数。

01.编一个C 程序,从键盘上输入一个字符:若该字符是数字字符,则把它转换为对应的整数并输出;若该字符是大写字母,则转换成小写并输出;若该字符是小写字母,则转换为大写并输出;若该字符是其他字符,则不进行任何操作。

02.输入三个整数,按从大到小的顺序输出。

03.给出一个百分制的成绩,要求输出成绩等级“A”、“B”,“C”,“D”,“E”。

90分以上的为:“A”级,80~89分的为“B”,70~79分的为“C”,60~69分的为“D”,60分以下的为“E”。

01.有一分段函数:1(x <-1)y =2x +9(-1≤x ≤1)5x -3(x >1)从键盘输入x 的值,输出y 的值。

02.编写一个C 语言程序,要求从键盘输入三个整数,并根据对三个数的比较显示如下信息:①如果三个数都不相等则显示0;②如果三个数中有二个数相等则显示1;③如果三个数都相等,则显示2x+10(-10<x<0)y =2x (0<=x<10)x 2(x>=10)03.从键盘输入一个数,判断它是否同时能被5和7整除,如果能输出“YES”,否则输出“NO”。

01.输入三角形三边长,判定是否能够组成三角形,并输出判定结果。

能够组成三角形的条件是:任意两边之和大于第三边(三种情况)02.从键盘输入一个四位正整数,输出其逆序数,并判断是否是对称数,如果是输出“YES”,否则输出“NO”。

c语言上机考试题及答案

c语言上机考试题及答案

c语言上机考试题及答案1. 编写一个C程序,实现求两个整数的和,并输出结果。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```2. 编写一个C程序,实现从键盘输入一个整数,判断该数是否为质数,并输出结果。

```c#include <stdio.h>int main() {int num, i, flag = 0;printf("请输入一个整数:");scanf("%d", &num);for (i = 2; i <= num / 2; i++) {if (num % i == 0) {flag = 1;break;}}if (num == 1) {printf("1既不是质数也不是合数。

\n"); } else {if (flag == 0) {printf("%d是质数。

\n", num);} else {printf("%d不是质数。

\n", num);}}return 0;}```3. 编写一个C程序,实现对数组元素进行冒泡排序,并输出排序后的结果。

```c#include <stdio.h>void bubbleSort(int arr[], int size) {int i, j, temp;for (i = 0; i < size - 1; i++) {for (j = 0; j < size - i - 1; j++) {if (arr[j] > arr[j+1]) {temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}int main() {int arr[] = {5, 2, 8, 3, 1};int size = sizeof(arr) / sizeof(arr[0]);int i;printf("排序前的数组:");for (i = 0; i < size; i++) {printf("%d ", arr[i]);}bubbleSort(arr, size);printf("\n排序后的数组:");for (i = 0; i < size; i++) {printf("%d ", arr[i]);}return 0;}```4. 编写一个C程序,实现计算给定数的阶乘,并输出结果。

C语言上机作业试题5套含答案

C语言上机作业试题5套含答案

第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。

程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。

例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。

例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。

(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。

)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。

方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。

例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。

⏹A说:不是我。

⏹B说:是C。

⏹C说:是D。

⏹D说:他乱说。

已知三个人说的是实话,一个人说的是谎话。

此刻要依照这些信息,找出做了好事的人。

VC语言上机试题及答案

VC语言上机试题及答案

C 语言上机考试题20套(试题)C 语言上机考试题(第一套)1.编写函数fun ,它的功能是:计算并输出下列级数和:)1(1321211+⨯++⨯+⨯=n n S 例如,当n = 10时,函数值为:0.909091注意:部分源程序给出如下。

请勿改动主函数main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。

试题程序:#include <conio.h>#include <stdio.h>double fun( int n ){…………}main() /*主函数 */{ clrscr();printf(″%f\n ″, fun(10));}2.在[10000, 20000]范围内考察个位数字是7的素数, 问:(1) 这样的素数有多少个?(2) 其中最大的一个等于几?3. 编写程序,从键盘输入一年份,判断该年份是否为闰年。

C 语言上机考试题(第二套)1.编写函数fun ,它的功能是:计算并输出下列级数和:)1(1321211+⨯++⨯+⨯=n n S 例如,当n = 10时,函数值为:0.909091注意:部分源程序给出如下。

请勿改动主函数main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。

试题程序:#include <conio.h>#include <stdio.h>double fun( int n ){…………}main() /*主函数 */{ clrscr();printf(″%f\n″, fun(10));}2.回文数是指正读和反读都一样的自然数。

例如,8, 121, 5445这三个数都是回文数。

求:(1) [1,1000]之内既是回文数,又是素数的最大整数。

(2) [1,1000]以内既是回文数,又是素数的整数有多少个。

3. 编写程序,能对输入一行字符,统计其中分别有多少个单词和空格。

_《C语言》机试题(成-部分答案)

_《C语言》机试题(成-部分答案)

上机试题(一)1 已知A,B为正整数, A<B, A*B=716699且要求A+B取最小值,求满足上述条件的A值。

答案:5632 编写程序,求三位数的偶数中,所有各位数字之和是15的倍数的数的和。

答案:20454………………………………………………………………………………………………上机试题(二)1 编写程序,求三位数的奇数中,所有各位数字之和是12的倍数的数的和。

答案:202922 把一张一元钞票,换成一分、二分和五分硬币,每种至少5枚,问有多少种方案?答案:205……………………………………………………………………………………………上机试题(三)1 编写程序,求在四位数的奇数中,所有各位数字之和是25的倍数的数的和。

答案:12985152 已知Fibonacci数列:1,1,2,3,5,8,……,它可由下面公式表述:F(1)=1 if n=1F(2)=1 if n=2F(n)=F(n-1)+F(n-2) if n>2试求F(1)+F(3)+F(5)+……+F(49)值。

提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。

答案:12586269025…………………………………………………………………………………………………上机试题(四)1设有6个十进制数字a,b,c,d, e,f ,求满足abcdf×e=fdcba条件的五位数abcdf(a≠0,e≠0,e≠1)的个数。

答案:162一个数如果刚好与它所有的因子之和相等,则称该数为一个"完数",如:6=1+2+3,则6就是一个完数。

求出200到500之间所有的完数之和。

答案:496…………………………………………………………………………………………………上机试题(五)1 一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。

c语言20题上机题目

c语言20题上机题目

c语言20题上机题目1.计算球体积Problem Description根据输入的半径值,计算球的体积。

Input输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。

Output输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。

Sample Input1 1.5Sample Output4.189 14.1372.成绩转换Problem Description输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:90~100为A;80~89为B;70~79为C;60~69为D;0~59为E;Input输入数据有多组,每组占一行,由一个整数组成。

Output对于每组输入数据,输出一行。

如果输入数据不在0~100范围内,请输出一行:“Score is error!”。

Sample Input56 67 100 123Sample OutputE D A Score is error!3.第几天?Problem Description给定一个日期,输出这个日期是该年的第几天。

Input输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。

Output对于每组输入数据,输出一行,表示该日期是该年的第几天。

Sample Input1985/1/20 2006/3/12Sample Output20 714.求奇数的乘积Problem Description给你n个整数,求他们中所有奇数的乘积。

Input输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。

Output输出每组数中的所有奇数的乘积,对于测试实例,输出一行。

Sample Input3 1 2 34 2 3 4 5Sample Output3 155.平方和与立方和Problem Description给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广东工业大学计算机科学与技术张法光
离散数学C语言上机题
Anyview
可视化编程作业系统
二元关系章节编程题
EX
01
6.01③试设计一算法,
实现集合的卡氏积运算。
实现下列函数:
/**
*进行两个集合的卡氏积运算
* @param pA:要进行卡氏积运算的集合
* @param pB:要进行卡氏积运算的集合
* @return:将pA和pB进行卡氏积运算后得到的集合
for(resetCartersianSet(pA);!isEndOfCartersianSet(pA); nextCartersianSetPos(pA))
{OrderedCoupleInsertToCartersianSet(pB,createOrderedCouple(getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pA)),getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pA))) );
{ pCartersianSet pC=createNullCartersianSet();
for(resetCartersianSet(pA);!isEndOfCartersianSet(pA); nextCartersianSetPos(pA))
{
for(resetCartersianSet(pB);!isEndOfCartersianSet(pB); nextCartersianSetPos(pB))
OrderedCoupleInsertToCartersianSet(pB,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pA)));
}
return pB;
}
04
6.04③试设计一算法,求两个卡氏积集合的复合运算。
for(int i=1;i<n;i++)
{pC=CompositeOperation(pC,pBinaryRelationR); }
return pC;
}
07
6.02②试设计一算法,对某集合A上的一个二元关系R,判断R是否具有自反性。
实现下列函数:
/**
*判断一个关系是否具有自反性。
* @param pA:原始集合
OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pA)));
}
return pC;
}
if(n==1)
{return pBinaryRelationR;}
if(n==0)
{
for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA))
{for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA))
* @param pC:集合C
* @return:如果集合C是A到B的一个二元关系,则返回true,否则返回false。
*/
boolean isBinaryRelation(pOriginalSet pA, pOriginalSet pB, pCartersianSet pC)
{
pCartersianSet pD=createNullCartersianSet();
* @param pBinaryRelationR:卡氏积集合,该集合是一个pA上的二元关系
* @return:如果pBinaryRelationSet具有自反性;则返回true,否则返回false。
*/
boolean IsReflexivity(pOriginalSet pA, pCartersianSet pBinaryRelationR)
实现下列函数:
/**
*给定两个集合,求该两个集合的复合运算。
* @param pA:卡氏积集合
* @param pB:卡氏积集合
* @return: pA与pB的复合运算结果。
*/
pCartersianSet CompositeOperation(pCartersianSet pA, pCartersianSet pB)
OrderedCoupleInsertToCartersianSet(pD,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pB)));
}
for(resetCartersianSet(pC);!isEndOfCartersianSet(pC); nextCartersianSetPos(pC))
* @param pSet:原始集合
* @return:集合A上的恒等关系。
*/
pCartersianSet IdentityRelation(pOriginalSet pA)
{ pCartersianSet pB=createNullCartersianSet();
for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA))
OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pA)));
}
return pC;
}
pCartersianSet PowOperation(pOriginalSet pA,
pCartersianSet pBinaryRelationR,
int n)
{
pCartersianSet pC=createNullCartersianSet();
pC=copyCartersianSet(pBinaryRelationR);
{
if(isInCartersianSet(pD,getCurrentCartersianSetElem(pC)))
;//满足条件,执行空语句,继续循环
else return false;
}
return true;
}
03
6.03②试设计一算法,求集合A上的恒等关系。
实现下列函数:
/**
*给定集合A,求集合A上的恒等关系。
{ //空卡←序偶插入←建立序偶←条件语句
for(resetOriginalSet(pB);!isEndOfOriginalSet(pB);nextOriginalSetPos(pB))
OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),g
{ pCartersianSet pC=createNullCartersianSet();
//获取IA
for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA))
{
for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA))
*/
pCartersianSet CompositeOperation(pCartersianSet pA, pCartersianSet pB)
{ pCartersianSet pC=createNullCartersianSet();
for(resetCartersianSet(pA);!isEndOfCartersianSet(pA); nextCartersianSetPos(pA))
{ //空卡←序偶插入←建立序偶←条件语句
for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA))
if(getCurrentOriginalSetElem(pA)==getCurrentOriginalSetElem(pA))//The same elements
etCurrentOriginalSetElem(pB)));
}
return pC;
}
02
6.02②试设计一算法,
给定集合A、集合B和集合C,判断集合C是否为A到B的一个二元关系。
实现下列函数:
/**
*给定集合A、集合B和集合C,判断集合C是否为A到B的一个二元关系。
* @param pA:集合A
* @param pB:集合B
{
for(resetCartersianSet(pB);!isEndOfCartersianSet(pB); nextCartersianSetPos(pB))
if(isEqualOriginalSetElem(getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pA)),getFirstElemOfOrderedCouple(getCurrentCartersianS的第二元//获取第二元
OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pA)),getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pB))) );
相关文档
最新文档