北工大C语言题库(完美版)
更新时间:2023-09-11 16:25:01 阅读量: 教育文库 文档下载
- 北工大c语言题库推荐度:
- 相关推荐
1 求两个数的和与差
输入整数a和 b,计算并输出a、b的和与差. #include
int a,b,sum,diff;
scanf(\sum=a+b; diff=a-b;
printf(\
printf(\}
2 求平方根
输入 1 个实数 X,计算井输出其平方根(保留1 位小数).(例:输入 17; 输出 The square root of 17.0 is 4.1)
#include
double x,root; scanf(\root=sqrt(x);
printf(\}
3 华氏温度转换为摄氏温度
输入华氏温度 f,计算并输出相应的摄氏温度 c(保留 2 位小数). c = 5/9(f-32).( 例z 括号内是说明输入 17.2 (华氏温度)输出Thc temprature is -8.22) #include
printf(\}
4 计算旅途时间
输入 2 个整数 time1 和 time2. 表示火 车的出发时间和到达时间,计算并输出旅途 时间.有效的时间范围是 0000 到 2359, 不需要考虑出发时间晚于到达时间的情况. #include
int time1,time2,hours,mins; scanf(\time1=time1/100*60+time1 % 100; time2= time2/100*60+time20; hours=(time2-time1)/60; mins=(time2-time1)`;
printf(\}
5 大写字母转换成小写字母
输入一个大写英文字母,输出相应的小写 字母.例:输入 G 输出 g #include
char ch;
scanf(\ch=ch-'A'+'a';
printf(\}
6 显示两级成绩
输入一个正整数 repeat (0
int mark;
scanf(\if(mark>59) printf(\else
printf(\}
7 找最小值
#include
int a,b,c,d,min;
scanf(\min=a;
if(min>b) min=b; if(min>c) min=c; if(min>d) min=d;
printf(\}
8求三角形面积和周长
输入三角形的三条边 a,b,c. 如果能构成 一个三角形,输出面积 area 和周长 perimete 保留 2 位小数);否则,输出(These sides do not correspond to a valid triangle\在一个 三角形中,任意两边之和大于第三边. #include
float a,b,c,area,perimeter,s; scanf (\if(a+b>c&&a-b s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); perimeter=a+b+c; printf (\ printf (\} else printf (\} 9 判断数的符号 输入整数 x,若x 大于 0,y=l;若x 等于0,y=0;否则,y=-I ,最后输出y #include int x,y; scanf(\if(x<0) y=-1; else if(x>0) y=1; else y=0; printf(\} 10 显示水果价格 以下 4 种水果的单价分别是 3.00元/公斤,2.50 元/公斤, 4.10 元/公斤,10.20 元/公斤.[1]apples [2] pears [3] oranges[4] grapes 输入水果的编号,输出该水果的单价(保留 2 位小数). 如果输入不正确 的编号,显示单价为 0. #include int choice; float price; printf(\printf(\ printf(\ printf(\scanf(\ price=(choice== 1)*3+(choice==2)*2.50+( choice==3)*4.1+(choice==4)*10.2; printf(\} 11 读入1 个正整数 n(n<=100) ,计算并输出 1+1/2+1/3+......+ 1/n (保留3 位小数). #include int i,n; float sum; scanf(\sum=0; for(i=1;i<=n;i++) sum=sum+1.0/i; printf(\} 12 求 n 的阶乘 #include int i,n; double fact; scanf(\fact=1; for(i=1;i<=n;i++) { fact=fact*i; } printf(\} 13 求 X 的 n 次幂 #include int i,n; double x,mypow ; scanf(\mypow=1; for (i=1;i<=n;i++) mypow*=x; printf(\} 14 摄氏华氏转换表 #include scanf(\ printf(\ for(c=begin ;c<=end ;c++) { f=32+c*9/5; printf(\ } } 15 求整数的位数以及各位数之和 #include 16 求最大值 #include int i,max,n,x; scanf(\for(i=1;i<=n;i++) { scanf(\if(i==1) max=x; else if(x>max) max=x; } printf(\} 17 求 a+aa+aaa+aa....a #include int i,n; long int a,sn,tn; scanf(\tn=a; sn=0; for(i=1 ;i<=n;i++) { sn+=tn; tn=10*tn+a ; } printf(\} 18 输入 1 个正整数 n,计算s 的前 n项的和(保留 4 位小数)。 #include { int i,n; float s,t; scanf(\s=0; t=1; for(i=1;i<=n;i++) { t=t*1.0/i; s=s+t; } printf(\} 19 求奇数和 #include int i,n,x,sum; printf(\输入数字个数:\scanf(\sum=0; i=1; printf(\输入数字:\ while(i<=n) { i++; scanf(\ if(x%2!=0) sum=sum+x; } printf(\} 20统计素数并求和输入 2 个正整数m 和 n(1<=m,n<=5ω) ,统计并输出m 和 n 之间的素数的个数以及这些素数 的和。 #include int count,digit,i,j,k,m,n,sum; scanf(\sum=0; count=0; if(m<2) m=2; for(digit=m;digit<=n;digit++) { j=sqrt(double(digit)); bool isPrime = true; for(k = 2; k <= j ;++k) { if(digit % k == 0 ) { isPrime = false; break ; } } if(isPrime) { count++; sum += digit; } } printf(\} 22 输入 1 个正整数 n,计算s 的前 n项的和(保留 4 位小数)。 s = 1 + J/2! +....+ l/n! 要求定义并调用函数 fact(n)计算 n 的阶乘. #include int i,n; double s; double fact(int n); scanf(\s=0; for(i=1;i<=n;i++) s+=fact(i); printf(\} double fact(int n) { int j,t=1; double x; for(j=1;j<=n;j++) { t*=j; x=1.0/t; } return (x); } 23统计一个整数中数字的个数 读入 1 个整数,统计并输出该数中2的个数。要求定义并调用函数countdigit(number,digit),它的功能是统计整数 number 中数字digit 的个数. 例如,countdigit(l0090,0)的返回值是 3. #include int count; long in; int countdigit(long number,int digit); scanf(\ count=countdigit(in ,2); printf(\} int countdigit (long number,int digit) { int i,sum; if(number<0) number=-number; sum=0; while(number!=0) { i=number; if(i==2) sum++; number=number/10; } return (sum); } 24 输入 2 个正整数 m 和 n(I<=01,n<=10000) ,输出m 和 n 之 间所有的 Fibonacci 数.. Fibonacci 序列(第 1 项起): 112358 1321 ..?? 要求定义并调用fib(n)时,它的功能是返回第 n项目Fibonacci数. #include printf(\请输入m n:\ scanf(\ for(i=1;;i++) { t=fib(i); if(t>=m&&t<=n) printf(\ else if(t>n)break; } printf(\} int fib(int n) { if (n==1||n==2) return 1; else return fib(n-1)+fib(n-2); } 25 将一个整数逆序输出输入一个整 数,将它逆序输出.要求定义并调用 函数 reverse(number) ,它的功能是返 回number 的逆序数. #include int reverse(int number); scanf(\res=reverse(in); printf(\} int reverse(int number) { int x=0; while(number!=0) { x=x*10+number; number=number/10; } return (x); } 26 十进制转换二进制输入 1 个正 整数 n,将其转换为二进制后输出. 要求定义并调用函数 dectobin(n) ,二进制 #include int i,n; void dectobin(int n); scanf(\ 它的功能是输出 n 的 dectobin(n); printf(\} void dectobin( int n ) { if(n>1) dectobin(n/2); printf(\} 27 统计素数并求和输入2个正整数m和n(1<=m,n<=500),统计并输出m和n之间的素数的个数以及这 些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数).要求定义并调用函数 primc(m)判断 m 是否为素数。 #include int count,i,m,n,sum; int prime(int m); scanf(\count=0; sum=0; for(i=m;i<=n;i++) if(prime(i)) { count++; sum+=i; } printf(\} int prime(int i) { int flag,j; if(i==1) flag=0; else if(i==2) flag=1; else { for(j=2;j else flag=1; } return(flag); } 28 求完数输入 2 个正整数 m 和n(I<=m,n<=1000) ,输出m 到 n 之间的所有完数〈完数就是因子和与它本身相等的数〉要求定义并调用函数factorsum(number) #include long i,m,n; long factorsum(long number); scanf(\for(i=m;i<=n;i++) if(factorsum(i)==i) printf(\} long factorsum(long number) { int j,sum=0; for(j=1;j if(number%j==0&&number!=j) sum+=j; return (sum); } 30 交换最小值和最大值输入一个正 整数 n (1 for(j=0;j max=q[0]; for(k=0;k a=q[0]; b=q[n-1]; q[n-1]=max; q[0]=min; q[temp1]=a; q[temp2]=b; for(int z=0;z printf(\ } return 0; } 31 输入2 个正整数m 和n(1<=m,n<=1000) ,输出m 到 n 之间的所有满足各位数字的立方和等于它 本身的数 #include { int i,m,n; int is(int number); scanf(\for(i=m;i<=n;i++) { if(is(i)); else printf(\} printf(\} int is(int number) { int temp,digit,sum,flag; temp=number; sum=0; while(number!=0) { digit=number; sum=sum+digit*digit*digit; number=number/10; } if(sum==temp) flag=0; else flag=1; return (flag); } 32 输入一个正整 数 repeat (0 printf(\输入执行次数:\scanf(\for(ri=1; ri<=repeat;ri++) { printf(\输入整数个数:\ scanf(\ for(i=0;i for(i=0;i printf(\putchar('\\n'); } } } 33.输入1个正整数 n (1 #include 34 输入一个正整数 n (1 max=q[j]; } } a=q[0]; b=q[n-1]; c=q[temp1]; d=q[temp2]; q[0]=c; q[n-1]=d; q[temp1]=a; q[temp2]=b; for(e=0;e 35.输入一个正整数n (1 36 输入一个以回车结束的字符串(少于 80 个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串 #include { char ch; char str[MAXLEN]; int i; printf(\输入字符:\ ch=getchar(); i=0; while((ch = getchar())!= '\\n') { str[i]= ch; i++; } str[i]=0; for(i=0;str[i]!='\\n';i++) { if(str[i]>='A'&&str[i]<='Z') str[i]='A '+'Z'-str[i]; } printf(\经过改变后: \ printf(\ for(i = 0; str[i] != 0; i++) { putchar(str[i]); putchar('\\n'); } } 37 输入一个以回车结束的字符串(少于 80 个字符),统计并输出其中大写辅音字母的个数。大写辅音字母除:“A”“E”“I”“O”“U”以外的大写字母 #include printf(\} 38 输入一个以回车结束的字符串(少于 80 个字符),将它的内容逆序输出.如\的逆序为\ #include { int i,k,n,m,j; printf(\输入字符数:\ scanf(\ char ch,temp1,temp2; char str[80]; printf(\输入字符串:\ ch=getchar(); i=0; while((ch = getchar())!= '\\n') { str[i]=ch; i++; } k=n-1; for(j=0;j<=k;j++,k--) { temp1=str[j]; temp2=str[k]; str[j]=temp2; str[k]=temp1; } printf(\倒序后字符串为:\ for(i=0;i 输入一个以回车结束的字符串(少于 80 个字符),滤去所有的非十六进 制字符后,组成一个新字符串(十六进制形式),然后将其转换为十进制数后输出.(这个题太吊了,不会做) #include ( char ch; str[MAXLEN], num[MAXLEN]; Int i,k; Int repeat ,ri; Long number; scanf(\,&rcpeat); Getchar(); for(ri = 1; ri <= rcpeat; ri++){ i=0; whilc((ch = getchar()) != '\\n'){ str[i]=ch; i++;} str[i] = 0; /*----------*/ number=0; for(k=0;k if(str[k]>='0'&&str[k]<='9'){ num[k]=str[k]-'0'; number=number*16+num[k]; } else if(str[k]>='a'&&str[k]<='f'){ num[k]=str(k]-'A '+10; Number=number*16+num[k]; } Else If(str*k+>=’A’&&str*k+<=’F’), Num[k]=str[k]-’A’+10; Number=number*16+num[k]; }} Printf(“Dec=%ld\\n”,number);-- 一、阅读程序,写出程序运行时产生的输出结果。 1. 若从键盘输入58,则以下程序段的输出结果是(585858): int main(void) { int a; scanf(“%d”,&a); if (a>50) printf(“%d”,a); if(a>40) printf(“%d”,a); if(a>30) printf(“%d”,a); return 0; } 程序: #include 结果截图: 2. 下列程序运行的输出结果是(9): int main(void) { char c=’b’; int k=4; switch(c) { case ‘a’: k=k+1; break; case ‘b’: k=k+2; case ‘c’: k=k+3; } printf(“%d\\n”,k); return 0; } 程序: #include char c='b'; int k=4; switch(c) { case 'a': k=k+1; break; case 'b': k=k+2; case 'c': k=k+3; } printf(\ return 0; } 二、按照题目要求编写程序 1. 计算摄氏温度 1.1. 题目要求 输入华氏温度f,计算并输出相应的摄氏温度c(保留2位小数)。c = 5/9(f-32). 1.2. 测试结果(输入结束回车符用<回车>表示) (1)输入:17.2<回车> 输出:The temprature is -8.22 (2)输入:40.5<回车> 输出:The temprature is 4.72 程序: #include float c,f; printf(\scanf(\c=5.0/9*(f-32); printf(\} 2. 加密数字 2.1. 题目要求 输入1个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将第1位和第3位上的数字互换,第2位和第4位上的数字互换,组成加密后的新数。 2.2. 测试结果(输入结束回车符用<回车>表示) (1)输入:1257<回车> 输出: The encrypted number is 4601 (2)输入:8961<回车> 输出: The encrypted number is 5078 程序: #include int b[4],t,i; char a[4]; printf( \ gets(a); for(i=0;i<4;i++) b[i]=(a[i]-'0'+9); for(i=0;i<2;i++) {t=b[i]; b[i]=b[i+2]; b[i+2]=t; } t=b[0]*1000+b[1]*100+b[2]*10+b[3]; printf( \ } 3. 输出四个整数中的最小值 3.1. 题目要求 输入四个整数,输出其中的最小值。 3.2. 测试结果(输入结束回车符用<回车>表示) (1)输入:12 6 1 90<回车> 输出:min is 1 (2)输入:-1 -3 -4 -5<回车> 输出:min is -5 程序: #include return (i main() { int a,b,c,d,m; printf(\ scanf(\ m=min(min(min(a,b),c),d); printf(\} 4. 计算个人所得税 4.1. 题目要求 输入一个职工的月薪salary,输出应交的个人所得税tax(保留2位小数)。 tax = rate * (salary-850)/100 当 salary <= 850 时,rate = 0; 当 850 < salary <= 1350 时,rate =0.0 5; 当 1350 < salary <= 2850 时,rate = 0.10; 当 2850 < salary <= 5850 时,rate = 0.15; 当 5850 < salary 时,rate = 0.20; 4.2. 测试结果(输入结束回车符用<回车>表示) (1)输入:800<回车> 输出:tax=0.00 (2)输入:4010<回车> 输出:tax=474.00 (3)输入:2850<回车> 输出:tax=200.00 程序: #include double tax,salary; scanf(\ if(salary<=850) tax=0; else if(850 if(1350 if(2850 if(5850 5. 输出水果单价 5.1. 题目要求 以下4种水果的单价分别是3.00元/公斤,2.50元/公斤,4.10元/公斤,10.20元/公斤。 [1] apples [2] pears [3] oranges [4] grapes 输入水果的编号,输出该水果的单价(保留2位小数)。如果输入不正确的编号,显示单价为0。 5.2. 测试结果(输入结束回车符用<回车>表示) (1)输入:3<回车> 输出: [1] apples [2] pears [3] oranges [4] grapes price=4.10; (2)输入:5<回车> 输出: [1] apples [2] pears [3] oranges [4] grapes price=0.00 程序: #include int choice, i; double price; for(i = 1; i <= 5; i++) { printf(\ printf(\ printf(\ printf(\ scanf(\ switch(choice) { case 1:price=3.0;break; case 2:price=2.5;break; case 3:price=4.1;break; case 4:price=10.2;break; default:price=0; } printf(\} } 6. 输出大小写字母 6.1. 题目要求 输入一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的大写字母;否则,原样输出。 6.2. 测试结果(输入结束回车符用<回车>表示) (1)输入:F<回车> 输出:f (2)输入:y<回车> 输出:Y (3)输入:=<回车> 输出:= 程序: #include char c1,c2; printf(\输入一个字母\\n\ c1=getchar(); if (c1>='a'&&c1<='z') { c2=c1-32; } else { c2=c1+32; } printf(\输出:%c\\n\} 一、读程序写结果 1、 假设输入6<回车>,运行结果是: sum=36 。 2、 (1)运行的结果是: 7 。 (2)fun函数的功能是:把m、n进行两两比较,求最大值。 二、填空题 1. 下面程序的功能是求a的n次方。其中自定义mypow函数计算x的y次方。 程序如下: #include double mypow(double x,int y); printf(“请输入一个数:\\n”); scanf(“%lf”,&a); printf(“请输入次方:\\n”); scanf(“%d”,&n); pow = mypow (a,n); printf(“%.2lf的%d次方为:%.2lf”,a, n, pow); } double mypow(double x,int y) { double s=1; for( ;y>0; y--) s=s*x ;; return s; } 三、 编程题 题目1: 1 + 1/2! +....+ 1/n! 要求:输入1 个正整数n,计算 s 的前n项的和(保留 4 位小数)。 s = 1 + 1/2! +....+ 1/n! 要求定义并调用函数fact(n)计算n的阶乘。 程序: #include double fact(int n) { int main(void) { int i, n, temp; int a[10]; scanf(\ for(i = 0; i < n; i++) scanf(\ for(i=0;i<=(n-1)/2;i++) { temp=a[i]; a[i]=a[n-1-i]; a[n-1-i]=temp; } for(i = 0; i < n; i++) printf(\ printf(\} 4.2. 测试结果(输入结束回车符用<回车>表示,括号内为说明) (1)输入:4 <回车>(n=4) 10 8 1 2<回车> 输出:2 1 8 10 (2)输入:5 <回车> (n=5) 1 2 5 4 0<回车> 输出:0 4 5 2 1 5. 在数组中查找指定的元素 5.1. 题目要求 输入一个正整数 n (1 #include int flag, i, n, x; int a[10]; scanf(\ for(i = 0; i < n; i++) scanf(\ scanf(\ flag=0; for(i=0;i printf( \} 5.2. 测试结果(输入结束回车符用<回车>表示,括号内为说明) (1)输入:6<回车> (n=6) 1 3 5 7 9 5<回车> 5<回车> (x=5) 输出:5: a[2] (2)输入:4<回车> (n=4) 1 3 5 7<回车> 2<回车> (x=2) 输出:2: not found 6. 字符串逆序输出 6.1. 题目要求 输入一个以回车结束的字符串(少于80个字符),将它的内容逆序输出。如\的逆序为\。 程序: #include int i, j, k,temp; char str[80]; i = 0; while((str[i] = getchar( )) != '\\n') i++; str[i] = 0; k=i-1; for(i=0;i 6.2. 测试结果(输入结束回车符用<回车>表示) (1)输入:Welcome to you! <回车> 输出: !uoy ot emocleW (2)输入:Happy New Year!<回车> 输出:!raeY weN yppaH 7. 输出大写辅音字母的个数 7.1. 题目要求 输入一个以回车结束的字符串(少于80个字符),统计并输出其中大写辅音字母的个数。大写辅音字母:除'A', 'E', 'I', 'O', 'U'以外的大写字母。 程序: #include char ch; char str[MAXLEN]; int count, i; getchar(); i = 0; while((ch = getchar()) != '\\n') { str[i++]=ch; } str[i] = 0; count=0; for(i=0;str[i]!='\\0';i++) { if(str[i]!='A' && str[i]!='E'&&str[i]!='I' && str[i]!='O' && str[i]!='U'&& str[i]>='A' &&str[i]<='Z') { count++; } } printf(\} 7.2. 测试结果(输入结束回车符用<回车>表示) (1)输入:HELLO<回车> 输出: count = 2 (\中有2个大写辅音字母) (2)输入:group<回车> (字符'a') 输出:count = 0 (\中没有大写辅音字母) 8.输入10个整数到数组中,将数组中下标值为偶数的元素从小到大排列,其他元素不变。 程序:#include char str[101],t; printf(\ scanf(\ int n=strlen(str); for(int i=0; i t=str[i]; str[i]=str[j]; str[j]=t; } }puts(str); printf(\ 9.从键盘循环输入字符,遇回车结束。统计每个英文字母出现的频率。 (可用一维数组构造26个用于记录每个字母出现次数的累加器。对循环读入的字符,依次判别其是否为英文字母(不区分大小写),是则进行统计,该字母对应的计数器(数组中的对应元素)加1。) #include int i; char j; char a; int b[26]={0}; while ((a = getchar()) != '\\n') { for (j='A';j<='Z';++j) { if (a == j || a == j+('a'-'A')) { b[j-'A']++; } } } for (i=0;i<26;++i) { if (b[i] == 0) { continue; } else { printf(\ } } printf(\} double result; if (n==1 || n==0) result = 1; else result = n * fact(n-1); return result; } 测试结果: 1. 输入:2<回车> 输出:1.5000; 2. 输入:6<回车> 输出:1.7181; 3. 输入:10<回车> 输出:1.7183; 题目2:求a+aa+aaa+aa?a 要求:输入2个正整数a和n, 求a+aa+aaa+aa?a(n个a)之和。 要求定义并调用函数fn(a,n),它的功能是返回aa?a(n个a)。例如,fn(3,2)的返回值是33。 程序: #include int fn(int x,int y) { int result=0; int k; for(k=1;k<=y;k++){ result = result+x; x=10*x; } return result; } 测试结果: 1. 输入:2 3<回车> 输出:246(2+22+222); 2. 输入:8 5<回车> 输出:98760(8+88+888+8888+88888); 题目3: 统计一个整数中数字的个数 要求:读入1 个整数,统计并输出该数中2的个数。 要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。例如,countdigit(10090,0)的返回值是3。 程序: #include int num,dig,k; int countdigit(int number,int digit); printf(\:\ scanf(\ printf(\:\ scanf(\ k = countdigit(num,dig); printf(\中%d重复出现的个数为:%d\\n\ return 0; } int countdigit(int number,int digit) { int a,i=0; if (number<0) number=-number; else number=number; do{ a = number % 10; number = number-a; number=number/10; if(a==digit){ i++; } }while(number>0); return i; } 测试结果:(digit输入2) 1. 输入:-21902<回车> 输出:2(-21902中有2个2); 2. 输入:2<回车> 输出:2(2中有1个2); 3. 输入:345543<回车> 输出:0(345543中没有2); 题目4:判断素数 要求:输入一个正整数n,如果它是素数,输出\,否则,输出\(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 要求定义并调用函数prime(m)判断m是否为素数。 程序: #include int prime(int m) { int i,result=1; for(i=2;i 测试结果: (1)输入:1 <回车>输出: NO (1不是素数) (2)输入:2<回车>输出:YES (2是素数) (3)输入:9<回车>输出:NO(9不是素数) 题目5:统计素数并求和 要求:输入2 个正整数m和n(1<=m,n<=500),统计并输出m 和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 要求定义并调用函数prime(m)判断m是否为素数。 程序: #include int prime(int x) { int i,result=1; for(i=2;i 测试结果: (1)输入:1 10<回车>(m=1, n=10) 输出:count=4, sum=17 (1到10之间有4个素数:2,3,5,7) (2)输入:20 35<回车> (m=20, n=35) 输出:count=3, sum=83 (20到35之间有3个素数:23, 29, 31) (3)输入:14 16<回车>(m=14, n=16) 输出:count=0, sum=0 (14到16之间没有素数) 题目6:求m到n之间所有完数 要求:输入2 个正整数m和n(1<=m,n<=1000),输出m 到n之间的所有完数(完数就是因子和与它本身相等的数)。 要求定义并调用函数factorsum(number),它的功能是返回number的因子和。例如,factorsum (12)的返回值是16(1+2+3+4+6)。 程序: #include int factorsum(int number) { int x,y=1; for(x=2;x 测试结果: (1)输入:20 500<回车>输出:28 496 (2)输入:1 100<回车>输出:1 6 28 题目7:求各位数字的立方和等于它本身的数 要求:输入2 个正整数m和n(1<=m,n<=1000),输出m 到n之间的所有满足各位数字的立方和等于它本身的数。 要求定义并调用函数is(number)判断number的各位数字之立方和是否等于它本身。 程序: #include int is(int number) { int a,b,c,t,k; a=number; b=(number/10); c=number/100; k=a*a*a+b*b*b+c*c*c; if(number==k) t=1; return t; } 测试结果: (1)输入:100 400<回车>(说明:即m=100, n=400) 输出:153 370 371 (说明:1*1*1+5*5*5+3*3*3=153; 3*3*3+7*7*7=370; 3*3*3+7*7*7+1*1*1=371) (2)输入:1 100<回车> (说明:即m=1, n=100) 输出:1 题目8:将一个整数逆序输出 要求:输入一个整数,将它逆序输出。 要求定义并调用函数reverse(number),它的功能是返回number的逆序数。例如reverse(12345)的返回值是54321。 程序: #include int reverse(int number){ int result=0; do{ result=result*10+number; number=number/10; }while(number<0||number>0); return result; } 测试结果: (1)输入:123456<回车>输出:654321 (2)输入:-100<回车>输出:-1 (3)输入:99<回车>输出:99 题目9:求的前30项之和, 要求定义并调用函数fact(n)计算n! 程序: #include double fact(int n) { double result; if (n==1 || n==0) result = 1; else result = n * fact(n-1); return result; } 前30项之和 = 4,503,822,735,103,803,000,000,000,000,000 一、阅读程序 1. #include { #define NUM 6; int fib[6]; int i; fib[0]=0; fib[1]=1; for (i=2; i for (i=0; i } (1) 程序的运行结果是: 0 1 1 2 3 5 (2) 简述程序的主要功能:输入一个六个数的数组,每一项为前两项的和,计算并输出所有数,每输出三个数换行输出 2.#include { int a[8]={11,12,13,14,15,16,17,18}; int i=0,sum=0; while(i<=7){ if(a[i]%2==1) sum=sum+a[i]; i++; } printf(\return 0; } (1) 程序的功能是: 计算并输出八个数的数组中所有奇数的和 (2) 输出结果是:56 3.#include { float s[6]={1,3,5,7,9}; float x; int i; scanf(“%f”,&x); for(i=4;i>=0;i--) if(s[i]>x) s[i+1]=s[i]; else break; printf(“%d\\n”,i+1); return 0; } (1) 如果输入4,则输出:2 (2)如果输入5,则输出:3 4.#include { int a[10],max,min,i,sum; for(i=0;i<10;i++) scanf(“%d”,&a*i+); max=min=sum=a[0]; for(i=1;i<10;i++) { sum=sum+a[i]; if(a[i]>max) max=a[i]; if(a[i] printf(\} (1) 若在程序运行时输入: 3 1 4 7 10 8 9 2 6 5 <回车> 程序的输出结果是:max=10,min=1,sum=55 (2) 简述程序的主要功能:输入一个十个数的数组,计算并输出这个数组中的最大值、最小值、所有数加起来的和 5.#include int i,result=1; for (i=2; i<=m/2; i++) if (m % i==0) result =0; if (m==1) result =0; returnresult; } void main() { int a[10],i,sum=0; for(i=0;i<10;i++) { scanf(\count=count+prime(a[i]); } printf(\} (1) 若在程序运行时输入: 1 2 3 4 5 6 7 8 9 10<回车> 程序的运行结果为:4 (2) 简述prime函数的主要功能:判断一个数是不是质数,是质数输出1,不是质数输出0 二、程序填空题 下列程序的功能是:求出数组x中各相邻两个元素的和一次存放到数组a中,然后输出. #include int x[10],a[9],i; for (i=0;i<10;i++) scanf(“%d”,&x*i+); for(i=1;i<10;i++) a[i-1]=x[i]+x[i-1]; for (i=0;i<9;i++) printf(“%d”,a*i+); } 三、程序设计 1. 交换最小值和最大值 1.1. 题目要求: 输入一个正整数n (1 #include p=0; for(i=1;i 1.2. 测试结果(输入结束回车符用<回车>表示) (1)输入:5 4 3 5 1 2<回车> 输出:1 3 2 4 5 (2)输入:4 1 5 6 7<回车> 输出:1 5 6 7 (3)输入:5 5 4 3 2 1<回车> 输出:1 4 3 2 5 2. 选择法排序 2.1. 题目要求: 输入一个正整数n (1 #include int n=0; int a[10]={0}; int i,j; scanf(\ for(i=0;i for(i=0;i 2.2. 测试结果(输入结束回车符用<回车>表示) (1)输入:4 <回车> (n=4) 5 1 7 6<回车> 输出:After sorted: 7 6 5 1 (2)输入:5 <回车> (n=5) 5 4 3 2 1 <回车> 输出:After sorted: 5 4 3 2 1 3. 简化的插入排序 3.1. 题目要求: 输入一个正整数 n(0 #include int i, j, n, x; int a[10]; scanf(\ for(i=0;i 3.2. 测试结果(输入结束回车符用<回车>表示,括号内为说明) (1)输入:5<回车>(数据的个数n=5) 1 2 4 5 7<回车> (5个有序整数) 3<回车> (待插入整数x=3) 输出:1 2 3 4 5 7 (2)输入:4<回车> (数据的个数n=4) 1 2 5 7<回车> (4个有序整数) -10<回车> (待插入整数x=-10) 输出:-10 1 2 5 7 4. 将数组中的数逆序存放 4.1. 题目要求: 输入一个正整数 n (1 #include
正在阅读:
北工大C语言题库(完美版)09-11
水利工程堤坝防渗及加固措施探讨11-22
权力的媒介读书笔记09-29
19北舞考研复试分数线、招收人数、西方现代舞史纲美国“后现代舞时期”和德国现代舞的发展名词解释名词解释12-20
人教版化学九年级上册说课设计 4-4 化学式和化合价说课稿06-24
激光头伺服技术讲座05-30
教学使用导学案 - 图文03-11
河南省三门峡市“人保财险杯”2013年高三学生综合能力竞赛英语试题507-27
实用上海话900句05-14
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 北工大
- 题库
- 语言
- 完美
- 电解与极化作用
- 中小学资料九年级数学上册 3.6 弧长及扇形面积的计算 旋转中的弧长素材(新版)青岛版
- 土建监理细则案例
- 运筹学试题及答案(共两套)
- 2018-2019学年精编系列高中化学必修一课堂达标练:3-2-3铁的重要化合物 Word版含解析
- 基于A - SPNET技术0A系统预算子系统 - 的设计与实现毕业论文
- 鼻韵母发音训练
- 初三毕业教师代表发言(精选多篇)
- alsa(audio)驱动分析
- 2015年上海杨浦区控江中学高三月考试卷(含答案)
- 教师招聘考试 - 第一版如何说课
- 文明服务示范点管理办法
- 《阿甘正传》词汇整理讲解
- 证券法教案(1)
- 新闻是事实不是观点记者要独立于公众情绪
- 烟气中CO2回收
- 12.2三角形全等的判定(第1课时) - 图文
- 基于PHP的网上书店系统设计与实现--毕业论文 - 图文
- 房屋建筑学 - 图文
- 上海市浦东区2014年中考二模物理试题(WORD版)