C语言 复习题库 含答案Word下载.docx
《C语言 复习题库 含答案Word下载.docx》由会员分享,可在线阅读,更多相关《C语言 复习题库 含答案Word下载.docx(71页珍藏版)》请在冰点文库上搜索。
{s+=1;
a=a-2;
while(a!
=n);
s);
若要使程序的输出值为2,则应该从键盘给n输入的值是______。
-1
-3
-5
5、若变量已正确定义,有以下程序段
i=0;
doprintf("
%d,"
i);
while(i++);
其输出结果是______。
0,0
0,1
1,1
程序进入无限循环
6、下面的程序
{inta=2;
a-=2);
(--a));
输出的是0
输出的是0和-3
A
7、有以下程序段
intn,t=1,s=0;
do{s=s+t;
t=t-2;
}while(t!
为使此程序段不陷入死循环,从键盘输入的数据应该是______。
任意正奇数
任意负偶数
任意正偶数
任意负奇数
知识点:
知识点/选择题/C5循环结构程序设计/DO-WHILE循环T
8、有如下程序
main()
{intn=9;
while(n>
6){n--;
n);
该程序段的输出结果是______。
987
876
8765
9876
9、有如下程序
{intn=10;
6789
10、有如下程序
{intn=8;
6){n--;
98
76
87
78
11、有如下程序
{inta=9;
while(a>
7){a--;
a);
知识点/选择题/C5循环结构程序设计/Swhile循环结构T
12、以下程序的输出结果是______。
{intn=4;
while(n--)printf("
%d"
--n);
20
31
321
210
13、以下程序的输出结果是______。
{intnum=4;
while(num>
=1)
{num--;
printf("
num);
}
A)B)C)D)
3333
222
11
A)
B)
C)
D)
14、有以下程序
{intx=0,y=5,z=3;
while(z-->
0&
++x<
5)y=y-1;
%d,%d,%d\n"
x,y,z);
程序执行后的输出结果是______。
3,2,0
3,2,-1
4,3,-1
5,-2,-5
15、请读程序:
#include<
stdio.h>
intnum=0;
while(num<
=2){
num++;
上面程序的输出结果是______。
①1②1③1④1
222
33
4
①
②
③
④
C
16、有以下程序
{intk=5;
while(--k)printf("
k-=3);
\n"
);
执行后的输出结果是______。
1
2
4
死循环
知识点/选择题/C5循环结构程序设计/WHILE循环结构T
17、若执行下面的程序时从键盘上输入3和4,
{inta,b,s;
%d%d"
a,&
b);
s=a;
if(a<
b)s=b;
s=s*s;
则输出是______。
9
16
18
20
18、阅读以下程序
{intx;
if(x--<
5)printf("
x);
elseprintf("
x++);
程序运行后,如果从键盘上输入5,则输出结果是______。
3
5
6
19、下列条件语句中,功能与其他语句不同的是______。
if(a)printf("
elseprintf("
y);
if(a==0)printf("
if(a!
=0)printf("
20、若执行下面程序时从键盘上输入5,
intx;
if(x++>
5)printf("
7B:
6
5D:
4
21、有以下计算公式
若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是______。
if(x>
=0)y=sqrt(x);
elsey=sqrt(-x);
y=sqrt(x);
if(x<
0)y=sqrt(-x);
y=sqrt(x>
=0?
x:
-x);
22、若执行以下程序时从键盘上输入9,则输出结果是______。
{intn;
if(n++<
10)printf("
n--);
11
10
9
8
23、设变量x和y均已正确定义并赋值。
以下if语句中,在编译时将产生错误信息的是______。
if(x++);
y&
y!
=0);
0)x--
elsey++;
if(y<
0){;
elsex++;
24、若变量已正确定义,有以下程序段
inta=3,b=5,c=7;
if(a>
b)
a=b;
c=a;
if(c!
=a)c=b;
a,b,c);
程序段有语法错
3,5,3
3,5,5
3,5,7
25、有以下程序段
inta,b,c;
a=10;
b=50;
c=30;
b)a=b,b=c;
c=a;
printf("
a=%db=%dc=%d\n"
程序的输出结果是______。
a=10b=50c=10
a=10b=50c=30
a=10b=30c=10
a=50b=30c=50
知识点/选择题/C4选择结构程序设计/IF语句T
26、设有说明语句:
chara='
\72'
;
则变量a______。
包含1个字符
包含2个字符
包含3个字符
说明不合法
27、设有说明语句:
chara='
\123'
则变量a______。
包含4个字符
28、以下选项中,非法的字符常量是______。
'
\t'
\17'
"
\xaa'
29、有以下程序
{chara,b,c,d;
a='
\'
b='
\xbc'
c='
\0xab'
d='
\0127'
%c%c%c%c\n"
a,b,c,d);
编译时出现错误,以下叙述中正确的是______。
程序中只有a='
语句不正确
b='
d='
和c='
语句都不正确
30、以下合法的字符型常量是______。
\x13'
\081'
65'
知识点/选择题/C2基本数据类型及表达式/转义字符T
31、已知i、j、k为int型变量,若从键盘输入:
1,2,3↙,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。
%2d%2d%2d"
i,&
j,&
k);
%d%d%d"
%d,%d,%d"
i=%d,j=%d,k=%d"
32、已知i、j、k为int型变量,若从键盘输入:
i=1,j=2,k=3↙,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。
33、有以下程序段
intm=0,n=0;
charc='
a'
%d%c%d"
m,&
c,&
%d,%c,%d\n"
m,c,n);
若从键盘上输入:
10A10↙,则输出结果是______。
10,A,10
10,a,10
10,a,0
10,A,0
34、有以下程序段
20B20↙,则输出结果是______。
20,B,20
20,b,20
20,b,0
20,B,0
35、若变量已正确说明为float类型,要通过语句scanf("
%f%f%f"
b,&
c);
给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:
22
33
10.0,22.0,33.0
10.0
22.033.0
1022
36、X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是______。
INPUTX,Y,Z;
%d%d%d"
X,&
Y,&
Z);
X,Y,Z);
read("
37、已知i、j、k为int型变量,若从键盘输入:
i,j,k);
38、有以下程序段
39、有以下程序
{intm,n,p;
m=%dn=%dp=%d"
n,&
%d%d%d\n"
m,n,p);
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是______。
m=123n=456p=789
m=123n=456p=789
m=123,n=456,p=789
123456789
40、有定义语句:
intx,y;
。
若要通过scanf("
%d,%d"
x,&
y);
语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是______。
1112↙B:
11,12↙
11,12↙
11,↙12↙
41、若变量已正确定义为int型,要通过语句scanf("
给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是______。
(代表一个空格符)
1,2,3<
回车>
123<
1,2,3<
知识点/选择题/C3顺序结构程序设计/输入函数T
42、设有以下语句,其中不是对a数组元素的正确引用的是:
______(其中0≤i<
10)
inta[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;
a[i]
*(&
a[i])
p[i]
(*(a+i))
43、设有以下语句,其中不是对a数组元素的正确引用的是:
6)
inta[6]={11,22,33,44,55,66},*m=a;
m[i]
44、设有以下语句,其中不是对b数组元素的正确引用的是:
intb[10]={0,1,2,3,4,5,6,7,8,9,},*q=b;
b[i]
b[i])
q[i]
(*(b+i))
45、设有以下语句,其中不是对c数组元素的正确引用的是:
8)
intc[8]={1,2,3,4,5,6,7,8},*p=c;
c[i]
c[i])
(*(c+i))
46、设有以下语句,其中不是对a数组元素的正确引用的是______。
(其中0≤i<
a[p-a]B:
p[i]D:
*(*(a+i))
47、有如下说明
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是______。
*p+9B:
*(p+8)
*p+=9D:
p+8
48、若已定义:
inta[9],*p=a;
并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是______。
p+1B:
a+1
a++
++p
49、设有以下语句,其中对数组元素a不正确的引用是:
a[p-a]
*(*(a+i))
50、若有以下说明:
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则值为6的表达式是______。
*p+6
*(p+6)
*p+=5
p+5
51、若有定义:
intaa[8];
则以下表达式中不能代表数组元素aa[1]的地址的是______。
aa[0]+1
aa[1]
aa[0]++
aa+1
52、若有定义语句:
doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x;
则错误引用x数组元素的是______。
*pB:
x[5]
*(p+1)D:
*x
知识点/选择题/C8指针/一维数组元素的指针表示T
53、以下程序的输出结果是______。
{intx=10,y=10,i;
for(i=0;
x>
8;
y=++i)
%d%d"
x--,y);
10192
9876
10990
101091
54、有如下程序
{inti,sum;
for(i=1;
i<
=3;
sum++)sum+=i;
sum);
该程序的执行结果是______。
55、以下程序执行后sum的值是______。
{inti,sum;
6;
i++)sum+=i;
15
14
不确定
56、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。
for(b=1;
b<
=c;
b++)s=s+1;
则与上述程序段功能等价的赋值语句是______。
s=a+b;
s=a+c;
s=s+c;
s=b+c;
57、有以下程序
{inti,s=0;
10;
i+=2)s+=i+1;
自然数1~9的累加和
自然数1~10的累加和
自然数1~9中奇数之和
自然数1~10中偶数之和
58、设变量已正确定义,则以下能正确计算f=n!
的程序段是______。
f=0;
for(i=1;
=n;
i++)f*=i;
f=1;
n;
for(i=n;
i>
1;
=2;
i--)f*=i;
59、要求以下程序的功能是计算:
s=1+1/2+1/3+…+1/10。
floats;
s=1.0;
for(n=10;
n>
n--)
s=s+1/n;
%6.4f\n"
程序运行后输出结果错误,导致错误结果的程序行是______。
选择题/C5循环结构程序设计/FOR循环结构T
60、若要打开A盘上的user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是______。
fopen("
A:
\user\abc.txt"
"
r"
)
\\user\\abc.txt"
r+"
rb"
w"
61、以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
{FILE*fout;
charch;
fout=fopen('
abc.txt'
'
w'
ch=fgetc(stdin);
while(ch!
='
#'
{fputc(ch,fout);
ch=fgetc(stdin);
fclose(fout);
出错的原因是______。
函数fopen调用形式有误
输入文件没有关闭
函数fgetc调用形式有误
文件指针stdin没有定义
知识点/选择题/C11文件/文件打开与关闭T
62、以下不能正确进行字符串赋初值的语句为______。
charstr[5]="
good!