C经典编程练习题
- 格式:docx
- 大小:17.14 KB
- 文档页数:11
c语言编程题库100题1. 计算两个整数的和编写一个C程序,接收两个整数作为输入并计算它们的和,并将结果输出。
2. 计算两个整数的差编写一个C程序,接收两个整数作为输入并计算它们的差,并将结果输出。
3. 计算两个整数的乘积编写一个C程序,接收两个整数作为输入并计算它们的乘积,并将结果输出。
4. 计算两个整数的商编写一个C程序,接收两个整数作为输入并计算它们的商,并将结果输出。
5. 判断一个整数是否为偶数编写一个C程序,接收一个整数作为输入并判断它是否为偶数,并将结果输出。
6. 判断一个整数是否为质数编写一个C程序,接收一个整数作为输入并判断它是否为质数(只能被1和自身整除的数),并将结果输出。
7. 计算一个整数的阶乘编写一个C程序,接收一个整数作为输入并计算它的阶乘,并将结果输出。
8. 计算一个整数的平方根编写一个C程序,接收一个整数作为输入并计算它的平方根,并将结果输出。
9. 判断一个字符串是否为回文字符串编写一个C程序,接收一个字符串作为输入并判断它是否为回文字符串(正向和反向读取都相同的字符串),并将结果输出。
10. 排序一个整数数组编写一个C程序,接收一个整数数组作为输入并对其进行排序,并将结果输出。
11. 求两个整数之间的最大公约数编写一个C程序,接收两个整数作为输入并计算它们的最大公约数,并将结果输出。
......(依此类推,共100道题)这是一个C语言编程题库,包含100道不同类型的题目。
你可以选择其中的题目进行练习和实践,通过解决这些问题来提升自己的C语言编程能力。
每道题目都有具体的描述和要求,你可以按照题目要求编写相应的代码,并运行测试。
如果遇到问题,可以参考相关的解法或向他人寻求帮助。
通过不断地练习和学习,你将逐渐掌握C语言的编程技巧和思维方式,提高自己在编程领域中的能力。
祝你编程愉快!。
完整版C语言100个经典题目在学习和掌握C语言编程技巧的过程中,解决各种经典题目是非常重要的。
下面是一份C语言的100个经典题目,帮助你提高编程能力和理解C语言的核心概念。
1. 编写一个程序,输出"Hello, World!"。
2. 编写一个程序,从键盘输入两个整数,然后输出它们的和。
3. 编写一个程序,从键盘输入两个整数,然后交换它们的值。
4. 编写一个程序,输出1到100之间所有的奇数。
5. 编写一个程序,输出1到100之间所有能被3整除的数。
6. 编写一个程序,判断一个年份是否为闰年。
7. 编写一个程序,将一个字符串逆序输出。
8. 编写一个程序,求出一个整数的阶乘。
9. 编写一个程序,判断一个数是否为素数。
10. 编写一个程序,输入一个字符串,然后统计其中的字母、数字和空格的个数。
11. 编写一个程序,将一个字符串转换为大写字母。
12. 编写一个程序,从键盘输入一个字符串,然后去除其中的重复字符。
13. 编写一个程序,将一个字符串按照指定分隔符进行拆分,并输出拆分后的结果。
14. 编写一个程序,将一个字符串中的所有单词首字母大写。
15. 编写一个程序,找出一个整数数组中的最大值。
16. 编写一个程序,找出一个整数数组中的最小值。
17. 编写一个程序,计算一个整数数组中所有元素的平均值。
18. 编写一个程序,对一个整数数组进行冒泡排序。
19. 编写一个程序,对一个整数数组进行选择排序。
20. 编写一个程序,对一个整数数组进行插入排序。
21. 编写一个程序,对一个整数数组进行快速排序。
22. 编写一个程序,计算斐波那契数列的第n个数字。
23. 编写一个程序,计算一个整数的平方根。
24. 编写一个程序,判断一个字符串是否为回文字符串。
25. 编写一个程序,输入一个正整数n,然后输出n行杨辉三角。
26. 编写一个程序,将一个二维整数数组进行转置。
27. 编写一个程序,将一个二维整数数组进行矩阵乘法运算。
1.逆序输出正三位数#include <stdio.h>int main(){int input,output= 0;scanf("%d",&input);while(input != 0){output = output*10 + input%10; input /= 10;}printf("%d\n",output);return 0;}2.百元找零函数#include <stdio.h>int main(){int amount=100;int price=0;printf("请输入金额(元)");scanf("%d",&price);printf("请输入票面");scanf("%d",&amount);int change=amount-price;printf("找您%d元。
\n",change);return 0;}3.求平均数#include <stdio.h>int main(){int a,b;scanf("%d %d",&a,&b);double c=(a+b)/2.0;/*scanf("%d",&amount);这是注释,我随便放的,没意义int change=amount-price;*/printf("%d和%d的平均值是%f\n",a,b,c);return 0;}4.写出程序的输出:int i=1;switch(i/3){case0:printf("zero");case1:printf("one");case2:printf("two");}正确答案是:zeroonetwo。
(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。
#includeint fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写⼀个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运⾏后 a 中的值为8,b中的值为3。
#includevoid fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输⼊3个数,将最⼤值放在变量a中,最⼩值放在变量c中。
c编程练习题(打印版)C语言编程练习题一、基础练习1. 编写一个程序,计算并输出两个整数的和、差、乘积和商。
提示:使用scanf函数输入两个整数,使用算术运算符进行计算。
2. 编写一个程序,计算并输出一个圆的面积。
提示:圆的面积公式为A = π * r * r,其中 r 是圆的半径。
3. 编写一个程序,计算并输出一个矩形的周长和面积。
提示:矩形的周长公式为 P = 2 * (l + w),面积公式为 A = l * w,其中 l 是长度,w 是宽度。
4. 编写一个程序,判断一个整数是奇数还是偶数。
提示:使用模运算符 % 来判断。
二、控制结构练习1. 编写一个程序,根据用户输入的分数,输出对应的等级。
提示:90分以上为 A,80-89分为 B,70-79分为 C,60-69分为D,60分以下为 F。
2. 编写一个程序,实现简单的猜数字游戏。
提示:程序随机生成一个1到100之间的整数,用户输入猜测的数字,程序根据用户输入给出提示(太高、太低或正确)。
3. 编写一个程序,实现一个简单的计算器。
提示:程序提示用户输入运算符(+、-、*、/)和两个操作数,然后输出计算结果。
三、数组练习1. 编写一个程序,实现对一个整数数组的排序。
提示:可以使用冒泡排序、选择排序或插入排序算法。
2. 编写一个程序,找出一个字符串数组中最长的字符串。
提示:遍历字符串数组,比较每个字符串的长度。
3. 编写一个程序,实现字符串的反转。
提示:可以使用数组的索引特性来实现。
四、函数练习1. 编写一个函数,计算一个数的阶乘。
提示:使用递归或循环来实现。
2. 编写一个函数,实现字符串的复制。
提示:不使用库函数,手动复制字符串。
3. 编写一个函数,判断一个字符串是否为回文字符串。
提示:回文字符串是指正读和反读都一样的字符串。
五、指针练习1. 编写一个程序,使用指针交换两个整数的值。
提示:注意指针变量的赋值和解引用。
2. 编写一个程序,实现字符串的连接。
1.寻找数组中的最大值和最小值2.寻找数组中的中位数3.查找数组中给定元素的索引4.反转数组5.合并两个升序数组6.移位数组7.查找两个数组的交集8.查找两个数组的并集9.查找两个数组的差集10.寻找数组中的众数11.寻找数组中的缺失元素12.寻找数组中的重复元素13.计算数组的和14.计算数组的平均值15.计算数组的方差16.计算数组的标准差17.比较两个数组是否相等18.复制数组19.排序数组20.搜索数组(线性搜索)21.搜索数组(二分搜索)22.插入元素到数组23.删除元素到数组24.更新数组中的元素25.创建动态数组26.释放动态数组27.字符串复制28.字符串连接29.字符串比较30.字符串搜索31.字符串替换32.字符串分割33.字符串反转34.字符串大小写转换35.字符串修剪36.计算字符串长度37.字符串格式化38.链表创建39.链表插入40.链表删除41.链表搜索42.链表反转43.链表排序44.链表合并45.链表复制46.链表释放47.树创建48.树插入49.树删除50.树搜索51.树反转52.树排序53.树合并54.树复制55.树释放56.堆创建57.堆插入58.堆删除59.堆搜索60.堆反转61.堆排序62.堆合并63.堆复制64.堆释放65.图创建66.图插入67.图删除68.图搜索69.图反转70.图排序71.图合并72.图复制73.图释放74.队列创建75.队列插入76.队列删除77.队列搜索78.队列反转79.队列排序80.队列合并81.队列复制82.队列释放83.栈创建84.栈插入85.栈删除86.栈搜索87.栈反转88.栈排序89.栈合并90.栈复制91.栈释放92.哈希表创建93.哈希表插入94.哈希表删除95.哈希表搜索96.哈希表反转97.哈希表排序98.哈希表合并99.哈希表复制100.哈希表释放。
C语言经典程序100题(答案版)【程序1】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:1.#include"stdio.h"2.#include"conio.h"3.main()4.{5.long int i;6.int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;7.scanf("%ld",&i);8.bonus1100000*0.1;9.bonus2bonus1+100000*0.75;10.bonus4bonus2+200000*0.5;11.bonus6bonus4+200000*0.3;12.bonus10bonus6+400000*0.15;13.if(i<100000)14.bonus i*0.1;15.else if(i<200000)16.bonus bonus1+(i-100000)*0.075;17.else if(i<400000)18.bonus bonus2+(i-200000)*0.05;19.else if(i<600000)20.bonus bonus4+(i-400000)*0.03;21.else if(i<1000000)22.bonus bonus6+(i-600000)*0.015;23.else24.bonus bonus10+(i-1000000)*0.01;25.printf("bonus%d",bonus);26.getch();27.}【程序2】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
c语言编程题考试题库及答案一、单项选择题1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x12LB. 0x12.5C. 0x12.0D. 0x12F答案:A2. C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. "Hello, World\"答案:C3. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int, int);C. int add();D. int add(a, b);答案:A4. C语言中,以下哪个选项是正确的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:B5. 在C语言中,以下哪个选项是正确的指针声明?A. int *p = 0;B. int *p = "Hello";C. int *p = 5;D. int p = 0;答案:A二、填空题1. 在C语言中,表示逻辑“与”操作的运算符是 ________ 。
答案:&&2. C语言中,表示逻辑“或”操作的运算符是 ________ 。
答案:||3. 在C语言中,表示逻辑“非”操作的运算符是 ________ 。
答案:!4. C语言中,表示赋值操作的运算符是 ________ 。
答案:=5. 在C语言中,表示取地址操作的运算符是 ________ 。
答案:&三、程序阅读题阅读以下C语言程序段,并回答问题。
```c#include <stdio.h>int main() {int a = 10, b = 20, c;c = a + b;printf("%d", c);return 0;}```1. 程序的输出结果是什么?答案:302. 如果将`c = a + b;`改为`c = a * b;`,程序的输出结果是什么?答案:200四、编程题1. 编写一个C语言程序,实现两个整数的加法运算,并输出结果。
C语言编程题带答案题目 1:求两个整数的最大值```cinclude <stdioh>int max(int num1, int num2) {if (num1 > num2) {return num1;} else {return num2;}}int main(){int num1 = 10, num2 = 20;int maxValue = max(num1, num2);printf("最大值为: %d\n", maxValue);return 0;}```分析:在这个程序中,我们定义了一个名为`max` 的函数,它接受两个整数参数`num1` 和`num2` 。
通过使用条件判断语句`if` 来比较这两个数的大小,如果`num1` 大于`num2` ,则返回`num1` ,否则返回`num2` 。
在`main` 函数中,我们给定了两个整数`num1` 和`num2` 的值,并调用`max` 函数来获取它们中的最大值,最后使用`printf` 函数将最大值输出到控制台。
题目 2:计算一个整数数组的平均值```cinclude <stdioh>float average(int arr, int size) {int sum = 0;for (int i = 0; i < size; i++){sum += arri;}return (float)sum / size;}int main(){int arr ={10, 20, 30, 40, 50};int size = sizeof(arr) / sizeof(arr0);float avg = average(arr, size);printf("平均值为: %2f\n", avg);return 0;}```分析:在这个程序中,首先在`average` 函数里,我们初始化一个变量`sum` 为 0 ,用于存储数组元素的总和。
C语言编程题(带答案)1、求100之内自然数中最大的能被17整除的数。
2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。
3、计算并输出200-400之间不能被3整除的整数的和。
4、从键盘输入10个数,统计非负数的个数,并计算非负数的和5、求100之内自然数中偶数之和。
6、输入5个数,求和并输出。
要求编写求和的函数。
7、编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。
8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。
9、编写程序,将一个一维数组的元素逆序存放并输出。
例如,原顺序为1,2,3,4,5,逆序后为5,4,3,2,1。
10、求3行3列矩阵a[3][3]={1,2,3,4,5,6,7,8,9}非对角线上元素之和。
11、编程判断输入的整数的正负性和奇偶性。
如果为正数,输出z;如果为负数,输出f;如果为偶数,输出o;如果为奇数,输出j12、计算并输出1-200之间不能被5整除的整数的和。
13、从键盘输入n和a的值,计算a+aa+aaa+...+aa...a(n个a)的值。
14、输入5个数,求它们中最大值和平均值并输出。
15、输出所有200-400之间能被3整除且个位数字为6的整数16、编写程序,将用户输入的字符串中所有的字符a去掉,然后输出剩余的字符。
17、计算并输出200-400之间不能被7整除的整数的和。
18.计算并输出200-400之间不能被5整除的整数的和19、从键盘输入10个数,统计非正数的个数,并计算非正数的和20、输入一串字符,将其中的大写字母变成对应的小写字母并输出。
21、打印所有的水仙花数。
所谓水仙花数是指一个三位数,其各位数字的立方和等于该数。
例如,153就是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。
22、一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。
C++经典编程例题(1)1、(已验证!)计算铁路运费。
已知从甲地到乙地,每张票托运行李不超过50公斤时,按每公斤0.13元,超过50公斤,超过部分按每公斤0.2元计算。
输入行李重量w,计算运费y.#include <iostream>using namespace std;void main(){float money=0,weight;cout<<"请输入货物重量(单位:千克):";cin>>weight;if (weight<0)cout<<”数据错误!”<<endl;if (weight <= 50)money = weight * 0.13;else if (weight > 50)money = 50 * 0.13 + (weight - 50) * 0.2;cout<<"\n总费用是:"<<money<<endl;}2、(已验证!)根据一元二次方程a*x*x+b*x+c=0求解方程。
输入a、b、c的值,求x1、x2的实根.#include <iostream>#include <cmath>using namespace std;void main(){double a,b,c,p,x1,x2,D;cout<<"请输入3个数:"<<endl;cout<<"a=";cin>>a;cout<<"b=";cin>>b;cout<<"c=";cin>>c;cout<<"方程为:"<<a<<"x^2+"<<b<<"x+"<<c<<"=0"<<endl;D=b*b-4*a*c;if (D<0)cout<<"方程无解!"<<endl;if (D==0){p=-b/(2*a);x1=p+sqrt(D)/(2*a);cout<<"方程有两个相同的实根。
"<<endl;cout<<"x1=x2="<<x1<<endl;}if (D>0){p=-b/(2*a);x1=p+sqrt(D)/(2*a);x2=p-sqrt(D)/(2*a);cout<<"方程有两个不同的实根。
"<<endl;cout<<"x1="<<x1<<endl<<"x2="<<x2<<endl;}}3、(已验证!)分别使用for和while求n!.注解n!=1*2*3*...*n,n由键盘输入。
For:#include <iostream>using namespace std;void main(){int i,n,s;s=1;cout<<"input n: ";cin>>n;for (i=1;i<=n;i++)s=i*s;cout<<s<<endl;}While:#include <iostream>using namespace std;void main(){int i,n,s;s=1;i=1;cout<<"input n: ";cin>>n;while(i<=n){s=i*s;++i;}cout<<s<<endl;}4、(已验证!)百钱买百鸡。
1只公鸡5元,1只母鸡3元,3只小鸡1元,现有100元钱要买100只鸡,有什么解法。
分别使用三重循环和二重循环来解.鸡翁,鸡婆,鸡雏各:12、4、84只鸡翁,鸡婆,鸡雏各:8、11、81只鸡翁,鸡婆,鸡雏各:4、18、78只鸡翁,鸡婆,鸡雏各:0、25、75只(1).三重循环:#include <iostream>using namespace std;void main(){const int cock=20,hen=33,chicken=100;int c,h,ck;for(c=0;c<=cock;c++){for(h=0;h<=hen;h++){for(ck=0;ck<=chicken;ck++){if(((c+h+ck)==100)&&((c*5+h*3+ck/3)==100)&&((ck%3)==0))cout<<"鸡翁,鸡婆,鸡雏各:"<<c<<"、"<<h<<"、"<<ck<<"只"<<endl;}}}}(2).两重循环:#include<iostream>using namespace std;void main(){int c,h,ck;for(h=0;h<33;h++)for(ck=0;ck<100;ck++) {c=100-h-ck;if(5*c+h*3+ck/3==100 && ck%3==0 && h+ck<=100)cout<<"鸡翁,鸡婆,鸡雏各:"<<c<<"、"<<h<<"、"<<ck<<"只"<<endl;}}5、(已验证!)求所有水仙花数。
所谓水仙花数是指三位数,其各位数立方和等于该数。
如153=1*1*1+5*5*5+3*3*3. (153 370 371 407)#include <iostream>using namespace std;void main(){int a,b,c,d;for (d=100;d<1000;d++){a=d/100; //分解出百位b=d/10%10;//分解出十位c=d%10;//分解出个位if (d==a*a*a+b*b*b+c*c*c){cout<<d<<" ";}}cout<<endl;}6、(已验证!)解数学灯迷。
有以下算式 ABCD-CDC=ABC,其中ABCD均为一位非负整数,求ABCD的值。
(1098)#include <iostream>using namespace std;void main(){int a,b,c,d,e;for (e=1000;e<10000;e++){a=e/1000;b=e/100%10;c=e/10%10;d=e%10;if (e-(c*100+d*10+c)==a*100+b*10+c){cout<<e;}}cout<<endl;}7、(已验证!)从键盘输入一个整数,判断此数是否为回文数。
所谓回文数就是从左到右读与从右到左读是一样的数。
如12321、7887等。
#include <iostream>using namespace std;bool ifn(int x){int m=0,n;n=x;while(n){m=m*10+n%10;n=n/10; }if(m==x)return true;if(m!=x)return false;}void main( ){int a;cout<<"输入一个数:";cin>>a;if(ifn(a))cout<<a<<"是回文数!"<<endl;elsecout<<a<<"不是回文数!"<<endl;}8、(已验证!)使用函数计算y=2*x+3,输入x,求y的值。
#include <iostream>using namespace std;float y(int x){return 2*x+3;}void main(){int x;cout<<"输入X:";cin>>x;cout<<"Y="<<y(x)<<endl;}9、(已验证!)使用递归函数,求99+97+95+...+3+1之和。
(和是2500。
)#include <iostream>using namespace std;int sum(long n,long m){if(n==m)return(m);elsereturn(m+sum(n,m-2));}void main(){int n,m;cout<<"输入范围:(n~m):"<<endl;cout<<"n=";cin>>n;cout<<"m=";cin>>m;cout<<"从"<<n<<"到"<<m<<"的和为:"<<sum(n,m)<<endl; }10、(已验证!)已知杨辉三角11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1.输出前13行的值.#include <iostream>using namespace std;void main(){int a[11],i,j;a[1]=1;for(i=1;i<=13;i++){a[i]=1;for(j=i-1;j>=2;j--)a[j]=a[j]+a[j-1];for(j=1;j<=i;j++)cout<<a[j]<<" ";cout<<"\n";}}11、(已验证!)约瑟夫问题:n个小孩围成一圈做游戏,给定一个数m,现从s个小孩开始,顺时计数,每数到m,该小孩出列,然后从下个小孩重新数数,数到m时,该小孩出列,如果反复,直到所以小孩出列。