当前位置: 首页 > news >正文

10.17复习

文章目录

  • 前言
  • 一、选择题
    • 1.第一题
    • 2.第二题
    • 3.第三题
    • 4.第四题
    • 5.第五题
  • 二、编程题
    • 1.第一题
    • 2.第二题
  • 总结


前言


一、选择题

1.第一题

1、以下对C语言函数的有关描述中,正确的有【多选】( )
A: 在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体
B: 函数的实参和形参可以是相同的名字
C: 在main()中定义的变量都可以在其它被调函数中直接使用
D: 在C程序中,函数调用不能出现在表达式语句中

答案解析:
正确答案:AB
主函数中定义的局部变量只在主函数中有效,因为主函数也是一个函数,它与其他函数是平行关系,C错误;当函数有返回值时,可以出现在表达式中,D错误

2.第二题

2、在C语言中,以下正确的说法是( )
A: 实参和与其对应的形参各占用独立的存储单元
B: 实参和与其对应的形参共占用一个存储单元
C: 只有当实参和与其对应的形参同名时才共占用存储单元
D: 形参是虚拟的,不占用存储单元

答案解析:
正确答案:A
形参是实参的一份临时拷贝,分别占用不同的内存空间

3.第三题

3、在上下文及头文件均正常的情况下,下列代码的输出是( )(注: print 已经声明过)

}
int main()
{  
  char str[] = "Geneius";
  print(str);
  return 0;
}
print(char *s)
{
  if(*s)
 {
    print(++s);
    printf("%c", *s);
 }
}

A: suiene B: neius C: run-time error D: suieneG

答案解析:
正确答案:A
代码实现了递归倒序打印字符串的功能,但是++s使得s的值发生了变化,回不到’G’的位置上,故而没有打印’G’

4.第四题

4、对于函数 void f(int x); ,下面调用正确的是( )
A: int y=f(9); B: f(9); C: f(f(9)); D: x=f();
答案解析:

答案解析:
正确答案:B
函数f是没有返回值的,不能给int类型变量赋值,故A错误,同时需要一个整型参数,C中f(9)不能作为f的参数,也是错的,D选项没有传参,也不能接收返回值也是错误的。

5.第五题

5、给定 fun 函数如下,那么 fun(10) 的输出结果是( )

int fun(int x)
{
  return (x==1) ? 1 : (x + fun(x-1));
}

A: 0 B: 10 C: 55 D: 3628800

答案解析:
正确答案:C
代码是一个递归函数,等差数列求和

二、编程题

1.第一题

在这里插入图片描述

#include <stdio.h>

int main()
{
    char str[1000];
    int  i=0;
    int  j=0;
    while(gets(str))
    {
        int sz = strlen(str);
        for(i=0;i<sz-1;i++)
        {
            for(j=0;j<sz-i-1;j++)
            {
                if(str[j]>str[j+1])
                {
                    char ch=str[j];
                    str[j]=str[j+1];
                    str[j+1]=ch;
                }
            }
        }
        printf("%s\n", str);
    }
    return 0;

}

2.第二题

在这里插入图片描述

int pivotIndex(int* nums, int numsSize)
{
    int i = 0, j = 0;
    for (i = 0; i < numsSize; i++)
    {
        int sub1 = 0;
        int sub2 = 0;
        for (j = 0; j < numsSize; j++)
        {
            if (j < i)
            {
                sub1 += nums[j];

            }
            else if (j > i)
            {
                sub2 += nums[j];
            }
        }
            if (sub1 == sub2)
            {
                return i;
            }
        
    }
    return -1;
}

总结

编程部分主要是对冒泡排序的应用
选择题主要是对递归的掌握

相关文章:

  • 个人博客网站设计的目的/什么是新媒体营销
  • 登封做网站推广/开发一个app需要多少钱?
  • 嘉峪关住房和城乡建设局网站/网站联盟广告
  • 钓鱼转转网站在线生成/阿里域名注册官网
  • 个人网站备案简介/怎样注册自己的网站
  • 外贸网站建设 东莞/百度关键字搜索排名
  • Python正则表达式详解
  • Day08-尚品汇-分页器动态展示
  • 基于图像处理技术的印刷电路板缺陷检测技术分析
  • Hello Word你真的理解了么?今天教我的表弟,有些感悟
  • 【NNDL作业】图像锐化后,为什么“蒙上了一层灰色”?
  • JDBC——使用Java语言操作数据库
  • 将华为地图套件集成到HarmonyOs可穿戴设备应用中
  • 基于OpenAPI(Swagger3)使用AOP技术,进行日志记录
  • JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
  • 【PyTorch深度学习项目实战100例】—— 基于UNet实现血管瘤超声图像分割 | 第30例
  • 浅谈面向对象设计思想,以及在Linux内核中的体现
  • Mybatis——进阶