【C语言】生命周期&作用域选择题

前言

题目一:

题目二:

题目三:

题目四:

题目五:

题目六:


前言

关于生命周期&作用域一些选择题讲解


题目一:

下面代码输出的结果是:( )

A . 程序有问题,不能编译

B .输出1

C .输出10

D .输出0

cpp 复制代码
#include <stdio.h>
int num = 10;
int main()
{
    int num = 1;
    printf("num = %d\n", num);
	return 0;	
}

选择B。

讲解:C语言中,当全局变量与局部变量同名时,优先选择局部变量,因此优先打印局部变量的值。


题目二:

局部变量的作用域是:()

A .main函数内部

B .整个程序

C .main函数之前

D .局部变量所在的局部范围
选择D。

讲解:c语言中局部变量的作用域是局部变量所在的局部范围,全局变量的作用域是整个工程。


题目三:

字符串的结束标志是:( )

A .是'0'

B .是EOF

C . 是'\0'

D .是空格
选择C。

讲解:c语言中字符串的结束标志为:'\0',在字符串末尾,往往隐藏着一个'\0',不算作实际内容。但需要注意:char arr[] = "abcd" 这种情况,该字符串的个数为5,当字符数组未指定大小时,'\0'也算作该数组的个数,注意区分。


题目四:

下面代码的结果是:( )

A .3

B .4

C .随机值

D .5

cpp 复制代码
#include <stdio.h>
#include <string.h>
int main()
{
    char arr[] = {'b', 'i', 't'};
    printf("%d\n", strlen(arr));
	return 0;
}

选择C。

讲解:strlen计算字符串长度函数,以'\0'为结束标志,统计'\0'之前的字符个数,题目中char arr[] = {'b', 'i', 't'} 是一种以单个字符数组组成的字符串,与char arr[] ="ait" 不一样,第一种形式末尾没有隐藏着'\0',而第二种末尾默认会隐藏'\0',估strlen函数会一直寻找'\0',但找不到,会返回一个随机数.


题目五:

下面那个不是转义字符?()

A .'\n'

B .'\060'

C .'\q'

D .'\b'
选择C。

讲解:A选项是换行转义字符; B选项表示八进制的转移字符; D选项表示退格转移字符;

唯独C选项,并不是一个转义字符


题目六:

下面程序的结果是:( )

A .7

B .8

C .9

D .10

cpp 复制代码
#include <stdio.h>
#include <string.h>
int main()
{
    printf("%d\n", strlen("c:\test\121"));
    return 0;
}

选择A。

讲解:strlen("c:\test\121") 计算该字符串长度,以'\0'为结束标志,字符串中\t和\121为转移字符,因此算作一个字符,估该字符串长度为7.

相关推荐
Fr2ed0m1 分钟前
卡尔曼滤波算法原理详解:核心公式、C 语言代码实现及电机控制 / 目标追踪应用
c语言·人工智能·算法
Yupureki20 分钟前
从零开始的C++学习生活 20:数据结构与STL复习课(4.4w字全解析)
c语言·数据结构·c++·学习·visual studio·1024程序员节
REDcker26 分钟前
C++项目 OpenSSL 依赖最佳实践
开发语言·c++
一念&30 分钟前
每日一个C语言知识:C 错误处理
c语言·开发语言·算法
国服第二切图仔39 分钟前
Rust开发之使用panic!处理不可恢复错误
开发语言·后端·rust
郝学胜-神的一滴1 小时前
Qt删除布局与布局切换技术详解
开发语言·数据库·c++·qt·程序人生·系统架构
奔跑吧邓邓子1 小时前
【C语言实战(66)】筑牢防线:C语言安全编码之输入与错误处理
c语言·安全·开发实战·错误处理·输入验证
闲人编程1 小时前
现代Python开发环境搭建(VSCode + Dev Containers)
开发语言·vscode·python·容器·dev·codecapsule
雨落在了我的手上2 小时前
C语言入门(十三):操作符详解(1)
c语言
代码搬运媛2 小时前
【工具上新】快速了解一站式开发工具 bun
开发语言·bun