C语言数组与函数考试试题

  • 格式:doc
  • 大小:55.50 KB
  • 文档页数:4

2014年上期职二对口C语言程序设计第一次月考试题(适用班级1219、1220)班级:姓名:总分:一、选择题(15*2=30分)1、在定义“int a[5][6];”后,第11个元素是。

A、a[2][5]B、a[2][4]C、a[1][4]D、a[1][5]2、假定int类型变量占用两个字节,其定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是。

A、3B、6C、10D、203、当接受用输入的含空格的字符串地,应使用的函数是。

A、scanf()B、gets()C、getchar()D、getc()4、设有数组定义:char array[]=”China”;。

则数组array所占的空间为。

A、4个字节B、5个字节C、6个字节D、7个字节5、设有变量定义:int a [ ] = {1,2,3,4};执行语句a[3] = - - a[0]? a[1] + + : a[2] + +;执行后,数组的元素a[0], a[1], a[2], a[3]的值依次为A、 1,2,3,4B、 0,3,3,4C、 0,2,3,4D、0,2,4,36、以下程序的输出结果是void main( ){int i, x[3][3] = { 1,2,3,4,5,6,7,8,9}for(i= 0;i < 3; i + +) printf("3%d", x[i][2 - i]); }A、 1 5 9B、 1 4 7C、3 5 7D、 3 6 97、不能把字符串:Hello!赋给数组b的语句是A、 char b [10] = {‘H’‘e’‘l’‘l’‘o’‘!’};B、char b [10] ; b = “Hello!”;C、 char b [10] ; strcpy(b, “Hello!”);D、char b [10] = “Hello!”;8、在函数间传递数据的四种方式中,不能把被调函数的数据带回到主调函数的是A、值传递B、地址传递C、返回值传递D、全局外部变量9、以下关于函数的叙述中不正确的是A、C程序是函数的集合,包括标准库函数和用户自定义函数B、在C语言程序中,被调用的函数必须在main函数中定义C、在C语言程序中,函数的定义不能嵌套D、在C语言程序中,函数的调用可以嵌套10、若用数组名作为函数调用的实参,则传递给形参的是A、数组的首地址B、数组的第一个元素的值C、数组中全部元素的值D、数组元素的个数11、C语言中,凡未指定存储类别的局部变量的隐含存储类别是A、autoB、staticC、externD、register12、若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是A、3B、4C、5D、613、若程序中定义函数float myadd(float a, float b) { return a+b;}并将其放在调用之后,则在调用之前应对该函数进行说明。

以下说明中错误的是A、float myadd( float a,b);B、float myadd(float b, float a);C、float myadd(float, float);D、float myadd(float a, float b);14、以下函数值的类型是fun (float x) { float y; y= 3*x-4; return y;}A、 intB、不确定C、 voidD、 float15、#include<stdio.h>f(in b[], int n){ int i, r;r=1;for(i=0; i<=n; i++) r=r*b[i]; return r; }main(){ int x, a[]={ 2,3,4,5,6,7,8,9}; x=f(a, 3); printf("%d\n",x); }上面程序的输出结果是()。

A、 720B、 120C、24D、 6二、读程序写结果(8*5=40分)1、void main ( ){ char str[ ]=”SSWLIA”,c; int k;for (k=1;(c=str[k])!=’\0’;k++){switch (c){ case ‘I’: ++k; break ;case ‘L’: continue;default : putchar(c) ; continue ; }putchar(‘*’); }}程序运行后的输出结果是________2、void fun(int x,int y){ x=x+y;y=x-y;x=x-y; printf("%d,%d,",x,y); }main(){ int x=2,y=3; fun(x,y); printf(“%d,%d\n”,x,y); }程序运行后的输出结果是_____3、#include <stdio.h>int a[3][3]={1,2,3,4,5,6,7,8,9},b[10];main(){ f(b,a); printf("%d\n",b[0]); }f(int s[],int p[ ][3]){ s[0]=p[1][1]; }程序运行后的输出结果是________4、 fun(int a, int b){ if(a>b) return a; else return b; }main(){ int x=3,y=8,z=6,r;r=fun(fun(x,y),2*z); printf("%d\n",r); }程序运行后的输出结果是____5、#include <stdio.h>int i=5;main(){int i=3; { int i=10;i++;}f1();i+=1; printf("%d\n",i); }int f1(){i=i+1; return(i); }程序运行后的输出结果是______6、int ff(int n){ static int f=1; f=f*n; return f; }main(){ int i; for(i=1;i<=5;i++) printf("%5d",ff(i)); }程序输出的最后一个值是______7、#define MAX 5int a[MAX],k;main(){ fun1();fun3(); fun2(); fun3();printf("\n"); }fun1(){ for(k=0;k<MAX;k++) a[k]=k+k; }fun2(){ int a[MAX],k;for(k=0;k<5;k++) a[k]=k; }fun3(){int k; for(k=0;k<MAX;k++) printf("%d",a[k]); } 程序运行后的输出结果是______ 8、#inclued<stdio.h>main(){ int k=4,m=1,p;p=func(k,m); printf(“%d”,p);p=func(k,m);printf(“%d\n”,p); }func(int a,int b){ static int m=0,i=2;i+=m+1; m=i+a+b; return (m); } 程序运行后的输出结果是______三、程序填空(12*2.5=30)1 、下面程序求一个二维矩阵的最大值。

# include <stdio.h>#define M 3#define N 4int findmax(int a[ ][N]){ int i, j, max = a[0][0];for(i = 0; i< M; ① )for(j = 0; j<N; j++)if(a[i][j]>max) max = a[i][j];② }void main( ){ int i, j, max, ③ ;for(i = 0; i<M; i++)for(j = 0; j < N; j++)scanf(“%d”, &a[i][j]);max = findmax(a);printf(“%d”, max);}2、下面程序是输出两个字符串中对应相等的字符。

main (){char x [ ]= "programming", y[ ]= "Fortran";int i=0;while( ① )if (x[i]==y[i])printf ("%c", ② );else③ }3、以下为递归法求n!的函数。

float Fac(int n){ float f ;if ( n < 0 )printf ( “error! ” );else if ( n = = 0 | | n = = 1) ①else ②return ( ③ )}4、编写N个任意不同的正整数存入数组a,然后求数组a中最大值与平均值的差,最后输出。

#define N 8main( ){int a [N] = {8,6,4,10,7,9,5,1};int i,max,sum,c;max =a [0];sum = ①c = 0;for(i=0;i < N;i + +){if(a[i] > max) ②③ }printf("%f\n", (max-1.0 * sum/c)); }。