大一上学期c语言PTA错题总结(自用)(01)-创新互联
1.执行以下程序段后,k
的值为4。
int k = 3;
sizeof(++k)
false。在C语言中,sizeof()是一个静态运算符,即编译器只关注括号内数值的类型,而不会对括号里面的参数进行计算。
2.运行包含以下代码段的程序将可能进入死循环。
int i = 1;
while(i>0){ i++; printf("%d ",i); }
false,当数值大到超出int范围就会输出负值。当int型整数超出自己范围时,会从它的最小值重新开始。
3.假设有变量定义语句float f = 1234567890123.123456;
,打印语句printf("f = %f", f);
的输出是f = 1234567954432.000000
。那么可以这样解释这种想象:因为float类型的数据精度是十进制7~8位,第9位以后的数据是随机的,即下次再输出这个数时,第9位以后的数据可能会不一样。
false
float只有六位有效数字,且每次输出的数据不会变.
4.下面哪个表达式的值是2?
A.6%3 B.-5%3 C.5%-3 D.-5%-3
答案:C.
对于%的结果,其符号取决于%前面的数的符号。
5.scanf()函数在读不到数据时返回(B)
A.NULL
B.0
C.EOF
D.1
scanf()函数有返回值吗?回答是肯定的。
《1.scanf()函数有返回值且为int型。
《2.scanf()函数返回的值为:正确按指定格式输入变量的个数,也即能正确接收到值的变量个数。
例如:
scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf()的返回值就是2;
如果只有a被成功读入,返回值为1;
如果a和b都未被成功读入,返回值为0;
如果遇到错误或遇到end of file,返回值为EOF。
原文链接:https://blog.csdn.net/weixin_39887926/article/details/113316691
6.设有定义“int a=1, b=2, c=3, d=4, m=2, n=2;”, 则执行表达式“(m=a>b)&&(n=c>d)”后,n的值为(D)。
A.1
B.2
C.3
D.0
a&&b a为1时执行b,a为0,不执行b.
这里要注意逻辑与和逻辑或的执行过程。
7.若x
为浮点型,则表达式x=10/4
为( B)。
A.2.5
B.2.0
C.2
D.3
注意是B不是C,因为等式右边为两个整型,需计算完后再变为浮点型。
8.表达式8>6>3值是(A )
A.0
B.1
C.3
D.表达式语法错
#includeint main() {
int a;
a = (8 >6 >3);
printf("%d", a);
return 0;
}
输出值发现a=0;
运算方向:从左往右,eg.表达式8>6>3的值是0在程序中连续大于应该是8>6&&6>3
运算时:
8>6是真,表达式 == 1
1>3为假,表达式==0
9.已知字母A
的ASCII码为十进制数65,且ch
为字符型变量,则执行语句ch='A'+'6'-'3';
后,ch
中的值为_B_。
A.D
B.68
C.C
D.不确定
既然询问的是值,那么就应该选B而不是A了。
10. 设x
、y
、t
均为int
型变量,则执行语句:x=y=3; t= ++x || ++y;
后,y
的值为____。
A.不定值
B.3
C.4
D.1
这题与第六题同一类型,注意逻辑或的使用规则。
11.逻辑运算符两侧运算对象的数据类型(D )
A.只能是 0 或 1
B.只能是 0 或非 0 正数
C.只能是整型或字符型的数据
D.可以是任何类型的数据
逻辑运算符两侧运算对象的数据类型:可以是任何合法的类型数据;因为逻辑运算符两边的运算对象,最终都被转换成bool值(逻辑值)操作。0、null转换为false,而所有非零、非false、非null值转换为true;然后进行运算。
12.对下列代码的描述正确的是:
#include "stdio.h"
int main(){
long num=1;
while(num++ >0) for(long i=num; i >=0; i--)printf("i :=\n \t %ld \n" , i);
return 0;
}
A.程序有编译错误,不能执行
B.循环条件永为真,循环无限次,程序根本停不下来,打印输出无限行
C.循环有限次,程序正常结束,打印输出有限行
D.程序运行过程必定会出错(崩溃),结果打印输出有限行
选D而不是B,原因暂不清楚!!!
13.表达式 strcmp("box", "boss") 的值是一个_A___。
A.正数
B.负数
C.0
D.不确定的数
考察strcmp(1,2)函数比较的用法:
1.逐个字符相比
2.若1=2,函数值为0;1<2,负整数;1>2正整数;
14.According to the declaration: int x=11;
, the value of expressionx++*1/3
is__A___.
A.3
B.4
C.0
D.3.667
x++中,++在后,也就是将x的值单独带入表达式中,然后求出表达式的值,求完之后,再给x自己++。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前名称:大一上学期c语言PTA错题总结(自用)(01)-创新互联
标题来源:http://scyanting.com/article/johes.html