计算机二级考试C语言模拟试题(一)
单项选择题
1、 下列程序的输出结果是( )。
main( )
{int i=1,j=2,k=3;
if(i++= =1&&(++j= =3= =‖k++= =3))
printf("%d%d%d\n",i,J,k);
)
A.1 2 3
B.2 3 4
C.2 2 3
D.2 3 3
2、以下叙述正确的是( )
A.只能在循环体内和switch语句体内使用break语句
B.contiune语句的作用是结束整个循环的执行
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句
3、设fp已定义,执行语句fp=fope.("file","w:);后,以下针对文本文件file操作叙述的选项中正确的是
A.写操作结束后可以从头开始读
B.只能写不能读
C.可以在原有内容后追加写
D.可以随意读和写
4、 有以下程序:
程序运行后的输出结果是( )。
A.7
B.8
C.9
D.10
5、在数据流图中,带有箭头的线段表示的是( )。
A.控制流
B.数据流
C.模块调用
D.事件驱动
6、
( )
A.1001,ZhangDa,1098.0
B.1002,ZhangDa,1202.0
C.1001,ChangRong,1098.0
D.1002,ChangRon1202.0
7、 设变量已正确定义,则以下能正确计算f=n!的程序是( )。
A.f=0; for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;iC.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
8、
有以下程序
#include
void fun(int n,int*p)
( int f1,f2;
if(n==1|| n==2)*p=1;
else
{ fun(n-1,&f1);fun(n-2,&f2);
*p=f1+f2;
}
}
main()
{ int s;
fun(3,&s);printf("%d",s);
}
程序的运行结果是( )。
A.2
B.3
C.4
D.5
填空题
9、请补充main()函数,该函数的功能是:如果数组arr的前一个元素比后一个元素小,则把它保存在数组bb中并输出。
例如,若数组中的元素为:“40,68,62,33,35,52,48,95,66,73”,则输出:“40,33,35,48,66”。
注意:部分源程序给出如下。
请勿改动函数()main和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#define M l0
void main()
{
int i,n=0;
int arr[M]=(40,68,62,33,35,52,48,95,66,73);
int bb[M];
system("CLS");
for(i=0;i<【1】;i++)
if(arr[i] 【2】 ;
printf("\n***display bb***\n");
for(i=0;i printf("bb[%d]=%2d",【3】);
}
10、
请补充函数proc(),该函数的功能是把数组num中的数按从小到大的顺序排列(数组元素个数及值从主函数中输入)。
例如,输入n=5,num[0]~num[4]依次为5 7 2 8
0,结果为0 2 5 7 8。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#define M 100
void proc(int num[],int n)
{
int i,j,t;
for(i=0;【1】;i++)
for(j=0;【2】;j++)
if(num[j]>num[j+1])
{
t=numEj];
num[j]=num[j+1];
num[j+1]=t;
}
}
void main()
{
int i=0,n=0;
int num[M];
system("CLS");
printf("\nlnput n:\n");
scanf("%d",&n);
printf("\nlnput data:\n");
while,i {
prtntf("num[%d]=",i);
scanf("%d",&num[i]);
i++;
}
proc(num,n);
printf("\n***the result***\n");
for(i=0;i printf("%4d",num[i]);
}
一对一 咨询课程
点我开始