6.数组测试案列

1.学生成绩管理系统
要求:
学生成绩管理系统
1.输入成绩
2.输出成绩
3.总成绩
4.平均成绩
5.最高成绩
6.最低成绩
7.及格率
8.成绩排序(由高到低)
0.退出

八项功能+菜单+主函数(用户名、密码、分别有三次机会)如果成功登录则循环调用菜单。

#import 
#define NUM 5
//1.学生成绩管理系统
//要求:
//学生成绩管理系统
//1.输入成绩
//2.输出成绩
//3.总成绩
//4.平均成绩
//5.最高成绩
//6.最低成绩
//7.及格率
//8.成绩排序(由高到低)
//0.退出
//
//八项功能+菜单+主函数(用户名、密码、分别有三次机会)如果成功登录则循环调用菜单。
int menu();
void inputScore();
void outputScore();
void sumSocre();
void avgScore();
void maxScore();
void minScore();
void passScore();
void sortScore();
float score[NUM],sum=0;
int i;
int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        char name[100];
        int password,i,j,flag =0;
        //用户名三次循环
        for (i=1; i<4; i++) {
            puts("请输入用户名:");
            gets(name);  //输入字符串(用户名)
            //strcmp:字符串比较函数,比较两个字符串的大小,如果第一个字符串大于第二字符串,则返回正数;如果第一个字符串等于第二个字符串,则返回0;否则,返回负数。
            if (strcmp(name, "zhangsan")==0) { //对字符串比较函数的返回值进行判断
                //密码三次循环机会
                for (j=1; j<4; j++) {
                    printf("请输入密码:");
                    scanf("%d",&password); //输入密码
                    //判断密码
                    if (password==123456) {
                        flag = 1; //如果用户名与密码都正确,则标志为1;
                        break; //退出密码循环
                    }else{
                        //密码错误时,提示
                        printf("密码错误,请重新输入,您还有%d次机会!\n",3-j);
                    }
                }
                break; //退出用户名循环
            }else{
                //用户名错误时,提示
                printf("用户名错误,请重新输入,您还有%d次机会!\n",3-i);
            }
        }
        //当标志为1 时,则代表可以正确登录成绩管理系统
        while (flag==1) {
            //当用户在菜单中选择退出时,会返回值为1,返回1时,则退出程序,否则,继续执行程序
            if (menu()==1) {
                break;
            }
        }
        
    }
    return 0;
}
int menu(){
    int flag=0; //设标志初值为0
    //菜单
    printf("\n\n\t\t学生成绩管理系统\n");
    printf("\t\t 1.输入成绩\n");
    printf("\t\t 2.输出成绩\n");
    printf("\t\t 3.总成绩\n");
    printf("\t\t 4.平均成绩\n");
    printf("\t\t 5.最高成绩\n");
    printf("\t\t 6.最低成绩\n");
    printf("\t\t 7.及格率\n");
    printf("\t\t 8.成绩排列\n");
    printf("\t\t 0.退出\n");
    
    int n;
    printf("请输入功能选项:");
    scanf("%d",&n); //由用户输入功能编号
    
    //判断功能编号,进入相应的功能块
    switch (n){
        case 1: printf("您选择了输入成绩的功能:\n");inputScore();break;
        case 2: printf("您选择了输出成绩的功能:\n");outputScore();break;
        case 3: printf("您选择了总成绩的功能:\n"); sumSocre();break;
        case 4: printf("您选择了平均成绩的功能:\n");avgScore();break;
        case 5: printf("您选择了最高成绩的功能:\n");maxScore();break;
        case 6: printf("您选择了最低成绩的功能:\n");minScore();break;
        case 7: printf("您选择了及格率的功能:\n");passScore();break;
        case 8: printf("您选择了成绩排列的功能:\n");sortScore();break;
        case 0: flag = 1;break;  //当用户选择功能0时,则标志为1;
        default:printf("您选择有误!\n");
    }
    return flag; //返回值 为1
}
//输入成绩
void inputScore(){
    printf("请输入%d个成绩:\n",NUM);
    for (i=0; iscore[i]) {
            min=score[i];
        }
    }
    printf("本班级的最低成绩是:%.2f\n",min);
}
//求及格率
void passScore(){
    int count=0;
    //循环统计及格人数
    for (i=0; i=90) {
            count++;
        }
    }
    //及格率=及格人数/总人数*100
    printf("本班级的及格率是:%.2f%%\n",(float)count/NUM*100);
    //输出%,格式%%
}
//成绩排序
void sortScore(){
    //从后向前(冒泡排序)
    for (i=1; i=i; j--) {
            if (score[j]>score[j-1]) {
                float t= score[j];
                score[j]=score[j-1];
                score[j-1]=t;
            }
        }
    }
    printf("本班级成绩由高到低排序如下:\n");
    for (i=0; i

2.ATM机管理系统
ATM机管理系统
1.存款
2.查询
3.取款——(子菜单)
4.转账
5.退出

子菜单 如下:
1.100元
2.200元
3.500元
4.1000元
5.2000元

#import 
int a; //全局变量、当全局变量与局部变量同名时,局部变量优先。
//1.最简单的函数封装:无参无返回值的函数
//左void:空类型,没有返回值、该类型不可省略。右void:表示此函数没有参数,参数void可省略
//定义函数时,如果返回值类型省略不写,则默认为int类型
void Hello(void){   //函数头
    printf("hello world\n");  //被封装的功能
}//函数体
//格式:
//返回值类型 函数名(){  功能模块;}


//
//1》编写函数实现输出图形
//
//
//
void menu(){
    printf("\n\n\t\t====ATM机管理系统=====\n");
    printf("\t\t 1:取款\n");
    printf("\t\t 2:存款\n");
    printf("\t\t 3:查询\n");
    printf("\t\t 4:转账\n");
    printf("\t\t 0:退出\n");
    
    printf("请输入功能编号:");
    int n;
    scanf("%d",&n);
    
    switch (n){
        case 1:printf("您选择了取款功能\n");break;
        case 2:printf("您选择了存款功能\n");break;
        case 3:printf("您选择了查询功能\n");break;
        case 4:printf("您选择了转账功能\n");break;
        case 0:printf("退出\n");break;
        default:printf("您选择有误!\n");
    }
}
//2》    用函数实现两数相加
void mySum(){
    int a,b;
    printf("请输入两个整数:");
    scanf("%d%d",&a,&b);
    printf("%d\n",a+b);
}
//3》定义一个函数求两个数最大值。

//2.有参无返回值函数
//参数:负责函数间数据传递的信息
//只能由实参传递数据给形参,且为单向传递
//形参:只能是变量。用来接收数据。
//实参:可以是变量、常量 、表达式。
//实参与形参的类型、数量、顺序必须一致。
void yourSum(int a,int b){  //形式参数(形参):定义函数时所用的参数
    printf("%d",a+b);
}

//格式:返回值类型 函数名(参数1,参数2,……参数n){功能模块}

//1》定义一个函数实现求n!(1*2*3*4*5)。
void fuc(int n){
    int ji=1;
    for (int i=1; i<=n; i++) {
        ji*=i;
    }
    printf("%d\n",ji);
}
//2》输入二个数n与k输出n--k之间的所有偶数
void printEven(int n,int k){
    if (n>k) {
        int t=n;
        n=k;
        k=t;
    }
    for (int i=n; i<=k; i++) {
        if (i%2==0) {
            printf("%d ",i);
        }
    }
}
//3》输入一个成绩判断是否合格的(合格>=90)
void isPass(int score){
    if (score>=90) {
        printf("合格\n");
    }else{
        printf("不合格\n");
    }
}

//3.返回值函数
//return:返回值的关键字
//一个函数中可以有多个return语句,但只能返回一个return的值
int hisSum(int a,int b){
    return a+b;
}

//利用函数判断一个数是偶数还是奇数,如果是偶数,则返回1,奇数返回0。在主调函数中判断,如果是偶数则输出even,如果是奇数,输出odd?(有参有返回的函数)
int isOdd(int a); //函数的声明、函数的原型说明

//主调函数如果在被调函数上面,则必须对被调函数进行声明。否则,可声明可不声明。

//任何一个函数都可以调用除主函数外的任何函数(包含它自己)。
//递归调用:就是自己调用自己的过程。
int fac(int n)//n就是循环初值
{
    if(n==1) return 1; //循环条件
    else return n*fac(n-1); //5*4*3*2*1
}

int herSum(int n)
{
    if (n==0) {
        return 0;
    }else{
        return n+herSum(n-1);
    }
}
int main(int argc, const char * argv[])
{

    @autoreleasepool {
//        mySum();
//        int a,b;
//        printf("请输入两个整数:");
//        scanf("%d%d",&a,&b);
//        yourSum(a, b+1); //实际参数(实参):调用函数时所用的参数
//        int n;
//        printf("请输入一个整数:");
//        scanf("%d",&n);
//        fuc(n);
//        int n,m;
//        printf("请输入两个整数:");
//        scanf("%d%d",&n,&m);
//        printEven(n, m);
//        int n;
//        printf("请输入一个成绩:");
//        scanf("%d",&n);
//        isPass(n);
//        int a,b;
//        printf("请输入两个整数:");
//        scanf("%d%d",&a,&b);
//        printf("%d\n",hisSum(a,b));
        
        
//        int a;
//        printf("请输入一个整数:");
//        scanf("%d",&a);
//        int n=isOdd(a);
//        if (n==1) {
//            printf("even\n");
//        }else{
//            printf("odd\n");
//        }
        printf("%d\n",herSum(100));
    }
    return 0;
}
int isOdd(int a){
    a=5;
    if (a%2) {
        return 0;
    }else{
        return 1;
    }
}

6.返回

练习

一、单选题

  1. 下面对无参数函数的定义形式正确的是( )
    A. double fun( ){ } B. double fun(int x; int y){ }
    C. double fun(int x, int y) ; D. double fun{ };
  2. 下面程序通过函数实现输入长方形长与宽求周长,空白处应填入( )
#include “stdio.h”
____________________
{
 int a,b,s;
 printf(“请输入长与宽”);
 scanf(“%d%d”,&a,&b);
 s=2*(a+b);
 printf(“%d”,s); 
}
void main()
{  length();   }
A. void  length()   B. void  length();   C. length;  D. length(){  };
  1. 给定一个C程序的代码如下所示,则编译运行后,如果输入的值分别是1与5则输出结果是( )。
 #include “stdio.h”
 void add(  )
   {   
      int a,b,sum=0,i;
      scanf(“%d%d”,&a,&b);
      for(i=a;i<=b;i++){
        sum=sum+i;
      }
      printf(“%d”,sum);
   }    
  void main()
   { add();}
A. 1   B. 5   C. 15   D. 6
  1. 给定一个C程序的代码如下所示,则编译运行后,输出结果是( )。
#include “stdio.h”
void fun()
{
    int a[5]={12,3,2,7,1},i,m;
    m=a[0];
    for(i=0;i<5;i++){
       if(m
  1. 下面程序执行后的结果是( )
#include “stdio.h”
int fun()       
{
 int i,sum=0;
 int a[5]={1,2,3,4,5};
 for (i=0;i<5;i++) {
  if (a[i]%2!=0){
     sum+=i*i;
  }
 } 
  printf(“%d”,sum);
}
void main()
{   fun();
}
A. 35    B. 20   C. 25  D. 11
  1. 下面程序执行的结果是( )
#include “stdio.h”
int fun()       
{
       int i=0;
       int k =1 ;
       while(k<3){
           printf (“%d”,i);
           printf(“d”);
           k++;
       }
}
void main()
{   fun();   }
A. 012   B. 0d1d2d   C. 0d1d    D. 0d0d
  1. 下面程序执行后的结果是( )
#include 
void fun()
{
 int sum=0,i;                         
 for(i=0;i<=10;i++){                    
      if(i%10==0) {
        sum=sum+i;
      } else{ 
        continue; 
      }       
 }
    printf(“%d”,sum); 
}
main()
{   fun();   }   
A. 0    B. 10    C. 45    D. 55
  1. 下面程序执行后,输出的结果是( )
#include 
void fun()
{
   int i=5;
   while(i<=25){
     if(i%10==i/10){
      printf(“%d “,i);  // 11  22
     }
      i++;
   }
}
main()
{   fun();
}
A. 5 10 15 20 25   B. 11 22   C. 10 20   D. 7 14
  1. 执行下面程序后的结果是( )
#include 
void fun()
{
 int i, s=0;
    for (i=5; i<6; i++)
          s=s+i;
          s=s+i;
    printf(“%d”, s); 
}
main()
{   fun();   }
A. 5    B. 11    C. 0    D. 10
  1. 下面程序执行后如果输入的值分别是abc与cba则程序的输出结果是( )
#include “stdio.h”
void f()
{
  char arr[10],brr[10];
  gets(arr);
  gets(brr);
  printf(“%d”,strlen(arr)+strlen(brr));
}
main()
{   f();    }
A. -1     B. 6   C. abcabc     D. abccba
  1. 下面程序执行后如果输入的值是2,3则结果是( )
#include “stdio.h”
void fun( )
{  
  int a,b;
  scanf(“%d,%d”,&a,&b);
  a>b?printf(“%d”,a*a):printf(“%d”,b*b*b);    
}
void main()
{    fun();   }
A. 27    B. 4    C. 9    D. 8
  1. 执行下面程序,输入陶渊明的年龄26则输出结果是( )
#include “stdio.h”
void fun()
{ 
   int  age;
   scanf(“%d”,&age);
   if(age>=15 && age<=30)
   printf(“学习奋斗”);
   else    if(age>30  && age<=50)
       printf(“累积经验”);
}
void main()
{   fun();  }

A. 学习奋斗 B. 累积经验 C. 无法编译 D. 无输出

  1. 下面程序执行后的结果是( )
#include “stdio.h”
int m=10;
void fun()
{
   m=m+2;    
}
void main()
{
   m++;// 11
   fun();// 11+2 =13
   m++;// 14
   printf(“%d”,m);
}
A. 10   B. 11   C. 12    D. 14
  1. 下面程序执行后的结果是( )
#include “stdio.h”
void sum()
{
   int i,count=0;
   for(i=0;i<=40;i++){
       if(i%2==0 && i%5==0){
         count++;
       }
   }
   printf(“%d”,count); // 0,10,20,30,40
}
void main()
{   sum();    }
A. 2    B. 4    C. 5     D. 6
  1. 有以下代码:
int b;
void main()
{
   int a=10;
    b=b+100;
}

则a,b分别属于( )
A. 局变变量 局部变量 B. 全局变量 局部变量
C. 局部变量 全局变量 D. 全局变量 全局变量

二、判断题

  1. 变量的作用域指变量值表示的范围 ( )
  2. 在函数之内定义的变量称为局部变量,它的有效作用范围是整个程序( )
  3. 已知定义好一个求两数相减的无参函数,函数名为sub,如果调用此函数可>通过语句sub{ };( )
  4. 从用户的角度函数可以分为实用函数与不实用函数( )
  5. 定义一个输出数组中最大值的无参函数可以使用语句void maxvalue( ); ( )

你可能感兴趣的:(6.数组测试案列)