C语言程序设计上机程序题 c语言程序设计题解与上机指导
liebian365 2024-10-18 09:31 30 浏览 0 评论
/* 第一题: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%10;
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%13==0&&i%17==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%10;
c=c*10+a;
b=b/10;
}
if(d==c)
cout<<"yes";
else
cout<<"NO";
}
*/
相关推荐
- “版本末期”了?下周平衡补丁!国服最强5套牌!上分首选
-
明天,酒馆战棋就将迎来大更新,也聊了很多天战棋相关的内容了,趁此机会,给兄弟们穿插一篇构筑模式的卡组推荐!老规矩,我们先来看10职业胜率。目前10职业胜率排名与一周前基本类似,没有太多的变化。平衡补丁...
- VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符"
-
首先,程序中头文件的选择,要选择头文件,在文件中是没有对M_PI的定义的。选择:项目——>”XXX属性"——>配置属性——>C/C++——>预处理器——>预处理器定义,...
- 东营交警实名曝光一批酒驾人员名单 88人受处罚
-
齐鲁网·闪电新闻5月24日讯酒后驾驶是对自己和他人生命安全极不负责的行为,为守护大家的平安出行路,东营交警一直将酒驾作为重点打击对象。5月23日,东营交警公布最新一批饮酒、醉酒名单。对以下驾驶人醉酒...
- Qt界面——搭配QCustomPlot(qt platform)
-
这是我第一个使用QCustomPlot控件的上位机,通过串口精确的5ms发送一次数据,再将读取的数据绘制到图表中。界面方面,尝试卡片式设计,外加QSS简单的配了个色。QCustomPlot官网:Qt...
- 大话西游2分享赢取种族坐骑手办!PK趣闻录由你书写
-
老友相聚,仗剑江湖!《大话西游2》2021全民PK季4月激燃打响,各PK玩法鏖战齐开,零门槛参与热情高涨。PK季期间,不仅各种玩法奖励丰厚,参与PK趣闻录活动,投稿自己在PK季遇到的趣事,还有机会带走...
- 测试谷歌VS Code AI 编程插件 Gemini Code Assist
-
用ClaudeSonnet3.7的天气测试编码,让谷歌VSCodeAI编程插件GeminiCodeAssist自动编程。生成的文件在浏览器中的效果如下:(附源代码)VSCode...
- 顾爷想知道第4.5期 国服便利性到底需优化啥?
-
前段时间DNF国服推出了名为“阿拉德B计划”的系列改版计划,截至目前我们已经看到了两项实装。不过关于便利性上,国服似乎还有很多路要走。自从顾爷回归DNF以来,几乎每天都在跟我抱怨关于DNF里面各种各样...
- 掌握Visual Studio项目配置【基础篇】
-
1.前言VisualStudio是Windows上最常用的C++集成开发环境之一,简称VS。VS功能十分强大,对应的,其配置系统较为复杂。不管是对于初学者还是有一定开发经验的开发者来说,捋清楚VS...
- 还嫌LED驱动设计套路深?那就来看看这篇文章吧
-
随着LED在各个领域的不同应用需求,LED驱动电路也在不断进步和发展。本文从LED的特性入手,推导出适合LED的电源驱动类型,再进一步介绍各类LED驱动设计。设计必读:LED四个关键特性特性一:非线...
- Visual Studio Community 2022(VS2022)安装图文方法
-
直接上步骤:1,首先可以下载安装一个VisualStudio安装器,叫做VisualStudioinstaller。这个安装文件很小,很快就安装完成了。2,打开VisualStudioins...
- Qt添加MSVC构建套件的方法(qt添加c++11)
-
前言有些时候,在Windows下因为某些需求需要使用MSVC编译器对程序进行编译,假设我们安装Qt的时候又只是安装了MingW构建套件,那么此时我们该如何给现有的Qt添加一个MSVC构建套件呢?本文以...
- Qt为什么站稳c++GUI的top1(qt c)
-
为什么现在QT越来越成为c++界面编程的第一选择,从事QT编程多年,在这之前做C++界面都是基于MFC。当时为什么会从MFC转到QT?主要原因是MFC开发界面想做得好看一些十分困难,引用第三方基于MF...
- qt开发IDE应该选择VS还是qt creator
-
如果一个公司选择了qt来开发自己的产品,在面临IDE的选择时会出现vs或者qtcreator,选择qt的IDE需要结合产品需求、部署平台、项目定位、程序猿本身和公司战略,因为大的软件产品需要明确IDE...
- Qt 5.14.2超详细安装教程,不会来打我
-
Qt简介Qt(官方发音[kju:t],音同cute)是一个跨平台的C++开库,主要用来开发图形用户界面(GraphicalUserInterface,GUI)程序。Qt是纯C++开...
- Cygwin配置与使用(四)——VI字体和颜色的配置
-
简介:VI的操作模式,基本上VI可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode),各模式的功能区分如下:1)...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- “版本末期”了?下周平衡补丁!国服最强5套牌!上分首选
- VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符"
- 东营交警实名曝光一批酒驾人员名单 88人受处罚
- Qt界面——搭配QCustomPlot(qt platform)
- 大话西游2分享赢取种族坐骑手办!PK趣闻录由你书写
- 测试谷歌VS Code AI 编程插件 Gemini Code Assist
- 顾爷想知道第4.5期 国服便利性到底需优化啥?
- 掌握Visual Studio项目配置【基础篇】
- 还嫌LED驱动设计套路深?那就来看看这篇文章吧
- Visual Studio Community 2022(VS2022)安装图文方法
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)