C语言的题目总结

本文介绍了C语言中的运算符优先级,从单目运算符到赋值运算符,以及三目运算符的使用。同时,讨论了数据类型、局部变量的作用域、数组的特性、字符串的结束标志和错误的数组创建方式。还涵盖了关键字的使用,如switch语句,以及按地址传递参数的概念。此外,提到了逗号表达式、结构体与联合体的内存占用问题,以及存储模式(大端模式、小端模式)和递归等编程概念。
摘要由CSDN通过智能技术生成

运算符优先级顺口溜:

运算符优先级顺口溜:单算一笔,俺裸三服(才单算了一笔账,我就脱了三件衣服)

1单:单目运算符;!

2算:算数运算符;加、减、乘、除、取余

3一:移位运算符;左移、右移

4笔:比较运算符; 等于【==】、不等于【!=】 、关系运算符【< > <= >= 】

5俺:按位运算符;按位与(&),按位或(|)、按位非(~)、按位异或(^)

6裸:逻辑运算符;与【&&】 、或【||】、非【!】

7三:三目运算符;b ? x : y,先计算b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值

8服:赋值运算符。赋值运算符【= += -= *= /= %= >>= <<= &= |= ^=】

3.下面结果是什么?                                                                                                                B

1.下面哪个不是C语言内置的数据类型?                                                                                   C

 2.局部变量的作用域是什么?                                                                                                      D

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

牛客等代码题:OJ  online Judge 

 

 4.字符串结束的标志:                                                                                                                   C

5.关于数组描述错误的是:                                                                                                        B 

 

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

 

 7.下面哪个不是转译字符:                                                                                                  C

 8.下面代码的结果是?                                                                                 C。随机值

C语言中哪个数组的创建是错误的:                                                B    数组的容量不能是一个变量 

 

关键字:

 1.下面关于关键字说法正确的是:                                                                                        B

2.用在switch中的关键字不包括哪个?                                                  A        switch不是循环语句

continue是用在循环里面的

 3.下面哪个不是关键字?                                                                                        C

   define不是关键字  是一个预处理指令

什么是右结合?

1.fun((exp1,exp2),(exp3,exp4,exp5))有几个实参?                                        A

A. 2 

B. 5

C. 1

D. 3

逗号表达式:

c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来,如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14。(a=3*5,a*4)的值是60。
逗号表达式的形式如下:
表达式1,表达式2,表达式3,...... ,表达式n
逗号表达式的要领:
(1) 逗号表达式的运算过程为:从左往右逐个计算表达式。
(2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。

(3) 逗号 运算符的优先级别在所有运算符中最低。

2 . 关于按地址传递,下列说法错误的是:                                                                         D

A. 当函数形参是数组名、指针类型时,函数调用的参数传递是按地址传递。

B. 按地址传递时,形参和实参共用同一存储空间。

C. 按地址传递时,形参的改变会影        响实参。

D. 形参数组和实参数组的长度必须一致。

官方解析:形参数组和实参数组的长度可以不同,因为按地址传递时是把实参首地址给了形参而不检查其长度。

请问经过表达式a = 5 ? 0 : 1的运算,变量a的最终值是?                                                C

A 5

B 1

C 0

D true

解析:三元运算符优先于 = 赋值   所以   a = 5 ? 0 : 1 --->    a = ((5) ? 0 : 1 ) 

%-08d表示输出占8个空格的位置,并且左对齐

在下列运算符中,优先级最高的是()                                                D

A、<=

B、*=

C、+

D、*

单算一笔、按逻三赋

结构体与UNION联合体 所占内存问题:

union的大小取决于所占空间最大的变量的大小 并且是倍数  int a32位占4字节,所以uni的大小就是4字节

struct的大小由于内存对齐问题,int a四个字节,char b虽然是1个字节 但是为了存取效率,char b也被分配了一块4字节的空间,所以整个结构体所占空间为8字节

4.存储模式--大端模式、小端模式  存储方式、补码。。。。

结构体:

                D

A、15

B、16

C、18

D、20

官方解析:struct {
char    type;     ===>占一个字节
int     num;       ===>占四个字节,但考虑字节对齐,int num不会紧跟着type,对齐的最终结果是char type和int num共占8字节
char    name[10];   ===>虽然数组个数是10个,占10个字节,但考虑字节对齐,最后回对齐到12字节,所以该结构体总占字节为8+12 = 20
} rec;

字符与数字比较 

                                C

A、12ba56

B、6521

C、6

D、62

递归:

                                C

A、5

B、11

C、29

D、10

 

运算优先级

                                B

A、编译错误

B、i=0,j=7

C、i=0,j=0

D、其他几项都不对

                                           A

A、1,2,0

B、2,1,0

C、1,2,1

D、2,1,1

 解析: a<b<c      1<2<2  -->   1<2

   

 

指针

 

3.

                                                C

A、8,7,8,7

B、7,8,7,8

C、8,7,7,8

D、7,8,8,7

解析:p和q的指针发生交换   但是a 和  b  的地址没有改变 

4.

                                A

A、def def

B、abc def

C、abc d

D、d d

解析: q指针指向 p   说明 这两个指针指向同一个内存地址

输入p q  p-->abc   q-->def   因为二者指向同一个内存地址  所以内存先存储abc

后面def覆盖了abc   printf输出时,读取的就是def   所以输出两个def

unsigned:

指针与二级指针

 

 

变量的初始化:

 

内存:

2.

对于32位系统,定义 int **a[3][4], 则变量a占有的内存空间为:_____                                C

A、12

B、24

C、48

D、96

解析: 这是一个 指针数组  数组中的元素都是二级指针   所占内存因为是32位  4*3*4 = 48  

函数:

项目问题:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值