c程序语言,函数,求编程实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c程序语言,函数,求编程实现相关的知识,希望对你有一定的参考价值。
1.编写一个函数primeNum(int num),它的功能是判别一个数是否为素数。如果num是素数,返回该数;否则返回0值。
要求:
(1)在主函数输入一个整数num,调用该函数后,输出num是否是素数的信息。输出格式为:num is prime或num is not prime。
(2)分别输入以下数据:0,1,2,5,9,13,59,121,运行程序并检查结果是否正确。
2.编写函数computNum( int num),它的功能是计算任意输入的一个正整数的各位数字之和,结果由函数返回(例如:输入数据是123,返回值为6)。
要求: num由主函数输入,调用该函数后,在主函数内输出结果。
3.编写函数,mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。
要求:
(1)在主函数中输入一对数据a和b,调用该函数后,输出结果并加以相应的说明。例如:在主函数中输入:10,5 ,则输出:10 is multiple of 5.
(2)分别输入下面几组数据进行函数的正确性测试:1与5、5与5、6与2、6与4、20与4、 37与9等,并对测试信息加以说明。
4.编写一个计算组合数的函数combinNum(int m,int n)。计算结果由函数返回。
计算组合数的公式是:
c(m,n)=m!/(n!*(m-n)!)
要求:
(1)从主函数输入m和n的值。对m>n、m<n和m=n 的情况作分别处理后调用函数combinNum(m,n),在主函数内输出结果值。
(2)对m>n、m<n和m=n 的情况各取一组数据进行测试,检查程序的正确性。
(3)修改程序,把两个函数分别放在两个程序文件中,作为两个文件进行编译、链接和运行。
5.整数a,b的最大公约数是指既能被a整除又能被b整除的最大整数。整数a,b的最小公倍数是指既是a的倍数又是b的倍数的最小整数。编写两个函数,一个函数gcd()的功能是求两个整数的最大公约数,另一个函数mul()的功能是求两个整数的最小公倍数。
要求:
(1)两个整数在主函数中输入,并在主函数中输出求得的最大公约数和最小公倍数。
(2)首先将两个整数a和b作为实参传递给函数gcd(),求出的最大公约数后,由函数gcd()带值返回主函数,然后将最大公约数与两个整数a、b一起作为实参传递给函数mul(),以此求出最小公倍数,再由函数mul()带值返回主函数。
(3)修改函数gcd(),函数gcd()采用递归调用的编写方法,两个整数a和b的最大公约数的递归公式是:
如果b=0,那么gcd(a,b)=x,否则gcd(a,b)= gcd(b,a%b)。 然后将最大公约数与两个整数a、b一起传递给函数mul(),求出最小公倍数,再由函数mul()将最小公倍数返回主函数。
(4)修改程序,采用全局变量的处理方法,将最大公约数和最小公倍数都设为全局变量,分别用函数gcd()和函数mul()求最大公约数和最小公倍数,但其值不是由函数返回,而是通过全局变量在函数之间传递的特性将结果反映在主函数中。
#include<stdio.h>
void main()
int a,b,back;
int mulnum(int a,int b);
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
back=mulnum(a,b);
if(back==1)
printf("%d is multiple of %d\n",a,b);
else if(back==2)
printf("%d is multiple of %d\n",b,a);
else
;
int mulnum(int a,int b)
double result;
if((result=a%b)==0)
return 1;
else if((result=b%a)==0)
return 2;
else
return 0;
这个函数能技能判断a是否为b的倍数,还能判断b是否为a的倍数。楼主如果不需要第二个功能,把else if语句去掉就行了。 参考技术A 讨厌最后一个,理解不了,不编了。
话说楼主不在啊,不在就不给了。
急求一道c语言编程的答案!!时间急迫!!快快!!
下面10组题目中任选其一完成。【难度系数:10】
1. 文件压缩及解压缩程序。
题目:设计一种压缩格式的压缩及解压缩程序。
提示:调用已有的压缩及解压缩函数库实现。
参考:下面格式选择一种实现
CAB格式:libmspack,http://www.kyz.uklinux.net/libmspack/
ZIP格式:http://www.zlib.net/,ZLIB Compression Library (PKZIP/GZIP Compression)
UNRAR:http://www.rarlab.com/rar_add.htm
2. 数据加密程序
题目:编写一种加密算法的程序
提示:调用已有的加密函数库或利用算法原理实现。http://www.cryptopp.com/
参考:下面算法选择一种实现
已知的加密算法有许多种,例如:RC6, MARS, Rijndael, Twofish, Serpent, IDEA, DES, Triple DES (DES-EDE2 and DES-EDE3), DESX (DES-XEX3), RC2, RC5, Blowfish, Diamond2, TEA, SAFER, 3-WAY, GOST, SHARK, CAST-128, Square, CBC padded, CBC ciphertext stealing (CTS), CFB, OFB, counter mode, ARC4, SEAL, WAKE, Sapphire, BlumBlumShub, RSA, DSA, ElGamal, Nyberg-Rueppel (NR), BlumGoldwasser, Rabin, Rabin-Williams (RW), LUC, LUCELG, Elliptic Curve Cryptosystems, PKCS#1 v2.0, OAEP, PSSR, IEEE P1363 EMSA2, Diffie-Hellman (DH), Unified Diffie-Hellman (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, SHA-1, MD2, MD5, HAVAL, RIPEMD-160, Tiger, MD5-MAC, HMAC, XOR-MAC, CBC-MAC, DMAC, Luby-Rackoff, MDC, ANSI X9.17 appendix C, PGP's RandPool
3. 位校验程序
题目:编写数据通信中位校验程序
参考:下面方法选择一种实现
位校验方法有:CRC16、CRC32、CRC8等
4. 常用算法演示程序
题目:编写常用算法的演示程序
参考:下面算法选择一种实现
矩阵旋转算法
Prim算法
拷贝链表的O(n)算法
随机算法
大数阶乘源码
格雷码算法
算术表达式的计算
寻找链表中间节点算法
模式匹配的KMP算法
最小堆/哈希表/二叉树/平衡二叉树/红黑树
最小生成树
Kruskal算法:(贪心)
最短路径Dijkstra 算法
5. 排序算法程序
题目:编写七种排序算法的演示程序
快速排序;
插入排序;
选择排序;
冒泡排序;
堆排序;
归并排序;
基数排序;
6. 高精度计算
题目:高精度计算是指位数较长(超出C语言数据类型范围)的计算问题。
参考:下面要求选择一种实现
高精度加法
高精度减法
高精度乘以低精度
高精度乘以高精度
高精度除以低精度
高精度除以高精度
7. 查找算法
题目:编写查找算法的演示程序
参考:下面算法选择一种实现
顺序查找
折半查找
树形查找
8. 数据结构相关算法
题目:编写链表处理程序
参考:
链表的定位函数
单链表的插入操作
单链表的删除操作
双链表的插入操作(插入新结点q)
双链表的删除操作
9. 用链表实现有序线性表
题目:用链表实现有序线性表
参考:实现的功能
(1)有序线性表的元素是按值从小到大的顺序排列的。本题要求用带表头结点的单链表实现有序线性表。
(2)用户界面要求设计为菜单方式。程序运行后,显示如下功能菜单:
1. 置空表
2. 插入
3. 删除
4. 查找
5. 输出
0. 退出
10. ACM/ICPC试题
题目:编写http://acm.uva.es或http://icpc.baylor.edu/icpc/上的ACM问题集程序
参考:试题自选,要求英文试题内容,全英文程序摘要、基本结构及算法讲解。
#include <cstdlib>
#include <ctime>
using namespace std;
const int MAX_SIZE=100;
void partition1(int A[],int n,int first,int last,int &mid)//划分
int i=first,j=last,x=A[i];
while(i<j)
while(i<j&&A[j]%3!=0)
j--;
if(i<j)
A[i]=A[j];i++;
while(i<j&&A[i]%3==0)
i++;
if(i<j)
A[j]=A[i];
j--;
A[i]=x;
mid=i;
void partition2(int A[],int n,int first,int last,int &mid)//划分
int i=first,j=last,x=A[i];
while(i<j)
while(i<j&&A[j]%3!=1)
j--;
if(i<j)
A[i]=A[j];i++;
while(i<j&&A[i]%3==1)
i++;
if(i<j)
A[j]=A[i];
j--;
A[i]=x;
mid=i;
void QuickSort(int A[],int n,int first,int last)//快速排序
int middle;
if(first<last)
partition1(A,n,first,last,middle);
partition2(A,n,middle+1,last,middle);
void display(int A[],int n)
int i=0;
for(i=0;i<n;i++)
cout<<A[i]<<" ";
cout<<endl;
int main()
int array[MAX_SIZE],i=0,n=1;
srand(time(0));
cout<<"提示:本程序是将一个整型数组调整为这样的数组:所有3的倍数在左边,所有除以 "<<endl;
cout<<"3余1的数放在中间,而所有除以3余2的数放在最右边.要求算法的时间尽可能少. "<<endl;
cout<<endl<<"数组中元素的值在1~n之间变化,请输入n的值:";
cin>>n;
for(i=0;i<MAX_SIZE;i++) //插入随机数
array[i]=rand()%n;
cout<<"排序前:"<<endl;
display(array,MAX_SIZE);
QuickSort(array,MAX_SIZE,0,MAX_SIZE-1);
cout<<"排序后:"<<endl;
display(array,MAX_SIZE);
system("PAUSE");
return 0;
快速排序 参考技术A 4. 常用算法演示程序
题目:编写常用算法的演示程序
参考:下面算法选择一种实现
矩阵旋转算法
Prim算法
拷贝链表的O(n)算法
随机算法
大数阶乘源码
格雷码算法
算术表达式的计算
寻找链表中间节点算法
模式匹配的KMP算法
最小堆/哈希表/二叉树/平衡二叉树/红黑树
最小生成树
Kruskal算法:(贪心)
最短路径Dijkstra 算法本回答被提问者采纳 参考技术B 问问题的该不会是。。。。xgd的吧。。。
你够可以的~~~不想自己做还搜难度系数最大的。。。
自己做个数学型的就行了呗。。那些里有特简单的。 参考技术C 第八个是最简单的,看看书呗~唉数据结构重修- -
以上是关于c程序语言,函数,求编程实现的主要内容,如果未能解决你的问题,请参考以下文章