PTA-武汉理⼯⼤学C理论课学习及答案⼀
PTA-C理论课学习及答案⼀
第⼀次在CSDN上写博客(markdown⽤的不好,排版可能不好看),只是想将这篇⽂章作为⼀个学习笔记和实验,分享下。如果有哪⾥说错了,欢迎指出。
客观题
运算符和表达式
判断
1-1 假设k是整型变量,计算表达式1/k 后结果的数据类型是整型。
T
⼩数部分会直接被砍掉,可以理解为数学⾥的取整函数。如 1/3 = 0
1-2 表达式(x == 0)与表达式(!x)等价。
T
结合if()函数理解,
1-3 表达式 (3<x<5) 的值恒为1。
T
解析:根据C语⾔运算符顺序,从左向右。
第⼀步,计算 3 < x 结果为 1 或者 0;
再将 1 或 0 与 5 ⽐较。易知结果恒为1;
1-4 字符‘\0’的ASCII码值是0。
T
1-5 C 语⾔的标识符由字母、数字和其他任意字符组成。
F
百度:C 语⾔的标识符
1-6 若变量定义为double x;,则x % 2是符合C语⾔语法的表达式。
F
1-7 若变量定义为int x, y; ,则x + y = 22是符合C语⾔语法的表达式。
F
1-8 是关系运算符,⽤于⽐较两个操作数是否相等;⽽ = 是赋值运算符,表⽰对变量赋值。
T
1-9 C程序中,⽤⼀对⼤括号{}括起来的多条语句称为复合语句,复合语句在语法上被认为是⼀条语句。
T
尤其注意再循环语句中的⼤括号范围。强烈建议对算法结构不是很清楚的同学再写循环语句时都写⼤括号,框明范围 。
1-10 C语⾔中,数字字符’1’的值(ASCII码)就是数字1。
F
在以整形表⽰的⽅式下为49;
1-11 C语⾔中,⼤写字母’M’的ASCII码值⽐⼩写字母 'm’的ASCII码值⼤。
F
1-12 以下C语⾔表达式的值为“真”。
'D' - 'A' == 'd' - 'a'
T
1-13 表达式 !x 等价于x != 1。
F
等价于`(x == 0)
1-14 s(s-a)(s-b)(s-c) 是合法的C语⾔表达式。
F
1-15 表达式 !!6的值是6。
F
值为 1 。
1-16 若表达式sizeof(int)的值为4,则int类型数据可以表⽰的最⼤整数为T
4个字节,每字节8位,⼀共32位。还有⼀个符号位。
1-17 表达式 (z=0, (x=2)||(z=1),z) 的值是1。
F 2−311
值为 0 ;
1-18 与float型数据相⽐,double型数据的精度⾼,取值范围⼤。
T
switch函数用法举例
1-19 语句printf("%.2f",1.0/3);输出为0.33。
T
选择
2-1 若有:double x,y,a,b; , 与代数式(x y)/(a b)不等价的C语⾔表达式是( )
A.x y/a b
B.x y/a/b
C.x y/(a b)
D.x/(a b)*y
A
2-2 表达式:(int)((double)7/2)-7%2的值是( )。
A.0
B.2
C.3
D.4
B
2-3 设int x=25,a=1,b=10;,则条件表达式x>2?a+10:b的值是( ) 。
A.1
B.10
C.11
D.25
C
2x+(a+b)÷sin x2
2-4 对于数学表达式,对应的C表达式是( )。
A.2x+(a+b)/sin(x)*sin(x)
B.2*x+(a+b)/sin(x)^2
C.2*x+a+b/(sin(x)*sin(x))
D.2*x+(a+b)/sin(x)/sin(x)
D
2-5 C 语⾔程序中可以对程序进⾏注释,注释部分必须⽤什么符号括起来?
A.{ 和}
B.[和 ]
C.*/ 和 /*
D./* 和 */
D
2-6 逻辑运算符两侧运算对象的数据类型( )。
A.只能是 0 或 1
B.只能是 0 或⾮ 0 正数
C.只能是整型或字符型的数据
D.可以是任何类型的数据
D
2-7 以下标识符中,不合法的是( )。
A.4d
B._8_d
C.Int
D.key
A
解析:标识符不能以数字开头,另外C语⾔区分⼤⼩写,C项 Int 与关键字 int 不同
2-8 若有char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( )。
A.float
B.char
C.double
D.int
C
在同⼀个表达式中,C语⾔数据类型double>float>int>char,即这些数据类型都有时,⾃动转换为优先级⼤的数据类型。
2-9 在C语⾔中,要求运算数必须是整型的运算符是( )。
A.%
B./
C.<
D.!
A
2-10 表达式( )的值是0。
A.3/5
B.3<5
C.3%5
D.3/5.0
A
2-11 已知字母’A’的ASCII码为⼗进制数65,且ch为字符型变量,则执⾏语句ch=‘A’+‘7’-‘3’;后,ch的ASCII值为( )。
A.68
B.‘E’
C.‘D’
D.69
D
解析:题⽬所问是ch的ASCII值,对应的是'A'的值65,加上字符7与字符3的差值4,结果是69。
2-12 如果变量 x、y 已经正确定义,下列哪个选项的语句不能正确将x、y的值进⾏交换?
A.t=x, x=y; y=t;
B.x=x+y, y=x-y, x=x-y;
C.x=t, t=y, y=x;
D.t=y, y=x, x=t;
C
2-13 若int w=4,x=3,y=2,z=1;,则条件表达w>x?w:y>z?y:z的值是( ) 。
A.4
B.3
C.2
D.1
A
解析:转换有
int p;//将要被赋值的变量
if(w > x){
p = w;
}
else{
if(y > z){
p = y;
}
else{
p = z;
}
}
2-14 设 int a=2, b=0, c=-1;,则表达式 a < b || b < c && b 的值是( )
A.-1
B.0
C.1
D.2
B
解析:从左⾄右耐⼼计算
2-15 设:int a=4, b=3, c=2, d=1, m=1, n=3;,执⾏ ( m=a>b>c) && (n=c>d) 后 n 的值为( )
A.1
B.2
C.3
D.4
C

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。