【c语言习题】c语言常见概念(Day1-Day3随堂)

1.下面关于C语言的编译和链接说法错误的是?

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

C语言是一门编译型计算机语言,代码需要经过编译链接生成可执行程序才能运行的,C语言代码经过编译生成目标文件,目标文件和链接库通过链接生成可执行程序。(以后在笔记中介绍)

编译型语言:C、C++

解释型语言:HTML、Python

故选择B选项。

2.关于集成开发环境描述错误的是?

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

集成开发环境包括编译器但不只是编译器,故选择C选项。

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

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

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

4.C语言规定,在一个源程序中,main函数的位置( )

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

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

#include <stdio.h>
int main()//没在最开始、最后
{
	printf("Hello World\n");//库函数
	return 0;
}

5.关于main函数错误的是?

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

一个C语言程序中的main函数,有且仅有一个。main函数的名字是固定的,编译器以main函数作为程序的入口,程序是从main函数的第一行开始执行的。故选择B选项。

6.printf和库函数描述错误的是?

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

printf是库函数,必须含头文件才能正确使用。故选择选项A。

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

  • A.int
  • B.struct
  • C.define
  • D.continue

C语言关键字:C语言定义的,具有特定含义、专门用于特殊用途的C语言标识符,也称为保留字。define不是关键字,是编译器实现的,用来定义宏的预处理指令,不是C语言中的内容。int、struct和continue都是C语言中包含的关键字。故选择C选项。

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

  • A.continue
  • B.break
  • C.default
  • D.case

switch是用来进行多分支选择的语句,一般结构是:

  switch(变量表达式)
{

    case xx1:

     // ...

     break;

    case xx2

     // ...

     break;

    default:

      // ...
}

当变量表达式的内容与某个case后的常量相等后,就执行该case下的语句,break表示该case以后的内容不会执行,如果没有跟break,会继续执行当前case之后的case分支。

当变量表达式的内容没有与那个case匹配,就会执行default下的内容。

switch中常用的关键字:case 、break、 default,当然case中语句比较复杂时,可能会用if进行判断。

continue是用来结束本次循环的,而switch不是循环,因此其中不能使用continue关键字。

故选择A选项。

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

  • A.关键字可以自己创建
  • B.关键字不能自己创建
  • C.关键字可以做变量名
  • D.typedef不是关键字

 A:错误,关键字是语言自身定义的

 B:正确

 C:错误,关键字具有特殊含义,不能作为变量名

 D:错误,typedef是用来给类型取别名的关键字

 故选择B选项。

10.关于字符的ASCII编码错误的是?

  • A.小写字母的ASCII码值+32就能得到对应的大写字母的ASCII码值
  • B.ASCII码值从0~31 这32个字符是非打印控制字符,在界面上不显示任何东西,比如:蜂鸣、回车、换行
  • C.数字字符0~9的ASCII码值是连续递增的
  • D.最初ASCII编码中只有128个字符的编码

小写字母的ASCII码值-32就能得到对应的大写字母的ASCII码值,小写字母的ASCII码值比对应的大写字母的ASCII码值更大的。具体见ASCII 码表 - cppreference.com。故选择A选项。

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

  • A.是'0'
  • B.是EOF
  • C. 是'\0'
  • D.是空格

C语言规定:以'\0'作为有效字符串的结尾标记。故选择C选项。

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

#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.随机值
  • D.5

strlen是用来获取字符串的有效长度的,结尾标记'\0'不包含在内。

strlen获取的规则非常简单:从前往后依次检测,直到遇到'\0'是就终止检测。

而上题中arr是一个字符数组,不是一个有效的字符串,因为后面没有放置'\0',因此strlen在求解时,将有效字符检测完之后,还会继续向后检测,直到遇到'\0'是才终止,因此答案为不确定,就看紧跟在't'之后的第一个'\0'在什么位置。

故选择C选项。

13.下面那个不是转义字符?

  • A.'\n'
  • B.'\060'
  • C.'\q'
  • D.'\b'

A:'\n' 转义字符,代表换行

B:'\060' 转义字符,060八进制数据,十进制为48,表示ASCII码为48的'0'

C:'\q' 什么都不是

D:'\b' 转义字符,表示退格

故选择C选项。

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

#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

strlen:获取字符串的有效长度,不包括'\0'

"c:\test\121": 在该字符串中,\t是转移字符,水平制表,跳到下一个tab的位置;而\121表示一个字符,是讲121看做8进制数组,转换为10进制后的81,作业为ASCII码值的字符,即:字符'Q' ,故上述字符串实际为:"c:  estQ",只有7个有效字符。故选择A选项。

  • 18
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值