C语言期末考试内容(2)选择填空答案整理(基础章节内容)

C语言期末考试内容(2)选择填空答案整理(基础章节内容)


文章目录

  • C语言期末考试内容(2)选择填空答案整理(基础章节内容)
    • 作业二:变量定义/读/写与数据的存储表示
      • 一、判断题:
        • 答案: F F F F
        • 解析:
        • 1-4:C语言中的结束符是以分号来结束的,一个分号就代表一条语句。
      • 二、单选题:
        • 答案:ADCBAC
      • 三、填空题:
        • 答案:4-4
    • 作业3--运算符表达式与简单C程序
      • 一、判断题:
        • 答案:F T F F
      • 二、单选题:
        • 答案:CCDCA DBBAD AAAAB DCBDC
        • 解析:
        • 2-5 5>3>1 运算符==>==是二元运算符,从左向右计算 1>1 所以最后结果为 0;
        • 2-6 逗号也是一种运算符 感兴趣可以查一下;
        • 关于标识符:
    • 作业4--选择与循环结构程序设计(Level 1)
      • 一、判断题:
        • 答案: T F T T F F F F T T
      • 二、单选题:
        • 答案: DBBBA
        • 解析:
        • 2-2 C语言中不等于用 != 表示而不是==<>==,a=0 为赋值
        • C语言中for循环里面必须要有两个分号,初始条件可以提前在循环外设定而不写入
    • 作业6--编程三部曲
      • 一、判断题:
        • 答案: TFFTT
        • 解析: 1-1
        • 区别多层与多次 break向外跳一层,而continue是一次 ,两者只在循环中使用(循环中嵌套的if也是循环的范围)
        • 使用while语句时要记得对表达式中的值进行更新,避免死循环
    • 作业8-变量作用域与递归程序设计
        • 答案: C
        • 解析:
        • void 函数 类型为void表示不返回任何数值,
        • 定义的函数就是为了完成一系列功能的:
        • 1. 比如输入数据输出数据,这种情况是不需要返回值给主函数的,就像这个题目
        • 2. 指针操作数据也是不用返回数值的,因为通过指针访问数据是可以通过==*P==直接修改变量数值的,自然就不需要再把值返回给主函数
        • 第二个需要注意的地方就是函数每次内调用都会开辟一片新的存储空间用来存储子函数中的内容,如果函数是有返回值的函数(比如int double之类),那可以在子函数加工完成之后把内容再返回主函数,但如果子函数是void类型并且没用到指针,那么子函数和和主函数就是互不相干的两个区域,子函数一旦调用完成之后,存储空间就会释放,无法与主函数发生联系。此题目就是这样
        • 此处在第10行调用函数,进入子函数内 子函数定义了一个临时变量用来交换子函数中的两个数,交换完成并输出==8, 3==,然后存储空间释放,回到主函数11行,在打印主函数内存中的内容==5,7==
    • 作业9--二维数组操作
      • 因为只是判断这里就不写答案只是整理一下重点内容
        • 定义一个数组a[10],元素下标从0开始,对其初始化时可以部分初始化(后面未指定部分为0)也可以
        • 关于二维数组,二维数组的元素在内存中按行/列方式存放,即先存放第0行的元素,再存放第1行的元素……其中每一行的元素再按照列的顺序存放
        • 将二维数组的行下标和列下标分别作为循环变量,通过二重循环,就可以遍历二维数组,即访问二维数组的所有元素。由于二维数组的元素在内存中按行优先方式存放,将行下标作为外循环的循环变量,列下标作为内循环的循环变量,可以提高程序的执行
        • 关于数组名与指针常量的问题:
        • 在C/C++中,数组类型跟指针类型是两种不同的派生类型,数组名跟指针是两种不同类型的实体,把数组类型的实体说成“是”另一个类型的实体,本身就是荒谬的;--《C和指针》
    • 作业11-指针的概念和用法
      • 一、判断题:
        • 此处需要注意的地方就是:
        • 数组名是一个常量和定义的地址变量不同,他把不能被赋值
        • 关于C语言指针的运算:指针只有加减操作,没有乘除操作。指针可以加常数、减常数;相同类型的指针可以相减,不可以相加,(指针又叫做地址,本质就是一个数字,相加减还可以表示指针访问位置的移动,而相乘没有意义)
        • 语句`int *p`和`printf("%d",*p);`中的*p含义
        • ==int *== 是一个整体 而printf中==*== 自己是一个单独的整体
      • 二、单选题:
        • 答案:BCCAB CB
    • 作业12-结构体
      • 一、判断题:
        • 结构体成员的类型可以是基本数据类型或者结构体类型等复合类型
        • 结构体作为一种数据类型也有他自己的数组定义
          • 指向运算符 **->**
          • p为当前结构体的指针
          • p->num: (*p).num 即表示当前结构体num中存放的num变量的内容
          • *p->next: (*p).next 即表示当前结构体next中所存放的地址*
          • *p->next=r : 表示将r 的地址赋给next,让next指向结构体变量 即实现链表元素的链接*
      • 二、单选题:
        • 答案:CDCCDD
        • 2-3 题干有问题

作业二:变量定义/读/写与数据的存储表示

一、判断题:

  • 答案: F F F F

  • 解析:

    • 1-4:C语言中的结束符是以分号来结束的,一个分号就代表一条语句。

二、单选题:

  • 答案:ADCBAC

三、填空题:

去掉补码内容:

  • 答案:4-4

实数的输入
scanf 函数输入实数时所使用的格式限定符
float
%f
double
%lf
long double
%Lf
实数的输出
printf 函数输出实数时所使用的格式限定符
float
%f
double
%lf(或者%f)

作业3–运算符表达式与简单C程序

一、判断题:

  • 答案:F T F F

二、单选题:

  • 答案:CCDCA DBBAD AAAAB DCBDC

  • 解析:

    • 2-5 5>3>1 运算符==>==是二元运算符,从左向右计算 1>1 所以最后结果为 0;

    • 2-6 逗号也是一种运算符 感兴趣可以查一下;

    • 关于标识符:

      标示符是有数字,字母和下划线组成,但标示符的第一个字符必须是字母或者下划线。 c语言的标示符分为三类: 1,关键字,如:int,static等等,具有特定的含义,不能做他用。 2,预定义标示符,如:库函数的名字(像printf,putchar等等)和预编译处理命令(像define,include等),为了避免误解,建议用户不要将这些做他用。 3,用户标示符,由用户自定,但不能与关键字和预定义标示符相同。还应做到“见名知义”。 最后,在标示符中,大小写字母代表不同的意思!(44个C语言关键字)

作业4–选择与循环结构程序设计(Level 1)

一、判断题:

  • 答案: T F T T F F F F T T

二、单选题:

  • 答案: DBBBA

  • 解析:

    • 2-2 C语言中不等于用 != 表示而不是==<>==,a=0 为赋值

    • C语言中for循环里面必须要有两个分号,初始条件可以提前在循环外设定而不写入

作业6–编程三部曲

一、判断题:

  • 答案: TFFTT

  • 解析: 1-1

    区别多层与多次 break向外跳一层,而continue是一次 ,两者只在循环中使用(循环中嵌套的if也是循环的范围)

  • 使用while语句时要记得对表达式中的值进行更新,避免死循环

作业8-变量作用域与递归程序设计

  • 答案: C

  • 解析:

#include<stdio.h>
int x = 3, y = 8;
void swap (){
    int z;
    z = x; x = y; y = z;
    printf (" %d , %d \n", x, y);
}
int main() {
    int x = 5, y = 7;
    swap ();
    printf (" %d , %d \n", x, y);
    return 0;
}
  • void 函数 类型为void表示不返回任何数值,

    定义的函数就是为了完成一系列功能的:

    1. 比如输入数据输出数据,这种情况是不需要返回值给主函数的,就像这个题目

    2. 指针操作数据也是不用返回数值的,因为通过指针访问数据是可以通过==*P==直接修改变量数值的,自然就不需要再把值返回给主函数

  • 第二个需要注意的地方就是函数每次内调用都会开辟一片新的存储空间用来存储子函数中的内容,如果函数是有返回值的函数(比如int double之类),那可以在子函数加工完成之后把内容再返回主函数,但如果子函数是void类型并且没用到指针,那么子函数和和主函数就是互不相干的两个区域,子函数一旦调用完成之后,存储空间就会释放,无法与主函数发生联系。此题目就是这样

    此处在第10行调用函数,进入子函数内 子函数定义了一个临时变量用来交换子函数中的两个数,交换完成并输出8, 3,然后存储空间释放,回到主函数11行,在打印主函数内存中的内容5,7

作业9–二维数组操作

因为只是判断这里就不写答案只是整理一下重点内容

  • 定义一个数组a[10],元素下标从0开始,对其初始化时可以部分初始化(后面未指定部分为0)也可以

  • 关于二维数组,二维数组的元素在内存中按行/列方式存放,即先存放第0行的元素,再存放第1行的元素……其中每一行的元素再按照列的顺序存放

    数组名[行下标] [列下标]

    将二维数组的行下标和列下标分别作为循环变量,通过二重循环,就可以遍历二维数组,即访问二维数组的所有元素。由于二维数组的元素在内存中按行优先方式存放,将行下标作为外循环的循环变量,列下标作为内循环的循环变量,可以提高程序的执行

  • 关于数组名与指针常量的问题:

    在C/C++中,数组类型跟指针类型是两种不同的派生类型,数组名跟指针是两种不同类型的实体,把数组类型的实体说成“是”另一个类型的实体,本身就是荒谬的;–《C和指针》

作业11-指针的概念和用法

一、判断题:

此处需要注意的地方就是:

  • 数组名是一个常量和定义的地址变量不同,他把不能被赋值

  • 关于C语言指针的运算:指针只有加减操作,没有乘除操作。指针可以加常数、减常数;相同类型的指针可以相减,不可以相加,(指针又叫做地址,本质就是一个数字,相加减还可以表示指针访问位置的移动,而相乘没有意义)

  • 语句int *pprintf("%d",*p);中的*p含义

    int * 是一个整体 而printf中==*== 自己是一个单独的整体

二、单选题:

  • 答案:BCCAB CB

作业12-结构体

一、判断题:

  • 结构体成员的类型可以是基本数据类型或者结构体类型等复合类型

  • 结构体作为一种数据类型也有他自己的数组定义

  • 指向运算符 ->
    p为当前结构体的指针
    p->num: (*p).num 即表示当前结构体num中存放的num变量的内容
    *p->next: (p).next 即表示当前结构体next中所存放的地址
    p->next=r : 表示将r 的地址赋给next,让next指向结构体变量 即实现链表元素的链接

二、单选题:

  • 答案:CDCCDD

    2-3 题干有问题

2-3 设有如下定义,则对data中的a成员的错误引用是(C)。 
struct sk
{ 
int a; float b; 
} data, *p=&data;

A   (*p).data.a
B   (*p).a
C    p->data.a
D    p.data.a

热门文章

暂无图片
编程学习 ·

11.登录之后的页面跳转操作

登录之后的页面跳转操作1.登录后记录用户token1.1 为什么使用token?1.2 token为什么保存在sessionStorage中?1.3 代码2. 登录成功后,页面跳转到后台主页 1.登录后记录用户token 1.1 为什么使用token? 项目中除了登录之外的其他API接口,必须要在登录之后才能访问。此时就需要…
暂无图片
编程学习 ·

STM32开放式开发环境:释放创造力

市场上涌现各种价格亲民的经济型微控制器,助力新一代开发者创造令人兴奋的新型嵌入式应用。如今的开发工具非常好用,软硬件均呈现模块化趋势,插接安装简单容易,使得产品设计评估和原型开发周期大幅缩短。STM32开放式开发环境是业内独一无二的软硬件开发平台,堆叠式插接电路…
暂无图片
编程学习 ·

获取电脑ip地址的代码工具类

获取ip地址的工具类 import javax.servlet.http.HttpServletRequest;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springfram…
暂无图片
编程学习 ·

在海外如何寻找蓝海市场

2010年左右,我国跨境进口零售电商企业开始逐渐出现,到2015年电商数量实现了爆发式的增长。当然,随后就开始进入红海时代,网易考拉海购、天猫国际、京东全球购、唯品国际、小红书、洋码头占领了大部分市场。 国内红海,那就出海。 红海、蓝海概念的提出,让更多的创业者积极…
暂无图片
编程学习 ·

虚拟机VMware安装学习过程中遇到的几个问题

1.在安装VMware的时候刚开始因为版本不足的原因,电脑显示 Failed to initialize ploicy for cpu 后来我把它复制到百度上发现是我电脑版本过高的原因,于是又下载了VMware15.5.1版本 又查找了它的破解版。2.在安装的过程中还出现过屏幕就一个-,然后什么都不出现,于是查找资…
暂无图片
编程学习 ·

使用ftrace分析函数性能

0. 背景 ftrace的功能非常强大,可以在系统的各个关键点上采集数据用以追踪系统的运行情况。既支持预设的静态插桩点(trace event),也支持每个函数的动态插桩(function tracer)。还可以利用动态插桩来测量函数的执行时间(function graph tracer)。关于ftrace的详细操作和原理分…
暂无图片
编程学习 ·

笔记:R输入文件数据处理txt, csv,画饼图

R输入文件数据处理txt, csv, xlsx 数据处理 1)获取文件类型 parts = strsplit(infile, split=".", fixed = TRUE) ftype = parts[[1]][length(parts[[1]])]2)根据文件类型选择输入方式 if (ftype == "csv"){loandata<<-data.frame(read.csv(infile…
暂无图片
编程学习 ·

GitHub更新fork的代码

1、在本地装好github客户端,或者git客户端 2、clone 自己的fork分支到本地,可以直接使用github客户端,clone到本地,如果使用命令行,命令为:git clone https://github.com/liuyanqing1023/WxJava.git3、增加源分支地址到你项目远程分支列表中(此处是关键),先得将原来的仓…
暂无图片
编程学习 ·

【牛客网】写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

题目 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 需要掌握 1、异或运算 两个数不相同,结果为1。两个数相同,结果为0。 2、与运算 两位同时为“1”,结果才为“1”,否则为0 3、左移 将一个二进制操作数对象按指定的移动位数向左移,左边溢…
暂无图片
编程学习 ·

JavaScript 详解预编译原理

JavaScript 预编译原理 今天用了大量时间复习了作用域、预编译等等知识 看了很多博文,翻开了以前看过的书(好像好多书都不会讲预编译) 发现当初觉得自己学的很明白,其实还是存在一些思维误区 (很多博文具有误导性) 今晚就整理了一下凌乱的思路 先整理一下预编译的知识吧,…
暂无图片
编程学习 ·

软件构造复习2

这里写目录标题软件生命周期和配置管理设计软件的两个基本模型模型其他模型Agile Development 软件生命周期和配置管理 (软件开发,从0到n,遵循什么过程?) 设计软件的两个基本模型模型 线性过程:从底层/需求开始,下一步是上一步的基础 迭代过程:回头解决不合理之处 其他…
暂无图片
编程学习 ·

归并排序

给定你一个长度为n的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在1~109范围内),表示整个数列。 输出格式 输出共一行,包含 n 个整数,表示排好序…
暂无图片
编程学习 ·

CUDA学习(四):cudaMalloc、cudaMemcpy和cudaFree函数

文章目录一、cudaMalloc、cudaMemcpy和cudaFree 介绍二、第一个例子,实现GPU端的加法 可以像调用C函数那样将参数传递给核函数 当设备执行任何有用的操作时,都需要分配内存,例如将计算机返回给主机。 一、cudaMalloc、cudaMemcpy和cudaFree 介绍 内存空间开辟、内存复制和内…
暂无图片
编程学习 ·

在ckplayer实现把视频进度添加到数据库中

var videoObject = { container: ‘.videosamplex’,//“#”代表容器的ID,“.”或“”代表容器的class variable: ‘player’,//该属性必需设置,值等于下面的new chplayer()的对象 autoplay:true,//自动播放 loaded:‘loadHandler’, video: list_url,//视频地址 }; if(cooki…
暂无图片
编程学习 ·

网络安全技术及应用第3版 主编贾铁军等——教材习题 期末重点 复习题 知识提炼(第4章 黑客攻防与检测防御)

参考教材:网络安全技术及应用 第3版 主编贾铁军等 第4章 黑客攻防与检测防御填空题简答题论述题 填空题 (1)端口扫描的 防范也称为 系统“加固”,主要有 防止IP地址的扫描 和(关闭 闲置及有潜在危险 端口)。 (2)(分布式拒绝服务攻击DDoS)就是利用更多的傀儡机对目标发…
暂无图片
编程学习 ·

Android动画(五)PropertyValuesHolder和KeyFream使用

今天给大家介绍PropertyValuesHolder和Keyframe,在动画中也是属于比较重要的东西,请大家细品,接下来步入主题概述先看看本篇要实现的效果吧PropertyValuesHolderofInt(),ofFloat()和ofObject()KeyFreamKeyframe.ofObject(); 概述 前几篇给大家介绍了ObjectAnimator的ofInt(),of…
暂无图片
编程学习 ·

创建型——工厂系列(Factory)day04

任何可以产生对象的方法或类,都可以称为工厂 单例也是一种工厂 为什么有了new以后,还要有工厂? 1、灵活控制生产过程 2、权限、修饰、日志……接口模式package cn.xhl.interfacemodel;public interface IFruit {public void plant();public void harvest();public void grow…
暂无图片
编程学习 ·

P1060 开心的金明 题解

目录题目详情题面分析代码 题目详情 题面传送门 题面分析 从v[j 1 ​]w[j 1 ]+v[j 2 ]w[j 2 ]+…+v[j k ]w[j k ]v[j~1~​]w[j~1~]+v[j~2~]w[j~2~]+…+v[j~k~]w[j~k~]v[j 1 ​]w[j 1 ]+v[j 2 ]w[j 2 ]+…+v[j k ]w[j k ]中就可以立刻地看出: 他是个背包板子题 总体就是个背包d…
暂无图片
编程学习 ·

2020年Java面试题解析

本文分为十九个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM 如下图所示:共包含 208 道面试题,本文的宗旨…