C语言基础题
Jussy整理。
第一期:
1. 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身,例如:153是一水仙花数,因为153=1+125+27.
2. 一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如:6的因子是1,2,3,而6=1+2+3因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:6 its factors are 1,2,3
3. 有一个分数序列 2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20相之和。
4.一个球从100M高度自由下落,每次落地后反跳回原高度的一半,再落下,再反弹,求它在第10次落地时,共经过多少米,第10次反弹多高。
5.猴子吃桃问题。猴子第一天,摘下若干个桃子,当即吃了一半,还不过瘾,有多吃了一个。第二天早上又将剩下的桃子吃掉一半,有多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,就只剩一个桃子了。求第一天共摘了多少个桃。
6.两个乒乓球队进行比赛,各出3人。甲队为A,B,C;乙队X,Y,Z。以抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程找出3队赛手的名单。
7.将一个二维数组行和列的元素互换,存到另一个数组中。原始二位数组手动输入,行和列自定。
8.输出以下的杨辉三角形(要求输出15行)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
9.输出“魔方阵”。所谓魔方阵就是指这样的方阵,它的每一行,每一列和对角线之和均相等。例如三阶魔方阵为:
8 1 6
3 5 7
4 9 2
要求输出1~n2的自然数构成的魔方阵。
10.找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。
第二期:
1.有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。
2.有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。
3.输出以下图案:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
4.有一行电文,已按下面规律译成密码:
A→Z a→z
B→Y b→y
C→X c→x
. .
. .
. .
即第一个字母编程第二十六个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求编程序将密码译回原文,并输出密码和原文。
5.编译程序,将两个字符串连接起来,不要用strcpy函数。
6.编写一个程序,将字符数组S2中的全部字符复制到字符数组S1中。不用strcpy函数。复制时,'\0'也要复制过去。'\0'后面的字符不复制。
7.用递归方法求n!
8.给定d的值,输入a和m,求a*b和a的m次方的值。
9.写两个函数,分别求两个整数的最大公约数和最小公倍数,主函数调用这两个函数,并输出结果。两个整数有键盘输入。
10.写出一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。
第三期:
1.写一个函数,给定的一个3*3的二维整型数组转置,即行列互换。
2.写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。
3.写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1990,应输出“1 9 9 0”。
4.编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。
5.写一个函数,输入一行字符,将此字符串中最长的单词输出。
6.写一个函数,用“起泡法”对输入的10个字符按由小到大顺序排列。
7.写几个函数:
①输入10个职工的姓名和职工号;
②按职工号由小到大顺序排序,姓名顺序也随之调整;
③要求输入一个职工号,用折半查找法找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名。
8.写一个函数,输入一个十六进制数,输出相应的十进制数。
9.用递归法讲一个整数n转换为字符串。例如,输入4