C练习题答案Word下载.docx
《C练习题答案Word下载.docx》由会员分享,可在线阅读,更多相关《C练习题答案Word下载.docx(8页珍藏版)》请在冰豆网上搜索。
(D)!
2、以下是字符常量的是C
(A)"
C"
(B)'
\\'
'
(C)'
W'
(D)'
3、sizeof(float)是 B 。
(A)一个双精度型表达式
(B)一个整型表达式
(C)一种函数调用
(D)一个不合法的表达式
4、已知i、j、k为int型变量,若从键盘输入:
1,2,3<
回车>
,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是:
(C)
(A)scanf("
%2d%2d%2d"
&
i,&
j,&
k);
%d%d%d"
%d,%d,%d"
i=%d,j=%d,k=%d"
5、以下非法的赋值语句是:
(A)n=(i=2,++i);
(B)j++;
(C)++(i+1);
(D)x=j>
0;
6、以下四个选项中,均是不合法的用户标识符的是(C)
(A)AP_Odo(B)floatla0_A
(C)b-agotoint(D)_123tempint
7、若有说明语句:
charc='
/72'
;
则变量c(A)
(A)包含1个字符(B)包含2个字符
(C)包含3个字符(D)说明不合法,C的值不确定
8、下面不正确的字符串常量是:
(A)
(A)'
abc'
(B)"
12'
12"
(C)"
0"
(D)"
"
9、执行下列程序段后,a值为:
D
inta,b;
a=15;
b=12;
a=(a--==b++)?
a%5:
a/5;
(A)0(B)2.8(C)4(D)2
10、判断char型变量ch是否为大写字母的正确表达式是(C)
(A)’A’<
=ch<
=’Z’
(B)(ch>
=’A’)&
(ch<
=’Z’)
(C)(ch>
=’Z’)
(D)(‘A’<
=ch)AND(‘Z’>
=ch)
11、以下程序的运行结果是(C)
main()
{intm=5;
if(m++>
5)
printf(“%d\n”,m);
else
printf(“%d\n”,m--);
}
(A)4(B)5(C)6(D)7
12、以下程序段的运行结果是:
(B)
intx=0,s=0;
while(!
x!
=0)s+=++x;
printf(“%d”,s);
(A)0
(B)1
(C)无限循环
(D)程序段中的控制表达式是非法的
13、C语言中while和do-while循环的主要区别是 (A)。
(A)do-while的循环体至少无条件执行一次
(B)while的循环控制条件比do-while的循环控制条件严格
(C)do-while允许从外部转到循环体内
(D)do-while的循环体不能是复合语句
14、有如下程序,该程序的执行结果是(C)
{intnum=0;
while(num<
=2)
{num++;
printf(“%d”,num);
}
}
(A)1(B)12(C)123(D)1234
15、以下程序运行后的输出结果是(A)
{inti=3,j=0;
do
{j=j+(--i);
}while(i<
2);
printf(“%d\n”,j);
(A)2(B)3(C)4(D)无限循环
16、如果charcc[]=“12345”,做sizeof(cc)后的返回值应为(C)
(A)2(B)5(C)6(D)1
17、判断字符串a和b是否相等,应当使用(D)。
(A)if(a==b)
(B)if(a=b)
(C)if(strcpy(a,b))
(D)if(strcmp(a,b))
18、执行语句for(i=1;
i++<
4;
);
后变量i的值(C)
(A)3(B)4(C)5(D)不定
19、下面程序行的结果是:
func(inta,intb)
{intc;
c=a+b;
Returnc;
{intx=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf(“%d\n”,r);
(A)11(B)20(C)21(D)31
20、有以下程序:
{chars[]="
ABCD"
*p;
for(p=s+1;
p<
s+4;
p++)printf("
%s\n"
p);
程序运行后的输出结果是(D)
A)ABCD
B)A
C)B
D)BCD
BCD
B
C
CD
CD
D
D
D
D
三、改错题
1、以下程序段求两个数的和:
inta,b=4,c;
scanf(“%d”,a);
printf(“%d”,c);
答案:
有错,
应为:
scanf(“%d”,&
a);
2、以下程序段将输入字符显示到屏幕上:
charch;
ch=getchar(‘ch’);
putchar(‘ch’);
一、ch=getchar(‘ch’);
有错
改为:
ch=getchar()
二、putchar(‘ch’);
putchar(ch);
3、以下程序段输出最大者:
inta=5,b=3;
if(a<
b)printf(“%d”,a);
elseprintf(“%d”,b);
有错
if(a>
4、以下程序段求1-10所有数的和:
intsum,i;
do
{sum=sum+i;
i++;
}while(i<
10);
printf(“%d”,sum);
intsum=0,i=1;
while(i<
改为
=10);
5、以下程序段将输入的字符串显示到屏幕上:
charstr[20];
scanf(“%s”,&
str);
puts(str);
答案:
scanf(“%s”,str);
因为数组名本身就表示数组的首地址
四、编程题
#include"
stdio.h"
voidmain()
{
doublex,y;
printf("
请输入X的值:
"
scanf("
%lf"
x);
if(x<
1)
{y=x;
elseif(x>
=1&
x<
10)
{y=2*x-1;
else
{y=3*x-1;
y=%lf"
y);
2、求十个学生成绩的平均值。
doublescore[10],sum=0,avg;
inti;
请输入10个学生的成绩:
for(i=0;
i<
10;
i++)
{
scanf("
score[i]);
sum=sum+score[i];
avg=sum/10;
学生的平均成绩为:
%.2lf"
avg);