c语言模拟题库Word文件下载.docx
《c语言模拟题库Word文件下载.docx》由会员分享,可在线阅读,更多相关《c语言模拟题库Word文件下载.docx(22页珍藏版)》请在冰点文库上搜索。
A、a<
>
0
B、!
a
C、a=0
D、a
9、以下正确的是(
A、do-while语句构成的循环不能用其它语句构成的循环来代替
B、do-while语句构成的循环只能用break语句退出
C、用do-while语句构成循环时,只有在while后的表达式非零时结束循环
D、用do-while语句构成循环时,只有在while后的表达式为零时结束循环
10、
有以下程序段
n,t=1,s=0;
scanf("
%d"
&
n);
do{
s=s+t;
t=t-2;
}while
(t!
=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是( )。
(1分)
A、任意正奇数B、任意负偶数
C、任意正偶数D、任意负奇数
11、C语言中
while
和do-while循环的主要区别是(
A、do-while的循环体至少无条件执行一次
B、while的循环控制条件比do-while的循环控制条件更严格
C、do-while允许从外部转到循环体内
D、do-while
的循环体不能是复合语句
12、C语言中,数组名代表()。
A、数组全部元素的值B、数组首地址
C、数组第一个元素的值D、数组元素的个数
13、在C
语言中,引用数组元素时,其数组下标的数据类型允许是()。
A、整型常量
B、整型表达式
C、整型常量或整型表达式
D、任何类型的表达式
14、关于C语言以下说法正确的是(
A、只有当实参和与其对应的形参同名时才共占用存储单元
B、形参是虚拟的,不占用存储单元
C、实参和与其对应的形参各占用独立的存储单元
D、实参和与其对应的形参共占用一个存储单元
15、返回值为void的函数,其含义是(
A、调用函数之后,被调用的函数没有返回值
B、调用函数之后,被调用的函数不返回
C、调用函数之后,被调用的函数的返回值为任意的类型
D、以上三种说法都是错误的
16、C语言程序由函数组成。
以下说法正确的是(
A、主函数必须在其它函数之前,函数内可以嵌套定义函数
B、主函数可以在其它函数之后,函数内不可以嵌套定义函数
C、主函数必须在其它函数之前,函数内不可以嵌套定义函数
D、主函数必须在其它函数之后,函数内可以定义函数
17、若有定义语句int
(*p)[M];
其中的标识符p是()
A、M个指向整型变量的指针B、指向M个整型变量的函数指针
C、一个指向具有M个整型元素的一维数组指针
D、具有M个指针元素的一维指针数组,每个元素都只能指向整型量
18、若有语句:
char
*line[5];
,以下叙述中正确的是()。
A、定义line是一个指针数组,每个数组元素是一个基类型为char的指针变量B、定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C、定义line是一个指针数组,语句中的*号称为间址运算符
D、定义line是一个指向字符型函数的指针
19、用C语言编写的代码程序( )。
A、可立即执行B、是一个源程序
C、经过编译即可执行D、经过编译解释才能执行
20、若执行fopen函数时发生错误,则函数的返回值是()。
A、地址值B、0C、1D、EOF
21、计算机能直接执行的程序是(
A、源程序
B、目标程序
C、汇编程序
D、可执行程序
22、以下合法的赋值语句是(
A、x=y=100
B、d--;
C、x
+
y
D、c
=
int(a+b);
23、下列叙述中正确的是()。
A、break语句只能用于switch语句B、在switch语句中必须使用default
C、break语句必须与switch语句中的case配对使用
D、在switch语句中,不一定使用break语句
25、对以下for循环:
for(x=0,y=0;
(y!
=123)&
(x<
4);
x++,y++;
叙述正确的是(
A、是无限循环
B、循环次数不定
C、执行了4次
D、执行了3次
26、在循环结构的循环体中执行break语句,其作用是(
A、结束本次循环,进行下次循环
B、继续执行break语句之后的循环体中各语句
C、跳出该循环体,提前结束循环 D、终止程序运行
27、若已定义数组:
float
a[8];
则下列对数组元素引用正确的是()。
A、a[0]
=1;
B、a[8]=a[0];
C、a=1;
D、a[3.5]=1;
28、有以下函数定义:
void
fun(int
n,double
x)
{……},若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是
()。
A、fun(int
y,double
m);
B、k=fun(10,12.5);
C、fun(x,n);
D、void
fun(n,x);
29、有如下函数调用语句:
fuc(rec1,rec2+rec3,(rec4,rec5));
该函数调用语句中,含有的实参个数是()。
A、3B、4
C、5D、有语法错
30、以下关于return
语句的叙述中不正确的是()。
A、一个自定义函数中必须有一条return
语句
B、一个自定义函数中可以根据不同情况设置多条return
语句
C、定义成void
类型的函数中可以有带返回值的return
D、没有return
语句的自定义函数在执行结束时不能返回到调用处
31、
说明语句"
(*p)()"
的含义是()。
A、p是一个指向一个一维数组的指针变量
B、p是指针变量,它指向一个整型数据的指针
C、p是一个指向函数的指针,该函数的返回值是一个整型
D、以上都不对
32、若有定义:
a[3][4];
不能表示数组元素a[1][1]的是()。
A、*(a[1]+1)
B、*(&
a[1][1])
C、(*(a+1)[1])
D、*(a+5)
33、设有以下说明语句struct
ex{
y;
z
}
example;
则下面的叙述中不正确的是()
A、struct结构体类型的关键字B、example是结构体类型名
C、x,y,z都是结构体成员名D、struct
ex是结构体类型
34、当定义一个结构体变量时,系统分配给它的内存空间是()。
A、结构中一个成员所需的内存量B、结构中最后一个成员所需的内存量
C、结构体中占内存量最大者所需的容量D、结构体中各成员所需内存量的总和
若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。
A、-3 B、9
C、-12 D、6
41、以下叙述中正确的是()。
A、全局变量的的作用域一定比局部变量的作用域范围大
B、静态(static)类别变量的生存期贯穿于整个程序的运行期间
C、函数的形参都属于全局变量
D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值
42、以下定义语句中,错误的是()。
A、inta[]={1,2};
B、char*a[3];
C、chars[10]="
test"
D、intn=5,a[n];
43、以下叙述中正确的是()。
A、C语言程序将从源程序中第一个函数开始执行
C、C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
44、函数调用语句:
fseek(fp,-20L,2);
A、将文件位置指针移到距离文件头20个字节处
B、将文件位置指针从当前位置向后移动20个字节
C、将文件位置指针从文件末尾处后退20个字节
D、将文件位置指针移到离当前位置20个字节处
45、计算机能直接执行的程序是()。
A、源程序B、目标程序
C、汇编程序D、可执行程序
46、下面不是C语言合法标识符的是()。
A、fine5B、&
i
C、_scoreD、flag
47、若已定义a=8,b=2则表达式a||b&
(a-b*4)的运行结果是()。
A、8B、1
C、0D、2
48、以下选项中,当x为大于1的奇数时,值为0的表达式()。
A、x%2==1B、x/2
C、x%2!
=0D、x%2==0
49、表达式"
0?
(0?
3:
2):
(10?
1:
0)"
的值为()。
A、3B、2C、1D、0
53、合法的数组定义是()。
A、inta[]="
string"
B、inta[5]={0,1,2,3,4,5};
C、chara="
D、chara[]={0,1,2,3,4,5};
54、若函数的形参为一维数组,则下列说法中正确的是()。
A、调用函数时的对应实参必为数组名B、形参数组可以不指定大小
C、形参数组的元素个数必须等于实参数组的元素个数
D、形参数组的元素个数必须多于实参数组的元素个数
56、若有以下说明和语句,intc[4][5],(*p)[5];
p=c;
能正确引用c数组元素的是( )。
A、p+1B、*(p+3)
C、*(p+1)+3D、*(p[0]+2])
58、当说明一个联合体变量时,系统分配给它的内存为()。
A、联台体中的一个成员所需的内存量B、联台体中最后一个成员所需的内存量
C、联台体体中占内存量最大者所需容量D、联台体中各成员所需内存量的总和
59.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件打开方式字符串应是()。
(1分)
A、"
ab+"
B、"
wb+"
C、"
rb+"
D、"
ab"
62、设有:
inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>
b)&
(n=c>
d)后n的值为()。
A、1B、2
C、3D、4
63、若变量c为char类型,能正确判断出c为小写字母的表达式是()。
(1分)
A、'
a'
=c<
='
z'
B、(c>
)||(c<
)
C、('
=C)and('
=C) D、(c>
)&
(c<
64、在C语言中,用户能使用的正确标识符是()。
A、5fB、_5f
C、structD、_f.5
68、以下关于函数的叙述中正确的是()。
A、每个函数都可以被其它函数调用(包括main函数)
B、每个函数都可以被单独编译
C、每个函数都可以单独运行
D、在一个函数内部可以定义另一个函数
74、若有定义:
x=0,
*p=&
x;
,则语句printf("
%d\n"
*p);
的输出结果是()。
A、随机值B、0C、x的地址D、p的地址
二、填空题(15道小题,共15分)
1、(函数)是C程序的主要组成部分。
2、在执行fopen函数时,ferror函数的初值是(0)(1分)
3、由顺序、选择、循环三种基本结构构成的程序叫(结构化)
程序。
4、若k为int整型变量且赋值7,x为double型变量且赋值8.4,赋值表达式k=x的运算结果是(8)。
5、设y为int型变量,请写出描述"
y是奇数"
的表达式。
y%2==1
6、使用sqrt()函数前必须包含头文件(math.h)。
7、若a=1,b=2则表达式a<
b?
a:
b+1的值是
(1)。
8、下面程序段中循环体的执行次数是(3)次。
a=10;
b=0;
do
{b=b+2;
a-=2+b;
while(a>
=0);
9、执行下面程序段后,k的值是(36)。
k=1;
n=263;
{
k*=n%10;
n=n/10;
while(n);
10、如定义语句为char
a[
]=
"
计算机"
b[
程序设计"
语句
printf("
%s"
strcat(a,b));
的输出结果为。
计算机程序
11、字符串"
ab\n\\012/\\\"
的长度为(10)。
12、在主调函数中调用一个函数时,函数名后面括号中的参数称为(实际参数),简称(实参)。
13、如果一个变量值在某一时刻是存在的,则认为这一时刻属于该变量的(函数)(1分)
14、指针变量可以作为函数的参数,其作用是传递或接受一个变量的(地址)。
15、一个函数在编译时被分配一个入口地址,这个入口地址就称之为函数的(指针)。
16、C程序的基本组成单位是(函数)。
17、已知:
a=1,b=1,c=1;
执行完表达式c=++a&
b++后,变量b的值是
(1)。
19.以下程序的功能是计算s=1+12+123+1234+12345。
请填空。
main()
t=0,s=0,i;
for(i=1;
i<
=5;
i++)
t=i+;
}
s=%d\n"
s);
20.计算sum=1+1/2+1/4+...+1/50的值,并显示出来。
#include<
stdio.h>
intmain()
i=2;
sum=1.0;
while(i<
=50)
{sum+=1/__;
i+=2;
()printf("
sum=%f\n"
sum);
21.在采用传值调用时,实参可以是常量、变量或表达式,而形参只能是(变量)。
23、定义p为指向整型数据的指针变量的语句为。
int*p;
24、赋值语句是由赋值表达式加上(分号)构成的。
26、当执行以下程序时,输入01234567890<
回车>
则其中while循环体将执行
(1)次。
#include
{
ch;
while((ch=getchar())=='
0'
)
#"
);
28、用%s输出字符串时,printf函数中的输出项是(字符数组名),不是数组元素名(1分)
29、在函数内部定义的只在本函数内有效的变量叫(局部变量)。
在函数以外定义的变量叫(全局变量)。
30、有int
x=2,y=3;
且y+=(x++),则x=(3)。
31、以下程序的功能是求10个数中的正整数之和,请补全程序。
stdio.h"
Intmain()
{int
s=0,i,j;
for(i=0;
=10;
i++)
{scanf("
j);
if(j<
=0)
s+=j;
和=%4d"
}(1分)
32、以下findmax返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空。
findmax(int
s[],int
t)
k,p;
for(p=0,k=p;
p<
t;
p++)
if(s[p]>
s[k])
__________
return
k;
34、函数可以相互调用,但不能调用(主)函数。
35、可以通过字符数组名或字(符串函数)对一个字符串进行整体的输入输出。
37、在变量说明中给同类变量赋初值时,各变量之间用(逗号)隔开。
39、以下程序以每行10个数据的形式输出a数组,请填空。
voidmain()
inta[50],i;
printf("
输入50个整数:
for(i=0;
50;
i++)
scanf("
a[i])
for(i=1;
=50;
{
if(i%10==0)
printf("
%3d\n"
);
%3d"
a[i-1]);
}
}
40、使用getchar()函数前必须包含头文件(stdio.h)。
41、在定义函数时函数名后面括号中的变量名称为(形参)。
42、C语言中,数组元素的下标下限为(0)。
44、有int
x,y,z;
且x=3.2,y=4.2,z=2,则表达式z=(x+y)/z的值为(3)。
47、下面程序的功能是输出数组s中最大元素的下标,请填空。
main(
)
k,
p;
s[
]={1,-9,7,2,-10,3};
6;
p++)
____________
k);
48、C语言中,数组在内存中占一片(连续)的存储区。
50、如果一个变量在某个文件或函数范围内是有效的,就称该范围为该变量的(作用域)。
四、程序分析题(9道小题,共36分)
1、有以下程序,执行后输出结果是什么?
16
main()
i=0,s=0;
if
(i%2!
\\if(i%2==0)zeresultis12
i++;
continue;
s
+=
i;
while(
7
s);
2、如下程序的执行结果是什么?
6
i,sum=0;
=3;
sum++)
sum+=i;
3、阅读程序,分析程序的功能。
Zifudeshurushuchu
#include
string.h>
s[80];
i
80;
s[i]=getchar(
if(s[i]=='
\n'
break;
s[i]='
\0'
i=0;
while(s[i])
putchar(s[i++]);
putchar('
4、以下程序的输出结果是什么?
-850,2,0
main()
i,j,row,col,m;
arr[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};
m=arr[0][0];
3;
for(j=0;
j<
j++)
if(arr[i][j]<
m)
{m=arr[i][j];
row=i;
col=j;
%d,%d,%d\n"
m,row,col);
5、以下程序的输出结果是什么?
输入1,3输出是:
maxis3
max(float
x,float
y);
a,b;
c;
%f,%f,"
a,&
b);
c=max(a,b);
max
is
c);
y)
z;
z=x>
y?
x:
return(
6、以下程序的输出结果是什么?
21
func(int
a,int
b)
c=a+b;
x=6,y=7,z=8,
r;
r=func((x--,y++,x+y),
z--);
r);
7、以下程序的输出结果是什么?
a[]={2,4,6,8,10},y=1,x,*p;
p=&
a[1];
for(x=0;
x++)
y+=*(p+x);
pr