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];