.
Word 文档
江苏科技大学计算机二级经典编程题整理
设计一个程序,求出5~100之间的所有素数,要求每行输出5个数。判断一个整数是否为素数时用一个函数来实现。
#include
int f(int n)
{
for(int i=2;i
if(n%i==0)break;
if(!(i
else return 0;
}
void main()
{
int count=0;
for(int n=5;n<=100;n++)
{
if(f(n))
{
cout<
if(++count%5==0)cout<
}
}
}
试编写一个函数求n!。
#include
int f(int n)
{
if(n==1||n==0)return 1;
else return n*f(n-1);
}
void main()
{
int n;cin>>n;
cout<
}
3、编写一个程序求分数相加,要求其结果为最简形式,如3/10+1/6=7/15。(此题包含:求最大公约数(经典算法))
#include
int f(int m,int n) //求m,n的最大公约数
{
for(int i=m;;i--)
if(m%i==0&&n%i==0)return i;
}
void main()
{
int fz1,fm1,fz2,fm2,fz,fm;
cout<
cin>>fz1>>fm1;
cout<
cin>>fz2>>fm2;
fz=fz1*fm2+fz2*fm1;
fm=fm1*fm2;
int t=f(fz,fm);
fz/=t;
fm/=t;
cout<
}
4、编程实现对序列{6,9,5,1,3,4,8,7}进行升序排列。
#include
void f(int s[],int n) //自定义函数实现数组排序,参数传递是双向的地址传递
{
for(int i=0;i
for(int j=i+1;j
{
if(s[i]>s[j]){
int t=s[i];s[i]=s[j];s[j]=t;}
}
}
void main()
{
int s[]={6,9,5,1,3,4,8,7};
f(s,8);
for(int i=0;i<8;i++)
{
cout<
}
}
5、设n是一个两位正整数,s1是n的各位数之和,s2是2*n的各位数之和。输出所有满足条件s1等于s2的n、s1、s2。要求用函数实现求各位数之和。
#include
int f(int n) //自定义函数求n的各位数之和
{
int sum=0;
while(n)
{
sum+=n%10;
n/=10;
}
return sum;
}
void main()
{
for(int n=10;n<=99;n++)
if(f(n)==f(2*n))
cout<
}
6、【2010秋真题】试定义一个类Array,将4行5列二维数组的各列前3个元素依次拼接成一个整数,再将该整数赋值给相应列的最后一个元素。例如,
(1)私有数据成员: int a[4][5];
(2)公有成员函数:
Array(int b[][5],int n):构造函数,用二维数组b初始化数组a,参数n表示数组b的行数。
void val(int j):将成员数组a第j列的前3个元素依次拼接成一个整数赋值给第4个元素。
void fun():利用成员函数vaLl()依次处理数组a的各列,完成题目的要求。
void print():按矩阵形式打印数组a
(3)在主函数中完成对该类的测试。
输出示例:
原数组:
1 2 0 4 1
16 11 21 0 2
2 0 3 1 3
0 0 0