文档库 最新最全的文档下载
当前位置:文档库 › c语言机试题汇总

c语言机试题汇总

c语言机试题汇总
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为其他数值时不做任何操作的程序。

35、编写输入一个整数,将其数值按小于10,10~99,100~999,1000以上分类并显示。

36、编写输入一个整数,当为65时显示A,66时显示B,67时显示C,其他值时显示END

的程序。

37、编程实现:输入4个整数,要求按由小到大输出

38、企业发放的奖金根据利润的提成,利润I低于或等于10万元的,奖金可提10%;利润高于10万元

低于20万时,低于10万的部分按10%提成,高于10万元的部分,可提成7.5%;20万元

60-69分为’D’,60分以下为’E’。

40、给出一个不多于5位的正整数,要求①求出它是几位数;②分别打印出每一位数字。

41、从键盘输入三个正整数,判断这三个数能否构成三角形。

42、编写输入两个整数a和b,若a≥b时,求其积c并显示,若a

程序。

43、用循环结构实现下列图形的输出:

* * * * * * * *

* * * * * * * *

* * * * * * * *

* * * * * * * *

* * * * * * * *

* * * * * * * *

* * * * * * * *

* * * * * * * *

45、编程实现:从键盘输入三个正整数,判断它们是否构成直角三角形

46、编程实现:从键盘输入三个正整数,判断它们是否构成等腰三角形

47、用循环结构输出下列图形

*

**

***

****

*****

******

*******

********

*********

**********

48、用循环结构输出下列图形

**********

*********

********

*******

******

*****

****

***

**

*

49、从键盘输入一个整数,判断其是否素数

50、两个乒乓球队进行比赛,各出3人。甲队为A,B,C3人,已队为X,Y,Z3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程找出3对赛手的名单。

51、编写程序,从键盘输入两个不等于零的正整数a,b(a

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时结束输入。计算出平均成绩,并输出不及格的成绩和人数。

第二部分-函数、数组、指针

1.编一函数,将一个字符串的字符反向输出到屏幕。

2.例6-5 编一函数,从键盘输入一个正整数n,求n!。

3.编一函数,从键盘输入一个正整数n,求X n

4.编一函数,从键盘输入2个正整数,求最小公倍数。

5.输入1行字符(不超过80个字符)。编一函数,统计该行字符中数字的个数。

6.输入一个5行、6列的整数数组,先以5行6列的格式输出该数组;从键盘输入一个整

数,然后编一函数,查找该数是否在数组中。

7.编写程序,通过调用函数int abs_sum(int a,int b),求从键盘输入的任意3个整数的绝对

值的和。

8.Fibonacci数列的组成规律为:0,1,1,2,3,5,8,13,21,…。编写程序,求Fibonacci

数列第i项的值(0≤i≤40)。

9.编写程序,通过调用函数double area(double r),计算园的面积,要求圆的半径r从键盘

输入。

10.编写程序,通过调用函数double area(double r, double h),计算园柱的表面积,要求圆柱

的半径r及高h的值从键盘输入。

11.编写程序,通过调用函数double area(double r, double h),计算园柱的体积,要求圆柱的

半径r及高h的值从键盘输入。

12.编写一个函数,计算并返回一个整数的立方。

13.设计一个函数,交换数组a和数组b的对应元素。

14.编写一个函数,求满足一下条件的最大的n值。

1

2+ 22+ 32+. . . +2n<1000

15.设有两个整型数组a,b,试比较这两个数组统计出这两个数组中对应元素相等与不相等

的个数。

16.找出二维数组的鞍点,即该位置上的元素是该行上的最大值,是该列上的最小值。二

维数组也可能没有鞍点。

17.编写程序,将字符串str中的所有字符k删除。

18.回文是从前向后和从后向前读起来都一样的句子。写一个函数,判断一个英文字符串

是否为回文。

19.从键盘输入整数n,输出由*号组成的高度为n的等腰三角形图案。

例如,当n=5时,输出的图案如下:

*

***

*****

*******

*********

20.若有说明:int a[2][3]={{1,2,3},{4,5,6}};,现要将a的行和列的元素互换后存到另一个二

维数组b中,试编程。

21.求S n=a+aa+aaa+…+aaa…a的值。例如当a=2,n=4时,S n=2+22+222+2222。a和n由键

盘输入。(用函数调用实现)

22.求两个正整数的最大公约数(用函数调用实现)。

23.计算1!+2!+3!+…+n!的值,n值由键盘输入(要注意n!的有效性)。

24.编写程序,用冒泡法对20个整数排序。

25.编写程序,将一个数插入到有序的数列中去,插入后的数列仍然有序。

26.输入1行字符(不超过80个字符)。编一函数,统计该行字符中空格的个数。

27.编一函数,连接2个字符串,输出连接后的字符串。

28.编一函数,将1个字符串复制到另1个字符串,输出字符串。

29.输入一个5行、6列的数组,先以5行6列的格式输出该数组,然后编一函数,找出该

数组中值最小的元素,输出该元素及其两个下标。

30.输入1行字符(不超过80个字符)。编一函数,统计该行字符中字母的个数。

第三部分-结构、文件、位运算

1.设某团体要购进2种书籍。编写程序,从键盘输入书名、购买数量、书的单价,请编写程序,计算每种书的总金额,输出购书清单,输出的购书清单格式如下:

购书清单:

书名数量单价合计

……………………

2.用结构体类型编写程序,输入一个学生的数学期中和期末成绩,然后计算并输出其平均成绩。

3.编写程序,将下面地文字输出到文本文件myfile.txt中,如果该文本文件已存在,则更新文件的内容。

ABCDEFG,abcdefg

abcdefg,ABCDEFG

4.编写程序,将你正写编写的程序源代码显示在屏幕上。(提示:程序的源代码可视为文本文件)

5.编写程序,将你正写编写的程序源代码前10行显示在屏幕上。(提示:程序的源代码可视为文本文件)

6.编写程序,将你正写编写的程序源代码奇数行显示在屏幕上。(提示:程序的源代码可视为文本文件)

7.编写程序,将你正写编写的程序源代码偶数行显示在屏幕上。(提示:程序的源代码可视为文本文件)

8.编写程序,统计你正写编写的程序源代码的行数。

9.编写程序,统计你正写编写的程序源代码中字符a出现的次数。

10.编写程序,统计你正写编写的程序源代码中字符#出现的次数。

11.编写程序,统计你正写编写的程序源代码中字符i出现的次数。

12.编写程序,将从键盘输入的字符添加到文本文件myfile.txt的尾部。

13.编写程序,将从键盘输入的英文字符分4行添加到文本文件myfile.txt中,要求每行的字符数不大于10个。

14.编写程序,将从键盘输入的英文字符分3行添加到文本文件myfile.txt中,要求每行的字符数不大于10个。

15.编写程序,将从键盘输入的英文字符分2行添加到文本文件myfile.txt中,要求每行的字符数不大于10个。

16.编写程序,将阶梯形式的乘法口诀表输出到文件myfile.txt。

17.编写程序,将下面的图案输出到文件myfile.txt。

*

**

***

****

*****

18.编写程序,将下面的图案输出到文件myfile.txt。

*****

*****

*****

*****

*****

19.编写程序,将下面的图案输出到文件myfile.txt。

*****

****

***

**

*

20.编写程序,从键盘输入一串字符,将该字符的ASCII码输出到文件myfile.txt中,每个ASCII码之间用逗号分隔。

21.编写程序,从键盘输入10个字符,将该字符及字符的ASCII码输出到文件myfile.txt中,每个字符与其ASCII码之间用逗号分隔,每个字符占一行。

22.编写程序,从键盘输入整数(整数值的大小范围在65~122之间),将该整数所代表的字符输出到文件

myfile.txt中,每个字符之间用逗号分隔。

23.编写程序,从键盘输入10个整数(整数值的大小范围在65~122之间),将该整数及其所代表的字符输出到文件myfile.txt中,每个字符之间用逗号分隔,每个数占一行。

24.编写程序,从键盘输入一串字符,将该字符的ASCII码输出到文件myfile.txt中,每个ASCII码之间用空格分隔。

25.编写程序,从键盘输入10个字符,将该字符及字符的ASCII码输出到文件myfile.txt中,每个字符与其ASCII码之间用空格分隔,每个字符占一行。

26.编写程序,从键盘输入整数(整数值的大小范围在65~122之间),将该整数所代表的字符输出到文件myfile.txt中,每个字符之间用空格分隔。

27.编写程序,从键盘输入10个整数(整数值的大小范围在65~122之间),将该整数及其所代表的字符输出到文件myfile.txt中,每个字符之间用空格分隔,每个数占一行。

28.编写程序,将前一个程序的计算结果保存到文本文件myfile.txt中。

29.编写程序,从键盘输入一正整数,将该整数的八进制数保存到文本文件myfile.txt中。

30.编写程序,从键盘输入一正整数,将该整数的十六进制数保存到文本文件myfile.txt中。

31.编写程序,从键盘输入一整数,用位运算的方法输出该整数的二进制表示。

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

相关文档