C语言程序上机实训题
上机练习十六
一、程序改错题功能:一个已排好序的一维数组,输入一个数number,要求按原来排序的规律将它插入数组中. main( )
{ int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number,end,i,j;
for(i=0;i<=10;i++) printf(\
printf(\ if(number>end) a[11]=number; else{ for(i=0;i<10;i++) { if(a[i] { temp1=a[i]; a[i]=number; for(j=i+1;j<11;j++) { temp2=a[j]; a[j]=temp1; temp1=temp2; } break; } } } for(i=0;i<11;i++) printf(\ 二、程序填空题功能:计算并输出high以内最大的10个素数之和,high由主函数传 给fun函数,若high的值为100,则函数的值为732。 #include { int sum = 0, n=0, j, yes; while ((high >= 2) && (【?】)) { yes = 1; for (j=2; j<=high/2; j++ ) if (【?】) { yes=0; break; } if (yes) { sum +=high; n++; } high--; } 【?】;} main ( ) { clrscr( ); printf(\ 三、程序设计题功能:编写程序,实现矩阵(3行3列)的转置(即行列互换) 例如:输入下面的矩阵: 程序输出: 100 200 300 100 400 700 400 500 600 200 500 800 700 800 900 300 600 900#include \int fun(int array[3][3]) { /**********Program**********/ /********** End **********/} main() { int i,j; int array[3][3]={{100,200,300}, {400,500,600},{700,800,900}}; for (i=0; i < 3; i++) { for (j=0; j < 3; j++) printf(\printf(\ fun(array); printf(\ for (i=0; i < 3; i++) { for (j=0; j < 3; j++) printf(\printf(\ 16 C语言程序上机实训题 上机练习十七 一、程序改错题功能:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? #include { long int i,x,y,z; for (i==1;i<100000;i++) { x=sqrt(i+100) y=sqrt(i+268); if(x*x==i+100||y*y==i+268) printf(\ 二、程序填空题功能:统计一个字符串中的字母、数字、空格和其它字符的个数。 #include \main () { char s1[80];int a[4]={0}; int k; 【?】; gets(s1); 【?】; puts(s1); for(k=0;k<4;k++) printf(\} void fun(char s[],int b[]) { int i; for (i=0;s[i]!='\\0';i++) if ('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z') b[0]++; else if (【?】) b[1]++; else if (【?】 ) b[2]++; else b[3]++; } 三、程序设计题功能:求n阶方阵主、副对角线上的元素之积。 #define N 4 #include \float mul(int arr[][N]) { /**********Program**********/ /********** End **********/} main() { int a[N][N],i,j; clrscr(); for(i=0;i for(j=0;j { for(j=0;j printf(\ printf(\ 17 C语言程序上机实训题 上机练习十八 一、程序改错题功能:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大? #include\age(n) int n; { int c; if(n=1) c=10; else c=age(n)+2; return(c);} main() { printf(\ 二、程序填空题功能:对任一整数N(N≠0),它都可以分解成1(或-1)和一些质数(素 数)因子的形式。例如:当N=150时,可分解成1×2×3×5×5; 当N=-150时,可分解为-1×2×3×5×5。下边程序能实现这种分解过程。当N=150,输出以下分解结果:N=1*2*3*5*5 main() { int n,i,j,r; scanf(\ if (n==0) { printf (\ else if (【?】) printf(\ else { printf(\ for(【?】;i<=n;i++) { 【?】 ; while(r==0) { printf(\【?】 ; r=n%i; } } printf(\} 三、程序设计题功能:能计算从1开始到n的自然数的和,n由键盘输入,并在main()函数中输出。 #include \int fun(int n) { /**********Program**********/ /********** End **********/ } main() { int m; printf(\ printf(\ 18 C语言程序上机实训题 上机练习十九 一、程序改错题功能:计算正整数num的各位上的数字之积。例如:若输入:252,则输出应该是:20。 若输入:202,则输出应该是:0。 #include { k*=num ; num\\=10; }while(!num) ; return (k) ; } main( ) { long n ; clrscr() ; printf(\scanf(\ printf(\} 二、程序填空题功能:建立一个如下的二维数组,并按以下格式输出。 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 #include \void main() { int a[5][5]={0},p[5],i,j; for(i=0;i<5;i++) p[i]=【?】; for(i=0;i<5;i++) { (【?】)=1; (p[i][])=1; } for(i=0;i<5;i++) { for(j=0;j<5;j++)printf(\【?】; } } 三、程序设计题题目:输入华氏温度求摄氏温度。转换公式为 c=5/9(f-32),输出结果取两位小数。 float fun(float m) { /**********Program**********/ /********** End **********/ } void main() { float c,f; printf(\请输入一个华氏温度:\ c=fun(f); printf(\摄氏温度为:%5.2f\\n\ 19 C语言程序上机实训题 上机练习二十 一、程序改错题功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。 fun() { int i; float f1=1,f2=1,f3; printf(\ for(i=1;i<=20;i++) { f3=f1+f2; f2=f1; f3=f2; printf(\ printf(\} main() { fun();} 二、程序填空题功能:输出9*9口诀。 main() { int i,j,result; printf(\ for (i=1;【?】;i++) { for(j=1;j<10;【?】) { result=i*j; printf(\【?】); } printf(\ } } 三、程序设计题 功能:求k!(k〈13),所求阶乘的值作为函数值返回。#include \ #include\long fun(int k) { /**********Program**********/ /********** End **********/ } main() { int m; printf(\ scanf(\ printf(\ 20 (要求使用递归)