C语言编程题题库(1)

  • 格式:docx
  • 大小:22.73 KB
  • 文档页数:7

1. 编程输出显示汉诺塔问题中移动的过程。

2. 从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和(忽略整数前的正负号)。例如,输入x为1234,则有1234分离出其千位1,百位2,十位3,个位4,然后计算1+2+3+4=10,并输出10。

3. 利用递归的方法,求n!的结果.n从键盘输入。

4. 编程计算1×2×3+3×4×5+...+99×100×101的值。

5. 利用π/2=2/1×2/3×4/3×4/5×6/5×6/7×……的前100项之积计算π的值。

6. 利用π/4=1-1/3+1/5-1/7+……计算π的值,直到最后一项的绝对值小于10的-4次方为止,要求统计总共累加了多少项。

7. 编程计算 a+aa+aaa+...+aa...a(n个a)的值,n和a的值由键盘输入。

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

9. 利用e=1+1/1!+1/2!+1/3!+……+1/n!,计算e的近似值,当最后一项的绝对值,小于10的-5次方,认为达到了精度要求。要求统计总共累加了多少项。

10.2^0+2^1+…+2^63.

11.九九乘法表上(下)三角。

12.杨辉三角。

13.从键盘按由小到大输入10个整数存于数组中,再从键盘任意输入一个整数x,将x有序的插入其中.要求在main函数进行输入和输出,插入的过程在自定义函数中完成。

14.从键盘10个整数存于数组中,再从键盘任意输入一个整数x,若存在则将x删除,若x不存在则输出"不存在!"的信息.要求在main函数进行输入和输出,删除的过程在自定义函数中完成。

15.从键盘按由小到大输入10个整数存于数组中,再从键盘任意输入一个整数x,利用二分法进行查找,若查找成功,输出x的位置值,否则输出"查找失败"的信息.要求在main函数进行输入和输出,查找的过程在自定义函数中完成。

16.从键盘输入某班级学生某门课程的成绩(学生人数不超过10个)存于数组中,具体人数从键盘输入,编程将分数从高到低进行排序.要求在main函数中进行输入输出,排序过程用自定义函数实现。

17.从键盘输入某班级学生的学号和成绩(学生人数不超过10个)存于两个数组中(学号一个数组,成绩一个数组),再从键盘输入任意一个学号,输出该学生的成绩,要求从main函数中进行输入和输出,查找的过程在自定义函数中实现。

18.编写程序,从键盘输入10个整型数据,存入数组a中,计算其最大值、最小值及其所在元素的下标位置。

19.韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队报数。按从1到5报数,最末一个士兵报的数是1;按从1至6报数,最末一个士兵报的数是5;按从1至7报数,最末一个士兵报的数是4;最后再按从1至11报数,最末一个士兵报的数位10。你知道韩信至少有多少兵吗?

20.编写程序模拟骰子的6000次投掷,用函数rand()产生1~6之间的随机数face,然后统计1~6每一面出现的机会(概率)存放到数组frequency中。

21.猜数游戏,由计算机想一个1~100之间的数字,请玩家猜,如果猜对了结束游戏,否则给出提示,告诉玩家猜的数是太大还是太小,直到玩家猜对为止。记录玩家猜的次数。

22.编程求解马克思手稿中的趣味数学题,有30个人,期中有男人女人和小孩,在一家饭店里吃饭,一共花了50元,每个男人各花3元,每个女人各花2元,每个小孩各花1元,请编程计算男人,女人小孩各有几人。

23.鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只。

24.用1元5角人民币兑换5分,2分和1分的硬币(每一种都要有)共100枚,问共有几种兑换方法?每一种方案各换多少枚?

25.我国古代的《张丘建算经》中有这样一道著名的百鸡问题:"鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买鸡,问鸡翁,母,雏各几何?"其意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡,母鸡和小鸡各能买多少只?

26.爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,则最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯共有至少多少阶?

27.用switch编程设计一个简单的计算器,要求用户从键盘输入的表达式: 操作数1运算符操作数2(例如:3+2)

计算表达式的值,指定的算术运算符为 + - * /。要求连续做多次算术运算,每次运算结束后程序都给出提示:是否继续(Y/N)?当用户输入Y或y时,程序继续进行,当用户输入N或n时,退出运行。

28.设有三个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果,假设有10人投票。候选人信息可如下描述。要求程序完整。

struct person

{

char name[20];

int count;

};

29.今有班级学生5人,每个学生的信息如下,试编程求出学生各科的平均成绩。要求程序完整。

struct STUDENT

{

int studentID;

char studentName[10];

int score[4];

};

struct STUDENT

stu[5]={{101,"zhang",90,83,72,82},{102,"wang",78,92,88,78},{103,"li",89,72,98,66},{104,"zhao",78,95,87,90},{105,"liu",65,80,90,75}};

30.完善下面的程序。已知主函数,完善链表的建立与输出函数。要求程序完整。

#include

struct node

{

int data;

struct node *next;

};

void main()

{

struct node *head=NULL;

int i,n,x;

printf("请输入结点个数: ");

scanf("%d",&n);

for(i=1;i<=n;i++)

{

head=create(head);

}

print(head);

}

//函数功能:新建一个节点,添加到链表的末尾,返回头指针

struct node* create(struct node *L)

{}

//函数的功能:显示已经建立好的链表

void print(struct node *L)

31.完善下面的程序。已知主函数,完善链表的删除操作函数。要求程序完整。

#include

struct node

{

int data;

struct node *next;

};

void main()

{

int x;

struct node a, b, c, d, e, *head=NULL,*p;

a.data=102;

b.data=106;

c.data=108;

d.data=113;

e.data=115;

head=&a;

a.next=&b;

b.next=&c;

c.next=&d;

d.next=&e;

e.next=NULL;

printf(" \n原链表为:\n");

p=head;

while (p!= NULL)

{

printf("%10d",p->data);

p = p->next;

}

printf("请输入要删除的值 : ");

scanf("%d",&x);

head=del(head,x);

p=head;

while (p!= NULL)

{

printf("%10d",p->data); p = p->next;

}

}

struct node *del(struct node *L,int x)

{

}

32.班级有5名学生,学生的信息如下,下面程序要求删除指定学号的学生信息。完善程序实现删除功能。要求程序完整。

#include

struct stud

{

int sno;

char sname[10];

int score[2];

};

void main()

{

struct stud

stu[5]={{101,"zhang",90,83},{108,"wang",78,92},{105,"li",89,72},{103,"zhao",78,95},{109,"liu",65,80}};

int x;

printf("请输入要删除的学生的学号");

scanf("%d",&x);

del(stu,x);

printf("\n删除后的学生信息为\n");

for(int i=0;i<4;i++)

printf("%d %s\t\t%d %d\n",stu[i].sno,stu[i].sname,stu[i].score[0],stu[i].score[1]);

}

void del(struct stud s[],int x)

{

}

33.班级有5名学生,每个学生的信息如下,下面程序是按照个人平均成绩由高到低排序。请完善程序实现排序功能。要求程序完整。

#include

struct STUDENT

{

int studentID;

char studentName[10];

int score[4];