PTA理论考部分.docx
- 文档编号:609233
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:86
- 大小:342.37KB
PTA理论考部分.docx
《PTA理论考部分.docx》由会员分享,可在线阅读,更多相关《PTA理论考部分.docx(86页珍藏版)》请在冰点文库上搜索。
HW02
1-3
#include
(1分)
T F
1-5
任何一个程序都必须有而且只能有一个main()函数。
(1分)
T F
1-6
C语言程序是从源文件的第一条语句开始执行的。
(1分)
T F
1-7
C语言中的所有语句都必须以分号结束。
(1分)
T F
1-10
以下程序段符合C语言语法。
k=1;
intk;
(1分)
T F
1-11
C程序中定义的变量,代表内存中的一个存储单元。
(1分)
T F
1-12
在C语言中,单目运算符需要2个操作数。
(1分)
T F
1-13
若变量定义为intfahr;,则5(fahr-32)/9是符合C语言语法的表达式。
(1分)
T F
1-14
若变量定义为doublex;,则x%2是符合C语言语法的表达式。
(1分)
T F
1-15
若变量定义为intn;,当n的绝对值大于1时,则表达式1/n的值恒为0。
(1分)
T F
1-17
若变量定义为intx,y; ,则x+y=22是符合C语言语法的表达式。
(1分)
T F
1-18
假设赋值运算符的优先级比算术运算符高,执行以下程序段后,n的值为10。
intn;
n=10+2;
(1分)
T F
HW03
1-4
如果变量已经正确定义,则执行以下程序段后,x的值不变。
if(x=20){
y=1;
}
else{
y=0;
}
(1分)
T F
1-7
执行以下程序段,输入10,输出10.00。
doublex;
scanf("%d",&x);
printf("%.2f",x);
(1分)
T F
1-8
执行以下程序段,输入20,输出20.00。
doublex;
scanf("%f",&x);
printf("%.2f",x);
(1分)
T F
1-9
执行以下程序段,输入30,输出30.00。
doublex;
scanf("x=%lf",&x);
printf("%.2f",x);
(1分)
T F
1-11
执行以下程序段,输入100130.025,输出1001#3#0.025。
intmoney,year;
doublerate;
scanf("%d%lf%d",&money,&year,&rate);
printf("%d#%d#%.3f",money,year,rate);
(1分)
T F
1-14
如果变量已经正确定义,则表达式fahr++ 与fahr+1等价。
(1分)
T F
1-15
for语句的一般形式如下,其中的表达式1只执行一次。
for(表达式1;表达式2;表达式3)
循环体语句
(1分)
T F
1-16
for语句的一般形式如下,若表达式2的值为“假”,则结束循环。
for(表达式1;表达式2;表达式3)
循环体语句
(1分)
T F
1-18
C程序中,用一对大括号{}括起来的多条语句称为复合语句,复合语句在语法上被认为是一条语句。
(1分)
T F
1-19
循环体如包括有一个以上的语句,则必须用一对大括号{}括起来,组成复合语句,复合语句在语法上被认为是一条语句。
(1分)
T F
1-20
在C语言中,仅由一个分号(;)构成的语句称为空语句,它什么也不做。
(1分)
T F
1-21
执行以下程序段,sum的值是55。
inti,sum;
for(i=1;i<=10;i++){
sum=sum+i;
}
(1分)
T F
1-22
以下程序段的功能是计算20的阶乘。
inti;
doubleproduct;
product=0;
for(i=1;i<=20;i++){
product=product*i;
}
(1分)
T F
1-23
执行以下程序段,sum的值是1.5。
inti,sum;
sum=0;
for(i=1;i<=2;i++){
sum=sum+1.0/i;
}
(1分)
T F
1-24
执行以下程序段,sum的值是0.75。
inti;
doublesum;
sum=0;
for(i=2;i<=4;i=i+2){
sum=sum+1/i;
}
(1分)
T F
2-1
以下程序段()的功能是计算序列1+1/2+1/3+...的前N项之和。
(2分)
A.
inti,n,sum;
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++){
sum=sum+1.0/i;
}
B.
inti,n;
doublesum;
scanf("%d",&n);
for(i=1;i<=n;i++){
sum=sum+1.0/i;
}
C.
inti,n;
doublesum;
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++){
sum=sum+1.0/i;
}
D.
E.inti,n;
F.doublesum;
G.scanf("%d",&n);
H.sum=0;
I.for(i=1;i<=n;i++){
J.sum=sum+1/i;
K.}
L.
M.inti,n;
N.doublesum;
O.scanf("%d",&n);
P.sum=0;
Q.for(i=1,i<=n,i++){
R.sum=sum+1.0/i;
S.}
2-2
以下程序段()的功能是计算n的阶乘,假设计算结果不超过双精度范围。
(2分)
A.
inti,n;
doubleproduct;
scanf("%d",&n);
product=0;
for(i=1;i<=n;i++){
product=product*i;
}
B.
inti,n,product;
scanf("%d",&n);
product=1;
for(i=1;i<=n;i++){
product=product*i;
}
C.
inti,n;
doubleproduct;
scanf("%d",&n);
for(i=1;i<=n;i++){
product=product*i;
}
D.
inti,n;
doubleproduct;
scanf("%d",&n);
product=1;
for(i=1;i<=n;i++){
product=product*i;
}
4-2
执行以下程序段,并回答下列问题。
请注意,直接填数字,前后不要加空格等任何其他字符。
intfahr;
doublecelsius;
for(fahr=91;fahr<=100;fahr++)
celsius=5.0*(fahr-32)/9.0; /*语句①*/
printf("%4d%6.1f\n",fahr,celsius); /*语句②*/
语句①执行了 (1分) 次
语句②执行了 (1分) 次
循环体语句共执行了 (1分) 次
当循环结束时,变量fahr的值是 (1分)
HW04
1-1
if-else语句的一般形式如下,其中的语句1、语句2只能是一条语句。
if(表达式)
语句1
else
语句2
(1分)
T F
1-4
为了检查以下省略else的if语句的分支是否正确,至少需要设计3组测试用例,即grade的取值至少有三组(小于、大于、等于60)。
if(grade<60){
printf("Fail\n");
}
(1分)
T F
1-7
如果变量已经正确定义,则执行以下程序段后,x的值不变。
x=4;
if(x<0){
y=-1;
}elseif(x=0){
y=0;
}else{
y=1;
}
(1分)
T F
1-8
为了检查以下嵌套的if语句的三个分支是否正确,至少需要设计3组测试用例,即yournumber的取值至少有3组(大于、小于、等于mynumber)。
if(yournumber==mynumber){
printf("GoodGuess!
\n");
}elseif(yournumber>mynumber){
printf("Toobig!
\n");
}else{
printf("Toosmall!
\n");
}
(1分)
T F
1-9
为了检查以下else-if语句的三个分支是否正确,至少需要设计5组测试用例,即x的取值至少有五组(小于0的数、0、大于0且小于15的数、15和大于15的数)。
if(x<0){
y=0;
}elseif(x<=15){
y=4*x/3;
}else{
y=2.5*x-10.5;
}
(1分)
T F
1-10
C语言中的字符常量指单个字符,用一对单引号及其所括起的字符来表示。
(1分)
T F
1-11
C语言中,字符型数据的值就是其在ASCII字符集中的次序值,即ASCII码。
(1分)
T F
1-12
C语言中,每个字符型数据在ASCII字符集中都有一个惟一的次序值,即ASCII码。
(1分)
T F
1-13
C语言中,数字字符'1'的值(ASCII码)就是数字1。
(1分)
T
1-14
C语言中,数字字符 '0','1','2',…,'9' 的ASCII码按降序连续排列。
(1分)
T F
1-15
C语言中,大写字母'A','B','C',…,'Z'的ASCII码按升序连续排列。
(1分)
T F
1-17
C语言中,大小写字母'A','B','C',…,'Z','a','b','c',…,'z'的ASCII码按升序连续排列。
(1分)
T F
1-18
C语言中,大写字母'M'的ASCII码值比小写字母'm'的ASCII码值大。
(1分)
T F
1-19
C语言中,小写字母'a'的ASCII码值是大写字母'Z'的ASCII码值加1。
(1分)
T F
1-20
以下C语言表达式的值为“真”。
'D'-'A'=='d'-'a'
(1分)
T F
1-21
C语言中不能用printf函数输出字符。
(1分)
T F
1-22
C语言中不能用scanf函数输入字符。
(1分)
T F
1-23
执行语句putchar('S');后,在屏幕上显示的输出结果是'S'。
(1分)
T F
1-24
设变量已正确定义,执行以下程序段,顺序输入三个字符'Q',则输出Q。
(1分)
T F
ch=getchar();
putchar(ch);
1-25
设变量已正确定义,执行以下程序段,顺序输入三个字符'k',则输出k。
(1分)
T F
scanf(“%c%c%c”,&ch1,&ch2,&ch3);
printf(“%c”,ch2);
1-26
为了检查以下else-if语句的三个分支是否正确,至少需要设计63组测试用例,即ch的取值至少有63组(52个大小写英文字母、10个数字字符、其他字符)。
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
letter++;
elseif(ch>='0'&&ch<='9')
digit++;
else
other++;
(1分)
T F
1-27
对于如下的switch语句(使用break)的一般形式,其执行流程是:
首先求解表达式,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的相应语句段;如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的语句段,最后执行break语句,跳出switch语句。
switch(表达式){
case常量表达式1:
语句段1;break;
case常量表达式2:
语句段2;break;
…
case常量表达式n:
语句段n;break;
default:
语句段n+1;break;
}
(1分)
T F
1-28
在switch语句中,每一个的case常量表达式的值可以相同。
(1分)
T F
1-29
在switch语句中,必须使用default。
(1分)
T F
1-30
设变量已正确定义,以下是合法的switch语句。
switch(choice){
casechoice==1:
price=3.0;break;
casechoice==2:
price=2.5;break;
casechoice==3:
price=4.0;break;
casechoice==4:
price=3.5;break;
default:
price=0.0;break;
}
(1分)
T F
1-31
对于如下switch语句(不使用break)的一般形式,其执行流程是:
首先求解表达式,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的所有语句段,如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的所有语句段。
switch(表达式){
case常量表达式1:
语句段1;
case常量表达式2:
语句段2;
…
case常量表达式n:
语句段n;
default:
语句段n+1;
}
(1分)
T F
1-32
case语句后如没有break,顺序向下执行。
(1分)
T F
1-33
在switch语句中,可以根据需要使用或不使用break语句。
(1分)
T F
2-1
设变量已正确定义,为了检查以下else-if语句的分支是否正确,至少需要设计()组测试用例。
if(op=='+'){
printf("=%.2f\n",value1+value2);
}elseif(op=='-'){
printf("=%.2f\n",value1-value2);
}elseif(op=='*'){
printf("=%.2f\n",value1*value2);
}elseif(op=='/'){
if(value2!
=0){
printf("=%.2f\n",value1/value2);
}else{
printf("Divisorcannotbe0!
\n");
}
}else{
printf("Unknownoperator!
\n");
}
(2分)
A.7
B.6
C.5
D.4
2-2
设变量已正确定义,以下()与其它switch语句不等价。
(2分)
A.
switch(choice){
case1:
price=3.0;break;
case2:
price=2.5;break;
case3:
price=4.0;break;
case4:
price=3.5;break;
default:
price=0.0;break;
}
B.
switch(choice){
default:
price=0.0;break;
case4:
price=3.5;break;
case3:
price=4.0;break;
case2:
price=2.5;break;
case1:
price=3.0;break;
}
C.
D.switch(choice){
E.case1:
price=3.0;break;
F.case2:
price=2.5;break;
G.case3:
price=4.0;break;
H.case4:
price=3.5;break;
I.}
J.
K.price=0.0;
L.switch(choice){
M.case1:
price=3.0;break;
N.case2:
price=2.5;break;
O.case3:
price=4.0;break;
P.case4:
price=3.5;break;
Q.}
2-3
设变量已正确定义,以下()与其它switch语句不等价。
(2分)
A.
switch(op){
case'+':
printf("%d\n",value1+value2);break;
case'-':
printf("%d\n",value1-value2);break;
case'*':
printf("%d\n",value1*value2);break;
default:
printf("Error\n");break;
}
B.
C.switch(op){
D.default:
printf("Error\n");break;
E.case'*':
printf("%d\n",value1*value2);break;
F.case'-':
printf("%d\n",value1-value2);break;
G.case'+':
printf("%d\n",value1+value2);break;
H.}
I.
if(op!
='+'&&op!
='-'&&op!
='*'){
printf("Error\n");
}else{
switch(op){
case'+':
printf("%d\n",value1+value2);break;
case'-':
printf("%d\n",value1-value2);break;
case'*':
printf("%d\n",value1*value2);break;
}
}
J.
K.switch(op){
L.case'+':
printf("%d\n",value1+value2);break;
M.case'-':
printf("%d\n",value1-value2);break;
N.case'*':
printf("%d\n",value1*value2);break;
O.}
2-5
在嵌套使用if语句时,C语言规定else总是()。
(2分)
A.和之前与其具有相同缩进位置的if配对
B.和之前与其最近的if配对
C.和之前与其最近的且不带else的if配对
D.和之前的第一个if配对
2-6
下列叙述中正确的是()。
(2分)
A.break语句只能用于switch语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.在switch语句中,不一定使用break语句
2-7
有一函数 y=⎩⎨⎧10−1x>0x=0x<0 ,以下程序段中错误的是()。
(2分)
A.
B.if(x>0)y=1;
C.elseif(x==0)y=0;
D.elsey=-1;
E.
F.y=0;
G.if(x>0)y=1;
H.elseif(x<0)y=-1;
I.
J.y=0;
K.if(x>=0);
L.if(x>0)y=1;
M.elsey=-1;
if(x>=0)
if(x>0)y=1;
elsey=0;
elsey=-1;
2-8
下列程序段的输出结果是()。
(2分)
intmain(void)
{
inta=2,b=-1,c=2;
if(a
if(b<0)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PTA 理论 部分