求1000以内的完数C语言

合集下载

C语言经典算法题目及答案

C语言经典算法题目及答案

C语言经典算法题目及答案题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k)printf("%d,%d,%d\n",i,j,k);}}====================================== ========================【程序2】题目:企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}====================================== ========================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

2022年齐鲁工业大学公共课《C语言》科目期末试卷B(有答案)

2022年齐鲁工业大学公共课《C语言》科目期末试卷B(有答案)

2022年齐鲁工业大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、若有以下定义和语句,为使变量c1得到字符’A',变量c2得到字符’B’,正确的输入形式是_______。

char cl,c2;scanf("%4c%4c",&cl,8&c2);2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是3、在C语言源程序中,一个变量代表【】。

4、把以下多项式写成只含7次乘法运算,其余皆为加、减运算的C语言表达式为_______。

5x7+3x6-4x5+2x1+x3-6x2+x+105、C语言中的标识符可分为关键字、_______和_______3类。

6、设x是一个整数(16bit),若要通过xly使x低8位置1,高8位不变,则y的八进制数是_______。

7、下面程序段中循环体的执行次数是_______。

a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);8、设有以下宏定义:#define WIDTH 80#define LENGTH WIDTH+40则执行赋值语句:v=LENGTH*20;(v为int型变量)后,v的值是_______。

9、若有定义floata[3][5];则a数组所含数组元素个数是_______,a数组所占的字节数是_______。

10、以下程序的运行结果是_______。

#include <stdio.h>int main(){char s[]="ab\'cdefg\",*p=s+1;printf("%c”,*(p++));printf("%s",p+2);return(0);}二、选择题11、已知字母A的ASCII码为十进制数65,且定义c2为字符型变量,则执行语句c2='A'+'6'-'3';后,c2中的值为( )。

C语言求完数(完全数)

C语言求完数(完全数)

C语言求完数(完全数)问题描述求某一范围内完数的个数。

如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。

例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。

问题分析根据完数的定义,解决本题的关键是计算出所选取的整数i(i的取值范围不固定)的因子(因子就是所有可以整除这个数的数),将各因子累加到变量s (记录所有因子之和),若s等于i,则可确认i为完数,反之则不是完数。

算法设计对于这类求某一范围(由于本题范围不固定,在编程过程中采用键盘输入的方式)内满足条件的数时,一般釆用遍历的方式,对给定范围内的数值一个一个地去判断是否满足条件,这一过程可利用循环来实现。

本题的关键是求出选取数值i的因子,即从1到i-1范围内能整除i的数,看某一个数j是否为i的因子,可利用语句if(i%j==0)进行判断,求某一个数的所有因子,需要在1到i-1范围内进行遍历,同样釆用循环实现。

因此,本题从整体上看可利用两层循环来实现。

外层循环控制该数的范围2〜n;内层循环j控制除数的范围为1〜i,通过i对j取余,是否等于0,找到该数的各个因子。

另外应注意每次判断下一个选定数之前,必须将变量s的值重新置为0,编程过程中一定要注意变量s重新置0的位置。

程序流程图:下面是完整的代码:1.#include<stdio.h>2.int main()3.{4.int i, j, s, n;/*变量i控制选定数范围,j控制除数范围,s记录累加因子之和*/5.printf("请输入所选范围上限:");6.scanf("%d",&n);/* n的值由键盘输入*/7.for( i=2; i<=n; i++)8.{9. s=0;/*保证每次循环时s的初值为0*/10.for( j=1; j<i; j++)11.{12.if(i%j ==0)/*判断j是否为i的因子*/13. s += j;14.}15.if(s == i)/*判断因子这和是否和原数相等*/16.printf("It's a perfect number:%d\n", i);17.}18.return0;19.}运行结果:请输入所选范围上限:10000↙︎It's a perfect number:6It's a perfect number:28It's a perfect number:496It's a perfect number:8128知识点补充上述程序中求某数的因子时,釆用从1到i-1范围内进行遍历的方法,一个数一个数地去试。

2011年计算机二级C语言编写程序题及答案解析精选1

2011年计算机二级C语言编写程序题及答案解析精选1

2011年计算机二级C语言编写程序题及答案解析精选【4.1】已知银行整存整取存款不同期限的月息利率分别为:0.315%期限一年0.330%期限二年月息利率=0.345%期限三年0.375%期限五年0.420%期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。

【4.2】输入年份year和月month,求该月有多少天。

判断是否为闰年,可用如下C语言表达式:year%4==0&&year0!=0||year@0==0。

若表达式成立(即表达式值为1),则year 为闰年;否则,表达式不成立(即值为0),year为平年。

【4.3】编写一个简单计算器程序,输入格式为:data1op data2。

其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。

【4.4】输入n值,输出如图所示矩形。

【4.5】输入n值,输出如图所示平行四边形。

【4.6】输入n值,输出如图所示高为n的等腰三角形。

【4.7】输入n值,输出如图所示高为n的等腰三角形。

【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。

【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。

【4.10】输入n值,输出如图所示边长为n的空心正六边型。

【4.11】输入n值,输出如图所示图形。

【4.12】输入n值,输出如图所示图形。

【4.13】输入n值,输出如图所示图形。

【4.14】输入n值,输出如图所示图形。

【4.15】输入n值,输出如图所示图形。

【4.16】输入n值,输出如图所示图形。

(例为n=6时)【4.17】编写程序,输出如图所示sin(x)函数0到2π的图形。

【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。

【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。

若屏幕的横向为x轴,纵向为y 轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。

C语言编辑作业二(1)

C语言编辑作业二(1)
int main()
{
int n;
for(n=100;n<=200;n++)
if(n%3!=0)
printf("%3d\n",n);
return 0;
}
2.编写一函数fun,实现矩阵(3行3列)的转置(即行列互换)。
#include<stdio.h>
#define N 3
float b[3][3];
#include<stdio.h>
int main()
{int i,n,s1,s2,s3;
for(i=1,s1=0,s2=0,s3=0;i<=100;i++)
{scanf("%d",&n);
if(n>0) s1=s1+1;
if(n<0) s2=s2+1;
if(n==0) s3=s3+1;
}
printf("s1=%d s2=%d s3=%d\n",s1,s2,s3);
printf("\n");
t=a[0]+a[1]+a[9];
for(i=1;i<9;i++)
{b=a[i-1]+a[i]+a[i+1];
if(t>b)
t=b;
}
printf("The smallest number is:%6.2f\n",t);
return 0;
}
4.编程判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no。
}
int cpy(char s[],int m)

C语言第六章复习题(含答案)

C语言第六章复习题(含答案)

1.t为int类型,进入下面的循环之前,t的值为0while( t=l ){ ……}则以下叙述中正确的是( B )(A) 循环控制表达式的值为0 (B) 循环控制表达式的值为1(C) 循环控制表达式不合法(D) 以上说法都不对2.有以下程序main( ){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf(“%d\n”,s);}程序执行后的输出结果是 ( D )。

(A) 自然数1~9的累加和 (B) 自然数1~10的累加和(C) 自然数1~9中的奇数之和 (D) 自然数1~10中的偶数之和3.以下程序段的输出结果是( C )。

int x=3;do{ printf("%3d",x-=2); }while(!(- -x));(A)1 (B)30 (C)1 -2 (D)死循环4.以下程序中,while循环的循环次数是( D)。

main(){ int i=0;while(i<10){ if(i<1) continue;if(i==5) break;i++;}......}(A) 1 (B) 10(C) 6 (D) 死循环,不能确定次数5.下面程序的输出是( B )。

(A)741 (B)852 (C)963 (D)875421main(){int y=9;for(;y>0;y--){if(y%3==0){printf("%d",--y);continue;}}}6.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是( A)。

for (i=5;i;i--)for(j=0;j<4;j++){...}(A)20 (B)25 (C)24 (D)307.执行语句: for(i=l;i++<4;;);后,变量i的值是(C)。

(A) 3 (B) 4 (C) 5 (D) 不定8.假定a和b为int型变量,则执行以下语句后b的值为( D )。

C语言程序设计试题与答案-

C语言程序设计试题与答案-

《C语言程序设计》试题(闭卷)一、单项选择题:(每题 2 分,共 30 分)1. C 语言规定:在一个源程序中,main函数的位置_____________。

A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后2. 下列说法中错误的是_____________。

A. 主函数可以分为两个部分:函数头和函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行3. 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将_____________。

A. 生成目标文件B. 生成可执行目标文件C. 输出运行结果D. 自动保存源文件4. 以下选项中,不正确的 C 语言浮点型常量是_____________。

A. 160.B. 0.12C. 2e4.2D. 0.05. 以下用户标识符中,合法的是_____________。

A. intB. nitC. 123D. a+b6. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为_____________。

A. 算术运算、关系运算、赋值运算B. 算术运算、赋值运算、关系运算C. 关系运算、赋值运算、算术运算D. 关系运算、算术运算、赋值运算7. 设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是_____________。

A. 1,1B. 0,1C. 1,0D. 0,08. sizeof (char)的结果值是_____________。

A. 4B. 2C. 1D.出错9. 设 a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是_____________。

A. 10<a<15B. a= =11|| a= =12 || a= =13 || a= =14C. a>10 && a<15D. !(a<=10) && !(a>=15)10. 要为字符型变量 a赋初值,下列语句中哪一个是正确的_____________。

大一C语言题库

大一C语言题库

一、编程大题1.有一函数:当x〈0时,y=-1;当x=0时,y=0;当x>0时,y=1。

编一程序,输入x的值,输出y的值。

#include<stdio。

h〉int main(){int x,y;scanf(”%d”,&x);if (x>=0)if (x>0)y=1;else y=0;else y=-1;printf("x=%d,y=%d\n",x,y);return 0;}2.输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数.#include 〈stdio。

h〉int main(){ float a,b,c,t;scanf("%f,%f,%f”,&a,&b,&c);if(a〈b){t=a;a=b; b=t;}if(a〈c){t=a;a=c; c=t;}if(b<c){ t=b;b=c; c=t; }printf(”%5.2f,%5。

2f,%5.2f\n",a,b,c);return 0;}3.有三个整数a,b,c,由键盘输入,输出其中最大者.#include〈stdio.h〉int main(){int a,b,c,max;printf(”请输入a,b,c\n”);scanf(”%d,%d,%d",&a,&b,&c);max=a;if(max<b)max=b;if(max〈c)max=c;printf("最大的数为%d\n",max);return 0;}4。

编程求圆面积、圆周长。

要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。

{float r,l,s;float pi=3.1415926;printf(”表输入圆半径r:”);scanf(”%f", &r);l=2*pi*r;s=pi*r*r;printf(”圆周长为:l=%6。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档