c语言模拟六001.docx
《c语言模拟六001.docx》由会员分享,可在线阅读,更多相关《c语言模拟六001.docx(21页珍藏版)》请在冰点文库上搜索。
c语言模拟六001
试卷编号:
9154
所属语言:
C语言
试卷方案:
VC_20120521
试卷总分:
100分
共有题型:
5种
一、填空共10题(共计10分)
第1题(1.0分)题号:
293
getchar()函数只能接收一个【1】.
答案:
=======(答案1)=======
字符
第2题(1.0分)题号:
1188
设a取二进制数00101101,若想通过a^b运算使a的高4位取反,低4位不变,则b的
二进制数是【1】.
答案:
=======(答案1)=======
11110000
第3题(1.0分)题号:
345
字符串比较的库函数是【1】,只写函数名即可.
答案:
=======(答案1)=======
strcmp
第4题(1.0分)题号:
307
当a=1,b=2,c=3时,执行以下程序段后c=【1】.
if(a>c)b=a;
a=c;
c=b;
答案:
=======(答案1)=======
2
第5题(1.0分)题号:
331
C程序在执行过程中,不检查数组下标是否【1】.
答案:
=======(答案1)=======
越界
第6题(1.0分)题号:
540
若有以下定义和语句:
inta[5]={1,3,5,7,9},*p;
p=&a[2];
则++(*p)的值是【1】.
答案:
=======(答案1)=======
6
第7题(1.0分)题号:
1533
有函数调用fun1(x+y,(y,z),10,fun((x,y-1)));函数fun1有【1】个参数.
答案:
=======(答案1)=======
4
第8题(1.0分)题号:
344
复制字符串的库函数是【1】,只写函数名即可.
答案:
=======(答案1)=======
strcpy
第9题(1.0分)题号:
1554
C语言中调用【1】函数来打开文件.
答案:
=======(答案1)=======
fopen
=========或=========
fopen()
第10题(1.0分)题号:
1531
若charw,intx,floaty,doublez;则表达式w*x+z-y的结果为【1】类型.
答案:
=======(答案1)=======
double
=========或=========
双精度
二、单项选择共20题(共计40分)
第1题(2.0分)题号:
110
C语言中,char类型数据占()。
A:
1个字节
B:
2个字节
C:
4个字节
D:
8个字节
答案:
A
第2题(2.0分)题号:
573
C语言中运算对象必须是整型的运算符是()。
A:
%=
B:
/
C:
=
D:
〈=
答案:
A
第3题(2.0分)题号:
576
设以下变量均为int类型,则值不等于7的表达式是()。
A:
(x=y=6,x+y,x+1)
B:
(x=y=6,x+y,y+1)
C:
(x=6,x+1,y=6,x+y)
D:
(y=6,y+1,x=y,x+1)
答案:
C
第4题(2.0分)题号:
92
以下的选择中,正确的赋值语句是()。
A:
a=1,b=2
B:
j++
C:
a=b=5;
D:
y=int(x)
答案:
C
第5题(2.0分)题号:
621
printf函数中用到格式符%5s,其中数字5表示输出的字符串占用
5列,如果字符串长度大于5,则输出按方式()。
A:
从左起输出该字符串,右补空格
B:
按原字符长从左向右全部输出
C:
右对齐输出该字串,左补空格
D:
输出错误信息
答案:
B
第6题(2.0分)题号:
510
inta=3,b=2,c=1;
if(a>b>c)a=b;
elsea=c;
则a的值为()。
A:
3
B:
2
C:
1
D:
0
答案:
C
第7题(2.0分)题号:
506
以下程序段的输出结果为()。
for(i=4;i>1;i--)
for(j=1;j
putchar('#');
A:
无
B:
######
C:
#
D:
###
答案:
B
第8题(2.0分)题号:
615
C语言中while和do-while循环的主要区别是()。
A:
do-while的循环体至少无条件执行一次
B:
while的循环控制条件比do-while的循环控制条件更严格
C:
do-while允许从外部转到循环体内
D:
do-while的循环体不能是复合语句
答案:
A
第9题(2.0分)题号:
513
inta[10];合法的数组元素的最小下标值为()。
A:
10
B:
9
C:
1
D:
0
答案:
D
第10题(2.0分)题号:
636
若二维数组a有m列,则在a[i][j]前的元素个数为()。
A:
j*m+i
B:
i*m+j
C:
i*m+j-1
D:
i*m+j+1
答案:
B
第11题(2.0分)题号:
657
以下不能正确进行字符串赋初值的语句是()。
A:
charstr[5]="good!
";
B:
charstr[]="good!
";
C:
char*str="good!
";
D:
charstr[5]={'g','o','o','d',0};
答案:
A
第12题(2.0分)题号:
666
若调用一个函数,且此函数中没有return语句,则正确的说法是:
该函数()。
A:
没有返回值
B:
返回若干个系统默认值
C:
能返回一个用户所希望的值
D:
返回一个不确定的值
答案:
D
第13题(2.0分)题号:
176
数组名作为实参数传递给函数时,数组名被处理为()。
A:
该数组的长度
B:
该数组的元素个数
C:
该数组的首地址
D:
该数组中各元素的值
答案:
C
第14题(2.0分)题号:
659
凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。
A:
自动(auto)
B:
静态(static)
C:
外部(extern)
D:
寄存器(register)
答案:
A
第15题(2.0分)题号:
694
以下叙述正确的是()。
A:
可以把define和if定义为用户标识符
B:
可以把define定义为用户标识符,但不能把if定义为用户标识符
C:
可以把if定义为用户标识符,但不能把define定义为用户标识符
D:
define和if都不能定义为用户标识符
答案:
B
第16题(2.0分)题号:
199
若有inta[][]={{1,2},{3,4}};则*(a+1),*(*a+1)的含义分别为()。
A:
非法,2
B:
&a[1][0],2
C:
&a[0][1],3
D:
a[0][0],4
答案:
B
第17题(2.0分)题号:
198
设有以下语句,若0charstr[4][2]={"aaa","bbb","ccc","ddd"},*strp[4];
intj;
for(j=0;j<4;j++)
strp[j]=str[j];
A:
strp
B:
str[k]
C:
strp[k]
D:
*strp
答案:
A
第18题(2.0分)题号:
541
若有inti=3,*p;p=&i;下列语句中输出结果为3的是()。
A:
printf("%d",&p);
B:
printf("%d",*i);
C:
printf("%d",*p);
D:
printf("%d",p);
答案:
C
第19题(2.0分)题号:
743
C语言结构体类型变量在程序执行期间()。
A:
所有成员一直驻留在内存中
B:
只有一个成员驻留在内存中
C:
部分成员驻留在内存中
D:
没有成员驻留在内存中
答案:
A
第20题(2.0分)题号:
725
在执行fopen函数时,ferror函数的初值是()。
A:
TRUE
B:
-1
C:
1
D:
0
答案:
D
三、程序填空共2题(共计20分)
第1题(10.0分)题号:
435
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
找出数组中最大值和此元素的下标,数组元素的值由键盘
输入。
-------------------------------------------------------*/
#include
voidmain()
{
inta[10],*p,*s,i;
for(i=0;i<10;i++)
/***********SPACE***********/
scanf("%d",【?
】);
/***********SPACE***********/
for(p=a,s=a;【?
】<10;p++)
/***********SPACE***********/
if(*p【?
】*s)s=p;
/***********SPACE***********/
printf("max=%d,index=%d\n",【?
】,s-a);
}
答案:
=======(答案1)=======
a+i
=========或=========
&a[i]
=======(答案2)=======
p-a
=======(答案3)=======
>
=======(答案4)=======
*s
第2题(10.0分)题号:
420
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
计算某日是当年的第几天。
-------------------------------------------------------*/
#include
struct
{
intyear;
intmonth;
intday;
}data;/*定义一个结构并声明对象为data*/
voidmain()
{
intdays;
printf("请输入日期(年,月,日):
");
scanf("%d,%d,%d",&data.year,&data.month,&data.day);
switch(data.month)
{
case1:
days=data.day;
break;
/***********SPACE***********/
case2:
days=data.day+【?
】;
break;
case3:
days=data.day+59;
break;
case4:
days=data.day+90;
break;
/***********SPACE***********/
case5:
days=data.day+【?
】;
break;
case6:
days=data.day+151;
break;
case7:
days=data.day+181;
break;
case8:
days=data.day+212;
break;
case9:
days=data.day+243;
break;
case10:
days=data.day+273;
break;
case11:
days=data.day+304;
break;
case12:
days=data.day+334;
break;
}
/***********SPACE***********/
if(data.year%4==0&&data.year%100!
=0【?
】data.year%400==0)
if(data.month>=3)
/***********SPACE***********/
days=【?
】;
printf("%d月%d日是%d年的第%d天.\n",data.month,data.day,data.year,days);
}
答案:
=======(答案1)=======
31
=======(答案2)=======
120
=======(答案3)=======
||
=======(答案4)=======
days+1
=========或=========
1+days
=========或=========
++days
四、程序改错共1题(共计10分)
第1题(10.0分)题号:
421
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
一个偶数总能表示为两个素数之和。
------------------------------------------------------*/
#include
#include
main()
{
inta,b,c,d;
/**********FOUND**********/
scanf("%d",a);
for(b=3;b<=a/2;b+=2)
{
for(c=2;c<=sqrt(b);c++)
if(b%c==0)
break;
if(c>sqrt(b))
/**********FOUND**********/
d=a+b;
else
break;
for(c=2;c<=sqrt(d);c++)
/**********FOUND**********/
if(d%c=0)
break;
if(c>sqrt(d))
printf("%d=%d+%d\n",a,b,d);
}
}
答案:
=======(答案1)=======
scanf("%d",&a);
=======(答案2)=======
d=a-b;
=======(答案3)=======
if(d%c==0)
五、程序设计共2题(共计20分)
第1题(10.0分)题号:
351
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
请编一个函数voidfun(inttt[M][N],intpp[N]),
tt指向一个M行N列的二维数组,求出二维数组每列
中最大元素,并依次放入pp所指一维数组中。
二维
数组中的数已在主函数中赋予。
------------------------------------------------*/
#include
#include
#defineM3
#defineN4
voidwwjt();
voidfun(inttt[M][N],intpp[N])
{
/**********Program**********/
/**********End**********/
}
main()
{
intt[M][N]={{22,45,56,30},
{19,33,45,38},
{20,22,66,40}};
intp[N],i,j,k;
printf("Theoriginaldatais:
\n");
for(i=0;i{
for(j=0;jprintf("%6d",t[i][j]);
printf("\n");
}
fun(t,p);
printf("\nTheresultis:
\n");
for(k=0;kprintf("\n");
wwjt();
}
voidwwjt()
{
inti,j,array[3][4],p[4];
FILE*rf,*wf;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
fscanf(rf,"%d",&array[i][j]);
fun(array,p);
for(j=0;j<4;j++)
{
fprintf(wf,"%7d",p[j]);
fprintf(wf,"\n");
}
fclose(rf);
fclose(wf);
}
答案:
----------------------
inti,j;
for(j=0;j{
pp[j]=tt[0][j];
for(i=1;iif(tt[i][j]>pp[j])
pp[j]=tt[i][j];
}
----------------------
第2题(10.0分)题号:
401
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
若x、y为奇数,求x到y之间的奇数和;若x、y为偶
数,则求x到y之间的偶数和。
------------------------------------------------*/
#include
voidwwjt();
intfun(intx,inty)
{
/**********Program**********/
/**********End**********/
}
main()
{
ints;
s=fun(1,1999)-fun(2,1998);
printf("s=%d\n",s);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intn;
inti[2];
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(n=0;n<2;n++)
{
fscanf(IN,"%d",&i[n]);
}
o=fun(i[0],i[1]);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
答案:
----------------------
inti,s=0;
for(i=x;i<=y;i+=2)
s=s+i;
returns;
----------------------