C语言编程题

合集下载

经典C语言编程(20题)

经典C语言编程(20题)

1.请编写一个函数fun,其功能是:删除字符串中的数字字符。

例如,输入字符串为:48CTYP9R6,则输出:CTYPR。

部分源程序已经给出,请勿改动主函数的内容。

main(){ char item[100];gtes(item);fun(item);printf(“The string:%s\n”,item);}解答:#include<stdio.h>#include<string.h>void fun(char s[]){int i,j;for(i=j=0;s[i]!='\0';i++)if(s[i]>='0' && s[i]<='9') i++;elses[j++]=s[i]; s[j]='\0';}main(){ char item[100];gets(item);fun(item);printf("The string:%s\n",item); }2. 从键盘上读入一字符串存入字符数组xx中,请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应位置上,最后调用函数WriteDat()将结果xx输出。

替代关系如下:f(p)=p*11%256其中,p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符的ASCII值是偶数或计算后f(p)值小于32,则该字符不变,否则用f(p)所对应的字符进行替代。

设字符串的长度小于80个字符,部分源程序已给出。

除增加必要的数据定义、函数参数外,请勿改动主函数的内容。

#include <stdio.h>main(){ char xx[80];gets(xx);encryptChar();WriteDat();}解答:#include<stdio.h>#include<string.h>void encryptChar(char a[]) {int i,j;for(i=j=0;a[i]!='\0';i++) if(a[i]%2==0 ||(a[i]*11%256<32))a[j++]=a[i];elsea[j++]=a[i]*11%256; } WriteDat(char a[]) {puts(a);}main(){ char xx[80];gets(xx);encryptChar(xx); WriteDat(xx);} _3. 设有数组:int a[10]={6012,5099,9012,7025,8088,9096,8080,3046,5082,2345};请编制函数jssort(),其功能是:要求按每个数的后三位的大小进行升序排序,然后调用函数WriteDat()将结果输出。

c语言编程题库100题

c语言编程题库100题

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语言经典编程题

c语言经典编程题

c语言经典编程题
以下是一些经典的C 语言编程题:
1. 计算斐波那契数列:要求使用递归和循环两种方式实现。

2. 冒泡排序算法:实现对一组数字进行排序。

3. 二分查找算法:在有序数组中查找特定的元素。

4. 打印九九乘法表:使用循环打印出九九乘法表。

5. 字符串反转:将一个字符串反转。

6. 计算水仙花数:输出所有的水仙花数(一个三位数,其各位数字立方和等于该数本身)。

7. 约瑟夫环问题:经典的数学问题,要求用循环和指针实现。

8. 猴子吃桃问题:经典的数学问题,要求用递归实现。

这些题目都是C 语言编程中的经典问题,可以帮助你巩固和提高C 语言的编程能力。

c语言编程题目大全

c语言编程题目大全

1、请编写函数fun,函数的功能是: 移动字符串中的内容,移动的规则如下: 把第1到第m个字符, 平移到字符串的最后, 把第m+1到最后的字符移到字符串的前部。

例如, 字符串中原有的内容为: ABCDEFGHIJK, m的值为3, 则移动后, 字符串中的内容应该是: DEFGHIJKABC。

{ char a[N];int i;for(i=0;i<m;i++) a[i]=w[i];while(w[i]) { w[i-m]=w[i]; i++;}i--;m--;for(;m>=0;m--,i--) w[i]=a[m];}2、编写函数fun,它的功能是:计算并输出下列级数和:1 1 1S = ── + ── + … + ───1×2 2×3 n(n+1)例如,当n = 10时,函数值为:0.909091。

{int i;double s;for(i=1;i<=n;i++){ s+=1.0/(i*(i+1));}return s;}3、假定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其它*号全部删除。

形参p已指向字符串中最后的一个字母。

在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:ABCDEFG*******。

{ char *q;while(a<p)if(*a=='*'){ for(q=a;*q;q++)*q=*(q+1);p--;}else a++;}4、函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。

合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。

例如,当a=45,b=12。

调用该函数后,c=1425。

{*c=a/10*100+a%10+b/10*1000+b%10*10;}5、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。

c语言程序设计试题及答案解析

c语言程序设计试题及答案解析

c语言程序设计试题及答案解析C语言程序设计试题及答案解析一、选择题1. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C2. C语言中,以下哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C二、填空题1. 在C语言中,用于定义一个整型变量的关键字是______。

答案:int2. 若有以下C语言代码段:```cint a = 5, b = 10;printf("%d", a + b);```执行后输出的结果是______。

答案:15三、简答题1. 简述C语言中数组的定义和初始化方式。

答案:在C语言中,数组是一种基本的数据结构,用于存储具有相同类型的多个元素。

数组的定义方式为:类型名数组名[数组大小];初始化方式可以是静态初始化,即在定义时直接赋值,如:int arr[5] = {1, 2, 3, 4, 5}; 或者动态初始化,即在定义后使用循环或赋值语句逐一赋值。

四、编程题1. 编写一个C语言程序,实现求一个整数的阶乘。

```c#include <stdio.h>int factorial(int n) {if (n == 0)return 1;elsereturn n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d 的阶乘是:%d\n", num, factorial(num));return 0;}```五、分析题1. 请分析以下C语言代码段的运行结果,并解释原因。

```c#include <stdio.h>int main() {int x = 10;printf("%d", x++);return 0;}```答案:代码段的运行结果是10。

C语言经典编程实例100题+答案

C语言经典编程实例100题+答案

C语言程序实例100个(一)【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j<5;j++)for(k=1;k<5;k++){if(i!=k&&i!=j&&j!=k)/*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。

利润(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.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

c语言习题及详解答案

c语言习题及详解答案

c语言习题及详解答案C语言是一种广泛使用的编程语言,以其结构化、可移植和高效性而著称。

以下是一些C语言的习题以及相应的详解答案。

# 习题1:求和问题编写一个C程序,输入两个整数,输出它们的和。

解答:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("这两个整数的和是:%d\n", sum);return 0;}```# 习题2:判断素数编写一个C程序,判断一个整数是否为素数。

解答:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。

\n", num);} else {printf("%d 不是素数。

\n", num);}return 0;}```# 习题3:字符串反转编写一个C程序,输入一个字符串,然后输出它的反转。

解答:```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```# 习题4:数组排序编写一个C程序,输入一个整数数组,然后使用冒泡排序算法对其进行排序。

c语言编程基础题库及详解答案

c语言编程基础题库及详解答案

c语言编程基础题库及详解答案1. C语言是一种______语言。

A. 编译型B. 解释型C. 标记型D. 脚本型答案:A2. C语言中,以下哪个是合法的变量名?A. 2variableB. variable2C. variable-nameD. variable_name答案:B3. 在C语言中,整数类型int的范围是多少?A. -128到127B. -32768到32767C. -2147483648到2147483647D. 以上都不是答案:C4. 下列哪个是C语言中的控制语句?A. ifB. loopC. switchD. All of the above答案:D5. C语言中,以下哪个是正确的数组声明?A. int arr[10];B. int [10] arr;C. Both A and BD. None of the above答案:C6. 在C语言中,以下哪个是正确的函数声明?A. void myFunction();B. int myFunction;C. int myFunction();D. Both A and C答案:D7. C语言中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. Both A and BD. None of the above答案:A8. 在C语言中,以下哪个操作符用于计算两个数的乘积?A. *B. /C. %D. +答案:A9. C语言中,以下哪个是正确的循环结构?A. forB. whileC. do-whileD. All of the above答案:D10. 在C语言中,以下哪个是正确的指针声明?A. int *ptr;B. int ptr[];C. Both A and BD. None of the above答案:A11. C语言中,以下哪个是正确的结构体声明?A. struct myStruct { int a; float b; };B. struct { int a; float b; };C. Both A and BD. None of the above答案:C12. 在C语言中,以下哪个是正确的枚举类型声明?A. enum Color { RED, GREEN, BLUE };B. enum { RED, GREEN, BLUE };C. Both A and BD. None of the above答案:C13. C语言中,以下哪个函数用于将整数转换为字符串?A. atoi()B. itoa()C. sprintf()D. Both A and B答案:B14. 在C语言中,以下哪个函数用于计算两个数的最大公约数?A. max()B. gcd()C. min()D. Both A and C答案:B15. C语言中,以下哪个函数用于动态内存分配?A. malloc()B. calloc()C. realloc()D. All of the above答案:D16. 在C语言中,以下哪个是正确的文件操作函数?A. fopen()B. fclose()C. Both A and BD. None of the above答案:C17. C语言中,以下哪个是正确的位操作符?A. &B. |C. ^D. All of the above答案:D18. 在C语言中,以下哪个是正确的预处理指令?A. #includeB. #defineC. Both A and BD. None of the above答案:C19. C语言中,以下哪个是正确的递归函数调用?A. function();B. function(function());C. function(recursive);D. None of the above答案:B20. 在C语言中,以下哪个是正确的宏定义?A. #define PI 3.14159B. define PI 3.14159C. Both A and BD. None of the above答案:A。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.有一函数:当x<0 时,y=-l:当x=0 时,v=0;当x>0 时,y=l。

编一程序,输入x的值,输出y的值。

2.输入三个实数,将这三个数按由人到小的顺序排列,并输出这三个数。

3.有三个整数a, b, c,由键盘输入,输出其中最大者。

4.编程求圆面积、圆周长。

要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。

5.有分段函数:当x<-l0 时,y=|x|+5;当-lOWxWlO 时,y=4x-8;当x>10 时,y=sqrt(x)。

编一程序,输入x的值,输出y的值。

6.编写程序,判断某一年是否是闰年。

(闰年的条件是:能被4整除,但是不能被100整除, 或者可以被400整除。

)7.输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。

公式为c=5/9(f-32)8.有一函数:当x<l 时,v=|x|;当l<=x<10 时,y=2x-l;当x>=10 时,y=3x+ll。

编一程序,输入x的值,输出y的值。

9.输入三个实数,将这三个数按由小到大的顺序排列,并输出这三个数。

10.输入一个字符,判断它是否是小写字母,如果是,将它转换成人写字母:如果不是,不转换。

然后输出最后得到的字符。

11•编程求圆柱体积,圆柱表面积。

要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点后两位数字。

12.有分段函数:当x<-5 时,y=x+10;当・5WxW5 时,y=x A2;当x>5 时,y=2x-10.编一程序,输入x的值,输出y的值。

13.有三个整数a, b, c,由键盘输入,输出其中最小者。

14.输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母:如果不是,不转换。

然后输出最后得到的字符。

15.输入三角形的三边长,求三角形面积。

求三角形面积的公式为area=sqn(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/216.编程求2!+4!+6!+8!+10!的值,并输出结果。

17.猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想吃时就剩一个桃子了。

求第一天共摘了多少个桃子。

输出所有的“水仙花数”,所谓''水仙花数”是指一个3位数,其各位数字立方和等于该数本身。

19.编程求1~100之间的所有素数,并输出结果。

20.编程求1!+3!+5!+7!+9!的值,并输出结果。

21.用pi/4F-l/3+l/5-l/7+...公式求pi的近似值,直到某一项的绝对值小于10的-6次方为止。

22.—个球从100m高度自由落卞,每次落地后又反跳回原高度的一半,再落下,再反弹。

求它在第10次落地时共经过多少米?23.输入两个正整数m和n,求其最人公约数和最小公倍数。

24.利用循坏,编程求11+2!+3!+・・・+10啲值,并输出结果。

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

26.求Fibonacci数列前40个数。

这个数列有以下特点:第1和第2个数为1,从第3个数开始,该数是其前面两个数之和。

27.—个数如果恰好等于它的因子之和,这个数就称为完数。

例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。

编程求1000以内所有完数。

28.求S=a+aa+aaa+...+aa...a(n个a)之值。

其中a是一个数字,n代表a的位数。

例如:2+22+222+2222+22222 (此时n 为5), n 由键盘输入。

29.编程求100-200之间的所有素数,并输出结果。

30.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

31.将一个数组中的值按逆序重新存放。

例如,原来顺序为8, 6, 4, 3, 2, 0o要求改为0,2, 39 4, 6, 8o32.编写一个函数,求数列l+l/2+1/3+1/4+1/5+...l/n,利用主函数调用这个函数并输出结果。

33.将一个二维数组mta[3][4]W行和列的元素互换,存到另外一个二维数组中。

34.利用循坏输出以下图形*************35.用冒泡排序法对输入的10个数进行降序排序,并存入数组中。

36.有一个3乘4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。

37.用冒泡排序法对输入的10个数进行升序排序,并存入数组中。

38.利用循坏,输出以下图形*************************39.输出以下杨辉三角形(要求输出10行)。

11 11 2 113 3 11 4 6 4 11 5 10 10 5 1• • •40.利用循坏输出以下图形****************41.利用循坏,输出以下图形*************42•求一个3X3的整型矩阵对角线元素之和。

43•编写程序,将两个字符串连接起来,不要使用stist函数。

44.写一个函数,求两个整数中的较人者,用主函数调用这个函数,并输出结果,两个整数由键盘输入。

45.编写两个函数分别求两个整数的最大公约数和最小公倍数,在主函数中调用这两个函数, 并输出结果,两个整数由键盘输入。

17. #iiiclude <stdio.h>mt mam(){iiit day,xl,x2;dav=9;x2=l;wliile(day>0){xl=(x2+l)*2; /*第1天的桃子数是第2天桃子数加1后的2倍.*/x2=xl;day—;}pnntf(M total=%d\n H,xl);return 0;}22. #iiiclude <stdio.h>mt mam(){double sn=100Jin=siL z2;iiit n;for (n=2;n<=10;n-H-){sn=sn+2*lin; /*第n次落地时共经过的米数*/lm=hn/2; /*第n次反跳高度*/}第10次落地时共经过%彳米\n”,sn);pnntf(”第10次反弹%彳米\n”,hn);return 0;}25. #iiiclude <stdio.h> mt mam()mt i、ii=20;double a=2,b=l5s=0j; for (i=l;i<=n;i++)s=s+a/b;t=a,a=a+b,b=t;}prmtf(H sum=%16. lOfn'^s); return 0;}43. #iiiclude <stdio.h>iiit{charsl[80],s2[40];iiit i=0j=0;printf(M input stimgi:H);scanf(H%s n,sl);printf(M input stimg2:H);scanf(H%s n,s2);wliile (sl[i]?=,\0,)i++;whih(s2[j ]!='()■)sl[i++]=s2|j-H-];sl[i]=\0\printf(M\iiThe new string is:%s\n",sl); return 0;1有一函数:当x<0时,尸丄当x=0时,y=0:当x>0时,y=lo 编一程序,输入x的值,输出y 的值。

# iiiclude<stdio.h>void main()int x,y;请输入x:”); scanf(”%d 役&x); if(x<0)else if(x=O)y=o;elsey=i;pnntf(M y=%d,\y);}2.输入三个实数,将这三个数按由人到小的顺序排列,并输出这三个数。

#iiiclude<stdio.h>void main(){int a,b.c,temp=0;pnntf(M please mput a,b,c: H);scanf(H%d %d %d*\&a,&b,&c);if(a<b) {temp=a;a=b;b=temp;}if(a<c) {temp=a ;a=c ;c=temp;}if(b<c) {tenip=b; b=c ;c=temp;}printff1从大到小为:%d,%d,%d\n",a,b,c);}3.有三个整数a, b, c,由键盘输入,输出其中最大者。

void main(){iiit a,b,cjnax;pnntf(”输入三个数字:\n”);scanf(H%d%d%d*\&a,&b,&c);if(a>b&&aAc)max=a;if(b>a&&b>c)max=b;if(c>a&&c>b)max=c;prmtf(n最人值是:%d'M;max);}4编程求圆面积、圆周长。

要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。

#iiiclude<stdio.h>^define pi 3.1416main(){float r,l,s;pnntfC'iW输入半径:\n”);scanf(H%f\&Q;l=2*pi*r;p[Hitf(”l=%7・2fms=%7・2f\n”,l,s);}5.有分段函数:当x<・10 时,y=lxl+5:当・IOWxW10 时,y=4x-8;当xA10 时,y=sqrt(x)o 编一程序,输入x的值,输出y的值。

6.编写程序,判断某一年是否是闰年。

(闰年的条件是:能被4整除,但是不能被100整除, 或者可以被400整除。

)#include <stdio.h>mt mam(){mt yeaijeap;scanfC%cf,&y 亡ar);if (year%4==0){if(y 亡ai%100==0){if(veai4>o400=0)leap=l;elseleap=O;}elseleap=l;}elseleap=O;if (leap)prmtf(n%d is \yeai);elsepiiiitf(n%d is not '\yeai);printf(M a leap yea匚\n H);return 0;}7输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。

公式为c=5/9(f-32)#iiiclude<stdio.h>mt mam(){float tc;prmtfC输入华氏温度:\n”);scanf(”%f;&f);c=(人32)/l・8;pnntf(”对应的摄氏温度是:%5.2f\n”,c);}8•有一函数:当x<l 时,y=|x|;当l<=x<10 时,y=2x-l;当x>=10 时,y=3x+ll。

相关文档
最新文档