c语言模拟题目第四套
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四套
若有说明:int a[3][4];则数组a中各元素()。
A、不能得到确定的初值
B、可在程序的编译阶段得到初值0
C、可在程序的运行阶段得到初值0
D、可在程序的编译或运行阶段得到初值0
【参考答案】错误
A
【学生答案】
[未答此题]
已定义float a; int i;选择正确的输入语句( ).
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的值是:( )
int k=2;
switch(k+1)
{case 3:k+=1;
case 4:k--;break;
case 5:k*=3;
case 6:++k;
}
A、10
B、2
C、28
D、27
【参考答案】错误
B
【学生答案】
[未答此题]
执行下列语句后的输出为()。
int j=-1;
if(j<=1) printf("****\n");
else printf("%%%%\n");
A、%%%%
B、****
C、有错,执行不正确
D、%%%%c
【参考答案】错误
B
【学生答案】
[未答此题]
以下程序段中,能够正确地执行循环的是( )。
A、int s=6; m:if(s<100) exit(0); else s-=2; goto m:
B、int s=6; do s-=2; while(s);
C、for(i=1;i>10;i++)
D、static int a; while(a)
【参考答案】错误
B
【学生答案】
[未答此题]
运行结果是" 11 12"的程序段是:请在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
【学生答案】
[未答此题]
对以下说明语句 int a[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
【学生答案】
[未答此题]
设有宏定义#define PI 3.14 和#define S(r) PI*r*r,则S(2)的值为( ).
A、6.28
B、12.56
C、3.14
D、9.42
【参考答案】错误
B
【学生答案】
[未答此题]
设有以下定义:
int a[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). 【学生答案】错误
未答此题
============================================================
【参考答案】
错误
int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列
的元素赋初值,其余元素值为0。
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
函数的返回值可以通过函数中的return语句获得。
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
若有 #define S(a,b) a*b 则语句 area=S(3,2); area的值为6。
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
指向某一变量的指针,就是该变量的内存地址.
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
若有定义:int a=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; else c=b; c=a;
【空 1】错误
【学生答案】
[无]
【参考答案】
1
============================================================
以下程序的输出结果为_____,
#include "stdio.h"
void main()
{int a;for(a=0;a<10;a++);printf("%d",a);}
【空 1】错误
【学生答案】
[无]
【参考答案】
10
============================================================
static int a[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"
#define N 3
int sum(int a[][N])
{
/*********Begin**********/
/********** End **********/
}
void main()
{
int a[N][N],i,j;
void TestFunc();
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
a[i][j]=rand()%10+10; //rand函数的功能是产生一个随机整数 printf("%3d",a[i][j]);
}
printf("\n");
}
printf("===================\n");
printf("sum=%5d\n",sum(a));
TestFunc();
}
void TestFunc()
FILE *IN,*OUT;
int m,n;
int i[3][3];
int o;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write File Error");
}
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);
}
【参考代码】
int i,j,k=0;
for(i=0;i<N;i++)
for(j=N-1-i;j<N;j++)
k=k+a[i][j];
return(k);
===============
【考生代码】
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:用指针作函数参数,编程序求一维数组中的最大和最小的元素值.
-------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/ #include "stdio.h"
#define N 10
/***********ERROR***********/
void maxmin(int arr[ ],int *pt1, *pt2, n)
{
int i;
/***********ERROR***********/
*pt1=*pt2=&arr[0];
for(i=1;i<n;i++)
{
/***********ERROR***********/
if(arr[i]<*pt1) *pt1=arr[i];
if(arr[i]<*pt2) *pt2=arr[i];
}
}
main( )
{
int array[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】错误
【学生答案】
void maxmin(int arr[ ],int *pt1, *pt2, n)
【参考答案】
void maxmin(int arr[ ],int *pt1,int *pt2,int n)
maxmin(int arr[ ],int *pt1,int *pt2,int n)
void maxmin(int *arr,int *pt1,int *pt2,int n)
============================================================
【改错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<arr[i]) *pt1=arr[i];
============================================================
【改错4】错误
【学生答案】
*p1=&a;*p2=&b;
【参考答案】
p1=&a;p2=&b;
============================================================
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:产生10个[30,90]区间上的随机整数,然后对其用选择法进行由小到大的排序。
---------------------------------------------------------
请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
-------------------------------------------------------*/ #include "stdio.h"
#include "stdlib.h"
void main()
{
/***********FILL***********/
_____;
int i,j,k;
int a[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】错误
【学生答案】
_____;
【参考答案】
int t
============================================================
【空2】错误
【学生答案】
_____;
【参考答案】
k=i
============================================================
【空3】错误
【学生答案】
if(_____) k=j;
【参考答案】
a[k]>a[j]
a[j]<a[k]
============================================================
【空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
============================================================。