C语言实验五六
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a),并利用这一函数,输
(2)定义一个函数递归函数 long 的值。 #include <stdio.h> long f(int n) { return n == 0 ? 1: n*f(n-1); } int main(void) { printf("%ld\n", f(4) + f(6) + 7); return 0; }
2.void fun1( ) { int x=5; printf( "x=%d\n", x ); } void fun2( ) { printf( "x=%d\n", ++x ); main( ) { int x=2; fun1( ); fun2( x ); printf( "x=%d\n", x ); } 运行结果:x=5 x=3 x=2 3.分析程序运行结果,并验证程序。
4.编程题 (1) 从键盘输入十个数对一个一维数组赋值,并将其中的奇数存放到另一个数组中后再输 出,并输出奇数的个数。 如:从键盘输入: 13 14 17 34 45 55 56 76 77 99 则输出: 13 17 45 55 77 99 count = 6 #include <stdio.h> int main() { int s1[15],s2[15],i,j; for( i = 0 ,j = 0 ; i < 10 ; i++) { scanf("%d",&s1[i]); if(s1[i]%2 != 0 ) {s2[j] = s1[i];j++;} } for( i = 0 ; i < 10 ; i++) { printf("%d ",s1[i]); } printf("\n"); for( i = 0 ; i < j ; i++) { printf("%d ",s2[i]); } printf("\n"); }
4.编程题: (1)定义一个能判断任意整数 a 是否是素的函数 isprime( int 出 100~199 之间的所有素数。 #include<stdio.h> #include<math.h> void main() { int isprime(int i); int i; for(i=100;i<200;i++) { if(isprime(i)) printf("%3d,",i); } printf("\n"); } int isprime(int x) { int i; for(i=2;i<=(int)sqrt(x);i++) if(x%i==0) return 0; return 1; }
(2) 编程求一个 m*n 的二维数组中所有元素的最大值,元素可随机产生。 #include<stdio.h> void main() { int a[5][5],max,i,j; for(i=0;i<5;i++) for(j=0;j<5;j++) scanf("%d",&a[i][j]); max=a[0][0]; for(i=0;i<5;i++) for(j=0;j<5;j++) if(a[i][j]>max) { max=a[i][j]; }
(2)若有三个字符串 s1、s2 和 s3,其中 s1="abcdef", s2="123456",要求用字符数组实现 将 s1 的内容复制到 s3 中,交将 s2 的内容添加到 s3 的后面,最后输出 s3。 main() { char s1="abcdef", s2="123456",s3[20]=""; i=0; j=0; while ( s1[i]!='\0' ) { s3[ i ]=s1[ i ]; i++; } i--; while ( s2[ j ]!='\0' ) { s3[i]=s2[j] ; j++; } for ( j=i,i=0;i ) printf( "%c", s3[ i ] ); }
2.将程序补充完整,以完成以下功能,并上机调试并上机调试并上机调试并上机调试。 (1)以下程序以每行输出 4 个,输出 a 数组。 (中等难度题) #include "stdio.h" { int a[12], i; for ( i=0; i<12; i++ ) scanf( "%d", a[i] ); for (i=0; i<12; i++ ) { if ( i%4==0 ) ; printf( "%6d", a[i] ); } printf( "\n" ); }
计机 153 实训五
【实训目的】
xxxx
201510224xxx 数 组
1.掌握一维数组、二维数组的定义、数组元素的引用形式和赋值的方法 2.掌握一维数组、二维数组的输入和输出的 3.掌握和一维数组、二维数组有关的典型算法 【实训内容】 1.分析和记录以下程序运行结果,并上机验证:
# include "stdio.h" main() { int v[5]; int i; v[0]=197; v[2]=-100; v[4]=350; v[5]=v[0]+v[2]; --v[4]; for (i=0;i<5;i++) printf( "v[%d]=%d\n", i, v[i] ); } 该程序的运行结果是 v[0]=197 v[4]=349
v[1]=-858993460
v[2]=-100
v[3]=-858993460
# include "stdio.h" main() { int t, i; int a[10]={ 1,2,3,4,5,6,7,8,9,10 }; t=a[9]; for ( i=9; i>1; i-=2) a[i]=a[i-2]; a[1]=t; for ( i=0; i<10; i++ ) printf( "%3d", a[i] ); } 该程序的运行结果是: 1 10 3 2 # include main() "stdio.h"
printf("最大数为:%d\n",max); }
实训六
【实训目的】 1.掌握定义函数的方法;
函
数
2.掌握函数实参和形参的对应关系,以及“值传递”的方法;
3.掌握数组名作为实参时,实参和形参之间的传递方法 【实训内容】
1.分析和记录以下程序运行结果,并上机验证: (1)#include "stdio.h" main() { int x=2, y=4; int swap( int, int ); printf("(1)in main: x=%d, y=%d\n", x, y); swap(x, y); printf("(4)in main: x=%d, y=%d\n",x, y); } swap( int a, int b) { int t; printf("(2)in swap: a=%d, b=%d\n",a, b); t=a; a=b; b=t; printf("(3)in swap: a=%d, b=%d\n",a, b); } 运行结果:(1)in main: x=2, y=4 (2)in swap: a=2, b=4 (3)in swap: a=4, b=2 (4)in main: x=2, y=4
f (int
n) 求 n!,并利用此函数,求出 sum=4!+6!+7!
}
static int x=20; void fun1( int x ) { x+=10; printf("%d......fun1( )\n", x ); fun2( ) { x+=10;
}Baidu Nhomakorabea
printf("%d......fun2( )\n", x );
}
main( ) { int x=10; fun1( x ); fun2( ); printf("%d......main( )\n", x ); } 运行结果:20......fun1() 30......fun2() 10......main()
5
4
7
6
9
{
int num[4][4]={11,22,33,44,1,2,3,4,10,20,30,40,12,22,32,42}; int i, j, s=0; for (j=0; j<3; j++) for ( i=0; i<3; ++i ) if ( i==j ) s+=num[j][i]; printf( "%d\n", s); } 该程序的运行结果是: 43