• C语言题收录(八)


    1、以下关于字符串的叙述中正确的是____。

    • A:C语言中有字符串类型的变量和常量
    • B:两个字符串中的字符个数相同时才能进行字符串大小的比较
    • C:空串一定比空格打头的字符串小
    • D:可以用关系运算符对字符串的大小进行比较
    解析

    C语言中只有字符串常量而没有字符串变量,故选项A不正确;
    字符串比较大小是以第一个不相同字符的大小为标准的,跟长度没有关系,故选项B不正确;
    字符串比较大小除了使用库函数strcmp()以外,就只能靠自己写的代码来实现了,而不能通过关系运算符来比较大小,因为字符串在表达式中相当于const char*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的,故选项D不正确;
    空串的长度为0,而空格打头的字符串的长度至少为1。

    答案:C

    2、下列叙述不正确的是____。

    • A:在C程序中,%是只能用于整数运算的运算符
    • B:在C程序中,无论是整数还是实数,都能正确无误地表示
    • C:若a是实型变量,C程序中a=10是正确的,因此实型变量允许被整型数赋值
    • D:在C程序中,语句之间必须要用分号";"分隔
    解析

    有大小的允许范围,但是复精度有限制,不可能都准确无误的表示。范围制和精度是两个概念。这句话应该加上“在精度范围内”的限定才算正确。

    答案:B

    3、下列各组中不全是字符常量的是____。

    • A:‘x’,“y”,‘5’
    • B:‘*’,‘\101’,‘5’
    • C:‘5’,‘\n’,‘x’
    • D:‘5’,‘%’,‘\x69’
    解析

    C语言规定,一个字符常量代表ASCII码字符集里的一个字符,在程序中用单引号括起来,以便区分。
    "y"是字符串常量,不是字符常量。

    答案:A

    4、在C语言中,不合法的实数是____。

    • A:1.23
    • B: e − 5 e^{-5} e5
    • C:3.245E3
    • D:-.187
    解析

    实数有两种类型,float和double,有两种表现形式:小数和指数。
    小数:由数码0~9和小数点组成。例如:0.0、25.0、-267.83等均为合法的实数。整数或小数部分缺省时(不能同时缺省)默认缺省部分为0,例如-.187等价于-0.187,1.等价于1.0。
    指数:由十进制数、加阶码标志“e”或“E”、以及阶码(只能为整数,可以带符号)组成,如2.1E5即表示2.1* 1 0 5 10^5 105

    答案:B

    5、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数表达式的值为“假”。则以下不能满足要求的表达式是____。

    • A:A%2==1
    • B:!(A %2==0)
    • C:!(A%2)
    • D:A%2
    解析

    C选项错误,当A为奇数时,(A%2)=1,取非后值为0,则表达式值为“假”,与题目相反。

    答案:C

    6、以下叙述中错误的是____。

    • A:在程序中凡是以“#”开始的语句行都是预处理命令行
    • B:预处理命令行的最后不能以分号表示结束
    • C:#define MAX是合法的宏定义命令行
    • D:C程序对预处理命令行的处理是在程序执行的过程中进行的
    解析

    在C语言中,凡是以”#“开头的行都称为编译预处理命令行,如#include、#define、#if等,每行的末尾不得用";"结束,以区别于C语句、定义和说明语句。选项C中的宏定义为不带参数的宏命令行,宏名之后可以由替换文本,也可以没有。编译预处理是在编译程序对C源程序进行编译前执行的。当然也在程序执行之前执行,因此选项D是错误的。

    答案:D

    7、以下合法的赋值语句是____。

    • A:x=y=100
    • B:d–;
    • C:x+y;
    • D:c=int(a+b);
    解析

    选项A的结尾没用";",所以不是一条语句;
    选项C的表达式不会改变任何变量的内容,也不是合法的赋值语句;
    选项D有语法错误,int应该加上括号。
    所以,4个选项中只有选项B符合题意,运行后d的内容被减一。

    答案:B

    8、下列选项中,属于C语言双目运算符的是___。

    • A:!
    • B:–
    • C:!=
    • D:++
    解析

    单目运算符和双目运算符的区别只有一个,那就是操作数(变量或常量)数量的不同。
    单目运算符只对一个操作数进行逻辑运算。
    比如:num++(自增),num–(自减),!num(取非值),~num(按位取反)。
    双目运算符只对两个操作数进行逻辑运算。
    比如:num1+num2,num1-num2,num1>num2,num1!=num2。

    答案:C

    9、经过下列C语言片段后,x、y的值分别是____。

    int x,y;
    y=(x=0)&&(x=3);
    
    • 1
    • 2
    • A :3 0
    • B:3 1
    • C:0 0
    • D:0 3
    解析

    y=(x=0)&&(x=3),首先执行x=0,此时x的结果为0,然后检查&&左边的结果,如果左边是真的话,然后执行右边,但是如果左边是假的话&&逻辑运算符会采用懒惰策略,不执行检查右边的真假。(x=0)&&(x=3)得到的结果为0,然后将0赋值为y。
    因此x=0,y=0。

    答案:C

    10、以下叙述正确的是____。

    • A:全局变量的作用域一定比局部变量的作用域范围大
    • B:静态(static)类别变量的生存期贯穿整个程序的运行期间
    • C:函数的形参都属于全局变量
    • D:未在定义语句中赋初值的auto变量和static变量的初始值都是随机值
    解析

    若在函数中定义与全局变量名字相同的局部变量,则全局变量在该函数中将不起作用,因此全局变量的作用域并不一定比局部变量的作用域大,故选项A不正确;
    静态变量一旦定义,将在整个程序的运行期间都存在,故选项B正确;
    函数的形参只在函数调用的时候分配存储空间,在退出函数时收回存储空间,因此是局部的,故选项C不正确;
    没有赋值的auto型变量的初值是随机的,没有赋值的static型变量的初值是0,故选项D不正确。

    答案:B

    学海无涯苦作舟

    这里写图片描述

  • 相关阅读:
    Android移动应用开发之ImageView、ProgressBar和Notification的一些简单使用
    激活Windows时出现错误代码0xC004C003怎么办?
    Vue2+SpringBoot实现数据导出到csv文件并下载
    Torch基础(二)
    JUnit5单元测试框架简单使用
    1. 测度论-概率空间的基本概念
    5款十分小众,却又非常好用的良心软件
    github中RabbitMq延迟插件rabbitmq-delayed-message-exchange查找并下载
    网工笔记整理:策略工具Filter-policy的使用
    如何拒绝期末复习无用功?猿辅导:找准适合自己的复习方法很重要
  • 原文地址:https://blog.csdn.net/HunterArley/article/details/126682914