《c语言和计算机二级复习资料(包含113道例题和详细答案).doc》由会员分享,可在线阅读,更多相关《c语言和计算机二级复习资料(包含113道例题和详细答案).doc(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流1.2.3.4.5.6.7. c语言和计算机二级复习资料(包含113道例题和详细答案)【精品文档】第 47 页8. 输入两个正整数,m和n,求其最大公约数和最小公倍数。9. 输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。10. 输入一个正整数求出它是几位数;输出原数和位数。11. 输入一个正整数,输出原数并逆序打印出各位数字。12. 从键盘上输入若干学生的一门课成绩,统计并输出最高成绩和最低成绩及相应的序号,当输入负数时结束输入。13. 从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。将结果输出。14. 求1!+2!
2、+3!+20!,将结果输出。15. 打印以下图案: *16. 打印以下图案: 17. 求下列试子的值:1-1/2+1/3-1/4+1/99-1/100,将结果输出。18. 打印出100999之间的所有水仙花数。19. 求Sn(Sn)=a+aa+aaa+aaa之值,n,a由键盘输入。20. 打印以下图案:14.打印以下图案: 1 121 12321 123432115. 打印以下图案: 1234321 12321 121 116.编写一个统计学生成绩程序,完成以下功能:输入4个学生的2门课成绩;求出全班的总平均分,将结果输出。17. 打印以下图案:18.给出年、月、日,计算该日是该年的第几天。1
3、9.求一个3*3的整型矩阵对角线元素之和。将原矩阵和求出的和输出。20.求一个4*3的矩阵各行元素的平均值;将原矩阵和求出的平均值全部输出。21.求一个3*4的矩阵各列元素的平均值;将原矩阵和求出的平均值全部输出。22.求一个3*5的矩阵各列元素的最大值,将原矩阵和求出的最大值全部输出。23.求一个4*3的矩阵各行元素的最大值,将原矩阵和求出的最大值全部输出。24.求一个M*N的矩阵中元素的最大值,将原矩阵和求出的最大值全部输出。25.判断一个N*N的矩阵是否为对称矩阵,将原矩阵输出,判断结果输出。26.有一篇文章,有三行文字,每行有80个字符。要求统计出其中英文大写字母、消协字母、数字、空格
4、以及其他字符的个数。27.将20个整数放到一维数组中,输出该数组的最大值和最小值。28.将15个整数放到一维数组中,输出该数组中的最大值它的下标,然后将它和数组中的最前面的元素对换。29.将字符数组str1种下标为偶数的元素赋给另一字符数组str2,并输出str1和str2。30.编写一个程序,将两个字符串连接起来,不要使用strcat函数。31.编写一个程序,将字符数组a中的全部字符复制到字符数组b中。不要使用strcpy函数。32.编写一个程序,找出3个字符串中的最大者,将它输出。33.编写程序,输入任意一个17之间的整数,将他们转换成对应的英文单词。例如:1转换成Monday,7转换成S
5、unday。34.编写程序,输入两个整数,和+、-、*、/之中的任意一个运算符,输出计算结果。35.输入年号,计算这一年的2月份的天数,将结果输出。36.输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,若能,计算面积。37. 输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,何种类型的三角形:等腰、等边、直角、等腰直角、一般。38.输入奖金数a,计算并输出税率、应缴税款和实得奖金数。(用if语句编程)39.输入奖金数a,计算并输出税率、应缴税款和实得奖金数。(用switch语句编程)40.输入学生的成绩,利用计算机将学生的成绩划分出等级并输出: 90100:A级; 808
6、9:B级; 7079:C级; 6069:D级; 059:E级;41.编程序,求方程aX2+bX+c=0的解;输入a,b,c.42.编程序,输入4个整数,按由小到大的顺序输出。43.求满足1+2+3+n500中最大的N,并求其和,编写程序实现。44.把100200之间的不能被3整除的数输出。45.求Fibonacci数列前40个数,每行输出5个,将40个Fibonacci数输出。46.按以下规律翻译密码: 将每一个字母变成它后面的字母,例如,将A变成B,B变成C,Z变成A,非字母字符不变,“!”作为电文结束标志。47.百元买百鸡问题:公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有
7、几种买法。48.使用数组编程,计算出前20项fibonacci数列,要求一行打印5个数。49.编程序求出两个3*4矩阵的和并将原矩阵和求出的和矩阵按原矩阵的形式分别输出。50.将一个4*3的矩阵转置,并将原矩阵和求出的转置矩阵按原矩阵的形式分别输出。51.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是小写字母,则把它变成大写字母;其它字符不变,请编程。52.已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值,请编程。 y=x*(x+2),2x=10; y=2x, -1x=2; y=x-1, x=-1.53.已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值
8、,请编程。 y=0,x=a|x=-a; y=sqrt(a*a-x*x), -axa; y=x,xa.54.编程判断对输入的任何一个年份是否是闰年,将结果输出。55.请编制程序要求输入整数a和不,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。56.请编制程序判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no.57.编程实现:计算1到100之间的奇数之和及偶数之和。58.请编程实现:求100个任意整数的累加和。59.请编程实现:求1到100之间所有能被3整除,但不能被5整除的数的和。60.请编程实现:输入任意正整数n,计算n!并将结果输出,输出结
9、果中没有小数部分。61.请编程实现:计算1至50中是7的倍数的数值之和。62.请编程实现:对任意100个整数,统计0的个数及正数的累加和。63.请编程实现:输入两个整数,判断它们之间的关系(=,等),并清楚地将比较结果输出。64.请编程实现:输入几个整数,判断其中偶数的个数,并输出结果(要求:数据的个数及原始数据由键盘输入)。65.请编程实现:输入几个整数,判断其中奇数的个数,并输出奇数的累加和。(要求:数据的个数及原始数据由键盘输入)66.有一个两位数XY,X是十位,Y是个位;给出X+Y的值和X*Y的值;编程实现让用户猜测这个两位数十多少?根据猜测给出不同的提示。67.键盘输入的一个两位数X
10、Y,X是十位,Y是个位;请编程计算X+Y的值和X*Y的值。68.用for循环语句计算1到20的和,并将结果输出。69.从键盘输入一行字符,统计出输入的字符个数(注:不要使用strlun函数编程)。70.编程实现:任意输入10个数,计算所有正数的和,负数的和以及10个数的和。71.编程实现:求任意20个数中的正数之和及正数的个数,并将结果输出。72.编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和。如:2345 则:计算22+32+42+5273.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程。74.编程实现:打印100以内个位数为6且能被
11、3整除的所有数 。75.编程实现:从键盘输入若干个整数(数据个数应不少于50),其值在0至4的范围内,用-1作为输入结束的标志,统计每个整数的个数。76.编写一个函数sort,将放到一维数组中的若干个数按从大到小的顺序排序;在主函数中输入若干个数到一个一维数组中,调用sort,对该数组进行排序,在主函数中将原数组和排好序的数组输出。77.输入一个正整数,将其用质因子的乘积表示,并输出结果,格式为:12=223。78.输入一个正整数,求出它的质因子的和,并输出结果,格式为:12的质因子和=2+2+3=7。79.编写一个函数,判断一个正整数是否为完数:如果一个数的除它本身以外的所有因数之和等于它本
12、身,则它就是完数。主函数中找出1000以内的所有完数。80.编写函数GCD,求两个正整数的最大公约数,主函数中输入任意5个正整数,调用函数GCD,求出这5个数的最大公约数和最小公倍数。81.编函数isprime判断正整m是否为素数;如果是素数,返回正整数1,否则返回0;主函数中调用isprime,找出2到1000之间的所有素数。82.一维数组a中的若干个数已按从小到大的顺序有序;在主函数中输入一个数,将其插入到该数组中,使得原数组依然按原序有序,分别输入原数组和插入新元素之后的数组。83.有5个国家名,编程实现按字母先后顺序排序,然后分别输出原数组和排序之后的数组。84.有一行文字,要求删去其
13、中的某个字符,此行文字和要删的字符均由键盘输入,分别输出原文字和删除之后的文字(注:原文字中的所有和要删除字符相同的字符完全删除)。85.打印如图所示的杨辉三角,要求打印出n行,n由键盘输入。11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 186.编一个函数实现将一个整型的一维数组中的数逆序存放,不使用辅助数组。主函数输入一个整型的一维数组,调用上述函数,将该数组逆置,将结果输出。87.编写一个函数convert,求一个方阵的转置矩阵;主函数中输入方阵的阶数和方阵,在主函数中将原矩阵和转置矩阵按原格式输出。88.求值,精度为10-5:/41-1/3+1/5-1/7+8
14、9.用公式计算:e1+1/1!+1/2! +1/n!,精度为10-6。90.有一分数序列2/1,3/2,5/3,8/5,13/8,21/13 求该序列的前20项之和。91.编一个子函数GCD,求两个正整数的最大公约数,主程序输入n个自然数,调GCD,求出这n个数的最大公约数。92.写函数求sin(x)的值。计算公式为:Sin(x)=X-X3/3!+X5/5!-X7/7!+ +(-1)n-1X2n-1/(2n-1)!。93.编一函数使用冒泡法对若干个整数按从小到大的顺序排序,主函数中输入若干个整数到一个一维数组中,调用排序函数,将其排序,最后将原数组和排好序的数组输出。94.求一个m行n列的二维
15、数组中的这样一个原素;它在它所在的行为最大,在它所在的列为最小。95.编写一个函数求给定字符串长度,主函数中输入一个字符串,调用该子函数,求出该字符串的长度,输出。96.编写一个函数将给定字符串复制到另一个字符串中去,主函数中输入一个字符串,调用该子函数,复制出另一字符串,将两个串输出。97.写函数求Cos(x)=1+X2/2!-X4/4!+X6/6!- +(-1)nX2n/(2n)!。98.编写一个函数将给定字符串中的大写字母转换成小写字母,主函数中输入一个字符串,调用该子函数,进行转换,将原字符串及转换后的字符串输出。99.编写一个函数将给定的两个字符串连接成一个字符串: 格式为:strc
16、at(ch1,ch2); 功能:将ch2复制到ch1的后面; 主函数中输入两个字符串,调用该子函数,求出连接之后的字符串,将两个原字符串及连接之后的结果串输出。100.用40元钱买苹果、西瓜和梨共100个,且三种水果都有。已知苹果0.4元一个,西瓜4元一个,梨0.2元一个。问可以买多少个?编程输出所有购买方案。101.编程:建立一个33的二维整数数组,求两条对角线上元素值得和,并将结果输出。(用函数调用方式编程)102.编程计算:1*2*3+3*4*5+99*100*101的值。103.有一个54的矩阵,编程实现:找出该矩阵中每行元素的最大值,并使该值成为该行的首列元素。104.编写一个程序,
17、使输入的一个字符串按反序存放在一字符数组中,然后输出。要求: (1)在主调函数中输入字符串; (2)写函数完成由主调函数传递来的字符串按反序存放; (3)在主调函数中输出结果。105.从键盘输入五个字符串,分别求出字符串中长度最长和最短的字符串,请编程。(要求:不要使用strlen(_)函数编程)106.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请编程实现。107.写一个判断素数的函数,在主函数中调用素数的判断函数,求出2到1000之间的素数的累加和,将结果输出,请编程。108.编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在
18、主函数中输入字符串以及输出上述的结果。109.请编程实现:将两个字符串s1和s2比较,如果s1s2,输出一个正数;s1s2,输出一个负数;s1=s2,输出0。 要求:不要用strcpy函数,两个串用gets函数读入,输出的正数或负数的绝对值应是相比较的两个字符串相应字符的ASC码的差值。110.编写一个函数,由实参传来一个字符串,把串中所有大写字母变成相应的小写字母;原串中所有的小写字母变成相应的大写字母,在主函数中输入原字符串和输出变换后的字符串,请编程。111.编程实现:由键盘输入的任意一组字符中统计出大写字母的个m和小写字母的个数n,并输出m、n中的较大者。112.定义一个含有30个整形
19、元素的数组,按顺序分别赋予从2开始的偶数,然后按顺序每五个数求出一个平均值,放在另一个数组中并输出,请编程。113.输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一: (1)能同时被3,5,7整除; (2)能被其中两数(要指出哪两个数)整除; (3)能被其中一个数(要指出哪个数)整除。1.输入两个正整数,m和n,求其最大公约数和最小公倍数。#includevoid main()int hcf(int,int); /*函数声明*/int lcd(int,int,int); /*函数声明*/int u,v,h,l;printf(Please input two numbers:n);s
20、canf(%d,%d,&u,&v);h=hcf(u,v);printf(H.C.F=%dn,h);l=lcd(u,v,h);printf(L.C.D=%dn,l);int hcf(int u,int v)int t,r;if(vu)t=u;u=v;v=t;while(r=u%v)!=0)u=v;v=r;return(v);int lcd(int u,int v,int h)return(u*v/h);2.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。#includeint letter,digit,space,others;void main()void count(char)
21、;char text80;printf(Please input string:n);gets(text);printf(string:n);puts(text);letter=0;digit=0;space=0;others=0;count(text);printf(letter:%d,digit:%d,space:%d,others:%dn,letter,digit,space,others);void count(char str)int i;for(i=0;stri!=0;i+)if(stri=a&stri=A&stri=0&stri=9)digit+;else if(stri=32)
22、space+;elseothers+;3.输入一个正整数求出它是几位数;输出原数和位数。#includeint digit;void main()void count(char);char text80;printf(Please input numbers:n);gets(text);printf(Numbers:n);puts(text);digit=0;count(text);printf(digit:%dn,digit);void count(char str)int i;for(i=0;stri!=0;i+) if(stri=0&stri=9)digit+;4.输入一个正整数,输出原
23、数并逆序打印出各位数字。#includevoid invertLongInt(long);void main()unsigned long iNumber;printf(Please input a number:n);scanf(%ld,&iNumber);printf(The input number is:%ldn,iNumber);printf(The inverse number is:);invertLongInt(iNumber);void invertLongInt(long x)if(x=0&x=9)printf(%dn,x);elseprintf(%d,x%10);inve
24、rtLongInt(x/10);5.从键盘上输入若干学生的一门课成绩,统计并输出最高成绩和最低成绩及相应的序号,当输入负数时结束输入。6.从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。将结果输出。7.求1!+2!+3!+20!,将结果输出。#includevoid main()float s=0,t=1;int n;for(n=1;n=20;n+)t=t*n;s=s+t;printf(1!+2!+3!+20!=%en,s);8.打印以下图案: *#includevoid main()int i,j,k;printf(The picture is:n);for(i=0;i
25、=3;i+)for(j=0;j=2-i;j+)printf( );for(k=0;k=2*i;k+)printf(*);printf(n);9.打印以下图案: #includevoid main()int i,j;printf(The picture is:n); for(i=0;i=3;i+)for(j=0;j=i;j+)printf(*);printf(n);10.求下列试子的值:1-1/2+1/3-1/4+1/99-1/100,将结果输出。#includevoid main()float sum=1.0,t,s=1;int i;for(i=1;i=100;i+)t=s/i;sum=sum
26、+t;s=-s;printf(1-1/2+1/3-1/4+1/99-1/100=%5.4fn,sum);11.打印出100999之间的所有水仙花数。#includevoid main()int i,j,k,n;printf(100999之间的所有水仙花数 are:n);for(n=100;n1000;n+)i=n/100;j=n/10-i*10;k=n%10;if(n=i*i*i+j*j*j+k*k*k)printf(%d ,n);printf(n);12.求Sn=a+aa+aaa+aaa之值,n,a由键盘输入。#includevoid main()int a,n,i=1,sn=0,tn=0;
27、printf(a,n=:);scanf(%d,%d,&a,&n);while(i=n)tn=tn+a;sn=sn+tn;a=a*10;+i;printf(a+aa+aaa+aaa=%dn,sn);13.打印以下图案: #includevoid main()char a7=*,*,*,*,*,*,*;int i,j,k;char space= ;printf(The picture is:);for(i=0;i4;i+)printf(n);printf( );for(j=1;j=i;j+)printf(%c,space);for(k=0;k7;k+)printf(%c,ak);printf(n)
28、;14.打印以下图案: 1 121 12321 123432115. 打印以下图案: 1234321 12321 121 116.编写一个统计学生成绩程序,完成以下功能:输入4个学生的2门课成绩;求出全班的总平均分,将结果输出。#include#define N 4struct studentchar num3;char name4;float score2;float avr;stuN;void main()int i,j;float sum,average;for(i=0;iN;i+) /*输入数据*/printf(Input scores of student%d:n,i+1);prin
29、tf(name:);scanf(%s,stui.name);for(j=0;j2;j+)printf(score %d:,j+1);scanf(%f,&stui.scorej);average=0; /*计算*/for(i=0;iN;i+)sum=0;for(j=0;j2;j+)sum+=stui.scorej;stui.avr=sum/2;average+=stui.avr;average/=N;printf( Name score1 score2 averagen);for(i=0;iN;i+)printf(%5s%10s,stui.num,stui.name);for(j=0;j2;j+
30、)printf(%9.2f,stui.scorej);printf( %8.2fn,stui.avr);printf(average=%5.2fn,average);17. 打印以下图案:#includevoid main()char a5=*,*,*,*,*;int i,j,k;char space= ;printf(The picture is:);for(i=0;i5;i+)printf(n);printf( );for(j=1;j=i;j+)printf(%c,space);for(k=0;k5;k+)printf(%c,ak);printf(n);18.给出年、月、日,计算该日是该年
31、的第几天。#includevoid main()int sum_day(int,int);int leap(int year);int year,month,day,days;printf(Input date(year,month,day):);scanf(%d,%d,%d,&year,&month,&day);printf(%d/%d/%d,year,month,day);days=sum_day(month,day);if(leap(year)&month=3)days=days+1;printf(is the %dth day in this year.n,days);int sum_
32、day(int month,int day)int day_tab13=0,31,28,31,30,31,30,31,31,30,31,30,31;int i;for(i=1;imonth;i+)day+=day_tabi;return(day);int leap(int year)int leap;leap=year%4=0&year%100!=0|year%400=0;return(leap);19.求一个3*3的整型矩阵对角线元素之和。将原矩阵和求出的和输出。#includevoid main() int a33,sum=0; int i,j; printf(请输入元素:n); for(
33、i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); for(i=0;i3;i+) sum=sum+aii; printf(对角线之和是:%dn,sum); printf(原矩阵:n);for(i=0;i3;i+)for(j=0;j3;j+)printf(%5d,aij);printf(n);20.求一个4*3的矩阵各行元素的平均值;将原矩阵和求出的平均值全部输出。printf(原矩阵:n);for(i=0;i3;i+)for(j=0;j3;j+)printf(%5d,aij);printf(n);21.求一个3*4的矩阵各列元素的平均值;将原矩阵和求出的平均值全
34、部输出。#includevoid main() int a43,s4,i,j,k; for(i=0;i4;i+) for(j=0;j3;j+)scanf(%d,*(a+i)+j);for(i=0;i4;i+)k=0;for(j=0;j3;j+)k+=aij;printf(第%d行的平均值是%d,i+1,k);printf(n);22.求一个3*5的矩阵各列元素的最大值,将原矩阵和求出的最大值全部输出。#includevoid main() int a35,s3,i,j,k; for(i=0;i3;i+) for(j=0;j5;j+) scanf(%d,*(a+i)+j); for(i=0;i3
35、;i+) *(s+i)= *(*(a+j); for(j=1;j5;j+) if(*(s+i) *(*(a+i)+j) *(s+i)= *(*(a+i)+j); for(i=0;i3;i+) printf(Line=%d Max=%d,j,sj ); printf(n); printf(原矩阵:n);for(i=0;i3;i+)for(j=0;j5;j+)printf(%5d,aij);printf(n);23.求一个4*3的矩阵各行元素的最大值,将原矩阵和求出的最大值全部输出。#includevoid main() int a43,s4,i,j,k; for(i=0;i4;i+) for(j
36、=0;j3;j+) scanf(%d,*(a+i)+j); for(i=0;i4;i+) *(s+i)= *(*(a+i); for(j=1;j3;j+) if(*(s+i) *(*(a+i)+j) *(s+i)= *(*(a+i)+j); for(i=0;i4;i+) printf(Row=%d Max=%d,i,si ); printf(n); 24.求一个M*N的矩阵中元素的最大值,将原矩阵和求出的最大值全部输出。#include #define N 10#define M 10void main() int aMN,i,j,kM,max,m,n; scanf(%d %d,&m,&n);
37、 for(i=0;im;i+) for(j=0;jn;j+)scanf(%d,*(a+i)+j);for(i=0;im;i+) for(j=0;jn-1;j+)if(aij=aij+1)max=aij+1;elsemax=aij;ki=max;for(i=0;im-1;i+)if(ki=ki+1)max=ki+1;elsemax=ki;printf(%d,max);25.判断一个N*N的矩阵是否为对称矩阵,将原矩阵输出,判断结果输出。#include #define N 10void main() int aNN,i,j,k,n; scanf(%d,&n); for(i=0;in;i+) fo
38、r(j=0;jn;j+)scanf(%d,&aij);for(i=0;in;i+) for(j=i+1;jn;j+)if(aij=aji)k=1;elsek=0;if(k=0)printf(bushi);else printf(shin);for(i=0;in;i+) for(j=0;jn;j+)printf(%d,aij);26.有一篇文章,有三行文字,每行有80个字符。要求统计出其中英文大写字母、消协字母、数字、空格以及其他字符的个数。#includevoid main()int i,j,big=0,sma=0,num=0,spa=0,oth=0;char text380;for(i=0;
39、i3;i+)printf(请输入行%d:n,i+1);gets(texti);for(j=0;j=A&textij=a&textij=0&textij=9)num+;else if(textij= )spa+;elseoth+;printf(大写字母:%dn,big);printf(小写字母:%dn,sma);printf(数字:%dn,num);printf(空格:%dn,spa);printf(其它:%dn,oth);27.将20个整数放到一维数组中,输出该数组的最大值和最小值。#includevoid main()int i,j,min,max,a21;printf(请输入数据:n);for(i=1;i=20;i+)printf(a%d=,i);scanf(%d,&ai);for(i=1;i=19;i+)min=i;for(j=2;jaj);amin=aj;for(i=1;i=19;i+)max=i;for(j=2;j=19;j+)if(amax aj);amax=aj;printf(最大数为:%dn,amax);printf(最小数为:%dn,amin);28.将15个整数放到一维数组中,输出该数组中的最大值它的下标,然后将它和数组中的最前面的元素对换。#includevoid main()int i,j,min,max,a16,m,n;printf(请输入数