编程思维训练题

更新时间:2024-05-23 16:04:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

编程思维训练一(学会用C语言运算符来表达你的想法)

用C表达式来表达下面的题目,比如判断一个整数a是不是等于9,对应的表达式为 a == 9。 数学运算

1. 将数学表达式c = 3a + 5b 翻译成C的表达式。 2. 已知某个圆的半径为a,表示圆的面积和圆的周长。\t\r ?

3. 已知字符变量a的值对应的是某大写字母,将其转换为对应的小写字母。\t\r ?4. 获取某个整数a的个位数值(比如75是5,109是9)。

5. 获取某个大于3位的10进制整数a的百位数值(比如1923是9)。 6. 假设整数a=1,b=5;表达式a++\t\r ?+\t\r ?++b\t\r ?的值是?

7. 不借助第三个变量,用一组表达式来交换两个整数a和b。

8. 设变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是? 9. int\t\r ?a=8,b=5,c;,\t\r ?执行语句\t\r ?c=a/b+0.4;后,c\t\r ?的值为?\t\r ?

10. 给定一个浮点数,要求将其转化为只保留小数点后2位的小数,其中需要四舍五入,比如1.23678->1.24。\t\r ?\t\r ?

Bool运算\t\r ?

1. 假设a=1,则表达式a=1和a==1的值分别是? 2. 假设a=1;表达式!(a-2)的值是?\t\r ?3. 表达式-1<=3<=-5的值是?\t\r ?

4. 假设a=3,b=4,c=5;表达式a+b>c&&b==c的值是?\t\r ?5. 假设a=3,b=4,c=5;表达式!(a>b)&&!c||1的值?\t\r ?

6. 对于整数a,如果表达式(a%5\t\r ?==\t\r ?3)\t\r ?&&\t\r ?(a%7==4)&&(a%5==3)&&(a<20)为真,那么a的值是?\t\r ?

7. 判断某个整数a是否能被7整除。\t\r ?

8. 判断某个边长为a的正方形的面积是否比某个半径为b的圆的面积大。\t\r ?9. 判断某个正整数a的个位数值在3,8的范围之内。比如16满足,12、19不满足。\t\r ?

10. 判断某个字符变量a是不是一个英文字符。 \t\r ?11. 判断某个字符变量a是不是一个数字字符。\t\r ?

12. 判断某个正整数a是不是一个质数(只能被自己和1整除的数)。\t\r ?13. 给定整数a,判断它是否能同时被7和3整除。\t\r ?14. 给定整数a,判断它是否能被7或者被3整除。\t\r ?

15. 给定字符a和b,判断它们是否有一个字符是阿拉伯数字符号。\t\r ?16. 任意给定某一年为a,判断它是否为闰年。\t\r ?

逗号运算符

1. 如果有int a; int i = 2;则执行完a = (i++, i++, i++)后;a和i的值分别是? \t\r ?

条件运算符

1. 有3个整数a,b,c,不用if只用基本表达式来找到其中的最大值。\t\r ?2. 已知:int\t\r ?n,i=1,j=2;执行语句n=i

\t\r ?\t\r ?

编程思维训练二(学会用结构来组织你的想法)\t\r ?分支练习\t\r ?

1. 通过scanf输入一个整数,判断它是否是一个偶数?如果是,则输出这个数。

2. 通过scanf输入一个整数,输出这个整数对应的绝对值。

3. 通过scanf输入一个字符,判断它是不是一个大写的英文字符,如果是,则输出这个字符。\t\r ?

4. 通过scanf输入一个字符,判断它是不是一个小写英文字符,如果是则输出这个字符的大写,如果不是则原样输出。\t\r ?

5. 通过scanf输入一个字符,判断其是不是一个阿拉伯数字字符,如果是则打印YES否则打印NO。\t\r ?

6. 通过scanf输入代表某一年的整数,如果该年是闰年则输出YES否则输出NO。\t\r ?

7. 通过scanf输入两个整数,将其中较大的数输出。\t\r ?8. 通过scanf输入三个整数,将其中较小的数输出。\t\r ?

9. 通过scanf输入三个整数,按照从小到大的顺序输出。(采用多重分支)\t\r ?10. 通过scanf输入一个3位整数,判断这个数是不是一个对称数,比如757,626等都是。\t\r ?

11. 给出一个百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。90分以上输出’A’,80~89分输出’B’,70~79分输出’C’,60~69分输出’D’,60分一下输出’E’ 12. 有一个函数:

y = 1; (x <= 1)

y = x; (x >1 && x < 10) y = 2x+1;(x >= 10)

终端输入x值,编程实现求解该函数的值。

13. 输入一个时间,输出它的下一秒时间。比如输入12:30:59秒下一秒是 12:31:00。

综合练习基础部分(所有人必做)

1. 在屏幕上输出10行内容,每行的内容都是“*”。 2. 在屏幕上输出10行内容,每行的内容都是“*****”。\t\r ?

3. 在屏幕上输出10行内容,每行的内容都不一样,第1行一个星号,第2行2个星号,依此类推第10行10个星号。\t\r ?

4. 在屏幕上输出10行内容,每行的内容都是“1”。\t\r ?

5. 在屏幕上输出10行内容,每行的内容都不一样,第1行输出“1”,第\t\r ?\t\r ?2行输出“2”,依此类推第10行输出“10”。\t\r ?6. 在屏幕上输出以下内容:\t\r ?A\t\r ?\t\r ?AB\t\r ?\t\r ?ABC\t\r ?\t\r ?ABCD\t\r ?

\t\r ?ABCDE\t\r ?\t\r ?ABCDEF\t\r ?\t\r ?\t\r ?\t\r ?

7. 在屏幕上输出以下内容: 12345 1234 123 12 1

8. 计算10个99相加后的值并输出。\t\r ?9. 计算从1加到100的值并输出。\t\r ?

10. 计算10的阶乘(1x2x3x4x5x6x7x8x9x10)。\t\r ?11. 计算2的20次方。\t\r ?

12. 计算从1到1000以内所有奇数的和并输出。\t\r ?

13. 计算从1到1000以内所有能被3或者17整除的数的和并输出。\t\r ?14. 计算从1到1000以内所有能同时被3,5和7整除的数的和并输出。\t\r ?15. 计算1到100以内能被7或者3整除但不能同时被这两者整除的数的个数。\t\r ?

16. 计算1到100以内能被7整除但不是偶数的数的个数。\t\r ?

17. 计算从1到100之间临近两个整数的和并依次输出。比如第一次输出3(1+2),第二次输出5(2+3),最后依次输出199(100+99)。\t\r ?

18. 计算从1加到100中途的所有数值的和,比如第一次输出1,第二次输出1+2的和,第3次输出1+2+3的和,最后一次输出1到100所有数相加之后的和。\t\r ?

19. 判断1077是不是一个质数(质数是只能被1和它自身整除的数)。\t\r ?

20.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?

21. 将某个8位的整数所有位的数值加在一起并输出。\t\r ?

22. 给定一个5位的整数,将该数按照10进制位逆置,例如给定12345变成54321,12320变成2321。\t\r ?

23.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字(1-9之间)计算的数据的个数是5。例如2+22+222+2222+22222。

24. 给定一个正整数n按照下面的公式计算S(浮点类型)的值。公式:\t\r ?S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n)\t\r ?

25. 给定某个字符数组,统计数组中所有英文字符的个数,比如“123fdd”中有3个。\t\r ?

26. 给定某个字符数组,统计数组中所有英文字符和阿拉伯数字的个数,比如“123fdd”中有英文字符有3个,数字3个。\t\r ?

27. 给定某个拥有5个元素的字符数组,数组的成员都有阿拉伯字符构成,试着将该数组转换成一个整数,比如字符数组的内容是:{‘1’,’2’,’3’,’3’,’2’} 则将被转换成12332。\t\r ?

28. 给定一个完全由英文字符构成的数组,将数组中的小写字母转换成大写字母,大写字母转换成小写字母并输出。例如“abcGGG”转化为“ABCggg”。\t\r ?

29. 给定一个完全由英文字符构成的数组,将数组中下标为偶数的字符都转换为大写(如果原来是大写则不变)。\t\r ?

30. 给一个完全由英文字符构成的字符数组加密,加密原则如下,除了字符‘Z’和‘z’之外,每个字符变成ASCII码值比它大1的字符,也就是‘A’变成‘B’。‘Z’或者‘z’转化为‘A’或者‘a’。\t\r ?

31. 计算某个由英文、数字以及标点符号构成的数组的总宽度,其中英文字符的宽度为1cm,数字宽度为0.5cm、标点符号宽度为0.8cm。\t\r ?

32. 接上题,如果规定行的宽度为10cm,将某个字符长度超过50的字符串截断,恰好使10cm宽的行能容纳。输出这个被截断的子数组。\t\r ?33. 给定某个整型数组,计算该数组所有偶数的和。\t\r ?

34. 给某个整型数组赋值,赋值规律如下,下标能被3整除的都赋值为1,能被5整除的都赋值为2,能被7整除的都赋值为3,能被3、5、7任意两个或者3个都能整除的数赋值为8,其余都赋值为0.\t\r ?

35. 通过终端输入10个整数并将其保存在一个整型数组中,数字保存在数组中的顺序与下标正好相反,也就是第一个被输入的数放在数组最后一个元素中,最后一个输入的数字放到第一个元素中。\t\r ?

36. 通过终端输入10个整数,计算10个整数中所有能被3整除的数的和。\t\r ?37. 给定一个5个元素构成的整型数组,每个元素的值都在0-9之间,按照位置将其组成一个5位数并输出,例如int a[5] = {1,2,2,3,7};则输出73221。\t\r ?

38. 给定2个大小一样的整型数组,将某个数组作为源数组,另一个作为目的数组,然后将源数组的内容拷贝到目的数组。\t\r ?

39. 给定一个整型数组,将第一个跟最后一个元素的内容交换。\t\r ?

40. 给定一个整型数组,从第1个元素开始将相邻的两个元素分别相互交换。交换完后,第1个元素将变成最后一个元素,其余元素都前进一位。\t\r ?

41. 给定一个有10个整形数的元素,将前5个元素跟后5个元素做整体交换,比如{1,1,1,1,1,2,3,2,2,2}->{2,3,2,2,2,1,1,1,1,1}。\t\r ?42. 判断一个整型数组是否是对称数组,例如{1,2,3,3,2,1}和{1,6,8,1,8,6,1}都是对称数组。\t\r ?

43. 给定两个大小一样的整型数组,交换这两个数组的内容。\t\r ?

44. 给定两个大小一样的整型数组,将两个数组中下标一样的元素两两相加,相加后的结果作为这两个数组对应下标的新值,也就是操作完毕后两个数组的内容完全相同。\t\r ?

45. 给定一个能容纳10个元素的整型数组,现有9个元素,现在第5个元素的位置插入一个数字88,后面的数字顺序后移。\t\r ?

46. 给定一个10个元素的整型数组,现在将第2个元素删除,后面的数组顺序前移。\t\r ?

47. 给定一个有100个元素的数组,查询数组中是否有元素的值等于某个数n。\t\r ?

48. 给定一个整型数组,求该数组元素中最大值的下标。\t\r ?49. 给定一个整型数组,求该数组中第二大的数的下标。\t\r ?

50. 给定一个整型数组,求该数组中数值小于10的元素的个数。\t\r ?51. 给定一个整型数组,计算大于该数组平均值的元素的个数。\t\r ?

52. 给定一个整型数组,找到数组中的最小值,并将其放到数组的首元素中,原来首元素的内容放到最小值所在的元素中。\t\r ?

53. 给定一个整型数组,统计某个整数在数组中出现的次数。\t\r ?

54. 给定一个英文句子,单词之间用1个空格分开,求出第2个单词的偏移位置。例如“Professor du comes from Korea”的偏移位置是10。\t\r ?

55. 给定一个英文句子,单词之间用1个空格分开,求其中所有单词的数量。\t\r ?56. 给定两个字符数组,将这两个拼接起来放在第一个数组中(假定第一个数组足够长),比如“abc”和“123”构成“abc123”。\t\r ?

57. 将一个字符数组循环右移2位。比如”12345”--‐>”45123”,假定字符数组中字符的数量大于2.\t\r ?

58. 给定一个整型数组,数组的长度为N(N>3),从数组中寻找一个连续的长度为3的子数组,要求该子数组的和最大。\t\r ?

59. 给定两个长度一样的整型数组,判断两个数组是否相同,相同的原则是数组中的每一个相互对应的元素的“合值”相同,“合值”是指元素对应的整数所有位的和,例如:a[0]的值是1112,b[0]的值是23,则这两个元素“相同”。\t\r ?

60. 给定两个字符数组,比较这两个字符数组的大小,比较的原则是字符数组中所有字符的ASCII值相加后的和值,和值越大则字符数组越大。\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?

综合练习(基础差者选择性做)\t\r ?1. 在屏幕上输出以下图形:\t\r ?

*\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?***\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?*****\t\r ?

2. 在屏幕上输出以下图形:\t\r ?0\t\r ?1\t\r ?1\t\r ?1\t\r ?--‐1\t\r ?0\t\r ?1\t\r ?1\t\r ?--‐1\t\r ?--‐1\t\r ?0\t\r ?1\t\r ?--‐1\t\r ?--‐1\t\r ?--‐1\t\r ?0\t\r ?--‐1\t\r ?--‐1\t\r ?--‐1\t\r ?--‐1\t\r ?3. 在屏幕上输出以下图形:\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?*\t\r ?

1\t\r ?1\t\r ?1\t\r ?1\t\r ?0\t\r ?

\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?***\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?*****\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?***\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?\t\r ?*\t\r ?

4. 任意给定一个位数不超过9的整数将其所有位的数值加在一起并输出。\t\r ?5. 任意给定一个不超过9位的整数,将其高低位翻转,例如给定12345变成54321,12320变成2321。\t\r ?

6. 有1、2、3、4个数字,输出所有由这4个数字组成的互不相同且无重复数字的三位数?

7. 对一个整数进行质因数分解, 例如60可以分解为60 = 2*2*3*5。 8. 计算N的阶乘后0的个数。

9. 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数。

10. 有这样一个数列,\t\r ?这个数列中前两个数为1和1,\t\r ?从第三个数开始,\t\r ?每个数都等于前两项之和,\t\r ?使用循环输出这个数列的前20项\t\r ?\t\r ?例如:\t\r ?1\t\r ?1\t\r ?2\t\r ?3\t\r ?5\t\r ?8\t\r ?13\t\r ?21\t\r ?35\t\r ?....\t\r ?

11. 一个数如果恰好等于它的因子(除了自身以外的约数)之和,\t\r ?这个数称为完数,\t\r ?例如6的因子是1,2,3,\t\r ?而6=1+2+3,\t\r ?因此6是完数,\t\r ?请找出1--‐1000之内的完数。\t\r ?

12. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?\t\r ?

13. 任意给定一个整型数组,将数组里的元素的顺序倒转过来。\t\r ?

14. 任意给定一个整型数组,将某一个数字插入到数组的某个位置上(插入后原来数组最后一个元素丢弃)。\t\r ?

15. 任意给定一个整型数组,删除数组中某一个元素,删除元素后面的元素要依次往前递补。\t\r ?

16. 给定一个按照由小到大排好序的整型数组,快速定位数组中是否有某个整数n。\t\r ?

17. 给定一个排序(升序)整型数组,将某个数n插入到该数组中,要求新数组也必须是有序的。\t\r ?

18. 给定一个整型数组,数组中的元素的值在1-9之间(包括1和9),统计数组中每个元素对应的值出现的次数。比如数组{2,3,2,3,5,6},2和3分别出现了2次,5和6出现了1次。\t\r ?

19. 将两个已排序(升序)的数组合并成一个新数组,合并后的数组也是排好序的。\t\r ?

20.将一个整数列按奇数在前偶数在后的顺序重新排列,并要求奇偶两部分分别有序。

21. 将某个字符数组中ASCII为偶数的字符全都删除,删除后形成一个新的数组。\t\r ?

22.请计算2的100次方的值并计算有多少个8。

23. 给定一个英文句子,单词之间用1个或者多个空格分开,求其中所有单词的数量。\t\r ?

24.将任意一个字符数组循环右移N位。

25.给定一个整数和一个整数数组,从数组里找两个元素,他们的和等于给定的整数。

26.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。

27.给定两个排好序的数组A,B,大小分别为n,m。给出一个高效算法查找A中的哪些元素存在B数组中。

28.输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。

29.给定一个字符数组,判断某个字符串是否在这个字符数组中,比如“abdefghj78”中包含“defg”。

30.给定一个整型数组,统计数组中每个元素对应的值出现的次数。比如数组{2,3,2,3,5,6},2和3分别出现了2次,5和6出现了1次。

31.两个兵乓球队进行比赛, 各出三人, 甲队为A,B,C三人, 乙队为X,Y,Z三人, 已抽签决定比赛名单, 有人向队员打听比赛的名单, A说他不和X比, C说他不和X,Z比, 请编写程序找出三队赛手的名单。

32.返回一个整数数组的连续子数组,该子数组的和在所有连续子数组里和最大。例如,[?2,1,?3,4,?1,2,1,?5,4],\t\r ?\t\r ?子数组[4,?1,2,1]\t\r ?是符合该要求的最大子数组。

33.n个数字(0,1,…,n--‐1)形成一个圆圈,从数字0开始,\t\r ?每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。\t\r ?当一个数字删除后,从被删除数字的下一个继续删除第m个数字。\t\r ?求出在这个圆圈中剩下的最后一个数字。 \t\r ?\t\r ?

本文来源:https://www.bwwdw.com/article/5kx7.html

Top