《高级程序设计》实习基础类编程题目(顺序结构类题目)1、(数字处理)输入一个三位整数x(999=>x>=100),将其分解出百位、十位、各位,并求出各位之和以及各位之积。
2、要将"Program"译成密码,译码规律是:用原来字母后面的第5个字母代替原来的字母.例如,字母"A"后面第5个字母是"F"."F"代替"A"。
(选择结构类题目)3、编程实现以下功能:读入两个运算数(data1和data2)及一个运算符(op),计算表达式data1op data2的值,其中op可为+,-,*,/(用switch语句实现)。
(题目可扩充到四则混合运算,可以将“+、-、*、\”以及“()”考虑进去)4、编一程序,对于给定的一个百分制成绩,输出相应的五分值成绩。
设90分以上为'A',80-89分为'B',70-79分为'C',60-69分为'D',60分以下为'E'(用switch语句实现)。
(循环结构类题目)5、求Sn=a+aa+aaa+------+aaaaaaa(n个a),其中a和n都从键盘中输入,如从键盘中输入2,5,则计算S5=2+22+222+2222+22222。
(要求使用三种循环语句分别完成)6、韩信点兵。
韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。
编程求韩信至少有多少兵?7、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
8、(穷举算法)古希腊人认为因子的和等于它本身的数是一个完全数(自身因子除外),例如28的因子是1、2、4、7、14,且1+2+4+7+14=28,则28是一个完全数,编写一个程序求2-1000内的所有完全数。
9、(穷举算法)(钱币问题)在日常生活中常常需要用一些较小面额的钱币去组合出一定的币值。
现有面值为1元、2元和5元的钞票(假设每种钞票的数量都足够多),从这些钞票中取出30张使其总面值为100元,问有多少种取法?每种取法的各种面值的钞票各为多少张?(数组类题目)10、已知一组字符串a[10]=”abCDefGHi”,将其中的小写字母改写成大写字母。
11、已知有20个两位正整数的数组a[20]={10,11,12,13,14,19,18,17,16,15,20,21,22,23,24,29,28,27,26,25},编一程,将数组a中满足:个位数加十位数是偶数的元素赋给数组b[],并对数组b[]从小到大排序打印。
例:11,13。
12、(排序)已知有20个两位正整数的数组a[20]={10,11,12,13,14,19,18,17,16,15,20,21,22,23,24,29,28,27,26,25},从键盘输入上述数组a中的某个数,编写一程序,将该数从数组a中删除掉,将删除后该数的数组a打印。
(编程思路:需要考虑键盘输入的数在数组中的位置,可能的位置是输入的数值为10,刚好是数组第一个元素;可能是数组a中间的某个数值;可能是数组a最好一个数值25,整个处理都不相同)13、(排序)已知一组字符串a[20]="yyzzabcdefYYZZABCDE";编一程,将其中的小写字母换成下一个字母,即a换成b,b换成c,z换成a。
然后对数组a[20]从小到大排序。
14、已知一组字符串a[20]="yyzzabcdefYYZZABCDE";编一程,将其中的大字母换成下一个字母,即A换成B,B换成C,Z换成A。
然后对数组a[20]从小大到小排序。
15、已知有20个两位正整数的数组a[20]={10,11,12,13,14,19,18,17,16,15,20,21,22,23,24,29,28,27,26,25},编一程,将数组a中满足:个位数减十位数>0的元素赋给数组b[],并对数组b[]从小到大排序打印。
例:12,13。
16、(排序)有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
17、(矩阵与二维数组)将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。
例如,二维数组中的数据为:333333444444555555则一维数组中的内容应是:33445533445533445518、假定输入的字符串中只包含字母和*号。
请编写程序,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****A*BC*DEF*G19、求3×3矩阵的最小值并输出。
例如,当矩阵为:123495786则最小值为:1(进制转换问题)20、一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,求这个三位数。
(函数类题目)21、写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。
22、(函数+数组)写一个函数,求一维数组a中的奇数个数,在主函数中调用函数并输出结果。
23、写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。
在主函数中调用该函数并输出,如输入1990,应输出“1990”。
24、(函数+字符串)编写一个函数,由实参传来一个字符串,统计此字符串中字母的个数,在主函数中输入字符串以及输出结果。
25、(函数+数组)写一个函数,求出a所指数组中最大数(规定最大数不在a[0]中),并且将最大数和a[0]中的数对调。
在主函数中调用函数并输出结果,例如数组中原有的数为:7、10、12、0、3、6、9、11、5、8,输出的结果为:12、10、7、0、3、6、9、11、5、8。
(指针+函数类题目)26、有一个数组int p[nSize],要求写一个函数:V oid myfunc(int*p,int nSize);将p中的0都移至数组末尾,将非0的移至开始(保持原来的顺序不变)。
例如:A原来是:1,0,3,4,0,-3,5经过myfunc处理后为:1,3,4,-3,5,0,027、编写函数void fun(int x,int*pp,int*n),它的功能是:求出x的偶数因子,并按从小到大的顺序放在pp所指的数组中,这些因子的个数通过形参n返回(假设pp指向足够大的空间)。
如,若x中的值为24,则有6个数符合要求,它们是2,4,6,8,12,24。
28、编一个函数fun(int*a,int n,int*odd,int*even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。
形参n给了数组中数据的个数:利用指针odd返回奇数之和,利用指针even返回偶数之和。
例如:数组中的值依次为:1,8,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数之和8。
29、编写一个函数int flength(char*s),计算字符串s的长度(文件操作类题目)30、有5个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号、姓名、3门课成绩),计算平均成绩,将原有数据和计算出的平均分数存放在磁盘文件”stud.txt”中。
(函数类题目)31、(函数+数组)写一个函数,求一维数组a中的最小元素及其下标。
例如,当一维数组a中的元素为:1,4,2,7,3,12,5,34,5,9,程序的输出应为:The min is:1,pos is:0。
用主函数调用这个函数,并输出结果。
32、写一个判完数的函数,在主函数输入一个整数,输出是否为完数的信息。
所谓完数,就是指一个正整数,它的各因数之和等于其自身。
例如,28=1+2+4+7+14,28是一个完数。
33、(函数+数组)写一个函数,求4*4矩阵的第2行(以下标为行数)元素的和。
在主函数中调用这个函数并输出结果。
34、写一个函数,求[1,M](10<M<100)之间所有不能被3整除的整数之和。
请将计算结果保存到变量s中。
在主函数中调用这个函数,并输出结果。
M由键盘输入。
(指针+函数类题目)35、编写函数void fun(int m,int*sum),功能是:求一个三位整数m的每位数之和sum,m的值由键盘输入。
36、(指针+函数+数组)编写函数double fun(double*a),求一维数组a中所有元素的平均值。
37、编写函数void fun(char*str1),将字符串中所有的小写字母转换为大写,其它字符不变(不使用转换函数)。
38、编写函数int fun(char*str1),统计字符串中元音字母’a’、’e’、’i’、’o’、’u’的个数。
(结构体类题目)39、编写程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。
40、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
41、人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。
函数fun的功能是:找出指定编号人员数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中编号为空串。
42、已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。
请编写给函数fun,函数的功能是:找出成绩最高的学生的记录,通过形参指针传回主函数(规定只有一个最高分)。
(指针+函数类题目)43、编写函数void fun(char*s,int n),求[1,n]之间所有不能被3整除的整数之和s,n 的值由键盘输入。
44、编写函数int fun(char*a,int n),计算机数组a中最小元素的下标并返回。
45、编写函数fcopy(char*s,char*t),实现字符串复制(不使用字符串拷贝函数)。
46、编写函数fncopy(char*s,char*t,int n),实现将字符串s中的前n个字符复制到字符串t中。
47、编写函数void fun(char*s,int n,char*t,int m),实现功能将字符串s(包含n个字符)中从m个字符开始的字符复制到另外一个字符串t中。