《C语言》程序算法练习题

合集下载

c语言算法100例

c语言算法100例

c语言算法100例以下是一些经典的C语言算法题目,总共提供100个例子供你练习和学习:1.编写一个程序,计算并输出斐波那契数列的前20个数。

2.编写一个程序,判断一个数是否为素数。

3.编写一个程序,计算并输出一个数的阶乘。

4.编写一个程序,实现两个数的交换(不使用第三个变量)。

5.编写一个程序,找出一个数组中的最大值。

6.编写一个程序,将一个字符串反转。

7.编写一个程序,判断一个字符串是否为回文字符串。

8.编写一个程序,实现冒泡排序算法对一个数组进行排序。

9.编写一个程序,实现二分查找算法在一个有序数组中查找指定的元素。

10.编写一个程序,计算并输出斐波那契数列的第n个数。

11.编写一个程序,将一个二维数组顺时针旋转90度。

12.编写一个程序,计算并输出一个数的平方根。

13.编写一个程序,判断一个字符串中是否包含重复字符。

14.编写一个程序,实现插入排序算法对一个数组进行排序。

15.编写一个程序,将一个有序数组合并为一个有序数组。

16.编写一个程序,判断一个数是否为完全数(即所有因子之和等于该数本身)。

17.编写一个程序,计算并输出一个数的倒数。

18.编写一个程序,判断一个字符串是否是另一个字符串的子串。

19.编写一个程序,实现选择排序算法对一个数组进行排序。

20.编写一个程序,计算并输出两个数的最大公约数。

21.编写一个程序,实现快速排序算法对一个数组进行排序。

22.编写一个程序,将一个字符串中的所有空格替换为指定的字符。

23.编写一个程序,判断一个数是否是回文数。

24.编写一个程序,计算并输出两个数的最小公倍数。

25.编写一个程序,实现归并排序算法对一个数组进行排序。

26.编写一个程序,判断一个字符串是否是有效的括号串。

27.编写一个程序,计算并输出一个数的立方根。

28.编写一个程序,实现堆排序算法对一个数组进行排序。

29.编写一个程序,判断一个数是否是质数。

30.编写一个程序,计算并输出一个数的二进制表示。

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训练题一题1:未名湖边的烦恼每年冬天,北大未名湖上都是滑冰的好地方。

北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。

每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。

现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。

(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)输入格式两个整数,表示m和n输出格式一个整数,表示队伍的排法的方案数。

样例输入3 2样例输出5数据规模和约定m,n∈[0,18]问题分析题2:最大的算式题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。

因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号。

例如:N=5,K=2,5个数字分别为1、2、3、4、5,可以加成:1*2*(3+4+5)=241*(2+3)*(4+5)=45(1*2+3)*(4+5)=45……输入格式输入文件共有二行,第一行为两个有空格隔开的整数,表示N和K,其中(2<=N<=15, 0<=K<=N-1)。

第二行为 N个用空格隔开的数字(每个数字在0到9之间)。

输出格式输出文件仅一行包含一个整数,表示要求的最大的结果样例输入5 21 2 3 4 5样例输出120样例说明(1+2+3)*4*5=120题3:图形显示编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数):* * * * ** * * ** * ** **题4:排序编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列。

输入格式:输入只有一行,即三个整数,中间用空格隔开。

输出格式:输出只有一行,即排序后的结果。

输入输出样例样例输入9 2 30样例输出30 9 2题5:2的次幂表示任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。

c编程练习题(打印版)

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. 编写一个程序,实现字符串的连接。

c语言顺序结构程序设计练习题10道

c语言顺序结构程序设计练习题10道

c语言顺序结构程序设计练习题1、编写程序:输入一矩形的长和宽,计算该矩形的面积。

2、编程:输入求的半径R,计算并输出球的体积。

3、编程:输入三个数,求出这三个数的和以及平均值,并在屏幕上输出。

4、编程:输入一个三位整数x(999=>x>=100),将其分解出百位、十位、各位,并求出各位之和以及各位之积5、编程:已知三角形的三边a=3,b=4,c=5,求其面积s。

(提示:假设有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:S=sqrt(p(p-a)(p-b)(p-c)),而公式里的p 为半周长:p=(a+b+c)/2。

6、编写一个C程序,输出以下信息:**************************Very Good!**************************7、编写一个程序,输入a、b、c三个值,输出其中最大值.8、写出程序运行的结果:main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);}9、写出程序运行的结果:main(){char a ,b, c1,c2;float x ,y;a = 3;b =7;x = 8.5;y = 71.82;c1 = ' A' ;c2 = 'a ';printf("a= %d b = %d/n",a,b);printf("x = %f y = %f",x,y);printf("c1= %c,c2 =%c",c1,c2);}10、求ax2+bx+c=0方程的根,a,b,c由键盘输入,假设b2-4ac>0。

仅供个人用于学习、研究;不得用于商业用途。

For personal use only in study and research; not for commercial use.Nur für den persönlichen für Studien, Forschung, zu kommerziellen Zwecken verwendet werden.Pour l 'étude et la recherche uniquement à des fins personnelles; pas à des fins commerciales.толькодля людей, которые используются для обучения, исследований и не должны использоваться в коммерческих целях.以下无正文。

C语言程序练习题汇编

C语言程序练习题汇编

C语言程序练习题汇编1、设计程序:统计满足条件x*x+y*y+z*z=2000的所有解的个数,说明:若a、b、c是1个解,则a、c、b也是1个解,等等。

2、设计程序:x[i],y[i]分别表示平面上1个点的x、y坐标,输入5点,求5点各点间距离总和3、设计程序:计算2的平方根、3的平方根、...、10的的平方根之和,要求计算结果具有小数点后10位有效位数4、数列第1项为81,此后各项均为它前1项的正平方根,统计该数列前30项之和5、设计程序:计算数列1,-1/3!,1/5!,-1/7!,1/9!,...的和至某项的绝对值小于1e-5时为止(该项不累加)6、设计程序:将数组a的每1行均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),然后将a数组输出7、设计程序:求斐波那契(Fibonacci)数列中大于t的最小的一个数,结果由函数JSValue返回,其中斐波那契数列F(n)的定义为:F(0)=0,F(1)=1F(n)=F(N-1)+F(n-2)分别计算当t=1000和t=3000时的结果8、设计程序:数组元素x[i]、y[i]表示平面上某点坐标,输入10个点,输出10个点中同处在圆(x-1)*(x-1)+(y+0.5)*(y+0.5)=25与(x-0.5)*(x-0.5)+y*y=36内的点数k。

9、设计程序:累加a="r235%^%34cdDW,."字符串中各个字符的ASCII码值10、设计程序:已知float a[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};输入x,计算多项式a0+a1*x+a2*x*x+a3*x*x*x+...的值。

11、设计程序:将数组a的每1行均除以该行上绝对值最大的元素,已知float a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}。

《C语言程序设计基础》习题集(含答案)

《C语言程序设计基础》习题集(含答案)

第一章C语言概述1.1、选择题(1)一个C语言程序是由()组成。

A. 一个主程序及若干个子程序B. 一个主程序C. 一个主函数及若干个子函数D. 一个主函数(2) 一个C语言程序总是从()开始执行。

A. 主过程B. 主函数C. 子程序D. 主程序(3) main函数在源程序中的位置()。

A. 必须在最开始B. 必须在子函数的后面C. 可以任意D. 必须在最后(4) 一个C程序的执行是从()。

A. 本程序的第一个函数开始,到最后一个函数结束B. 本程序的main函数开始,到最后一个函数结束C. 本程序的main函数开始,通常也在main函数结束D. 本程序的第一个函数开始,到main函数结束(5) 以下叙述不正确的是()。

A. 一个C程序可由一个或多个函数组成B. 一个C程序必须包含一个main函数C. 在C程序中,注释只能位于一条语句的最后面D. C程序的基本组成单位是函数1.2、编程题(1)参照本章例题,编程输出如下信息:**********Very good!**********(2)编写一个C程序,输出以下信息:******Turbo C ** * * * *1.3 请根据自己的认识,写出C语言的主要特点。

1.4 简述C程序主要由哪些部分构成?1.5 用户编写的C程序上机运行要经过哪些步骤?第二章基本数据类型和表达式2.1 单项选择题(1) 以下不能用作变量名的是()A)_26 B)case C)scanf D)Double(2) 以下合法的八进制数是()A)0135 B)068 C)013.45 D)o7(3) 若变量已正确定义,以下非法的表达式是()A)a/=b+c B)a%(4.0) C)a=1/2*(x=y=20,x*3) D)a=b=c (4) 设x 为int 类型,其值为11,则表达式:(x++*1/3)的值是()A)3 B)4 C)11 D)12(5) 若题中各变量已正确定义并赋值,下面符合C 语法的表达式是()A )a%=7.6; B)a++,a=7+b+c C)int(12.3)%4 D)a=c+b=a+7 (6) 设k 和x 均为int 型变量,且k=7,x=12,则能使值为3的表达式是()A)x%=k%=5 B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)- (k%=5) (7) 能正确表示数学公式|)sin(|x ,的C 语言表达式是()A)sqrt(abs(sin(x*π/180)))B)sqrt(abs(sin(x*3.14/180))) C)sqrt(sin(x))D)sqrt (fabs (sin(x*3.14/180)))(8) 以下变量x 、y 、z 均为double 型且已正确赋值,不能正确表示代数式z y x的C 语言表达式是()A)x/y*z B)x*(1/(y*z)) C)x/y*1/z D)x/y/z (9) 以下叙述中正确的是()A ) A )C 程序中,赋值运算符的优先级最低。

C语言经典程序100题(完整版)

C语言经典程序100题(完整版)

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

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

#include "stdio.h"#include "conio.h"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);}getch();}==============================================================【程序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,求应发放奖金总数?程序分析:请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

#include "stdio.h"#include "conio.h"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);getch();}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

C语言程序设计练习题(含程序及参考答案)

C语言程序设计练习题(含程序及参考答案)

C语言练习题(所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参考使用)1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。

#include <stdio.h>int 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。

#include <stdio.h>void 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语言编程计算题

c语言编程计算题一、题目:求两个数的最大公约数和最小公倍数要求:1.输入两个整数a和b(a>b)。

2.使用辗转相除法求最大公约数,使用最小公倍数等于两数之积除以最大公约数的公式求最小公倍数。

3.输出结果,包括最大公约数和最小公倍数。

参考解答:#include<stdio.h>intmain(){inta,b,gcd,lcm;printf("请输入两个整数:\n");scanf("%d%d",&a,&b);if(a<b){inttemp=a;a=b;b=temp;}gcd=a;while(b!=0){gcd=gcd*b%b;b--;}lcm=a*b/gcd;printf("最大公约数是:%d\n",gcd);printf("最小公倍数是:%d\n",lcm);return0;}二、题目:求一个数的阶乘要求:1.输入一个正整数n。

2.使用循环语句计算n的阶乘,即n!=n*(n-1)*...*2*1。

3.输出结果。

参考解答:#include<stdio.h>intmain(){intn;printf("请输入一个正整数:\n");scanf("%d",&n);longlongfactorial=1;for(inti=1;i<=n;i++){factorial*=i;}printf("%d的阶乘为:%lld\n",n,factorial);return0;}三、题目:求斐波那契数列的前n项和要求:1.输入一个正整数n,表示斐波那契数列的项数。

2.使用循环语句和累加器求斐波那契数列的前n项和。

具体来说,第i项的值等于前两项的值之和,即f(i)=f(i-1)+f(i-2)。

将每一项的值累加到结果中即可。

3.输出结果。

《C语言》程序算法练习题

《C语言》程序算法练习题

完成下列训练题的基本步骤是:1、问题分析及解决方案框架确定充分地分析和理解问题本身,明确问题到底要做什么。

(what to do?)在确定解决问题框架过程中(how to do?),考虑怎样使程序结构清晰、合理、简单和易于调试,并确定每个函数的简单功能,以及函数之间的调用关系。

2、详细设计和编码确定算法的主要流程,在此基础上进行代码设计(coding),一般来讲,每个明确的功能模块程序不超过60行代码,否则,功能要继续分解。

3、上机前编写程序与检查上机前检查程序可有效提高调试效率,减少上机调试程序时的无谓错误。

程序检查主要有两种途径:用一组测试数据手工执行程序;或者通过阅读或给别人讲解自己的程序而深入、全面地理解程序逻辑,把程序中的明显错误事前排除。

4、上机调试程序提供的结果应当包括:算法、数据结构的设计、程序清单1、猜数游戏游戏的开始由机器产生一个随机数(1~100之间,用库函数random()取值),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示“your answer is HIGH,try again!”否则,程序提示“your answer is LOW,try again!”直到猜对为止。

程序可以实现连续猜数,直到游戏者退出。

程序输出要求:累计游戏者猜对这个数所需的次数n,当n<=7时,给出“congratulation!”,当7<n<15时,给出“I believe you can do it better!”;当n>15时,用exit(0)库函数退出程序。

2、百钱百鸡问题(穷举算法)我国古代数学家张丘建在《算经》中出了一道题“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。

百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”注:穷举法是最简单、最常见的一种程序设计方法,它充分利用了计算机处理的高速特性。

使用穷举法的关键是确定正确的穷举范围,即不能过分扩大,也不能过分缩小穷举的范围。

c语言题库(60道题)

c语言题库(60道题)

第一题:编写一个售货机(POS)计算程序,用于水果店售货员算账。

苹果每千克 3.2元,梨每千克1.96元,香蕉每千克3元,樱桃每千克24元。

某顾客购买1.5斤苹果,2斤梨,3斤香蕉,1.5斤樱桃,付给售货员100元。

要求规范输出这位顾客购买各类水果的名称,对应的重量和应付价钱,显示顾客所付款项,输出应找回的款项。

#include<stdio.h>main(){float apple=1.5,pear=2.0,banana=3.0,cherry=1.5;float cost,pay=100.0,retern;cost=3.2*apple+1.96*pear+3.0*banana+24.0*cherry;retern=pay-cost;printf("LIST\t重量:\t价钱:\n");printf("apple\t1.5\t%.2f\n",3.2*apple);printf("pear\t2.0\t%.2f\n",1.96*pear);printf("banana\t3.0\t%.2f\n",3.0*banana);printf("cherry\t1.5\t%.2f\n",24.0*cherry);printf("pay=%.2fRMB\ncost=%.2fRMB\nretern=%.2fRMB\n",pay,cost,retern);}第二题:编写一个程序,对输入的一组整数,分别统计其中正整数和负整数的个数(0作为结束标志)。

#include<stdio.h>main(){int a[]={12,1648,500,-322,41,-15,126,-45,0,45,-356},i=0,m=0,n=0;for(i=0;a[i]!=0;i++){if(a[i]<0)m++;else if(a[i]>0)n++;}printf("%d\n%d\n",m,n);}第三题:统计100-500之间各个数字之和为9的三位数,输出这些三位数。

c语言程序基础练习题500道(附答案)

c语言程序基础练习题500道(附答案)

c语言程序基础练习题500道(附答案)1.下列四组选项中,均不是C语言关健字的选项是( A )。

A) define B) gect C) include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。

A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x3.下面四个选项中,均是不合法的转义符的选项是( B )。

A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f' '\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。

A)'abc' B)"12'12" C)"0" D)" "5.以下选项中不合法的用户标识符是( A )。

A)abc.c B)file C)Main D)PRINT6.C语言提供的合法关键字是( D )。

A) swithB) cherC) CaseD)default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。

A) true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092';则该语句( b )A)使s的值包含一个字符B)定义不合法,s的值不确定C)使s的值包含4个字符D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。

基础的c语言程序试题及答案

基础的c语言程序试题及答案

基础的c语言程序试题及答案基础的C语言程序试题及答案1. 题目:编写一个C语言程序,计算并输出1到100之间所有奇数的和。

答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 != 0) {sum += i;}}printf("1到100之间所有奇数的和为:%d\n", sum);return 0;}```2. 题目:编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除运算。

答案:```c#include <stdio.h>int main() {double num1, num2;char operator;double result;printf("请输入第一个数字:");scanf("%lf", &num1);printf("请输入运算符(+,-,*,/):"); scanf(" %c", &operator);printf("请输入第二个数字:");scanf("%lf", &num2);switch (operator) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':if (num2 != 0) {result = num1 / num2;} else {printf("除数不能为0\n");return 1;}break;default:printf("无效的运算符\n");return 1;}printf("%.2lf %c %.2lf = %.2lf\n", num1, operator, num2, result);return 0;}```3. 题目:编写一个C语言程序,实现字符串的反转。

c语言程序设计题目及答案

c语言程序设计题目及答案
则返回值为 1,否则为 0。调 用该函数求出 15~300 之
间能同时被 3 和 5 整除的数的 个数。 #include <stdio.h> void wwjt();
int sum(int n) { if(n%3==0&&n%5==0) return(1); return(0);} 第 10 题 题号:16 功能:编写函数 fun 求 1!+2!+3!+ …… +n!的和,在 main 函
近似值例如:当误差为 0.0001 时,函数值为 0.618056。 #include <stdio.h> #include "math.h" void wwjt();
float fun() {
float f1=1,f2=1,f3; float r1=2,r2; do {r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; }while(fabs(r1-r2)>1e-4); return r1; } 第 7 题 题号:394 功能:产生 20 个[30,120]上的随机 整数放入二维数组
功能:请编一个函数 void fun(int tt[M][N],int pp[N]),
tt 指向一个 M 行 N 列的二维数 组,求出二维数组每列
中最大元素,并依次放入 pp 所指一维数组中。二维
数组中的数已在主函数中赋予。
#include<conio.h> #include<stdio.h> #define M 3 #define N 4 void wwjt();
}
第 8 题 题号:337 功能:将两个两位数的正整数 a、b 合并形成一个整数放在

(完整版)C语言程序设计习题集及答案

(完整版)C语言程序设计习题集及答案

C语言程序设计习题集东华理工大学2014.9基础知识一单项选择题(每题2分,共44分)1 以下叙述正确的是___。

A C程序基本组成单位是语句B C程序每一行只能写一个语句C 简单C语句必须以分号作为结束符D 注释语句可以嵌套2 一个C语言程序是从___开始执行的。

A 程序中第一个函数B 名为main的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句3 请选出合法的C语言赋值语句___。

A a=b=58B i++;C a=58,b=58D k=int(a+b);4 下面标识符中,合法的用户标识符是___。

A 1abcB includeC a-b-c123D char5 以下所列的C语言整形常量中,正确的是___。

A 0x10B 0976C 076LD 01ff6 C语言中下列运算符的操作数必须为整型的是___。

A %B ++C /D =7 设a和b均为int型变量,则执行以下语句后的输出为___。

int a=20; int b=3; printf("%d\n",a+=(b%=2));A 20B 21C 0D 238 已知int i;,则执行语句 i=2.6;后,i的值为___。

A 2B 3C 2.6D 不确定9 以下合法的字符常量为___。

A 'ab'B '\482'C '\'D '\xaf'10 若y为int型变量,则执行以下语句后,y的值是___。

y=8; y+=y-=y*y;A 64B –56C –112D –4811 以下合法的浮点型常量是___。

A e-3B 1.5e+2.4C 3.14e+2LD 3.14 e +512 设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为___。

printf("%d",sizeof(a*b)+2/5);A 4B 8C 6D 713 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为___。

完整版C语言程序设计练习题含程序及参考答案

完整版C语言程序设计练习题含程序及参考答案

完整版C语言程序设计练习题含程序及参考答案1. 请编写一个C程序,要求输入一个整数n,并打印从1到n的所有整数。

```c#include <stdio.h>int main(){int n;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++){printf("%d ", i);}return 0;}```参考答案:```请输入一个整数n:51 2 3 4 5```2. 请编写一个C程序,要求输入两个整数m和n,并计算它们的和、差、积和商(m除以n的结果)。

```c#include <stdio.h>int main(){int m, n;printf("请输入两个整数m和n:");scanf("%d %d", &m, &n);int sum = m + n;int difference = m - n;int product = m * n;float quotient = (float)m / n;printf("和:%d\n", sum);printf("差:%d\n", difference);printf("积:%d\n", product);printf("商:%.2f\n", quotient);return 0;}```参考答案:```请输入两个整数m和n:10 3和:13差:7积:30商:3.33```3. 请编写一个C程序,要求输入一个整数n,并判断它是否为素数。

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

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>int factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d 的阶乘是:%d\n", num, factorial(num)); return 0;}```3. 编写一个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 是素数。

C语言编程练习题附答案

C语言编程练习题附答案

C语言编程练习题附答案1.从键盘输入20个整数,使用冒泡排序将它们从大到小排列并输出。

includeint main() {int a[20]。

i。

j。

t;printf("请任意输入20个整数\n");for (i = 0.i < 20.i++)scanf("%d"。

&a[i]);printf("\n");for (i = 0.i < 19.i++)for (j = 0.j < 19 - i。

j++)if (a[j] < a[j + 1]) {t = a[j];a[j] = a[j + 1];a[j + 1] = t;printf("按照从大到小的顺序排列为\n");for (i = 0.i < 20.i++)printf("%d,"。

a[i]);printf("\n");return 0;2.从键盘输入20个整数,使用选择排序将它们从大到小排列并输出。

includedefine N 20int main() {int a[N]。

i。

j。

max。

k;printf("请任意输入20个整数\n");for (i = 0.i < N。

i++)scanf("%d"。

&a[i]);printf("\n");for (i = 0.i < N - 1.i++) {k = i;for (j = i + 1.j < N。

j++)if (a[i] < a[j])k = j;max = a[k];a[k] = a[i];a[i] = max;printf("按照从大到小的顺序排列为\n");for (i = 0.i < N。

i++)printf("%d,"。

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

完成下列训练题的基本步骤是:
1、问题分析及解决方案框架确定
充分地分析和理解问题本身,明确问题到底要做什么。

(what to do?)
在确定解决问题框架过程中(how to do?),考虑怎样使程序结构清晰、合理、简单和易于调试,并确定每个函数的简单功能,以及函数之间的调用关系。

2、详细设计和编码
确定算法的主要流程,在此基础上进行代码设计(coding),一般来讲,每个
明确的功能模块程序不超过60行代码,否则,功能要继续分解。

3、上机前编写程序与检查
上机前检查程序可有效提高调试效率,减少上机调试程序时的无谓错误。

程序检查主要有两种途径:用一组测试数据手工执行程序;或者通过阅读或
给别人讲解自己的程序而深入、全面地理解程序逻辑,把程序中的明显错误
事前排除。

4、上机调试程序
提供的结果应当包括:
算法、数据结构的设计、程序清单
1、猜数游戏
游戏的开始由机器产生一个随机数(1~100之间,用库函数random()取值),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示“your answer is HIGH,try again!”否则,程序提示“your answer is LOW,try again!”直到猜对为止。

程序可以实现连续猜数,直到游戏者退出。

程序输出要求:累计游戏者猜对这个数所需的次数n,当n<=7时,给出“congratulation!”,当7<n<15时,给出“I believe you can do it better!”;当n>15时,用exit(0)库函数退出程序。

2、百钱百鸡问题(穷举算法)
我国古代数学家张丘建在《算经》中出了一道题“鸡翁一,值钱五;鸡母一,值钱三;
鸡雏三,值钱一。

百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”
注:穷举法是最简单、最常见的一种程序设计方法,它充分利用了计算机处理的高速特性。

使用穷举法的关键是确定正确的穷举范围,即不能过分扩大,也不能过分缩小穷举的范围。

3、请编写一个程序,计算表达式:data1 op data2的值。

其中,op为运算符+、-、*、/、%。

4、打印所有的水仙花数
5、编写一个程序,实现将输入的一个无符号整数转换为二进制和八进制表示,分别存入字符
数组中并输出。

(提示:算法采用模拟人工法)
注:计算机模拟人功法是编程中常用的算法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。

6、判断一个数是否是数组中的成员(用二分查找法)
已知数组a中一共有10个已经排好序的整数(由小到大排序)。

现在从键盘上输入一个数,判断这个数是否是数组a中的数,如果是的话,打印出此数在数组a中的位置,否则打印“can’t find!”。

提示:①设待查找的数为x,设置三个位置变量l、m、h分别代表查找范围的顶部、中间位置和底部,m=(l+h)/2,把数组分成a[m]为中点的两段范围。

②判断x是否等于a[m],若是,则找到。

③若大于a[m],则x必定在后半段范围,即在a[m+1]到a[h],则舍弃前半段,再在后半段重新划分两段范围,定出l、m、h,重复以上步骤,逐步缩小查找范围。

7、位数大小排序(掌握数值排序算法)
输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整数,并输出这个整数。

要求:用函数调用
8、有一行字符,要求将其中每个单词中的第一个字母改成大写字母(如果原来已是大写字母
则不变)。

9、设计一个函数,要求删去指定文字行中的某个字符。

此行文字和要删去的字符均由键盘在
主函数中输入。

删去之后的文字行也要求在主函数中输出。

10、将螺旋方阵存放到n×n的二维数组中并把它打印输出。

要求由程序自动生成如下图所示
的螺旋方阵(而不是人为地初始化或逐个赋值)。

n由程序读入。

11、请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。

二维数组
中的值在主函数中赋予。

(数组维数用宏定义)
12、矩阵乘法(数值求解算法)
编写一个函数,实现矩阵A(2行3列)与矩阵B(3行2列)相乘,乘积放在C数组中。

在主函数中定义矩阵A和矩阵B,并输出结果。

13、求所有不超过200的N值,N的平方是具有对称性质的回文数。

回文数就是将一个数从左
往右读都是一样的,如:满足题意要求的数有:N=11,11的平方为121,121为一个回文数。

14、计算分数的精确值
使用数组精确计算m/n(0<m<n<=100)的值,如果m/n是无限循环小数,则计算并输出它的第一循环节,同时要求输出循环节的起始位置(小数位的序号)
由于计算机内字长有限,常规的浮点运算都有精度限制,为了得到高精度的计算效果,就必须自行设计算法。

提示:可将商存放在一维数组中,进行除法运算时,可模拟人的手工操作,即每次求出商的一位后,将余数乘以10,再计算商的下一位。

若某次余数为0,则为有限不循环小数。

若某次计算后的余数与前面的某个余数相同时,则m/n是无限循环小数。

15、马克思手中的数学题(穷举算法)
马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人、小孩各若干,在一家饭馆吃饭总共花了50先令:每个男人花3先令,每个女人花2先令,每个小孩花1先令,问男人、女人、小孩各有几人?
16、用梯形法求定积分(数值求解算法)
用梯形法编程求函数f(x)=x2+2x+1的定积分 f(x)dx的值。

(我这里没有装函数,第一项为x的平方,后面f(x)前有个积分符号,范围是从0到2)
提示:把积分区间[a,b]等分为n等份(a、b、n的值由程序输入),可得到若干个小梯形,积分面积就近似为这些小梯形面积之和。

17、一个奇异的三位数(穷举算法)
一个自然数的七进制表达式是一个三位数,而这个数的九进制表示也是一个三位数,且这两个三位数的数码顺序刚好相反,求这个三位数。

18、约瑟夫问题(掌握一维数组的用法)。

15个基督教徒和15个异教徒在海上遇险,必须将一半的人投入大海,其余的人才能幸免于难,于是想了一个办法:30个人围成一个圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环直到仅余15个人为止。

问:怎样排法,才能使每次投入大海的是异教徒?
提示: 30个人顺序编号,自增量k报数,k%9==0时,此人投入大海。

投入大海标志为置数组元素值为0或(-1),投入大海的人不再报数。

程序输出要求:程序执行后,显示原始顺序,每次投入大海人的信息及剩下人的顺序。

19、回文数的形成
任取一个十进制整数,将其倒过来后与原来的整数相加,得到一个新的整数后重复以上步骤,则最终可得到一个回文数。

请编程验证。

(回文数就是将一个数从左向右读都是一样的,如121,11等)。

(注:回文数不超过2147483647)
回文数的这一形成规则目前还属于一个猜想,尚未获得数学上的验证,有些回文数要经历上百个步骤才能获得,请编程验证,打印形成过程。

如输入整数78,则形成回文数的
过程为: 78+87=165,165+561=726,726+627=1353,1353+3531=4884。

提示:用一个函数来求反序数,另一个函数判断是否为回文数,在主函数中输入输出。

20、人机猜数游戏
由计算机“想”一个四位数,请人猜这个四位数是多少。

人输入一个四位数后,计算机首先判断这个数四个数位中有几个猜对了,并且在猜对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数为止。

请编程实现该游戏,游戏结束时,显示人猜一个数共用了几次。

提示:库函数random()产生一个随机数。

如: int z;
z=random(9999); //产生一个0~9999的随机数
21、条件编译
用条件编译方法实现以下功能:
输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变为其下一个字母,译为密码输出(如’a’变为’b’………’z’变为’a’)。

用宏命令来控制是否要译成密码。

例如: #define change 1 则输出密码,若#define change 0则不译成密码,按原码输出。

22、取子串函数
编写求子串函数substr(s,n1,n2),在串s中从n1位置开始取n2个字符的字串
23、设计一个函数,对n个字符串按由小到大的顺序排列,n由程序读入,字符串的输入输出
都在main函数中进行。

24、输入三行文字,找出其中有多少个空格和多少个单词(规定单词间以一个或多个空格分开)。

若一个单词恰好在行末结束,则下一行的开头应有空格,句号和逗号后面也应有空格。

25、计算字符串中子串出现的次数
利用输入函数输入任意两个字符串,请编写程序求出第二个字符串在第一个字符串中出现的次数,即在第一个字符串中有几个第二个字符串。

相关文档
最新文档