tft每日頭條

 > 圖文

 > c語言程序設計試題及答案文庫

c語言程序設計試題及答案文庫

圖文 更新时间:2024-12-26 00:28:10

c語言程序設計試題及答案文庫?/* 第一題:n為一個整數(小于10萬),它加上100後是一,下面我們就來聊聊關于c語言程序設計試題及答案文庫?接下來我們就一起去了解一下吧!

c語言程序設計試題及答案文庫(C語言程序設計上機程序題)1

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";

}

*/

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved