期中试卷2012
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试卷编号: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 (b
else if (c
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;i
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