C/C++教程

笔试 C/C++ 9.26牛客

本文主要是介绍笔试 C/C++ 9.26牛客,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

若一个类中含有纯虚函数,则该类称为( )。

抽象类

抽象类可以不包含抽象方法,包含抽象方法的类一定是抽象类,抽象方法必须在子类中实现。

short a[10] = {0};sizeof(a)返回:()

20

机器平台:X86_64 处理器
Size of char is: 1
Size of int is: 4
Size of short is: 2
Size of long is: 8
Size of long int is: 8

Size of float is: 4
Size of double is: 8
Size of long double is: 16
Size of (所有指针) is: 8

机器平台: X86_32 处理器
区别:
Size of long is: 4
Size of long int is: 4
Size of long double is: 8
Size of (所有指针) is: 4

请找出下面程序中有哪些错误:

int main()
{
int i=10;
int j=1;
const int *p1;//(1)
int const *p2=&i; //(2)
p2=&j;//(3)
int *const p3=&i;//(4)
*p3=20;//(5)
*p2=30;//(6)
p3=&j;//(7)
return 0;
}

6 7

  • const int * a; 表示a是一个指针,可以任意指向int常量或者int变量,它总是把它所指向的目标当作一个int常量。也可以写成int const* a;含义相同。
  • int * const a; 表示a是一个指针常量,初始化的时候必须固定指向一个int变量,之后就不能再指向别的地方了。

字符串题目

c风格字符串的两种形式:
1、char a[] = {‘a’, ‘b’,‘v’, ‘\0’}; 手动添加结束符‘\0’
2、char a[] = “abv”; 默认添加’\0’

c/c++中基本类型只有整型、实型和字符型,不存在字符串类型;字符串是由字符组成的数组

综合题

空白符,包括空格、制表符、换行符,只是用来占位,没有实际内容。对于编译器来说,有的会被忽略(一般是在()中);有的不会被忽略(一般是在“”中)
标识符在C语言 中一般是8字符,在C++中一般是32字符,在Java中则没有限制

以下对一维数组a的定义正确的是( )。

const int N = 5; int a[N];

1、定义数组,中括号内必须是常量。
2、int a(5)等价于 int a = 5;不是数组

下面程序段的运行结果是:

char C[5]={‘a’,’b’,’\0’,’c’,’\0’};
printf(“%s”,C);

答:ab
%s格式符意为输出字符串,输出字符串时,遇到 “\0”表示结束,所以结果是ab;

若有以下语句:

int a[4][5],(*p)[5];
p=a;
下面哪个选项表示a数组中的元素?

正确答案: D
a: p+1
b:(p+3)
c:
(p+1)+3
d:*( * p+2)

a是一个二维数组,p是一个指向有5个元素的数组指针,所以最多只能访问。
A:表达式是一个指针,不是对数组元素的引用。(p+1)等于&a[1],即(p+1)指向a的第二行的首元素。
B:(p+3)是一个指针,指向第4行的首元素。
C:
(p+1)指向a的第二行的首元素;(p+1)+3则指向第二行的第3个元素。
D:
( *p+2)是对数组元素的正确引用,它等价于a[0][2]。
所以对a数组元素的正确引用的选项是D。

程序运行中需要从键盘上输入多于一个数据时,各数据之间默认应使用( )符号作为分隔符。

TAB、空格或逗号

1.这里的“从键盘上输入多于一个数据”,应该专门指的是一次性从键盘上输入多于一个数据。这样子,代码中就不能出现循环,必须在所有输入的结束处刷新缓存。默认情况下,回车会刷新输入缓存。排除含有回车的选项。
2. 分号通常当作普通字符处理。排除含有分号的选项。
3. 如果逗号作分割符,存在中英文字符不同、输入内容错误等几个问题。

以下对选择语句描述错误的是()

正确答案: A 你的答案: D (错误)
a根据某一条件重复执行一部分代码直到满足终止条件为止
b可以根据条件控制程序流程,改变程序执行的顺序
c选择语句可以嵌套使用
d当条件满足时就会执行相应的语句

流程控制语句分类:
顺序结构
选择结构:if语句、switch语句
循环结构:while语句、for语句

变量类型推断

int i=0;
const int ci=i;
auto b=ci; //(1)
int *p=&i;
decltype(*p) c=i;//(2)
以上(1)(2)中变量b,c类型为()

正确答案: B 你的答案: D (错误)
const int ,int
int,int&
const int,int*
int,int*

decltype和auto都可以用来推断类型,但是二者有几处明显的差异:
1.auto忽略顶层const,decltype保留顶层const;
2.对引用操作,auto推断出原有类型,decltype推断出引用;
3.对解引用操作,auto推断出原有类型,decltype推断出引用;
4.auto推断时会实际执行,decltype不会执行,只做分析。总之在使用中过程中和const、引用和指针结合时需要特别小心。

这篇关于笔试 C/C++ 9.26牛客的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!