北工大c语言题库完整.docx
- 文档编号:17183293
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:41
- 大小:882.81KB
北工大c语言题库完整.docx
《北工大c语言题库完整.docx》由会员分享,可在线阅读,更多相关《北工大c语言题库完整.docx(41页珍藏版)》请在冰点文库上搜索。
北工大c语言题库完整
求1+1/2!
+....+1/n!
#include"stdio.h"
intmain()
{
intri,repeat;
inti,n;
doubles;
doublefact(intn);
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
s=0;
for(i=1;i<=n;i++)
s=s+1/fact(i);
printf("%0.4f\n",s);
}
return0;
}
doublefact(intn)
{
inti;
doubleresult;
result=1;
for(i=1;i<=n;i++)
result=result*i;
returnresult;
}
统计一个整数中数字的个数
#include"stdio.h"
intmain()
{
intri,repeat;
intcount;
longin;
intcountdigit(longnumber,intdigit);
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%ld",&in);
count=countdigit(in,2);
printf("count=%d\n",count);
}
}
intcountdigit(longnumber,intdigit)
{
inti,count=0,t;
if(number<0)
number=-number;
for(i=1;;i++){
t=number%10;
if(t==digit)count++;
number=number/10;
if(number==0)
break;
}
returncount;
}
统计素数并求和
#include"stdio.h"
#include"math.h"
intmain()
{
intri,repeat;
intcount,i,m,n,sum;
intprime(intm);
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%d",&m,&n);
sum=0;count=0;
for(i=m;i<=n;i++){
if(prime(i)==1){
count++;
sum=sum+i;
}
}
printf("count=%d,sum=%d\n",count,sum);
}
}
intprime(intm)
{
inti;
if(m==1)return0;
if(m>1){
for(i=2;i<=m/2;i++){
if(m%i==0){
return0;
}
}
if(i>m/2)return1;
}
}
求完数
#include"stdio.h"
intmain()
{
intri,repeat;
inti,m,n;
longfactorsum(intnumber);
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++){
if(i==factorsum(i))
printf("%d",i);
}
printf("\n");
}
}
longfactorsum(intnumber)
{
inti,sum=0;
if(number==1)return1;
for(i=1;i if(number%i==0) sum=sum+i; } returnsum; } 输出Fibonacci序列 #include"stdio.h" #include"math.h" intmain() { intri,repeat; inti,m,n; longf; longfib(intn); scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d%d",&m,&n); for(i=1;;i++){ f=fib(i); if(f>=m&&f<=n)printf("%ld",f); if(f>n)break; } printf("\n"); } return0; } longfib(intn) { inti,a=1,b=1,t; if(n==1)return1; if(n==2)return1; for(i=3;i<=n;i++){ t=a+b; a=b; b=t; } returnt; } 求各位数字的立方和等于它本身的数 #include"stdio.h" intmain() { intri,repeat; inti,m,n; intis(intnumber); scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d%d",&m,&n); for(i=m;i<=n;i++){ if(i==is(i)) printf("%d",i); } printf("\n"); } return0; } intis(intnumber) { intt,sum=0; do{ t=number%10; sum=sum+t*t*t; number=number/10; }while(number! =0); returnsum; } 将一个整数逆序输出 #include intmain() { intri,repeat; longin,res,k; longreverse(longnumber); scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%ld",&in); if(in<0){ in=-in; k=1; } elsek=0; res=reverse(in); if(k==1) res=-res; printf("%ld\n",res); } } longreverse(longnumber) { inta,b; b=0; while(number! =0){ a=number%10; b=b*10+a; number=number/10; } returnb; } 循环移动(调试示例error08_1) #include voidmov(int*x,intn,intm); intmain(void) { inti,m,n,*p; inta[80]; scanf("%d%d",&n,&m); for(i=0;i scanf("%d",&a[i]); mov(a,n,m); printf("Aftermove: "); for(i=0;i printf("%d",a[i]); printf("\n"); } voidmov(int*x,intn,intm) { inti,j,k; for(i=0;i k=x[n-1]; for(j=n-1;j>0;j--) x[j]=x[j-1]; x[0]=k; } } 在数组中查找指定元素 #include intmain(void) { inti,index,n,res,x; intrepeat,ri; inta[10]; intsearch(intlist[],intn,intx); scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d",&n); for(i=0;i scanf("%d",&a[i]); scanf("%d",&x); res=search(a,n,x); if(res! =-1) printf("index=%d\n",res); else printf("Notfound\n"); } } intsearch(intlist[],intn,intx) { inti,res; res=-1; for(i=0;i if(list[i]==x) res=i; returnres; } 使用函数的选择法排序 #include voidsort(inta[],intn); intmain(void) { inti,n; intrepeat,ri; inta[10]; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d",&n); for(i=0;i scanf("%d",&a[i]); sort(a,n); printf("Aftersorted: "); for(i=0;i printf("%d",a[i]); printf("\n"); } } voidsort(int*p,intn) { intk,i,index,t; for(k=0;k index=k; for(i=k+1;i if(p[i] index=i; t=p[index]; p[index]=p[k]; p[k]=t; } } 使用函数删除字符串中的字符 #include voidmain() { charc; charstr[80]; intrepeat,ri; voiddelchar(char*str,charc); scanf("%d",&repeat); getchar(); for(ri=1;ri<=repeat;ri++){ gets(str); scanf("%c",&c); getchar(); /*---------*/ delchar(str,c); printf("result: "); puts(str); } } /*---------*/ voiddelchar(char*str,charc) { inti,j; for(i=j=0;str[i]! ='\0';i++){ if(str[i]! =c) str[j++]=str[i]; } str[j]='\0'; } 使用函数实现字符串复制 #include #include voidmain() { chars[80],t[80]; intm; intrepeat,ri; voidstrmcpy(char*s,char*t,intm); scanf("%d",&repeat); getchar(); for(ri=1;ri<=repeat;ri++){ gets(t); scanf("%d",&m); getchar(); if(strlen(t) printf("errorinput"); else{ /*---------*/ strmcpy(s,t,m); puts(s); } } } voidstrmcpy(char*s,char*t,intm) { inti,j; j=0; for(i=m-1;t[i]! ='\0';i++) s[j++]=t[i]; s[j]='\0'; } /*---------*/ 判断回文字符串 #include voidmain() { chars[80]; intrepeat,ri; intmirror(char*p); scanf("%d",&repeat); getchar(); for(ri=1;ri<=repeat;ri++){ gets(s); if(mirror(s)! =0) printf("YES\n"); else printf("NO\n"); } } /*---------*/ intmirror(char*p) { char*q; q=p; while(*q! ='\0') q++; p--; while(p if(*p! =*q) return0; p++; q--; } return1; } 分类统计字符个数 #include voidmain() { chars[80]; char*p; intblank,digit,lower,other,upper; gets(s); upper=lower=blank=digit=other=0; /*---------*/ for(p=s;*p! ='\0';p++) if(*p>='A'&&*p<='Z') upper++; elseif(*p>='a'&&*p<='z') lower++; elseif(*p>='0'&&*p<='9') digit++; elseif(*p=='') blank++; else other++; printf("upper: %dlower: %dblank: %ddigit: %dother: %d\n",upper,lower,blank,digit,other); } 显示水果的价格 #include intmain(void) { intri,repeat; intchoice; floatprice; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ printf("[1]apples\n"); printf("[2]pears\n"); printf("[3]oranges\n"); printf("[4]grapes\n"); scanf("%d",&choice); if(choice==0) printf("price=0"); switch(choice){ case1: price=3.00;break; case2: price=2.50;break; case3: price=4.10;break; case4: price=10.20;break; } printf("price=%.2f\n",price); } return0; } 求n! #include intmain(void) { intri,repeat; inti,n; doublefact; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d",&n); fact=1; for(i=1;i<=n;i++) fact=fact*i; printf("%.0f\n",fact); } return0; } 求最大值 #include intmain() { intri,repeat; inti,max,n,x; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d",&n); max=n; for(i=1;i<=n;i++){ scanf("%d",&x); if(max max=x; } printf("%d\n",max); } return0; } 求整数的位数以及各位数之和 #include intmain() { intri,repeat; intnumber,sum; longin; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ number=0; sum=0; scanf("%ld",&in); if(in<0) in=-in; do{ sum=sum+in%10; in=in/10; number++; }while(in! =0); printf("number=%d,sum=%d\n",number,sum); } } 求a+aa+aaa+aa…a #include voidmain() { intri,repeat; inti,n; longinta,sn,tn; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%ld%d",&a,&n); sn=a;tn=a; for(i=1;i<=n-1;i++){ tn=10*tn+a; sn=sn+tn; } printf("%ld\n",sn); } } 求平均值 #include intmain(void) { inti,n,sum; intrepeat,ri; inta[10]; doubleaver; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d",&n); sum=0; for(i=0;i scanf("%d",&a[i]); sum=sum+a[i]; } aver=sum/(n*1.0); printf("average=%.2f\n",aver); } } 交换最小值和最大值 #include intmain(void) { inti,index,n,t; intrepeat,ri; inta[10]; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d",&n);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北工大 语言 题库 完整
![提示](https://static.bingdoc.com/images/bang_tan.gif)