C语言实训指导习题全文档格式.docx
- 文档编号:19034167
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:50
- 大小:44.99KB
C语言实训指导习题全文档格式.docx
《C语言实训指导习题全文档格式.docx》由会员分享,可在线阅读,更多相关《C语言实训指导习题全文档格式.docx(50页珍藏版)》请在冰豆网上搜索。
7.C语言中,int、char、和short三种类型数据占用的字节数是【D】。
A)用户自定义B)均为2个字节C)任意的D)由机器字长决定
8.在C语言中,合法的长整型常数是【A】
A)0LB)49627C)324562&
D)216D
9.表达式5/2的值是【C】。
A)2.5B) 2 C) 3D) 1
10.要求运算数必须是整型的运算符是【C】。
A)/B)+C)%D)++
11.若希望当整型变量A的值为5时,表达式的值为1,则下面不能满足要求的表达式是【C】。
A)A/2-1B)A%2C)(A-2)/2D)(A+3)%2
12.以下能正确定义变量a,b和c并为它们赋值的语句是【D】
A)inta=5;
b=5;
c=5;
B)inta,b,c=5;
C)a=5,b=5,c=5;
D)inta=5,b=5,c=5;
13.intx=43,y=0;
charch=‘A’;
则表达式x*y+ch-‘B’的值是【D】。
A)43B)65C)1D)-1
14.设inta=1,d=4;
floatb=2.0,c=3.0,则表达式a+b*c-d%2的值是【D】。
A)5B)6C)5.0D)6.0
15.若给定表达式2.5+3/2-7%2,则该表达式的值是【C】。
A)2B)1C)2.5D)2.0
16.下列运算符中,优先级最高的是【B】。
A)*B)++C)+D)/=
17.下列运算符中,运算优先级最低的是【D】。
A)--B)/C)+D)-=
18.若有以下定义:
intx=3,y=2;
floata=2.5,b=3.5;
则表达式(x+y)%2+(int)a/(int)b的值是【D】。
A)0B)2C)1.5D)1
19.若有定义intb=7;
floata=2.5,c=4.7则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为【A】。
A)5.5B)5C)6.5D)6
20.a、b均为整数,且b≠0,则表达式a/b*b+a%b的值是【A】。
A)aB)bC)a被b除的余数部分D)a被b除商的整数部分
21.以下合法的赋值语句是【A】
A)x=y=100B)d=9+e+f=d+9;
C)x+y;
D)c=int(a+b);
22.设inta,b;
则表达式a=2,b=++a*2的值为【A】。
A)6B)4C)8D)2
23.若已定义inta;
则表达式a=10,a+10,a++的值是【B】。
A)20B)10C)21D)11
24.有定义inta=2,b=3,c=10;
则计算表达式a+=b+2,c-=a+1后c的值是【B】。
A)3B)2C)1D)4
25.设inta,b,c;
执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是【B】
A)2,1,2B)2,0,3C)2,2,3D)2,1,3
26.假定x和y为double型,则表达式x=2,y=x+3/2的值是【D】
A)3.500000B)3C)2.000000D)3.000000
27.设变量a为整型,f为实型,i为双精度型则表达式10+a+i*f值的数据类型是【C】。
A) intB) floatC)doubleD)不确定
第3章习题
一、选择题
1.结构化程序设计中使用的基本程序控制结构是【A】。
A)选择结构、顺序结构、循环结构
B)条件结构、嵌套结构、顺序结构
C)嵌套结构、转移结构、递归结构
D)模块结构、递归结构、循环结构
2.设a为整型变量,则下列不能正确表达数学关系1<
a<
5的表达式是【C】。
A)a>
1&
&
5B)a==2||a==3||a==4 C)1<
5D)!
(a<
=1)&
!
(a>
=5)
3.若希望当A的值为奇数时,表达式的值为真,A的值为偶数时,表达式的值为假,则下面满足要求的表达式是【A】。
A)A%2==1B)(A%2==0) C)!
(A%2)D)(A%2=0)
4.以下四条语句中,有语法错误的是【C】。
A)if(a>
b)m=a;
B)if(a<
b)m=b;
C)if((a=b;
)>
=0)m=a;
D)if((a=b)>
5.以下两条条件语句语义等价的是【B】。
A)if(a=2)printf("
%d\n"
a);
B)if(a-2)printf("
if(a==2)printf("
if(a!
=2)printf("
C)if(a)printf("
D)if(a-2)printf("
if(a==0)printf("
if(a==2)printf("
6.下面程序运行的结果是【B】
main()
{inti=-1;
if(i>
=0)printf("
****\n"
);
elseprintf(“####\n”);
}
A)****B)#### C)####\nD)****####
7.运行下面程序段的输出结果是【A】。
inta=4,b=5,t;
if(a<
b)
t=a,a=b,b=t;
printf("
%d,%d\n"
a,b);
A)5,4B)4,5
C)5,0D)语法错误
8.有程序如下:
main()
{inta;
floatb,c;
scanf(“%2d%3f%4f”,&
a,&
b,&
c);
printf(“\na=%d,b=%f,c=%f\n”,a,b,c);
}
若运行以上程序时从键盘输入9876543210<
CR>
,则输出结果为【C】
A)a=98,b=765,c=4321
B)a=10,b=432,c=8765
C)a=98,b=765.000000,c=4321.000000
D)a=98,b=765.0,c=4321.0
9.下面的程序运行时,若从键盘输入1和2,则输出结果是【B】。
main()
{inta,b,s;
scanf("
%d%d"
&
b);
s=a;
if(s<
b)s=b;
s=s*s;
printf("
s);
A)6B)4 C)2D)1
10.设inti=2;
则表达式i==2?
i:
i-1的值为【B】。
A)1B)2 C)0D)3
11.已有定义:
inta=1,b=2,c=3,d=4,z;
则表达式(a>
b)?
(z=c):
(z=d)的值为【A】。
A)4B)2 C)1D)3
12.已有定义:
charch=’A’;
则表达式ch=(ch>
=’A’&
ch<
=’Z’)?
(ch+32):
ch的值为【B】。
A)AB)a C)ZD)z
13.以下程序段在执行时,若从键盘输入3,则输出为【D】。
intx;
scanf("
%d"
x);
switch(x)
{case5:
Excellent"
default:
Poor"
case4:
Good"
case3:
Pass"
case2:
Fail"
A)PassB)Passpoor C)PoorPassFailD)PassFail
14.如果定义doublex=2.5;
inta=2,b=100;
,则下面四组答案中正确的是【D】。
A)switch(a+b);
{case1:
10"
case2:
100"
}
B)switch(x)
C)switch(x);
{case1.0:
case2.5:
D)switch(a+b)
{case10+1:
case100+2:
15.若定义intd,c=1;
则执行下面的语句后,d的值为【C】。
switch(c)
{case0:
d=0;
break;
case1:
case2:
d=1;
case3:
case4:
d=2;
default:
d=3;
A)0B)1 C)2D)3
16.若变量已正确定义,则以下程序段的运行结果是【A】。
inta=2,b=7;
switch(a>
b)
{case0:
@"
break;
case1:
"
case2:
*"
default:
#"
}
A)@B)!
C)*D)#
17.语句while(!
E);
中的表达式!
E等价于【A】。
A)E==0B)E!
=1 C)E!
=0D)E==1
18.下列程序段的输出结果是【C】。
charm='
a'
;
while(!
m)
%c"
m);
A)aB)aaa... C)不输出任何信息D)'
19.运行下列程序,输出结果是【A】。
{charm='
do{printf("
}while(!
m);
A)aB)aaa... C)'
D)不输出任何值
20.下列程序段执行后,s的值为【D】。
intk,s=0;
for(k=1;
k<
=10;
)
s=s+k;
k++;
A)1+2+3+...+10B)10 C)11D)死循环
21.下列程序段执行后,s的值为【C】。
++k);
A)55B)0 C)11D)10
22.下列程序段执行后,s的值为【A】。
intk,s=1;
++k)
s=s*k;
A)1*2*3*...*10B)0 C)11D)10
23.下列各程序段中,可以实现1×
2×
3×
4×
5×
6×
7×
8×
9×
10的是【D】。
A)longk=1,M=0;
for(;
11;
++k)M*=k;
B)longk=1,M=1;
while(k<
10);
M*=k,k++;
C)longk=1,M=1;
M*=k;
D)longk=1,M=1;
=10){M*=k;
24.下面程序段运行的结果是【C】。
intn=0;
while(n++<
=1)
printf("
n);
A)1B)2 C)1D)123
25.运行下面程序段的输出结果是(【B】)。
intn=10;
while(n>
7)
{n--;
}
A)876B)987 C)789D)78
26.下列程序段运行后的输出结果是【A】。
inta=4;
do
{printf("
%2d"
a-=3);
}while(!
(--a));
A)1-3B)1 C)是无限循环D)1-2
27.下列程序执行时,若从键盘输入12,则输出为【A】。
main()
{intnum,c;
scanf("
num);
do{c=num%10;
c);
}while((num/=10)>
0);
}
A)21B)2 C)1D)12
28.下列程序段的输出结果是【C】。
inti;
for(i=1;
i<
=50;
i++)
{if(i%2==0&
i%3==0&
i%7==0)
printf("
i);
}
A)14B)21 C)42D)6
29.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是【A】。
for(i=5;
i;
i--)
for(j=0;
j<
4;
j++)
{......}
A)20B)24 C)25D)30
30.下面的程序运行后,输出为【D】。
main()
{inti=1,j=2,k=3;
do{if(i%j==0&
i%k==0)
{printf("
}
i++;
}while
(1);
}
A) 12B) 13 C) 14D) 6
二、读程序写结果
1.下面程序运行后输出结果是【】。
{intf1=2,f2=3,f;
printf("
%d%d"
f1,f2);
f1=f1+f2;
f2=f1+f2;
%d,%d\n"
f1,f2);
}
2.下面程序运行后输出结果是【】。
{intx=100,a=10,b=20,ok1=5,ok2=1;
if(a<
if(b!
=15)
if(!
ok1)
x=1;
elseif(ok2)x=10;
x=-1;
printf("
x);
3.运行下面程序段的输出结果是【】。
Inti,n=3,s=0,p=1;
for(i=1;
i<
=n;
++i)
{p=p*a;
s+=p;
}
i=%d,p=%d,s=%d\n"
i,p,s);
4.下面程序运行后输出结果是【】。
#include<
math.h>
stdio.h>
voidmain()
{inti,j,k;
for(i=2;
{k=sqrt(i);
for(j=2;
=k;
if(i%j==0)break;
if(j>
k)
printf("
%3d"
}
三、将程序填写完整
1.以下程序实现了判断输入的一个整数是否能被5整除,若能整除,则输出"
Y"
,否则输出"
N"
。
在【】中填入适当的选项。
#include"
stdio.h"
voidmain()
{intk;
Enteraintnumber:
k);
if(【______】)
Y\n"
else
N\n"
2.下面的程序是求s=1-1/3+1/5-1/7+…,直到最后一项的绝对值小于0.00001为止。
程序【】处应填。
#include<
#include<
voidmain()
{intm=1;
floatn=1.0,t=1.0,s=0.0;
while((fabs(t))>
=1e-5)
{【____________】;
n=n+2;
m=-m;
t=m/n;
}
printf("
s=%f\n"
3.下面的程序是求Fibonacci数列1,1,2,3,5,8,13……的前40个数(数列中的每一个数都是它的前两个数之和)。
请将程序填完整。
{longintf1=1,f2=1;
inti;
for(i=1;
=【_______】;
{printf("
%12ld%12ld\n"
f1=【__________】;
f2=【_____________】;
第4章 习题
1.下面关于一维数组的定义中,正确的是【】。
A)intn=10;
floata[n]={1.0,2.1,3.2};
B)#defineN10
inta[N]={1,2,3};
C)intn;
&
n);
inta[n];
D)#defineN10;
2.下列一维数组定义中,不正确的是【】。
A)floata[5+6];
B)intn=10,a[n];
C)#defineM10
inta[M+5];
D)floata[10],b[9];
3.若有说明inta[5][4];
则对其数组元素的正确引用是【】。
A)a[3+1][2]B)a
(2)(3)C)a[0,2]D)a[3][5]
4.在C语言中,引用数组元素时,其数组下标的数据类型允许是【】。
A)整型常量B)整型表达式
C)整型常量或整型表达式D)任何类型的表达式
5.若有一维数组初始化语句intb[5]={1,2,3,4,5};
且数组的起始地址为8050H(H表示十六进制),则8058H是数组元素【】的起始地址(假设一个int型变量在内存占2个字节存储空间)。
A)b[1]B)b[4]C)b[0]D)b[2]
6.要将20,30,40,50存入数组b中,下列正确的程序段是【】。
A)inti,b[4];
for(i=0;
i++)
b[i]=(i+2)*10;
B)intb[4];
b={20,30,40,50};
C)intb[4];
b[1]=20,b[2]=30,b[3]=40,b[4]=50;
D)intb[4];
b[4]={20,30,40,50};
7.下面的程序运行后输出结果是【】。
voidmain()
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 指导 习题