C语言实验报告 字符串排序
字符数组实验报告分析

一、实验背景字符数组是C语言中常用的数据结构,它由一组字符元素组成,用于存储字符串。
通过对字符数组的操作,可以实现对字符串的读取、修改、排序等操作。
本次实验旨在通过一系列的字符数组操作,加深对C语言字符数组处理的理解和应用。
二、实验目的1. 理解字符数组的定义和初始化方法;2. 掌握字符数组的读取和修改操作;3. 熟悉字符串的输入、输出和拼接;4. 学习字符串的查找和替换;5. 掌握字符数组的排序方法。
三、实验内容1. 字符数组的定义和初始化实验步骤:(1)定义一个字符数组;(2)使用字符数组存储字符串;(3)初始化字符数组。
2. 字符数组的读取和修改实验步骤:(1)通过指针访问字符数组的元素;(2)修改字符数组中的指定元素;(3)遍历字符数组,读取所有元素。
3. 字符串的输入、输出和拼接实验步骤:(1)使用scanf和printf函数实现字符串的输入和输出;(2)使用strcpy函数复制字符串;(3)使用strcat函数拼接字符串。
4. 字符串的查找和替换实验步骤:(1)使用strstr函数查找子字符串;(2)使用strcpy函数替换字符串中的指定子串;(3)使用str_replace函数实现字符串的替换。
5. 字符数组的排序实验步骤:(1)使用冒泡排序算法对字符数组进行排序;(2)使用选择排序算法对字符数组进行排序;(3)使用插入排序算法对字符数组进行排序。
四、实验结果与分析1. 字符数组的定义和初始化实验结果显示,字符数组可以正确存储字符串,并且可以对其进行初始化。
2. 字符数组的读取和修改通过指针访问字符数组的元素,可以实现对字符数组的读取和修改。
遍历字符数组,可以读取所有元素。
3. 字符串的输入、输出和拼接使用scanf和printf函数可以实现字符串的输入和输出。
strcpy和strcat函数可以实现字符串的复制和拼接。
4. 字符串的查找和替换使用strstr函数可以查找子字符串,使用strcpy函数可以替换字符串中的指定子串。
c语言的实验报告

c语言的实验报告C语言的实验报告引言:计算机科学领域的学生们通常会在大学的课程中学习C语言。
C语言是一种通用的编程语言,它简洁高效,广泛应用于软件开发、嵌入式系统等领域。
在学习C语言的过程中,学生们通常需要进行一系列的实验来加深对语言特性和编程概念的理解。
本文将介绍几个常见的C语言实验,并总结实验过程中的体会和收获。
实验一:基本数据类型和运算符C语言提供了多种基本数据类型,如整型、浮点型、字符型等。
在这个实验中,我们需要熟悉这些数据类型的使用方法,并掌握基本的算术运算符和逻辑运算符。
通过编写简单的程序,我们可以实现整数相加、浮点数相乘等操作。
这个实验帮助我们了解C语言的基本语法和运算规则。
实验二:控制流程在实际的编程中,我们常常需要根据不同的条件来执行不同的代码块。
C语言提供了多种控制流程语句,如if语句、for循环、while循环等。
通过这个实验,我们可以学习如何使用这些语句来实现条件判断和循环操作。
例如,我们可以编写一个程序来判断一个数是否为素数,或者实现一个简单的猜数字游戏。
这个实验帮助我们掌握程序的流程控制和逻辑思维。
实验三:函数和指针函数是C语言中的重要概念,它可以将一段代码封装成一个独立的模块,方便代码的复用和维护。
指针是C语言中另一个重要的特性,它可以用来处理内存地址和动态分配内存。
在这个实验中,我们需要编写一些函数来实现特定的功能,并学习如何使用指针来操作变量和数组。
通过这个实验,我们可以提高代码的模块化程度,并学会灵活运用指针来解决实际问题。
实验四:文件操作在实际的软件开发中,我们经常需要读写文件来存储和处理数据。
C语言提供了一些函数来进行文件操作,如fopen、fread、fwrite等。
在这个实验中,我们需要编写程序来读取文件内容,进行数据处理,并将结果写入新的文件中。
通过这个实验,我们可以学习如何使用文件操作函数,并了解文件的打开、读写和关闭过程。
实验五:数据结构和算法数据结构和算法是计算机科学的核心内容,也是软件开发中不可或缺的部分。
C语言实验报告

1 求平均值输入一个正整数n (1<n<=10),再输入n 个整数,输出平均值(保留2 位小数)。
2. 求最大值及其下标输入一个正整数n (1<n<=10) ,再输入n 个整数,输出最大值及其下标(设最大值惟一,下标从0 开始)。
7. 加法口诀表输出一张20 以内的加法口诀表.初始数组中只有第一行和第一列的数据,图中黄色文字是计算的结果。
将加数、被加数、和放入一个二维数组中, 再输出该数组。
8. 判断上三角矩阵输入1 个正整数n (1≤n≤6)和n 阶方阵a 中的元素,如果a 是上三角矩阵, 输出"YES", 否则, 输出"NO"。
(上三角矩阵,即主对角线以下的元素都为0, 主对角线为从矩阵的左上角至右下角的连线)指针实验1. 查找整数定义一个函数search(int list[],int n,int x) ,在有n个元素的数组list中查找元素x,若找到则返回相应下标,否则返回-1。
在main 函数中调用search,main 函数如下:void main(){int i, x, a[10], res;for(i=0; i<10; i++) scanf("%d", &a[i]);scanf("%d", &x);res = search(a, 10, x);printf("%d ", res);}2. 排序定义函数void sort(int a[],int n) ,用选择法对数组a中的元素排序。
自己定义main 函数,并在其中调用sort函数。
3. 删除字符编写一个函数delchar(char *s,char c) ,该函数将字符串s中出现的所有c字符删除。
自己定义main 函数,并在其中调用delchar(s,c)函数完成操作。
4. 字符串排序将5 个字符串从大到小排序后输出。
c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。
二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。
三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。
熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。
2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。
运用 switch 语句进行多分支选择,处理不同的情况。
利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。
3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。
掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。
4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。
实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。
5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。
掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。
6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。
了解共用体的概念和使用场景,比较结构体和共用体的区别。
四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。
[C语言]顺序、选择结构实验报告
![[C语言]顺序、选择结构实验报告](https://img.taocdn.com/s3/m/072da5a1941ea76e59fa0428.png)
实验报告课程名称程序设计语言C/C++实验项目顺序结构,选择结构编程与调试一、实验目的1.掌握C语言中使用最多的一种语句——赋值语句的使用方法。
2.掌握各种数据类型的输入输出的方法,能正确使用各种格式转换符。
3.掌握选择结构程序设计的方法和用用关系表达式、逻辑表达式表示选择结构的条件。
二、实验内容1.调试关于各种格式转换符的正确使用方法的程序并验证结果的正确性。
2.编写并调试简单的关于数据类型输入输出的程序。
3.编写并调试运行关于if语句和switch语句使用的程序。
三、实验步骤及结果分析1.从键盘输入两个整数,求两数之和并输出。
#include <stdio.h>int main ( ){int a,b,c;printf("请输入两个整数:\n");scanf("%d,%d",&a,&b);c=a+b;printf("两数之和为:%d\n",c);return 0;}2.从键盘输入园的半径r,求园的周长C、面积S并输出。
#include <stdio.h>int main( ){float pai=3.14159;float r,C,S;printf("Please enter the radius of the circle:");scanf("%f",&r);C=2*pai*r;S=pai*r*r;printf("The circumference of the circle C is %.2f\n",C); printf("The area of the circle is %.2f\n",S);return 0;}3.从键盘输入一个小写字母,要求输出其对应的大写字母。
#include <stdio.h>int main (){char c1,c2;c1=getchar();c2=c1-32;putchar(c2);printf("\n");return 0;}4.输入圆锥的底面圆的半径和高,求圆锥的表面积和体积。
c语言字符的优先级顺序

c语言字符的优先级顺序
在C语言中,字符的优先级顺序如下(从高到低):
1. 括号运算符:`()`,括号用于改变表达式的优先级。
2. 结构体/联合体成员访问运算符:`.`和`->`,用于访问结构体或联合体的成员。
3. 后缀递增和递减运算符:`++`和`--`,用于增加或减少变量的值。
4. 一元运算符:`+`、`-`、`!`、`~`、`*`、`&`和`sizeof`,一元运算符对单个操作数进行操作。
5. 乘法、除法和求余运算符:`*`、`/`和`%`,用于进行乘法、除法和求余计算。
6. 加法和减法运算符:`+`和`-`,用于进行加法和减法计算。
7. 移位运算符:`<<`和`>>`,用于按位左移和右移操作。
8. 关系运算符:`<`、`>`、`<=`、`>=`、`==`和`!=`,用于比较两个操作
数的大小关系。
9. 位运算符:`&`、`|`和`^`,用于按位与、按位或和按位异或操作。
10. 逻辑运算符:`&&`和`||`,用于进行逻辑与和逻辑或操作。
11. 条件运算符:`?:`,用于根据条件选择不同的操作。
12. 赋值运算符:`=`, `+=`, `-=`, `*=`, `/=`, `%=`,`<<=`, `>>=`, `&=`, `^=`, `|=`,用于给变量赋值或进行复合赋值操作。
需要注意的是,如果表达式中有多个操作符,可以通过使用括号来改变操作符的优先级。
C语言程序设计实验报告

C语言程序设计实验报告一、引言C语言程序设计是计算机科学与技术专业中的一门基础课程。
通过实验学习,我深入了解了C语言的基本语法和程序设计的思想,掌握了一定的编程能力。
本文将详细介绍我在C语言程序设计实验中所进行的实验项目、实验结果和实验心得。
二、实验项目1. 实验一:C语言程序设计基础在这个实验中,我编写了一个简单的C语言程序,实现了对用户输入的两个整数进行相加并输出结果的功能。
在程序设计中,我正确使用了C语言的基本语法,包括变量定义、输入输出函数的调用等。
2. 实验二:条件语句和循环结构这个实验要求我编写一个C语言程序,实现对用户输入的分数进行等级评定的功能。
根据用户输入的分数,程序将输出相应的等级,如优秀、良好、及格等。
为了实现这个功能,我灵活运用了条件语句和循环结构,使程序具有良好的交互性。
3. 实验三:数组和字符串在这个实验中,我学习了C语言中数组和字符串的使用方法,并编写了一个程序,实现了对一个整数数组的排序功能。
通过实验,我进一步掌握了数组的声明、初始化和遍历等操作,提高了我对C语言程序设计的理解。
4. 实验四:函数和指针实验四要求我编写一个C语言程序,实现对一个数组中的元素求和的功能。
在这个实验中,我了解了函数的定义和调用、指针的基本概念以及函数指针的使用。
通过编写程序,我加深了对函数和指针的理解,并提高了程序的运行效率。
三、实验结果通过以上实验项目的设计与实现,我得到了如下实验结果:1. 实验一的结果是可以正确进行数值相加并输出结果。
2. 实验二的结果是根据输入的分数得到相应的等级评定。
3. 实验三的结果是对输入的整数数组进行排序,并输出排序后的结果。
4. 实验四的结果是对数组中的元素进行求和,并输出求和结果。
四、实验心得通过整个实验过程,我深刻认识到了C语言程序设计的重要性和应用广泛性。
C语言不仅是其他高级编程语言的基础,也是培养程序设计思维和逻辑思维的重要工具。
通过实验,我不仅掌握了C语言的基础知识和编程技巧,还培养了自己解决问题和分析问题的能力。
c语言实验报告

华北水利水电大学C语言程序设计实验报告2014--2015学年第二学期 2014 级材料成型及控制工程专业班级:学号姓名:一、实验题目:顺序结构二、实验目的:(略)三、实验内容1. 程序验证(略)2.程序设计1)编写程序,已知圆半径radius=,求圆周长和面积。
源代码:运行结果:#include <>#define PIvoid main( ){float r,c,s;r=;c=2*PI*r;s=PI*r*r;printf("c=%f,s=%f\n",c,s);}2)编写程序完成单个字母的大小写转换。
源代码:运行结果#include<>void main( ){char c;c='a';c=c-32;printf("%c",c);}3)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,并分别在屏幕上显示。
源代码:#include <> 运行结果:void main(){int i,j,k,t;scanf("%d",&t);i=t%10;j=t/10%10;k=t/100;printf("i=%d,j=%d,k=%d",i,j,k);}(1)设变量a、b、c分别存放从键盘输入3个整数。
编写程序,按从大到小的顺序排列这3个整数,使a成为最大的,c成为最小的,并且按序输出这3个整数。
源代码:运行结果:#include <>int main (){int a,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(c>b){t=c;c=b;b=t;}printf("%d%5d%5d\n",a,b,c);return 0;}(2)输入某学生的考试成绩等级A、B 、C、 D,要求按照等级输出对应的分数段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("input:%s\n",input); printf("output:%s\n",output); } 5. 调试程序 a3vues4sdf2kjk9df0v input:a3vues4sdf2kjk9df0v output:a0vues2sdf3kjk4df9v 6. 实验结果及分析 经过多次验算结果正确,程序正确无误,圆满完成。 五、程序代码 #include<stdio.h> #include<string.h> #include<ctype.h> void my_sort(char input[],char output[]) { int i,n,m,k,j;
2. 建立计算模型: 使用选择排序法
3. 算法 for(m=0;m<=n-2;m++) { k=m; for(j=m+1;j<=n-1;j++) if(a[j]<a[k]) k=j; if(m!=k) { x=a[m]; a[m]=a[k]; a[k]=x; }
} 4. 编写程序代码与具体实验过程:
break; } 后来发现这实在是太麻烦了,就使用了字符函数 isdigit 代替 switch 语句,使程序代 码缩短(能运行但无法得出想要结果的错误程序): #include<stdio.h> #include<string.h> #include<ctype.h> void my_sort(char input[],char output[]) { int i,n,m,k,j; char x,a[50];
三、 实验内容 实验题目:有一字符串,请对字符串中的数字字符按照升序排列,其他非数字字符存储位置 保持不变,将结果保存至 output 数组中。(注:字母可能包含大写、小写字母、数字以及控 制字符) 要求:有主函数输入待排序的字符窜,并由函数 my_sort(char input[],char output[]), 实现排序,再由主函数输出排序结果。 例如: input:a3vues4sdf2kjk9df0v output:a0vues2sdf3kjk4df9v
刚开始我用 for 循环语句和 switch 语句来提出数字字符: for(i=0,n=0;i<50;i++) { switch(input[i]) { case '0': a[n]=input[i]; n++; break; case '1': a[n]=input[i]; n++; break; case '2': a[n]=input[i]; n++; break; case '3': a[n]=input[i]; n++; break; case '4': a[n]=input[i]; n++; break; case '5': a[n]=input[i]; n++; break;
if(m!=k) {
x=a[m]; a[m]=a[k]; a[k]=x; } }
for(i=0,m=0;i<50;i++) { output[i]=input[i];
if(isdigit(output[i])!=0) {output[i]=a[m]; m++; } } }
void main() {
char input[50]; char output[50]; scanf("%s",input); my_sort(input,output);
printf("input:%s\n",input); printf("output:%s\n",output); } 六、总结建议 通过该实验我对 for、switch 和选择排序法的使用更加熟练,并且学会了使用字符函数。但 我对于一些基础知识掌握不够扎实,应多去复习一下基础知识。
if(m!=k)
{ x=a[m];
a[m]=a[k]; a[k]=x; } }
for(i=0,m=0;i<50;i++) { output[i]=input[i];
if(isdigit(output[i])!=0) {output[i]=a[m]; m++; } } }
void main() { char input[50]; char output[50]; scanf("%s",input); my_sort(input,output);
C 语言程序设计上机实验报告
指导教师:甘 玲 学 号:2011213297 姓 名:洪少鹏 班 级:1101104 时 间:2009-4-1
一、 实验目的
1. 在实验过程中发现自己的不足,加以补足。 2. 检测自己的能力,提高实验能力。
二、 实验要求
1.掌握用 C 语言解决实际问题的步骤; 2.掌握 C 语言的语法规则及算法的表示; 3.通过上机实验,加深对《解析 C 程序设计》课程中基本概念的理解; 4.提高对计算机程序的编写和应用能力; 5.考察自己对 C 语言的编程能力。
case '6': a[n]=input[i]; n++; break; case '7': a[n]=input[i]; n++; break; case '8': a[n]=input[i]; n++; break; case '9': a[n]=input[i]; n++; break; default:
for(i=0,n=0;i<50;i++) { if(isdigit(input[i])!=0) {a[n]=input[i]; n++; } } for(m=0;m<=n-2;m++) {
k=m; for(j=m+1;j<=n-1;j++)
if(a[j]<a[k]) k=j;
if(m!=k) {
char x,a[50]; for(i=0,n=0;i<50;i++) { if(isdigit(input[i])!=0) {a[n]=input[i]; n++; } }
for(m=0;m<=n-2;m++) {
k=m; for(j=m+1;j<=n-1;j++)
if(a[j]<a[k]) k=j;
for(i=0,m=0;i<50;i++) { if(isdigit(input[i])!=0) {a[m]=input[i]; m++; }
} n=strlen(a); for(m=0;m<=n-2;m++) { k=m; for(j=m+1;j<=n-1;j++)
if(a[j]<a[k]) k=j;
四、 实验步骤 1.问题的提出与分析; 2.建立计算模型; 3.算法的确定与表示; 4.编写程序代码; 5.调试程序; 6.整理结果(实验结果及分析)。
具体实验步骤:
1. 问题的提出与分析: 如何在有其他字符的干扰下对数字字符进行排序呢? 很简单-将数字字符从字符串里提出,放置到令一个数组中,然后用选择排序法进行 排序,之后再用将之按顺序放回原来的字符串里。
x=a[m]; a[m]=a[k]; a[k]=x; } }
for(i=0,m=0;i<50;i++) { output[i]=input[i];
if(isdigit(output[i])!=0) {output[i]=a[m]; m++;t[50]; char output[50]; scanf("%s",input); my_sort(input,output);