C语言例题
C语言期末复习例题

1.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?()2.输入三角形边长,求面积(顺序)3. 输入三个数,按由小到大的次序输出(选择)4.读10个整数存入数组,找出其中最大值和最小值(数组)5. 把100~200之间不能被3整除的数输出(作图,写程序)6.输入两个整数,求平方和(函数)7.求10个学生的平均成绩(函数-数组)8.把一个学生的信息放在一个结构体变量中,然后输出这个学生的信息(结构体)。
9,输出程序的运行结果(指针)#include <stdio.h>void main(){char string1[]={"ABCDEFGHIJ"};char string2[10];void s(char *p,char *q,int m);s(string1,string2,5);printf("%s\n",string2);}void s(char *p,char *q,int m){int n=0;while(n<m-1){n++;p++;}while(*p!='\0'){*q=*p;p++;q++;}*q='\0';}(1)#include <stdio.h>void main(){float downHeight = 100;float upHeight = 0;float totalLength = 0;int i;totalLength = downHeight;//第一次落下for(i=0;i<9;i++){upHeight = downHeight/2;//新的高度downHeight = upHeight;totalLength += upHeight+downHeight;//跳起再落下次数i+2 }printf("%d次落下经过的长度:%f\n",i+1,totalLength);printf("第%d次反弹高度为:%f\n",i+1,upHeight/2);(2)#include <math.h>#include <stdio.h>void main(){ float a,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s);printf("area=%7.2f\n",area);}(3)#include <stdio.h>void main(){ float a,b,c,t ;scanf("%f,%f,%f",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf(“%5.2f,%5.2f,%5.2f”,a,b,c);}(4).#include <stdio.h>#define SIZE 10void main(){ int x[SIZE],i,max,min;printf("Enter 10 integers:\n");for(i=0;i<SIZE;i++){ printf("%d:",i+1);scanf("%d",&x[i]);}max=min=x[0];for(i=1;i<SIZE;i++){ if(max<x[i]) max=x[i];if(min>x[i]) min=x[i];}printf("Maximum value is %d\n",max);printf("Minimum value is %d\n",min);}(5).#include <stdio.h>void main(){ int i;for(i=100;i<=200;i++){ if(i%3= =0)continue;printf(“%d”,n);}}(6)#include <stdio.h>int fun1(int x,int y);void main(void){ int a,b;scanf(“%d%d”,&a,&b);printf(“The result is:%d\n”,fun1(a,b) ); }int fun1(int x,int y){ int fun2(int m);return ( fun2(x)+fun2(y) );}int fun2(int m){ return (m*m);}(7)#include <stdio.h>void main(){ float average(float array[10]);float score[10], aver;int i;printf("Input 10 scores: \n");for( i=0; i<10; i++ )scanf("%f", &score[i]);printf(“\n”);aver=average(score);printf("Average is: %5.2f", aver);}float average(float array[10]){ int i;float aver,sum=array[0];for( i=1; i<10; i++ )sum=sum+array[i];aver=sum/10;return (aver);}(8)#include <stdio.h>void main(){struct student{ int num; char name[20];char sex; char addr[20];}student1={10101,“Li Lin”,‘M’,“123 Beijing Road”};printf("NO.:%d\nname:%s\n sex:%c\naddress:%s\n",student1.num, , student1.sex, student1.addr);}。
C语言经典例题以及答案

作业一一、求一个任意边长的矩形面积。
#include<stdio.h>voidmain(){intw,h,sum;scanf("%d%d",&w,&h);sum=w*h;printf("area=%d\n",sum);}二、求一个任意半径的圆的面积及周长。
#definePI#include<stdio.h>voidmain(){floatr,area,c;scanf("%f",&r);area=PI*r*r;c=2*PI*r;printf("area=%f\ncircle=%f\n",area,c);}三、已知:w=5,y=4,z=2, 求表达式:w*y/z的值,并输出。
##include<stdio.h>voidmain(){intw,y,z,r;w=5;y=4;z=2;r=w*y/z;printf("%5d",r);}作业二一、从键盘上输入三个数,求出其中的最大值,并输出。
#include<stdio.h>voidmain(){inta,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf("max=%d\n",max);}二、求sin300。
+sin600+cos300+cos600之和。
(注意:)#include<stdio.h>#definePI#include<math.h>voidmain(){floata,b,sum;a=30*PI/180;b=60*PI/180;sum=sin(a)+sin(b)+cos(a)+cos(60);printf("total=%f\n",sum);}三、比较两个数的大小。
c语言经典题目100题

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语言几个经典例题

void main( ) { printf( "输入一个字符,将其转换成大写字符后输出\n\n" ); while( 1 ) { char x; scanf( "%c", &x ); if (x >= 'a' && x <= 'z') x = x - 'a' + 'A'; printf( "%c", x ); } } 11. 已知变量 a、b、c 关系为 a+b=c,编写程序完成下表的填写 12.输入一元二次方程的三个系数,输出方程的根(实根、虚根) 。 #include<stdio.h> #include<math.h> void main( ) { printf( "计算一元二次方程的根\n\n" ); while( 1 ) { float a, b, c, det ; printf( "输入三个系数:" ); scanf( "%f%f%f", &a, &b, &c ); det = b*b - 4*a*c; if (a == 0 && b == 0) printf( "系数错误"); else if (a == 0) printf( "x = %f\n", -c/b ); else if (det < 0) { det = sqrt(-det); printf( "x1 = %f printf( "x2 ``= %f } else { det = sqrt(det); printf( "x1 = %f\n", (-b+det)/2/a ); printf( "x2 = %f\n", (-b-det)/2/a ); } printf( "\n\n"); } } 13. 输入一个运算符和两个实数,并输出计算结果,例如: + * 1 2 3 31 => 1+3=4 => 2*31=62 => 12-(-10)=22 + %f i\n", -b/2/a, det/2/a ); %f i\n", -b/2/a, det/2/a );
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语言关系运算例题

c语言关系运算例题关系运算是C语言中的基本运算之一,用于比较两个变量或表达式之间的关系。
C语言提供了多种关系运算符,包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)。
下面是一些C语言关系运算的例题,帮助理解和掌握关系运算的使用。
例题1:判断一个数是否为偶数任务要求:编写一个程序,判断一个输入的整数是否为偶数,如果是则输出"是偶数",否则输出"不是偶数"。
解答:首先,我们需要使用scanf函数获取用户输入的整数。
然后,利用取余运算(%)来判断该整数是否可以被2整除。
如果余数为0,则说明该数是偶数,否则为奇数。
下面是代码示例:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("是偶数\n");} else {}return 0;}```例题2:判断一个年份是否为闰年任务要求:编写一个程序,判断一个输入的年份是否为闰年,如果是则输出"是闰年",否则输出"不是闰年"。
解答:判断一个年份是否为闰年的规则是:能够被4整除但不能被100整除的年份,或者能够被400整除的年份,都是闰年。
我们可以使用“与”(&&)和“或”(||)逻辑运算符来组合判断条件。
下面是代码示例:```c#include <stdio.h>int main() {int year;printf("请输入一个年份:");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {printf("是闰年\n");} else {}return 0;}```例题3:判断一个三角形的类型任务要求:编写一个程序,根据输入的三条边长判断三角形的类型,输出对应的类型名称。
100个经典c语言例题(带答案)

100个经典c语言例题(带答案)经典C源程序100例- -1 经典C源程序100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:m...C语言经典程序100例2009-02-26 19:44 | (分类:默认分类)经典C源程序100例- -1 经典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.程序分析:请利用数轴来分界,定位。
c语言题库及答案详解

c语言题库及答案详解C语言题库及答案详解C语言,作为一种广泛使用的编程语言,以其高效、灵活和跨平台的特性,在软件开发、系统编程等领域占据着重要地位。
为了帮助学习者更好地掌握C语言,本文将提供一些常见的C语言题目及其详细解答。
1. 基础语法题- 题目:请编写一个C程序,输出"Hello, World!"。
- 答案:以下是一个简单的C程序示例,用于输出"Hello,World!"。
```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 变量与数据类型题- 题目:声明一个整型变量`a`,初始化为10,并打印其值。
- 答案:在C语言中,可以使用`int`关键字来声明整型变量。
以下是实现题目要求的代码。
```c#include <stdio.h>int main() {int a = 10;printf("The value of a is: %d\n", a);return 0;}```3. 控制结构题- 题目:编写一个程序,判断输入的年份是否为闰年。
- 答案:闰年的判断规则是:如果年份能被4整除但不能被100整除,或者能被400整除,则该年为闰年。
```c#include <stdio.h>int main() {int year;printf("Enter a year: ");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {printf("%d is a leap year.\n", year);} else {printf("%d is not a leap year.\n", year);}return 0;}```4. 数组与循环题- 题目:编写一个程序,求一个整数数组中所有元素的和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题4.12编程计算1!+2!+3!+4!+5!+6!+7!+8!+9!+10!的值。
#include <stdio.h>main(){long term = 1,sum = 0;int i;for (i = 1; i <= 10; i++){term = term * i;sum = sum + term;}printf("1!+2!+...+10! = %ld \n", sum);}习题7.6从键盘上任意输入十个整数,用函数编程实现计算最大值和最小值,并返回它们所在数组中的位置。
#include <stdio.h>int FindMax(int num[], int n, int *pMaxPos);int FindMin(int num[], int n, int *pMinPos);main(){int num[10], maxV alue, maxPos, minV alue, minPos, i;printf("Input 10 numbers:\n ");for (i=0; i<10; i++){scanf("%d", &num[i]); /* 输入10个数*/}maxV alue = FindMax(num, 10, &maxPos); /* 找最大值及其所在下标位置*/minV alue = FindMin(num, 10, &minPos); /* 找最小值及其所在下标位置*/printf("Max=%d, Position=%d, Min=%d, Position=%d\n",maxV alue, maxPos, minV alue, minPos);}/* 函数功能:求n个数中的最大值及其所在下标位置函数入口参数:整型数组num,存储n个整数整型变量n,表示数组元素个数函数出口参数:整型指针变量pMaxPos,指向的地址单元存储最大值在数组中的下标位置函数返回值:最大值*/int FindMax(int num[], int n, int *pMaxPos){int i, max;max = num[0]; /*假设num[0]为最大*/*pMaxPos = 0; /*假设最大值在数组中的下标位置为0 */for (i = 1; i < n; i++){if (num[i] > max){max = num[i];*pMaxPos = i;}}return max ;}/* 函数功能:求n个数中的最小值及其所在下标位置函数入口参数:整型数组num,存储n个整数整型变量n,表示数组元素个数函数出口参数:整型指针变量pMinPos,指向的地址单元存储最小值在数组中的下标位置函数返回值:最小值*/int FindMin(int num[], int n, int *pMinPos){int i, min;min = num[0]; /*假设num[0]为最小*/*pMinPos = 0; /*假设最小值在数组中的下标位置为0 */for (i = 1;i < 10;i++){if (num[i] < min){min = num[i];*pMinPos = i;}}return min ;}利用泰勒级数e=1+1/2!+1/3!+……+1/n!计算e的近似值,当最后一项的绝对值小于10^-5时认为达到了精确度要求。
要求统计总共累加了多少项。
#include <math.h>#include <stdio.h>main(){int n = 1, count =1;double e = 1.0, term = 1.0;long fac = 1;for (n=1; fabs(term) >= 1e-5; n++){fac = fac * n;term = 1.0 / fac;e = e + term;count++;}printf("e = %f, count = %d\n", e, count);}习题4.18打印所有的“水仙花数”。
所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。
例如,153是“水仙花数”,因为153=1#include <stdio.h>main(){int i, j, k, n;printf("result is:");for (n = 100; n < 1000; n++){i = n / 100; /*分出百位*/j = (n - i * 100) / 10; /*分出十位*/k = n % 10; /*分出个位*/if (i*100 + j*10 + k == i*i*i + j*j*j + k*k*k){printf("%d\t ",n); /*输出结果*/}}printf("\n");}设计一个函数,判断一个整数是否为素数。
#include <math.h>main(){int n, ret;printf("Input n:");scanf("%d",&n);ret = IsPrimeNumber(n);if (ret != 0){printf("%d is a prime number\n",n);}else{printf("%d is not a prime number\n",n);}}/*函数功能:判断参数是否是素数函数入口参数:number为整型数,要求为正整数函数返回值:非0值表示是素数,否则不是素数*/int IsPrimeNumber(int number){int i;if (number <= 1) /* 负数、0和1都不是素数*/ return 0;for (i=2; i<=sqrt(number); i++){if ((number % i) == 0) /* 被整除,不是素数*/return 0;}return 1;}设计一个函数MaxCommonFactor(),利用欧几里得算法(也称辗转相除法)计算两个正整数的最大公约数。
#include <stdio.h>int MaxCommonFactor(int a, int b);main(){int a, b, x;printf("Input a,b:");scanf("%d,%d",&a,&b);x = MaxCommonFactor(a,b);printf("MaxCommonFactor = %d\n", x);}/*函数功能:计算两个正整数的最大公约数函数入口参数:两个整型数函数返回值:最大公约数*/int MaxCommonFactor(int a, int b){int r;do{r = a % b;a = b;b = r;}while (r != 0);return a;}习题4.12编程计算1!+2!+3!+4!+5!+6!+7!+8!+9!+10!的值。
#include <stdio.h>main(){long term = 1,sum = 0;int i;for (i = 1; i <= 10; i++){term = term * i;sum = sum + term;}printf("1!+2!+...+10! = %ld \n", sum);}从键盘上任意输入10个整数用函数编程实现将其中的最大数与最小数的位置对换后再输出调整后的数组。
#include <stdio.h> 习题6.5#define ARR_SIZE 10/* 函数功能:找出n个数中的最大数与最小数并将其位置对换函数参数:整型数组a, 存放待处理数据整型变量n,为数据个数返回值:无*/void MaxMinExchang(int a[], int n){int maxV alue = a[0], minV alue = a[0], maxPos = 0, minPos = 0;int i, temp;for (i=1; i<n; i++){if (a[i] > maxV alue){maxV alue = a[i];maxPos = i;}if (a[i] < minV alue){minV alue = a[i];minPos = i;}}temp = a[maxPos];a[maxPos] = a[minPos];a[minPos] = temp;}main(){int a[ARR_SIZE], i, n;printf("Input n(n<=10):");scanf("%d", &n) ;printf("Input %d Numbers:\n", n);for (i=0; i<n; i++){scanf("%d", &a[i]);}MaxMinExchang(a, n);printf("After MaxMinExchange:\n");for (i=0; i<n; i++){printf("%4d", a[i]);}printf("\n") ;}习题6.12编写一个函数Inverse()实现字符数组中的字符串逆序存放的功能。
(1)用数组a存放逆序存放前的数组元素,用数组b存放逆序存放后的数组元素。
(2)用一个数组实现逆序存放。
记住与一个中间变量temp,将数组中首尾对称位置的元素互换。
#include <stdio.h>#include <string.h>#define ARR_SIZE 80void Inverse(char str[], char ptr[]);main(){char a[ARR_SIZE], b[ARR_SIZE];printf("Please enter a string: ");gets(a);Inverse(a, b);printf("The inversed string is: ");puts(b);}/*函数功能:实现将字符数组中的字符串逆序存放函数参数:字符数组a,存放源字符串字符数组b,存放逆序字符串函数返回值:无*/void Inverse(char str[], char ptr[]){int i = 0, j;j = strlen(str) - 1;while (str[i] != '\0'){ptr[j] = str[i];i++;j--;}ptr[i]='\0';}习题7.8#include <stdio.h>#include <string.h>void Inverse(char *pStr);main(){char str[80];printf("Input a string:\n");gets(str); /*输入字符串*/Inverse(str); /*将存于str数组中的字符串逆序存放*/printf("The inversed string is:\n");puts(str); /*输出字符串*/}/*函数功能:实现字符串逆序存放函数参数:字符指针变量,所指向的存储单元存放源字符串,逆序后的字符串也存放于此返回值:无*/void Inverse(char *pStr){int len;char temp;char *pStart; /*指针变量pStart指向字符串的第一个字符*/char *pEnd; /*指针变量pEnd指向字符串的最后一个字符*/len = strlen(pStr); /*求出字符串长度*/for (pStart=pStr,pEnd=pStr+len-1; pStart<pEnd; pStart++,pEnd--){temp = *pStart;*pStart = *pEnd;*pEnd = temp;}}程序题一从键盘输入圆的半径r,计算输出圆的面积s。