c语言模拟题目第四套.docx
《c语言模拟题目第四套.docx》由会员分享,可在线阅读,更多相关《c语言模拟题目第四套.docx(15页珍藏版)》请在冰豆网上搜索。
c语言模拟题目第四套
第四套
若有说明:
inta[3][4];则数组a中各元素()。
A、不能得到确定的初值
B、可在程序的编译阶段得到初值0
C、可在程序的运行阶段得到初值0
D、可在程序的编译或运行阶段得到初值0
【参考答案】错误
A
【学生答案】
[未答此题]
已定义floata;inti;选择正确的输入语句().
A、scanf("%6.2f%3d",&a,&i);
B、scanf("%f%s",&a,&i);
C、scanf("%6f%3d",&a,&i);
D、scanf("%f%d",a,i);
【参考答案】错误
C
【学生答案】
[未答此题]
执行下面程序段后,k的值是:
()
intk=2;
switch(k+1)
{case3:
k+=1;
case4:
k--;break;
case5:
k*=3;
case6:
++k;
}
A、10
B、2
C、28
D、27
【参考答案】错误
B
【学生答案】
[未答此题]
执行下列语句后的输出为()。
intj=-1;
if(j<=1)printf("****\n");
elseprintf("%%%%\n");
A、%%%%
B、****
C、有错,执行不正确
D、%%%%c
【参考答案】错误
B
【学生答案】
[未答此题]
以下程序段中,能够正确地执行循环的是()。
A、ints=6;m:
if(s<100)exit(0);elses-=2;gotom:
B、ints=6;dos-=2;while(s);
C、for(i=1;i>10;i++)
D、staticinta;while(a)
【参考答案】错误
B
【学生答案】
[未答此题]
运行结果是"1112"的程序段是:
请在A处填写正确内容()。
for(i=1;i<=2;i++)
___A___
A、for(j=1;j<=2;j++)printf("%3d",10*i+j);break;
B、{for(j=1;j<=2;j++)printf("%3d",10*i+j);break;}
C、for(j=1;j<=2;j++)printf("%3d",10*i+j);continue;
D、{for(j=1;j<=2;j++)printf("%3d",10*i+j);continue;}
【参考答案】错误
B
【学生答案】
[未答此题]
对以下说明语句inta[10]={6,7,8,9,10};的正确理解是()。
A、将5个初值依次赋给a[6]至a[10]
B、将5个初值依次赋给a[0]至a[4]
C、因为数组长度与初值的个数不相同,所以此语句不正确
D、将5个初值依次赋给a[1]至a[5]
【参考答案】错误
B
【学生答案】
[未答此题]
如果在一个函数中的复合语句中定义了一个变量,以下正确的说法是().
A、该变量在本程序范围内均有效
B、该变量在主函数中有效
C、该变量只在该复合语句中有效
D、该变量在该函数中有效
【参考答案】错误
C
【学生答案】
[未答此题]
设有宏定义#definePI3.14和#defineS(r)PI*r*r,则S
(2)的值为().
A、6.28
B、12.56
C、3.14
D、9.42
【参考答案】错误
B
【学生答案】
[未答此题]
设有以下定义:
inta[10]={1,2,3,4,5,6,7,8,9,10};
int*p=a;
则数值为6的表达式是().
A、p+5
B、*p+6
C、*(p+6)
D、*p+=5
【参考答案】错误
D
【学生答案】
[未答此题]
C程序的每行中只能写一条语句
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
在C语言中,各种类型的整型数据在内存中都占2个字节。
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
条件表达式x?
'a':
'b'中,若x=0时,表达式的值为'b'.
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
while和do…while循环不论什么条件下它们的结果都是相同的.
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
for循环体中遇到continue语句,会转向执行for语句中的条件判断(语句2).
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
inta[3][4]={{1},{5},{9}};它的作用是将数组各行第一列
的元素赋初值,其余元素值为0。
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
函数的返回值可以通过函数中的return语句获得。
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
若有#defineS(a,b)a*b则语句area=S(3,2);area的值为6。
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
指向某一变量的指针,就是该变量的内存地址.
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
若有定义:
inta=10,b=9,c=8;接着顺序执行下列语句后,变量c中的值是_____.c=(a-=(b-5));c=(a%11)+(b=3);
【空1】错误
【学生答案】
[无]
【参考答案】
9
============================================================
当a=3,b=2,c=1;时,执行以下程序段后b=_____.if(a>b)a=b;if(b>c)b=c;elsec=b;c=a;
【空1】错误
【学生答案】
[无]
【参考答案】
1
============================================================
以下程序的输出结果为_____,
#include"stdio.h"
voidmain()
{inta;for(a=0;a<10;a++);printf("%d",a);}
【空1】错误
【学生答案】
[无]
【参考答案】
10
============================================================
staticinta[3][3]={{1,2,3},{4,5,6},{7,8,9}};其中a[1][2]的值为_____.
【空1】错误
【学生答案】
[无]
【参考答案】
6
============================================================
若有fp=fopen("a1.dat","rb+")打开文件语句,这个文件的数据是以_____的形式存放在内存中,
该文件的使用方式为读/_____。
【空1】错误
【学生答案】
[无]
【参考答案】
二进制
============================================================
【空2】错误
【学生答案】
[无]
【参考答案】
写
============================================================
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:
用函数求一个N阶方阵右下三角元素的和(包括副
对角线上的元素)。
注意:
请在Begin和End注释行之间填写代码,
所有注释语句都不能删除。
------------------------------------------------*/
#include"stdlib.h"
#include"stdio.h"
#defineN3
intsum(inta[][N])
{
/*********Begin**********/
/**********End**********/
}
voidmain()
{
inta[N][N],i,j;
voidTestFunc();
for(i=0;i{
for(j=0;j{
a[i][j]=rand()%10+10;//rand函数的功能是产生一个随机整数
printf("%3d",a[i][j]);
}
printf("\n");
}
printf("===================\n");
printf("sum=%5d\n",sum(a));
TestFunc();
}
voidTestFunc()
{
FILE*IN,*OUT;
intm,n;
inti[3][3];
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFileError");
}
for(m=0;m<3;m++)
for(n=0;n<3;n++)
fscanf(IN,"%d",&i[m][n]);
o=sum(i);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
【参考代码】
inti,j,k=0;
for(i=0;ifor(j=N-1-i;jk=k+a[i][j];
return(k);
===============
【考生代码】
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
用指针作函数参数,编程序求一维数组中的最大和最小的
元素值.
--------------------------------------------------------
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include"stdio.h"
#defineN10
/***********ERROR***********/
voidmaxmin(intarr[],int*pt1,*pt2,n)
{
inti;
/***********ERROR***********/
*pt1=*pt2=&arr[0];
for(i=1;i{
/***********ERROR***********/
if(arr[i]<*pt1)*pt1=arr[i];
if(arr[i]<*pt2)*pt2=arr[i];
}
}
main()
{
intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;
/***********ERROR***********/
*p1=&a;*p2=&b;
maxmin(array,p1,p2,N);
printf("max=%d,min=%d",a,b);
}
【改错1】错误
【学生答案】
voidmaxmin(intarr[],int*pt1,*pt2,n)
【参考答案】
voidmaxmin(intarr[],int*pt1,int*pt2,intn)
maxmin(intarr[],int*pt1,int*pt2,intn)
voidmaxmin(int*arr,int*pt1,int*pt2,intn)
============================================================
【改错2】错误
【学生答案】
*pt1=*pt2=&arr[0];
【参考答案】
*pt1=*pt2=arr[0];
*pt1=*pt2=*(arr+0);
*pt2=*pt1=arr[0];
============================================================
【改错3】错误
【学生答案】
if(arr[i]<*pt1)*pt1=arr[i];
【参考答案】
if(arr[i]>*pt1)*pt1=arr[i];
if(*(arr+i)>*pt1))*pt1=arr[i];
if(*pt1<*(arr+i)))*pt1=arr[i];
if(*pt1
============================================================
【改错4】错误
【学生答案】
*p1=&a;*p2=&b;
【参考答案】
p1=&a;p2=&b;
============================================================
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
产生10个[30,90]区间上的随机整数,然后对其用选择法
进行由小到大的排序。
---------------------------------------------------------
请在程序的下划线处填入正确的内容,并把下划线删除,使程序得
出正确的结果。
注意:
不得增行或删行,也不得更改程序的结构!
-------------------------------------------------------*/
#include"stdio.h"
#include"stdlib.h"
voidmain()
{
/***********FILL***********/
_____;
inti,j,k;
inta[10];
for(i=0;i<10;i++)
a[i]=rand()%61+30;//产生[30,90]区间上的随机整数
for(i=0;i<9;i++)
{
/***********FILL***********/
_____;
for(j=i+1;j<10;j++)
/***********FILL***********/
if(_____)k=j;
if(k!
=i)
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
/***********FILL***********/
for(_____)
printf("%5d",a[i]);
printf("\n");
}
【空1】错误
【学生答案】
_____;
【参考答案】
intt
============================================================
【空2】错误
【学生答案】
_____;
【参考答案】
k=i
============================================================
【空3】错误
【学生答案】
if(_____)k=j;
【参考答案】
a[k]>a[j]
a[j]
============================================================
【空4】错误
【学生答案】
for(_____)
【参考答案】
i=0;i<10;i++
i=0;10>i;i++
i=0;i<=9;i+=1
i=0;9>=i;i++
i=0;i<10;i+=1
i=0;10>i;i+=1
i=0;i<=9;i++
i=0;9>=i;i+=1
i=0;i<10;++i
i=0;10>i;++i
i=0;9>=i;++i
i=0;i<=9;++i
============================================================