PTA理论考部分.docx

上传人:聆听****声音 文档编号:609233 上传时间:2023-04-29 格式:DOCX 页数:86 大小:342.37KB
下载 相关 举报
PTA理论考部分.docx_第1页
第1页 / 共86页
PTA理论考部分.docx_第2页
第2页 / 共86页
PTA理论考部分.docx_第3页
第3页 / 共86页
PTA理论考部分.docx_第4页
第4页 / 共86页
PTA理论考部分.docx_第5页
第5页 / 共86页
PTA理论考部分.docx_第6页
第6页 / 共86页
PTA理论考部分.docx_第7页
第7页 / 共86页
PTA理论考部分.docx_第8页
第8页 / 共86页
PTA理论考部分.docx_第9页
第9页 / 共86页
PTA理论考部分.docx_第10页
第10页 / 共86页
PTA理论考部分.docx_第11页
第11页 / 共86页
PTA理论考部分.docx_第12页
第12页 / 共86页
PTA理论考部分.docx_第13页
第13页 / 共86页
PTA理论考部分.docx_第14页
第14页 / 共86页
PTA理论考部分.docx_第15页
第15页 / 共86页
PTA理论考部分.docx_第16页
第16页 / 共86页
PTA理论考部分.docx_第17页
第17页 / 共86页
PTA理论考部分.docx_第18页
第18页 / 共86页
PTA理论考部分.docx_第19页
第19页 / 共86页
PTA理论考部分.docx_第20页
第20页 / 共86页
亲,该文档总共86页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

PTA理论考部分.docx

《PTA理论考部分.docx》由会员分享,可在线阅读,更多相关《PTA理论考部分.docx(86页珍藏版)》请在冰点文库上搜索。

PTA理论考部分.docx

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=​⎩​⎨​⎧​​​1​0​−1​​​​​​​​x>0​x=0​x<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)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2