c语言程序设计试题及答案文库(C语言程序设计上机程序题)
/* 第一题:n为一个整数(小于10万),它加上100后是一,下面我们就来聊聊关于c语言程序设计试题及答案文库?接下来我们就一起去了解一下吧!
c语言程序设计试题及答案文库
/* 第一题:n为一个整数(小于10万),它加上100后是一
个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
#include<iostream>
#include<cmath>
using namespace std;
int judge(int a)
{
int b=sqrt(a);
if(a==b*b)
return 1;
else
return 0;
}
void main()
{
int i,t;
for(i=-99;i<100000;i )
if
(judge(i 100)&&judge(i 168))
cout<<i<<endl;
}*/
/*第二题:求1000之内的完全数。
说明:完全数就是:除了它本身以外所有因子之和等于其
本身,例如:6=1 2 3。
#include<iostream>
using namespace std;
void main()
{
int a,b,sum=0;
for(a=1;a<=1000;a )
{
for(b=1;b<=a/2;b )
{
if(a%b==0)
sum=sum b;
}
if(sum==a)
cout<<a<<endl;
sum=0;
}
}
*/
/*第三题:求出 [900, 1000]间有偶数个因子(这里因子不
含1和自身)的数有多少个,其中最小的一个?
#include<iostream>
using namespace std;
void main()
{
int a,b,c=0,d=0,min;
for(a=1000;a>=900;a--)
{
for(b=2;b<=a/2;b )
{
if(a%b==0)
c;
}
if(c%2==0)
{
d;
min=a;
}
}
cout<<"min="<<min<<"一共有:"<<d<<endl;
}
*/
/*第四题:编写一个自定义函数:int f( int M, int N) ,f( )的功能是:
对给定的正整数M和N,找出满足方程"7x 4y=M"的正整数解中x是偶数且y
是奇数的解,其中:x,y属于[1,N]的范围。
要求:若M和N不都是正整数,则结束函数并返回-1;只有M和N都是正整数
时,才继续求解操作,用二重循环进行求解:
(1)在函数中输出满足条件的正整数解x和y
(2)并且使函数值返回满足条件的正整数解的组数
#include<iostream>
using namespace std;
int f(int M,int N)
{
int x,y,k=0;
if(M<0||N<0)
{cout<<"请输入正整数";
return -1;}
{for(x=2;(M-7*x>0)&&N>=x;x =2)
{
for(y=1;N>y;y =2)
{
if(M-7*x-4*y==0)
{cout<<"x="<<x<<" y="<<y<<endl;
k;}
}
cout<<"k="<<k;
return k;}}
}
void main()
{
int M,N;
cout<<"请输入整数M:";
cin>>M;
cout<<"请输入整数N:";
cin>>N;
f(M,N);
}
*/
/*第五题:编写一个自定义函数:int f( char x, int N) ,f( )的功
能是:对给定的字符c和整数N,用c代表的符号打印一个N行的图案,每
行开头没有任何空格。比如,当c为"*"且N为5时,打印的图案如本题图
所示。且函数值返回1。
#include<iostream>
using namespace std;
int f(char x,int n)
{
int i,j;
for(i=1;i<=n;i )
{
for(j=1;j<=i;j )
cout<<x;
cout<<endl;
}
return 0;
}
int main()
{
f('*',5);
return 0;
}*/
/*第六题:编写一个自定义函数:int f( int N) ,f( )的功能是:
对给定的正整数N,打印一个N行N列的由"A"、"B"、"C"以及空格" "符
号组成的方阵图案。比如,当N为5时,打印的图案如本题图所示。且
函数值返回1。
#include<iostream>
using namespace std;
int f(int N)
{
int i,j;
char a[100][100];
for(i=0;i<=2*N-1;i )
{
for(j=0;j<=2*N-1;j )
{
if((j==0&&i%2==0)||(i==j&&i%2==0))
a[i][j]='A';
else if(j>i&&i%2==0&&j%2==0)
a[i][j]='B';
else if(j%2!=0||i%2!=0)
a[i][j]='\t';
else
a[i][j]='C';
}
cout<<a[i][j];
}
return 1;
}
void main()
{
f(5);
}
*/
/*第七题:根据下列要求和提示,编写一个函数f(N)判断某数N是
否为"完全数",N由主函数给出;如果N是"完全数"则函数值返回1,
N不是"完全数"则函数值返回0。"完全数"定义如下:如果一个数恰
好等于它的因子之和(因子包括1,不包括数本身),则称该数为
"完全数"。如:6的因子是1、2、3,而6=1 2 3,则6是个"完全数"。
#include<iostream>
using namespace std;
int f(int N);
void main()
{
int N;
cin>>N;
if(f(N)==1)
cout<<N<<"是完全数"<<endl;
else
cout<<N<<"不是完全数"<<endl;
}
int f(int N)
{
int a,sum=0;
for(a=1;a<=N/2;a )
{
if(N%a==0)
sum =a;
}
if(N==sum)
return 1;
else
return 0;
}
*/
/*第八题:编写程序,求e的值,e≈1 1/1! 1/2! 1/3! 1/4! ...,
最后一项的值小于1e-6。
#include<iostream>
using namespace std;
int jiecheng(int N)
{
int i,c=1;
for(i=1;i<=N;i )
c=c*i;
return c;
}
void main()
{
double e=1.0;
int t;
for(t=1;(jiecheng(t))<=100000000;t )
e=e 1.0/jiecheng(t);
cout<<e<<endl;
}*/
/*第九题:有十进制数字a,b,c,d和e,求满足式子:abcd*e=dcba
(a非0,e非0非1)的四位数中:
(1)共有多少个?
(2)最小的abcd;
(3)与之相对应的e。
#include<iostream>
using namespace std;
int f(int n)
{int m,sum=0;
while(n)
{
m=n;
sum=sum*10 m;
n=n/10;
}
return sum;
}
void main()
{ int i,j=0,k;
for(i=4999;i>=1000;i--)
{
if(f(i)/i*i==f(i)&&f(i)>i)
{
j ;
k=i;
}
}
cout<<j<<endl;
cout<<k<<endl;
cout<<f(k)/k;
}
*/
/*第十题:有一个7层灯塔,每层所点灯数都等于该层上一层
的两
倍,灯的总数是381盏,求:塔底灯数?第几层的灯数为48?
#include<iostream>
using namespace std;
int f(int n)
{
if(n==1)
return 1;
else
return 2*f(n-1);
}
void main()
{ int i,x,sum=0;
for(x=1;x<100;x )
{
for(i=1;i<=7; i)
{sum =x*f(i);}
if(sum!=381)
sum=0;
else
cout<<"x="<<x<<endl;
}
}
*/
/*第十一题:有3个红球,5个白球,6个黑球,从中任意取出
8个球,
且其中必须有白球,请求出共有多少种取法?
#include<iostream>
using namespace std;
int main()
{
int x,y,sum=0;
for(x=1;x<=5;x )
{
for(y=0;y<=3;y )
{ if((8-x-y)<=6)
sum ;
}
}
cout<<sum;
return 0;
}
*/
/*第十二题:求数列1,3,3,3,5,5,5,5,5,7,7,7
,7,7,7,7……。求:
第40项的值;值为17的第1个数是数列中第几项?
#include<iostream>
using namespace std;
void main()
{
int i,sum=0;
for(i=1;sum<=40;i =2)
sum =i;
i-=2;
cout<<i<<endl;
sum=0;
for(i=1;i<17;i =2)
sum =i;
cout<<sum 1<<endl;
}
*/
/*第十三题:计算p的近似值,直到最后一项的绝对值小于
10-8为止,近似公式为
#include<iostream>
using namespace std;
int f(int N)
{
if(N%2==0)
return (-1);
else
return 1;
}
void main()
{
int i,c=0;double p=0;
for(i=1;i<100000000;i =2)
{
c=c 1;
p =1.0/i*f(c);
}
cout<<p<<endl;
}
*/
//第十四题:用牛顿迭代法求方程3x3-4x2-5x 13=0在x=1
附近的根,要求精度为10-6。
/*
#include<iostream>
#include<iomanip>
using namespace std;
double y(double x)
{
double y;
y=3*x*x*x-4*x*x-5*x 13;
return y;
}
double k(double x)
{
double y;
y=9*x*x-8*x-5;
return y;
}
void main()
{
double x=1.0;
while(1)
{
int a=(x-y(x)/k(x))*1000000;
int b=x*1000000;
if(a==b)
{
cout<<setprecision(7)<<x;
break;
}
else
x=x-y(x)/k(x);
}
}
*/
/*第十五题:编写一个自定义函数:int f( int M, int N)
,函数f的功能是:对给定的正整数M和N,
找出满足方程"5x 6y=M"的正整数解中x和y都是偶数的
解。要求:若M和N不都是正整数,
则结束函数并返回-1;只有M和N都是正整数时,且
x,y∈[1,N], 才继续求解操作,
并用二重循环进行求解:(1)在函数中输出满足条件的
正整数解x和y,
(2)使函数值返回满足条件的正整数解的组数。
#include<iostream>
using namespace std;
int f(int M,int N)
{
int x,y,k=0;
if(M<0||N<0)
{
cout<<"请输入正整数";
return -1;
}
{
for(x=2;(M-5*x>0)&&N>=x;x =2)
{
for(y=2;N>y;y =2)
{
if(M-5*x-6*y==0)
{
cout<<"x="<<x<<" y="<<y<<endl;
k;
}
}
}
cout<<"k="<<k;
return k;
}
}
void main()
{
int M,N;
cout<<"请输入整数M:";
cin>>M;
cout<<"请输入整数N:";
cin>>N;
f(M,N);
}
*/
/*第十六题:求s=2 22 222 ... 222...2的和,即第n
个加数是一个n位的整数,
且各数位上的数字均为2,例如当n=4时,s=2 22
222 2222。
要求设计一个函数int f(int n)求每一个加数,在main()中用累
加求和方式求出总和。
#include<iostream>
using namespace std;
int f(int N)
{
int i,p=0;
for(i=1;i<=N;i )
p=p*10 2;
return p;
}
int main()
{
int s=0,i,n;
cout<<"input n:";
cin>>n;
for(i=1;i<=n;i )
s=s f(i);
cout<<"2 22 222''''''="<<s<<endl;
return 0;
}
*/
//第十七题:所有能被13整除又能被17整除且
末位不是偶数的三位数有几个?最大的一个?
//如何处理多个数中输出最大的
/*
#include<iostream>
using namespace std;
int main()
{
int i=100,j=0,a;
for(;i<=999;i )
{
if(i==0&&i==0&&i%2!=0)
{ a=i;
j ;}
}
cout<<a<<" "<<j<<endl;
return 0;
}
*/
//第十八题:基本解决,有两个疑问,为何不能执行
,为何写1.0
/*
#include<iostream>
using namespace std;
double f(int n)
{
if(n==1)
return 1.0;
else if(n==2)
return 2.0;
else
return f(n-1) f(n-2);
}
void main()
{
double sum=0;
int i;
for(i=1;i<=20;i )
sum =f(i)/f(i 1);
cout<<sum<<endl;
cout<<f(i)/f(i 1);
}*/
*/
/*第二十题:从键盘上输入一个正整数,判别它是否为
一回文数。如:123321
#include<iostream>
using namespace std;
void main()
{
int a,b,c=0,d;
cout<<"请输入正整数"<<endl;
cin>>d;
b=d;
while(b)
{
a=b;
c=c*10 a;
b=b/10;
}
if(d==c)
cout<<"yes";
else
cout<<"NO";
}
*/
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com