c初阶检测题(上)

简介: c初阶检测题(上)

选择题

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

A.main函数内部

B.整个程序

C.main函数之前

D.局部变量所在的局部范围

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

作业内容

A.是’0’

B.是EOF

C. 是’\0’

D.是空格

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

A.‘\n’ //‘\n’ 转义字符,代表换行

B.‘\060’ //‘\060’ 转义字符,060八进制数据,十进制为48,表示ASCII码为48的’0’

C.‘\q’ //‘\q’ 什么都不是

D.‘\b’ //‘\b’ 转义字符,表示退格

4.下面代码的结果是:( C)

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

A.3

B.4

C.随机值 strlen函数是以’\0’为停止标识符,在arr数组中没有碰到,自然向后随机读取至’\0’

D.5

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

#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

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

  1. 不允许在同一个作用域中定义多个相同名称的变量
  2. 允许在不同的作用域中定义多个相同名称的变量
  3. 不同作用域中定义的变量,在访问时采用就近原则。

6.下面程序的结果是:( A)

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

A.7

B.8

C.9

D.10

c:\test\121,来逐步分析c是1个,:2个,\t3个,est6个,\121(八进制数字)7个。

7.关于C语言关键字说法正确的是:( B )

A.关键字可以自己创建

B.关键字不能自己创建

C.关键字可以做变量名

D.typedef不是关键字

8.用在switch语言中的关键字不包含哪个?(A )

A.continue

B.break

C.default

D.case

9.关于数组描述错误的是:(B)

A.数组是一组相同类型元素的集合

B.数组的下标是从1开始的

C.数组的下标是从0开始

D.数组如果初始化,可以不指定数组的大小

10.C语言中下面哪个数组的创建错误的:( B)

A.int arr[10] = {0}

B.int n = 10; int arr[n] ={0} // 对c语言来讲,数组的大小必须是常量

C.int arr[] = {1,2,3,4,5,6,7,8,9,0}

D.char ch[10] = “hello bit”

11.下面哪个不是关键字:( C)

A.int

B.struct

C.define // 定义标识符

D.continue

12.下列程序执行后,输出的结果为(B)

#include <stdio.h>
int cnt=0;
int fib(int n){
  cnt++;
  if(n==0)
    return 1;
  else if(n==1)
    return 2;
  else
    return fib(n-1)+fib(n-2);
}
void main()
{
  fib(8);
  printf("%d",cnt);
}

A. 41

B. 67

C. 109

D. 177

这道题很明显就是问这个fib函数一共被调用了多少次,来具体分析一下就可以了。

把数一下有多少个数字就知道答案是多少了,很明显答案是67。

13.在上下文和头文件均正常情况下,以下程序的输出结果是()

int x = 1;
do{
 printf("%2d\n",x++);
}while(x--);

A. 1

B. 无任何输出

C. 2

D. 陷入死循环

这个很简单先使用那么打印的1,该语句过后x变为2,先判断while条件为2,后使用变为1,之后再次先使用打印的为1,该语句过后为2,之后判断条件又为2,判断后变为1,所以这段代码是在死循环的打印“01”。

14.下面的代码段中,执行之后 i 和 j 的值是什么(C)

int i=1;
int j;
j=i++;

A. 1,1

B. 1,2

C. 2,1

D. 2,2

这里i的值先使用赋给j,所以j为1,这条语句执行完i变为2,所以很明显答案是2,1。

15.以下程序的k最终值是(A)

int i = 10;
int j = 20;
int k = 3;
k *= i + j;

A. 90

B. 50

C. 70

D. 30

最后一条语句的意思可以理解为最后的k=k*(i+j),所以k=90

目录
相关文章
|
存储 算法 C++
C++初阶之一篇文章教会你list(模拟实现)(上)
这个表中列出了C++标准库中list容器的一些成员类型定义。这些类型定义是为了使list能够与C++标准库的其他组件协同工作,并提供一些通用的标准接口。每个成员类型
|
5月前
Calender类有关检测习题
Calender类有关检测习题
|
5月前
|
程序员 C语言 C++
【C语言基础】:动态内存管理(含经典笔试题分析)-2
【C语言基础】:动态内存管理(含经典笔试题分析)
|
5月前
|
程序员 编译器 C语言
【C语言基础】:动态内存管理(含经典笔试题分析)-1
【C语言基础】:动态内存管理(含经典笔试题分析)
|
C语言
【C语言】经典指针笔试题(深度解剖)(下)
【C语言】经典指针笔试题(深度解剖)(下)
60 0
|
6月前
|
C语言
|
存储 编译器 C语言
c初阶检测题(下)
c初阶检测题(下)
92 0
|
C++ 容器
C++初阶之一篇文章教会你stack(理解使用和模拟实现)(上)
stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。
|
存储 算法 安全
C++初阶之一篇文章教会你stack(理解使用和模拟实现)(下)
5.emplace template <class... Args> void emplace(Args&&... args); 是 C++ 标准库中 std::stack 类的成员函数之一。它用于在栈顶处构造一个新的元素,使用传递的参数来进行构造。
|
存储 安全 C++
C++初阶之一篇文章教会你list(模拟实现)(下)
4.swap void swap(list<T>& x) { std::swap(_head, x._head); // 交换两个链表的头结点指针 } 这是 list 类的成员函数 swap,它用于交换两个链表的内容。