《C程序设计》模拟试题二及参考答案Word文档下载推荐.docx
《《C程序设计》模拟试题二及参考答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《C程序设计》模拟试题二及参考答案Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
8.下面程序要求从键盘上输入值并打印,请选择正确的输入方法_____B。
main()
{inta,b;
scanf("
x=%d,y=%d"
&
x,&
y);
printf("
x=%d,y=%d\n"
x,y);
}
A)5,6B)x=5,y=6C)5↙6D)56
9.为避免在嵌套的条件语句if-else中产生二义性,C语言规定:
else子句总是与____B___配对。
(A)缩排位置相同的if(B)其之前最近的if
(C)其之后最近的if(D)同一行上的if
10.定义如下变量和数组:
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是______。
for(i=0;
i<
3;
i++)printf("
%d"
x[i][2-i]);
A)159B)147C)357D)369
11.在定义了inta[3][2];
之后,对a的引用正确的是__C_____。
A)a[3][2]B)a[3][0]C)a[0][0]D)a[0,0]
12.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这
一关系的表达式为___A____。
A)a<
>
0B)!
aC)a=0D)a
13.执行以下程序段后,m的值为___A____。
inta[2][3]={{1,2,3},{4,5,6}};
intm,*p;
p=&
a[0][0];
m=(*p)+(*(p+2))+(*(p+4));
A)9B)8C)7
D)6
14.下列对字符串的说法中,错误的是_______。
A)字符串就是一个字符数组
B)字符串可以整体输入输出
C)字符串可以比较大小
D)存储字符串所需的内存空间等于字符串的长度
15.若有以下定义和语句,则输出结果是_______。
chars1="
12345"
s2="
1234"
%d\n"
strlen(strcpy(s1,s2)));
A)4B)5C)9D)10
16.有一函数关系见下表:
x
y=
x<
0
x-1
x=0
x>
x+1
下面程序中能正确表示上面关系的是_______。
(A)y=x+1;
(B)y=x-1;
if(x>
=0)if(x!
=0)
if(x==0)y=x;
if(x>
0)y=x+1;
elsey=x-1;
elsey=x;
(C)if(x<
=0)(D)y=x;
if(x<
0)y=x-1;
if(x<
elsey=x;
elsey=x+1;
elsey=x+1;
17.以下正确的程序段是_______。
A)charstr[2];
B)char*p;
%s"
str);
scanf("
p);
C)charstr[20];
D)charstr[20],*p=str;
scnaf("
str[2]);
p[2]);
18.以下正确的函数定义形式是_______。
A)doublefun(intx,inty)
B)doublefun(intx;
inty)
C)doublefun(intx,inty);
D)doublefun(intx,y);
19.以下有关宏替换不正确的是_______。
A)宏替换不占用运行时间B)宏名无类型
C)宏替换只是字符替换D)宏名必须用大写字母表示
20.
有如下语句inta=10,b=20,*p1,*p2;
p1=&
a;
p2=&
b;
如图1所示。
若要实现图2所示的存储结构,可选用的赋值语句是_______。
A)*p1=*p2;
B)p1=p2;
C)p1=*p2;
D)*p1=p2;
21.设char*s="
\ta\018bc"
;
则指针变量s指向的字符串所占的字节数是_______。
A)9B)5C)6D)7
22.以下程序的输出结果是_______。
#include<
stdio.h>
string.h>
{char*s1="
AbCbEf"
*s2="
AB"
;
s1++;
s2++;
printf("
%d\n"
strcmp(s1,s2));
A)正数B)负数C)零D)不确定的值
23.fread(buf,64,2,fp)的功能是_______。
A)从fp文件流中读出整数64,并存放在buf中
B)从fp文件流中读出整数64和2,并存放在buf中
C)从fp文件流中读出64个字节的字符,并存放在buf中
D)从fp文件流中读出2个64个字节的字符,并存放在buf中
24.以下一维数组a的正确定义是_______。
A)inta(10);
B)intn=10,a[n];
C)intn;
D)#defineSIZE10
scanf("
%d"
n);
inta[SIZE];
inta[n];
25.若有定义:
inta[2][3];
则对a数组中第i行第j列元素地址的正确引用为_______。
A)*(a[i]+j)B)(a+i)C)*(a+j)D)a[i]+j
26.以下程序段的输出结果是_______。
main()
{intn[3],i,j,k;
i++)
n[i]=0;
k=2;
k;
for(j=0;
j<
j++)
n[j]=n[i]+1;
n[1]);
A)2B)1C)0D)3
27.以下程序输出的结果是_______。
intd=1;
fun(intp)
{intd=5;
d+=p++;
printf("
d);
{inta=3;
fun(a);
d+=a++;
A)84B)96C)94D)85
28.下列各组变量中,不可作为函数参数的是_______。
A)指向结构体变量的指针变量;
B)数组名或指向数组的指针变量;
C)指向函数的指针变量;
D)共用体变量;
29.若有以下说明和语句:
structstudent
{intnumber;
char*name;
}stu1,*p=&
stu1;
则以下引用方式不正确的是_______和_______。
A)stu1->
numberB)(*p).numberC)p->
number
D)stu1.numberE)*p.number
30.
下列变量中,哪类变量的生存期和作用域是不一致的_______。
A)自动变量B)定义在文件最前面的全局变量
C)局部静态变量
D)寄存器变量
二、填空题(每小题2分,共20分)
•
1.C程序是由_______构成的,其编译是以_______为单位进行的。
2.
设a为int型变量,请写出描述"
a是奇数"
的表达式_______
3.若数组a有m列,则a[i][j]之前的数组元素个数为_______。
4.请读程序片段:
charstr[]="
english"
*p=str;
%s\n"
*(p+3));
上面程序片段的输出结果是_______。
5.执行下面的程序段后,k值为_______。
k=1;
n=263;
do{k*=n%10;
n/=10;
}while(n);
6.变量的作用域是指变量的有效范围。
按作用域变量可分为_______变量
和_______变量两大类。
。
7.设有程序片段:
switch(ch)
{caseˊAˊ:
printf("
85-100\n"
);
caseˊBˊ:
70-84\n"
caseˊCˊ:
60-69\n"
caseˊDˊ:
<
60\n"
default:
error!
\n"
若ch的值为ˊDˊ,则输出结果是_______。
8.下面程序的功能是在三个字符串中找出最小的,请填空:
{chars[20],str[3][20];
inti;
i++)gets(str[i]);
strcpy(s,____________________________);
if(strcmp(str[2],s)<
0)strcpy(s,str[2]);
_______);
9.写出下列两种指针的定义:
指针p1为指向整型数据的指针______________;
p2为指向字符串"
Iamastudent"
的指针______________。
10.在一个源文件中定义的局部变量的作用域为______________。
三、阅读程序,按要求完成各题。
(20分)
1.以下程序的功能是:
利用函数求出用户输入的5个float型数据的平均值,
请填空。
(4分)
floatfunc(floata[],intn)
{inti;
floatsum=0.0,ave;
_______;
sum=______________;
ave=_______;
return(_______);
floata[5],average;
5;
%f"
a[i]);
average=func(a,5);
Theaverageoffivefloatis:
%f\n"
average);
2.下面程序是将数组a的内容逆置重放。
请填空:
(6分)
{inta[8],i,j,t;
Input8numbertothearray:
8;
=3;
{j=_______;
t=a[i];
a[i]=a[j];
\nThearrayhasbeeninvered:
"
%d"
a[i]);
3.以下程序的功能是:
从键盘输入两个字符串,利用函数比较其是否相等,若相等返回1,否则返回0。
f(chars[],chart[])
{inti=0;
while(s[i]==t[i]&
s[i]!
=ˊ\0ˊ)_______;
if(s[i]==ˊ\0ˊ&
_______)return
(1);
else_______;
{chara[6],b[7];
%s%s"
a,b);
i=f(a,b);
i);
4.输入一整数x,在数组a中查找x第一次出现的位置。
(4分)
{inta[10]={10,24,34,55,9,17,87,22,9,19},x,i;
printf(“Inputaninteger:
”);
_______"
x);
if(_______)break;
if(_______)
Notfound.\n"
else
Positionis:
%d\n"
i);
参考答案
模拟试题二
一.选择题
1.D)2.C)3.B)4.D)5.A)
6.D)7.C)8.B)9.B)10.C)
11.C)12.D)13.A)14.D)15.A)
16.C)17.B)18.A)19.D)20.B)
21.D)22.A)23.D)24.D)25.D)
26.D)27.A)28.D)29.A)E)30.C)
二.填空题
1.函数,文件2.a%2!
=0(或a%2==1)3.i*m+j
4.lish5.366.全局局部
7.<
60
8.(strcmp(str[0],str[1])<
0?
str[0]:
str[1])s
9.int*p1;
char*p2="
10.该变量所在的函数
三.阅读程序
1.i<
nsum+a[i]sum/nave
2.&
a[i]8-i-1a[j]=t
3.i++t[i]==ˊ\0ˊreturn(0)
4.%di<
10a[i]==xi>
=10