第三次测试练习题及答案(练习题3-1-2)

更新时间:2024-05-19 21:35:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单项选择

==================================================

1. 题号:3835

以下程序的输出结果是 min()

{int n[6]={1,2,3,4},i,j,k=2; int sum=0, min; min = n[0];

for(i=0;i<6;i++){ sum += n[i]; if( min>n[i] ) min=s[i]; }

pritnf(\}

A、10,1 B、6,1 C、10,0 D、0,0 答案: C

1. 题号:3553

若有以下定义和语句: int a[15]={1,2,3,4},x;

则对a数组元素非法引用的是().

A、x=a[a[2]]; B、x=a[a[7]-1]; C、x=a[a[2]-1]; D、x=a[a[7]+1];

答案: B

2. 题号:3640

以下程序段给数组所有的元素输入数据,请选择正确答案填入(). #include main() {

int a[10],i=0; while(i<10){

scanf(\i++; }

return 0; }

A、&a[i+1] B、&a[i] C、&a[++i] D、ai 答案: B

3. 题号:3597

有以下程序: main()

{int m[][3]={1,2,3,4,5,6,7,8,9}; int i,k=2;

for(i=0;i<3;i++)

printf(\}

执行后输出结果是:.

A、4 5 6 B、7 8 9 C、1 2 3 D、1 4 7

答案: B

4. 题号:3647

下列一维数组说明中不正确的是().

A、int N; scanf(\B、#define S 10 int a[S];

C、int S,int a[15]={0}; S=a[10];

D、float a[]={1,6,6,0,2}; 答案: A

5. 题号:3880

以下能对一维数组a进行正确初始化的语句是().

A、int a[10]=(0,0,0,0,0) B、int a[10]={0}; C、int a[]=(0,0); D、int a[10]=[10*1]; 答案: B

6. 题号:3757

int a[10];合法的数组元素的最小下标值为().

A、10 B、1

C、0 D、9 答案: C

7. 题号:3938

若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中,错误的是().

A、m[--i] B、m[2*2] C、m[m[0]] D、m[m[i]] 答案: C

8. 题号:3633

若有以下说明:

int a[12]={8,9,10,11,12}; 则值为9的表达式是().

A、a[2] B、a[3] C、a[1] D、a[4] 答案: C

9. 题号:3545

有以下程序:

#include int main() {

int a[]={2,3,5,9},i, j;

for(i=0;i<4;i++){

switch(a[i]/3) {

case 1:printf(\春\ case 2:printf(\夏\ case 3:printf(\秋\case 0:

case 4:printf(\冬\ } }

return 0; }

程序运行后的输出结果是().

A、春夏秋冬 B、春秋夏冬 C、冬春春秋 D、冬秋夏春 答案: C

10. 题号:3799

下列定义数组的语句中正确的是().

A、int x[]; B、int x[0..10];

C、#define N 10 int x[N]; D、 int N=10; int x[N]; 答案: C

11. 题号:3762

若有以下定义语句:int a[]={1,2,3,4,5,6,7,8,9,0};,则值为5 的表达式是()

A、a[a[4]] B、a[a[5]] C、a[5] D、a[a[3]] 答案: D

12. 题号:3642

下列选项中能正确定义数组的语句是().

A、int num[0..2008]; B、int N=2008;int num[N]; C、int num[];

D、#define N 2008 int num[N]; 答案: D

判断题

==================================================

1. 题号:3225

若有定义 int a[10];则 for (i=0;i<=10;i++) a[i]=i;编译时无语法错误.

答案:正确

2. 题号:3663

下列程序段是否正确:

int a[10]; .... a++;

答案:错误

3. 题号:3775

若有#define N 5;则a数组定义语句可以写成:int a[N];

答案:正确

4. 题号:3603

数组在内存中占一连续的存储区,数组名代表数组的首地址.

答案:正确

5. 题号:3722

定义 int x[5],n;则x=x+n;或x++;都是正确的.

答案:错误

填空题

==================================================

1. 题号:2506

已知int b[8]={11,5,3,21,67,45,77}; 则b[7]的值是_____.

答案: 空 1: 0

2. 题号:2740

已知int a[10]={1,2,3,4,5,6,7,0,9,6}; 下标最小的元素的值是_____.

答案: 空 1: 1

3. 题号:2690

已知int b[8]={1,2,3}; 则b[0]的值是_____.

答案: 空 1: 1

4. 题号:2779

设x的值为14,n的值为2,则表达式x%=n运算后x的值是_____.

答案: 空 1: 0

5. 题号:2949

已知int a[10]={1,2,3,4,5,6,7,0,9,6}; 下标最大的元素的值是_____.

答案: 空 1: 6

6. 题号:2628

已知int b[8]={11,5,3,21,67,45,77}; 则b[4]的值是_____.

答案: 空 1: 67

7. 题号:2836

已知int b[8]={1,2,3}; 则b[2]的值是_____.

答案: 空 1:

3

8. 题号:3494

以下程序的输出结果是_____。 main()

{ int arr[10], i, k=0; for(i=0; i < 10; i++) arr[i]=i;

for(i=0; i < 4; i++) k +=arr[i] + i; printf(\ }

答案: 空 1: 12

9. 题号:3528

已知int a[10]={3,2,4,1,5,6,7,8,9,10}; 最小的元素的下标值是_____.

答案: 空 1: 3

10.

题号:2870

已知int b[8]={1,2,3}; 则b[6]的值是_____.

for(i=0;iave)k++; return k;

5. 题号:7050

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目:找出一批正整数中的最大的偶数。

注意:部分源程序给出如下。请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。

*********Begin**********和********** End **********不可删除

------------------------------------------------*/

#include \

void TestFunc();

int fun(int a[],int n) {

/**********Begin**********/

/********** End **********/ }

void main() {

int a[]={1,2,9,24,35,18},k; k=fun(a,6);

printf(\TestFunc(); }

void TestFunc() {

FILE *IN,*OUT;

int iIN[10],iOUT,i,j; IN=fopen(\if(IN==NULL) {

printf(\ }

OUT=fopen(\if(OUT==NULL) {

printf(\ }

for(j=0;j<10;j++) {

for(i=0;i<10;i++)

fscanf(IN,\iOUT=fun(iIN,10);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

示例代码:

int i,amax=-1; for(i=0;i

if (a[i]>amax) amax=a[i]; return amax;

6. 题号:7014

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目:将一维数组按从小到大的顺序排序。 具体要求如下:

(1)函数。

void process(int a[10]):将数组a中的元素从小到大排序。

(2)在主程序进行测试。 在主函数中定义一个数组

int a[10]:存储数组值,其初值为{2,1,4,45,23,33,-7,8,5,9};

调用process函数,将数组a中的元素从小到大排序,并输出。

运行结果为:

排序后:-7 1 2 4 5 8 9 23 33 45

*********Begin**********和********** End **********不可删除 */

#include

void process(int a[10]) {

/********** Begin **********/

/********** End **********/ }

int main() {

int a[10]={2,1,4,45,23,33,-7,8,5,9},i; FILE *outf; /*系统判分使用*/

process(a);

printf(\排序后:\ for(i=0;i<10;i++)

printf(\

printf(\

/*此处将结果输出到文件\,请勿改动,否则影响判分*/ outf=fopen(\

fprintf(outf,\排序后:\ for(i=0;i<10;i++)

fprintf(outf,\ fprintf(outf,\ fclose(outf);

return 0; }

示例代码: int i,j,c;

for(i=0;i<9;i++) { }

for(j=i+1;j<10;j++) { }

if(a[i]>a[j]) { }

c=a[i]; a[i]=a[j]; a[j]=c;

7. 题号:7032

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目:将两个一维数组中前n个对应元素相加。

具体要求如下:

(1)设计函数:

void add(int a[], int b[],int n);

将数组b的前n个元素加到数组a的相应的前n个元素上,并在主函数中调用该函数。

(2)在主程序进行测试。 在主函数中定义两个一维数组

int a[10]:存储数组值,其初值为{2,1,4,45,23,33,-7,8,5,9}。

int b[10]: 存储数组值,其初值为{3,1,-5,6,8,12,-2,9,0,35}。 调用add函数,将b数组的前6个元素加到数组a的前6个元素上,输出数组a中的元素

运行结果为:

数组A:5,2,-1,51,31,45,-7,8,5,9 数组B:3,1,-5,6,8,12,-2,9,0,35

*********Begin**********和********** End **********不可删除 */

#include

void add(int a[],int b[],int n) {

/********** Begin **********/

/********** End **********/ }

int main() {

int a[10]={2,1,4,45,23,33,-7,8,5,9}; int b[10]={3,1,-5,6,8,12,-2,9,0,35}; int i;

FILE *outf; /*系统判分使用*/

add(a,b,6);

printf(\数组A:\ for(i=0;i<10;i++) {

printf(\ }

printf(\数组B:\ for(i=0;i<10;i++)

printf(\

/*此处将结果输出到文件\,请勿改动,否则影响判分*/ outf=fopen(\ fprintf(outf,\数组A:\

for(i=0;i<10;i++)

fprintf(outf,\

fprintf(outf,\数组B:\ for(i=0;i<10;i++)

fprintf(outf,\ fclose(outf); return 0; }

示例代码: int i;

for(i=0;i

a[i]=a[i]+b[i]; }

8. 题号:7043

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目:计算一维数组中n个元素的平均值。 具体要求如下:

(1)函数。

double fun(int a[],int n):计算一维数组a中前n个元素的平均值。

(2)在主程序进行测试。 在主函数中定义一个数组

int a[10]:存储数组值,其初值为{23,34,21,45,67,75,13,68,90,88}。

调用fun函数,求出数组a中前6个元素的平均值,结果保留两位小数。 *********Begin**********和********** End **********不可删除

*/

#include

double fun(int a[],int n) {

/********** Begin **********/

/********** End **********/ }

int main() {

int a[10]={23,34,21,45,67,75,13,68,90,88}; double result;

FILE *outf; /*系统判分使用*/

result=fun(a,6);

printf(\

/*此处将结果输出到文件\,请勿改动,否则影响判分*/ outf=fopen(\

fprintf(outf,\ fclose(outf); return 0; }

示例代码: int i; double s=0; for(i=0;i

s=s+a[i]; }

return s/n;

9. 题号:6946

/*------------------------------------------------

【程序设计】

--------------------------------------------------

题目:把20个随机数存入一个数组,然后输出该数组中的最大值。

-------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函 数的花括号中填入所编写的若干语句。

*********Begin**********和********** End **********不可删除

------------------------------------------------*/

#include #include

void TestFunc();

int vector[20] ;

int fun(int list[],int size) {

/*********Begin**********/

/********** End **********/

} main() {

int i;

for (i=0;i<20;i++) {

vector[i]=rand()P;

printf(\ }

i=fun(vector,20);

printf(\

TestFunc(); }

void TestFunc()

{ int i,t; FILE *fp ;

fp = fopen(\for (i=0;i<20;i++) {

fprintf(fp,\ }

t=fun(vector,20);

fprintf(fp,\fclose(fp) ; }

示例代码:

int i,max=0; for(i=1; i

10.

题号:7026

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目请编写函数fun,其功能是:计算并输出给定10个数的方差:

┌ 1 10 ┐0.5 S=│─∑ (Xk-X')^2│ └ 10 k=1 ┘ 1 10 其中X'=─∑ Xk 10 k=1

例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,输出为s=11.730729。 注意:部分源程序在文件prog.c中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

*********Begin**********和********** End **********不可删除

*/

#include #include

double fun(double x[10]) {

/********** Begin **********/

/********** End ***********/ } NONO()

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。*/ FILE *rf, *wf ; int i, j ; double s, x[10] ; rf = fopen(\wf = fopen(\for(i = 0 ; i < 5 ; i++) {

for(j = 0 ; j < 10 ; j++) fscanf(rf, \ s = fun(x) ;

fprintf(wf, \ }

fclose(rf) ; fclose(wf) ; } main()

{ double s, x[10]={95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0}; int i;

printf(\

for(i=0;i<10;i++)printf(\ s=fun(x);

printf(\NONO(); }

示例代码:

int i;

double avg=0.0; double sum=0.0; double abs=0.0; double fc; for (i=0;i<10;i++) sum+=x[i]; avg=sum/10; for (i=0;i<10;i++)

abs+=(x[i]-avg)*(x[i]-avg); fc=sqrt(abs/10) ; return fc;

11.

题号:6913

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目:编写函数对数组中的数据进行从小到大的排序。 -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函 数的花括号中填入所编写的若干语句。

*********Begin**********和********** End **********不可删除

------------------------------------------------*/

#include #include void TestFunc();

void sort(int a[],int n) {

/**********Begin**********/

/********** End **********/ }

void main() {

int a[16],i;

for(i=0;i<16;i++) a[i]=rand()+15; for(i=0;i<16;i++) printf(\

printf(\sort(a,16);

for(i=0;i<16;i++) printf(\TestFunc(); }

void TestFunc() {

FILE *IN,*OUT; int n; int i[10]; int o;

IN=fopen(\if(IN==NULL) {

printf(\ }

OUT=fopen(\if(OUT==NULL) {

printf(\ }

for(n=0;n<10;n++) {

fscanf(IN,\ }

sort(i,10);

for(n=0;n<10;n++)

fprintf(OUT,\fclose(IN);

fclose(OUT); }

示例代码:

int i,j,t; for(i=0;ia[j+1]) {t=a[j]; a[j]=a[j+1]; a[j+1]=t; }

12.

题号:6995

/*------------------------------------------------

【程序设计】

--------------------------------------------------

题目:编写函数fun对主程序中用户输入的具有10 个数据的数组a按由大到小排序,并在主程序中输出 排序结果。

-------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函 数的花括号中填入所编写的若干语句。

*********Begin**********和********** End **********不可删除

------------------------------------------------*/

#include void bky();

int fun(int array[], int n) {

/**********Begin**********/

/********** End **********/ } main() {

int a[10],i;

printf(\请输入数组a中的十个数:\\n\for (i=0;i<10;i++) scanf(\fun(a,10);

printf(\由大到小的排序结果是:\\n\for (i=0;i<10;i++) printf(\printf(\bky(); }

voidbky() {

FILE *IN,*OUT; int n; int i[10];

IN=fopen(\if(IN==NULL) {

printf(\ }

OUT=fopen(\if(OUT==NULL) {

printf(\ }

for(n=0;n<10;n++) {

fscanf(IN,\ } fun(i,10);

for(n=0;n<10;n++) {

fprintf(OUT,\ } fclose(IN); fclose(OUT); }

示例代码: int k,j,t; for (k=0;k t=array[k]; array[k]=array[j]; array[j]=t; }

13.

题号:7027

/*------------------------------------------------

【程序设计】

--------------------------------------------------

题目:求一批数中小于平均值的数的个数。

-------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函 数的花括号中填入所编写的若干语句。

*********Begin**********和********** End **********不可删除

------------------------------------------------*/

#include

void bky();

int average_num(int a[],int n) {

/**********Begin**********/

/********** End **********/ } main() {

int n,a[100],i,num; scanf(\for(i=0;i

printf(\bky(); }

voidbky() {

FILE *IN,*OUT; int n; int i[10]; int o;

IN=fopen(\if(IN==NULL) {

printf(\ }

OUT=fopen(\if(OUT==NULL) {

printf(\ }

for(n=0;n<5;n++) {

fscanf(IN,\

}

o=average_num(i,5); fprintf(OUT,\fclose(IN); fclose(OUT); }

示例代码: int i,sum=0,k=0; double average; for(i=0;ia[i]) k++; return(k);

14.

题号:6975

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目:给定n个数据, 求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。

注意:部分源程序给出如下。请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。

*********Begin**********和********** End **********不可删除

------------------------------------------------*/

#include \

int station(int s[],int n) {

/**********Begin**********/

/********** End **********/ }

main() {

int a[100],n,i,t; clrscr();

scanf(\for(i=0;i

printf(\yzj(); getch(); } yzj() {

FILE *IN,*OUT; int n; int i[10]; int o;

IN=fopen(\if(IN==NULL) {

printf(\ }

OUT=fopen(\if(OUT==NULL) {

printf(\ }

for(n=0;n<10;n++) {

fscanf(IN,\ }

o=station(i,10);

fprintf(OUT,\fclose(IN); fclose(OUT); }

示例代码: int i,k; k=0;

for(i=1;i

15.

题号:6979

/*------------------------------------------------

【程序设计】

--------------------------------------------------

题目:编写函数fun用比较法对主程序中用户输入的具有10

个数据的数组a按由大到小排序,并在主程序中输出 排序结果。

-------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函 数的花括号中填入所编写的若干语句。

*********Begin**********和********** End **********不可删除

------------------------------------------------*/

#include \

int fun(int array[], int n) {

/*********Begin**********/

/********** End **********/ }

main() {

int a[10],i;

printf(\请输入数组a中的十个数:\\n\for (i=0;i<10;i++) scanf(\fun(a,10);

printf(\由大到小的排序结果是:\\n\for (i=0;i<10;i++) printf(\printf(\TestFunc(); }

TestFunc() {

FILE *IN,*OUT; int n; int i[10]; int o;

IN=fopen(\if(IN==NULL) {

printf(\ }

OUT=fopen(\if(OUT==NULL) {

printf(\ }

for(n=0;n<10;n++) {

fscanf(IN,\ }

fun(i,10);

for(n=0;n<10;n++)

本文来源:https://www.bwwdw.com/article/yrj7.html

Top