C语言程序设计实验指导书 - V2.1(10)

2020-03-27 19:24

return ___ ______ ; }

void main( ) { int m;

printf(\ scanf(\

___ ______ ; /*按照例子中的输出形式输出结果*/ }

(四)下面程序的功能是:输入一个十进制整数,输出其对应的二进制数。

编程提示: 在main函数中定义一个变量并为其赋值,然后调用函数fun将该十进制数转换为二进制。

函数fun的形参即为被转换的整数,在for循环中每次求出m%k存放到数组aa中,同时将m/k的整数商赋给m继续判断,直止m的值为0。最后按反序输出数组aa的元素。

请在程序中的三处横线上填入适当的内容,将程序补充完整: /* c9-4.c 通过函数调用实现数制转换*/ #include \void fun(int m) { int aa[20],i,k=2;

for(i=0; m; i++) {aa[i]=m%k; ___ ______ ;} printf(\

for(; i; i--) printf(\void main( ) { int n;

printf(\请输入一个十进制整数:\\n\ fun( ___ ______ ); }

如果将十进制数转换为八进制数,应对程序的哪个语句进行修改?怎样修改?

(五)写一个程序,判别一个整数数组中各元素的值,若大于0 则输出该值,若小于或等于0则输出0值。

编程提示: 判断函数:1.函数的类型为void,函数中不使用return语句;

2.函数的形参为一整型变量;

3.函数体中使用选择结构,根据对变量值的判断输出相应结果。

main函数:1.定义一个一维整型数组;

2. 为整型数组赋若干个数值;

3. 调用判断函数对数组元素逐一进行判断,以数组元素作实参。

/* c9-5.c 判别一个整数数组中各元素的值 */ #include \ void main( ) {

43

}

(六)一维数组a中的元素为:1,4,2,7,3,12,5,34,5,9。求一维数组a中的最大元素及其下标。程序的输出应为:The max is: 34,position is: 7 。要求:求最大元素位置用函数实现,在main函数中调用该函数。

编程提示: 定义一个全局变量max,用来存放最大元素。求最大元素位置的子函数: 1.函数的类型为整型;

2. 函数的形参应为整型一维数组和一整型变量(存放数组元素的个数);

3.函数体中,定义一个整型pos,用来存放当前最大元素在数组中的下标,初值为0;将全局变量max的初值设置为数组中的第一个元素;

4. 函数体中使用循环结构,将数组元素依次和max中的值进行比较,将两者中的最大元素存入max中,并将最大元素的下标存入pos中;

5. 循环结束后,用return语句,将pos的值返回到主函数。 main函数:

1. 定义一个一维整型数组并为该数组赋若干个数;

2. 以赋值语句的形式,将求最大元素位置函数的返回值赋给一个变量,以数组名和数组的元素个数作实参。

注意:以数组名作实参时,实参与形参之间是地址的传递,实参数组和形参数组是公用一段内存单元。

/* c9-6.c 通过函数调用求一维数组中的最大元素及其下标*/

#include \ #include \ int max;

int fun( int arr[ ],int n ) { int pos,i; max = arr[0]; pos = 0;

for( i=1; i

pos=i; }

return (pos); }

void main( )

{ int a[10]={1,4,2,7,3,12,5,34,5,9},n; _______________;

printf(\ }

(七)下面程序的功能是:求二维数组a中的上三角元素之和。

例如:a中的元素为:

4 4 34 37 7 3 12 8

44

5 6 5 52 24 23 2 10 程序的输出应为:The sum is:147。

请在程序中的横线上填入适当的内容,将程序补充完整。

/* c9-7.c 通过函数调用求二维数组中的上三角元素之和*/

#include \

#include \ int arrsum( int arr[4][4]) { int i,j,sum; sum=0;

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

for ( __________;j<4; j++) sum+=arr[i][j]; return (sum); }

void main( )

{ int a[4][4]={4,4,34,37,7,3,12,8,5,6,5,52,24,23,2,10},i,j; printf(\

(八)将字符串1的第1,3,5,7,9,......位置的字符复制到字符串2并输出。 例如:当字符串1为\,则字符串2为\。 编程提示:

子函数:1. 函数的类型为void,函数中不使用return语句;

2. 函数的形参应为两个字符型一维数组;

3. 函数体中使用循环结构,将字符串1中相应位置上的字符逐一复制到字符

串2中,注意循环变量每次递增的数目。 main函数:1. 定义一个一维字符型数组;

2. 为字符数组赋一个字符串;

3. 调用转换函数,以两个数组名作实参;

4. 输出转换后的字符数组的内容。

/* c9-8.c 通过函数调用实现对字符串的处理*/ #include \ #include \ #include \

void fun(char str1[ ],char str2[ ]) { int i,j;

j=0;

for(i=0;i

str2[j]=’\\0’; }

void main()

45

{ char str1[80]=\ printf(\ _______________;

printf(\ }

(九)输入下面的程序并分析运行结果。用F7单步执行,注意程序的执行过程,观察变量d的值,理解全局变量和局部变量的区别,理解各种局部变量的作用范围。

/* c9-9.c 全局变量与局部变量的作用范围 */ int d=1;

fun(int p)

{ int d=5; d+=p++; printf(\main( )

{ int a=3; fun(a); { int d=16; d+=a++; printf(\ printf(\}

五、实验注意事项

(一)定义函数时,函数名后的圆括号后面不能加“;”。 (二)在函数体内,不能再对形参进行定义和说明。

(三)变量作实参时,只使用变量名,实参变量对形参变量的数据传递是“值传递”。 (四)一维数组作函数的实参时,只使用数组名如:fun(a); 。

下面对函数的调用都是不正确的: fun(int a[4]); fun(int a[ ]); fun(int a);

六、思考题

(一)下面程序的功能是:判别一个整数数组中各元素的值,若大于0 则输出该值,若小于或等于0则输出0值。请在程序中的横线上填入适当的内容,将程序补充完整。

#include \void nzp(int v) { int i=0;

if(v>0) printf(\else printf(\}

void main( ) { int a[5],i;

printf(\for(i=0;i<5;i++)

46

{ scanf(\_______________ ; } }

(二)一维数组a中的元素为:1,4,2,7,3,12,5,34,5,9。下面程序的功能是:求一维数组a中的最大元素及其下标。程序的输出应为:The max is: 34,position is: 7 。

请在程序中的横线上填入适当的内容,将程序补充完整。 #include #include int max;

int fun( int arr[ ],int n ) { int pos,i; max = arr[0]; pos = 0;

for ( i=1; i

pos=i; }

return(pos); }

void main()

{ int a[10]={1,4,2,7,3,12,5,34,5,9},n; _______________;

printf(\ }

(三)下面程序的功能是:将字符串1的第1,3,5,7,9,......位置的字符复制到字符串2并输出。

例如,当字符串1为\,则字符串2为\请在程序中的横线上填入适当的内容,将程序补充完整。 #include \ #include \ #include \

void fun(char str1[ ],char str2[ ]) { int i,j;

j=0;

for(i=0;i

str2[j]=’\\0’; }

void main( )

{ char str1[80]=\

47


C语言程序设计实验指导书 - V2.1(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:集团投资发展部工作思路

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: