本科C语言模拟一含答案Word文档下载推荐.docx
《本科C语言模拟一含答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《本科C语言模拟一含答案Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
C.&
&
D.!
=
11、若变量已正确定义并赋值,下面符合C语言语法的表达式是
A.a:
=b+1
B.a=b=c+2
C.int18.5%3
D.a=a+7:
c+b
12、设CH是字符型变量,其值为'
A'
下列表达式的值是
CH=(CH
>
='
CH
<
Z'
)?
(CH+32):
CH
A.A
B.a
C.z
D.Z
13、表达式18/4*sqrt(4.0)/8值的数据类型为
A.int
B.float
C.double
D.不确定
14、在C语言中,要求运算数必须是整型的运算符是
A./
B.%
C.!
D.>
15、以下说法中正确的是
A.#define和printf都是C语句
B.#define是C语句,而printf不是
C.printf是C语句,但#define不是
D.#define和printf都不是C语句
16、下面程序的输出是
main()
a=-1,b=4,k;
k=(a++<
=0)&
(!
(b--<
=0));
%d%d%d%\n"
k,a,b);
A.003
B.012
C.103
D.112
17、设有:
a=1,b=2,c=3,d=4,m=2,n=2;
执行
(m=a
b)&
(n=c
d)后n的值是
A.1
B.2
C.3
D.4
18、若有条件表达式
(exp)?
a++:
b--,则以下表达式中能完全等价于表达式(exp)的是
A.(exp==0
B.(exp!
=0)
C.(exp==1)
D.(exp!
=1)
19、为表示关系X≥Y≥Z应使用C语言表达式:
__
A.(X>
=Y)&
(Y>
=Z)
B.(X>
=Y)and(Y>
C.(X≥Y≥Z)
D.(X≥Y)&
(Y≥Z)
20、能正确表示逻辑关系:
"
a
≥
=10或a
≤
0"
的C语言表达式是
A.a>
=10ora<
=0
B.a>
=0||a<
=10
C.a>
=10&
a<
D.a<
=0||a>
=10
21、下面的程序是______
main()
{
x=3,y=0,z=0;
if
(x==y+z)
****"
);
else
####"
}
A.有语法错误不能过通过编译
B.输出****
C.可能通过编译,但是不能通过连接,因而不能运行
D.输出####
22、执行下面语句后的输出为(
)
i=
-1;
if
(i
=0)printf("
****\n"
)逗号
else
%%%%\n"
A.****
B.%%%%
C.%%%%C
D.有语法错,不能执行
23、若运行以下程序时,从键盘输入
ADescriptor
CR
(
表示回车),则下面程序的运行结果是
#include
stdio.h>
{char
c;
v0=0,v1=0,v2=0;
do{
switch(c=getchar())
{case
'
a'
:
case
case
e'
E'
i'
I'
o'
O'
u'
U'
v1+=1;
default:
v0+=1;
v2+=1;
}
}while(c!
\n'
v0=%d,v1=%d,v2=%d\n"
v0,v1,v2);
A.v0=7,v1=4,v2=7
B.v0=8,v1=4,v2=8
C.v0=11,v1=4,v2=11
D.v0=12,v1=4,v2=12
24、以下程序的输出结果是
main( )
{ int
n=4;
while(n--)printf("
%d
,--n);
}
A.20
B.31
C.321
D.210
25、有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;
若分成7个零件一组,则多3个零件;
若分成9个零件一组,则多5个零件。
下面程序是求这堆零件总数,请选择填空。
{int
i;
for(i=100;
i<
200;
i++)
if((i-2)%4==0)
if(!
((i-3)%7))
if(
______
%d"
i);
A.i%9=5
B.i%9!
=5
C.(i-5)%9!
=0
D.i%9==5
26、以下程序的输出结果是
int
i,j,x=0;
for(i=0;
i
2;
x++;
for(j=0;
j
3;
j++)
{
if(j%2)
continue;
x++;
}
x++
}
printf("
x=%d\n"
,x);
A.x=4
B.x=8
C.x=6
D.x=12
27、以下程序的输出结果是
stdio.h
string.h
main()
char
b1[8]="
abcdefg"
b2[8],*pb=b1+3;
while
(--pb
=
b1)
strcpy(b2,pb);
%d\n"
strlen(b2));
A.8
B.3
C.1
D.7
28、下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空
a,b,t;
scanf("
%d%d"
&
a,&
b);
while(
___________
{if(a
b)
{t=a;
a=b;
b=t;
%d,%d\n"
a,b);
A.!
a=b
B.a!
=b
C.a==b
D.a=b
29、下面程序的输出结果是( )。
#include<
stdio.h>
main()
{int
x=10,y=10,i;
for(i=0;
x>
8;
y=++i)
printf(”%d%d”,x--,y);
A.10192
B.9876
C.10990
D.101091
30、以下程序的输出结果是
main( )
{
int i,x[3][3]={9,8,7,6,5,4,3,2,1};
for(i=0;
4;
i+=2)printf("
%d "
,x[i][i]);
A.52
B.91
C.53
D.97
31、若有说明:
a[3][4]={0};
则下面正确的叙述是
A.只有元素a[0][0]可得到初值0
B.此说明语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0
D.数组a中每个元素均可得到初值0
32、以下程序的输出结果是
a[10]={'
1'
,'
2'
3'
4'
5'
6'
7'
8'
9'
,0},*p;
i;
i=8;
p=a+i;
%s\n"
,p-3);
A.6
B.6789
D.789
33、以下程序的输出结果是
#define f(x)
x*x
a=6,b=2,c;
c=f(a)
/
f(b);
,c);
A.9
B.6
C.36
D.18
34、若有说明语句
a[]="
It
is
mine"
;
*p="
则以下不正确的叙述是
A.a+1表示的是字符t的地址
B.p指向另外的字符串时,字符串的长度不受限制
C.p变量中存放的地址值可以改变
D.a中只能存放10个字符
35、请选出正确的程序段
A)
*p;
B)
*s,
k;
p);
*s=100;
… …
C)
D)
*p,
e;
s=&
p=&
A.
B.
C.
D.
36、在位运算中,操作数每右移一位,其结果相当于
A.操作数乘以2
B.操作数除以2
C.操作数乘以4
D.操作数除以4
37、请读程序:
#include<
void
FUN(int
S[])
static int
J=0;
do
{
S[J]
+=S[J+1];
++J<
2);
int K,
A[10]={
1,2,3,4,5};
for(
K=1;
K<
K++)
FUN(A);
for
(K=0;
5;
K++) printf("
A[K]);
上面程序输出结果是
A.34756
B.23445
C.35745
D.12345
38、下列程序段的输出结果是( )。
void
fun(int
*x,int
*Y)
{printf(”%d%d”,*X,*Y);
*X=3;
*Y=4;
X=1,Y=2;
fun(&y,&
x);
prinff(”%d%d”,x,Y);
}
A.2143
B.1212
C.2121
D.2134
39、下面程序的输出结果是( )。
a[]={1,2,3,4,5,6,7,8,9,0},*p;
P=a:
printf(”%d\n”,*P+9);
A.0
B.1
C.10
D.9
40、分析以下程序的运行结果( )。
#include<
func(int
a,int
{
int
c;
c=a+b;
return
main() 。
x=6,r;
r=func(x,x+=2);
printf(”%d\n”,r);
A.14
B.15
C.16
D.17
填空题:
(每题1.5分,共24分)
1、在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为_______;
一个int型数据在内存中所占的字节数为_______
1,2
2、设有以下变量定义,并已赋确定的值
charw;
intx;
floaty;
doublez;
则表达式:
w*x+z-y所求得的数据类型为__________。
double
3、若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为________,n的值为_________
x+=n++
10,6
4、若有定义:
intb=7;
floata=2.5,c=4.7;
则下面表达式的值为______
a+(int)(b/3*(int)(a+c)/2)%4
5.500000
5、若有定义:
inta=8,b=5,C;
,执行语句C=a/b+0.4;
后,c的值为
1
6、以下程序不用第三个变量,实现将两个数进行对调操作:
#include
main()
{inta,b;
scanf("
&
a,&
a=%db=%d\n"
a,b);
a=a+b;
b=(________);
a=a-b;
a-b
7、直接使用printf()的格式符输出十六进制数。
本题程序如下:
﹟include﹤stdio.h﹥
voidmain()
{
intI;
,&
I);
%d(10)﹤=﹥%x(16)﹨n"
I,I);
}
输入100的执行结果为__________。
100(10)<
=>
64(16)
8、在c语言中,关系运算符的优先级别是——。
<
,>
,<
=,>
=,==,!
9、表示“整数x的绝对值大于5”时值为“真”的C语言表达式是——。
x>
5||x<
-5
10、下列程序段的输出结果是_____________。
intn='
c'
switch(n++)
{default:
error"
break;
case'
b'
B'
good"
C'
pass"
d'
D'
warm"
passwarm
11、设有以下程序:
{intn1,n2;
n2);
while(n2!
=0)
{n1=n2%10;
n2=n2/10;
n1);
程序运行后,如果从键盘上输入1298;
则输出结果为_________。
8921
12、下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
请填空
intn=0,c;
c=getchar();
while(_______)
{if(______)n++;
c!
,c>
='
0'
c<
13、以下程序的运行结果是__________________
{staticchara[]={'
*'
'
};
inti,j,k;
for(i=0;
i<
5;
i++)
j<
i;
j++)printf("
%c"
'
for(k=0;
k<
k++)printf("
a[k]);
****
****
****
14、若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};
则初始化后,a[1][2]得到的初值是____,a[2][1]得到的初值是______。
0
6
15、若有定义语句:
chars[100],d[100];
intj=0,i=0;
,且s中已赋字符串,请填空以实现字符串拷贝。
(注:
不得使用逗号表达式)
while([i]){d[j]=_____________;
j++;
i++;
d[j]=0;
s[i++]
16、以下函数用以求x的y次方,请填空。
doublefun(doublex,inty)
inti:
doublez=1.0:
for(i-1;
i_________;
z=________;
returnz:
=yz*x
程序设计题:
(请在以下3题中任选2题作答,若3道全部解答,以前2道为准,每题8分,共16分)
1、设某国今年的国民生产总值为45600亿元,若今后每年以8%的增长率增长,计算多少年后能实现国民生产总值翻两番?
main()
intn;
floata,s;
for(s=0,n=0,a=45600.0;
s<
=3*45600.0;
n++)
a=a+a*0.08;
s=a;
n);
}_
本题参考答案:
15
2、编程序求1+3+5+7+9+…这样的数之和。
如果累加数大于900时,则程序终止并输出结果。
inti=1,sum=0;
while(sum<
=900)
sum=sum+i;
i=i+2;
\n%d"
sum);
参考答案:
936
3、编程序求1~125的平方根的和并输出结果。
(保留小数点两位)
include"
math.h"
{floata,s=0;
clrscr();
for(a=1;
a<
=125;
a++)
{s=s+sqrt(a);
%.2f"
s);
本题答案:
937.08