离散数学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(答案)
一、填空题(每小题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
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语言上机考试题及答案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套含答案
第一次上机作业(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语言上机试题及答案
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语言》机试题(成-部分答案)
上机试题(一)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题上机题目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给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
C语言上机题参考答案
#include<stdio.h>
void main()
{int i,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=n-i;j++)
printf(" ");
for(k=1;k<=i;k++)
printf("*");
printf("\n");
for(j=0;j<n-1;j++)
if(a[j]>a[j+1])
t=a[j],a[j]=a[j+1],a[j+1]=t;
for(i=0;i<n;i++)
{ s=0;
for(j=1;j<a[i];j++)
if(a[i]%j==0) s+=j;
if(s==a[i]) printf("%d ",a[i]);
}
2、定义三个整型变量,从键盘输入三个整数,计算平均值,计算结果输出到屏幕上,平均值保留2位小数。
示例:
输入:按如下格式输入3个数:
21 22 25
输出:(注意保留2位小数)
22.67
#include<stdio.h>
void main()
{int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%.2f\n",(a+b+c)/3.0);
C语言上机题目珍藏版
C语言上机题目珍藏版一、题目描述:计算斐波那契数列请编写一个C语言程序,输入一个正整数n,计算并输出n项斐波那契数列。
二、题目描述:判断素数请编写一个C语言程序,输入一个正整数n,判断n是否为素数,并输出结果。
三、题目描述:矩阵转置请编写一个C语言程序,输入一个3x3的矩阵,将其转置后输出。
四、题目描述:查找数组中的最大值和最小值请编写一个C语言程序,输入一个整数数组,查找数组中的最大值和最小值,并输出结果。
五、题目描述:字符串逆序输出请编写一个C语言程序,输入一个字符串,将其逆序输出。
六、题目描述:判断回文数请编写一个C语言程序,输入一个正整数n,判断n是否为回文数,并输出结果。
七、题目描述:字符串拼接请编写一个C语言程序,输入两个字符串,实现字符串的拼接,并输出结果。
八、题目描述:冒泡排序请编写一个C语言程序,输入一个整数数组,使用冒泡排序算法将其排序,并输出结果。
九、题目描述:计算圆的面积和周长请编写一个C语言程序,输入圆的半径r,计算并输出圆的面积和周长。
十、题目描述:计算阶乘请编写一个C语言程序,输入一个正整数n,计算并输出n的阶乘。
十一、题目描述:猴子吃桃问题一只猴子第一天摘下若干个桃子,当即吃掉一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天都吃前一天剩下的一半零一个。
到第n天早上想再吃时,见只剩下一个桃子了。
请编写一个C语言程序,输入天数n,计算并输出第一天的桃子数量。
以上是C语言上机题目珍藏版,供大家参考和练习。
希望能够帮助大家提升编程能力。
编写C语言程序时,注意合理使用语法和算法,确保程序的正确性和效率。
加油!。
C语言上机考试编程题以及答案
C语言上机考试编程题以及答案1、求1+2+3+……….+100。
(循环)答案#include<stdio.h>void main(){int i,sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("%d",sum);}2、求1*2*3*……….*10。
(循环)答案void main(){int i=0,j=1;for (i=2;i<=10;i++){j*=i;}printf("%d",j);return 0;}3、输入三个数字,输出他们的最大值。
(if)答案#include<stdio.h>void main(){int a,b,c,d;scanf("%d,%d,%d",&a,&b,&c);d=max(a,b,c);printf("max=%d",d);getch();/*暂停看运行结果*/}int max(int x,int y,int z){int u;if(x>=y&&x>=z)u=x;else if(y>=x&&y>=z)u=y;elseu=z;return(u);4.用起泡法对十个数据排序(数组实现)答案#include<stdio.h>main ( ){ int i,j,t;static int a[10]={5,7,4,2,3,6,1,0,9,8};for(j=0;j<9;j++){ for(i=0;i<9-j;i++){ if(a>a){ t=a;a=a;a=t ;}}}for(i=0;i<10;i++)printf("%2d",a);}5、输入十个数字,逆序输出。
(数组实现)答案#include<stdio.h>main(){int a[10],i=0;for(i=0;i<=9;i++)scanf("%f",&a);printf("\n");for(i=9;i>=0;i--)printf("%f",a);}6输入两个数,交换他们的值并输出。
C语言学习知识上机实验例题
C语⾔学习知识上机实验例题实验⼀ C语⾔的运⾏环境、运⾏过程和表达式的使⽤⼀、⽬的与要求1、了解Dos、Windows环境下C语⾔的运⾏环境,了解所⽤的计算机系统的基本操作⽅法,学会独⽴使⽤该系统。
2、了解在该系统上如何编辑、编译、连接和运⾏⼀个C程序。
3、通过运⾏简单的C程序,初步了解C源程序的特点。
4、掌握C语⾔数据类型,熟悉如何定义⼀个整型、字符型、实型变量,以及对它们赋值的⽅法,了解以上类型数据输出时所⽤的格式转换符。
5、学会使⽤C的有关算术运算符,以及包含这些运算符的表达式⼆、实验例题【例1】编程实现在屏幕上显⽰如下三⾏⽂字Hello, world !Wolcome to the C language world!Everyone has been waiting for.在Turbo C的集成环境下,键⼊如下源⽂件。
敲Alt+F组合键打开File菜单,File菜单中Write to或save as选项可将默认noname.c⽂件名改为任意⽂件名。
程序example.c如下:main(){printf("Hello,World!\n");printf("Wolcome to the C language world!\n");printf("Everyone has been waiting for.\n");}然后⽤Ctrl+F9执⾏example.c,⽤Alt+F5查看结果,即在屏幕上显⽰题⽬要求的三⾏⽂字。
按回车键重新返回Turbo C的编辑环境。
注意,在运⾏程序之前最好先存盘。
【例2】输⼊并运⾏程序,写出运⾏结果。
main(){int a,b,sum;a=123;b=456;sum=a+b;printf(“sum is %d\n”,sum);}运⾏⽅法同上,最后结果为:sum is 579。
【例3】输⼊并运⾏程序,写出运⾏结果。
《C语言》上机实验题及参考答案
《C语言》上机实验题及参考答案2017《C语言》上机实验题及参考答案为了帮助大家备考接下来的计算机二级考试,应届毕业生店铺整理了2017《C语言》上机实验题及参考答案,希望能帮助大家备考计算机二级考试。
1、编程实现对键盘输入的英文名句子进行加密。
用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变:2、编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。
3、从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。
4、随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
5、编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
6、模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。
7、任何一个自然数m的立方均可写成m个连续奇数之和。
例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19编程实现:输入一自然数n,求组成n3的n个连续奇数。
8、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。
9、编制一个完成两个数的四则运算程序。
如:用户输入34+56则输出结果90.00。
要求运算结果保留两位小数,用户输入时一次将两个数和*作符输入。
10、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。
如输入:56439,输出:5位数5,6,4,3,99,3,4,6,511、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。
c语言上机考试试题
c语言上机考试试题C语言上机考试试题在计算机科学领域中,C语言是一门非常重要的编程语言。
它的简洁性和高效性使得它成为了许多程序员的首选。
而在学习C语言的过程中,上机考试是不可或缺的一环。
本文将为大家提供一些常见的C语言上机考试试题,帮助大家更好地准备考试。
一、基础知识题1. 请简述C语言的特点和优势。
2. 什么是变量?请举例说明。
3. 请解释C语言中的数据类型,并列举一些常见的数据类型。
4. 请解释C语言中的运算符,并列举一些常用的运算符。
5. 请解释C语言中的控制语句,并列举一些常见的控制语句。
二、编程题1. 编写一个程序,要求用户输入两个整数,然后输出它们的和、差、积和商。
2. 编写一个程序,要求用户输入一个正整数N,然后计算并输出1到N的所有正整数的和。
3. 编写一个程序,要求用户输入一个字符串,然后判断该字符串是否是回文字符串(即正向和反向读都相同)。
4. 编写一个程序,要求用户输入一个正整数N,然后输出N的所有因子。
5. 编写一个程序,要求用户输入一个字符串,然后统计并输出该字符串中的字母、数字和其他字符的个数。
三、综合题1. 编写一个程序,要求用户输入一个正整数N,然后输出N的阶乘。
2. 编写一个程序,要求用户输入一个正整数N,然后判断该数是否为素数。
3. 编写一个程序,要求用户输入一个正整数N,然后输出N个斐波那契数列的元素。
4. 编写一个程序,要求用户输入一个字符串,然后将字符串中的所有小写字母转换为大写字母,并输出转换后的字符串。
5. 编写一个程序,要求用户输入一个正整数N,然后输出一个N行的等腰三角形。
通过以上的试题,我们可以看到,C语言上机考试试题涵盖了C语言的基础知识、编程技巧和综合应用。
在备考过程中,我们需要掌握C语言的特点和优势,了解各种数据类型和运算符的使用方法,熟练掌握控制语句的应用,同时还需要有一定的编程能力和逻辑思维能力。
在解答试题时,我们需要仔细阅读题目要求,理清思路,合理设计程序结构,注意变量命名规范,避免出现语法错误和逻辑错误。
离散数学C语言上机题
{ pCartersianSet pC=createNullCartersianSet();
//获取IA
for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA))
{
for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA))
{ pCartersianSet pC=createNullCartersianSet();
for(resetCartersianSet(pA);!isEndOfCartersianSet(pA); nextCartersianSetPos(pA))
{
for(resetCartersianSet(pB);!isEndOfCartersianSet(pB); nextCartersianSetPos(pB))
//获取A卡氏积中序偶的第二元//获取第二元
OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pA)),getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pB))) );
}
return pC;
C语言程序设计上机习题与参考答案
C语言程序设计上机习题与参考答案1、给出三角形的三边a、b、c,求三角形的面积(应先判断a、b、c三边是否能构成一个三角形)。
2、某幼儿园只收2~6岁的小孩,2~3岁编入小班,4岁编入中班,5~6岁编入大班,编制程序实现每输入一个年龄,输出该编入什么班。
3、编写程序,输入一个整数,判断它能否被3、5、7整除,并根据情况输出下列信息:(1)能同时被3、5、7整;(2)能同时被3、5、7中的两个数整除,并输出这两个数;(3)只能被3、5、7中的一个数整除;(4)不能被3、5、7中的任何一个数整除。
4、请列出所有的个位数是6,且能被3整除的两位数。
5、求1~500中能被5整除的数的倒数之和。
6、编写程序,输入某门功课的若干个同学的成绩,以-1作为终值,计算平均成绩并输出。
7、若口袋里放入12个球,3个红球,3个白的,6个黑的,从中任取8个,编写程序,列出所有可能的取法。
8、编写一个程序,求2022!的末尾有多少个0?9、一个自然数平方的末几位与该数相同时,称该数为同构数。
例如:252=625,则25为同构数。
编程求出1~1000中的同构数。
10、输入一个较大的整数,求小于该整数的最大5个素数。
n11、求下列数列的近似值:S=1-1/22+1/33-1/44+(-1)/nn.输入精度,当某一项的精度小于该值时停止计算。
floatfun(floatep){}voidmain(){floatep;canf(“%f”,&ep);printf(“%f\n”,fun(ep));}12、编写一个函数change(int某,intr),将十进制整数某转换成r(1<r<10)进制后输出。
13、求1000以内的亲密数对。
亲密数对的定义为:若整数a的所有因子(不包括本身)之和为b,b的所有因子(不包括b本身)之和为a,且a和b不相等,则称a与b为亲密数对。
intfun(int某){}voidmain(){intn,a,b;for(n=1;n<1000;n++){b=fun(n);a=fun(b)if(a!=b&&a==n)printf(“\n%d,%d\n”,a,b);}}14、用递归法求下列问题的解:一对小兔,一个月后长成中兔,第二个月长成大兔,长成大兔,长成大兔后以后每个月生一对小兔。
(完整版)C语言上机练习题及答案
(完整版)C语言上机练习题及答案1输入三个整数x,y,z,把这三个数由小到大输出。
# includevoid 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*rvoid main(){double r;printf("please input r:");scanf("%lf",&r);printf("area is %.4lf\n",S);printf("volume is %.4lf\n",V);}输入正方形的边长,输出正方形的周长和面积。
# includevoid 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 码。
# includeint main(){char-ch1,ch2,ch3;printf("please input three characters:\n");scanf("%C%C%c",&ch1,&ch2,&ch3);printf("%c\n%d\n",ch3,ch3);printf("%c\n%d\n",ch2,ch2);printf("%c\n%d\n",ch1,ch1);}输入一个摄氏温度,要求输出华氏温度。
c++离散数学上机题消解算法
离散数学中的消解算法通常用于解决一些具有约束条件的问题,例如旅行商问题、背包问题等。
下面是一个简单的C++消解算法示例,用于解决约束满足问题。
```c++#include <iostream>#include <vector>#include <algorithm>using namespace std;// 约束满足问题struct Constraint {int var; // 变量int val; // 变量的取值bool is_hard; // 是否为硬约束};// 判断是否满足约束bool is_satisfiable(vector<Constraint>& constraints, vector<bool>& assigned) {for (int i = 0; i < constraints.size(); i++) {if (constraints[i].is_hard && constraints[i].val != assigned[constraints[i].var]) {return false;}}return true;}// 消解算法bool solve(vector<Constraint>& constraints, vector<bool>& assigned) {if (constraints.empty()) {return true; // 无约束,直接返回满足}sort(constraints.begin(), constraints.end(), [](const Constraint& a, const Constraint& b) { return a.var < b.var; }); // 按变量排序for (int i = 0; i < constraints.size(); i++) {if (constraints[i].is_hard) { // 硬约束必须满足assigned[constraints[i].var] = constraints[i].val;} else { // 软约束尝试满足for (int j = 0; j < constraints[i].val; j++) { if (is_satisfiable(constraints, assigned)) {assigned[constraints[i].var] = j;break;}}if (j == constraints[i].val) { // 无法满足软约束,返回不满足return false;}}}return true; // 所有约束都满足,返回满足}int main() {vector<Constraint> constraints = {{1, 1, false}, {2, 2, false}, {1, 2, true}}; // 约束条件:x1+x2<=2, x1=1, x2=2, x1+x2=2vector<bool> assigned(3, false); // 初始变量取值都为falseif (solve(constraints, assigned)) {cout << "满足约束" << endl;for (int i = 0; i < assigned.size(); i++) {cout << "x" << i + 1 << "=" << (assigned[i] ? constraints[i].val : "?") << endl; // 输出变量取值}} else {cout << "不满足约束" << endl;}return 0;}```。
C语言上机题目汇总
C语言上机题目汇总“c语言”上机题目汇总2022-2022-21.输入三角形两个边长及其夹角(角度值),求第三边边长和三角型面积。
2.输入一个字符,若是小写字母,则转换成大写字母输出;若是大写字母,则转换成小写字母输出。
3.输入大写字母,并在字母表中输出大写字母前后的字母。
如果输入字母为a或Z,则分别输出提示信息“无前一个字母”或“无后一个字母”。
4.编写程序,输入一个整数,判断它能否被3、5、7整除,并根据情况输出下列信息:(1)可以同时除以3、5和7。
(2)能同时被3、5、7中的两个数整除,并输出这两个数。
(3)只能被3、5、7中的一个数整除,输出该数。
(4)不能被3、5、7中的任何一个数整除。
1115.给定正整数a>b>C和a+b+C<100,求出满足2+2=2的组总数并输出abc满足条件的组合。
1116.找到1+++++的值,直到最后一项的值小于10-5。
2471116221a7.用迭代法求某数a的平方根,已知求平方根的迭代公式为:xn=(xn-1+)。
2xn-1a作为迭代的初始值,迭代的结束条件为xn-xn-1£10-5。
28.输出100以内(不含100)的所有偶数和所有奇数之和。
9.使用嵌套循环输出以下图形(行与行之间无空行,列与列之间无空列):##########10.使用循环查找并输出100以内的所有素数。
11.使用循环查找并输出所有“水仙花”。
“水仙花数”是一个三位数的数字,其数字的立方和等于数字本身。
例如,153=13+53+33,所以153是“水仙花的数量”。
12.输出斐波那契数列的前40项。
斐波那契序列是一个整数序列,定义如下:ì1fn=í?fn-1+fn-2n=1,n=2n>213.输出100以内的所有“同构数”。
所谓的“同构数”是一个正整数,出现在其平方数的右边。
例如:5是25右边的数字,25是625右边的数字,5和25都是同构数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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))) );