C语言上机练习题图文稿_第1页
C语言上机练习题图文稿_第2页
C语言上机练习题图文稿_第3页
C语言上机练习题图文稿_第4页
C语言上机练习题图文稿_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]C语言上机练习题输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。#include"stdio.h"main(){longn;intww,qw,bw,sw,gw;printf("Pleaseinput:\n");scanf("%ld",&n);while(n<=0||n>99999) { printf("\nThenumberistoolittleortoolarge.Retryplease!\n"); scanf("%ld",&n); }if(n>=10000&&n<=99999) { ww=n/10000; qw=n/1000%10; bw=n/100%10; sw=n/10%10; gw=n%10; printf("Theoldnumberis:%ld\n",n); printf("Thenewnumberis:%d%d%d%d%d\n",gw,sw,bw,qw,ww); }elseif(n>=1000&&n<=9999) { qw=n/1000; bw=n/100%10; sw=n/10%10; gw=n%10; printf("Theoldnumberis:%ld\n",n); printf("Thenewnumberis:%d%d%d%d\n",gw,sw,bw,qw); } elseif(n>=100&&n<=999) { bw=n/100; sw=n/10%10; gw=n%10; printf("Theoldnumberis:%ld\n",n); printf("Thenewnumberis:%d%d%d\n",gw,sw,bw); } elseif(n>=10&&n<=99) { sw=n/10; gw=n%10; printf("Theoldnumberis:%ld\n",n); printf("Thenewnumberis:%d%d\n",gw,sw); } elseprintf("Theoldnumberequalsthenewnumber:%ld",n);}计算1+2+3…+n的值,n是从键盘输入的自然数。/*Note:YourchoiceisCIDE*/#include"stdio.h"main(){intn,i;longsum=0;printf("1+2+3+....+n\n");printf("Pleaseinputn:\n");scanf("%d",&n);for(i=1;i<=n;i++){ sum+=i;}printf("sum=%ld",sum);}从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。、/*Note:YourchoiceisCIDE*/#include"stdio.h"#defineN20main(){ inta[N],i,sum=0,count=0; printf("Pleaseinputnumbers:\n"); for(i=0;i<N;i++) { scanf("%d",&a[i]); if(a[i]>0) { sum+=a[i]; count++; } } printf("count=%d,sum=%d",count,sum);}从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各元素的值。/*Note:YourchoiceisCIDE*/#include"stdio.h"#defineN5main(){ inta[N],b[N],i; printf("Pleaseinputnumbers:\n"); for(i=0;i<N;i++) { scanf("%d",&a[i]); b[N-i-1]=a[i]; } printf("\nTheoldnumbersare:\n"); for(i=0;i<N;i++) printf("%-4d",a[i]); printf("\nThenewnumbersare:\n"); for(i=0;i<N;i++) printf("%-4d",b[i]);}要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。/*Note:YourchoiceisCIDE*/#include"stdio.h"main(){ inti,j,k,n; for(i=1;i<=10;i++) for(j=1;j<=25;j++) for(k=1;k<=50;k++) for(n=1;n<=100;n++) if(i*50+j*20+k*10+n*5==500) printf("num50=%d,num20=%d,num10=%d,num5=%d\n",i,j,k,n);}求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。例如若n为1000时,函数值应为:s=153.909064。/*Note:YourchoiceisCIDE*/#include"stdio.h"#include"math.h"main(){ intn,s,i; floatsum=0; printf("Pleaseinputn:\n");scanf("%d",&n);while(n<=0) { printf("\nErrorinput.Retryplease:\n"); scanf("%d",&n); }for(i=1;i<n;i++) if(i%3==0&&i%7==0) sum+=i; printf("Thenumberis:%4.2f",sqrt(sum));}一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。/*Note:YourchoiceisCIDE*/#include"stdio.h"#include"math.h"main(){inti,qw,bw,sw,gw;for(i=1122;i<=9988;i++) { if(sqrt(i)!=(int)sqrt(i)) continue; qw=i/1000; bw=i/100%10; sw=i/10%10; gw=i%10; if(qw==bw&&sw==gw) { printf("\nThenumberis:%d\n",i); break; } }输入1~10之间的一个数字,输出它对应的英文单词。/*Note:YourchoiceisCIDE*/#include"stdio.h"main(){ intn; printf("Pleaseinputn:\n"); scanf("%d",&n); while(n<1||n>10) { printf("Errorinput!Retryplease:\n"); scanf("%d",&n); } switch(n) { case1:printf("One!");break; case2:printf("Two!");break; case3:printf("Three!");break; case4:printf("Four!");break; case5:printf("Five!");break; case6:printf("Six!");break; case7:printf("Seven!");break; case8:printf("Eight!");break; case9:printf("Nine!");break; case10:printf("Ten!");break; }}个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些?/*Note:YourchoiceisCIDE*/#include"stdio.h"main(){inti,count=0;for(i=106;i<596;i=i+10){ if(i%3==0&&i%5!=0) { printf("%-4d",i); count++; }}printf("count=%-4d",count);}用自然语言描述程序逻辑如下,试写程序。① 设置环境;② 定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0;③ i=1;④ 如果i≤100,则转⑤,否则转⑧;⑤ 令s=0,求前i个自然数之和,并放于变量s之中;⑥ sum=sum+s;⑦ i增加1,转④;输出和sum,结束。/*Note:YourchoiceisCIDE*/#include"stdio.h"main(){ inti,j;longs=0,sum=0;printf("1+1+2+1+2+3+1+2+3+4+....1+2+3+..+n\n");i=1;while(i<=3){ s+=i; sum+=s; i++;}printf("sum=%ld",sum);}用自然语言描述的程序逻辑为:① 设置环境;② 定义变量i、flag和password,并令flag=0,i=0;③ 用户回答口令,将其赋于password变量;④ 口令正确?如果是,则flag=1,转⑥。否则转⑤;⑤ 回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥;根据flag之值输出相应信息。/*Note:YourchoiceisCIDE*/#include"stdio.h"#include"string.h"#defineN6main(){inti=0,flag=0;charpassword[N];printf("Thepasswordis:123456\n"); while(i<3){ gets(password); if(strlen(password)!=6) { printf("Thestringlengthiswrong!Retryplease!\n"); i++; continue; } if(strcmp("123456",password)==0) {flag=1;break;} else{printf("Wronginput!Retryplease!\n");i++;} }if(flag==1) printf("Rightpassword!\n");elseprintf("Wrongpassword!\n");}用自然语言描述的程序逻辑如下:① 设置环境;② 定义变量digit、x、y分别表示原始数、原始数的个位数和逆数;③ 输入原始正整数x;④ 从x中分解出个位数字digit;⑤ 合并个位digit至逆数y中;⑥ 原始数x缩小10倍:x=x/10;⑦ 如果x非零,则转④;输出逆数y,结束/*Note:YourchoiceisCIDE*/#include"stdio.h"main(){ longdigit,x,y;/*个位数、原始数、逆数*/ printf("Pleaseinputtheoldnumber:\n"); scanf("%ld",&x); digit=x%10; y=digit; while(x!=0) { x=x/10; digit=x%10; y=y*10+digit; } printf("x=%ld,y=%ld",x,y/10);}输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构成)。/*Note:YourchoiceisCIDE*/#include"stdio.h"main(){floata,b,c,flag;/*flag=0不能,flag=1等边,flag=2等腰,flag=3任意*/printf("Pleaseinputangles:\n");scanf("%f,%f,%f",&a,&b,&c);if(a+b<=c||a+c<=b||b+c<=a) flag=0;elseif(a==b&&b==c) flag=1; elseif(a==b||b==c||c==a) flag=2; elseflag=3;if(flag==0)printf("\nCannot!\n");if(flag==1)printf("\nDengBian.\n");if(flag==2)printf("\nDengYao.\n");if(flag==3)printf("\nPutong.\n");}输入10个数,分别统计其中正数、负数、零的个数。#include"stdio.h"#defineN10main(){ inta[N]; inti,count1=0,count2=0,count3=0;/*count1记录正数个数,count2记录负数个数,count3记录0的个数*/ printf("Pleaseinputnumbers:\n"); for(i=0;i<N;i++) { scanf("%d",&a[i]); if(a[i]>0) count1++; if(a[i]<0) count2++; if(a[i]==0) count3++; }printf("count1=%-4d,count2=%-4d,count3=%-4d",count1,count2,count3);}先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)/*Note:YourchoiceisCIDE*/#include"stdio.h"#defineN100#include<time.h>#include<stdlib.h>main(){ inta[N],i; printf("Pleaseinputnumbers:\n"); randomize(); for(i=0;i<N;i++){ a[i]=random(900)+100; printf("%-4d",a[i]);}printf("\n--------------------\n");printf("\n3,5,7:\n");for(i=0;i<N;i++) if(a[i]%3==0&&a[i]%5==0&&a[i]%7==0) printf("%-4d",a[i]);}用for编程找出100~200中的完全平方数。#include"stdio.h"#include"math.h"main(){inti;for(i=100;i<=200;i++) if(sqrt(i)==i%100) printf("%-4d",i);}从终端输入三个正实数,判断这三个数能否构成直角三角形。#include"stdio.h"main(){floata,b,c,flag;/*flag=0不能,flag=1能*/printf("Pleaseinputangles:\n");scanf("%f,%f,%f",&a,&b,&c);while(a<=0||b<=0||c<=0) { printf("Wronginput!Retryplease:\n"); scanf("%d,%d,%d",&a,&b,&c); }if(a+b<=c||b+c<=a||a+c<=b) flag=0; elseif(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b) flag=1; elseflag=0;if(flag==1) printf("\nCan!"); elseprintf("\nCannot!");}输入一行字符,统计其中有多少个字母(包括大写字母和小写字母)。/*Note:YourchoiceisCIDE*/#include"stdio.h"#defineN10#include"stdlib.h"#include"ctype.h"#include"string.h"main(){charc[N];inti,count=0;gets(c);i=0;while(i!=strlen(c)){ if(isupper(c[i])||islower(c[i])) count++; i++;}printf("count=%-4d",count);getch();}输入一个字串,判断它是否是对称串。如”abcdcba”是对称串,””不是。/*Note:YourchoiceisCIDE*/#include"stdio.h"#include"string.h"#include"ctype.h"#include"stdlib.h"#defineN10main(){ chara[N],b[N],i; printf("Pleaseinputthestring:\n"); gets(a); if(strlen(a)>N) { printf("Wronginput!Retryplease!\n"); gets(a); } strcpy(b,a); strrev(a); if(strcmp(a,b)==0) printf("\nYes!\n"); elseprintf("\nNo!\n");}随机产生N个大写字母输出,然后统计其中共有多少个元音字符。(设N为200)/*Note:YourchoiceisCIDE*/#include"stdio.h"#include<stdlib.h>#include<time.h>#defineN200main(){intc[N],i,count=0;randomize();for(i=0;i<N;i++){c[i]=random(27)+65;printf("%c",c[i]);if(c[i]=='A'||c[i]=='E'||c[i]=='I'||c[i]=='O'||c[i]=='U')count++;}printf("\n----------------------\n");printf("\ncount=%-4d",count);}找出三位自然数中的所有素数,要求判断x素数用自定义函数data(x)实现。#include"stdio.h"intdata(intx);main(){inti,flag=0;/*1是,0否*/for(i=101;i<=999;i++){flag=data(i);if(flag==1)printf("%-4d",i);}} intdata(intx){inti;for(i=2;i<x/2;i++)if(x%i==0)return0;if(i==x/2)return1;elsereturn0;}输出n行由“#”组成的矩形,每行“#”的个数为m个,其中n、m由终端(键盘)输入。要求输出m个“#”功能由函数satr(m)函数实现。#include"stdio.h"voidsatr(intm);main(){ inti,n,m; printf("Pleaseinputn&m:\n"); printf("n="); scanf("%d",&n); printf("m="); scanf("%d",&m);printf("\n----------------\n");for(i=1;i<=n;i++) { satr(m); printf("\n"); }}voidsatr(intm){ inti; for(i=1;i<=m;i++) printf("#"); }若ax2+bx+c=0有实根,则求之。#include"stdio.h"#include"math.h"main(){inta,b,c;floatderta,x1,x2;printf("Pleaseinputa,b,c:\n");printf("a=");scanf("%d",&a); printf("b="); scanf("%d",&b); printf("c="); scanf("%d",&c); derta=b*b-4*a*c; if(derta<0) printf("NO!\n"); if(derta==0) { printf("One!\n"); x1=-b/(2*a); x2=x1; printf("x=%-4.2f",x1); } if(derta>0) { printf("Two!\n"); x1=(-b+sqrt(derta))/(2*a); x2=(-b-sqrt(derta))/(2*a); printf("x1=%-4.2f,x2=%-4.2f",x1,x2); }}从键盘输入两个字串,判断它们是否相同。#include"stdio.h"#include"string.h"#defineN20main(){ charc1[N],c2[N]; printf("Pleaseinputtwostringbelow:\n"); gets(c1); gets(c2); printf("--------------------\n"); printf("Theansweris:"); if(strcmp(c1,c2)==0) printf("Equal!\n"); elseprintf("Notequal!\n");}从键盘输入两个字串,输出其中较短的那个字串,并输出它的长度。#defineN20#include"stdio.h"#include"string.h"main(){ charc1[N],c2[N]; printf("Pleaseinputtwostringbelow:\n"); gets(c1); gets(c2); printf("--------------------\n"); printf("Theansweris:"); if(strlen(c1)==strlen(c2)) { puts(c1); puts(c2); printf("Thelengthis:%d\n",strlen(c1)); } if(strlen(c1)<strlen(c2)) { puts(c1); printf("Thelengthis:%d\n",strlen(c1)); } if(strlen(c1)>strlen(c2)) { puts(c2); printf("Thelengthis:%d\n",strlen(c2)); }从键盘输入长度不等的两个字串,将短串连接于长串之后输出。#include"stdio.h"#include"string.h"#defineN20main(){charc1[N],c2[N];printf("Pleaseinputtwostringbelow:\n");gets(c1);gets(c2);while(strlen(c1)==strlen(c2)){printf("Wronginput!Retryplease:\n");gets(c1);gets(c2);}printf("--------------------\n");printf("Theansweris:");if(strlen(c1)<strlen(c2))puts(strcat(c2,c1));if(strlen(c1)>strlen(c2))puts(strcat(c1,c2));}从键盘输入长度不等的两个字串,将长串连接于短串之后输出#include"stdio.h"#include"string.h"#defineN20main(){ charc1[N],c2[N]; printf("Pleaseinputtwostringbelow:\n"); gets(c1); gets(c2); while(strlen(c1)==strlen(c2)) { printf("Wronginput!Retryplease:\n"); gets(c1); gets(c2); } printf("--------------------\n"); printf("Theansweris:"); if(strlen(c1)<strlen(c2)) puts(strcat(c1,c2)); if(strlen(c1)>strlen(c2)) puts(strcat(c2,c1)); }随机产生N个两位自然数,降序排列后输出。(设N为20)#include"stdio.h"#include"stdlib.h"#include"time.h"#defineN20main(){ inta[N],i,j,temp; randomize(); for(i=0;i<N;i++) a[i]=random(900)+100; for(i=0;i<N-1;i++) for(j=i+1;j<N;j++) if(a[j]>a[i]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } for(i=0;i<N;i++) printf("%-4d",a[i]);}从键盘输入两个字串,输出其中较长的那个字串,并输出它的长度。#defineN20#include"stdio.h"#include"string.h"main(){ charc1[N],c2[N]; printf("Pleaseinputtwostringbelow:\n"); gets(c1); gets(c2); printf("--------------------\n"); printf("Theansweris:"); if(strlen(c1)==strlen(c2)) { puts(c1); puts(c2); printf("Thelengthis:%d\n",strlen(c1)); } if(strlen(c2)<strlen(c1)) { puts(c1); printf("Thelengthis:%d\n",strlen(c1)); } if(strlen(c2)>strlen(c1)) { puts(c2); printf("Thelengthis:%d\n",strlen(c2)); } }从键盘输入10个战士的身高,输出平均身高,并找出哪些身高低于平均身高。#include"stdio.h"#defineN11main(){ floata[N],sum=0; inti; printf("Pleaseinputheigths:\n");for(i=0;i<N-1;i++) { scanf("%f",&a[i]); sum+=a[i]; }a[N-1]=sum/(N-1);printf("Theaverageis:%-6.2f\n",a[N-1]);printf("---------------------\n");printf("Theanswerare:\n");for(i=0;i<N-1;i++) if(a[i]<a[N-1]) printf("%-8.2f",a[i]);}从键盘输入10个战士的身高,输出平均身高,并找出哪些身高高于平均身高。#include"stdio.h"#defineN11main(){ floata[N],sum=0; inti; printf("Pleaseinputheigths:\n");for(i=0;i<N-1;i++) { scanf("%f",&a[i]); sum+=a[i]; }a[N-1]=sum/(N-1);printf("Theaverageis:%-6.2f\n",a[N-1]);printf("---------------------\n");printf("Theanswerare:\n");for(i=0;i<N-1;i++) if(a[i]>a[N-1]) printf("%-8.2f",a[i]);}从键盘输入10个战士的身高,输出最高、最低的身高#include"stdio.h"#defineN10main(){ floata[N],min=99999,max=-99999; inti; printf("Pleaseinputheigths:\n");for(i=0;i<N;i++) scanf("%f",&a[i]); printf("---------------------\n");for(i=0;i<N;i++){ if(a[i]>max) max=a[i]; if(a[i]<min) min=a[i];}printf("max=%-6.2f,min=%-6.2f",max,min);}。“百钱百鸡”问题。百钱买百鸡,鸡翁一值钱三,鸡母一值钱二,鸡雏三值钱一,问鸡翁、鸡母、鸡雏各几何?

#include"stdio.h"main(){ intjw,jm,jc; /*公鸡最多100/3=33只,母鸡最多100/2=50只,小鸡最多300只*/ for(jw=1;jw<=33;jw++) for(jm=1;jm<=50;jm++) for(jc=1;jc<=300;jc++) if(jw*3+jm*2+jc/3==100&&jw+jm+jc==100) printf("JW=%d,JM=%d,JC=%d\n",jw,jm,jc)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论