2022年C语言复习资料 .pdf
找最小值程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:输入四个整数,输出其中的最小值。例:括号内是说明输入3 (repeat=3)12 6 1 90 10 40 30 20-1-3-4-5 输出min is 1(12 6 1 90 中的最小值是1)min is 10(10 40 30 20 中的最小值是10)min is-5(-1-3-4-5中的最小值是-5)#include int main()int ri,repeat;int number1,number2,number3,number4,min;scanf(%d,&repeat);for(ri=1;rinumber2)min=number2;if(minnumber3)min=number3;if(minnumber4)min=number4;printf(min is%dn,min);将百分制成绩转换为五级成绩程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:输入一个学生的数学成绩(0-100),将它转换为五级记分制成绩后输出。如果输入不正确的成绩,显示“Invalid input”。成绩转换规则如下:90 分 100 分:A 80 分 89 分:B 70 分 79 分:C 60 分 69 分:D 0 分 59 分:E 例:括号内是说明名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 20 页 -输入3 (repeat=3)88 40-10 (成绩分别为88、40 和 10)输出B E Invalid input (输入数据不合法)#include int main()int ri,repeat;int mark;char grade;scanf(%d,&repeat);for(ri=1;ri=0&mark=100)if(mark=90)grade=A;if(mark=80)grade=B;if(mark=70)grade=C;if(mark=60)grade=D;if(mark=0)grade=E;putchar(grade);putchar(n);else printf(Invalid inputn);/*程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:输入 1 个正整数month(1=month=12),代表 2006 年的某个月,输出该月的天数。如果输入不正确的月份,显示“Invalid input”。输出函数:printf(%dn,day)和 printf(Invalid inputn)输入输出示例:例:括号内是说明输入2(repeat=2)10(month=10)20(month=20)输出名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 20 页 -31(2006 年 10 月有 31 天)Invalid input(输入数据不合法)*/#include int main()int ri,repeat;int month,day;scanf(%d,&repeat);for(ri=1;ri=1&month=12)switch(month)case 1:case 3:case 5:case 7:case 8:case 10:case 12:day=31;break;case 2:day=28;break;case 4:case 6:case 9:case 11:day=30;break;printf(%dn,day);else printf(Invalid inputn);实现摄氏温度和华氏温度转换(使用函数)程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:输入 2 个整数 begin 和 end,分别代表摄氏温度的起止值,输出该范围内摄氏温度C和华氏温度 F 的转换表。输出语句:printf(%d%10dn,c,f);要求定义和调用函数ctof(celsius),将摄氏温度C转换为华氏温度F,其中 celsius的类型是 int,函数类型是int。计算公式:F=32+C*9/5。例:括号内是说明输入1 (repeat=1)5 7 输出Celsius Fahrenheit 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 20 页 -5 41 6 42 7 44#include int ctof(int c);int main()int ri,repeat;int begin,c,end,f;scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d%d,&begin,&end);printf(Celsius Fahrenheitn);for(c=begin;c=end;c+)f=ctof(c);printf(%d%10dn,c,f);int ctof(int c)return 32+c*9/5;求(m+n)!/(m!+n!)(使用函数)程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:输入 2 个正整数m 和 n,计算(m+n)!/(m!+n!)(保留4 位小数)。要求定义并调用函数fact(n)计算 n 的阶乘,其中 n 的类型是int,函数类型是double。例:括号内是说明输入:2(repeat=2)名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 20 页 -2 7(m=2,n=7)1 10(m=1,n=10)输出:(2+7)!/(2!+7!)=71.9714(1+10)!/(1!+10!)=11.0000#include stdio.h double fact(int n);int main()int ri,repeat;int i,m,n;double s;scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d%d,&m,&n);s=fact(m+n)/(fact(m)+fact(n);printf(%d+%d)!/(%d!+%d!)=%0.4fn,m,n,m,n,s);double fact(int n)int i;double result;result=1.0;for(i=1;i=n;i+)result=result*i;return result;求 11/41/71/101/13 1/16 程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 20 页 -读入 1 个正实数eps,计算并输出11/41/7 1/10 1/13 1/16,要求精确到最后一项的绝对值小于eps(保留 6 位小数)。#include#include int main()int ri,repeat;int temp,flag;double eps,item,sum;scanf(%d,&repeat);for(ri=1;ri=eps)item=flag*1.0/temp;sum=sum+item;flag=-flag;temp=temp+3;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 20 页 -printf(%.6fn,sum);求 1x*x/2!x*x*x*x/4!x*x*x*x*x*x/6!程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:输入实数x 和正实数eps,计算并输出1x*x/2!x*x*x*x/4!x*x*x*x*x*x/6!,要求精确到最后一项的绝对值小于eps(保留 5 位小数)。例:括号内是说明输入2(repeat=2)0.21 0.1(x=0.21,eps=0.1)-4.1 1E-4(x=-4.1,eps=1E-4)输出0.97795-0.57482#include#include int main()名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 20 页 -int ri,repeat;int flag,i;double denominator,eps,item,numerator,sum,x;scanf(%d,&repeat);for(ri=1;ri=eps)numerator=numerator*x*x;denominator=denominator*(2*i-1)*2*i;item=numerator/denominator;sum=sum+flag*item;flag=-flag;i=i+1;名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 20 页 -printf(%.5fn,sum);求 aaaaaa aaa 程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:输入 2 个正整数a 和 n,求 a+aa+aaa+aaa(n个 a)之和。例:括号内是说明输入2(repeat=2)2 3(a=2,n=3)8 5(a=8,n=5)输出246(2+22+222)98760(8+88+888+8888+88888)#include void main()int ri,repeat;int i,n;long int a,sn,tn;scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 20 页 -scanf(%ld%d,&a,&n);tn=0;sn=0;for(i=1;i=n;i+)tn=tn*10+a;sn=sn+tn;/*-*/printf(%ldn,sn);/*程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:输入 1 个正整数n,计算下式的前n 项之和(保留4 位小数)。要求使用嵌套循环。e=11/1!1/2!.1/n!例:括号内是说明输入:2(repeat=2)2(n=2)10(n=10)输出:2.5000 2.7183*/#include stdio.h int main()int ri,repeat;int i,j,n;float e,t;scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d,&n);e=1;for(i=1;i=n;i+)t=1;for(j=1;j=i;j+)t=t*j;e=e+1.0/t;/*-*/名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 20 页 -printf(%0.4fn,e);程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:将一笔零钱(大于 8 分,小于 1 元,精确到分)换成 1 分、2 分和 5 分的硬币。输入金额,问有几种换法?要求每种硬币至少有一枚。例:括号内是说明输入:2(repeat=2)10(money=10分)13(money=13分)输出:2(10 分有 2 种换法)4(13 分有 4 种换法)#include stdio.h int main()int ri,repeat;int count,fen1,fen2,fen5,money;scanf(%d,&repeat);名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 20 页 -for(ri=1;ri=repeat;ri+)scanf(%d,&money);count=0;for(fen1=1;fen1=money;fen1+)for(fen2=1;fen2=money/2;fen2+)for(fen5=1;fen5=money/5;fen5+)if(fen1+2*fen2+5*fen5=money)count+;/*-*/printf(%dn,count);return 0;程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:输入 2 个正整数m 和 n(1=m,n=500),统计并输出m 和 n 之间的素数的个数以及这些素数的和(素数就是只能被1 和自身整除的正整数,1 不是素数,2 是素数)。例:括号内是说明输入:3(repeat=3)1 10(m=1,n=10)名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 20 页 -20 35(m=20,n=35)14 16(m=14,n=16)输出:count=4,sum=17(1 到 10 之间有 4 个素数:2,3,5,7)count=3,sum=83(20 到 35 之间有 3 个素数:23,29,31)count=0,sum=0(14 到 16 之间没有素数)#include stdio.h#include math.h int main()int ri,repeat;int count,i,j,k,m,n,sum;scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d%d,&m,&n);sum=0;count=0;for(i=m;i=n;i+)k=(int)sqrt(i);for(j=2;jk&i1)count+;sum=sum+i;/*-*/printf(count=%d,sum=%dn,count,sum);return 0;程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:输入 2 个正整数m 和 n(1=m,n=1000),输出 m 到 n 之间的所有满足各位数字的立方和等于它本身的数。输出语句:printf(%dn,i);名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 20 页 -例:括号内是说明输入:2(repeat=2)100 400(m=100,n=400)1 100(m=1,n=100)输出:153(1*1*1+5*5*5+3*3*3=153)370(3*3*3+7*7*7=370)371(3*3*3+7*7*7+1*1*1=371)#include stdio.h int main()int ri,repeat;int i,digit,m,n,number,sum;scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d%d,&m,&n);for(i=m;i=n;i+)sum=0;number=i;do digit=number%10;sum=sum+digit*digit*digit;number=number/10;while(number!=0);if(sum=i)printf(%dn,i);/*-*/return 0;统计一个整数中数字的个数(使用函数)名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 20 页 -程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:读入 1 个整数,统计并输出该数中2 的个数。要求定义并调用函数countdigit(number,digit),它的功能是统计整数number 中数字 digit 的个数。例如,countdigit(10090,0)的返回值是3。例:括号内是说明输入:3(repeat=3)-21902 2 345543 输出:count=2(-21902 中有 2 个 2)count=1(有 1 个 2)count=0(345543中没有 2)#include stdio.h int main()int ri,repeat;int count,digit;long in,number;名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 20 页 -int countdigit(long number,int digit);scanf(%d,&repeat);count=0;for(ri=1;ri=repeat;ri+)scanf(%ld,&in);number=in;digit=2;count=countdigit(number,digit);/*-*/printf(count=%dn,count);int countdigit(long number,int digit)int x,r;r=0;x=1;if(number0)x=number%10;if(x=digit)r+;名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 20 页 -number=number/10;return r;6将一个整数逆序输出程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0repeat10),做 repeat 次下列运算:输入一个整数,将它逆序输出。要求定义并调用函数reverse(number),它的功能是返回number的逆序数。例如 reverse(12345)的返回值是54321。例:括号内是说明输入4(repeat=4)123456-100-2 99 输出654321-1-2 99#include int main()int ri,repeat;long in,res=1,number;long reverse(long number);名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 20 页 -scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%ld,&in);number=in;if(number0)number=number/10;c=c*10;while(x0)r=x%10;c=c/10;s=s+r*c;x=x/10;return s;程序填空,不要改变与输入输出有关的语句。连续输入一批以#结束的字符串(字符串的长度不超过80),遇#则全部输入结束。将每个字符串中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串.#include stdio.h 名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 20 页 -#include string.h#define MAXLEN 80 int main()int i,k;char ch,oldch,strMAXLEN;oldch=;while(ch=getchar()!=#|oldch!=#)k=0;while(ch!=#&k=A&stri=Z)stri=A+Z-stri;/*-*/puts(str);名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 20 页 -程序填空,不要改变与输入输出有关的语句。连续输入一批以#结束的字符串(字符串的长度不超过80),遇#则全部输入结束。统计并输出每个字符串的有效长度。例:括号内是说明输入:hello 12#abc+0#(连续输入2 个字符串 hello 12 和 abc+0)输出:8(hello 12 的有效长度是8)5(abc+0 的有效长度是5)#include stdio.h#define MAXLEN 80 int main()int len,count,i,k;char ch,oldch,strMAXLEN;oldch=;while(ch=getchar()!=#|oldch!=#)k=0;while(ch!=#&k MAXLEN-1)strk+=ch;ch=getchar();oldch=#;strk=0;count=0;for(i=0;stri!=0;i+)count+;len=count;/*-*/printf(%dn,len);名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 20 页 -