PTA理论考部分_第1页
PTA理论考部分_第2页
PTA理论考部分_第3页
PTA理论考部分_第4页
PTA理论考部分_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、HW021-3#include <stdio.h>是编译预处理命令。 (1分)T         F1-5任何一个程序都必须有而且只能有一个main()函数。 (1分)T         F1-6C语言程序是从源文件的第一条语句开始执行的。 (1分)T         F1-7C语言中的所有语句都必须以分号结束。 (1分)T     &

2、#160;   F1-10以下程序段符合C语言语法。k = 1;int k; (1分)T         F1-11C程序中定义的变量,代表内存中的一个存储单元。 (1分)T         F1-12在C语言中,单目运算符需要2个操作数。 (1分)T         F1-13若变量定义为int fahr;,则5(fahr-32)/9是符合C语言语法的表达式。 (1

3、分)T         F1-14若变量定义为double x;,则x % 2是符合C语言语法的表达式。 (1分)T         F1-15若变量定义为int n;,当n的绝对值大于1时,则表达式1/n的值恒为 0。 (1分)T         F1-17若变量定义为int x, y; ,则x + y = 22是符合C语言语法的表达式。 (1分)T  

4、      F1-18假设赋值运算符的优先级比算术运算符高,执行以下程序段后,n的值为10。int n; n = 10 + 2;(1分)T         F HW031-4如果变量已经正确定义,则执行以下程序段后,x的值不变。if (x = 20) y = 1; else y = 0; (1分)T         F1-7执行以下程序段,输入10,输出10.00。double x; scanf("%d", &

5、;x); printf("%.2f", x); (1分)T         F1-8执行以下程序段,输入20,输出20.00。double x; scanf("%f", &x); printf("%.2f", x); (1分)T         F1-9执行以下程序段,输入30,输出30.00。double x; scanf("x=%lf", &x); printf("%

6、.2f", x); (1分)T         F1-11执行以下程序段,输入1001 3 0.025,输出1001#3#0.025。int money, year; double rate; scanf("%d %lf %d ", &money, &year, &rate); printf("%d#%d#%.3f", money, year, rate); (1分)T         F1-14如果变

7、量已经正确定义,则表达式fahr + 与fahr + 1等价。 (1分)T         F1-15for语句的一般形式如下,其中的表达式1只执行一次。for (表达式1; 表达式2; 表达式3) 循环体语句 (1分)T         F1-16for语句的一般形式如下,若表达式2的值为“假”,则结束循环。for (表达式1; 表达式2; 表达式3) 循环体语句 (1分)T         F

8、1-18C程序中,用一对大括号括起来的多条语句称为复合语句,复合语句在语法上被认为是一条语句。 (1分)T         F1-19循环体如包括有一个以上的语句,则必须用一对大括号括起来,组成复合语句,复合语句在语法上被认为是一条语句。 (1分)T         F1-20在C语言中,仅由一个分号(;)构成的语句称为空语句,它什么也不做。 (1分)T         F1-21执行以

9、下程序段,sum的值是55。int i, sum;for (i = 1; i <= 10; i+) sum = sum + i;(1分)T         F1-22以下程序段的功能是计算20的阶乘。int i;double product;product = 0;for (i = 1; i <= 20; i+) product = product * i;(1分)T         F1-23执行以下程序段,sum的值是1.5。int i, sum;sum =

10、0;for (i = 1; i <= 2; i+) sum = sum + 1.0/i;(1分)T         F1-24执行以下程序段,sum的值是0.75。int i;double sum;sum = 0;for (i = 2; i <= 4; i = i + 2) sum = sum + 1/i;(1分)T         F2-1以下程序段( )的功能是计算序列 1 + 1/2 + 1/3 + . 的前N项之和。 (2分)A.int i, n

11、, sum;scanf("%d", &n);sum = 0;for (i = 1; i <= n; i+) sum = sum + 1.0/i;B.int i, n;double sum;scanf("%d", &n);for (i = 1; i <= n; i+) sum = sum + 1.0/i;C.int i, n;double sum;scanf("%d", &n);sum = 0;for (i = 1; i <= n; i+) sum = sum + 1.0/i;D.E. int

12、i, n;F. double sum;G. scanf("%d", &n);H. sum = 0;I. for (i = 1; i <= n; i+)J. sum = sum + 1/i;K. L.M. int i, n;N. double sum;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;dou

13、ble product;scanf("%d", &n);product = 0;for (i = 1; i <= n; i+) product = product * i;B.int i, n, product;scanf("%d", &n);product = 1;for (i = 1; i <= n; i+) product = product * i;C.int i, n;double product;scanf("%d", &n);for (i = 1; i <= n; i+) pro

14、duct = product * i;D.int i, n;double product;scanf("%d", &n);product = 1;for (i = 1; i <= n; i+) product = product * i;4-2执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。int fahr;double celsius; for (fahr = 91 ; fahr <= 100; fahr+) celsius = 5.0 * (fahr - 32) / 9.0; /* 语句 */ printf(&quo

15、t;%4d%6.1fn", fahr, celsius); /* 语句 */语句执行了 (1分) 次语句执行了 (1分) 次循环体语句共执行了 (1分) 次当循环结束时,变量fahr的值是 (1分)HW041-1if-else语句的一般形式如下,其中的语句1、语句2只能是一条语句。if (表达式) 语句1else 语句2 (1分)T         F1-4为了检查以下省略else的if语句的分支是否正确,至少需要设计3组测试用例,即grade的取值至少有

16、三组(小于、大于、等于60)。if(grade < 60) printf("Failn"); (1分)T         F1-7如果变量已经正确定义,则执行以下程序段后,x的值不变。x = 4; if (x < 0) y = -1;else if (x = 0) y = 0;else y = 1; (1分)T         F1-8为了检查以下嵌套的if语句的三个分支是否正确,至少需要设计3组测试用例,即yournumber的取值至少有3组

17、(大于、小于、等于mynumber)。if(yournumber = mynumber) printf("Good Guess!n");else if(yournumber > mynumber ) printf("Too big!n");else printf("Too small!n");(1分)T         F1-9为了检查以下else-if语句的三个分支是否正确,至少需要设计5组测试用例,即x的取值至少有五组(小于0的数、0、大于0且小于15的数、15和大

18、于15的数)。if (x < 0) y = 0;else if (x <= 15) y = 4 * x / 3; else y = 2.5 * x - 10.5; (1分)T         F1-10C语言中的字符常量指单个字符,用一对单引号及其所括起的字符来表示。 (1分)T         F1-11C语言中,字符型数据的值就是其在ASCII字符集中的次序值,即ASCII码。 (1分)T      

19、   F1-12C语言中,每个字符型数据在ASCII字符集中都有一个惟一的次序值,即ASCII码。 (1分)T         F1-13C语言中,数字字符'1'的值(ASCII码)就是数字1。 (1分)T         1-14C语言中,数字字符 '0','1','2','9' 的ASCII码按降序连续排列。 (1分)T&#

20、160;        F1-15C语言中,大写字母'A','B','C','Z'的ASCII码按升序连续排列。 (1分)T         F1-17C语言中,大小写字母'A','B','C','Z','a','b','c','z'的ASCII码按升序连续排列。 (1分)T&

21、#160;        F1-18C语言中,大写字母'M'的ASCII码值比小写字母'm'的ASCII码值大。(1分)T         F1-19C语言中,小写字母'a'的ASCII码值是大写字母'Z'的ASCII码值加1。 (1分)T         F1-20以下C语言表达式的值为“真”。'D' - 'A' = &

22、#39;d' - 'a'(1分)T         F1-21C语言中不能用printf函数输出字符。 (1分)T         F1-22C语言中不能用scanf函数输入字符。 (1分)T         F1-23执行语句putchar('S');后,在屏幕上显示的输出结果是'S'。 (1分)T   

23、60;     F1-24设变量已正确定义,执行以下程序段,顺序输入三个字符'Q',则输出Q。 (1分)T         Fch = getchar(); putchar(ch); 1-25设变量已正确定义,执行以下程序段,顺序输入三个字符'k',则输出k。 (1分)T         Fscanf(“%c%c%c”, &ch1, &ch2, &ch3); printf

24、(“%c”, ch2); 1-26为了检查以下else-if语句的三个分支是否正确,至少需要设计63组测试用例,即ch的取值至少有63组(52个大小写英文字母、10个数字字符、其他字符)。if(ch >= 'a' && ch <= 'z' ) | ( ch >= 'A' && ch <= 'Z') letter +;else if(ch >= '0' && ch <= '9') digit +; else other

25、 +;(1分)T         F1-27对于如下的switch语句(使用break)的一般形式,其执行流程是:首先求解表达式,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的相应语句段;如果表达式的值与任何一个常量表达式的值都不相等,则执行 default 后的语句段,最后执行break语句,跳出switch语句。switch (表达式) case 常量表达式1: 语句段1; break; case 常量表达式2: 语句段2; break; case 常量表达式n: 语句段n; break; default: 语句段

26、n+1; break;(1分)T         F1-28在switch语句中,每一个的case常量表达式的值可以相同。 (1分)T         F1-29在switch语句中,必须使用default。 (1分)T         F1-30设变量已正确定义,以下是合法的switch语句。switch(choice) case choice = 1: price = 3.0; break;

27、case choice = 2: price = 2.5; break; case choice = 3: price = 4.0; break; case choice = 4: price = 3.5; break; default: price = 0.0; break;(1分)T         F1-31对于如下switch语句(不使用break)的一般形式,其执行流程是:首先求解表达式,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的所有语句段,如果表达式的值与任何一个常量表达式的值都不相等,则执行 defa

28、ult 后的所有语句段。switch (表达式) case 常量表达式1: 语句段1; case 常量表达式2: 语句段2; case 常量表达式n: 语句段n; default:语句段n+1; (1分)T         F1-32case语句后如没有break,顺序向下执行。 (1分)T         F1-33在switch语句中,可以根据需要使用或不使用break语句。 (1分)T        

29、 F2-1设变量已正确定义,为了检查以下else-if语句的分支是否正确,至少需要设计( )组测试用例。if(op = '+') printf("=%.2fn", value1 + value2);else if(op = '-') printf("=%.2fn", value1 - value2);else if(op = '*') printf("=%.2fn", value1 * value2);else if(op = '/') if(value2 !=

30、 0) printf("=%.2fn", value1 / value2); else printf("Divisor can not be 0!n"); else printf("Unknown operator!n");(2分)A. 7B. 6C. 5D. 42-2设变量已正确定义,以下( )与其它switch语句不等价。 (2分)A.switch(choice) case 1: price = 3.0; break; case 2: price = 2.5; break; case 3: price = 4.0; br

31、eak; case 4: price = 3.5; break; default: price = 0.0; break;B.switch(choice) default: price = 0.0; break; case 4: price = 3.5; break; case 3: price = 4.0; break; case 2: price = 2.5; break; case 1: price = 3.0; break; C.D. switch(choice) E. case 1: price = 3.0; break; F. case 2: price = 2.5; break;

32、G. case 3: price = 4.0; break;H. case 4: price = 3.5; break;I. J.K. price = 0.0; L. switch(choice) M. case 1: price = 3.0; break; N. case 2: price = 2.5; break;O. case 3: price = 4.0; break;P. case 4: price = 3.5; break;Q. 2-3设变量已正确定义,以下( )与其它switch语句不等价。 (2分)A.switch(op) case '+': prin

33、tf("%dn", value1 + value2); break; case '-': printf("%dn", value1 - value2); break; case '*': printf("%dn", value1 * value2); break; default: printf("Errorn"); break;B.C. switch(op)D. default: printf("Errorn"); break;E. case '*

34、9;: printf("%dn", value1 * value2); break;F. case '-': printf("%dn", value1 - value2); break;G. case '+': printf("%dn", value1 + value2); break;H. I.if(op != '+' && op != '-' && op != '*') printf("Errorn"

35、);else switch(op) case '+': printf("%dn", value1 + value2); break; case '-': printf("%dn", value1 - value2); break; case '*': printf("%dn", value1 * value2); break; J.K. switch(op)L. case '+': printf("%dn", value1 + value2); bre

36、ak;M. case '-': printf("%dn", value1 - value2); break;N. case '*': printf("%dn", 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

37、语句B. 在switch语句中必须使用defaultC. break语句必须与switch语句中的case配对使用D. 在switch语句中,不一定使用break语句2-7有一函数 y=101x>0x=0x<0 ,以下程序段中错误的是()。 (2分)A.B. if(x > 0) y = 1;C. else if(x = 0) y = 0;D. else y = -1;E.F. y = 0;G. if(x > 0) y = 1;H. else if(x < 0) y = -1;I.J. y = 0;K. if(x >= 0);L.

38、 if(x > 0) y = 1;M. else y = -1; if(x >= 0)if(x > 0) y = 1;else y = 0;else y = -1;2-8下列程序段的输出结果是()。 (2分)int main(void) int a = 2, b = -1, c = 2; if(a < b) if(b < 0) c = 0; else c+; printf("%dn",c); return 0;A. 0B. 1C. 2D. 32-9下列程序段的输出结果是 ()。 (2分)int main(void) int

39、x = 1, a = 0, b = 0; switch(x) case 0: b+; case 1: a+; case 2: a+; b+; printf("a=%d,b=%dn",a,b); return 0;A. a=2,b=1B. a=1,b=1C. a=1,b=0D. a=2,b=22-10在执行以下程序时,为使输出结果为:t=4,则给a和b输入的值应满足的条件是()。 (2分)int main(void) int a,b,s,t; scanf("%d,%d",&a,&b); s = 1; t = 1; if(a >

40、; 0) s = s + 1; if(a > b) t = s + t; else if(a = b) t = 5; else t = 2 * s; printf("t=%dn",t); return 0;A. a>bB. a<b<0C. 0<a<bD. 0>a>b3-1C语言中,以下( )是合法的字符常量。 (2分)A. 'A'B. 'z'C. '0'D. '$'E. "a"Switch 后的常量表达式必须为整型或字符型,不能是浮点

41、型3-2设变量已正确定义,以下()是合法的switch语句。 (2分)A.switch(choice) case 1: price = 3.0; break; case 2: price = 2.5; break; case 3: price = 4.0; break; case 4: price = 3.5; break; case 1: price = 3.0; break; default: price = 0.0; break;B.switch(choice) case 1: price = 3.0; break; case 2+2: price = 3.5; break;C

42、.D. switch(9) E. case 3: price = 4.0; break;F. case 2: price = 2.5; break;G. H.I. switch(choice* choice+1) J. default: price = 0.0; break;K. case 2: price = 2.5; break;L. 3-3设变量已正确定义,以下()是合法的switch语句。 (2分)A.B. switch(op)C. default: printf("Errorn"); break;D. E.switch(op) case '*&#

43、39;: printf("%dn", value1 * value2); break; case '+': printf("%dn", value1 + value2); break; case '-': printf("%dn", value1 - value2); break; case '*': printf("%dn", value1 * value2); break; default: printf("Errorn"); break;F.

44、switch('/') case '*': printf("%dn", value1 * value2); break; case '-': printf("%dn", value1 - value2); break; case '+': printf("%dn", value1 + value2); break; default: printf("Errorn"); break;G. 对的!switch(op+1) default: printf(&

45、quot;Errorn"); break; case '*': printf("%dn", value1 * value2); break; case '+': printf("%dn", value1 + value2); break;H.switch(op) case op = '+': printf("%dn", value1 + value2); break; default: printf("Errorn"); break;可以改成+ 或者数字43

46、 (+对应的ASCII码) +与43一个样3-4设变量已正确定义,选项( )与以下程序段不等价。 (2分)switch(choice) case 1: price = 3.0; case 2: price = 2.5; default: price = 0.0; A.switch(choice) default: price = 0.0; case 2: price = 2.5; case 1: price = 3.0; B.price = 0.0;switch(choice) case 1: price = 3.0; case 2: price = 2.5; C.if(choice

47、 = 1) price = 3.0; price = 2.5; price = 0.0;else if(choice = 2) price = 2.5; price = 0.0;else price = 0.0; 3-5设变量已正确定义,选项( )与以下程序段不等价。 (2分)switch(op) case '+': printf("%d", value1 + value2); default: printf("Error"); case '-': printf("%d", value1 -

48、value2); A.B. if(op = '+')C. printf("%d", value1 + value2); D. printf("Error");E. else if(op != '-')F. printf("Error");G. H. printf("%d", value1 - value2);I.if(op = '+') printf("%d", value1 + value2); printf("Error")

49、; printf("%d", value1 - value2);else if(op = '-') printf("%d", value1 - value2);else printf("Error"); printf("%d", value1 - value2);J.if(op = '+') printf("%d", value1 + value2); else if(op = '-') printf("%d", value1

50、- value2);else printf("Error");K.switch(op) case '+': printf("%d", value1 + value2); case '-': printf("%d", value1 - value2); default: printf("Error"); 3-6设变量已正确定义,选项( )与以下程序段等价。 (2分)switch (ch) case '-': minus+; break; case '0

51、' : case '1' : case '2' : case '3' : case '4' : case '5' : case '6' : case '7' : case '8' : case '9' : digit +;break; default: other +; break; A.B. if(ch = '-')C. minus+; D. else if(ch >= '5' && ch

52、 <= '9')E. digit +;F. else G. other +;H. I.switch (ch) default: other +; break; case '-': minus+; break; case '0' : case '1' : case '2' : case '3' : case '4' : case '5' : case '6' : case '7' : case '8' : case

53、'9' : digit +;break; J.K. if(ch = '-')minus+; else if(ch >= '0' && ch <= '9') digit +;else other +;L.switch (ch) case '0' : case '1' : case '2' : case '3' : case '4' : case '-': minus+; break; case '5&#

54、39; : case '6' : case '7' : case '8' : case '9' : digit +;break; default: other +; break; 3-7设变量已正确定义,选项( )与以下程序段不等价。 (2分)if (x < 2) if (x < 1) y = x + 1; else y = x + 2;A.B. if(x >= 2)C. y = x + 2;D. else if (x < 1) E. y = x + 1; F.G. if (x < 2)H.

55、 if (x < 1) y = x + 1; I. else y = x + 2;J.K. if (x < 2) L. if (x < 1) M. y = x + 1; N. else O. y = x + 2;P. Q. R.if (x < 2) if (x < 1) y = x + 1; else;else y = x + 2;3-9设变量已正确定义,以下()是合法的C语句。 (2分)A.B. if ( n <= 10 );C.D. switch ( k ) E. case 1: printf("one"); break;F

56、. case 2: printf("two"); break;G. case 1: printf("one"); break;H. default: printf("zero"); break;I. J.K. switch ( k%2 ) L. default: printf("zero"); break;M. case 1: printf("one");N. case 1+1: printf("two"); O. P.n = 10;switch ( k ) case n%3

57、: printf("one"); case n%4: printf("two"); default: printf("zero"); n%3不能在常量表达式区域出现3-10判断ch是数字字符的C语言表达式是( ) 。 (2分)A.B. '0' <= ch <= '9'C.D. ch >= '0' && ch <= '9'E.F. ch >= '1' && ch <= '1

58、0'G.H. ! (ch < '0' | ch > '9')3-11设变量已正确定义,以下程序段( ) 的功能是交换变量x和y的值。 (2分)A.B. temp = x; x = y; y =temp;C.D. x = y; y = x;E.F. y = x; x = y;G.x = x + y; y = x - y; x = x y;4-3写出以下程序段的运行结果。请注意,直接填单词、字符或者两者的组合,前后不要加空格等任何其他字符。double grade; scanf ("%lf", &grade)

59、; if(grade < 60); printf("Fail"); printf("?"); 输入50,输出(1分)输入60,输出(1分)输入90,输出(1分)4-5写出以下程序段的运行结果。请注意,直接填单词,前后不要加空格等任何其他字符。mynumber = 38;scanf ("%d", &yournumber); if(yournumber = mynumber) printf("Right");if(yournumber > mynumber ) printf("Big&qu

60、ot;);else printf("Small");输入20,输出(1分)输入50,输出(1分)输入38,输出(1分)4-6C语言中,数字字符'1'的值(ASCII码)就是数字字符'0'的值加(1分) 。请注意,直接填数字,前后不要加空格等任何其他字符。4-7C语言中,小写字母'z'的值(ASCII码)就是小写字母'a'的值加(1分) 。请注意,直接填数字,前后不要加空格等任何其他字符。4-8C语言中,大写字母'D'的值(ASCII码)就是大写字母'A'的值加

61、(1分) 。请注意,直接填数字,前后不要加空格等任何其他字符。4-9写出以下程序段的运行结果。请注意,直接填数字,前后不要加空格等任何其它字符。int choice;double price;scanf("%d", &choice);switch(choice) case 1: price = 3.0; break; case 2: price = 2.5; break; case 3: price = 4.0; break; case 4: price = 3.5; break; default: price = 0.0; break;printf(&q

62、uot;%0.1f", price); /0 表示宽度为0,若超出则按照实际宽度/输入1,输出(1分)输入2,输出(1分)输入3,输出(1分)输入4,输出(1分)输入10,输出(1分)4-11写出以下程序段的运行结果。请注意,直接填数字,前后不要加空格等任何其他字符。int choice;double price;scanf("%d", &choice);switch(choice) case 1: price = 3.0; case 2: price = 2.5; default: price = 0.0; printf("%0.1f", price); 输入1,输出 (1分)输入3,输出 (1分)输入10,输出 (1分)4-12写出以下程序段的运行结果。请注意,直接填数字、单词或者两者的组合,前后不要加空格等任何其他字符。char op;int value1, value2;scanf("%d%c%d", &value1, &op, &value2);switch(op) case '+': printf("%d", value1 + value2); default: printf("Error&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论