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

C语言刷题(一)


🌊用有趣的言语来阐述苦涩难懂的代码世界,让每一个技术都充满风趣!
🔭个人主页:散峰而望
🚀学习方向: C/C++等方向
📌专栏系列:

  • 📖《C语言:从基础到进阶》
  • 📚《编程工具的下载和使用》
  • 🚀《C语言刷题》

💬人生格言:冀以尘雾之微,补益山海,荧烛末光,增辉岁月。

🎬博主简介

请添加图片描述

请添加图片描述

文章目录

  • 前言
  • C语言基础知识
  • 结语


前言

本篇旨在快速过一遍C语言中比较基础的知识,加深对一些易错、易混、易漏的知识点进行回顾。

C语言基础知识

  • 哪个关键字用于设置变量不可更改/只读的?

A.constant
B.const
C.final
D.readonly

答案:B
A.并非主流语言的关键字
B.在C、C++、JavaScript、C#语言中,用于声明常量,其值在初始化后不能修改
C.在Java、Dart等语言中,且用于声明只能赋值一次变量
D.仅在C#中声明仅能在构造函数中初始化的字段

  • 哪个语句可用于选择多个代码块中的一个来执行?

A.default
B.break
C.when
D.switch

答案:D

  • 哪个关键字用于在C中创建类?

A.class
B.class = myClass
C.class()
D.以上都不是

答案:D
C语言设有创建类的美键字

  • 下列错误的是

A.C语言是一门编译型计算机语言
B.写出来的C语言代码直接就可以运行的
C.C语言代码需要经过编译和链接生成可执行程序才能运行的
D.C语言代码经过编译生成目标文件,目标文件和链接库通过链接生成可执行程序

答案:B
C语言是一门编译型计算机语言,代码需要经过编译和链接生成可执行程序才能运行的,C语言代码经过编译生成目标文件,目标文件和链接库通过链接生成可执行程序

  • 关于集成开发环境描述错误的是

A.集成开发环境简称IDE
B.集成开发环境一般都是将编辑、编译、链接、调试等功能集成在一起的一个开发环境
C.集成开发环境就是编译器
D.集成开发环境使用起来方便,大大提升了开发和调试的效率

答案:C
集成开发环境中集成了编译器,如果说集成开发环境就是编译器,有些片面了

  • 关于C语言中源文件和头文件说法正确的是

A.C语言的源文件的后缀是.cpp
B.头文件没什么用,只要有源文件就行了
C.C语言中源文件的后缀是.c,头文件的后缀是.h
D.C语言的源文件可以没有后缀

答案:C
很多C语言编译器就是通过文件的后缀来区分是源文件还是头文件的,一般都是要明确的写出文件后缀的,头文件的后缀是.h,是header的意思,源文件的后缀是.c,在稍微复杂的C语言程序中,头文件是很有必要的,一般是用来函数声明、类型声明等

  • C语言规定,在一个源程序中,main函数的位置

A.必须在最开始
B.必须在库函数的后面
C.可以任意
D.必须在最后

答案:C
main函数的位置可以在任意位置,但是如果在主函数之中调用了哪些函数,必须在main函数前对其所调用函数进行生命或包含其被调用函数的头文件

  • 关于main函数错误的是

A.main函数是程序的入口
B.一个C语言程序中可以写多个main函数
C.main函数的名字是可以随便改的,比如:mian
D.main函数的名字是固定的,一个工程中,有且仅有一个main函数

答案:BC
一个C语言程序中的main函数,有且仅有一个main函数的名字是固定的,编译器以main函数作为程序的入口,程序是从main函数的第一行开始执行的

  • printf和库函数描述错误的是

A.printf是库函数,不需要包含头文件就可以使用
B.库函数是C语言标准约定的,由各个C语言编译器的厂商实现的,所以各个编译器的库函数使用和功能是一样的,但是内部实现是有差异的。
C.printf函数是用来在标准输出上打印格式化的信息的
D.printf函数打印字符使用%c,打印整数使用%d指定格式

答案:A
printf是库函数,必须含头文件才能正确使用

  • 字符串的结束标志是

A.是’0’
B.是EOF
C. 是’\0’
D.是空格

答案:A
C语言规定:以’\0’作为有效字符串的结尾标记
A:错误,是’\0’不是字符0
B:EOF一般用来作为检测文本文件的末尾
C:正确
D:明显错误

  • 下面代码的结果是
#include <stdio.h>
#include <string.h>int main()
{char arr[] = {'b', 'i', 't'};printf("%d\n", strlen(arr));return 0;
}

答案:随机值
strlen是用来获取字符串的有效长度的,结尾标记’\0’不包含在内。
strlen获取的规则非常简单:从前往后依次检测,直到遇到’\0’是就终止检测。
而上题中arr是一个字符数组,不是一个有效的字符串,因为后面没有放置’\0’,因此strlen在求解时,将有效字符检测完之后,还会继续向后检测,直到遇到’\0’是才终止,因此答案为不确定,就看紧跟在’t’之后的第一个’\0’在什么位置

  • 下面哪个不是转义字符

A.‘\n’
B.‘\060’
C.‘\q’
D.‘\b’

答案:C
A:‘\n’ 转义字符,代表换行
B:‘\060’ 转义字符,060八进制数据,十进制为48,表示ASCII码为48的’0’
C:‘\q’ 什么都不是
D:‘\b’ 转义字符,表示退格

  • 下面程序的结果是
#include <stdio.h>
#include <string.h>
int main()
{printf("%d\n", strlen("c:\test\121"));return 0;
}

答案:7
strlen:获取字符串的有效长度,不包括’\0’
“c:\test\121”: 在该字符串中,\t是转移字符,水平制表,跳到下一个tab的位置;而\121表示一个字符,是讲121看做8进制数组,转换为10进制后的81,作业为ASCII码值的字符,即:字符’Q’ ,故上述字符串实际为:“c: estQ”,只有7个有效字符

  • 关于注释说法不正确的是

A.注释是用来解释代码的,在代码中是适当的加上注释有利于代码的阅读和多人协作
B.注释基本没啥用,主要给自己看的
C.注释是给程序员看的,编译器在预处理阶段就会删除注释的
D.注释有C++注释风格,有C语言注释风格,推荐C++注释风格

答案:B
注释还是非常有用的,要学会写注释,能写注释,写好注释对工程中多人协作很关键的,写注释是一个程序员的好习惯。面试写代码,如果加上注释也是好的加分项

  • 关于C语言布尔类型错误的是

A.C语言布尔类型是_Bool,使用需要包含头文件stdbool.h
B.布尔类型变量的取值是:true或者false
C.布尔类型是专门用来表示真和假的类型
D.布尔类型是C99标准之前就有的

答案:D
在早期的C语言标准(如ANSI C和C89)中,没有明确定义布尔类型。通常,程序员使用整数类型(如int)来表示布尔值,其中0表示假(false),非零值表示真(true)。然而,在C99标准中引入了新的布尔类型(stdbool.h头文件),定义了bool类型和true/false常量。布尔类型只有两个取值:true和false,用于表示真和假

  • 下面代码输出的结果是
#include <stdio.h>
int num = 10;
int main()
{int num = 1;printf("num = %d\n", num);return 0;	
}

A. 程序有问题,不能编译
B.输出1
C.输出10
D.输出0

答案:B
本题主要考察变量的访问规则,C语言中:

  1. 不允许在同一个作用域中定义多个相同名称的变量
    比如:在一个班级中存在两个名字相同的学生王帅,当老师点王帅回答问题时,那个回答就冲突了
  2. 允许在不同的作用域中定义多个相同名称的变量
    比如:两个班级中各有一个王帅,老师在A班中点王帅回答问题,不会有任何歧义
  3. 不同作用域中定义的变量,在访问时采用就近原则。
    比如:你们村有一个小伙伴名字叫刘德华,那你在你们村喊刘德华时,你们村的刘德华就会跑过来响应你,
    而我们世界级别人见人爱的天王他不会理你,因为距离远听不见,但是两个刘德华可以同时存在这个 世界上,只要不在一个村,就不会冲突。
    根据以上描述可知,对于以上代码:
  4. 全局作用域中的num和main中的num可以同时存在,不会冲突,因为不是同一个作用域
  5. 在main函数中访问num时,采用就近原则,因此访问的是main中的num,相当于将全局作用域中的num屏蔽了
    A:错误:因为两个num不在同一个作用域中,可以通过编译
    B:正确,main中访问的是main中的num,而main函数中的num是1,因此打印1
    C:错误,应该访问main函数中的num,而不是全局作用域中的num
    D:错误,凑选择的
  • 关于C语言变量说法错误的是

A.变量是用来描述生活中经常发生变化的值
B.变量可以分为局部变量和全局变量
C.局部变量是放在内存的静态区的,全局变量是放在内存的栈区
D.当全局变量和局部变量名字相同的情况,且都可以使用的时候,局部变量优先

答案:C
局部变量是放在内存的栈区的,全局变量是放在内存的静态区

  • 关于C语言算术操作符说法正确的是

A.除号两边都是小数才能执行小数除法
B.%操作符的操作数可以是整数,也可以是小数
C.%操作符计算的结果是两个操作数整除之后的商
D.负数求模的规则是,结果的正负号由第一个运算数的正负号决定。

答案:D
A:除号两边只要有一个是小数,就执行小数除法
B:%操作符的操作数只能是整数
C:%操作符计算的结果是两个操作数整除之后的余数

  • 下面代码输出的结果是
#include <stdio.h>
int main()
{int a = 7;int b = 2;float c = 2.0f;printf("%d\n", a / b);printf("%f\n", a / c);return 0;
}

答案:3,3.500000
2个整数相除,执行的是整数除法,计算的结果也是整数
除法的2个操作数只要有一个数是浮点数,执行的就是小数除法,所以a/c是按照小数除法计算的,结果就是3.5
a/b 是按照整数除法计算的,结果是3

  • 下面代码的结果是
#include <stdio.h>
int main()
{int a, b, c;a = 5;c = ++a;b = ++c, c++, ++a, a++;b += a++ + c;printf("a = %d b = %d c = %d\n:", a, b, c);return 0;
}

A.a = 8 b = 23 c = 8
B.a = 9 b= 23 c = 8
C.a = 9 b = 25 c = 8
D.a = 9 b = 24 c = 8

答案:B

#include <stdio.h>
int main()
{int a, b, c;a = 5;c = ++a;// ++a:加给a+1,结果为6,用加完之后的结果给c赋值//因此:a = 6  c = 6b = ++c, c++, ++a, a++;// 这里先算b=++c, b得到的是++c后的结果,b是7// b=++c 和后边的整体构成逗号表达式,依次从左向右计算的。// 表达式结束时,c++和,++a,a++会给a+2,给c加1,此时c:8,a:8,b:7b += a++ + c; // a先和c加,结果为16,在加上b的值7,比的结果为23//最后给a加1,a的值为9printf("a = %d b = %d c = %d\n:", a, b, c); // a:9, b:23, c:8return 0;
}
  • 关于scanf函数说法正确的是

A.scanf中也有占位符,占位符和后边的参数提供的地址一一对应。
B.scanf()处理所有占位符时,会自动过滤起首的空白字符,包括空格、制表符、换行符
C.scanf的占位符%s表示读取一个字符串,遇到空白字符也全部读取
D.scanf是库函数,库函数不需要包含头文件

答案:A
B:scanf()处理数值占位符时,会自动过滤空白字符,包括空格、制表符、换行符,scanf输出字符占位符的时候,不忽略空白字符,总是返回当前第一个字符,无论该字符是否为空格。
C:scanf的占位符%s表示读取一个字符串,遇到空白字符就停止读取。
D:scanf需要包含stdio.h这个头文件的

  • 关于printf函数说法错误的是

A.printf()的作用是将参数文本输出到屏幕。它名字里面的f代表format(格式化),表示可以定制输出文本的格式。
B.printf()不会在行尾自动添加换行符,运行结束后,光标就停留在输出结束的地方,不会自动换行。
C.printf()可以在输出文本中指定占位符,“占位符”,就是这个位置可以用其他值代入。
D.printf()参数与占位符是一一对应关系,如果有n个占位符,printf()的参数就应该有n个

答案:D
printf()参数与占位符是一一对应关系,如果有n个占位符,printf()的参数就应该有n+1个

  • 下面程序输出的结果是
#include <stdio.h>int main()
{printf("%5d\n", 123456);return 0;
}

答案:123456
printf()允许限定占位符的最小宽度。%5d表示这个占位符的宽度至少为5位。如果不满5位,对应的值的前面会添加空格。如果超过5位,正常输出就行,5是最少输出5位。

  • C语言创建变量时,会为该变量分配一个内存地

A.正确
B.错误

答案:A
C语言创建变量时,会为该变量分配一个内存地址。


结语

期待这些可以帮助各位!

在这里插入图片描述

请添加图片描述

http://www.dtcms.com/a/561259.html

相关文章:

  • 电子电气架构(EEA)最新调研-5
  • 【软考架构】案例分析-对比MySQL查询缓存与Memcached
  • 「经典图形题」集合 | C/C++
  • IT4IT是由The Open Group提出的面向数字化转型的IT管理参考架构框架
  • 学校网站怎么做的好南翔做网站公司
  • 解决 CentOS 8 报错:Failed to download metadata for repo ‘BaseOS‘
  • VS Code集成googletest-C/C++单元测试Windows
  • Vue 图片性能优化双剑客:懒加载与自动压缩实战指南
  • 网站之家查询qq空间网站是多少
  • Elasticsearch 与 Faiss 联合驱动自动驾驶场景检索:高效语义匹配 PB 级视频数据
  • 短租网站开发学术ppt模板免费
  • 设计模式——单例模式(singleton)
  • 【计算机软件资格考试】软考综合知识题高频考题及答案解析1
  • 计算机网络自顶向下方法25——运输层 TCP流量控制 连接管理 “四次挥手”的优化
  • LeetCode【高频SQL基础50题】
  • 清远做网站的有哪些wordpress判断浏览器
  • 自己做的网站怎样才有网址浏览找人做网站域名怎么过户
  • JavaScript中的闭包:原理与实战
  • 怎么看一个网站是否被k怎么找项目
  • 交易网站开发做的比较好的p2p网站
  • JavaScript异步编程:从回调地狱到优雅解决方案
  • 【MATLAB】matlab闪退问题(随时更新)
  • 有专门做最佳推荐的网站东莞网站制作十年乐云seo
  • React中的stopPropagation和preventDefault
  • React Hooks:提升前端开发效率的关键
  • Apache Tomcat 介绍
  • 国网公司网站建设宠物网站的目的
  • 怎么找做网站的外包公司二级域名是什么
  • CentOS 7/8/9 一键安装 Python 3.10+ 并配置默认版本
  • Harmony鸿蒙开发0基础入门到精通Day08--JavaScript篇