(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−1x〉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