收藏 分销(赏)

2024年北工大c语言题库.doc

上传人:天**** 文档编号:8190428 上传时间:2025-02-07 格式:DOC 页数:62 大小:913.54KB 下载积分:14 金币
下载 相关 举报
2024年北工大c语言题库.doc_第1页
第1页 / 共62页
2024年北工大c语言题库.doc_第2页
第2页 / 共62页


点击查看更多>>
资源描述
求1 + 1/2! +....+ 1/n! #include "stdio.h" int main( ) { int ri,repeat; int i,n,j; float s,t; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d",&n); s=0; for(i=1;i<=n;i++){ t=1; for(j=1;j<=i;j++) t=t*j; s=s+1.0/t; } printf("%0.4f\n",s); } } #include "stdio.h" int main( ) { int ri,repeat; int i,n; double s; double fact(int n); 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); } return 0; } double fact(int n) { int i; double result; result=1; for(i=1;i<=n;i++) result=result*i; return result; } 统计一个整数中数字的个数 #include "stdio.h" int main( ) { int ri,repeat; int count; long in; int countdigit(long number, int digit); scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%ld",&in); count=countdigit(in,2); printf("count=%d\n",count); } } int countdigit(long number, int digit) { int i,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; } return count; #include "stdio.h" #include "math.h" int main( ) { int ri,repeat; int count, digit, i, j, k, m, n, sum; scanf("%d",&repeat); for(ri=1;ri<=repeat;ri++){ scanf("%d%d", &m, &n); count=0; sum=0; digit=0; for(i=m;i>=m&&i<=n;i++) { for(j=2;j<=n/2;j++) if(i%j==0) break; if(j>i/2&&i!=1) {count++; sum=sum+i;} } printf("count=%d,sum=%d\n", count, sum); } } } 统计素数并求和 #include "stdio.h" #include "math.h" int main( ) { int ri,repeat; int count, i, m, n, sum; int prime(int m); 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); } } int prime(int m) { int i; if(m==1)return 0; if(m>1){ for(i=2;i<=m/2;i++){ if(m%i==0){ return 0; } } if(i>m/2) return 1; } } 求完数 #include "stdio.h" int main( ) { int ri,repeat; int i, m, n; long factorsum(int number); 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"); } } long factorsum(int number) { int i,sum=0; if(number==1) return 1; for(i=1;i<number;i++){ if(number%i==0) sum=sum+i; } return sum; } Fibonacci序列的前十项 X1=1; X2=1; Printf(“%6d%6d”,x1,x2); For(i=1;i<=8;i++){ X=x1+x2; Printf(“%6d”,x); X1=x2; X2=x; 输出 Fibonacci 序列 #include "stdio.h" #include "math.h" int main( ) { int ri,repeat; int i, m, n; long f; long fib(int n); 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"); } return 0; } long fib(int n) { int i,a=1,b=1,t; if(n==1) return 1; if(n==2) return 1; for(i=3;i<=n;i++){ t=a+b; a=b; b=t; } return t; } 求各位数字的立方和等于它自身的数 #include "stdio.h" int main( ) { int ri,repeat; int i, m, n; int is(int number); 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"); } return 0; } int is(int number) { int t,sum=0; do{ t=number%10; sum=sum+t*t*t; number=number/10; }while(number!=0); return sum; } 将一个整数逆序输出 #include <stdio.h> int main( ) { int ri, repeat; long in, res,k; long reverse(long number); scanf("%d", &repeat); for(ri=1; ri<=repeat; ri++){ scanf("%ld", &in); if(in<0){ in=-in; k=1; } else k=0; res=reverse(in); if(k==1) res=-res; printf("%ld\n", res); } } long reverse(long number) { int a,b; b=0; while(number!=0){ a=number%10; b=b*10+a; number=number/10; } return b; } 循环移动(调试示例error08_1) #include <stdio.h> void mov(int *x, int n, int m); int main(void) { int i, m, n,*p; int a[80]; scanf("%d%d", &n, &m); for(i = 0; i < n; i++) scanf("%d", &a[i]); mov(a,n,m); printf("After move: "); for(i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); } void mov(int *x,int n,int m) { int i,j,k; for(i=0;i<m;i++){ k=x[n-1]; for(j=n-1;j>0;j--) x[j]=x[j-1]; x[0]=k; } } 在数组中查找指定元素 #include <stdio.h> int main(void) { int i, index, n, res, x; int repeat, ri; int a[10]; int search(int list[], int n, int x); scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%d", &n); for(i = 0; i < n; i++) scanf("%d", &a[i]); scanf("%d", &x); res=search(a,n,x); if(res != -1) printf("index = %d\n", res); else printf("Not found\n"); } } int search(int list[],int n,int x) { int i,res; res=-1; for(i=0;i<n;i++) if(list[i]==x) res=i; return res; } 使用函数的选择法排序 #include <stdio.h> void sort(int a[],int n); int main(void) { int i, n; int repeat, ri; int a[10]; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%d", &n); for(i = 0; i < n; i++) scanf("%d", &a[i]); sort(a,n); printf("After sorted: "); for(i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); } } void sort(int *p,int n) { int k,i,index,t; for(k=0;k<n-1;k++){ index=k; for(i=k+1;i<n;i++) if(p[i]<p[index]) index=i; t=p[index]; p[index]=p[k]; p[k]=t; } } 使用函数删除字符串中的字符 #include<stdio.h> void main() { char c; char str[80]; int repeat, ri; void delchar(char *str, char c); scanf("%d", &repeat); getchar(); for(ri = 1; ri <= repeat; ri++){ gets(str); scanf("%c", &c); getchar(); /*---------*/ delchar(str,c); printf("result: "); puts(str); } } /*---------*/ void delchar(char *str,char c) { int i,j; for(i=j=0;str[i]!='\0';i++){ if(str[i]!=c) str[j++]=str[i]; } str[j]='\0'; } 使用函数实现字符串复制 #include<stdio.h> #include<string.h> void main() { char s[80], t[80]; int m; int repeat, ri; void strmcpy(char *s,char *t, int m); scanf("%d", &repeat); getchar(); for(ri = 1; ri <= repeat; ri++){ gets(t); scanf("%d", &m); getchar(); if(strlen(t) < m) printf("error input"); else{ /*---------*/ strmcpy(s,t,m); puts(s); } } } void strmcpy(char *s,char *t,int m) { int i,j; j=0; for(i=m-1;t[i]!='\0';i++) s[j++]=t[i]; s[j]='\0'; } /*---------*/ 判断回文字符串 #include <stdio.h> void main() { char s[80]; int repeat, ri; int mirror(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"); } } /*---------*/ int mirror(char *p) { char *q; q=p; while(*q!='\0') q++; p--; while(p<q){ if(*p!=*q) return 0; p++; q--; } return 1; } 分类统计字符个数 #include<stdio.h> void main() { char s[80]; char *p; int blank, digit, lower, other, upper; gets(s); upper = lower = blank = digit = other = 0; /*---------*/ for(p=s;*p!='\0';p++) if(*p>='A'&&*p<='Z') upper++; else if(*p>='a'&&*p<='z') lower++; else if(*p>='0'&&*p<='9') digit++; else if(*p==' ') blank++; else other++; printf("upper: %d lower: %d blank: %d digit: %d other: %d\n", upper, lower, blank, digit, other); } 显示水果的价格 #include <stdio.h> int main(void) { int ri, repeat; int choice; float price; 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){ case 1:price=3.00;break; case 2:price=2.50;break; case 3:price=4.10;break; case 4:price=10.20;break; } printf("price=%.2f\n", price); } return 0; } 求n! #include <stdio.h> int main(void) { int ri, repeat; int i, n; double fact; 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); } return 0; } 求最大值 #include <stdio.h> int main( ) { int ri, repeat; int i , 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<x) max=x; } printf("%d\n", max); } return 0; } 求整数的位数以及各位数之和 #include <stdio.h> int main( ) { int ri, repeat; int number, sum; long in; 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 <stdio.h> void main() { int ri, repeat; int i, n; long int a, 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 <stdio.h> int main(void) { int i, n, sum; int repeat, ri; int a[10]; double aver; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%d", &n); sum=0; for(i = 0; i < n; i++){ scanf("%d", &a[i]); sum=sum+a[i]; } aver=sum/(n*1.0); printf("average = %.2f\n", aver); } } 互换最小值和最大值 #include <stdio.h> int main(void) { int i, index, n, t; int repeat, ri; int a[10]; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%d", &n); for(i = 0; i < n; i++) scanf("%d", &a[i]); index=0; for(i=0;i<n;i++) if(a[i]<a[index]) index=i; t=a[0]; a[0]=a[index]; a[index]=t; for(i=0;i<n;i++) if(a[i]>a[index]) index=i; t=a[n-1]; a[n-1]=a[index]; a[index]=t; printf("After swap: "); for(i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); } } 将数组中的数逆序存储 #include <stdio.h> int main(void) { int i, n, temp; int repeat, ri; int a[10]; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%d", &n); for(i = 0; i < n; i++) scanf("%d", &a[i]); for(i=0;i<n/2;i++){ temp=a[i]; a[i]=a[n-1-i]; a[n-1-i]=temp; } for(i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); } } 选择法排序 #include <stdio.h> int main(void) { int i, index, k, n, temp; int repeat, ri; int a[10]; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%d", &n); for(i = 0; i < n; i++) scanf("%d", &a[i]); for(k=0;k<n-1;k++){ index=k; for(i=k+1;i<n;i++) if(a[i]>a[index])index=i; temp=a[index]; a[index]=a[k]; a[k]=temp; } printf("After sorted: "); for(i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); } } 调试示例error09_1.cpp #include <stdio.h> int main (void) { int i, n; struct emp{ char name[10]; double jbg; double fdg; double zc; } s[10]; scanf("%d", &n); for(i=0;i<n;i++) scanf("%s%lf%lf%lf",s[i].name,&s[i].jbg,&s[i].fdg,&s[i].zc); for (i = 0; i < n; i++) printf ("%5s 实发工资:%7.2f\n", s[i].name, s[i].jbg + s[i].fdg - s[i].zc); return 0; } 计算平均成绩 #include <stdio.h> int main(void) { int i, n; double average, sum=0; struct student{ int num; char name[10]; int score; }s[10]; scanf("%d", &n); for(i=1;i<=n;i++){ scanf("%d%s%d",&s[i].num,s[i].name,&s[i].score); sum=sum+s[i].score; } average=sum/n; printf("average: %.2f\n", average); } 查找书籍 #include <stdio.h> int main (void) { int i, max_index, min_index, n; double x; struct book{ char name[50]; double price; }book[10]; scanf("%d", &n); getchar(); for(i = 0; i < n; i++){ gets(book[i].name); scanf("%lf", &x); getchar(); book[i].price = x; } min_index=0; for(i=0;i<n;i++){ if(book[i].price<book[min_index].price){ min_index=i; } } max_index=0; for(i=0;i<n;i++){ if(book[i].price>book[max_index].price){ max_index=i; } } printf("highest price: %.1f, %s\n", book[max_index].price, book[max_index].name); printf("lowest price: %.1f, %s\n", book[min_index].price, book[min_index].name); return 0; } 找出总分最高的学生(改错题error09_2) #include <stdio.h> int main (void) { int i, j, k, max_index, n; struct student{ int number; char name[20]; int score[3]; int sum; }stu[10]; scanf("%d", &n); /*---------*/ for(i=0;i<n;i++){ scanf("%d",&stu[i].number); scanf("%s",stu[i].name); scanf("%d",&stu[i].score[0]); scanf("%d",&stu[i].score[1]); scanf("%d",&stu[i].score[2]); stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]; } max_index=0; for(i=0;i<n;i++){ if(stu[i].sum>stu[max_index].sum)max_index=i; } printf("总分最高的学生是: %s,%d分", stu[max_index].name, stu[max_index].sum); } 计算两个复数之积 #include <stdio.h> int main(void) { struct complex{ int real; int imag; }product, x, y; scanf("%d%d%d%d", &x.real, &x.imag, &y.real, &y.imag); product.real=x.real*y.real-x.imag*y.imag; product.imag=x.real*y.imag+y.real*x.imag; printf("(%d+%di) * (%d+%di) = %d + %di\n", x.real, x.imag, y.real, y.imag, product.real, product.imag); return 0; } #include<stdio.h> Int main(void) { Printf(“Hello World!\n
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服