经典C语言试题练习

0、计算100以内的奇数和。

1、打印所有“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=1的立方  + 5的立方+ 3的立方。


2、有一整数序列
 1,1,2,3, 5, 8, 13,21......
求出这个数列的前20项之和。

3、有一分数序列
2/1, 3/2, 5/3, 8/5, 13/8, 21/13,......
求出这个数列的前20项之和

4、写一个程序,将输入的字符串按反序输出,例如给定输入为abcde,输出结果为edcba。
命令行输入  s.exe  abcde                  
结果 edcba

5、写一个程序,对10个任意数字进行由大到小的排序。

6、输入一行字符串,找出其中大写字母、小写字母、数字以及其他字符的个数。

7、接上题,将找出的结果按照大写字母、小写字母、数字以及其他字符的次序排列成一个新的字符串。
Ah0,BCg34.
ABChg034,.

8、写一个函数实现将任意位数(<=10)数字字符串(0-9)转化为相应的数字,如:将  “123”转化成  123。不能使用atoi函数
 int str2num(char *s);

9、写一个函数实现将任意一个正整数(long)转化为一个相应的字符串,如:将  123转化成  “123”。
   char *num2str(int num,char *str);

10、写一个求字符串的长度的函数。(不准使用库函数strlen),在main函数中输入字符串,并输出其长度。
   int mystrlen(char *s);

11、写一个函数,实现两个字符串拼接的功能。(不准使用库函数strcat),在main函数中输入2个字符串。  hello  world    ====   helloworld
char *mycat(char *s1,char *s2);

12、写一个函数实现strcpy/strncpy的功能。
12-1、写一个函数实现strcmp/strncmp的功能。

13、写一个函数实现将任意字符串按照ASC值从小到大顺序排列。
     函数原型为:
     char *sort(char *s);

14、写一个函数将任意给定的两个字符串取交集
 函数原型为:
     char *jiaoji(char *s,char *s1,char *s2);
若s1:  abcddebcdf  ==》去重后的s1  abcdef  
  s2:  bcdfgb
则返回的是 s: bcdf

15、写一个函数将任意给定的两个字符串取并集
 函数原型为:
     char *bingji(char *s,char *s1,char *s2);
若s1:  abcdde
  s2:  bcdfg
则返回的是  abcdefg

16、定义学生信息如下: 
struct stu
{
   int stuId;
   char name[5];
   int score;
}; 
1)、手工输入增加5条信息,显示出来;
2)、列出分数大于80的学生信息
3)、按照分数高低排序并显示

17、将13题第3步的结果写入文件


18、写一个程序,找出一个文件中数字字符的个数。(文件自己给定)

19、int main(int argc,char **argv);  
    ./m  111 254  求和   argv[2]

20、写一个程序,求一个任意给定文件的行数。   '\n'

21、给定一个含有n个字符的文件,在这n个字符的中间处插入一个给定的字符串。  如: 源文件里面的内容是  12345,插入abc,结果:123abc45;
如: 源文件里面的内容是  123456,插入abc,结果:123abc456;

1,鸡兔同笼
已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”(不要引号)。

2,判断正负
输入一个整数,请你不用任何关系运算符来判断出该数字是正数还是负数。

3,求差值
输入一个整数数组,将它们连接起来排成一个数,找出能排出的所有数字中最大,最小的两个数,
输出这两个数的差值。例如输入数组{1, 2},则输出9。
eg:
输入: 1 2 3
==>   321 - 123
输出: 198

4,寻找最大数
请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,
比如当n=92081346718538,m=10时,则新的最大数是9888


5,输入一个正整数n,打印出杨辉三角的前n行
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
。。。

6,输入一段字符串,把该字符串中的数字字符,以整数的形式提取出来。
eg:
输入: 123sdf+546fgs%32f&76bfh/*
输出:  123  546  32  76

7,回文字符串
所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。
当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。
现在要求你,给你一个字符串,可在任意位置添加字符,请求出最少再添加几个字符,可以使这个字符串成为回文字符串。
输入: 一个字符串
输出:所需添加的最少字符数

eg:
输入:Ab3bd
==>  dAb3bAd
输出:2

8,占连坐
输入三个正整数 m n k,分别表示有m行n列的座位,k表示要占的连坐是几连坐
然后把座位的被占状态赋值;1表示被占,0表示没有被占,
请输出能占到连坐的方式有多少种。
eg:
m:3   n:5    k:3
1 1 0 0 0
0 0 0 0 1
1 0 1 1 1
输出:能占到连坐的方式有 3 种

9,分解连续数
输入一个数字,求出该数字能分解成连续数的方式有多少中
eg:
输入:   15
==>  15 = 1+2+3+4+5
15 = 4+5+6
15 = 7+8

输出:    3

10,点数
在一个二维的坐标系内有三个点,这三个点的x,y坐标都是整数,把这三个点构成一个三角形,
请你求出这个三角形内部和边界上的x,y坐标都为整数的点一共有多少个。

11,蛇形填数
在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:
10 11 12  1
9  16 13  2
8  15 14  3
7  6  5   4

输入:
直接输入方陈的维数,即n的值。(n<=100)
输出:
输出结果是蛇形方阵。
eg:
输入:  3
输出:
7 8 1
6 9 2
5 4 3

12,整数解
小明是一名初中生,她现在很苦恼,因为老师布置了一个让她苦恼的作业,你能不能帮助她呢?题目信息如下。
    已知二元一次方程 a*x+b*y=n, 判断这个二元一次方程有没有整数解 (x,y为未知数)
其中a,b,n都为整数且不等于零,同时满足0<a,b,n<2^16-1。

输入a,b,n的值
输出:yes / no

13,击鼓传花
输入三个正整数 m n k
m:总人数       n:间隔数     k:接花的目标的编号
把m个人围成一圈从1开始编号(1,2,3...),花从编号为1的人开始传递,花一传出去,该传花者就淘汰掉,
并击一次鼓,花要传递到下一个间隔数满足n的人手中(淘汰的人不算间隔数)。若该者的编号不为k,则该者再把花传递出去,
同时该传花者被淘汰掉,击鼓一次。重复此动作。直到花传递到编号为k的人手中。
输出击鼓的次数(注:若 k=1,则击鼓0次)

14,大数据乘法:
我们知道一般的整型的数据类型能表示的数字范围是有限的,如int的范围为 -2^15 ~ 2^15-1
现在请你帮忙写一个程序能求出两个非常大的数(20位)的积
eg:
输入: 6541635461316341663116  816579619846163168461164
输出:  841321613216461303486133543065433232654
提示:用字符数组实现


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值