c语言实验报告

一.实验题目,设计思路,实现方法

1.实验题目

11-6 方阵循环右移

本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、?、n?1列变换为第n?mn?m+1、?、n?1、0、1、?、n?m?1列。

12-7 输出大写英文字母

本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。

13-4 使用函数的选择法排序

本题要求实现一个用选择法对整数数组进行简单排序的函数。

14-2 删除字符

本题要求实现一个删除字符串中的指定字符的简单函数。

15-6 按等级统计学生成绩

本题要求实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。

2.设计思路

11-6 方阵循环右移

定义两个二维数组a b,a存放输入的数组,将右移后数组的值赋值到b的相应下标。这里的重点是新列下标的计算。

12-7 输出大写英文字母

此题主要难点在于大写字母的不重复输出。通过定义第二个字符数组存放。加一个循环判断重复的不在放入。

13-4 使用函数的选择法排序

与数组选择法排序相同,通过循环比较大小在交换字符串数组元素的值。

14-2 删除字符

录入要删除的指定字符,通过指针的移动*取元素值,遇到需要删除的元素跳过赋值,达到删除效果。

15-6 按等级统计学生成绩

按照题目设定标准将成绩转换成等级保存到结构体的grade中。

3.实现方法

11-6 方阵循环右移

我采用求余的办法,原本的列下标加上位移数求余列数得到新的下标然后保存到新的数组中。

12-7 输出大写英文字母

用一个flag变量来标记,j计数并用j循环查找是否有相同的大写字母,不同写入新字符串数组,有相同则flag为1跳过下一个语句。末尾flag归0.最后打印新数组。

13-4 使用函数的选择法排序

一个外循环进行字符串数组的单个元素读取,index标记外循环下标。内循环从index开始并找出后续最大或者最小的值并赋给index下标。交换index下标与i下标元素的值。

14-2 删除字符

新定义一个与传递过来指针地址相同的指针,判断指针如果不为空则在定义一个新的指针。第一个用来记录字符串首地址,第二个与传递的指针移动赋值,遇到制定字母跳过,最后返回第一个指针。

15-6 按等级统计学生成绩

一个变量计数计不及格的人数,还是通过指针的变化来对分数判断并赋值给grade.

二.       源程序(可只截取最关键的部分)

11-6 方阵循环右移

for(i=0;i<n;i++){
  for(j=0;j<n;j++){
   x=(j+m)%n;
   b[i][x]=a[i][j];
  }
 }

12-7 输出大写英文字母

for(i=0;s[i]!=‘\0‘;i++)
  {
    if(s[i]<=‘Z‘&&s[i]>=‘A‘)
    {
        k=1;
      for(a=0;a<j;a++)
      {
        if(ss[a]==s[i])
        flag=1;
      }
      if(flag==0)
      {
      ss[j]=s[i];
      j++;
      }
      flag=0;
    }
  }
  13-4 使用函数的选择法排序

int index,t;
 for(int i=0;i<n-1;i++){
  index=i;
  for(int j=i+1;j<n;j++)if(a[j]<a[index])index=j;
  t=a[index];
  a[index]=a[i];
  a[i]=t;
 }

14-2 删除字符

void delchar( char *str, char c ) 

    char* ret = str; 
    if( str != NULL ){ 
        char* p = str; 
        while( *str ){ 
            if( *str != c ){ 
                *p = *str; 
                p++; 
            } 
            str++; 
        } 
        *p = *str; 
    } 
    return ret; 
}

15-6 按等级统计学生成绩

int set_grade( struct student *p, int n )
{
 int i,cnt=0;
 for(i=0;i<n;i++)
 {
  if(p->score>=85)p->grade=‘A‘;
  if(p->score>=70&&p->score<85)p->grade=‘B‘;
  if(p->score>=60&&p->score<70)p->grade=‘C‘;
  if(p->score>=0&&p->score<60)
  {
   p->grade=‘D‘;
   cnt++;
  }
  p++;
 }
 return cnt;
}

原文地址:https://www.cnblogs.com/ymtl/p/8367563.html

时间: 2024-11-08 17:21:58

c语言实验报告的相关文章

C语言实验报告(三)

C语言实验报告(三) 实验项目: 4.3.1:if语句的应用 4.3.2:switch-case的应用 4.3.3:switch-case嵌套if语句的应用 4.3.4:switch-case结构嵌套的应用 4.3.5:分析程序 项目实训:计算器的实现 姓名:徐志平 实验地点:家  实验时间:2020.3.28 一.实验目的与要求 1.掌握C语言逻辑值的表示方法(0代表“假”,1代表“真”) 2.学会正确地使用关系表达式和逻辑表达式 3.掌握各种形式的if语句语法和使用方法.if语句中if和el

C语言实验报告三

C语言程序设计实验报告 姓名:林顺显 实验地点:家 实验时间:2020.3.29 实验项目: 4.3.1:if语句的应用 4.3.2:switch-case的应用 4.3.3:switch-case嵌套if语句的应用 4.3.4:switch-case结构嵌套的应用 4.3.5:分析程序 项目实训:计算器的实现 一.实验目的与要求 1.掌握C语言逻辑值的表示方法(0代表"假”,1代表"真").2.学会正确地使用关系表达式和逻辑表达式.3.掌握各种形式的if语句语法和使用方法,

C语言实验报告(四)

C程序设计实验报告 姓名:杨静  实验地点:家  实验时间:2020.04.10 实验项目 1.用for语句实现循环 2.用while循环语句实现循环 3.用do-while语句实现循环 4.用while语句和for语句配合实现循环 5.用for语句嵌套实现循环 一.实验目的与要求 1.熟练地掌握while,do_while及for语句实现循环的方法. 2.了解3种循环语句的区别和转换.各自的适应性.循环嵌套的使用. 3.掌握如何在循环语句种使用break,continue语句,改变程序流程.

C语言实验报告四

C程序设计实验报告 实验项目: 5.3.1-2求数列的前n项和:5.3.2水仙花数:5.3.4十进制转换:5.3.5-1百马百担问题:5.3.5-2求等差数列:5.3.5-3食品分配问题:九九乘法表. 姓名:熊晓东    实验地点:家   实验时间:2020.04.12 一.实验目的与要求 1.熟练地掌握while,do-while及for语句实现循环的方法.2.了解3种循环语句的区别和转换,各自的适应性,循环嵌套的作用.3.掌握如何在循环语句中使用break,continue语句,改变程序流程

R语言- 实验报告 - 数据清洗

一. 实训内容 能对基本的开发环境进行检验和错误排查,以及对新语言软件进行安装. 能使用Navicat for MySQL对MySQL数据库进行基本的连接测试,同时,在mysql中新建student数据库.能利用外部SQL脚本文件对数据库进行数据集的导入和初始化. 熟悉利用eclipse编程工具,新建项目和工具类对mysql数据库进行相应的操作,以及从该项目中导出可执行的jar文件. 利用R-3.6.1-win.exe运行,导出的可执行的jar文件.并编写一个“数据清洗.r”脚本文件,对C:\

C语言实验报告(五) 两个正整数的最大公约数

编程实现求两个正整数的最大公约数,要求计算最大公约数用函数fun(int a,int b)实现. #include<stdio.h>void main(){  int n,a,b;  int fun(int a,int b);  printf("please input a,b:");  scanf("%d,%d",&a,&b);  n=fun(a,b);  printf("%d,%d的最大公约数为%d",a,b,n)

C++实验报告

C++语言实验报告 班级:计科1501 学号:1508030130 姓名:刘琦 一.实验目的 1.掌握面向对象编程的基本思想 2.培养解决实际问题的能力 3.熟练掌握VC++6.0调试环境 二.实验题目 分别定义Teacher (教师)类和Cadre (干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre (教师兼干部)类.要求: (1)在两个基类中都包含姓名.年龄.性别.地址.电话等数据成员. (2)在Teacher 类中还包含数据成员title(职称),在Cadre 类中

C语言学籍管理系统包括流程图和实验报告

一.课程设计目标 C语言课程设计的目的是通过课程设计的综合训练,培养学生实际分析问题.编程和动手能力,最终目标是通过这种形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务.本课程设计具有如下特点:重点在于C语言的基本特征上,涵盖了C语言的重要基础知识.结合了实际应用的要求,使课程设计既涵盖知识点,又接近工程实际需要.通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力以及编程能力,并养成良好的编程习惯. 另外,在实际编程中,为了提高编程质量

C语言学生学籍信息管理系统源码附赠实验报告

一.课程设计目标 C语言课程设计的目的是通过课程设计的综合训练,培养学生实际分析问题.编程和动手能力,最终目标是通过这种形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务.本课程设计具有如下特点:重点在于C语言的基本特征上,涵盖了C语言的重要基础知识.结合了实际应用的要求,使课程设计既涵盖知识点,又接近工程实际需要.通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力以及编程能力,并养成良好的编程习惯. 另外,在实际编程中,为了提高编程质量