{ int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19; printf(\\n\); for(i=0; i
printf(\[i]); n=fun(a,n);
printf(\\nThe data after deleted :\n\); for(i=0; i
printf(\[i]); printf(\\n\n\); }
正确答案: != return j
7.34 下列程序的输出的结果是 【6】 , 【7】 。 main()
{ int i,j row,colum,m;
static int array[3][3]={{100,200,300},{28,72,-30}{-850,2,6}}; m=array[0][0]; for(i=0;i<3;i++) for(j=0;j<3;j++) if(array[i][j]<m) { m=array[i][j]; colum=j; row=i; }
printf(\\n\); }
正确答案:-850,~2,0
7.35 下面程序是求出数组arr的两条对角线上元素之和,请填空。 #include \main()
{ int arr[3][3]={2,3,4,8,3,2,7,9,8},a=0,b=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if( 【8】) a=a+arr[i][j]; for(i=0;i<3;i++) for( 【9】 ;j>=0;j--) if( 【10】) b=b+ arr[i][j]; printf(\\n\);
}
正确答案:i==j j=2 i+j==2
2011年计算机等级二级C语言章节习题及答案(7)
第8章 函数
一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)
8.1 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参 考生答案: 正确答案: D
8.2 在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是 A)地址传递 B)单向值传递
C)由实参传形参,再由形参传实参 D)传递方式由用户指定 考生答案: 正确答案: B 8.3 以下正确的说法是
A)定义函数时,形参的类型说明可以放在函数体内 B)return后边的值不能为表达式
C)如果函数值的类型与返回值类型不一致,以函数值类型为准 D)如果形参与实参类型不一致,以实参类型为准 考生答案: 正确答案: C 8.4 以下正确的说法是
A)用户若需调用标准库函数,调用前必须重新定义
B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C)系统根本不允许用户重新定义标准库函数
D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用 考生答案: 正确答案: B 8.5 以下叙述正确的是
A)函数可以嵌套定义但不能嵌套调用 B)函数既可以嵌套调用也可以嵌套定义 C)函数既不可以嵌套定义也不可以嵌套调用
D)函数可以嵌套调用但不可以嵌套定义 考生答案: 正确答案: D
8.6 下面对C语言的描述中,正确的是 A)函数一定有返回值,否则无法使用函数 B)C语言函数既可以嵌套定义又可以递归调用
C)在C语言中,调用函数时,只能将实参的值传递给形参
D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中 考生答案: 正确答案: C 8.7 下列说法中错误的是
A)静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值 B)若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽 C)静态全局变量可以被其他的编辑单位所引用
D)所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语 句)时生成,退出其所在的函数体(或复合语句)时消失 考生答案: 正确答案: C
8.8 以下程序有语法错误,有关错误原因的正确说法是 main() { int G=5,k; void prt_char(); ...
k=prt_char(G); ... }
A)语句 void prt_char();有错,它是函数调用语句,不能用void说明 B)变量名不能使用大写字母
C)函数说明和函数调用语句之间有矛盾 D)函数名不能使用下划线 考生答案: 正确答案: C
8.9 以下正确的函数头定义形式是 A)double fun(int x,int y) B)double fun(int x;int y) C)double fun(int x,int y); D)double fun(int x,y); 考生答案: 正确答案: A
8.10 以下所列的各函数首部中,正确的是 A)void play(var :Integer,var b:Integer) B)void play(int a,b) C)void play(int a,int b)
D)Sub play(a as integer,b as integer) 考生答案: 正确答案: C
8.11 不合法的main函数命令行参数表示形式是 A)main(int a,char *c[]) B)main(int arc,char **arv) C)main(int argc,char *argv) D)main(int argv,char *argc[]) 考生答案: 正确答案: C
8.12 下面函数调用语句含有实参的个数为 func((exp1,exp2),(exp3,exp4,exp5)); A)1 B)2 C)4 D)5
考生答案: 正确答案: B 8.13 设有如下函数 fun (float x)
{ printf(\\n%d\); }
则函数的类型是
A)与参数x的类型相同 B)是void C)是int型 D)无法确定 考生答案: 正确答案: C 8.14 有以下程序
float fun(int x,int y) { return(x+y);} main()
{ int a=2,b=5,c=8;
printf(\\n\((int)fun(a+c,b),a-c)); }
程序运行后的输出结果是 A)编译出错 B)9 C)21 D)9.0
考生答案: 正确答案: B
8.15 以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序 void sort(int a[],int n)
{ int i,j,t; for(i=0;i for(j=i+1;j if(a[i]
{ t=a[i];a[i]=a[j];a[j]=t;} } main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[3],5);
for(i=0;i<10;i++) printf(\[i]); printf(\\n\); }
程序运行后的输出结果是 A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1, C)1,2,3,8,7,6,5,4,9,10, D)1,2,10,9,8,7,6,5,4,3, 考生答案: 正确答案: C
8.16 下列程序执行后的输出结果是 void func1(int i); void func2(int i); char st[]=\void func1(int i) { printf(\[i]); if(i<3) { i+=2;func2(i);} }
void func2(int i) { printf(\[i]); if(i<3) { i+=2;func1(i);} } main()
{ int i=0; func1(i); printf(\\n\); } A)hello B)hel C)hlo D)hlm
考生答案: 正确答案: C
8.17 以下函数返回a所指数组中最大值所在的下标值 fun(int *a,int n)