湘潭大学C语言整理.docx
- 文档编号:25808521
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:173
- 大小:102.79KB
湘潭大学C语言整理.docx
《湘潭大学C语言整理.docx》由会员分享,可在线阅读,更多相关《湘潭大学C语言整理.docx(173页珍藏版)》请在冰豆网上搜索。
湘潭大学C语言整理
1054平方数
Description
描述
给你一个整数集合A(无重复元素),如果x,y都属于A,且y=x*x,那么
比如说集合A={2,3,4},则只有4=2*2,则答案为1。
输入
每个样例占2行,第一行为一个非负整数n,n<=1000,为集合中元素的个数,如果n为0则输入结束。
第二行为n个整数,为集合的元素,所有的元素为非负整数,且<=100,000,000,两个整数之间有一个空格隔开。
输出
每行输出一个样例的结果。
SampleInput
3
234
5
336596
0
SampleOutput
1
2
#include
#include
#include
intmain()
{
intn,i,i1,i2,x,y,s,str[1001];
while(scanf("%d",&n)==1&&n)
{
s=0;
for(i=0;i { scanf("%d",&str[i]); } for(i1=0;i1 { x=str[i1]*str[i1]; for(i2=0;i2 { y=str[i2]; if(x==y) { s++; } } } printf("%d\n",s); } return0; } 1155整数分类 Description 按照下面方法对整数x进行分类: 如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类。 比如说24,2+4=6,则24的类别数是6;39,3+9=12,1+2=3,则39的类别数是3。 输入 每行输入一个非负整数n,n≤10500,n为0时结束。 输出 每行输出对应整数的分类数。 SampleInput 24 39 0 SampleOutput 6 3 #include #include intmain() { charstr[501]; inti,sum,a; gets(str); while(str[0]! ='0') { for(i=0,sum=0;i { sum+=str[i]-'0'; } while(sum>=10) { a=sum; sum=0; while(a) { sum+=a%10; a=a/10; } } printf("%d\n",sum); gets(str); } return0; } 1157XTU方阵 Description eXtremeTalentUniversity(XTU)需要为他们的校名打印一些特别的图形,为了美观,他们选择了方阵。 现在他们需要你的帮助,帮他把这些方阵打印出来。 如果方阵一边只由一个XTU的校名组成,则方阵为: XTU XTU XTU 输入 每个样例占一行,每行是一个整数n(0<=n<=10),表示一行需要使用多少个校名,n为0是输入结束标志。 输出 对于每个样例,先输出样例序号,比如说第一个样例输出“Case1: ”,换行再输出对应样例的方阵,每个方阵后有一个空行。 SampleInput 1 2 0 SampleOutput Case1: XTU XTU XTU Case2: XTUXTU XTUXTU XTUXTU XTUXTU XTUXTU XTUXTU #include main() { chara[4]={'X','T','U'}; inti,n,k,t,h; i=1; while(scanf("%d",&n)==1&&n) { printf("Case%d: \n",i++); for(h=0;h { for(t=0;t<3;t++) { for(k=0;k { printf("%s",a); } printf("\n"); } } printf("\n"); } } 1058青蛙王子 Description 一个王子被巫师诅咒,变成了一只青蛙。 500年后的一天,青蛙王子碰到了一个仙女,仙女告诉他,如果他能通过一个简单的测试,她就能帮他解除诅咒。 测试是这样子的,仙女要青蛙王子在一条直线上跳跃(青蛙王子最开始站在坐标为0的地方),但只能按照她给定的两种长度跳跃(假设这两种长度王子都能跳到),可以往前或者往后跳,如果能达到指定的地点,那么就通过测试;仙女给定的方式有多种,但有些是不可能满足达到指定地点的。 请你帮帮可怜的青蛙王子,寻找出那些可以完成测试的跳跃方式。 输入 每个样例占一行,为3个整数,都可以用一个unsignedint表示。 前两个表示可以跳跃的长度,最后一个表示需要达到的地点的坐标。 如果三个数为0,表示输入结束。 输出 每行输出一个样例的结果,如果可以到达指定的地点,输出Yes,否则输出No。 SampleInput 259 372 483 000 SampleOutput Yes Yes No #include main() { unsignedinta,b,c; inte,k; for(k=1;;k++) { scanf("%u%u%u",&a,&b,&c); if(a==0&&b==0&&c==0) break; if(a==0&&b==0) printf("No\n"); else { if(a { e=a;a=b;b=e; } while(b! =0) { if(a>b) { e=a;a=b;b=e; } b=b%a; } if(c%a==0) printf("Yes\n"); else printf("No\n"); } } } 1059有多少个1? Description 计算机中存储的整数都是按补码的型式,一个32位有符号整数的补码的定义为: 如果x>=0,则x的补码等于x的二进制表示;如果x<0,那么x的补码为2^32+x的二进制表示。 请根据给定的整数,求出它的补码包含有多少位为1。 输入 每行一个样例,为一个整数(可以用int表示)。 输出 每行输出一个对应样例的结果。 SampleInput 1 0 -1 SampleOutput 1 0 32 #include #definesum4294967296 intmain() { longlonginti,n; intc=0; while(scanf("%I64d",&i)! =EOF) { if(i<0) i=i+sum; while(i! =0) { n=i%2; i=i/2; if(n==1) c++; } printf("%d\n",c); c=0; } return0; } 1062大小写转换 Description 接收一个字母,如果是小写,则将其转换成大写;如果是大写,就将其转换成小写。 SampleInput b SampleOutput B #include main() { charch; scanf("%c",&ch); if(ch>=97&&ch<=122) { ch=ch-32; printf("%c",ch); } else { ch=ch+32; printf("%c",ch); } } 1063输入输出1 Description 请输入一个非负整数,输出其10进制和16进制(使用A-F)的值,中间用逗号隔开,不要输出换行. SampleInput 15 SampleOutput 15,F #include main() { inta; scanf("%d",&a); printf("%d,%X",a,a); } 1064输入输出2 Description 读取一个整数和一个字符并输出它们,中间用逗号隔开,不要输出回车 SampleInput 234H SampleOutput 234,H #include main() { inta;charb; scanf("%d%c",&a,&b); printf("%d,%c",a,b); } 1065io3 Description 1. 读取一个单精度浮点数并输出它(保留小数点后3位) SampleInput 1.23 SampleOutput 1.230 #include main() { floata; scanf("%f",&a); printf("%.3f",a); } 1066io4 Description 1. 读取一个双精度浮点数,并输出它(保留小数点后8位),无须输出换行 SampleInput 1.098765432 SampleOutput 1.09876543 #include main() { doublea; scanf("%lf",&a); printf("%.8lf",a); } 1067io5 Description 输入一个字符,按格式输出这个字符及它的ASCII码 SampleInput A SampleOutput TheASCIIof'A'is65. #include main() { chara; scanf("%c",&a); printf("TheASCIIof'%c'is%d.",a,a); } 1068if语句1 Description 输入一个整数,如果整数在90和100之间,那么输出A;否则输出B。 SampleInput 90 SampleOutput A #include main() { inta; scanf("%d",&a); if((90<=a)&(a<=100)) { printf("A"); } else { printf("B"); } } 1069if语句2 Description 输入整数n,如果n是偶数,则输出“niseven.”,否则输出"nisodd." SampleInput 6 SampleOutput 6iseven. #include main() { intn,a; scanf("%d",&n); a=n%2; if(a==0) { printf("%diseven.",n); } else { printf("%disodd.",n); } } 1070if3 Description 输入一个三位的整数,如果它有且仅有两位数码相同,那么就输出Yes,否则输出No SampleInput 112 SampleOutput Yes #include #include main() { inta,b,c,d; (100<=a)&(a<=999); scanf("%d",&a); b=a/100; c=((a-(a%10))/10)%10; d=a%10; if((b==c&&d! =b)||(b==d&&c! =b)||(c==d&&b! =c)) { printf("Yes"); } else { printf("No"); } } 1071if4 Description 输入三角形的三条边a,b,c;如果构成三角形那么就计算三角形的面积并输出,保留2位小数,否则输出“Notatriangle.” SampleInput 354 SampleOutput 6.00 #include #include main() { inta,b,c,d; (100<=a)&(a<=999); scanf("%d",&a); b=a/100; c=((a-(a%10))/10)%10; d=a%10; if((b==c&&d! =b)||(b==d&&c! =b)||(c==d&&b! =c)) { printf("Yes"); } else { printf("No"); } } 1072switch Description 计算下面函数的值 y=cos(x+3.0) 当0<=x<10; y=(cos(x+7.5))^2当10<=x<20; y=(cos(x+4.0))^4当20<=x<30; ^表示幂运算,如x^2表示x的平方 如果x不在定义域内,输出“Notdefine”,否则输出y,保留5位小数 SampleInput 40 SampleOutput Notdefine #include #include main() { floatx,a,b,c; scanf("%f",&x); a=cos(x+3.0); b=pow(cos(x+7.5),2); c=pow(cos(x+4.0),4); if(0<=x&&x<10) { printf("%.5f",a); } elseif(10<=x&&x<20) { printf("%.5f",b); } elseif(20<=x&&x<30) { printf("%.5f",c); } else { printf("Notdefine"); } } 1073最大最小数 Description 输入3个互不相等的整数a,b,c,请输出最大的和最小的数,中间用一个空格隔开。 SampleInput 123 SampleOutput 31 #include main() { inta,b,c,max,min; scanf("%d%d%d",&a,&b,&c); if(a>b) { max=a,min=b; } else { max=b,min=a; } if(c>max) { max=c; } if(c { min=c; } printf("%d%d",max,min); } 1074求和 Description 第一行是一个整数n(1<=n<=1000),表示有多少个数求和; 第二行是n个整数,每个整数都在-10^5到10^5之间,每个整数之间用空格隔开。 输出和的值(不要输出回车) SampleInput 5 12345 SampleOutput 15 #include #include main() { intn,x,c,sum; sum=0,c=0; scanf("%d",&n); for(x=1;x<=n;x++) { scanf("%d",&c); sum=sum+c; } printf("%d",sum); } 1075求最小公倍数 Description 有多个测试用例,每行两个正整数x,y,保证x*y不超过2^31-1。 如果x与y都为0,则输入结束。 每行输出一个测试用例的结果,即x与y的最小公倍数。 (最后一行有回车) SampleInput 45 36 00 SampleOutput 20 6 #include main() { inti,a,b,q,w; for(i=1;;i++) { scanf("%d%d",&a,&b); if(a==0||b==0)break; w=a*b; if(b>a) { q=a,a=b,a=q; } q=a%b; while(q! =0) { a=b,b=q; q=a%b; } printf("%d\n",w/b); } } 1076素数 Description 对于大于1的自然数,如果n为素数,那么所有大于1且不大于n的平方根的自然数都不能整除n,反之亦然。 所以我们可以通过测试来确定n是否为素数。 现在给出n,要你求是否为素数,是输出Yes,否则输出No 每行一个正整数n,n<=2^32-1,如果n为0,则输入结束。 判断n是否为素数 每行输出一个用例的结果,如果是输出"Yes",否则输出“No” SampleInput 2 3 4 5 6 0 SampleOutput Yes Yes No Yes No #include #include main() { __int64x,i,j,k; i=2; while(scanf("%I64d",&x),x! =0) { j=sqrt((double)x)+1; k=1; for(i=2;i<=j&&k! =0;i++) { k=x%i; } if(i<=j||x==1) printf("No\n"); else printf("Yes\n"); } } 1077数字塔 Description 有多个输入测试用例,每个用例一行,是一个1-9的整数,输入为0则结束。 请输出一个数字塔,若输入是4,则输出的数字塔为: 1 222 33333 4444444 因为有多个样例,那么样例需要先输出一行"case样例号: " 比如第一个样例是3,则输出 case1: 1 222 33333 SampleInput 2 3 0 SampleOutput case1: 1 222 case2: 1 222 33333 #include main() { inti,n,k,t,q,a,m; a=0; while(scanf("%d",&n)==1&&n) { a++; q=n; printf("case%d: \n",a); for(i=1;i<=n;i++) { m=q-1; for(t=0;t { printf("%c",32); } for(k=1;k<=(2*i-1);k++) { printf("%d",i); } printf("\n"); q--; } } } 1078字母三角形 Description 输出形如 ABCDEDCBA ABCDCBA ABCBA ABA A 的字母三角形。 输入有多个样例,每个样例是一行,每行是一个大写字母。 当输入字符是‘#’时结束。 样例前需要输出“case样例号: ”。 如示例所示。 SampleInput C D # SampleOutput case1: ABCBA ABA A case2: ABCDCBA ABCBA ABA A #include main() { charc,n,p; inti,j,k; i=1; while(scanf("%c",&c)&&c! ='#') { printf("case%d: ",i++); putchar('\n'); for(j=0;j<=c-'A';j++) { for(k=0;k printf(""); for(n='A';n<=c-j;n++) printf("%c",n); for(p=c-1-j;p>='A';p--) printf("%c",p); putchar('\n'); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湘潭 大学 语言 整理