计算机与软件工程实习出口考核之基础能力考核

这篇博客详细介绍了计算机与软件工程实习的基础能力考核内容,涵盖C语言、数据结构与算法、数据库系统和面向对象程序设计四个主要方面。在C语言部分,讲解了变量声明、条件语句、循环语句、指针和结构体等概念。数据结构与算法部分涉及基本数据结构的选择、遍历和排序算法。数据库系统部分讲解了E-R图、三大范式和约束。最后,面向对象程序设计部分探讨了类、对象、继承和多态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算机与软件工程实习出口考核之基础能力考

一、《计算思维导论(C 语言)》

1、程序的基本逻辑

①、变量声明与定义
  • 变量的赋值分为两种方式:
  1. 先声明再赋值 int num; num = 10;
  2. 声明的同时赋值 int num = 10;
  • c语言中,数据类型可分为:
    在这里插入图片描述

最常用的 整型、浮点型、字符型。

在这里插入图片描述

  • 格式化输出语句:

    格式为:printf("输出格式符",输出项);

    在这里插入图片描述

  • 运算符号:

在这里插入图片描述

除法运算中,需注意:
若相除的两个数都是整数,则结果也为整数,小数部分省略。如 8/3=2;
若两个数中有一个为小数,结果则为小数。如 9.0/2=4.500000

取余运算中,需注意:
若运算只是和用两个整数进行取余运算,如 10%3=1;
但 10.0%3则是错误的。
运算后的符号取决于被模数的符号。如 (-10)%3=-1; 而 10%(-3)=1;

自增与自减运算符:
在这里插入图片描述

逻辑运算符:
在这里插入图片描述

② 条件语句:
  • if-else 条件语句

    if(表达式){
         
        执行代码块1;
    }else {
         
        执行代码块2;
    }
    // 如果表达式为真,则执行代码块1,否则执行代码块2。
    
  • 多重 if-else条件语句

    if(表达式){
         
        执行代码块 1;
    }
    …………
    else if(表达式 m){
         
        执行代码块 m;
    }else{
         
        执行代码块 n;
    }
    // 依次判断表达式的值,当出现某个值为真时,则执行对应代码块,否则执行代码块n。
    // 注意:当某一条件为真的时候,则不会向下执行该分支结构的其他语句。
    
  • 嵌套if-else条件语句

    会读下面这段代码就可。

    
    #include <stdio.h>
     
    int main ()
    {
         
       /* 局部变量定义 */
       int a = 100;
       int b = 200;
     
       /* 检查布尔条件 */
       if( a == 100 )
       {
         
           /* 如果条件为真,则检查下面的条件 */
           if( b == 200 )
           {
         
              /* 如果条件为真,则输出下面的语句 */
              printf("a 的值是 100,且 b 的值是 200\n" );
           }
       }
       printf("a 的准确值是 %d\n", a );
       printf("b 的准确值是 %d\n", b );
     
       return 0;
    }
    
    // a 的值是 100,且 b 的值是 200
    // a 的准确值是 100
    // b 的准确值是 200
    
③ 循环语句
  • while循环

    while(表达式){
         
        执行代码块
    }
    // 其中表达式为 循环条件,执行代码块为 循环体
    // while 的语义是: 计算表达式的值,当值为真(非0)时, 执行循环体代码块。
    
  • do-while循环

    do{
         
        执行代码块
    }while(表达式); // 注意;这里有分号
    
    // do-while循环语句的语义是: 它先执行循环中的执行代码块,然后再判断while中表达式是否为真,如果为真则继续循环;如果为假,则终止循环。
    // 因此,do-while循环至少要执行一次循环语句。重要!!
    
  • for循环

    for(表达式1;表达式2;表达式3){
         
        执行代码块
    }
    // 执行过程如下:
    // 执行表达式1,对循环变量进行初始化;
    // 判断表达式2,若其值为真(非0),则执行for循环体中执行代码块,然后向下执行;若其值为假(0),则结束循环;
    // 执行表达式3,(i++)等对于循环变量进行操作的语句;
    // 执行for循环中执行代码块后执行第二步;第一步初始化只会执行一次。
    // 循环结束,程序继续向下执行。
    
    • 表达式1是一个或多个赋值语句,它用来控制变量的初始值

    • 表达式2是一个关系表达式,它决定什么时候退出循环;

    • 表达式3是循环变量的步进值,定义控制循环变量每循环一次后按什么方式变化。

    • for循环中的“表达式1、2、3”均可不写为空,但两个分号(;;)不能缺省。

    • 表达式1和表达式3可以是一个简单表达式也可以是多个表达式以逗号分割。

      int sum,num;
      for(sum = 0,num = 0;num <= 3; num++ ,sum++){
             
          sum += num;
          printf("num=%d,sum=%d\n",num,sum);
      }
      
④ break 和 continue 语句
  • break语句

    在没有循环结构的情况下,break不能单独在if-else语句中。

    在多层循环中,一个break只能跳出当前循环。

  • continue语句

    continue语句的作用是结束本次循环开始执行下一次循环。

例题:
  1. 执行以下程序段后,输出结果和a的值是()

    int a=10; 
    printf("%d",a++);
    

    A、11 和 10

    B、11 和 11

    C、10 和 11

    D、10 和 10

    答案:c

  2. 能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是()

    A、a>=0 | a<=10

    B、a>=10 or a<=0

    C、a>=10 && a<=0

    D、a>=10 || a<=0

    答案:D

  3. 该程序的输出结果是( )

    int main()
    {
         
        int x=1,a=0,b=0; 
        
    switch (x)
      {
          
        case  0: b++;
        case  1: a++;
        case  2: a++;
        b++;
    }                    
     
     printf("a=%d,b=%d",a,b);
     
    }
    

    A、2,2

    B、2,1

    C、1,1

    D、1,0

    答案:B

    switch结构分支没加break;跳出语句,开始执行后,程序由x=1调到case 1 分支 a++(a由0自己加为1),由于没有break语句,程序继续执行到内case 2 分支 a++ b++(a由1自加变2,b由0自加为1),之后程序printf输出 a=2 ,b=1

  4. 以下程序中,while循环的循环次数是______

    main()
    {
         
      int  i=0;
      while(i<10)
      {
         
        if(i<1)   continue;
        if(i==5)  break;
        i++;
      }
    }
    

    A、死循环,不能确定次数

    B、6

    C、4

    D、1

    A

  5. 执行以下代码块,若从键盘输入字符abc,并按回车键,则运行结果是( )

    #include <stdio.h> 
    
    int main()
    
    {
         
    
    char a;
    
    scanf("%c",&a);
    
    printf("%c",a);
    
    return 0;
    
    }
    
    • A. ab
    • B. a
    • C. b
    • D. 空白

    答案:B

    字符类型只能保存

2、数组

#### ① 数组的初始化与定义

  1. 数组的声明

    数据类型 数组名称[长度]

    // 声明一个一维数组  type arrayname [arraySize];
    double bookNum [10];  // 现在 bookNum 是一个数组,可以容纳10个类型为double的数字。
    
    // 声明一个二维数组 type arrayName [ x ][ y ];
    int x[3][4]; // 可以想象成生成了一个三行四列的表格。
    
  2. 数组的初始化

    • 一维数组的初始化
    // 1、数据类型 数组名称[长度n] = {元素1,元素2 ..... ,元素n};
    double bookPrice[5] = {
         100.0,25.2,522.2,452.9,50.2};
    
    // 2、数据类型 数组名称[] = {元素1,元素2…元素n}; 若省略掉了数组声明式在[]中指定的元素数目,则数组大小为初始化时元素的个数。
    double bookPrice[] = {
         100.0,25.2,522.2,452.9,50.2}; //则这个数组的长度就为5
    
    // 3、数据类型 数组名称[长度n]; 
    //   数组名称[0] = 元素1; 
    //   数组名称[1] = 元素2; 
    //   数组名称[n-1] = 元素n;
    double bookPrice[5];
    bookPrice[0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值