c语言枚举类型例题_C语言常见易错题集(分析及解答)(仅可用于交流,勿用于商业用途)...

本文整理了C语言中关于枚举类型和逻辑表达式的常见易错题目,包括逻辑运算符的优先级、条件判断、函数参数、枚举类型的使用等知识点。通过实例解析帮助读者理解并避免这些易错点。
摘要由CSDN通过智能技术生成

1.能正确表示a和b同时为正或同时为负的逻辑表达式是( D  )。

A.(a>=0||b>=0)&&(a<0||b<0)             B.(a>=0&&b>=0)&&(a<0&&b<0)

C.(a+b>0)&&(a+b<=0)                       D.a*b>0

解析:0是非正非负数

2.在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式( D )。

A.只能用逻辑表达式                        B.只能用逻辑表达式或关系表达式

C.只能用关系表达式                        D.可用任意表达式

3.有如下程序段

float x=2.0,y;

if(x<0.0) y=0.0;

else if(x<5.0)y=1.0/x;

else y=1.0;

printf("%f\n",y);

该程序段的输出结果是( C  )。

A.0.000000                                         B.0.250000

C.0.500000                                         D.1.000000

解释:y是float类型,且除数是浮点数形式

4.求解以下值:

(1)0&&1||0  (2)0&&1||1  (3)1&&0||0&&1||1  (4)1||1&&0

解释(1):等价于((0&&1)||0)==》0||0==》0

解释(2):等价于((0&&1)||1)==》0||1==》1

解释(3):等价于((((1&&0)||0)&&1)||1)==》(((0||0)&&1)||1)==》((0&&1)||1)==》(0||1)==》1

解释(4):等价于(1||(1&&0))==》(1||0)==》1

总结:&&优先级大于||;&&于||结合性为做到右

6.若int k, m = 1; 则 k = -m--;语句后,k的值为多少?

解析:优先级相同时,由结合性判断。负号与自减优先级相同,且它们的结合性为右到左,因此k = -m-- 等价于k = -(m--),由于自减在变量右侧,因此得到 k = -m = -1

7.若函数的形参为一维数组,则形参数组可以不指定大小。

8.在函数的说明和定义时若没有指出函数的类型,则系统自动地认为函数的类型为整型。

9.函数可以返回一个值,也可以什么值也不返回。

10.若调用一个函数,且此函数中没有 return 语句,则该函数返回一个不确定的值。

11.若使用一维数组名作函数参数,则在被调函数中,不需要考虑形参数组的大小。

12.在 C 语言中,形参的缺省存储类是auto

13.C 语言中,函数的隐含存储类别是extern

14.若有定义语句:char s[10]="1234567\0\0";,则 strlen(s)的值是7

15.以下关于 return 语句的叙述中正确的是:C

A.一个自定义函数中必须有一条 return 语句

B. 一个自定义函数中可以根据不同情况设置多条 return 语句

C. 定义成 void类型的函数中可以有带返回值的 return 语句

D.没有 return 语句的自定义函数在执行结束时不能返回到调用处

16.在宏定义#define PI 3.14159 中,用宏名 PI 代替一个字符串

解析:对宏的具体定义是: #define 标识符 字符串

宏替换只是字符替换。

17.C 语言字符数组可以存放字符串。

18.若函数有返回值,必须通过 return 语句返回。

19.C 语言中唯一一个不能被别的函数调用的函数是main函数。

20.在 C语言中,一个函数一般由两个部分组成【函数首部】、【函数体】

21.C语言中,关键字及编译预处理命令用小写字母书写。

22.由float x=3e-6,y=3e-6;不能得到x==y的逻辑值为真。

23.仅仅对存放字符串的数组才可以一次引用整个数组,其余均不能一次引用整个数组。

24.对于数值型的数组来说,不可以一次引用整个数组。

25.C语言中,函数间数据传递的方式有三种,即用返回值、参数、全局变量。

26.将整数值赋给枚举变量时需要作强制类型转换。

解析:

enum season {spring,summer,autumn,winter}s1,s2;

s1=summer;

s2=(enum season)2;

printf("s1=%d,s2=%d\n",s1,s2);

27.枚举类型不是一种基本的数据类型

解析:C语言数据类型分类:

基本类型

标准整数类型,以及扩充的整数类型

实数浮点类型,以及复数浮点类型

枚举类型

void类型

派生类型

指针类型

数组类型

结构类型

联合类型

函数类型

28.自增自减:(有争议题)

int a = 99;

//(a++)--;  //报错

//++(a--);  //报错

//--a--;    //报错

//++a--;    //报错

(++a)--;

--(++b);

--++b;

29.fclose()用来关闭先前fopen()打开的文件,如果成功关闭,fclose()函数返回0,否则返回EOF。

30.表达式 c=fgetc(fp)!=EOF的功能是从fp指向的文件中读取字符,并判断文件是否结束。

31.在c语言中将文件视为无结构的字节流。

32.字符常量的长度肯定为1。

33.解释double x;x=218.82631;printf("%-6.2e\n",x);的输出格式

解析:

6-->代表域宽,共6位,负号、小数点、0都占一位宽(可见的都占一位)

.2-->代表小数点后位数

e-->代表用e表示法(按科学计数法显示)

-代表向左对齐

精华:%-m.nf(小数精度输出只能用于printf,不能用于scanf)

-代表向左对齐,无负号则代表向右边对齐(前面补空格)

.n-->代表小数点后位数

m-->先判断m与小数位的大小,m起码要大于(1+1+n+1+1+d)才能起到作用,其中d取决于编译器。其作用不是截断输出

e-->代表用e表示法(按科学计数法显示)

34.枚举类型声明/定义及使用:

enum 枚举类型 {枚举值列表};  //定义

正确:enum week{Su, Mo, Tu, We, Th, Fr, Sa};

错误:enum week={Su, Mo, Tu, We, Th, Fr, Sa};

错误:enum week {“Su”, “Mo”, “Tu”, We, Th, Fr, Sa};

//使用:

enum week  a,b,c;

a = We;

b = Fr;

printf("%d",a);

35.以下数值中,不正确的八进制数或十六进制数是(C).

A:0x16

B:16

C:-16

D:0xaaaa

解析:八进制和十六进制数前面是不可带负号(原始数值是十进制,以10进制为运算基准)

因为十进制数是负数时,如-16、-99其二进制负号位为1 ,则将二进制转换为八进制或十六进制时负号位参与数值运算,因此算出的八进制或十六进制不含负号位。

(注:一般来说,负号是人为规定地加在十进制数上,其他进制无负号概念,因为负号在二进制最前位体现,且参与进制转换)

36.以下只有在使用时才为该类型变量分配内存的存储类说明是(B)。

A:auto 和 static

B:auto 和 register

C:register 和 static

D:extern 和 register

解析:在用静态static与外部extern定义变量时,系统立刻给其分配内存,而定义自动类auto与强制放入寄存器register类型变量时,只有当使用时才分配内存。

37.下列表达式中,可作为C 合法表达式的是(B)。

A:[3,2,1,0]

B:(3,2,1,0)

C:3=2=1=0

D:3/2/1/0

解析:

(3,2,1,0)是逗号表达式

3/2/1/0 将提示:被零除或对零求模

38.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值