程序设计基础复习题Word格式文档下载.docx
《程序设计基础复习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《程序设计基础复习题Word格式文档下载.docx(20页珍藏版)》请在冰点文库上搜索。
((x<
y)&
!
z||1)
(17)以下关于运算符优先顺序的描述中正确的是( )。
A、关系运算符<算术运算符<赋值运算符<逻辑与运算符
B、逻辑与运算符<关系运算符<算术运算符<赋值运算符
C、赋值运算符<逻辑与运算符<关系运算符<算术运算符
D、算术运算符<关系运算符<赋值运算符<逻辑与运算符
(18)已知x=43,ch='
A'
y=0;
则表达式(x>
=y&
ch<
'
B'
y)的值是 1 。
(19)若a=2,b=3,c=-1,d=5,则表达式a+b>
c+d&
a>
=c+d||c>
0||d<
0的值为
(20)判断char型变量ch是否为大写字母的正确表达式为(ch>
=‘A’)&
(ch<
=‘Z’)
(21)请写出判断year是否是闰年的表达式((year%4==0&
year%100!
=0)||year%400==0)
(22)若有定义:
inta=5,b=2,c=1;
则表达式a-b<
c||b==c的值是0
(23)scanf("
%d:
%d"
&
h,&
m,&
s);
若要给h输入12,给m输入30,给s输入10,正确的输入操作为:
12:
30:
10
(24)intnum;
使用scanf()函数输入一个整数给变量num,正确的函数调用是()
A、scanf(“%d”,num);
B、scanf(“%f”,&
num);
C、scanf(“d”,&num);
D、scanf(“%d”,&
num);
(25)intx,y;
scanf(“%d,%d”,&x,&y);
若要求x、y的值分别为1和2,正确的数据输入是1,2
(26)C语言中运算对象必须是整型的运算符是()。
A)%B)/C)=D)<
=
(27)假设所有变量均为整型,则表达式“a=2,b=5,b++,a+b”的值是()
A.8B.7C.6D.2
(28)有以下程序段
main(){
intm=0,n=0;
charc='
a'
scanf("
%d%c%d"
&
m,&
c,&
n);
printf("
%d,%c,%d\n"
m,c,n);
}
若从键盘上输入:
10,10<
回车>
,则输出结果是:
()
A)10,a,10B)10,,,10C)10,a,0D)0,a,0
(29)下列关于单目运算符++、--的叙述中正确的是()
A它们的运算对象可以是任何变量和常量
B它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D它们的运算对象可以是char型变量、int型变量和float型变量
(30)getchar()函数的功能是从终端输入一个字符,putchar()函数的功能是向终端输出一个字符
(31)表达式9/4的结果是2。
表达式9%4的结果是1。
(32)当a=5,b=4,c=2时,表达式a>
b!
=c的值是1
(33)若a=2,b=3,c=-1,d=5,则表达式a+b>
0的值为0。
(34)main()
{inti=10,j=1;
%d,%d\n"
i--,++j);
程序的运行结果是10,2
(35)main()
{inti=8;
printf(“%d,%d,%d\n”,++i,--i,i--);
程序的运行结果是7,6,8
二、选择语句
(1)符号函数
┌1x>
y=┤0x=0
└-1x<
以下程序段中不能根据x的值正确计算出y的值的是()
A)if(x>
0)y=1;
elseif(x==0)y=0;
elsey=-1;
B)y=0;
if(x>
elseif(x<
0)y=-1;
C)if(x>
=0)if(x>
elsey=0;
D)y=0;
=0)if(x>
(2)能正确描述下列程序逻辑关系的是()
if(a<
b)
{if(c==d)
x=1;
else
x=2;
A)当a<
b且c==d时,x=1,当c!
=d时,x=2
B)当a<
b且c==d时,x=1,当a<
b且c!
C)当a<
b且c==d时,x=1,当a>
=b时,x=2
D)当a<
=b且c!
(3)intmain()
{inta,b,s;
scanf(“%d%d”,&
a,&
b);
s=a;
if(a<
b)s=b;
s*=s;
printf(“%d\n”,s);
return0;
}
若执行以上程序时从键盘上输入1□2,则输出结果是4(□表示空格)。
(4)intmain()
{inti;
for(i=0;
i<
3;
i++)
switch(i)
{case1:
printf("
%d"
i);
case2:
default:
}
return0;
上述程序的输出结果011122
(5)main(){
intx=1,y=2,z=0,i=3;
if(x<
y)z=1;
i)z=2;
printf(“z=%d”,z);
上述程序的输出结果2
(6)判断char型变量cl是否为小写字母的正确表达式为
(c1>
=’a’)&
(c1<
=’z’)
(7)下列程序的输出结果是_a=1,b=3,c=1______________________
inta=1,b=2,c=3;
if(a>
b)a=b;
b=c;
c=a;
printf(“a=%db=%dc=%d\n”,a,b,c);
(8)下列程序的输出结果是_a=1,b=2,c=3______________________
b){a=b;
}printf(“a=%db=%dc=%d\n”,a,b,c);
三、循环语句
(1)以下程序中,while循环的循环次数是()
main()
{intnum=0;
while(num<
10)
{if(num<
1)continue;
if(num==5)break;
num++;
A)1B)10C)6D)死循环,不能确定次数
(2)以下程序中,while循环的循环次数是()
main()
{inti=0;
while(i=1)
{if(i==5)break;
i++;
A)死循环,不能确定次数B)1C)5D)6
(3)以下程序执行后sum的值是()。
{inti,sum;
for(i=1;
i<
5;
i++)
sum+=i;
%d\n"
sum);
A)10B)4C)0D)不确定
(4)下列语句中与语句while(!
exp);
中的条件!
exp等价的是()
A)exp==0B)exp!
=0C)exp!
=1D)运行时出错
(5)for(i=1;
i=10;
i++)printf(“%d\n”,i);
请问程序段中for循环执行的次数是(),
A)有语法错,不能执行B)执行1次C)一次也不执行D)无限次
(6)下面有关for循环的正确描述是()
A)for循环体语句中,可以包含多条语句,但要用花括号括起来
B)for循环是先执行循环体语句,后判定表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环只能用于循环次数已经确定的情况
(7)下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环,请根据上述功能完成以下程序。
intn=0,c;
c=getchar();
while(c!
=’\n’)
{if(c>
=’0’&
c<
=’9)n++;
(8)在C语言中while循环和do—while循环的主要区别是do—while的循环至少无条件执行一次,while的循环体不是
(9)main()
{intnum=5;
while(num>
=0)
{num--;
printf(“%d”,num);
return0;
上述程序的运行结果43210-1
(10)inti=0;
charch;
do
{scanf("
%c"
ch);
i++;
}while(ch!
=’q’&
10);
请问该循环的结束条件是!
(ch!
10)即(ch==’q’||i>
=10)。
(11)main(){
inti,sum;
i=sum=0;
while(i<
=5)
{sum+=i;
printf(“sum=%d\n”,sum);
上述程序的输出结果是15
四、数组
(1)假设有定义inta[100],则下标最大的数组元素为a[99],下标最小的数组元素为a[0],数组a在内存中所占字节数为100*sizeof(int)。
(2)已知:
charc[]={"
chongqing"
};
将字符数组c中整个字符串一次输出的语句书写格式为puts(c)或printf(“%s”,c)。
(3)定义3行4列的整型二维数组a的语句是__inta[3][4]_______;
(4)若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};
则初始化后,a[1][2]得到的初值是_0____,a[2][1]得到的初值是___6______
(5)以下函数的功能是:
通过键盘输入数据,为数组中的所有元素赋值。
请将该函数补充完整。
#defineN10
voidarrin(intx[N])
while(i<
N)
___&
x[i++]____);
(6)以下能正确定义一维数组的选项是()
A)intnum[];
B)intnum[0..100];
C)intN=100;
D)#defineN100
intnum[N];
(7)以下不能正确进行字符串赋初值的语句为()。
A:
charstr[4]="
boy!
"
B:
charstr[]="
C:
char*str="
D:
charstr[5]={'
b'
'
o'
y'
’!
’}
(8)假设charstr[6]={‘a’,‘b’,‘\0’,‘d’,‘e’,‘f’};
则语句printf(“%s”,str);
的输出结果是()
A.ab\B.abdefC.ab\0D.ab
(9)定义chara[]=“chongqing”;
charb[]=“china”;
以下程序运行后输出()
strcpy(a,b);
printf(“%c”,a[2]);
A.cB.oC.iD.\0
(10)以下程序段运行后屏幕输出为()
chara[]=”Ilove\0china”;
printf(“%d”,strlen(a));
A、1B、6C、11D、13
(11)以下程序段运行后屏幕输出为()
charstr[20];
strcpy(str,"
china"
);
strlen(str));
A)20B)5C)6D)7
inta[5]={1,2,3,4,5};
则语句a[1]=a[3]+a[2+2]-a[3-1];
运行后a[1]的值为()
A)6B)5C)2D)1
(13)假设int型变量占2个字节的存储单元,若有定义:
intx[5]={0,1};
则数组x在内存中所占字节数为()。
A)5B)2C)10D)4
(14)在定义intb[4][5]后,对b的引用正确的是()
A.b[0,1]B.b[4][0]C.b[2][5]D.b[1][1]
(15)以下语句把字符串“abc”赋初值给字符数组,不正确的语句是()
A.chars[]=“abc”;
B.chars[]={’a’,’b’,’c’’\0’};
C.chars[]={“abc”};
D.chars[3]=“abc”;
(16)以下对二维数组a的正确说明是()
A.inta[3][];
B.floata(3,4);
C.doublea[1][4];
D.floata(3)(4);
(17)用inta[10]={1,2};
对数组进行初始化后,数组元素a[3]的值是()
A)随机值B)FC)0D)1
(18)知inta[10];
则对a数组元素引用不正确的是()
A.a[10]B.a[3+5]C.a[10-10]D.a[5]
(19)以下能正确定义数组并正确赋初值的语句是()
A)inta[1][2]={{1},{3}};
B)intN=5,a[N][N];
C)inta[3][2]={{1,2},{34}};
D)inta[2][]={{1,2},{3,4}};
(20)main()
{inti,pod;
for(i=1;
10;
i++)pod*=i;
printf("
pod);
上述程序的输出结果无法确定
(21)有以下程序
{chars[]="
\n123\\"
%d%d\n"
strlen(s),sizeof(s));
上述程序的输出结果56
(22)设有如下程序段:
inta[3][3]={1,0,2,1,0,2,1,0,1},i,j,s=0;
for(i=0;
for(j=0;
j<
i;
j++)
s=s+a[i][j];
则执行该程序段后,s的值是2
(23)main()
{inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};
intj,s=1;
=2;
s=s*a[j][j];
s);
上述程序的运行结果是:
45
5、函数
(1)C语言中的变量按作用域范围可分为局部变量和全局变量。
(2)以下程序的功能是调用函数fun计算:
m=1+2+3+4+…+9+10,并输出结果,请将该程序补充完整。
intfun(intn)
{intm=0,i;
for(i=___1___;
=n;
__i++____)
{m=___m+i____;
return_m____;
{printf("
m=%d\n"
__fun(10)____);
(3)关于C语言函数的描述中,正确的是()
A)函数的定义可以嵌套,但函数的调用不可以嵌套
B)函数的定义和函数的调用都可以嵌套
C)函数的定义不可以嵌套,但函数的调用可以嵌套
D)函数的定义和函数的调用都不可以嵌套
(4)C语言规定,函数返回值的类型由()。
A.在定义该函数时所指定的函数类型所决定。
B.调用该函数时的主调函数类型所决定。
C.调用该函数时系统临时决定。
D.return语句中的表达式类型所决定。
(5)若程序中定义了以下函数
doublemyadd(doublea,doubleb)
{return(a+b);
并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是()。
A)doublemyadd(doublex,doubley);
B)doublemyadd(doublea,b);
C)doublemyadd(doublea,doubleb);
D)doublemyadd(doubleb,doublea);
(6)有以下函数定义:
()
voidfun(intn,doublex){……}
若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是
A、k=fun(10,12.5);
B、fun(intn,doublem)
C、voidfun(n,x);
D、fun(10,12.5);
(7)若程序中定义了以下函数
intadd(intx,inty)
{return(x+y);
并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是()
A、intadd(intb,inta);
B、intadd(int,int);
C、intadd(inta,b);
D、intadd(intx,inty);
(8)voidfun(inty)
{intx=2;
x=y++;
printf(“%d”,x);
intmain()
{intx=1,y=3;
fun(y);
x=y++;
printf(“%d”,x);
程序的运行结果是33
(9)#include<
stdio.h>
intf(intx,inty)
{return(x+y);
{inta=2,b=3,c;
c=f(a,b);
printf(“%d+%d=%d\n”,a,b,c);
程序的运行结果是2+3=5
(10)main()
{inta,b;
voidp(intx,inty);
a=2;
b=3;
p(a,b);
p(a+b,a);
voidp(intx,inty)
{y=x+y;
printf(“%d%d”,x,y);
程序的运行结果是2557
(11)intmin(intx,inty)
{intz;
z=(x<
y)?
x:
y;
return(z);
{inta=1,b=2,c;
c=min(a,b);
min=%d\n"
c);
程序的运行结果是min=1
(12)有以下程序
voidf(intx,inty)
{intt;
y){t=x;
x=y;
y=t;
{inta=4,b=3,c=5;
f(a,b);
f(a,c);
f(b,c);
%d,%d,%d\n"
a,b,c);
程序的运行结果是4,3,5
(13)main()
{voidprint(intw);
print(3);
voidprint(intw)
if(w!
=0)
{print(w-1);
for(i=1;
=w;
printf("
w);
\n"
程序的运行结果是1
22
333
6、指针
(1)指针运算符是*,取地址运算符为&
(2)变量的指针,其含义是指该变量的地址
(3)已知程序:
chara[]="
good"
;
char*P;
P=a;
则