C语言程序设计练习一Word文档下载推荐.docx
《C语言程序设计练习一Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习一Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
x)elsescanf(″%d″,&
y)
D.if(x<
y){x++;
y++;
}
12.下面程序段执行后的输出结果是( A )
inti=-1;
if(i<
=0)printf(″****\n″);
elseprintf(″%%%%\n″);
A.****B.%%%%C.%%%%cD.****c
13.下面程序段的循环次数是( A )
intk=2;
while(k==0)printf(″%d″,k);
k--;
printf(″\n″);
A.0次B.1次C.2次D.无限次
14.下面各个位运算符的优先级从左到右依次升高的是( A )
A.|^&
>
B.^>
&
~C.<
<
|^~D.~|&
15.设有说明:
intu=1,v=14;
表达式u+v>
2的值是( B )
A.0B.3C.5D.7
16.设有inta=3,b=-4,c=0;
表达式((a>
a:
b)&
&
c<
0的值是( B )
A.-4B.0C.1D.3
17.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是( C )
inta,b;
scanf(″a=%d,b=%d″,&
a,&
A.2<
B.a=2b=3<
C.a=2,b=3<
D.2,3<
18.关于if语句下面叙述正确的是( D )
A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句
B.只有当if语句中表达式的值为假时,才执行if的内嵌语句
C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句
D.只要if语句中表达式的值非0时,就执行if的内嵌语句
19.若intx=0;
则while(x==0);
的循环次数是( D )
A.0B.1C.2D.无限次
20.下面各个运算符的优先级从左到右依次降低的是( D )
A.&
|^B.~&
|
C.>
^|D.~>
^
21.设有说明:
intu=1,v=2;
表达式:
u+v<
2的值是( D )
A.-1B.1C.9D.12
22.字符串常数“CHINA”在内存中存储时占的字节数是( B )
A.5个B.6个C.7个D.8个
23.如果a=1,b=2,c=3,d=4,则表达式a>
b?
d?
c:
d的值是( C )
A.1B.2C.3D.4
24.输出字符串的格式说明符是( B )
A.%cB.%sC.%uD.%g
25.设有说明intx=0,y=0;
则执行if(x++)y=1+x;
elsey=2+x;
后,变量y的值是(D)
A.0B.1C.2D.3
26.以下程序段所表示的数学函数关系是( C )
y=-1
if(x!
=0)if(x>
0)y=1;
elsey=0;
A.
B.
C.
D.
27.执行下面程序段后,输出字符A的个数是( B )
for(i=0;
i<
=5;
i+=2)
printf(″A″);
A.0个B.3个C.5个D.6个
28.设有说明:
intx=0x15,y=0x0f;
则x&
y的结果是( A )
A.0x5B.0x15C.0xf0D.0xf5
29.如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是( C )
A.#include<
stdio.h>
B.#include<
math.h>
C.#include<
string.h>
D.#incLude<
malloc.h>
30.整数-2在机器内存中的表示是( B )
A.1000000000000010B.111111*********0
C.111111*********01D.111111*********1
31.下列运算符中优先级最低的是( D )
A.>
B.!
C.%D.==
32.设有inta=3,b=-4,c=5;
表达式++a-c+b++的值是( B )
A.-6B.-5C.-4D.-3
33.以十进制无符号形式输出整数的格式说明符是( A )
A.%uB.%xC.%oD.%d
34.执行while(表达式)循环的条件是( C )
A.当表达式的值为0时B.仅当表达式的值为1时
C.当表达式的值非0时D.当表达式的值不为1时
35.下列位运算符中,表示按位异或操作的是( C )
A.~B.│C.^D.&
36.下列各个位运算符的优先级从左到右依次升高的是( C )
│&
~B.│>
~C.│&
~D.~│&
37.设有说明:
intu=1,v=3;
则表达式u<
=v的值是( D )
A.0B.1
C.3D.8
38.下列转义字符中,表示回车的是( B )
A.\0B.\nC.\rD.\f
39.若定义doubled;
则d在内存中分配的字节数是( D )
A.1个B.2个C.4个D.8个
40.下列表达式中运算结果为3的表达式是( B )
A.(-7)%4B.7/4+2C.7/4*4-4D.8/3+8/3
41.设有inta=3,b=-4,c=5;
表达式a++-c+b++的值是( A )
A.-6B.-5C.-4D.-3
42.在printf语句中,格式说明符u表示( C )
A.以十进制带符号形式输出整数
B.以十六进制带符号形式输出整数
C.以十进制无符号形式输出整数
D.以十六进制无符号形式输出整数
43.关于switch中的表达式,正确的说法是( D )
A.它必须是算术表达式B.它必须是关系表达式
C.它必须是逻辑表达式D.它可以是任意类型的表达式
44.对do语句while(表达式);
结构的循环,下列说法正确的是( B )
A.当表达式的值为非零时不执行循环体
B.循环体至少被执行一次
C.当表达式的值为零时循环体一次也不执行
D.循环体仅被执行一次
45.只能在循环语句中用于结束本轮循环的语句是( B )
A.break;
B.continue;
C.gotoD.if
46.下列是合法C语言常量的是(C)
A.eB.7E4.0C.E4D.-9.13E-30
47.设有inta=3,b=-4,c=5;
b&
0的值是(A)
A.0B.1C.3D.4
48.以指数形式输出实型数的格式说明符是(D)
A.%uB.%xC.%fD.%e
49.下列各个位运算符的优先级从左到右依次降低的是(C)
A.|&
ˆ>
B.ˆ&
|C.~>
ˆ|D.~>
|ˆ
50.设有说明:
intu=1,v=3,w=5;
v&
~~u|w的值是(B)
A.3B.5C.6D.8
51.在TurboC2.0中,若定义charch;
则变量ch在内存中分配的字节数是(A)
A.1个B.2个C.4个D.8个
6<
52.下面程序段的输出结果是(B)
main()
{inta=2,b=5;
printf(″a=%d%%,b=%d%%″,a,b);
A.a=2,b=5B.a=2%,b=5%C.a=%2,b=%5D.a=%d,b=%d
53.设有条件表达式(exp)?
a++:
b--,则下列表达式中能够与该表达式完全等价的表达式是(A)
A.(exp!
=0)?
a++∶b--B.(exp==0)?
a++∶b--
C.(exp==1)?
a++∶b--D.(exp!
=1)?
b--
54.对于for(表达式l;
表达式2;
表达式3)语句;
控制循环结束的表达式是(B)
A.表达式1B.表达式2C.表达式3D.表达式l和表达式3
55.设有intx=2,y,z;
执行z=y=x——;
后变量y的值是(C)
A.0B.1C.2D.3
56.在下列选项中,没有构成死循环的程序段是(C)
A.inti=100;
B.for(;
;
);
while
(1)
{i=i%100+1;
if(i>
100)break;
C.intk=1000;
D.ints=36;
do{++k;
}while(k>
10000);
while(s);
一一s;
57.设有说明:
intu=l,v=3,w=5;
u<
=(v|w)的值是(D)
A.1B.5C.13D.128
58.设有说明:
intu=1,v=3,w=2;
表达式(v>
1|u<
2)&
w的值是( A )
A.0B.1C.3D.5
59.下面程序段的输出结果是( D )
{ints,p;
s=p=5;
p=++s;
p++;
++p;
printf(″%d\n″,p);
}
A.5B.6C.7D.8
60.下面程序段的输出结果是( A )
a=100;
while(a>
120);
a=a+1;
printf(″%d″,a);
A.100B.101C.120D.121
61.下面程序执行后,i的值是( C )
main()
{inta[5]={1,2,3,4,5},i=2
printf(″%d″,a[i++]);
A.1B.2C.3D.4
62.下面程序的输出结果是( C )
{inti,x[3][3]={9,8,7,6,5,4,3,2,1};
4;
i+=2)printf(″%d″,x[i][1]);
}
A.51B.52C.82D.93
63.下面程序段的输出结果是( B )
s=p=5;
p=--s;
p++;
++p;
printf(″%d\n″,p);
A.5B.6C.7D.8
64.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是( A )
{inta,b,s;
scanf(″%d″,&
s=a;
if(a<
b)s=b
s=s*s;
printf(″%d″,s);
A.9B.12C.16D.25
65.下面程序段的输出结果是( C )
for(i=1;
i<
3;
i++)
{for(j=1;
j<
j++)
printf(″%d″,i+j);
A.2334B.234
C.23D.2
3434
66.下列程序段的输出结果是( B )
voidmain(void)
{
inyy=1,x=5;
if(x<
0)y=-1;
if(x>
=0)y=0;
printf("%d\n",y);
A.-1B.0C.1D.5
67.执行如下程序段后,x的值是( D )
intx=1,y=-1;
if(y<
0)x-=y;
elsex+=y;
A.-1B.0C.1D.2
68.下列程序段输出的结果是( A )
for(i=1;
i++)
for(j=1;
j++)
printf("%d",i+j);
A.2334B.234
C.23D.2
3434
69.若有inta=3,b=4,c=5,d=6,x=4;
执行下列程序段后x的值是( A )
b)
if(c==d)
x=c;
else
x=d++
A.4B.5C.6D.7
70.下列程序的输出结果是(D)
{intx=5,y;
if(x<
0)y=-1;
if(x==0)y=0;
y=1;
printf(″%d″,y);
A.-5B.-1C.0D.1
71.下列程序段的输出结果是(D)
i=1;
while(i<
3)
{j=1;
while(j<
=i)
{printf(″%d″,i+j);
j++;
i++;
printf(″\n″);
A.2334B.234
C.23D.2
3434
72.设有下列程序:
(A)
#include″stdio.h″
unsignedx=8,y=2;
printf(″%d\n″,y|~(x&
y));
该程序的运行结果是
A.-1B.0xffC.127D.65535
73.两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是(A)
intx;
scanf("
%d"
,&x);
if(x++>
5)printf("
x);
elseprintf("
%d\n"
,x——);
A.7和5B.6和3C.7和4D.6和4
74.设有下面程序:
#include"
stdio.h"
unsignedx=1,y=3,z=5;
printf("
,z^x&y);
该程序的运行结果是(C)
A.0B.3C.4D.5
75.若有定义inta[3][5];
则数组a在内存中占用的字节数是( D )
A.8B.15C.16D.30
76.下面程序的输出结果是( C )
mian()
{inta[5]={2,4,6,8,10},i;
i=2;
printf(″%d″,a[i++]);
A.2B.4C.6D.8
77.下面程序的输出结果是( A )
{inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
inti,j,k=0;
for(i=0;
k=k+a[i][0];
printf(″%d\n″,k);
A.27B.33C.39D.45
78.若有定义chara[]=″computer″;
则存储字符m的数组元素是( B )
A.a[1]B.a[2]C.a[3]D.a[4]
79.若有定义inta[4]={1,2,3,4};
则a[a[3]-a[1]*a[1]]的值是( A )
A.1B.2C.3D.4
80.若有定义ints[4]={1,2,3,4};
则a[a[2]-3*a[0]+1]的值是( B )
81.若有定义inta[3][5];
则数组a在内存中分配的字节数是( D )
A.8B.15C.24D.30
82.已知strl和str2是字符串数组,下列哪一个函数能正确的完成字符串的输入?
( A )
A.gets(strl)B.gets(strl,str2)C.getchar(strl)D.getchar(strl,str2)
83.已知str1和str2是字符数组名,下面函数中能正确地完成字符串输出的是(B)
A.puts(str1,str2)B.puts(str2)C.putchar(strl)D.putchar(str1,str2)
84.设有下列程序:
intx[4]={1,3,5,7},i;
i=0:
,x[i++]);
其输出结果是
A.1B.3C.5D.7
85.定义如下变量和数组
intk;
intx[3][3]={9,8,7,6,5,4,3,2,l};
则执行下面语句
for(k=0;
k<
3;
k++)
if(k%2)printf("
%5d"
,x[k][k]);
后输出结果是(B)
A.3B.5C.7D.9
86.下面能正确进行字符串赋值操作的是(C)
A.chars[5]={"
ABCDE"
};
B.chars[5]={′A′,′B′,′C′,′D′,′E′};
C.char*s;
s="
;
D.char*s;
%s"
,s);
87.在C语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是( D )
A.charB.floatC.longD.int
88.若有说明:
int*p,m=5,n;
以下正确的程序段是( D )
A.p=&
n;
B.p=&
scanf(〃%d〃,n);
scanf(〃%d〃,*p);
C.scanf(〃%d〃,&
n);
D.p=&
p=n;
*p=m;
89.变量的指针,其含义是指该变量的( B )
A.值B.地址C.名D.一个标志
90.在C程序中,若用基本数据类型所定义的变量调用函数,正确的说法是( B )
A.由系统自动指定对应实参和形参是否共用存储单元
B.对应实参和形参各占一个独立的存储单元
C.对应实参和形参共用一个存储单元
D.可以由用户指定对应实参和形参是否共用存储单元
91.下面叙述中不正确的是( D )
A.不同函数中可以使用相同名字的变量
B.形式参数是局部变量
C.在一个函数内部定义的变量只能在本函数范围内有效
D.在一个函数内部的复合语句中定义的变量在本函数范围内有效
92.设有语句inta[4][10],*p=*a;
则下面表达式中属于地址表达式的是( B )
A.a[1][2]B.a[1]C.*(p+1*10+2)D.*(a[1]+2)
93.以下正确的函数定义形式是( A )
A.doublefun(intx,inty)B.doublefun(intx;
inty)
C.doublefun(intx,inty);
D.doublefun(intx,y);
94.关于变量以下不正确的说法是( B )
A.在不同函数中可以使用相同名字的变量
B.形式参数是全局变量
C.在函数内定义的变量只在本函数范围内有效
D.在函数内的复合语句中定义的变量是局部变量
95.设有语句inta[4][10],*p=*a;
则下列表达式中不是地址表达式的是( C )
a[1][2]B.a[3]C.*(p+1*10+2)D.p+1*10+2
96.如果一个C程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为( D )
A.源文件的全部范围B.本程序的全部范围
C.本函数的全部范围D.从定义该变量的位置开始至本文件末尾
97.下列定义中,不是指针数组定义的是( C )
A.int*p[5];
B.float*q[4];
C.int(*r)[6];
D.char*w[7];
98.若有语句int*point,a=4;
和point=&
a;
下面代表地址的一组选项是( D )
A.a,point,*&
aB.&
*a,&
a,*point
C.*&
point,*point,&
aD.&
*point,point
99.下列程序的运行结果是( B )
#difineN9
fun(chars[])
{
char*p=s+4,*q=s;
inti;
i++,p++,q++)
s[i]=*p;
s[i+4]=*q
main()
charss[N]=″ABCDEFGH″;
fun(ss)
printf(″%s\n″,ss);
A.EFGHABCDB.EFGHEFGHC.ABCDEFGHD.ABCDABCD
100.设有下列程序:
ff()
{intc=9;
staticinta=1,b=4;
if(b==4){a+=c;
b++;
else{a+=c;
b——;
a=%d,b=%d\n"
,a,b);
{ff();
ff();
则该程序执行后,显示的结果为(D)
A.a=10,b=5B.a=10,b=4
a=19,b=5a=l9,b=5
C.a=10,b=4D.a=10,b=5
a=19