您的位置:首页 > 党团工作党团工作
PTA理论考部分
2025-08-29人已围观
PTA理论考部分
HW02 1-3 #include <stdio、h>; 就是编译预处理命令。
(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; int k;
(1 分) T
F 1—11 C 程序中定义得变量,代表内存中得一个存储单元。
(1 分)
T
F 1—12 在 C 语言中,单目运算符需要2个操作数。
(1 分)
T
F 1-13 若变量定义为 int fahr; ,则 5(fahr-32)/9 就是符合 C 语言语法得表达式。
(1分) T
F 1-14 若变量定义为 double x; ,则 x % 2 就是符合 C 语言语法得表达式. (1 分) T
F 1—15 若变量定义为 int n; ,当 n 得绝对值大于1时,则表达式 1/n 得值恒为 0. (1 分) T
F 1—17 若变量定义为 int x, y;
,则 x + y=22 就是符合C语言语法得表达式。
(1分)
T
F 1-18 假设赋值运算符得优先级比算术运算符高,执行以下程序段后,n得值为 10。
int n;
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 . double x;
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 . double x;
scanf(”x=%lf", &x);
printf(”%、2f", x);
(1 分)
T
F 1-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
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 得阶乘. int i; double product; product=0; for (i=1; i <=20; i++){
product=product * i; } (1 分)
T
F 1—23 执行以下程序段,sum 得值就是1、5. int i, sum; sum = 0; for (i=1; i <=2; i++){
sum=sum + 1、0/i; } (1 分)
T
F 1-24 执行以下程序段,sum得值就是 0、75。
int i; double sum; 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.
int i, n, 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 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; double 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++){
product=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(”%4d%6、1f
”, 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; }else if (x=0){
y=0; }else{
y = 1; }
(1 分) T
F 1-8
为了检查以下嵌套得 if 语句得三个分支就是否正确,至少需要设计 3 组测试用例,即 yournumber 得取值至少有3组(大于、小于、等于 mynumber ). if(yournumber==mynumber){
printf("Good Guess!
”); }else if(yournumber > mynumber ){
printf(”Too big!
"); }else{
printf("Too small!
"); } (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 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 1 -2 2 6
为了检查以下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 ++; (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 1— — 28 8
在s wit ch语句中,每一个得 cas e常量表达式得值可以相同。
(1分)
T
F 1—29 在 switch 语句中,必须使用 default。
(1 分) T
F 1—30 设变量已正确定义,以下就是合法得switch 语句. switch(choice){
case choice==1:
price=3、0; break;
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
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); }else if(op=='*’){
printf(”=%、2f
”, value1 * value2); }else if(op =='/"){
if(value2 !=0){
printf("=%、2f
", value1 / value2);
}else{
printf("Divisor can not be 0!\n");
} }else{
printf("Unknown operator!\n"); } (2 分)
A. 7 B. 6 C. 5 D. 4 2-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;
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; 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 ’+":
printf(”%d\n”, value1 + value2); break;
case ’-': printf("%d\n", value1 - value2); break;
case ’*’:
printf(”%d
", value1 * value2); break;
default: printf(”Error
"); break; } B.
C. switch(op){ D.
default:
printf("Error\n"); break; E.
case "*":
printf("%d
", value1 * value2); break; F.
case "—': printf(”%d\n", value1 - value2); break; G.
case ’+’:
printf("%d
", value1 + value2); break; H. } I.
if(op != ’+" && op !="—' && op != "*"){
printf(”Error
”); }else{
switch(op){
case ’+’: printf("%d\n”, value1 + value2); break;
case '—": printf("%d
", 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
", 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. 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. 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(”%d\n”,c); ?
return 0; } A. 0 B. 1
C. 2 D. 3 2-9 下列程序段得输出结果就是 (). (2分)
int main(void)
{
int x = 1, a=0, b=0;
switch(x)
{
case 0:
b++;
case 1:
a++;
case 2:
a++; b++; ?
}
printf("a=%d,b=%d
",a,b);
return 0; } A. a a =2 2 , b=1
B. a=1,b=1 C. a=1,b=0 D. a=2,b=2 2-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 > 0)
s=s + 1;
if(a > b) t=s + t;
else if(a ==b) t = 5;
else t=2 * s;
printf("t=%d\n",t);
return 0; } A. a>b B. a<b<0 C. 0<a〈b D. 0〉a〉b 3 3- -1 1
C语言中,以下( )就是合法得字符常量。
(2 分)
A. 'A'
B. "z'
C. '0’
D. "$"
E. "a"
S S wi tch 后得常量表达式必须为整型或字符型,不能就是 浮点型
3 3 -2 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.
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- -3 3
设变量已正确定义,以下()就是合法得switch 语句。
(2分)
A.
B. switch(op){ C.
default:
printf("Error
"); break; D. } E.
switch(op){
case '*':
printf(”%d\n", value1 * value2); break;
case "+’:
printf(”%d\n”, value1 + value2); break;
case "—": printf(”%d\n”, value1 — value2); break;
case "*": printf(”%d\n”, value1 * value2); break;
default:
printf("Error
"); break; } F.
switch('/’){
case "*":
printf(”%d\n”, value1 * value2); break;
case ’—’:
printf(”%d\n”, value1 - value2); break;
case '+’:
printf("%d
”, value1 + value2); break;
default: printf("Error\n”); break; } G. 对得!!! switch(op+1){
default: printf("Error
”); break;
case "*":
printf("%d\n”, value1 * value2); break;
case "+":
printf("%d
", value1 + value2); break; } H.
switch(op){
case op=="+’:
printf("%d
", value1 + value2); break;
default: printf(”Error
”); break; } 可以改成’+’ 或者数字43
(‘+"对应得 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== 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 - 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");
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 — 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’ :
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 〈= ’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 "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’ :
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.
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.
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: printf("one");
case n%4:
printf(”two”);
default:
printf("zero");
} n n %3 3 不能在常量表达式区域出现
3-10 判断ch 就是数字字符得 C 语言表达式就是( )
。
(2分)
A.
B. "0’ <=ch <='9’
C.
D. ch >=’0' && ch <="9" E.
F. ch 〉="1" && ch <=’10" ?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);
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"); }else{
printf("Small”); } 输入 20 ,输出(1 分)入输? 50 ,输出(1 分)入输? 38 ,输出(1 分)
4—6 C 语言中,数字字符 "1' 得值(ASCII 码)就就是数字字符 "0' 得值加(1分) 。
请注意,直接填数字,前后不要加空格等任何其她字符. 4—7 C 语言中,小写字母 "z' 得值(ASCII码)就就是小写字母 'a’ 得值加(1分) 。
请注意,直接填数字,前后不要加空格等任何其她字符。
4—8
C语言中,大写字母 ’D' 得值(ASCII码)就就是大写字母 'A' 得值加(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(”%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 4- - 12 2
写出以下程序段得运行结果。请注意,直接填数字、单词或者两者得组合,前后不要加空格等任何其她字符. char op; int value1, value2; scanf(”%d%c%d", &value1, &op, &value2);
switch(op){
case '+’: printf("%d", value1 + value2);
default:
printf(”Error”);
case '-’: printf("%d", value1 - value2);
} 输入 11+1 ,输出(1 分)
12Error10入输? 14-5 ,输出(1 分)
输入 10$100 ,输出(1 分)
Error—90 b b r eak 就是大坑!
4-14 写出以下程序段得运行结果.请注意,直接填数字,前后不要加空格等任何其她字符。
char ch; int digit, i,
minus, other;
digit = minus=other=0; for(i=1; i <= 5; i++){
ch = getchar();
switch (ch){
case '0’ :
case '1’ :
case ’2' :
case ’3' :
case ’4" :
case ’-’:
;kaerb ;++sunim?
case "5’ :
case "6" : case "7" :
case "8’ : case '9" :
digit ++;break;
default:
;kaerb ;++ rehto?
}
} 输入 R-e-d ,digit 得值就是(1分),minus得值就是(1 分) ,other 得值就是(1分)
输入 1+4-5 ,digit 得值就是(1 分),minus 得值就是(1分),other 得值就是(1 分)
输入 167or ,digit得值就是(1分) ,minus得值就是(1 分)
,other 得值就是(1分)
4—15 对于如下嵌套得 if – else 语句,在空格中填上 True 或者 False 。请注意,直接填单词(区分大小写),前后不要加空格等任何其她字符。
if(表达式 1)
if(表达式2)语句 1;
else
if(表达式 3)语句 2;
else
语句 3;
当 表达式 1 为(1 分)
且 表达式 2 为(1 分)
时,执行 语句 1 ; 当 表达式 1 为(1 分)
且 表达式 2 为 (1 分) 且 表达式 3 为(1 分) 时,执行 语句2 ; 当 表达式 1 为(1 分)
且 表达式 2 为(1分)
且 表达式3 为(1 分)
时,执行 语句 3 . 4-16
写出以下程序段 A 与程序段 B 得运行结果。请注意,直接填字母、单词或者两者得组合,前后不要加空格等任何其她字符。
/* 程序段 A */ for( i=1; i < 7; i++){
scanf("%d", &score);
score = score/10;
switch(score) {
case 10:
case 9: case 8: case 7: case 6:
grade = "P"; break; ?
default:
grade=’F’; break;
}
putchar(grade); } printf("Thanks"); 输入 100 90 50 82 72 69 , 输出(1 分) for( i = 1; i 〈 7; i++){
scanf(”%d", &score);
score=score/10;
switch(score)
{
case 10: case 9:
case 8: case 7: case 6:
grade="P'; break;
default:
grade="F"; break;
putchar(grade);
} } printf(”Thanks”); 输入 100 90 50 82 72 69 , 输出(1分) . 4 4 - 17
写出以下程序段 A 与程序段B得运行结果。请注意,直接填字母,前后不要加空格等任何其她字符。
/* 程序段 A */ char grade; int i, score; for( i = 1; i < 6; i++){
scanf("%d", &score);
score=score/10;
switch(score)
{
case 10:
case 9:
case 8:
grade = ’A’; break;
case 7: grade='P’; break;
default:
grade='F"; break;
}
putchar(grade); } 输入 100 90 82 72 69 , 输出(1 分)
AAAPF
char gameover;
int player;
;)(rahcteg = revoemag?
;)reyalp& ,"d%”(fnacs?
) "N’== revoemag ( fi?
;)"nrut yM"(ftnirp ) 1 ==reyalp ( fi?
;)"nrut ruoY"(ftnirp esle? else
;)”REVO EMAG"(ftnirp?输入 N1 ,输出(1 分)
输入 N2 ,输出(1 分)入输? Y1 ,输出(1分) count=0; scanf ("%d”, &number); t_number=number; if(t_number < 0)
{
t_number=-t_number;
}
do{
?
count++;
t_number = t_number / 10; }while(t_number !=0); 执行程序段 A,输入 -1003
count得值就是(1分)
number 得值就是(1 分) t_number 得值就是(1 分)
4-8 若变量已正确定义,写出执行以下程序段后变量得值.请注意,直接填数字,前后不要加空格等任何其她字符。
/* 程序段 A */ count=0; scanf (”%d", &number); t_number=number; if(t_number < 0)
{
t_number = —t_number;
}
do{
count++;
t_number=t_number / 10; }while(t_number !=0); 执行程序段 A,输入 0 ,count 得值就是(1 分) /* 程序段 B */ count=0; scanf (”%d”, &number); t_number=number; if(t_number < 0)
{
t_number=-t_number;
}
while(t_number != 0){
count++;
t_number=t_number / 10; }; 执行程序段 B,输入 0 ,count 得值就是(1分) 4—9 若变量已正确定义,写出以下程序段得运行结果。
count=0; s=0; new_number=0; scanf ("%d”, &number); t_number=number; if(t_number 〈 0)
{
t_number=-t_number;
}
do{
digit = t_number % 10;
s = s + digit;
new_number=new_number * 10 + digit;
count++;
printf("%d#%d#%d#%d
", count, digit, s, new_number);
t_number=t_number / 10; }while(t_number !=0); 输入 907
第 1 行输出(1 分) 第2行输出(1 分) 第3行输出(1 分) 4-10
若变量已正确定义,写出执行以下程序段后变量得值。请注意,直接填数字,前后不要加空格等任何其她字符。
s = 0; scanf ("%d", &number); t_number = number; if(t_number < 0) {
t_number = -t_number;
}
do{
t_number=t_number / 10;
digit=t_number % 10;
s=s + digit; }while(t_number !=0); 输入 259 ,s 得值就是(1 分)
输入 9 ,s得值就是(1分)
5-2 请写出与以下 for 语句等价得while 语句. for (fahr=lower; fahr〈=upper; fahr++){
celsius=(5、0 / 9、0)
* (fahr - 32);
printf("%4d%6、1f\n", fahr, celsius); }
(2分)
while (fahr<= upper){
(2 分)
printf("%4d%6、1f
", fahr, celsius);
(2 分) }
5—3 请将程序段 B 补充完整,使其与程序段A等价. /* 程序段A */ flag = 1; denominator=1;
item = 1、0;
pi=0;
while(fabs(item) 〉= 0、0001){
item=flag * 1、0 / denominator;
pi=pi + item;
flag=-flag;
denominator=denominator + 2; } pi = pi * 4;
/* 程序段 B */ flag=1;
denominator=1; item=1、0;
pi=0; while(fabs(item)
>=0、0001){
(2 分)
flag=—flag;
denominator=denominator + 2;
(2 分)
} (2 分)
pi=pi * 4;
不满足,额外再加上一次
A 得 item在前面,算了直接加,在判断
B 得item先判断,再决定就是否加上 最后一个没加,循环结束后应该加上 HW06 1-1 以下两个程序段等价,其功能就是计算 s=1+2+、、、+10 。
s=0; i=1; while(i 〈=10){
if(i % 2 ==0){
continue;
}
s = s + i;
i++; } (1分)
T
F
1-9 在以下程序段中,若变量已正确赋值,当条件 i 〈=limit 不满足(即 i 〉 limit )或者条件 m % i== 0 满足时,循环结束。
int i, limit, m; for(i = 2; i <=limi...
相关热词搜索:
理论
PTA
HW02 1-3 #include <stdio、h>; 就是编译预处理命令。
(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; int k;
(1 分) T
F 1—11 C 程序中定义得变量,代表内存中得一个存储单元。
(1 分)
T
F 1—12 在 C 语言中,单目运算符需要2个操作数。
(1 分)
T
F 1-13 若变量定义为 int fahr; ,则 5(fahr-32)/9 就是符合 C 语言语法得表达式。
(1分) T
F 1-14 若变量定义为 double x; ,则 x % 2 就是符合 C 语言语法得表达式. (1 分) T
F 1—15 若变量定义为 int n; ,当 n 得绝对值大于1时,则表达式 1/n 得值恒为 0. (1 分) T
F 1—17 若变量定义为 int x, y;
,则 x + y=22 就是符合C语言语法得表达式。
(1分)
T
F 1-18 假设赋值运算符得优先级比算术运算符高,执行以下程序段后,n得值为 10。
int n;
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 . double x;
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 . double x;
scanf(”x=%lf", &x);
printf(”%、2f", x);
(1 分)
T
F 1-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
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 得阶乘. int i; double product; product=0; for (i=1; i <=20; i++){
product=product * i; } (1 分)
T
F 1—23 执行以下程序段,sum 得值就是1、5. int i, sum; sum = 0; for (i=1; i <=2; i++){
sum=sum + 1、0/i; } (1 分)
T
F 1-24 执行以下程序段,sum得值就是 0、75。
int i; double sum; 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.
int i, n, 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 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; double 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++){
product=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(”%4d%6、1f
”, 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; }else if (x=0){
y=0; }else{
y = 1; }
(1 分) T
F 1-8
为了检查以下嵌套得 if 语句得三个分支就是否正确,至少需要设计 3 组测试用例,即 yournumber 得取值至少有3组(大于、小于、等于 mynumber ). if(yournumber==mynumber){
printf("Good Guess!
”); }else if(yournumber > mynumber ){
printf(”Too big!
"); }else{
printf("Too small!
"); } (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 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 1 -2 2 6
为了检查以下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 ++; (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 1— — 28 8
在s wit ch语句中,每一个得 cas e常量表达式得值可以相同。
(1分)
T
F 1—29 在 switch 语句中,必须使用 default。
(1 分) T
F 1—30 设变量已正确定义,以下就是合法得switch 语句. switch(choice){
case choice==1:
price=3、0; break;
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
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); }else if(op=='*’){
printf(”=%、2f
”, value1 * value2); }else if(op =='/"){
if(value2 !=0){
printf("=%、2f
", value1 / value2);
}else{
printf("Divisor can not be 0!\n");
} }else{
printf("Unknown operator!\n"); } (2 分)
A. 7 B. 6 C. 5 D. 4 2-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;
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; 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 ’+":
printf(”%d\n”, value1 + value2); break;
case ’-': printf("%d\n", value1 - value2); break;
case ’*’:
printf(”%d
", value1 * value2); break;
default: printf(”Error
"); break; } B.
C. switch(op){ D.
default:
printf("Error\n"); break; E.
case "*":
printf("%d
", value1 * value2); break; F.
case "—': printf(”%d\n", value1 - value2); break; G.
case ’+’:
printf("%d
", value1 + value2); break; H. } I.
if(op != ’+" && op !="—' && op != "*"){
printf(”Error
”); }else{
switch(op){
case ’+’: printf("%d\n”, value1 + value2); break;
case '—": printf("%d
", 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
", 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. 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. 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(”%d\n”,c); ?
return 0; } A. 0 B. 1
C. 2 D. 3 2-9 下列程序段得输出结果就是 (). (2分)
int main(void)
{
int x = 1, a=0, b=0;
switch(x)
{
case 0:
b++;
case 1:
a++;
case 2:
a++; b++; ?
}
printf("a=%d,b=%d
",a,b);
return 0; } A. a a =2 2 , b=1
B. a=1,b=1 C. a=1,b=0 D. a=2,b=2 2-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 > 0)
s=s + 1;
if(a > b) t=s + t;
else if(a ==b) t = 5;
else t=2 * s;
printf("t=%d\n",t);
return 0; } A. a>b B. a<b<0 C. 0<a〈b D. 0〉a〉b 3 3- -1 1
C语言中,以下( )就是合法得字符常量。
(2 分)
A. 'A'
B. "z'
C. '0’
D. "$"
E. "a"
S S wi tch 后得常量表达式必须为整型或字符型,不能就是 浮点型
3 3 -2 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.
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- -3 3
设变量已正确定义,以下()就是合法得switch 语句。
(2分)
A.
B. switch(op){ C.
default:
printf("Error
"); break; D. } E.
switch(op){
case '*':
printf(”%d\n", value1 * value2); break;
case "+’:
printf(”%d\n”, value1 + value2); break;
case "—": printf(”%d\n”, value1 — value2); break;
case "*": printf(”%d\n”, value1 * value2); break;
default:
printf("Error
"); break; } F.
switch('/’){
case "*":
printf(”%d\n”, value1 * value2); break;
case ’—’:
printf(”%d\n”, value1 - value2); break;
case '+’:
printf("%d
”, value1 + value2); break;
default: printf("Error\n”); break; } G. 对得!!! switch(op+1){
default: printf("Error
”); break;
case "*":
printf("%d\n”, value1 * value2); break;
case "+":
printf("%d
", value1 + value2); break; } H.
switch(op){
case op=="+’:
printf("%d
", value1 + value2); break;
default: printf(”Error
”); break; } 可以改成’+’ 或者数字43
(‘+"对应得 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== 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 - 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");
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 — 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’ :
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 〈= ’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 "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’ :
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.
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.
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: printf("one");
case n%4:
printf(”two”);
default:
printf("zero");
} n n %3 3 不能在常量表达式区域出现
3-10 判断ch 就是数字字符得 C 语言表达式就是( )
。
(2分)
A.
B. "0’ <=ch <='9’
C.
D. ch >=’0' && ch <="9" E.
F. ch 〉="1" && ch <=’10" ?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);
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"); }else{
printf("Small”); } 输入 20 ,输出(1 分)入输? 50 ,输出(1 分)入输? 38 ,输出(1 分)
4—6 C 语言中,数字字符 "1' 得值(ASCII 码)就就是数字字符 "0' 得值加(1分) 。
请注意,直接填数字,前后不要加空格等任何其她字符. 4—7 C 语言中,小写字母 "z' 得值(ASCII码)就就是小写字母 'a’ 得值加(1分) 。
请注意,直接填数字,前后不要加空格等任何其她字符。
4—8
C语言中,大写字母 ’D' 得值(ASCII码)就就是大写字母 'A' 得值加(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(”%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 4- - 12 2
写出以下程序段得运行结果。请注意,直接填数字、单词或者两者得组合,前后不要加空格等任何其她字符. char op; int value1, value2; scanf(”%d%c%d", &value1, &op, &value2);
switch(op){
case '+’: printf("%d", value1 + value2);
default:
printf(”Error”);
case '-’: printf("%d", value1 - value2);
} 输入 11+1 ,输出(1 分)
12Error10入输? 14-5 ,输出(1 分)
输入 10$100 ,输出(1 分)
Error—90 b b r eak 就是大坑!
4-14 写出以下程序段得运行结果.请注意,直接填数字,前后不要加空格等任何其她字符。
char ch; int digit, i,
minus, other;
digit = minus=other=0; for(i=1; i <= 5; i++){
ch = getchar();
switch (ch){
case '0’ :
case '1’ :
case ’2' :
case ’3' :
case ’4" :
case ’-’:
;kaerb ;++sunim?
case "5’ :
case "6" : case "7" :
case "8’ : case '9" :
digit ++;break;
default:
;kaerb ;++ rehto?
}
} 输入 R-e-d ,digit 得值就是(1分),minus得值就是(1 分) ,other 得值就是(1分)
输入 1+4-5 ,digit 得值就是(1 分),minus 得值就是(1分),other 得值就是(1 分)
输入 167or ,digit得值就是(1分) ,minus得值就是(1 分)
,other 得值就是(1分)
4—15 对于如下嵌套得 if – else 语句,在空格中填上 True 或者 False 。请注意,直接填单词(区分大小写),前后不要加空格等任何其她字符。
if(表达式 1)
if(表达式2)语句 1;
else
if(表达式 3)语句 2;
else
语句 3;
当 表达式 1 为(1 分)
且 表达式 2 为(1 分)
时,执行 语句 1 ; 当 表达式 1 为(1 分)
且 表达式 2 为 (1 分) 且 表达式 3 为(1 分) 时,执行 语句2 ; 当 表达式 1 为(1 分)
且 表达式 2 为(1分)
且 表达式3 为(1 分)
时,执行 语句 3 . 4-16
写出以下程序段 A 与程序段 B 得运行结果。请注意,直接填字母、单词或者两者得组合,前后不要加空格等任何其她字符。
/* 程序段 A */ for( i=1; i < 7; i++){
scanf("%d", &score);
score = score/10;
switch(score) {
case 10:
case 9: case 8: case 7: case 6:
grade = "P"; break; ?
default:
grade=’F’; break;
}
putchar(grade); } printf("Thanks"); 输入 100 90 50 82 72 69 , 输出(1 分) for( i = 1; i 〈 7; i++){
scanf(”%d", &score);
score=score/10;
switch(score)
{
case 10: case 9:
case 8: case 7: case 6:
grade="P'; break;
default:
grade="F"; break;
putchar(grade);
} } printf(”Thanks”); 输入 100 90 50 82 72 69 , 输出(1分) . 4 4 - 17
写出以下程序段 A 与程序段B得运行结果。请注意,直接填字母,前后不要加空格等任何其她字符。
/* 程序段 A */ char grade; int i, score; for( i = 1; i < 6; i++){
scanf("%d", &score);
score=score/10;
switch(score)
{
case 10:
case 9:
case 8:
grade = ’A’; break;
case 7: grade='P’; break;
default:
grade='F"; break;
}
putchar(grade); } 输入 100 90 82 72 69 , 输出(1 分)
AAAPF
char gameover;
int player;
;)(rahcteg = revoemag?
;)reyalp& ,"d%”(fnacs?
) "N’== revoemag ( fi?
;)"nrut yM"(ftnirp ) 1 ==reyalp ( fi?
;)"nrut ruoY"(ftnirp esle? else
;)”REVO EMAG"(ftnirp?输入 N1 ,输出(1 分)
输入 N2 ,输出(1 分)入输? Y1 ,输出(1分) count=0; scanf ("%d”, &number); t_number=number; if(t_number < 0)
{
t_number=-t_number;
}
do{
?
count++;
t_number = t_number / 10; }while(t_number !=0); 执行程序段 A,输入 -1003
count得值就是(1分)
number 得值就是(1 分) t_number 得值就是(1 分)
4-8 若变量已正确定义,写出执行以下程序段后变量得值.请注意,直接填数字,前后不要加空格等任何其她字符。
/* 程序段 A */ count=0; scanf (”%d", &number); t_number=number; if(t_number < 0)
{
t_number = —t_number;
}
do{
count++;
t_number=t_number / 10; }while(t_number !=0); 执行程序段 A,输入 0 ,count 得值就是(1 分) /* 程序段 B */ count=0; scanf (”%d”, &number); t_number=number; if(t_number < 0)
{
t_number=-t_number;
}
while(t_number != 0){
count++;
t_number=t_number / 10; }; 执行程序段 B,输入 0 ,count 得值就是(1分) 4—9 若变量已正确定义,写出以下程序段得运行结果。
count=0; s=0; new_number=0; scanf ("%d”, &number); t_number=number; if(t_number 〈 0)
{
t_number=-t_number;
}
do{
digit = t_number % 10;
s = s + digit;
new_number=new_number * 10 + digit;
count++;
printf("%d#%d#%d#%d
", count, digit, s, new_number);
t_number=t_number / 10; }while(t_number !=0); 输入 907
第 1 行输出(1 分) 第2行输出(1 分) 第3行输出(1 分) 4-10
若变量已正确定义,写出执行以下程序段后变量得值。请注意,直接填数字,前后不要加空格等任何其她字符。
s = 0; scanf ("%d", &number); t_number = number; if(t_number < 0) {
t_number = -t_number;
}
do{
t_number=t_number / 10;
digit=t_number % 10;
s=s + digit; }while(t_number !=0); 输入 259 ,s 得值就是(1 分)
输入 9 ,s得值就是(1分)
5-2 请写出与以下 for 语句等价得while 语句. for (fahr=lower; fahr〈=upper; fahr++){
celsius=(5、0 / 9、0)
* (fahr - 32);
printf("%4d%6、1f\n", fahr, celsius); }
(2分)
while (fahr<= upper){
(2 分)
printf("%4d%6、1f
", fahr, celsius);
(2 分) }
5—3 请将程序段 B 补充完整,使其与程序段A等价. /* 程序段A */ flag = 1; denominator=1;
item = 1、0;
pi=0;
while(fabs(item) 〉= 0、0001){
item=flag * 1、0 / denominator;
pi=pi + item;
flag=-flag;
denominator=denominator + 2; } pi = pi * 4;
/* 程序段 B */ flag=1;
denominator=1; item=1、0;
pi=0; while(fabs(item)
>=0、0001){
(2 分)
flag=—flag;
denominator=denominator + 2;
(2 分)
} (2 分)
pi=pi * 4;
不满足,额外再加上一次
A 得 item在前面,算了直接加,在判断
B 得item先判断,再决定就是否加上 最后一个没加,循环结束后应该加上 HW06 1-1 以下两个程序段等价,其功能就是计算 s=1+2+、、、+10 。
s=0; i=1; while(i 〈=10){
if(i % 2 ==0){
continue;
}
s = s + i;
i++; } (1分)
T
F
1-9 在以下程序段中,若变量已正确赋值,当条件 i 〈=limit 不满足(即 i 〉 limit )或者条件 m % i== 0 满足时,循环结束。
int i, limit, m; for(i = 2; i <=limi...
相关热词搜索:
理论
PTA
上一篇:protel实习报告
下一篇:python实习报告