C程序设计基础复习题集Word文档下载推荐.docx
《C程序设计基础复习题集Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C程序设计基础复习题集Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
表达式6>
x>
1值是_____。
A.0
B.1
C.5
D.表达式语法错
表达式6>
1,先判断6>
x为0,再判断0>
1,所以值为0。
(6>
x为1,再判断1>
)
5.下列程序段执行后c值为_____。
intk=7,c=0;
while(--k)
if(k%3)continue;
elsec++;
A.5
B.4
C.3
D.2
6.已知字母a的ASCII码为十进制数97,且ch为字符型变量,则执行语句ch=‘a’+‘D’-‘A’;
后,ch中的值为_____。
C】
A.d
B.c
C.100
D.不确定
7.设m,n已正确定义,执行语句{for(m=0,n=10;
m<
n;
m+=3,n--);
}以后,m,n的值是________。
A.6,7
B.7,6
C.9,7
D.7,9
8.已知char*t[]={”How”,”are”,”you!
”};
则t是_______。
A.指向char变量的指针
B.指向字符指针的指针常量
C.指向”How”的指针变量
D.指向’H’的指针
9.假设scanf语句执行时输入ABCDE<
回车>
,能使puts(s)语句正确输出ABCDE字符串的程序段是______。
A.chars[5]={"
ABCDE"
};
puts(s)
B.chars[5]={‘A’,’B’,’C’,’D’,’E’};
puts(s);
C.char*s;
s="
;
D.char*s;
scanf(“%s”,s);
10.以下程序有错,错误原因是______。
main()
{int*p,i;
char*q,ch;
p=&
i;
q=&
ch;
*p=40;
*p=*q;
......
}
A.p和q的类型不一致,不能执行*p=*q;
语句
B.*p中存放的是地址值,因此不能执行*p=40;
C.q没有指向具体的存储单元,所以*q没有实际意义
D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;
没有意义,可能会影响后面语句的执行结果
11.若有定义:
inta=2,b=5,c=8;
则表达式c|=(~a&
b)^!
(a&
b)的值为_____。
4 正确答案:
A.14
B.8
D.0
12.设inta=5,b=7,表达式(++a==b--)?
++a:
--b的值是_______。
2 正确答案:
A.7
B.6
D.4
13.设a=3,b=2,那么表达式(a=b=7,b=a!
=7)的值是。
A.1
B.2
C.7
逗号(,)也可以是运算符,逗号表达式最右边的子表达式的值即为逗号表达式的值。
而b=a!
=7的值为0
逗号运算符只取最右边的子表达式的值,但每个子表达式都要运行
14.设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行语句(m=a>
b)&
(n=c>
d);
后n的值是_____。
【知识点:
3 正确答案:
A.2
B.1
C.0
D.3
和&
都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,
15.下列程序段的输出结果是_____。
intk=2,s=0;
switch(k){
case2:
s++;
k++;
case1:
case3:
s+=1;
switch(s){
s+=2;
break;
default:
}
default:
s+=3;
printf("
%d#%d#"
s,k);
A.1#3#
B.6#4#
C.3#2#
D.3#4#
16.下列程序的输出结果是_____。
intf(intx)
{staticintk;
return++k+x;
main()
{intk;
for(k=1;
k<
4;
k++)printf("
%d#"
f(k));
A.2#5#
B.3#6#
C.2#4#6#
17.下列程序的输出结果是_____。
{charx=040;
%o\n"
x<
<
1);
A.o
B.40
C.1000000
D.100
18.下列程序段的输出是__________。
{intx=-9,y=5,z=8;
if(x=y)if(x>
0)z=0;
elsez+=1;
z=%d\n"
z);
A.z=0
B.z=1
C.z=8
D.z=9
esle子句与其之前最近的不完整if配对。
C语言中等号“=”为赋值运算符,不用于判断相等,判断相等应用“==”,因此
执行x=y后,x=5,if(5)相当于if(
true),
执行if(x>
0)z=0,所以z=0
19.下列程序段的输出是__________。
#defineSQ(a,b)(a*a-2*a*b+b*b)
{intk=4;
%d"
SQ(k,k-1));
#define定义一个宏(不是一个函数),用于字符串的替换,注意替换不是用数值去替换,也不会自动加括号,因此
SQ(k,k-1)=k*k-2*k*k-1+k-1*k-1=-k*k-2
SQ(4,3)=-4*4-2=-18
B.-18
C.-15
D.-8
20.若运行以下程序时,从键盘输入Hello_Everyone!
CR>
(<
表示回车),则下面程序的运行结果是_________。
{charc;
intv1=0,v2=0;
do{
switch(c=getchar())
{case'
a'
:
case'
A'
e'
E'
i'
I'
o'
O'
u'
U'
v1+=1;
v2+=1;
}
}while(c!
='
\n'
);
printf("
%d,%d\n"
v1,v2);
A.6,10
B.21,10
C.22,10
D.6,9
21.下列程序段输出_____。
{charstr[2][5]={"
abcd"
};
strcpy(str[0],"
You"
strcpy(str[1],"
Me"
str[0][3]='
'
printf("
%s\n"
*str);
A.You&
Me
B.abcd
C.abc&
D.You&
22.对于函数f,调用f(12345)的输出是_____。
A】
voidf(intn)
{if(n<
10)
%1d"
n);
else{f(n/10);
n%10);
}
A.12345
B.54321
C.11111
D.5432
23.下列程序段的输出结果是_____.【知识点:
voidfun(char*fname,char*st)
{FILE*myf;
inti;
myf=fopen(fname,"
w"
for(i=0;
i<
strlen(st);
i++)fputc(st[i],myf);
fclose(myf);
voidmain()
{
fun("
test_"
"
C_"
);
fun("
is_fun"
A.C_is_fun
B.is_fun
C.test_is_fun
D.C_
试题二、程序阅读题
1.以下程序的输出结果是_______。
{charch[2][5]={"
1234"
5678"
},*p[2];
inti,j,s=0;
2;
i++)p[i]=ch[i];
i++)
for(j=0;
p[i][j]>
′\0′;
j+=2)
s=10*s+p[i][j]-′0′;
printf("
%d\n"
s);
A.1537
B.2468
C.1357
D.2648
2.运行下列程序的输出结果是__________。
structst
{intx;
int*y;
}*p;
intdt[4]={10,20,30,40};
structstaa[4]={50,&
dt[0],60,&
dt[1],70,&
dt[2],80,&
dt[3]};