c语言编程笔录

您现在的位置是:首页 > 编程 > 编程经验

编程经验

c语言期末考试编程题库及详解答案

admin 2023-06-12编程经验
题目介绍本篇文章主要介绍c语言期末考试编程题库及详解答案,为学习c语言的同学提供一些指导和帮助。下面将列出几道典型考试题目以及解答,希望能对大家有所帮助和启发。题目一:求一元二次方程的解1、题目描述:编写一个程序,输入一元二次方程的系数a,b,c,求出其解。2、解答思路:根据一元二次方程的求解公式,可得x=(-b±s

题目介绍

本篇文章主要介绍c语言期末考试编程题库及详解答案,为学习c语言的同学提供一些指导和帮助。下面将列出几道典型考试题目以及解答,希望能对大家有所帮助和启发。

题目一:求一元二次方程的解

1、题目描述:编写一个程序,输入一元二次方程的系数a,b,c,求出其解。

2、解答思路:根据一元二次方程的求解公式,可得x=(-b±sqrt(b2-4ac))/2a
设A=b2-4ac,当A≥0时,方程有两个实数根;当A<0时,则无实根,有两个共轭复根。
因此,需要进行讨论,即首先判断是否满足A≥0的条件,若满足则计算出两个根。
最后,输出结果即可。

3、代码实现:

```c #include #include int main() { float a,b,c,x1,x2,d; printf("请输入一元二次方程的系数a,b,c:\n"); scanf("%f%f%f",&a,&b,&c); d=b*b-4*a*c; if(d<0) { printf("此方程无实数根\n"); } else { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf("此方程两个实数根为%.2f和%.2f",x1,x2); } return 0; } ```

题目二:求字符串中数字的个数

1、题目描述:编写一个程序,输入一个字符串,求出其中所有数字字符的个数。

2、解答思路:首先需要一个计数器,用于统计数字字符的个数。然后,需要循环遍历字符串中的每个字符,判断其是否为数字字符,若是,则计数器加1。
判断字符是否为数字字符的方法是,通过ASCII码表,判断该字符的ASCII码是否在数字字符的范围内,即48~57(0~9的ASCII码值)。
最后,需注意字符串中可能包含其他字符,需要排除。

3、代码实现:

```c #include #include int main() { char str[100];//定义字符串 int count=0,i,len;//count计数器,i为循环变量,len为字符串长度 printf("请输入一个字符串:\n"); gets(str);//输入字符串 len=strlen(str);//获取字符串长度 for(i=0;i='0'&&str[i]<='9') { count++;//统计数字字符个数 } } printf("该字符串中数字字符的个数为%d",count); return 0; } ```

题目三:排序

1、题目描述:输入10个整数,将其从小到大排序输出。

2、解答思路:排序可采用冒泡排序法,即依次比较相邻两个数,如果前面的数大于后面的数,则交换位置,这样反复执行,直到所有数都按照从小到大的顺序排列。
代码中,首先需定义一个数组来存储输入的10个整数,然后通过循环逐一输入。接着,通过套两个循环,进行冒泡排序。最后,输出排列好序的结果。

3、代码实现:

```c #include int main() { int a[10],i,j,temp;//a数组用于存储输入的10个整数,i,j为循环变量,temp为交换用的临时变量 printf("请输入10个整数:\n"); for(i=0;i<10;i++) { scanf("%d",&a[i]);//逐一输入10个整数 } for(i=0;i<9;i++) { for(j=i+1;j<10;j++) { if(a[i]>a[j])//如果前面的数大于后面的数,则交换位置 { temp=a[i]; a[i]=a[j]; a[j]=temp; } } } printf("从小到大排列后的结果为:\n"); for(i=0;i<10;i++) { printf("%d ",a[i]);//依次输出排列好序的结果 } return 0; } ```