![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言刷题
文章平均质量分 70
sp_13230409636
这个作者很懒,什么都没留下…
展开
-
193-C语言刷题32
1.C语言程序的注释是由“/ * ”开头,以“ * /”结尾或“//”开头,而不是由“/ * ”开头,“ * /”结尾2.已知:print( )函数是一个类的常成员函数,它无返回值,表示为void print( ) const; const修饰类的成员函数,则该成员函数不能修改类中任何成员变量3.char * s=“AAA”;s[0]=‘B’;会出现什么问题?答案:①char * s=“AAA”;要改为const char * s=“AAA”;②初始化指针时所创建的字符串常量被定义为只读,如果试原创 2022-02-10 22:25:28 · 768 阅读 · 0 评论 -
192-C语言刷题31
1.若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量 t 没定义,所以此宏定义是错误的。请问这句话的说法是正确的吗?答案:错宏定义不作类型检查2.在C++中,若有以下定义 int a, b; float x ;,则正确的赋值语句是?A.a=1, b=2;B.b++;C.a=b;D.b=int(x);答案:ABC都会提示使用了未初始化的局部变量bD会提示使用了未初始化的局部变量x3.函数外部访问x等于什么?enum string{ x1,原创 2022-02-08 23:56:34 · 1302 阅读 · 0 评论 -
191-C语言刷题30
1.预处理的功能包括宏扩展、文件包含、条件编译,都是处理#开头的指令,还会生成行号(报错时显示的行号)和索引2.如下代码段,则向内存申请到的内存空间中存入整数123的语句为?int * p = (int * )malloc(sizeof(int));答案:scanf("%d", p);p是int指针类型,scanf要求%d相应参数也是int的指针类型,所以直接就是p,或者理解成scanf("%d", &*p);也行3.下面程序的输出结果是?int main() { int i原创 2022-02-08 23:32:29 · 845 阅读 · 0 评论 -
190-C语言刷题29
1.含有纯虚函数的类称为抽象类,它不能生成对象,抽象类是不完整的,它只能用作基类**抽象类不能被实例化,但是能作为指针或引用指向派生类的对象或函数**使用纯虚函数的意义是在很多情况下,基类本身生成对象是不合情理的2.int arr[5] = {};这条语句初始化以后,所有元素的值都为03.对以下数据结构中data的处理方式描述是?struct Node{ int size; char data[0];};答案:编译器会认为这就是一个长度为0的数组,而且会支持对于数组data的原创 2022-02-08 22:36:01 · 1365 阅读 · 0 评论 -
189-C语言刷题28
1.float 类型(即 IEEE754 单精度浮点数格式)能表示的最大整数是多少?答案:2^ 128-2^ 10432位=1位符号位+8位指数位+23位小数位指数范围-128至127,小数位23位,则最大数为1.11111111111111111111111*2^ 127=(2-2^ -23)*2^ 127=2^ 128-2^ 1042.定义下面的宏,则DECLARE(val, int)替换结果为?#define DECLARE(name, type) type name##_##type##_原创 2022-02-07 10:35:08 · 843 阅读 · 0 评论 -
188-C语言刷题27
1.putchar函数可以向终端输出一个字符或字符型变量值2.以下对结构变量stu1中的成员age的非法引用是?struct student{ int age; int num;}stu1,*p;p=&stu1;A.stu1.ageB.student.ageC.p->ageD. (*p).age答案:B结构名 student 只能用来创建一个新的实例,然后再取到结构体里面的值,不能直接访问里面的成员3.如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能原创 2022-02-06 13:28:29 · 416 阅读 · 0 评论 -
187-C语言刷题26
1.typedef是在编译的时候进行处理的2.sizeof是C语言中的一个操作符(operator),不是函数调用,简单的说其作用就是返回一个对象或者类型所占的内存字节数由于结果是无符号整数,因此可以把它看作是无符号整型表达式3.以下函数值的类型是?fun ( float x ){ float y; y= 3*x-4; return y;}答案:int型C语言规定如果函数没有给出类型,默认为int型,C++函数如果没有返回类型,必须指明是void类型,不能省略4.有如下类定义,请问原创 2022-02-06 12:50:13 · 809 阅读 · 0 评论 -
186-C语言刷题25
1.给出以下定义,下列哪些操作是合法的?const char *p1 ="hello";char *const p2 = "world";A.p1++;B.p1[2] = ‘w’;C.p2[2] = ‘l’;D.p2++;答案:Ap1是指向字符常量的指针,p1本身不是常量,所以p1++合法,A正确,p2本身是指针常量,可以指向非常量的字符,但是"hello"这样声明的字符串是存储在只读存储区的,不可修改,所以B,C错误,p2也是指向字符常量的指针,p2本身是常量,所以p1++不合法,A错误原创 2022-02-05 18:52:38 · 576 阅读 · 0 评论 -
185-C语言刷题24
1.static类型的变量会被分配到数据区的静态存储区中2.若调用fputc函数输出字符成功,则其返回值是输出的字符3.当x=3 y=1 z=0时,表达式x<=y<=z的结果为?答案:1解析:> >= < <=的结合性是从左到右,所以先计算x<=y,结果为0,在计算0<=y,结果为14.下列标识符中,不合法的C语言用户自定义标识符是?A.printfB.enumC._D.sin答案:B函数名可以作为用户自定义标识符,比如printf原创 2022-02-05 17:53:11 · 659 阅读 · 0 评论 -
184-C语言刷题23
1.switch语句不能嵌套使用2.在C++中的结构体是否可以有构造函数?答案:可以有在C++中类和结构体的唯一区别是:默认状态下,类中的成员默认是私有的,结构体中的成员默认是公有的C++中的结构体和C中的结构体的区别①C++中的结构体引入了成员函数,继承,访问控制等面向对象的特性②C中的空结构体的大小为0,C++中的空结构体和空类一样,大小是1C++中空类的大小是1的原因:空类可以实例化成不同的对象,不同的对象在内存中的地址不同,所以隐含地加入一个字节来标识不同的对象3.不同系统下基本类型原创 2022-02-05 10:50:06 · 562 阅读 · 0 评论 -
183-C语言刷题22
1.关于scanf的输入问题int m, n;scanf_s("%d%d", &m, &n);cout << m << " " << n << endl;当为scanf_s("%d%d", &m, &n);时输入数据可以用空格隔开,不能用逗号,如果用逗号了,只能给第一个变量赋值,而第二个变量没有被赋值当为scanf_s("%d,%d", &m, &n);时输入数据可以用逗号隔开,不能用空格,如果用空格原创 2022-02-14 22:03:29 · 895 阅读 · 0 评论 -
182-C语言刷题21
1.常量的作用域可以是整个工程,而静态全局变量的作用域只能在其定义的源文件2.关于C语言中volatile(易变)关键字,下面的说法哪一个是错误的?A.编译器会禁止对volatile修饰的变量进行读写优化B.用volatile修饰的变量,读取速度会更快C.每一次读取volatile修饰的变量都会从内存中读取答案:Bvolatile会提醒编译器它后面所定义的变量随时都有可能改变 ,因此编译后的程序每次需要存储或读取这个变量的时候 ,都会直接从变量地址中读取数据,如果没有volatile关键字,则编原创 2022-02-01 12:46:58 · 600 阅读 · 0 评论 -
181-C语言刷题20
1.若变量a是int类型,并执行了语句a=’A’+1.6;则正确的叙述是?A.a的值是字符CB.a的值是浮点型C.不允许字符型和浮点型相加D.a的值是字符’A’的ASCⅡ值加上1答案:Da的值还是int类型,允许字符型和浮点型相加,最后的结果就是a的值是字符’A’的ASCⅡ值加上12.设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑变量生命周期问题,这句话对吗?答案:错其中静态局部变量的生存周期虽然为整个源程序,但是其作用域仍然与局部变量相同,当退出该函数时,该变量原创 2022-01-29 22:56:47 · 2163 阅读 · 0 评论 -
180-C语言刷题19
1.用C语言实现的算法必须有零个或者多个输入,一个或者多个输出2.C语言程序中的整数不能是?A.二进制整数B.八进制整数C.十六进制整数D.十进制整数答案:输入有三种%d,%o,%x,分别为十进制,八进制,十六进制,没有二进制的输入3.若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是 t[2]。说法是否正确?答案:正确:t[2]表示的就是t[2][0]的地址4.以下代码中的两个sizeof用法有问题吗?void UpperCase( char str[] )原创 2022-01-29 22:28:18 · 542 阅读 · 0 评论 -
178-C语言刷题18
1.C语言中的文件的存储方式可以顺序存取,也可随机存取2.若有 int i=10,j=0; 则执行完语句,i的值为11,说法是否正确?if (j = 0) i++;else i--; 答案:错误if(j = 0)相当于if(0),执行else的i–,结果为93.下面程序运行的结果是什么?int a = 2;int b;printf("%d\n",b = 2 && (-1));答案:1&&两边只要都没有0就是14.用到volatile关键字修饰原创 2022-01-28 11:43:39 · 810 阅读 · 0 评论 -
177-C语言刷题17
1.C语言本身是没有输入输出语句的2.函数是构成C语言的基本单位3.运算符优先级和结合性单目运算符(第二行)和条件运算符(?:)和赋值运算符(= /= *= %=)的结合性是从右向左,其他都是从左向右4.定义一个输出文件流对象,并打开d盘du文件夹下的 abc.dat 文件的代码为ofstream fout; fout.open(“d:\du\abc.dat”);两个\是因为转义字符5.C++线程安全1.局部变量局部使用是安全的,为什么?因为每个线程(thread)都有自己的运行堆栈,而局部原创 2022-01-28 11:03:36 · 199 阅读 · 0 评论 -
173-牛客网C语言刷题16
1.char a[3]; a = “AB”;这两条语句是不合法的,a是常量指针(const char * ),地址固定不可更改,而字符串"AB"在常量存储区存放,有固定地址,所以不能赋值,改成 char a[3] = “AB”;就正确了2.a[q - p] = ?int a[3];a[0] = 0;a[1] = 1;a[2] = 2;int *p, *q;p = a;q = &a[2];答案:2这里 q-p 的实际运算是:(q的地址值-p的地址值)/ sizeof(int),所原创 2022-01-21 20:39:55 · 738 阅读 · 0 评论 -
172-牛客网C语言刷题15
1.在C语言中,char 型数据在内存中的存储形式是?A.补码B.反码C.原码D.ASCII码答案:D数据在内存中是以二进制形式存放的,数值是以补码表示的整型: 无论是正数还是负数都是以补码的形式存储的,只不过正数的原码反码补码相同,而负数的补码方式是将其绝对值的二进制形式“按位求反再加1”实型:浮点数是采用某种规则转换后存储的,是按照指数形式存储的,实型数据分为小数部分和指数部分,分别存放,计算机用二进制表示小数部分,用2的幂次来表示指数部分字符型:在内存中字符的存储实际上是把字符相对应原创 2022-01-21 19:59:38 · 471 阅读 · 0 评论 -
171-牛客网C语言刷题14
1.为了提高程序的运行速度,在函数中对于整型或指针可以使用register 型的变量,register 的作用是建议编译器将该变量放入 cpu,通常情况下,变量的值是存取于内存之中,若使用 CPU 的寄存器,将局部变量值直接放于寄存器中,其存取速度远远高于对内存的存取速度,因此,使用 cpu 的寄存器可提高执行速率2.设有以下说明语句 typedef struct { int n; char ch[8]; } PER; 则下面叙述中正确的是?A.PER 是结构体实例变量名B.PER 是结构体类型名C原创 2022-01-21 14:07:34 · 823 阅读 · 0 评论 -
170-牛客网C语言刷题13
1.getline()用于读取一行字符直到换行符,不读取换行符,可以接收空格并输出2.建立自定义函数的目的是提高程序的可读性,调用函数往往会导致效率下降,多次调用可能减少篇幅,但是一次调用的反而会增加,不会减少内存3.fscanf(文件指针,格式字符串,输入表列);fscanf()函数与scanf()函数的主要区别就是在 fscanf() 函数中的第一个形参是文件指针,其他参数与scanf完全相同4.以下字符串定义与赋值中,正确的是?A.char s[80] = {“A”, “B”, “C”}B原创 2022-01-21 13:47:13 · 701 阅读 · 0 评论 -
169-牛客网C语言刷题12
1.C 语言规定,在一个源程序中,main 函数的位置可以任意,不一定必须在系统调用的库函数的后面2.指针相加没意义,相加后地址不可控,可能会破坏其他地方内容,连续存储空间,两指针相减,可求出两指针相差字节数,在数组中很常见3.下面选项中关于位运算的叙述正确的是?A.位运算的对象只能是整型或字符型数据B.位运算符都需要两个操作数C.左移运算的结果总是原操作数据2倍D.右移运算时,高位总是补0答案:AB:按位取反只需要一个操作数C:左移一位是扩大2倍,左移n为扩大为2^n倍D:如果是正数,原创 2022-01-21 00:14:02 · 321 阅读 · 0 评论 -
168-牛客网C语言刷题11
1.在C语言源程序的开始处通常加上预处理命令 #include <stdio.h> 的原因是?A.stdio.h文件中包含标准输入输出函数的函数声明,通过引用此文件以便能正确使用printf、scanf等函数B.将stdio.h中标准输入输出函数的二进制代码插入到引用处,以便进行编译链接C.将stdio.h中标准输入输出函数的源程序插入到引用处,以便进行编译链接D.将stdio.h中标准输入输出函数链接到编译生成的可执行文件中,以便能正确运行答案:Ainlcude语句的实质是,把原创 2022-01-20 22:16:02 · 787 阅读 · 0 评论 -
167-牛客网C语言刷题10
1.程序中的所有数在计算机内存中都是以二进制的形式储存的,位运算就是直接对整数在内存中的二进制位进行操作,而浮点数是无法精确的转化为二进制表示的,所以是无法进行位运算的,整数进行位运算才有意义2.以下正确的说法是?A.用户调用标准库函数前,必须重新定义B.若已包含标准库头文件及相关命名空间,用户也可以重新定义标准库函数,但是该函数将失去原有含义C.若已包含标准库头文件及相关命名空间,则系统不允许用户重新定义标准库函数D.用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中答原创 2022-01-20 21:20:48 · 310 阅读 · 0 评论 -
165-牛客网C语言刷题9
1.假定 a 为一个数组名,则下面存在错误的表达式为?A.a[i]B.*a++C.aD.(a+1)答案:B当a为数组名时,可以当做一维指针进行取值运算,但是由于数组名等同于常量指针,所以不可以对数组名进行赋值运算所以当a为数组时, a=任意表达式 这样的计算都是非法的B:a代表数组的地址,不能被改变C:*a相当于a[0]是正确的2.若重载运算符+,则相应的运算符函数名是运算符函数名应该为operator+3.在32位机器上,下列代码中,sizeof(a)的值是?答案:22字节i是4字原创 2022-01-13 11:25:13 · 1085 阅读 · 0 评论 -
164-牛客网C语言刷题8
1.代码int i=3;i<<=4;i的值等于多少?答案:48i<<=4 等同于 i = i<<4,i<<4 = 3 * 2^4 = 482.对于条件表达式(k)?(i++):(i–)来说,其中的表达式k等价于A.k0 B.k1 C.k!=0 D.k!=1答案:C对于该条件表达式应理解为:k为真时返回i++,否则返回i–,在C语言中表达式的值非0表示真,为0表示假3.printf("%%%%\n");输出的结果为:%%在print原创 2022-01-11 16:30:34 · 1331 阅读 · 0 评论 -
163-牛客网C语言刷题7
1.C语言是一种结构化程序设计语言2.puts(str):输出 str 指向的字符串,遇到字符串结束标志 ‘\0’ 停止输出3.换行’\n’的ASCII码10,回车’\r’的ASCII码13,空格’ 'ASCII码32,'0’的ASCII值为48,'A’的ASCII值为65,'a’的ASCII值为974.a - (b * c + d) / e的后缀表达式是 abc*d+e/-中缀转后缀可以想象成入栈入栈规则:乘除取余的优先级大于加减如果栈内和栈外的优先级相同,则5.sizeof( doub原创 2022-01-10 13:35:16 · 474 阅读 · 0 评论 -
162-牛客网C语言刷题6
1.返回值C中:如果函数未指定返回值类型,则默认为intc++中:如果一个函数没有返回值,返回值类型必须指定为void2.参数列表C中:如果函数没有指定参数列表,则默认可以接受任意多个参数C++中:有严格的类型检测,没有参数列表的函数默认为void,不接受任意参数3.缺省参数(即给参数一个默认值)C:不支持C++:支持(如果没有指定实参则使用缺省值,有则使用指定实参)1.默认实参必须在参数列表的结尾2.默认参数只能出现在函数声明或者定义二选一中3.缺省值必须是常量或全局变量4.缺省参原创 2022-01-10 12:47:30 · 158 阅读 · 0 评论 -
158-牛客网C语言刷题5
1.纯虚函数是在基类中没有实现的函数,虚函数是在基类中实现了,但是在派生类中可能有不同版本的函数,纯虚函数是在基类中等于0的函数,抽象类是含有纯虚函数的类2.以下程序的输出结果是()void main() { char st[20]="hello\0\t\\\"; printf (%d %d \n",strlen (st),sizeof (st));}答案:strlen计算字符串的长度是从第一个字符开始一直计数到第一个’\0’为止(不包含‘\0’)数组st的大小与赋值的字符串无关,是其定义时原创 2022-01-08 13:48:32 · 254 阅读 · 0 评论 -
157-牛客网C语言刷题4
1.静态变量和全局变量存储都是静态的2.能把函数处理结果的二个数据返回给主调函数的方法:①形参用数组②形参用两个指针③用两个全局变量3.复合语句也被称为语句块,它至少要包含两条语句,这句话对吗?答案:错。复合语句可以由任意多条语句构成 , 可以使一条也可以没有4.在scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符5.32位编译器和64位编译器下类型大小总结①32位编译器:32位系统下指针占用4字节char :1个字节char*(即指针变量): 4个字节short i原创 2022-01-08 13:15:19 · 722 阅读 · 0 评论