文档库 最新最全的文档下载
当前位置:文档库 › _《C语言》机试题(成-部分答案)

_《C语言》机试题(成-部分答案)

_《C语言》机试题(成-部分答案)
_《C语言》机试题(成-部分答案)

上机试题(一)

1 已知A,B为正整数, A

2 编写程序,求三位数的偶数中,所有各位数字之和是15的倍数的数的和。

答案:20454

………………………………………………………………………………………………

上机试题(二)

1 编写程序,求三位数的奇数中,所有各位数字之和是12的倍数的数的和。

答案:20292

2 把一张一元钞票,换成一分、二分和五分硬币,每种至少5枚,问有多少种方案?

答案:205

……………………………………………………………………………………………

上机试题(三)

1 编写程序,求在四位数的奇数中,所有各位数字之和是25的倍数的数的和。

答案:1298515

2 已知Fibonacci数列:1,1,2,3,5,8,……,它可由下面公式表述:

F(1)=1 if n=1

F(2)=1 if n=2

F(n)=F(n-1)+F(n-2) if n>2

试求F(1)+F(3)+F(5)+……+F(49)值。

提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。答案:12586269025

…………………………………………………………………………………………………

上机试题(四)

1设有6个十进制数字a,b,c,d, e,f ,求满足abcdf×e=fdcba条件的五位数abcdf(a≠0,e≠0,e≠1)的个数。

答案:16

2一个数如果刚好与它所有的因子之和相等,则称该数为一个"完数",如:6=1+2+3,则6就是一个完数。求出200到500之间所有的完数之和。

答案:496

…………………………………………………………………………………………………

上机试题(五)

1 一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。

答案:39

2 编写程序,求在5000以内能被17或者23整除的正整数的个数。

答案:499

…………………………………………………………………………………………………

上机试题(六)

1 设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或1),求满足上述条件的所有四位数abcd的和。

答案:3665

2 若两个自然连续数乘积减1后是素数,则称此两个自然连续数为友数对,该素数称为友素数,例:2*3-1=5,因此2与3是友数对,5是友素数,求[40,119]之间友素数对的数目。

答案:30

………………………………………………………………………………………………….

上机试题(七)

1 把一张一元钞票,换成一分、二分和五分硬币,每种至少8枚,问有多少种方案?

答案:80

2 编写程序,求四位数的偶数中,所有各位数字之和是24的倍数的数的个数。

答案:187

上机试题(八)

1 已知f(0)=f(1)=1 f(2)=0 f(n)=f(n-1)-2*f(n-2)+f(n-3) (n>2)

求f(0)到f(50)中的最大值

答案:598325

2 编写程序,计算在0~50的范围内有多少个数,其每位数的乘积大于每位数的和。

答案:23

………………………………………………………………………………………………

上机试题(九)

1 斐波那契数列的前二项是1,1,以后每一项都是前面两项之和。求10000000以内有多少个斐波那契数?

答案:35

2 回文数是指正读和反读都一样的正整数。例如3773是回文数。求出[1000,9999]以内的所有回文数的个数。

答案:90

…………………………………………………………………………………………………

上机试题(十)

1 某些分数的分子和分母都是二位正整数的真分数具有下列特点:如果将该分数的分子的两位数字相加作分子,而将该分数的分母的两位数字相加作分母,得到的新分数跟原分数相等。例如,63/84=(6+3)/(8+4)。试求所有具有这种特点的真分数(非约简真分数)的分子与分母之和的和。

答案:30078

2 编写程序,求出1~6000以内能被3或者5整除的数的个数。

答案:2800

…………………………………………………………………………………………………

上机试题(十一)

1 所谓“同构数”是指这样一个数,它出现在它的平方数的右侧,例如5的平方是25,25的平方是625,故5和25都是同构数,求[2,1000]之间有多少个同构数。

2 把50元钱分成一元、二元和五元的纸币且纸币张数共为20张的分法有多少种?(注:在兑换中,一元、二元、五元的纸币张数可以为0)

…………………………………………………………………………………………………

1 梅森尼数是指能使2^n-1为素数的数n,求[1,21]范围内最大的梅素尼数?

2 编写程序,求出100到500之间同时满足除5余4和除7余2条件的数的和。

………………………………………………………………………………………………..

上机试题(十三)

1 编写程序求四位数的奇数中,所有各位数字之积(且不为0)是125的倍数的数的和。

2 两个素数之差为2,则称这两个素数为双胞胎数。求出[200,1000]之间的最大一对双胞胎数的和。

………………………………………………………………………………………………..

上机试题(十四)

1 所谓回文数是从左至右与从右至左读起来都是一样的数字,如:121是一个回文数。编写程序,求出100-200的范围内所有回文数的和。

2 已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好能被其因子数8整除,求正整数[10,100]之间有多少个正整数能被其因子的个数整除。

…………………………………………………………………………………………………

上机试题(十五)

1 若(x,y,z)满足方程:x^2+y^2+z^2=55^2(注:要求 x > y > z),则(x,y,z)称为方程的一个解。试求方程的所有整数解中|x|+|y|+|z|的最小值。

2 已知一个数列的前三项为0,0,1,以后各项都是其相邻的前三项之和,求该数列前30项之和。

上机试题(十六)

1 编写程序,已知:S=2+4+8+16+32+…,求S不大于2500的最大值。

2 若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是“四位双平方数”。如:由于7396=86^2,且7+3+9+6=25=5^2,则称7396是“四位双平方数”。若把所有“四位双平方数”按升序排列,求前10个“四位双平方数”的和。

…………………………………………………………………………………………………

上机试题(十七)

1 编写程序,求出3到200之间的所有非偶数非素数的数之和。

2 若某正整数平方等于某两个正整数平方之和,称该正整数为弦数。例如:由于3^2+4^2=5^2,则5为弦数,求[131,200]之间最小的弦数。

………………………………………………………………………………………………….

上机试题(十八)

1 一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:1不是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,但尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的和。

2 编写程序,求在200~1000之间所有能被4除余3,被7除余5,被9除余2的数之和。

………………………………………………………………………………………………..

上机试题(十九)

1 德国数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数的和。但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对。试求8844可以分解成多少种不同的素数对(注: A+B与B+A认为是相同素数对)

2 求方程9X-19Y=1,在|X|≤100,|Y|≤50内共有多少组整数解?

………………………………………………………………………………………………….

1 编写程序,求在200~1000之间所有能被4除余3,被7除余4,被9除余4的数之和。

2 倒勾股数是满足公式: 1/A^2+1/B^2=1/C^2 的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2。假定A>B>C,求A,B,C均小于或等于100的倒勾股数有多少组?

………………………………………………………………………………………………..

上机试题(二十一)

1 编写程序,求满足下列条件的所有四位数ABCD的个数,该四位数是15的倍数,且A+D=B+C,即第1位数加上第4位数等于第2位数加上第3位数。

2 求S=1/2+2/3+3/5+5/8+……的前30项的和(注:该级数从第二项开始,其分子是前一项的分母,其分母是前一项的分子与分母的和)。要求:按四舍五入的方式精确到小数点后第二位。

…………………………………………………………………………………………………

上机试题(二十二)

1 求1/(1*2)+1/(2*3)+1/(3*4)+....+1/(N*(N+1))的值,N=20, 要求:按四舍五入的方式精确到小数点后第二位。

2自然数对是指两个自然数的和与差都是平方数,如8和17的和8+17=25与其差 17-8=9都是平方数,则称8和17是自然数对(8,17)。假定(A,B)与(B,A)是同一个自然数对且假定A>=B,求所有小于或等于100(即:A<=100,B<=100,A<>B,A和B均不为0)的自然数对中A-B之差的和。

上机试题(二十三)

1.编写程序,求在四位数的奇数中,所有各位数字之和是25的倍数的数的和。

2.编写程序,已知:S=2+4+8+16+32+…,求S不大于1500的最大值。

…………………………………………………………………………………………………

上机试题(二十四)

1.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。

2.求[1,800]之间能被3和8整除的数的个数。

…………………………………………………………………………………………………

上机试题(二十五)

1.设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0,e不等于0或1),求满足上述条件的最大四位数abcd的值。

2.求[1,50]之间的所有整数能构成直角三角形的三边的组数。例如:3*3+4*4=5*5,它们构成直角三角形,所以{3,4,5}作为一组,但{4,3,5}视为跟{3,4,5}相同的一组。

…………………………………………………………………………………………………

上机试题(二十六)

1.把一张一元钞票,换成一分.二分和五分硬币,每种至少11枚,问有多少种方案?

2.编写程序,统计1000~9999之间的所有满足以下条件的四位数的个数。该数是一个完全平方数,且其第1.2位数字之和为10,第3.4位数字之积为18。

…………………………………………………………………………………………………

上机试题(二十七)

1.所谓“同构数”是指这样一个数,它出现在它的平方数的右侧,例如5的平方是25,25的平方是625,故5和25都是同构数,求[2,1000]之间有多少个同构数。

2.有一个三位数满足下列条件: (1)此三位数的三位数字各不相同; (2)此三位数等于它的各位数字的立方和。试求所有这样的三位数中,第二大的是多少?

…………………………………………………………………………………………………

上机试题(二十八)

1.[300,800]范围内同时满足以下两个条件的十进制数。(1)其个位数字与十位数字之和除以10所得的余数是百位数字;(2)该数是素数;求满足上述条件的最大的三位十进制数。

2.求500以内(含500)能被5或9整除的所有自然数的倒数之和。按四舍五入的方式精确到小数点后第二位。

上机试题(二十九)

1.所谓回文数是从左至右与从右至左读起来都是一样的数字,如:121是一个回文数。编写程序,求出100-200的范围内所有回文数的和。

2.有40个学生一起买小吃,共花钱100元,其中每个大学生花5元,每个中学生花3元,每个小学生花1元,问大.中.小学生的人数分配共有多少种不同的解(去掉某类学生为0的解)?

…………………………………………………………………………………………………

上机试题(三十)

1.已知一个数列的前三项为0,0,1,以后各项都是其相邻的前三项之和,求该数列前30项之和。

2.已知:非等腰三角形最长边是60,其它两边的长度都是正整数,且三边之和能被3整除,试编程求取这类三角形的个数(注意:两边的长度交换构成的三角形算作同一个三角形,如:其它两边的长度为30和40的三角形与长度为40和30的三角形视为同一个三角形)。

…………………………………………………………………………………………………

上机试题(三十一)

1.数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数(素数对)的和。

但有些偶数可以分解成多种素数对的和,如:10=3+7,10=5+5,即10可以分解成

两种不同的素数对。试求6744可以分解成多少种不同的素数对(注:A+B与B+A

认为是相同素数对)。

2.设某四位数的千位数字的平方与十位数字的平方之和等于百位数字的立方与个位数字的立方之和,例如,对于四位数:3201,3^2+0^2=2^3+1^3,试问这样的四位数

有多少个?

…………………………………………………………………………………………………

上机试题(三十二)

1.某些分数的分子和分母都是二位正整数的真分数具有下列特点:如果将该分数的分子的两位数字相加作分子,而将该分数的分母的两位数字相加作分母,得到的新分数跟原分数相等。例如,63/84=(6+3)/(8+4)。试求所有具有这种特点的真分数(非约简真分数)的分子与分母之和的和。

2.自然数对是指两个自然数的和与差都是平方数,如8和17的和8+17=25与其差17-8=9都是平方数,则称8和17是自然数对(8,17)。假定(A,B)与(B,A)是同一个自然数对且假定A>=B,求所有小于或等于100(即:A<=100,B<=100,A<>B,A和B均不为0)的自然数对中A-B之差的和。

…………………………………………………………………………………………………

上机试题(三十三)

1.已知f(n)=f(n-1)+2f(n-2)-5f(n-3),f(0)=1,f(1)=2,f(2)=3,求f(0)+f(1)+…f(30)。

2.一个数如果刚好与它所有的因子之和相等,则称该数为一个“完数”,如:6=1+2+3,则6就是一个完数。求出200到500之间所有的完数之和。

上机试题(三十四)

1. 编写程序,求出1到5000之间的能被7整除的前若干个数之和,当和值大于等于1500

时退出并输出和值。

2.若两个自然连续数乘积减1后是素数,则称此两个自然连续数为友数对,该素数称为友素数,例:2*3-1=5,因此2与3是友数对,5是友素数,求[40,119]之间友素数对的数目。

…………………………………………………………………………………………………

上机试题(三十五)

1.[100,999]范围内同时满足以下两个条件的十进制数.(1)其个位数字与十位数字之和除以10所得的余数是百位数字;(2)该数是素数; 求有多少个这样的数?

2.已知f(n)=f(n-1)+2f(n-2)-5f(n-3),f(0)=1,f(1)=2,f(2)=3,求f(0)+f(1)+…f(30)。

…………………………………………………………………………………………………

上机试题(三十六)

1.倒勾股数是满足公式:1/A^2+1/B^2=1/C^2 的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2。假定A>B>C,且要求A,B,C均小于或等于100,求满足倒勾股数公式的A,B,C之和的最大值是多少?

2.已知S1=2, S2=2+4, S3=2+4+6, S4=2+4+6+8,S5=2+4+6+8+10,…,求S=S1+S2+S3+S4 +S5+…+S20的值。

…………………………………………………………………………………………………

上机试题(三十七)

1.若某整数平方等于某两个正整数平方之和的正整数称为弦数。例如:由于3^2+4^2=5^2,则5为弦数,求[100,199]之间最大的弦数。

2.求出以下分数序列的前35项之和,2/1,3/2,5/3,8/5,13/8,21/13,......给出程序结果(保

留6位小数)。

…………………………………………………………………………………………………

上机试题(三十八)

1.当m的值为50时,计算下列公式之值: t=1+1/2^2+1/3^2+…+1/m^2,(按四舍五入的方式精确到小数点后第四位)。

2.计算A15值。A1=1, A2=1/(1+A1), A3=1/(1+A2), A4=1/(1+A3), ......(保留10位小数)。

…………………………………………………………………………………………………

上机试题(三十九)

1.求[2000,20000]之间同时满足除以7余5,除以5余3,除以3余1的整数的个数。

2.编写程序,计算在[0,60]的范围内有多少个数,其每位数的乘积大于每位数的和。

c语言机试题

(1)/*程序修改题目要求: 下列给定程序中,fun函数的功能是:求a=xx…xx-…-xx-xx-x (此处xx…xx表示n个x,x和n的值在1至9之间)。例如:x=3,a=6,则以上表达式为: a=333333-33333-3333-333-33-3 其值是296298。x和n是fun函数的参数,表达式的值作为函数值 传回main函数。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构。每处3分,共9分*/ #include #include long fun(int x,int n) { int j; /*********found*********/ long a=0,t=1; /*********found*********/ for(j=0;j<=n;j++) t=t*10+x; a=t; for(j=1;j main() { int i,count=0,a[11]={0,10,2,8,22,16,4,10,14, 20}; /******found*****/ while(__1__) { for(i=1;i<=10;i++) a[i-1]=a[i-1]/2+a[i]/2; a[10]=a[10]/2+a[0]; for(i=1;i<=10;i++) /******found*****/ if(__2__) a[i]++; for(i=1;i<10;i++) /******found*****/ if(a[i]!=a[i+1]) __3_; if(i==10) break; else { a[0]=0; count++; } } printf("count=%d number=%d\n",count,a[1]); } 答案: 1. 2. a[i]%2==1 3. break (3)/*编程题目要求: 请输入星期几的第一个字母来判断一下是星期 几, 如果第一个字母一样,则继续判断第二个字母。 注意:部分程序段已给出,请勿改动 仅在两个found中填入你编写的若干语句。本题14分*/ #include void main() { /*******found******/ 答案:char ch1,ch2; printf("请输入第一个字母:"); ch1 = getchar(); getchar(); // 吸收换行符 if(ch1 == 'S') { printf("请输入第二个字母:"); ch2 = getchar(); switch(ch2) { case 'a': printf("星期 六\n");break; case 'u': printf("星期 日\n");break; } } else if(ch1 == 'T') { printf("请输入第二个字母:"); ch2 = getchar(); switch(ch2) 1

C语言上机试题

1:第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能就是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。 2:第2题请编写函数fun,它的功能就是:求出1到100之内能北7或者11整除,但不能同时北7与11整除的所有证书,并将她们放在a所指的数组中,通过n返回这些数的个数。 3:第3题请编写函数void fun(int x,int pp[],int *n),它的功能就是:求出能整除x且不就是偶 数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 4:第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"至U "z"26各字母各自出现的次数,并依次放在pp所指的数组中。 5:第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能就是:将大于整数m且 紧靠m的k各素数存入xx所指的数组中。 6:第6题请编写一个函数void fun(char a[],char[],int n),其功能就是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。 7:第7题请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下 标并存放在k所指的储存单元中。 8:第8题编写函数fun,功能就是:根据以下攻势计算s,计算结果作为函数值返回『通过形参 传入。S=1 + 1/(1+2)+1/(1+2+3)+ ??…、+1/(1+2+3+4+ ??…+n) 9:第9题编写一个函数fun,它的功能就是:根据以下公式求p的值,结果由函数值带回。M 与n为两个正整数,且要求m>n。p=m!/n!(m-n)! 10:第10题编写函数fun,它的功能就是:利用以下的简单迭代方法求方程cos(x)-x=0的一个 实根。 迭代步骤如下:(1)取x1初值为0、0;⑵x0=x1,把x1的值赋各x0; (3) x1=cos(x0),求出一个新的x1; (4) 若x0-x1的绝对值小于0、000001,则执行步骤(5),否则执行步骤(2); (5) 所求x1就就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出root=0、739085。 11:第11题下列程序定义了nx n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n]),该函数的功能就是:使数组左下半三角元素中的值全部置成0。 12:第12题下列程序定义了n x n的二维数组,并在主函数中赋值。请编写函数fun,函数的 功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。 13:第13题请编写一个函数void fun(int tt[m][n],int pp[n]),tt 指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。 14:第14题请别写函数fun,函数的功能使求出二维数组周边元素之与,作为函数值返回。二 维数组中的值在主函数中赋予。 15:第15题请编写一个函数unsigned fun(unsigned w),w 使一个大于10的无符号整数,若w 使n(n>2)位的整数,则函数求出w后n-1位的数作为函数值返回。 16:第16题请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树, 并对第三位进行四舍五入(规定h中的值位正数)。 17:第17题请编写一个函数fun(char *s),该函数的功能使把字符串中的内容拟置。 18:第18题编写程序,实现矩阵(3行3列)的转置(即行列互换)。 19:第19题编写函数fun,该函数的功能就是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。20:第20题编写函数int fun(int lim,int aa[max]),该函数的功能就是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。 21:第21题请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。

C语言上机练习题

上机练习题 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 8.输入1~10之间的一个数字,输出它对应的英文单词。 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境; ②定义变量digit、x、y分别表示原始数、原始数的个位数和逆数; ③输入原始正整数x; ④从x中分解出个位数字digit; ⑤合并个位digit至逆数y中; ⑥原始数x缩小10倍:x=x/10; ⑦如果x非零,则转④; ⑧输出逆数y,结束 13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构 成)。 14.输入10个数,分别统计其中正数、负数、零的个数。 15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)

C语言上机题库

C语言习题集 3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。 输入格式: B 输出格式: 26 #include int main(void) { char ch; int sum; ch=getchar(); sum=ch-'A'+10+15; printf("%d\n",sum); return 0; } 3.12输入三个整数,求其平均值。 输入格式: 3 5 7 输出格式: 5 #include int main(void) { int a,b,c,aver; scanf("%d %d %d",&a,&b,&c); aver=(a+b+c)/3; printf("%d\n",aver); return 0; } 3.13根据c=5/9*(f-32) 公式,输入华氏温度f,求摄氏温度c,结果精确到小数点后两位。 输入格式: 80.0 输出格式:26.67 #include int main(void) { float f,c; scanf("%f",&f); c=5.0/9*(f-32); printf("%.2f\n",c); return 0; } 3.14输入一个四位正整数,求其各位数字之和。例如,1357的各位数字之和为1 + 3 + 5 + 7 = 16。 输入格式: 1357 输出格式: 16 #include int main(void) { int num; int a,b,c,d,total; scanf("%d",&num); a=num/1000; b=(num-a*1000)/100; c=(num-a*1000-b*100)/10; d=num-a*1000-b*100-c*10; total=a+b+c+d; printf("%d\n",total); return 0; } 3.15输入一大写字母,输出对应的小写字母。 输入格式: A 输出格式: a

C语言机试试题库

1.编写函数fun,它的功能是:计算并输出下列级数和 s= 1/(1*2)+1/(2*3)+...+1(n*(n+1)).例如,当n = 10时,函数值为:0.909091 2.在[10000, 20000]范围内考察个位数字是7的素数, 问:(1) 这样的素数有多少个?(2) 其中最大的一个等于几? 3. 编写程序,从键盘输入一年份,判断该年份是否为闰年。 1. 编写函数fun,它的功能是:计算并输出下列级数和:s= 1/(1*2)+1/(2*3)+...+1(n*(n+1))。例如,当n = 10时,函数值为:0.909091 2. 回文数是指正读和反读都一样的自然数。例如,8, 121, 5445这三个数都是回文数。求: (1) [1,1000]之内既是回文数,又是素数的最大整数。 (2) [1,1000]以内既是回文数,又是素数的整数有多少个" 3. 编写程序,能对输入一行字符,统计其中分别有多少个单词和空格。比如输入:”How are you”,有3个单词和2个空格。 1.编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 例如:当t =1000时,函数值为:1597。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 2.先从键盘上输入一个3行3列矩阵元素的值,然后输出主对角线元素平方之和. 3. 编程:删除字符串中的数字字符。 1.编写函数fun,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。 例如若n为1000时,函数值应为:s = 153.909064。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 2.编程求出两个非零正整数的最大公约数. 3.请编写程序:根据以下公式求π(要求满足精度0.0005)的近似值:π/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+……+(1*2*3*4*……*n)/(3*5*7*……*(2n+1)) 1.现矩阵(3行3列)的转置(即行列互换)。 例如,输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900

_《C语言》机试题(成-部分答案)

上机试题(一) 1 已知A,B为正整数, A2 试求F(1)+F(3)+F(5)+……+F(49)值。 提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。答案:12586269025 ………………………………………………………………………………………………… 上机试题(四) 1设有6个十进制数字a,b,c,d, e,f ,求满足abcdf×e=fdcba条件的五位数abcdf(a≠0,e≠0,e≠1)的个数。 答案:16 2一个数如果刚好与它所有的因子之和相等,则称该数为一个"完数",如:6=1+2+3,则6就是一个完数。求出200到500之间所有的完数之和。 答案:496 ………………………………………………………………………………………………… 上机试题(五) 1 一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 答案:39 2 编写程序,求在5000以内能被17或者23整除的正整数的个数。 答案:499 ………………………………………………………………………………………………… 上机试题(六) 1 设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或1),求满足上述条件的所有四位数abcd的和。

大学本科C语言上机考试题

C语言程序设计上机考试题 班级:姓名:学号: 使用C语言编写下列程序(20分×5=100分) 1、输入3个整型数据,求出最大数和最小数。 #include int main() {inta,b,c,e,d,f,g; printf("请输入三个数\n"); scanf("%d,%d,%d",&a,&b,&c); d=(a>b?a:b); e=(d>c?d:c); printf("Max is %d\n",e); f=(a int main() {float score; char grade; printf("请输入学生成绩:"); scanf("%f",&score); while(score>100||score<0)); {printf("\n输入有误,请输入); scanf("%f",&score); } switch((int)(score/10)) {case 10: case 9:grade='A';break; case 8:grade='B';break; case 7:grade='C';break; case 6:grade='D';break;

case 5: case 4: case 3: case 2: case 1: case 0:grade='E'; } printf("成绩是%5.1f,相应的等级是%c\n",score.grade); return 0; } 3、编写一个四则运算程序,输出计算结果。 #include int main() {intc,d,e; floata,b,f; printf("请输入两个数"); scanf("%f,%f",&a,&b); c=a+b; d=a-b; e=a*b; f=a/b; printf("加法结果为%d\n",c); printf("减法结果为%d\n",d); printf("乘法结果为%d\n",e); printf("除法结果为%f\n",f); return 0; } 4.100以内的素数 从键盘输入一个正整数,判断该整数是否为素数。 #include int main() { intn,i; printf("\n"); scanf("%d",&n); for (i=2;i<=n-1;i++) if(n%i==0) break; if(i

c语言机试题汇总

第一部分-分支、循环部分 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 8、计算s=1+1/3+1/5+…+1/n,截止到1/n<10-4 9、从键盘输入一整数n,计算1*1+2*2+...+n*n的值 10、用while 循环计算1+2+……+100的和 11、用do while循环计算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、输入一个整数,统计它有几位数 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,you are wrong”。 30、从键盘输入一个字符,判断其是否为a,r,或f,并输出相应的信息(不区分大小写)。 31、编一程序,对于给定的一个百分制成绩,输出用像'A','B','C','D','E'表示的等级成 绩。设:90分以上为'A',80~89分为'B',70~79分为'C',60~69分'D',60分以下为'E'。(要求用switch语句编程)。 32、输入一个整数,判断它能否被3,5,7整除。 33、用整数1~12依次表示1~12月,由键盘输入一个月份数,输出对应的季节英文名称(12~2 月为冬季;3~5月为春季;6~8月为夏季;9~11月为秋季。要求用if嵌套实现)。 34、编写输入整数a,b,c,当a为1时显示b和c之和,a为2时显示b与c之差,a为3 时显示b*c之积,a为4时取b/c之商,a为其他数值时不做任何操作的程序。

C语言上机测试题目(完整版)

1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #include void main() { int i,j,k; for(i=1;i<=4;i++) for(j=1;j<=4;j++) for(k=1;k<=4;k++) if(i!=j&&i!=k&&j!=k) printf("%d%d%d ",i,j,k); printf("\n"); } 2.企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? #include main() { long i; float bonus, bon1, bon2, bon4, bon6, bon10; int c; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; bon10=bon6+400000*0.015; printf("请输入利润i:"); scanf("%ld",&i); c=i/100000; if(c>10) c=10; switch(c) { case 0: bonus=1*0.1;break; case 1: bonus=bon1+(i-100000)*0.075;break; case 2 :

二级C语言上机题库及答案

第一套题 上机填空: #include double fun(double e) { int i, k; double s, t, x; s=0; k=1; i=2; /**********found**********/ x=__1__/4; /**********found**********/ while(x __2__ e) { s=s+k*x; k=k* (-1); t=2*i; /**********found**********/ x=__3__/(t*t); i++; } return s; } main() { double e=1e-3; printf("\nThe result is: %f\n",fun(e)); 第一处答案:3.0 第二处答案:> 第三处答案:(2*i+1)或者(t+1) 上机改错题: #include /************found************/ void fun ( int n )

{ int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k <= n; k++ ) { /************found************/ s = s + (Double)a / b; c = a; a = a + b; b = c; } return s; } main( ) { int n = 5; printf( "\nThe value of function is: %lf\n", fun ( n ) ); } 第一处改错:将:void fun ( int n ) 改为double fun ( int n ) 第二处改错:s = s + (Double)a / b; 改为s = s + (double)a / b; 第二套题 上机填空题 #include double fun(int n) { int i; double s, t; /**********found**********/ s=__1__; /**********found**********/ for(i=1; i<=__2__; i++) { t=2.0*i; /**********found**********/ s=s+(2.0*i-1)*(2.0*i+1)/__3__; } return s; } main() { int n=-1; while(n<0) { printf("Please input(n>0): "); scanf("%d",&n); }

c语言上机考试题

上机考试:6月2日 13:30 不准携带:课本/参考书/参考资料/移动存储设备/草纸 一定要带:学生证/签字笔 1 用起泡法对N=10个整数由大到小排序。10个整数由键盘输入,排序后从屏幕输出结果 2 编写一函数,从实参传来一个字符串,分别统计其中数字、大写字母、小写字母和其它字符的个数,输入输出在main函数中完成 3 用一函数inv将一个字符串的字符逆序排列。输入输出在main函数中完成。要求在inv中用指针处理。4 求200之内的素数的和。从屏幕输出结果 5 从屏幕输入一行字符,将所有的大写字母转换为小写字母,所有的小写字母转换为大写字母,其它字符不变,从屏幕输出结果 6 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次落地后又反弹多高? 7 对N=20个字符由大到小排序。20个字符由键盘输入,排序后从屏幕输出结果 8 有一字符串,把其中的字母a和A去掉,成为一个新字符串。原字符串从键盘输入。从屏幕输出结果 9 求Fibonacci数列的前30项的和。从屏幕输出结果。Fibonacci数列为: F(1)=1,(n=1) F(2)=1,(n=2) F(n)=F(n-2)+F(n-1),(n>=3) 10 写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串 11 从键盘输入一个大于2的整数,判断是否是素数。从屏幕输出结果。要求用函数处理 12 从键盘输入月份,输出这个月有多少天。要求用函数处理 13 求两个数的最大公约数。要求用函数处理 14 求两个数的最小公倍数。要求用函数处理 15 从屏幕输入3个整数,按从小到大顺序输出,要求用指针进行处理 16

大学本科C语言上机考试题

C语言程序设计上机考试题 班级::学号: 使用C语言编写下列程序(20分×5=100分) 1、输入3个整型数据,求出最大数和最小数。 #include int main() {int a,b,c,e,d,f,g; printf("请输入三个数\n"); scanf("%d,%d,%d",&a,&b,&c); d=(a>b?a:b); e=(d>c?d:c); printf("Max is %d\n",e); f=(a int main() {float score; char grade; printf("请输入学生成绩:"); scanf("%f",&score); while(score>100||score<0)); {printf("\n输入有误,请输入); scanf("%f",&score); } switch((int)(score/10)) {case 10: case 9:grade='A';break; case 8:grade='B';break; case 7:grade='C';break; case 6:grade='D';break;

case 5: case 4: case 3: case 2: case 1: case 0:grade='E'; } printf("成绩是%5.1f,相应的等级是%c\n",score.grade); return 0; } 3、编写一个四则运算程序,输出计算结果。 #include int main() {int c,d,e; float a,b,f; printf("请输入两个数"); scanf("%f,%f",&a,&b); c=a+b; d=a-b; e=a*b; f=a/b; printf("加法结果为%d\n",c); printf("减法结果为%d\n",d); printf("乘法结果为%d\n",e); printf("除法结果为%f\n",f); return 0; } 4.100以的素数 从键盘输入一个正整数,判断该整数是否为素数。 #include int main() { int n,i; printf("\n"); scanf("%d",&n); for (i=2;i<=n-1;i++) if(n%i==0) break; if(i

浙江大学C语言上机考试题库

上机考试练习题 20021程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 int main(void) { int repeat, ri; double x, y; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%lf", &x); /*---------*/ if(x!=0) y=1/x; else y=0; printf("f(%.2f) = %.1f\n", x, y); } } 20022程序填空,不要改变与输入输出有关的语句。 输入华氏温度,输出对应的摄氏温度。计算公式:c = 5*(f-32)/9,式中:c表示摄氏温度,f表示华氏温度。 输入输出示例:括号内为说明 输入 150 (fahr=150) 输出 celsius = 65 #include int main(void)

int celsius, fahr; /*---------*/ scanf(“%d”,&fahr); celsius=5.0*(fahr-32)/9; printf("celsius = %d\n", celsius); } 20023程序填空,不要改变与输入输出有关的语句。 输入存款金额 money、存期 year 和年利率 rate,根据下列公式计算存款到期时的利息 interest(税前),输出时保留2位小数。 interest = money(1+rate)^year - money 输入输出示例:括号内为说明 输入 1000 3 0.025 (money = 1000, year = 3, rate = 0.025) 输出 interest = 76.89 #include #include int main(void) { int money, year; double interest, rate; /*---------*/ scanf(“%d%d%lf”,&money,&year,&rate); interest=money*pow((1+rate),year)-money; printf("interest = %.2f\n", interest); } 20024程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0= 0时,f(x) = x^0.5,当x小于0时,f(x) = (x+1)^2 + 2x + 1/x。 输入输出示例:括号内是说明 输入 3 (repeat=3) 10 -0.5

C语言上机试题

1: 第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。 2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。 3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。 5: 第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。 . 6: 第6题请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。 7: 第7题请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下标并存放在k所指的储存单元中。 8: 第8题编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n通过形参传入。S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n) 9: 第9题编写一个函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。M与n为两个正整数,且要求m>n。p=m!/n!(m-n)! 10: 第10题编写函数fun,它的功能是:利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。 迭代步骤如下:(1)取x1初值为;(2)x0=x1,把x1的值赋各x0; ( (3)x1=cos(x0),求出一个新的x1; (4)若x0-x1的绝对值小于,则执行步骤(5),否则执行步骤(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出root=。 11: 第11题下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n]),该函数的功能是:使数组左下半三角元素中的值全部置成0。 12: 第12题下列程序定义了n×n的二维数组,并在主函数中赋值。请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。 13: 第13题请编写一个函数void fun(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数

C语言上机题

C 语言2-1 7.10求最大公约数。请使用递归算法计算正整数n 和m 的最大公约数GCD(n,m)。 GCD(n,m)=?? ???<=<=,其他,且)%,(),(0%n ,m n m GCD m n n m GCD m n m m #include int Gcd(int n,int m) { if (n int Fun(int n) { if (n==1 || n==2 ) { return 1; }else if (n%2==0) { return Fun(n-1)-Fun(n-2); }else { return Fun(n-1)+Fun(n-2); } }

7.8偶数分解。编写程序,输入若干个大于2的正整数,如果是偶数,则将其分解为两个素数(只需找出第一对素数)并输出;如果输入的奇数,则输出“××× is odd number!”;输入为0时程序结束。只有1和它本身这两个因数的自然数叫做素数,0和1既不是素数也不是和数。 #include int Isprime(int n) { int i; for (i=2; i

华为C语言机试题面试题汇总

1.第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50 #include main() { int num[50]={0}; int i,n; printf("请输入整型数组的长度(1~50):"); scanf("%d",&n); printf("请输入整型数组的元素:"); for (i=0;inum[j]) min_num=num[j]; } int sum=min_num+max_num; printf("数组中最大与最小值之和:%d\n",sum); return 0; } 2.求两个长长整型的数据的和并输出,例如输入1233333333333333 。。。 3111111111111111111111111.。。。,则输出。。。。 #include #include #include main() { char *num1,*num2; //两个长长整型数据 char *sum;

// int temp; int len_num1,len_num2; // 两个长长整型数据的长度 int len_max,len_min; num1=(char*)malloc(sizeof(char)); num2=(char*)malloc(sizeof(char)); printf("输入两个长长整型数据:"); scanf("%s",num1); printf("输入两个长长整型数据:"); scanf("%s",num2); len_num1=strlen(num1); len_num2=strlen(num2); len_max=(len_num1>=len_num2)? len_num1:len_num2; len_min=(len_num1<=len_num2)? len_num1:len_num2; int len_max1=len_max; sum=(char*)malloc(sizeof(char)*len_max); memset(sum,0x00,len_max+1);//切忌初始化 for(;len_num1>0&&len_num2>0;len_num1--,len_num2--) { sum[len_max--]=((num1[len_num1-1]-'0')+(num2[len_num2-1]-'0')); } if(len_num1>0) { sum[len_max--]=num1[len_num1 - 1 ]-'0'; len_num1--; } if(len_num2>0) { sum[len_max--]=num1[len_num2 - 1]-'0'; len_num2--; } for(int j=len_max1;j>=0;j--) //实现进位操作 { // temp=sum[j]-'0'; if(sum[j]>=10) { sum[j-1]+=sum[j]/10; sum[j]%=10; } } char *outsum=(char*)malloc(sizeof(char)*len_max1); j=0; while(sum[j]==0) //跳出头部0元素 j++; for(int m=0;m

相关文档