收藏 分销(赏)

C语言数组与函数测试卷.doc

上传人:丰**** 文档编号:4321872 上传时间:2024-09-06 格式:DOC 页数:7 大小:73.01KB 下载积分:6 金币
下载 相关 举报
C语言数组与函数测试卷.doc_第1页
第1页 / 共7页
C语言数组与函数测试卷.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
C语言数组与函数阶段测试题答案 一、选择题(18*2=36分) 1、在定义“int a[5][6];”后,第11个元素是【 C 】 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在内存中所占字节数是【 D 】。 A、3 B、6 C、10 D、20 3、当接受用输入的含空格的字符串地,应使用的函数是【 B 】 A、scanf() B、gets() C、getchar() D、getc() 4、设有数组定义:char array[]=”China”;。则数组array所占的空间为【 C 】 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]的值依次为【 D 】 A、 1,2,3,4 B、 0,3,3,4 C、 0,2,3,4 D、0,2,4,3 6、以下程序的输出结果是【 C 】 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 9 B、 1 4 7 C、3 5 7 D、 3 6 9 7、不能把字符串:Hello!赋给数组b的语句是【 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 】 A、值传递 B、地址传递C、返回值传递D、全局外部变量 9、以下关于函数的叙述中不正确的是【 B 】    A、C程序是函数的集合,包括标准库函数和用户自定义函数    B、在C语言程序中,被调用的函数必须在main函数中定义 C、在C语言程序中,函数的定义不能嵌套    D、在C语言程序中,函数的调用可以嵌套 10、若用数组名作为函数调用的实参,则传递给形参的是【 A 】   A、数组的首地址 B、 数组的第一个元素的值 C、数组中全部元素的值 D、数组元素的个数 11、C语言中,凡未指定存储类别的局部变量的隐含存储类别是【 A 】  A、 auto B、static C、extern  D、 register 12、若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是【 A 】 A、3    B、4   C、5     D、6 13、若程序中定义函数 float myadd(float a, float b) { return a+b;}并将其放在调用之后,则在调用之前应对该函数进行说明。以下说明中错误的是【 A 】   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、以下函数值的类型是【 A 】 fun (float x) { float y; y= 3*x-4; return y;} A、 int B、不确定 C、 void D、 float 15、 #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); } 上面程序的输出结果是【 B 】 A、 720 B、 120 C、24 D、 6 16.有以下程序: int f(int n) { if(n= =1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=1;i<3;i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是【 B 】 A)4 B) 3 C)2 D)1 17.以下程序的输出结果是【 D 】 int f() { static int i=0; int s=1; s+=i; i++; return s;} main() { int i,a=0; for(i=0;i<5;i++) a+=f(); printf("%d\n",a); } A)20 B)24 C)25 D)15 18.在C语句中,函数的隐含存储类型是【 A 】 A)auto B)static C)extern D)无存储类别 二、读程序写结果(8*5=40分) 1、#include<stdio.h> 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('*'); } } 程序运行后的输出结果是【 SW* 】 2、#include<stdio.h> 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,2,2,3 】 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]; } 程序运行后的输出结果是【 5 】  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); } 程序运行后的输出结果是【 12 】 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); } 程序运行后的输出结果是【 4 】 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)); } 程序输出的最后一个值是【 120 】 7、#define MAX 5 int 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、#include<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 4 int findmax(int a[ ][N]) { int i, j, max = a[0][0]; for(i = 0; i< M; ①i++; ) for(j = 0; j<N; j++) if(a[i][j]>max) max = a[i][j]; ②return (max); } void main( ) { int i, j, max, ③a[M][N] ; 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( ①x[i]!='\0'&&y[i]!='\0' ) if (x[i]==y[i]) printf ("%c", ②x[i++] ); else ③i++; } 3、以下为递归法求n!的函数。 float Fac(int n) { float f ; if ( n < 0 ) printf ( “error! ” ); else if ( n = = 0 | | n = = 1) ①f=(float)n; else ②f=n*Fac(n-1); return ( ③f ) } 4、 编写N个任意不同的正整数存入数组a,后求数组a最大值与平均值的差,最后输出。 #define N 8 main( ) {int a [N] = {8,6,4,10,7,9,5,1}; int i,max,sum,c; max =a [0]; sum = ①a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]; c = 0; for(i=0;i < N;i + +) {if(a[i] > max) ②max=a[i]; ③c++; } printf("%f\n", (max-1.0 * sum/c)); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服