PTA理论考部分.docx

上传人:b****7 文档编号:25283338 上传时间:2023-06-07 格式:DOCX 页数:111 大小:77.15KB
下载 相关 举报
PTA理论考部分.docx_第1页
第1页 / 共111页
PTA理论考部分.docx_第2页
第2页 / 共111页
PTA理论考部分.docx_第3页
第3页 / 共111页
PTA理论考部分.docx_第4页
第4页 / 共111页
PTA理论考部分.docx_第5页
第5页 / 共111页
点击查看更多>>
下载资源
资源描述

PTA理论考部分.docx

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

PTA理论考部分.docx

PTA理论考部分

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。

double x; 

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;

double rate; 

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。

int i,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;

double sum;

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.

int i,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;

double product;

scanf("%d”, &n);

for (i=1; i<=n; i++){

  product =product * i;

D.

inti,n;

double product;

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;

}else if(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;

 case choice ==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);

}else if(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("Divisorcannotbe 0!

\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;

 case 1:

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. case 4:

price= 3、5;break;

I.}

J.

K.price=0、0;

L.switch(choice){

M. case1:

 price=3、0;break;

N. case 2:

price=2、5;break;

O. case3:

price =4、0;break;

P. case 4:

 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−1​​x〉0x=0x〈0​ ,以下程序段中错误得就是()。

 (2分)

A.

B.if(x >0) y= 1;

C.elseif(x== 0) y=0;

D.else y= -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.else y=-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<b)

    if(b<0) 

     c= 0;

   else  c++;

  printf(”%d\n”,c);ﻩ

 return0;

A.0

B.1

C.2

D.3

2-9

下列程序段得输出结果就是 (). (2分)

int main(void)

{

intx= 1,a =0,b=0;

  switch(x)

{

  case 0:

 b++;

case1:

a++;

   case2:

 a++;b++;ﻩ

}

   printf("a=%d,b=%d\n",a,b);

 retur

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1