C语言全部章节习题集(本)

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

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

if(strcmp (a [j], a[k])<0) k=j; if(k!=i )

{strcpy(c,a[i]) ; strcpy(a[i], a[k]); strcpy(a[k],c);} // 字符串交换 }

for(i=0; i<10; i++) puts (a[i]); }

4、阅读程序,写出运行结果 #include void main( ) {

int a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j; for(i=0;i<6;i++) {

for(j=0;j<6;j++) if(a[i]==b[j])break; if(j<6) printf(\ }

printf(\}

5、阅读程序,写出运行结果。 #include void main( ) {

char a[8],temp; int j,k; for(j=0;j<7;j++) a[j]='a'+j; a[7]='\\0'; for(j=0;j<3;j++) {

temp=a[6];

for(k=6;k>0;k--) a[k]=a[k-1]; a[0]=temp;

printf(\ } }

- 21 -

6、阅读下列程序,写出程序运行的输出结果。 #include #include void main( ) {

char str1[ ]=\ for(int i=0;i<4;i++) {

printf(\ str1[i]=' ';

str1[strlen(str1)-1]='\\0'; } }

7、该程序的运行结果是: min= ,m= ,n= 。 void main() {

float array[3][4]={

{3.4,-5.6,56.7}, {56.8,999.,-.0123}, {0.45,-5.77,123.5}, {43.4,0,111.2} }; int i,j; int min; int m,n;

min = array[0][0]; m=0;n=0;

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

if(min > array[i][j]) {

min = array[i][j]; m=i;n=j; }

printf(\

8、写出下面这个程序的输出结果: void main() {

char str[]=\

printf(\屏幕上显示 printf(\屏幕上显示 str[2]=str[5];

- 22 -

printf(\屏幕上显示 str[9]='\\0';

printf(\屏幕上显示 }

8 函数

一、单项选择题

1、C 语言总是从( )函数开始执行。

A. main B. 处于最前的 C.处于最后的 D. 随机选一个 2、函数在定义时,省略函数类型说明符,则该函数值的类型为( )。 A. int B. float C. long D. double 2、以下( )函数,真正地没有返回值。

A. int a(){int a=2;return (a);} B. void b(){printf(\C. int a(){int a=2;return a;} D. 以上都是 3、在 C 语言中,有关函数的说法,以下正确的是( )。

A. 函数可嵌套定义,也可嵌套调用 B. 函数可嵌套定义,但不可嵌套调用 C. 函数不可嵌套定义,但可嵌套调用 D. 函数不可嵌套定义,也不可嵌套调用 4、以下函数调用语句中,含有实参的个数为( )。 fun((2,3),(4,5+6,7));

A. 1 B. 2 C. 5 D. 6 5、函数调用可以在( )。

A. 函数表达式中 B. 函数语句中 C. 函数参数中 D. 以上都是 6、被调函数返回给主调函数的值称为( )。

A. 形参 B. 实参 C. 返回值 D. 参数 7、 ( ),可以不进行函数类型说明。

A. 被调函数的返回值是整型或字符型时 B. 被调函数的定义在主调函数定义之前时 C. 在所有函数定义前,已在函数外预先说明了被调函数类型 D. 以上都是 8、被调函数通过( )语句,将值返回给主调函数。 A. if B. for C. while D. return 9、被调函数调用结束后,返回到( )。 A.主调函数中该被调函数调用语句处 B.主函数中该被调函数调用语句处

C.主调函数中该被调函数调用语句的前一语句 D.主调函数中该被调函数调用语句的后一语句

10、以下对 C语言函数的有关描述中,正确的是( )。

A. 在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. C函数既可以嵌套定义又可递归调用

- 23 -

C. 函数必须有返回值,否则不能使用函数

D. C程序中有调用关系的所有函数必须放在同一个源程序文件中 11、C 语言中函数的隐含存储类型是( )。

A. auto B. static C. extern D. 无存储类型

12、能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是( )。 A. return 这两个数 B.形参用两个元素的数组 C. 形参用两个这种数据类型的指针 D.用两个全局变量 13、C语言可执行程序从什么地方开始执行 ( )。 A. 程序中第一条可执行语句 B. 程序中第一个函数

C. 程序中的main函数 D. 包含文件中的第一个函数

14、有一个函数原型为abc(float x,float y);,则该函数的返回类型为( ) 。 A. void B. double C. int D. float

二、填空题

1、变量的作用域主要取决于变量 ,变量的生存期既取决于变量 ,又取决于变量 。

2、说明变量时,若省略存储类型符,系统默认其为 存储类别,该存储类别的类型符为: 。

3、静态型局部变量的作用域是 ,生存期是 。

4、函数中的形参和调用时的实参都是数组名时,传递方式为 ,都是变量时,传递方式为 。

5、函数的形式参数的作用域为 ,全局的外部变量和函数体内定义的局部变量重名时, 变量优先。

6、若自定义函数要求返回一个值,则应在该函数体中有一条 语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符 。

7、若函数的形式参数是指针类型,则实参可以是 或 。 8、函数的参数为 char *类型时,形参与实参结合的传递方式为 。 9、函数的实参为常量时,形参与实参结合的传递方式为 。

10、下面这个函数的功能是求两个整数的积,并通过形参传回结果,请填空。 void mul(___x,___y,___result) {

=x*y; }

- 24 -

三、判断题

( )1、函数说明指的是在程序中设定一个函数模块。 ( )2、形参只有在被调用时才分配存储空间。 ( )3、在C的函数中,最好使用全局变量。

( )4、在调用函数时,实参传值给形参,调用结束时,形参值传给实参。 ( )5、所有函数定义都是并行的,相互独立的。 ( )6、函数的隐含存储类型是extern。 ( )7、形参可以是常量、变量或表达式。 ( )8、函数调用可以作为一个函数的形参。

( )9、C语言规定,实参应与其对应的形参类型一致。 ( )10、定义函数时,形参的类型说明可以放在函数体内。

四、程序填空题

1、对数组按值从大到小的顺序排序后输出,请填空。 #include void main() {

float a[7]={2,6,3,8,3,12,9}; int i ;

void sort(float*,int); ;

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

void sort( ) {

int i,j,k; float t; for(i=0;i

k=i;

for(j=i+1;j

if( ) k=j;

{ t=*(p+i); *(p+i)=*(p+k); *(p+k)=t; } } }

2、下列函数在 n 个元素的一维数组中,找出最大值、最小值并传送到调用函数,请填空。

- 25 -

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4