C语言上机150道题及参考答案1.某一门课程考试之后,需要统计考生(10人)的平均成绩,并找出其中的最高分和最低分。2.从键盘输入两个正整数,输出这两个整数的商,要求商的小数点后保留5位。例如输入355和113,输出3.14159。3.用while循环结构编写程序打印ASCII码为33-127的字符。4.用do-while,for循环结构编写程序打印ASCII码为33-127的字符。5.用for循环结构编写程序打印ASCII码为33-127字符。6.在1-500中,找出能同时满足用3除余2,用5除余3,用7除余4的所有整数,用循环结构。7.输入一个整数将其倒着输出,如54321——12345。8.计算s=1+1/3+1/5+…+1/n,截止到1/n10-4。9.从键盘输入一整数n,计算1*1+2*2+...+n*n的值。10.用while循环计算1+2+……+100的和。11.用dowhile循环计算1+2+……+100的和。12.用for循环计算1+2+……+100的和。13.输入一个小于等于10的整数n,计算n!。14.输入两个正整数m和n,计算m!+n!,m和n的值均小于10。15.用循环语句,计算1~100之间的所有3的倍数之和。16.用循环语句,计算100-200之间的所有7的倍数之和。17.输出1-100之间,7的整数倍数或数字尾数为7的数字,统计出这些数字个数。18.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。19.输入一个整数,统计它有几位数。如输入367,则该数有3位数。20.编写程序,输出1到50中间所有能被3整除的正整数。21.把100~200之间不能被3整除的输出。22.编程Y=1+3+5+7+...111。23.编程y=1*1/2*1/3*1/4*1/5*1/6*...前十项之积。24.编程输出九九乘法表。25.求1到100奇数和。26.求1到100偶数和。27.编程求200以内所有质数(素数)。28.从键盘输入一个整数,求该数的绝对值。29.从键盘输入+、-、*、/中的任一个,输出对应的英文单词:plus、minus、mutiply、divide,如输入的不是这4个字符中的任一个,则输出“sorry,youarewrong”。30.从键盘输入一个字符,判断其是否为a,r,或f,并输出相应的信息(不区分大小写)。31.求解一元二次方程ax2+bx+c=0的跟(a不等于0),a,b,c均为实数,其值由键盘输入。32.编一程序,对于给定的一个百分制成绩,输出用像'A','B','C','D','E'表示的等级成绩。设:90分以上为'A',80~89分为'B',70~79分为'C',60~69分'D',60分以下为'E'。(要求用switch语句编程)。33.输入一个整数,判断它能否被3,5,7整除。34.用整数1~12依次表示1~12月,由键盘输入一个月份数,输出对应的季节英文名称(12~2月为冬季;3~5月为春季;6~8月为夏季;9~11月为秋季。要求用if嵌套实现)。35.编写输入整数a,b,c,当a为1时显示b和c之和,a为2时显示b与c之差,a为3时显示b*c之积,a为4时取b/c之商,a为其他数值时不做任何操作的程序。36.编写输入一个整数,将其数值按小于10,10~99,100~999,1000以上分类并显示。37.编写输入一个整数,当为65时显示A,66时显示B,67时显示C,其他值时显示END的程序。38.编程实现:输入4个整数,要求按由小到大输出。39.企业发放的奖金根据利润的提成,利润I低于或等于10万元的,奖金可提10%;利润高于10万元低于20万时,低于10万的部分按10%提成,高于10万元的部分,可提成7.5%;20万元I=40万元时,低于20万的部分仍按上述办法,高于20万元部分按5%提成;利润超过40万元时,低于40万元的部分按上述办法,高于40万元部分按1%提成。从键盘输入当月利润I,求应发奖金部分。40.给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90分以上为’A’,80-89分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’。41.给出一个不多于5位的正整数,分别打印出每一位数字。42.从键盘输入三个正整数,判断这三个数能否构成三角形。43.编写输入两个整数a和b,若a≥b时,求其积c并显示,若ab时,求其商c并显示的程序。45.编程实现:从键盘输入三个正整数,判断它们是否构成直角三角形。46.编程实现:从键盘输入三个正整数,判断它们是否构成等腰三角形。49.从键盘输入一个整数,判断其是否素数。50.两个乒乓球队进行比赛,各出3人。甲队为A,B,C3人,已队为X,Y,Z3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程找出3对赛手的名单。51.编写程序,从键盘输入两个不等于零的正整数a,b(ab),求它们之间的几何级数的和。52.编写程序,统计从键盘输入的字符的个数(回车换行符也是一个字符),当遇到结束标志时程序结束。53.编写程序,求面积在100平方米以内的半径,输出所有满足条件的半径值和圆的面积的值。54.编写程序,在屏幕上输出阶梯形式的乘法口诀表。55.求两个正整数的最大公约数和最小公倍数。56.某人有5张2角和4张3角的邮票,使用这些邮票能组合出多少种不同面值的邮资。57.求不超过1000的回文素数。58.自守数是指一个数的平方的尾数等于该数自身的自然数。如:762=5776,求出2000000以内的自守数。59.输入自然数n,将n分解为质因子连乘的形式输出。例如,输入756,则程序显示为756=2*2*3*3*3*7。60.从键盘上输入若干个学生的成绩,当成绩小于等于0时结束输入。计算出平均成绩,并输出不及格的成绩和人数。61.编一函数,将一个字符串的字符反向输出到屏幕。62.例6-5编一函数,从键盘输入一个正整数n,求n!。63.编一函数,从键盘输入一个正整数n,求Xn64.编一函数,从键盘输入2个正整数,求最小公倍数。65.输入1行字符(不超过80个字符)。编一函数,统计该行字符中数字的个数。66.输入一个5行、6列的整数数组,先以5行6列的格式输出该数组;从键盘输入一个整数,然后编一函数,查找该数是否在数组中。67.编写程序,通过调用函数intabs_sum(inta,intb),求从键盘输入的任意3个整数的绝对值的和。68.Fibonacci数列的组成规律为:0,1,1,2,3,5,8,13,21,…。编写程序,求Fibonacci数列第i项的值(0≤i≤40)。69.编写程序,通过调用函数doublearea(doubler),计算园的面积,要求圆的半径r从键盘输入。70.编写程序,通过调用函数doublearea(doubler,doubleh),计算园柱的表面积,要求圆柱的半径r及高h的值从键盘输入。71.编写程序,通过调用函数doublearea(doubler,doubleh),计算园柱的体积,要求圆柱的半径r及高h的值从键盘输入。72.编写一个函数,计算并返回一个整数的立方。73.设计一个函数,交换数组a和数组b的对应元素。75.设有两个整型数组a,b,试比较这两个数组统计出这两个数组中对应元素相等与不相等的个数。76.编写程序,将字符串str中的所有字符k删除。77.找出二维数组的鞍点,即该位置上的元素是该行上的最大值,是该列上的最小值。二维数组也可能没有鞍点。78.回文是从前向后和从后向前读起来都一样的句子。写一个函数,判断一个英文字符串是否为回文。80.若有说明:inta[2][3]={{1,2,3},{4,5,6}};,现要将a的行和列的元素互换后存到另一个二维数组b中,试编程。81.求Sn=a+aa+aaa+…+aaa…a的值。例如当a=2,n=4时,Sn=2+22+222+2222。a和n由键盘输入。(用函数调用实现)82.求两个正整数的最大公约数(用函数调用实现)。83.计算1!+2!+3!+…+n!的值,n值由键盘输入(要注意n!的有效性)。84.编写程序,用冒泡法对20个整数排序。85.编写程序,将一个数插入到有序的数列中去,插入后的数列仍然有序。86.输入1行字符(不超过80个字符)。编一函数,统计该行字符中空格的个数。87.编一函数,连接2个字符串,输出连接后的字符串。88.编一函数,将1个字符串复制到另1个字符串,输出字符串。1222322n89.输入一个5行、6列的数组,先以5行6列的格式输出该数组,然后编一函数,找出该数组中值最小的元素,输出该元素及其两个下标。90.输入1行字符(不超过80个字符)。编一函数,统计该行字符中字母的个数。91.编写程序,对10个从键盘任意输入的字符排序后输出。92.编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出nofound。93.编写函数,从一个排好序的整型数组中删去某数。94.数组a长度为10,保存10个整数。试编程将数组中的元素逆置。要求:使用自定义函数实现逆置操作。(将数组中元素顺序颠倒)95.编程模拟字符串复制函数strcpy。要求:不能调用系统函数,使用自定义函数实现。96.编程模拟字符串比较函数strcmp。要求:不能调用系统函数,使用自定义函数实现。97.编程模拟字符串连接函数strcat。要求:不能调用系统函数,使用自定义函数实现。98.编程模拟字符串操作函数strupr(小写转化为大写)。要求:不能调用系统函数,使用自定义函数实现。99.编程模拟字符串操作函数strlwr(大写转化为小写)。要求:不能调用系统函数,使用自定义函数实现。100.从键盘输入5个整数,保存于数组中。编程找出其中最大值和最小值,把二者位置对调,然后输出调整后的数组。要求:使用自定义函数实现对调。101.有一个已排序好的数组,现输入一个数,要求按原来排序规则插入到数组中。使用自定义函数实现。103.编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。104.请编一个函数fun(char*s),函数的功能是把字符串中所有的字母改写成该字母的下一个字母,最后一个字母z改写成字母a:大写字母仍为大写字母,小写字母仍为小写字母,其他的字符不变。105.编写函数voidfun(intx,intpp[],int*n),它的功能是:求出能整除x且不是偶数的各整数,并放在pp所指的数组中,这些除数的个数通过形参n返回。106.编写一个函数voidfun(char*tt,intpp[]),统计在tt字符串中’a’到’z’26个字母各自出现的次数,并依次放在pp所指数组中。107.请编写一个函数voidfun(chara[],intk,intn),其功能是:删除字符串中指定下标开始的n个字符:其中,a指向字符串,k中存放指定的下标。108.请编一个函数fun(int*a,intn,int*odd,int*even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和:形参n给了数组中数据的个数:利用指针odd返回奇数之和,利用指针even返回偶偶数之和。109.编写函数fun,函数的功能是:从字符串中删除指定的字符:同一字母的大、小写按不同字符处理:若程序执行时,输入字符串为:turbocandBorlandc++,从键盘上输入字符:n,则输出后变为:turbocadborladc++。如果输入的字符不存在,则字符串照原样输出。110.请编一函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中,二维数组中的数已在主函数中赋予。111.请编写函数fun,函数的功能是:在字符串中所有数字字符前加一个$字符:例如,输入:A1B23CD45,则输出为:A$1B$2$3CD$4$5。112.请编一个函数fun(ch