资源描述:
《C语言上机试题.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C上机题1.设y(n)=1 n<=1时;y(n)=-y(n-2)+2*y(n-1)n>1时。编一C程序,它能对读入的任意n(n>=0且n<50),能计算并输出y(n)的值。(注:程序命名为e1_2.exe)#include"stdio.h"int y(n) intn;{ if(n<=1) return1; else return (-y(n-2)+2*y(n-1));}voidmain(){ intn; printf("pleaseinputthen:"); scanf("%d",&n); printf("y(%d)=%d",n,y(n));}2.编一C程序,它能读入
2、一个字符串(串长<100,串中可能有空格符),计算并输出该字符串中十进制数字的个数。(注:程序命名为e1_3.exe)#include"stdio.h"#include"string.h"#defineMAX100voidmain(){chara[MAX];intn=0,i,j;printf("pleaseinputthechar:"); gets(a); i=strlen(a); if(i>=100
3、
4、i<=0) printf("sorry!thereismorethanorlessthanonehundrednumber"); else if(i<100&&i>0){
5、 for(j=0;j='0'&&a[j]<='9') n++; printf("thelengthis:%d",n);}}第三题编一C程序,它能读入一正整数n,(n<10),并输出如下图形: 1 222 33333 . . nn..... nn (共2n-1个n) . . 33333 222 1 (可执行文件名为
6、e2_1.exe)#include"stdio.h"voidprint(inta,intprintnum,intcharnum,charprintchar){ inti,j; for(i=0;i7、n); if(n>=10
8、
9、n<=0) { printf("pleaseinputnagain(n<10andn>0):"); scanf("%d",&n); }/*i为打印的数字printnum为打印数字的个数printchar为打印的空格charnum为打印的空格个数*/ for(i=1,printnum=2*i-1,charnum=n-i;i<=n;i++,printnum+=2,charnum--) print(i,printnum,charnum,printchar); for(i-=2,printnum-=4,charnum=1;i>=1;i--,printnum
10、-=2,charnum++) print(i,printnum,charnum,printchar);}4.编一C程序,它能读入矩阵A的行数L,列数M,矩阵B的列数N,矩阵B的行数是M。L,M,N值都小于20),以及按行读入矩阵A的L*M个元素(整数)及矩阵B的M*N个元素(整数),计算并输出A与B的矩阵乘积(按行,列输出)。(输入时,相邻的两个整数用空格隔开)。(可执行文件名为e2_2.exe)#include"stdio.h"#defineMAX20voidmain(){ intl,m,n,i,k,j,o,a[MAX][MAX],b[MAX][MAX],c[MAX][MAX
11、],tmp=0; printf("pleaseinputtheL:"); scanf("%d",&l); printf("pleaseinputthem:"); scanf("%d",&m); printf("pleaseinputthen:"); scanf("%d",&n); if(l>=20
12、
13、l<=0) { printf("pleaseinputlagain(0=20
14、
15、m<