C语言选择题

练习二级选择题,点击选项即可查看结果

第41题. 若定义 int a=8,b=5;,表达式a>b && ++a>b运算结束后a的值为()
正确选项:
解析:&&逻辑与,左边a>b为真,继续执行右边++a>b。++a先自增,a变为9,9>5成立。最终a=9。只有左边为假时才会发生短路,右边不执行。
第42题. C语言中,表达式!(3+2)的值是()
正确选项:
解析:!是逻辑非运算符。非0的值逻辑上代表真,!真得到0。3+2=5为非0,!5结果等于0。注意:!不是取负,取负是负号运算符-。
第43题. 下面关于gets()函数说法正确的是()
正确选项:
解析:gets读取一行字符串,遇到回车结束,不检查数组空间大小,极易缓冲区溢出,C11标准正式废弃。A错误,没有长度限制;C错误,scanf遇空格停止,gets不会;D参数是char*字符指针。推荐使用fgets替代gets。
第44题. int m=3,n=4; m^=n; n^=m; m^=n;执行完成之后m和n的值为()
正确选项:
解析:利用异或^运算,不使用临时变量交换两个整数。三步异或完成交换,最终m=4,n=3。异或规则:相同二进制位得0,不同得1。
第45题. 执行 int k; for(k=2;k==0;); printf("%d",k--);循环执行次数是()
正确选项:
解析:for循环第一步k=2;判断条件k==0,2等于0不成立,循环体一次都不执行。直接执行printf输出k的值2。for后分号是空循环体。
第46题. 下面哪一个不是合法C实型常量()
正确选项:
解析:科学计数法e后面必须是整数。5e3.2中e后面是小数,语法非法。.123等价0.123;123.等价123.0都是合法浮点数写法。
第47题. char c='6';,执行printf("%d",c-'0');输出结果是()
正确选项:
解析:字符'6'ASCII码为54,字符'0'ASCII码48。字符数字减去'0'可以把数字字符转换成对应的整型数值,54‑48=6。该写法二级考试高频。
第48题. C语言中,short int类型可保存的最大值一般是()
正确选项:
解析:short占2字节,有符号范围‑32768 ~ 32767;unsigned short范围0~65535;int最大值2147483647;char最大值127。
第49题. 若有 int a[3][4];,数组a总共有多少个元素()
正确选项:
解析:二维数组定义a[行][列],3行4列,总元素 = 3*4 =12个。下标行范围0‑2,列0‑3。
第50题. int a[][3]={1,2,3,4,5,6};,二维数组行数为()
正确选项:
解析:二维数组初始化时列不能省略,行可以省略。总共有6个数据,每一行存放3个元素,6/3=2行。等价int a[2][3]={{1,2,3},{4,5,6}}。