期中试卷2012

试卷编号:8802
所属语言:C语言
试卷方案:TC_test2012
试卷总分:100分
共有题型:2种

━━━━━━━━━━━━━━
一、填空 共6题 (共计20分)
━━━━━━━━━━━━━━

第1题 (3.0分) 题号:1778
鸡兔共有30只,脚共有90个,下面程序段是计算鸡各有多少只,x代表鸡,y代表兔,请填空.
for(x= 1; x<=29; x++)
{ y=30-x;
if(【1】) printf("%d,%d\n",x,y);
}

答案:

=======(答案1)=======
2*x+4*y==90


第2题 (3.0分) 题号:1798
1991年,我国人口为11.3亿人,问当人口增长率分别为2%,1.5%,1%, 0.5%时,
到哪一年我国人口超过13亿.请填空.
main()
{
int year;
float r,p;
for(r=0.02;r>0;r=r-0.005)
{【1】;
year=1991;
while (p<13)
{
p=【2】;
year=year+1;
}
printf("year=%d\n",year);
}
}

答案:

=======(答案1)=======
p=11.3


=======(答案2)=======
p*(1+r)



第3题 (3.0分) 题号:1752
下列程序的运行结果是【1】
int a=2,b=3;
while(b--<0)
{ a++;
b-=a;
}
printf("a=%d,b=%d\n",a,b);

答案:

=======(答案1)=======
a=2,b=2


第4题 (3.0分) 题号:1796
下面程序的功能是任意输入三个整数a,b,c,求这三个数的最大公约数和最小公倍数.请填空.
main()
{int a,b,c,max,min,i;
scanf("%d,%d,%d",&a,&b,&c);
max=a;min=a;
if (b>max) max=b;
else if (bif (c>max) max=c;
else if (cfor(i=【1】;i>=1;i--)
if(a%i= =0 && b%i= =0 && c%i= =0)
{printf("big=%d\n",i);break;}
for(i=max;i<=【2】;i++)
if (i%a= =0 && i%b= =0 && i%c= =0)
{printf("small=%d\n",i);break;}
}


答案:

=======(答案1)=======
min


=======(答案2)=======
a*b*c



第5题 (4.0分) 题号:1819
执行下述程序的输出结果是【1】
#include
main()
{
int i=0;
char x[]="China";
char y[]="Chinese";
while (x[i]!='\0'&&y[i]!='\0')
if (x[i]==y[i])
printf("%c",x[i++]);
else
i++;
printf("\n");
}

答案:

=======(答案1)=======
Chin



第6题 (4.0分) 题号:1816
执行下述程序
#include
#include
main()
{
char b[30];
strcpy (&b[0],"GH");
strcpy (&b[1],"DEF");
strcpy (&b[2],"ABC");
printf ("%s\n",b);
}
其输出结果是【1】

答案:

=======(答案1)=======
GDABC



━━━━━━━━━━━━━━━━━
二、单项选择 共70题 (共计80分)
━━━━━━━━━━━━━━━━━

第1题 (1.0分) 题号:4461
表达式3&&6&&9的值为______.

A:3

B:6

C:9

D:1


答案:D

第2题 (1.0分) 题号:4456
运算符是有优先级的,在C语言中关于运算符优先级的叙述中只有______是正确的.

A:逻辑运算符高于算术运算符,算术运算符高于关系运算符

B:算术运算符高于关系运算符,关系运算符高于逻辑运算符

C:算术运算符高于逻辑运算符,逻辑运算符高于关系运算符

D:关系运算符高于逻辑运算符,逻辑运算符高于算术运算符


答案:B

第3题 (1.0分) 题号:4500
当c的值不为0时,______能正确将c的值赋给变量a、b
A:c=b=a
B:(a=c)||(b=c)

C:(a=c)&&(b=c)
D:a=c=b


答案:C

第4题 (1.0分) 题号:4469
下列对字符数组的说法中,不正确的是______.

A:在C语言中可用字符数组存放字符串

B:可以用关系运算符对字符数组中的字符串进行比较

C:字符数组中的字符串可以整体输入、输出

D:字符数组中的字符串可以单个字符输入、输出


答案:B

第5题 (1.0分) 题号:4490
在C语言中,下列不能作为C常量的是______.


A:0xa5

B:2.5e-2

C:300

D:0582


答案:D

第6题 (1.0分) 题号:4502
在C语言程序中,十进制整数47与______等价.
A:2E

B:02F

C:57
D:057


答案:D

第7题 (1.0分) 题号:4494
若定义了char ch; 且给ch赋了一个小写字母,下列表达式中是ch所赋的值对应的
大写字母的是______.

A:ch-A+a

B:ch+A-a

C:ch-'A'+'a'

D:ch+'A'-'a'

答案:D

第8题 (1.0分) 题号:4517
设有如下定义 int x=10,y=3,z; 则语句 printf("%d\n",z=(x%y,x/y));
的输出结果是______.

A:1
B:0
C:4
D:3


答案:D

第9题 (1.0分) 题号:4545
设ch是char型变量,其值为A,且有下面的表达式______.
ch=(ch>='A'&&ch<='Z')?(ch+32):ch
上面表达式的值是

A:a

B:A

C:Z

D:z


答案:B

第10题 (1.0分) 题号:4547
设 int x=1, y=1; 表达式(!x||--y)的值是______.

A:0

B:1

C:2
D:-1


答案:A

第11题 (1.0分) 题号:4488
下列表示中,合法的字符常量是______.

A:\084'

B:\x43'

C:ab'

D:"\0"


答案:B

第12题 (1.0分) 题号:4492
若定义了double t; 则表达式t=1,t+5,t++ 的值是______.

A:1

B:6.0

C:2.0

D:1.0


答案:D

第13题 (1.0分) 题号:4511
请选出可用作C语言用户标识符的一组标识符______.

A:void define WORD
B:a3-b3 -789 IF

C:For -gif CASE

D:3d UNDO sizeof


答案:C

第14题 (1.0分) 题号:4554
若有定义:int a=7;float x=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是______.

A:2.500000

B:2.750000

C:3.500000

D:0.000000


答案:A

第15题 (1.0分) 题号:4520
下列程序段选择项,使i的运行结果为4的程序字段是______.
A:int i=0,j=0 (i=3,(j++)+i)
B:int i=1,j=0 j=i=((i=3)*2)
C:int i=0,j=1; (j==1)?(i=1): (i=3)
D:int i=1,j=1; i+=j+=2

答案:D

第16题 (1.0分) 题号:4475
表达式 (int)(9/2) >2.5 ?( c=2, c+5) : 3 的结果是______.

A:2
B:3
C:4
D:7


答案:D

第17题 (1.0分) 题号:4507
在C语言中,正确的的结论是______.
A:对文件操作必须先关闭文件
B:对文件操作必须先打开文件

C:对

文件操作顺序没有统一规定
D:以上都错


答案:B

第18题 (1.0分) 题号:4467
若已说明int a= -3 ; 执行语句printf("%x",a); 的结果是______.
A:fffd
B:fd

C:-3

D:8003


答案:A

第19题 (1.0分) 题号:4480
若定义了int i=1,j=2; 则表达式i++,j++,i+2,j+1,(i++)+(j++)的值是______.
A:12

B:10

C:7

D:5


答案:D

第20题 (1.0分) 题号:4518
在以下运算符中,优先级最高的运算符为______.

A:?:
B:++

C:&&
D:+=


答案:B

第21题 (1.0分) 题号:4531
输出的结果是______.
main( )
{int a= -1,b=4,k;
k=! ((++a<0)&&! (b--<0));
printf("%d%d%d\n",k,a,b); }

A:104
B:103

C:013

D:004


答案:A

第22题 (1.0分) 题号:4512
设a=5, b=6, c=7, d=8, x=2, y=2,执行 (x=a>b)&&(y=c>d) 后y的值为______.

A:1
B:2
C:3
D:4


答案:B

第23题 (1.0分) 题号:4471
表达式i=1,i+1,i ++,i ++的值为______.

A:1

B:2

C:3

D:4


答案:B

第24题 (1.0分) 题号:4462
表达式(float)(7/2)>3.5 ?(c=2,c+2):3 ;的结果是______.

A:2
B:3

C:4

D:5


答案:B

第25题 (1.0分) 题号:4464
在C语言中,字符(char)型数据在内存中是以______形式存储的.

A:原码

B:补码

C:反码

D:ASCII码


答案:D

第26题 (1.0分) 题号:4558
选出年龄在30到40(包括30,不包括40)之间的人,其C语言表达式应为______.

A:(年龄>=30)and (年龄<40)
B:(40 > 年龄 >= 30)
C:(年龄 >= 30) & (年龄 <40)

D:(年龄 >= 30) && (年龄 <40)


答案:D

第27题 (1.0分) 题号:4566
在C语言的if语句中,用作判断的表达式为______.


A:关系表达式
B:逻辑表达式
C:算术表达式

D:任意表达式


答案:D

第28题 (1.0分) 题号:4616
若定义了int a=1,b=2,c=3,d=4; 则表达式a+d>c+b?a+b:c
A:3

B:4

C:6

D:表达式错误


答案:B

第29题 (1.0分) 题号:4606
下面程序的输出是______.
main()
{ int x=10,y=3;
printf("%d\n",y=x/y);}

A:0

B:1

C:3

D:不确定的值


答案:C

第30题 (1.0分) 题号:4615
下列程序的执行结果是______.
main()
{ float x=2.0,y;
if (x<0.0) y=0.0;
else if ((x<5.0)&&(!x)) y=1.0/(x+2.0);
else if (x<10.0) y=1.0/x;
else y=10.0;
printf ("%f\n",y) ;
}

A:0

B:25

C:5

D:10


答案:C

第31题 (1.0分) 题号:4584
在C语言中,表达式10||20&&30的值是______.

A:10

B:20

C:30

D:1


答案:D

第32题 (1.0分) 题号:4622
有如下程序:
main0
{ float x=2.0,y;
if(x<0.0) y=0.0;
else if(x<10.0) y=1.0/x;
else y=1.0;
printf("%f\n",y);
}
该程序的输出结果是______.

A:0.000000
B:0.250000

C:0.500000
D:1.000000


答案:C

第33题 (1.0分) 题号:4600
设 int x=1, y=1; 表达式(!x||y--)的值是______.

A:0
B:1

C:2

D:-1


答案:B

第34题

(1.0分) 题号:4624
以下程序的输出结果是______.
main( )
{ int a= -1,b=1,k;
if((++a<0)&& ! (b-- <=0))
printf("%d %d\n",a,b);
else
printf("%d %d\n",b,a);
}


A:-1 1
B:0 1
C:1 0
D:0 0


答案:C

第35题 (1.0分) 题号:4557
若定义了a=5,b=6,c=7,d=8,m=2,n=2; 则计算表达式(m=a>B)&& (n=c>D) 后,n的值为______.

A:0
B:1
C:2
D:3


答案:A

第36题 (1.0分) 题号:4629
语句while (exp); 中的表达式exp等价于______.

A:exp==0

B:exp!=1

C:exp!=0

D:exp==1


答案:C

第37题 (1.0分) 题号:4647
若有如下语句
int x=3;
do {printf("%d\n",x-=2);} while(!(--x));
则上面程序段______.
A:输出的是1
B:输出的是1和-2

C:输出的是3和0

D:是死循环


答案:B

第38题 (1.0分) 题号:4636
语句while(!E);中表达式!E等价于______.

A:E= =0

B:E!=1

C:E!=0

D:E= =1


答案:A

第39题 (1.0分) 题号:4648
下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除.请选择填空.
int i=0,j,k;
do {i++; k=316-13*i;} while(______);
j=k/11;
printf("316=13*%d+11*%d",i,j);

A:k/11

B:k%11

C:k/11=0

D:k/11= =0


答案:B

第40题 (1.0分) 题号:4639
下面程序段的运行结果是______.
int n=0;
while(n++<=2); printf("%d",n);

A:2

B:3

C:4

D:有语法错


答案:C

第41题 (1.0分) 题号:4632
以下for循环的执行次数是______.
for(x=0,y=0;(y=123)&&(x<4);x++);

A:是无限循环

B:循环次数不定

C:执行4次

D:执行3次


答案:C

第42题 (1.0分) 题号:4630
下列程序的执行结果是______.
main()
{ int x=3;
do
printf("%3d",x-=2);
while(!(--x));
}

A:1

B:0

C:1 -2

D:死循环


答案:C

第43题 (1.0分) 题号:4646
下描述中正确的是______.
A:由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句.
B:do-while循环由do开始,在while(表达式)后面 不能写分号
C:在do-while循环体中,一定要有能使while后面表达式的值变为零("假" )的操作

D:do-while循环中,根据情况可以省略while


答案:C

第44题 (1.0分) 题号:4634
设有程序段
int k=10;
while (k=0) k=k-1;
则下面描述中正确的是______.
A:while 循环执行10次
B:循环是无限循环

C:循环体语句一次也不执行

D:循环体语句执行一次


答案:C

第45题 (1.0分) 题号:4628
下列程序段中,do-while循环的循环体执行的次数是______.
int i=1;
do
{
i*=2;
}
while (i<100);

A:0次
B:6次

C:7次

D:8次


答案:C

第46题 (1.0分) 题号:4645
以下程序段______.
x=-1;
do
{x=x*x;}
while(!x);

A:是死循环
B:循环执行两次
C:循环执行一次

D:有语法错误


答案:C

第47题 (1.0分) 题号:4633
下列程

序中,循环执行的次数是______.
for (i=2;i==0; ) printf("%d\n",i--);

A:1次

B:2次

C:0次

D:无数次


答案:C

第48题 (1.0分) 题号:4638
下面程序段的运行结果是______.
x=y=0;
while(x<15) y++,x+=++y;
printf("%d,%d",y,x);

A:20,7

B:6,12

C:20,8

D:8,20


答案:D

第49题 (1.0分) 题号:4631
C在语言中,while和do-while循环的主要区别是______.

A:do-while的循环体至少无条件执行一次

B:while的循环控制条件比do-while的循环控制条件严格

C:do-while允许从外部转到循环体内

D:do-while的循环体不能是复合语句


答案:A

第50题 (2.0分) 题号:4627
若定义了int i; 执行语句for (i=1; i++<4;); 后变量i的值是______.
A:3

B:4

C:5

D:不定


答案:C

第51题 (2.0分) 题号:4644
以下能正确计算1×2×3×…×10的程序段是______.

A:do {i=1;s=1;
s=s*i;
i++;
}
while(i<=10);
B:do {i=1;s=0;
s=s*i;
i++;
}
while(i<=10);
C:i=1;s=1;
do {s=s*i;
i++;
}
while(i<=10);
D:i=1;s=0;
do {s=s*i;
i++;
}
while(i<=10);


答案:C

第52题 (2.0分) 题号:4641
下面程序的功能是将从键盘输入的一对数,由小到大排序输出.当输入一对相等数时
结束循环,请选择填空______.
int a,b,t;
scanf("%d%d",&a,&b);
while(______)
{if (a{t=a;a=b;b=t;}
printf("%d,%d\n",a,b);
scanf("%d%d",&a,&b);
}

A:!a=b

B:a!=b

C:a==b

D:a=b


答案:B

第53题 (1.0分) 题号:4654
以下能对一维数组a进行正确初始化的语句是______.
A:int a[10]=(0,0,0,0,0)
B:int a[10]={ }
C:int a[ ]={0}
D:int a[10]={10*1}

答案:C

第54题 (1.0分) 题号:4675
已知:char str1[20]="abcde",str2[20]="xyz";则执行语句:
printf("%d",strlen(strcpy(str1,str2)));
输出结果是______.
A:9
B:3
C:5
D:8


答案:B

第55题 (1.0分) 题号:4687
下述程序代码中有语法错误的行是______.
int i,ia[10],ib[10]; /*第1行*/
for (i=0;i<=9;i++) /*第2行*/
ia[i]=0; /*第3行*/
ib=ia; /*第4行*/

A:第1行
B:第2行

C:第3行

D:第4行


答案:D

第56题 (1.0分) 题号:4701
若有以下定义和语句
char s[10];
s="abcd";
printf("%s\n",s);
则结果是(以下" "代表空格)______.

A:输出abcd
B:输出a
C:输出ab
D:有语法错误,编译不能通过


答案:D

第57题 (1.0分) 题号:4682
执行语句 printf("%d\n",strlen("t\"065\xff\n")); 的输出结果是______.

A:5

B:14

C:7

D:输出项不合法,无正常输出


答案:C

第58题 (1.0分) 题号:4699
下列程序的执行结果是______.
#include "string.h"
main( )
{char c[]="\t\v\\\0will\n";
printf ("%d"; strlen (C)) ;
}

A:14

B:3

C:9

D:6


答案:B

第59题 (1.0分) 题号:4684
若定义了char a[11]={'h','o','w',' ','a','

r','e','\0','y','o','u'};
则执行语句printf("%s",A); 的输出结果是______.

A:how are you

B:how

C:how are

D:没给出正确的答案


答案:C

第60题 (1.0分) 题号:4688
执行下述程序后的输出结果是______.
#include
main()
{
int n[3],i,j,k;
for (i=0;i<3;i++)
n[i]=0;
k=2;
for (i=0;ifor (j=0;jn[j]=n[i]+1;
printf("%d\n",n[1]);
}

A:2
B:1
C:0
D:3


答案:D

第61题 (1.0分) 题号:4662
以下对二维数组a的正确说明是______.

A:int a[3][]
B:floatf a(3,4)
C:double a[1][4]
D:float a(3)(4)

答案:C

第62题 (1.0分) 题号:4651
合法的数组说明语句是______.
A:int a[]="string"
B:int a[5]={0,1,2,3,4,5}
C:char a="string"
D:char a[]={0,1,2,3,4,5}

答案:D

第63题 (1.0分) 题号:4698
下面程序段的运行结果是 ______.
char c[5]={'a','b','\0','c','\0'};
printf("%s",c);}

A:a''b'
B:ab
C:ab c
D:a b

答案:B

第64题 (2.0分) 题号:4693
执行下述程序的输出结果是______.
#include
main()
{
int n[3][3],i,j;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
n[i][j]=i+j;
for (i=0;i<2;i++)
for (j=0;j<2;j++)
n[i+1][j+1]+=n[i][j];
printf("%d\n",n[i][j]);
}

A:14
B:0
C:6
D:值不确定


答案:C

第65题 (2.0分) 题号:4659
以下关于数组说明的描述中正确的是______.

A:数组的大小是固定的,但可以有不同类型的数组元素
B:数组的大小是可变的,但所有数组元素的类型必须相同
C:数组的大小是固定的,所有数组元素的类型必须相同
D:数组的大小是可变的,可以有不同类型的数组元素


答案:C

第66题 (2.0分) 题号:4706
设有函数调用语句"f(x1,x1+x2,(x1,x2));",正确的说法是______.
A:调用的实际参数是2个
B:调用的实际参数是3个
C:调用的实际参数是4个
D:调用时会出现语法错误

答案:B

第67题 (2.0分) 题号:4721
执行下列程序后的输出结果是______.
int fun(int x1,int x2)
{ int x;x1>x2?(x=3):(x=4);return(x+x1); }
main()
{ printf("%d\n",fun( 7,8));}

A:9

B:10

C:11

D:12


答案:C

第68题 (2.0分) 题号:4735
下面程序的输出结果是______.
fun3(int x)
static int a=3;
a+=x;
return(A);}
main()
{ int k=2, m=1, n;
n=fun3(k);
n=fun3(m);
printf("%d\n",n);}

A:3
B:4
C:6
D:9


答案:C

第69题 (2.0分) 题号:4717
在C语言中,使用时才占用内存的变量存储类型为______.

A:static和auto

B:register和auto

C:static和register

D:static和extern


答案:B

第70题 (2.0分) 题号:4722
执行下述程序的输出结果是______.
#include
void func(int a,int b,int c)
{
a=456;
b=567;
c=678;
}
main()
{
int x=10,y=20,z=30;
func(x,y,z);
printf("%d,%d,%d\n",z,y,x);
}

A:30,20,10

B:10,20,30
C:456,567,678
D:678,567,456


答案:A



相关文档
最新文档