C语言集中上机题目答案(1).doc_第1页
C语言集中上机题目答案(1).doc_第2页
C语言集中上机题目答案(1).doc_第3页
C语言集中上机题目答案(1).doc_第4页
C语言集中上机题目答案(1).doc_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言集中上机题目第一次实验 循环1 编程1.1 打印出以下图案* * * * * * * * * * * * * * * * * * *#includeint main() int i, j, n; printf(输入行数(正数):); do scanf(%d, &n); while(n=0); if(0=n%2) n=n-1; for(i=1; i=n/2+1; i+) for(j=0; j=n/2-i; j+) printf( ); for(j=1; j=i*2-1; j+) printf(*); printf(n); for(i=0; in/2; i+) for(j=0; j=i; j+) printf( ); for(j=0; jn-2*(i+1); j+) printf(*); printf(n); return 0; /*执行的时候输入7*/1.2 编写程序实现输入整数n,输出如下所示由数字组成的菱形。(图中n=5) 11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 11 2 11 #include main() int i,j,k,p,t; for(i=1;i=5;i+) for(j=1;j=2*i-1;j+) k=j; if(j1;i-) for(j=3;j=2*i-1;j+) k=j-2; if(j-1+y ; x=i+) i=x ; B)for ( ; ; x+=i ) ; C)while (1) x+ ; D)for (i=10 ; ; i-) sum+=i ;2. 下面程序段的运行结果是 D 。x=y=0;while (x15) y+,x+=+y ;printf(“%d,%d”,y,x); A)20,7 B)6,12 C)20,8 D)8,203. 以下for循环的执行次数是 A 。for (x=0,y=0; (y=123) & (x4) ; x+) ; A)无限循环 B)循环次数不定 C)4次 D)3次4写出下面程序运行的结果 2,0 。main ( ) int i,b,k=0 ; for (i=1; i=5 ; i+) b=i%2; while (b-=0) k+ ; printf(“%d,%d”,k,b);5. 写出下面程序运行的结果 8 。main ( ) int a,b; for (a=1,b=1 ; a=20) break; if (b%3=1) b+=3 ; continue ; b-=5; printf(“%dn”,a);6. 写出下面程序运行的结果 36 。main ( ) int k=1,n=263 ; do k*= n%10 ; n/=10 ; while (n) ; printf(“%dn”,k);第二次实验 数组1 编程1.1 打印以下图案:* * * * * * * * * * * * * * * * * * * * * * * * *#include void main() int i,j; for(i=1;i=4;i+) for(j=1;ji;j+) printf( ); for(j=1;j11;j+) if(j%2=0) printf(*); else printf( ); printf(n); 1.2 输入44的数组,编写程序实现:(1)求出对角线上各元素的和;#include#include#includeint main() int n; int sum1=0; int sum2=0; scanf(%d,&n); int *p; p = (int *)malloc(n*n*sizeof(int); int i,j; for(i=0;in;i+) for(j=0;jn;j+) scanf(%d,p+i*n+j); for(i=0;in;i+) for(j=0;jn;j+) printf(%8d,*(p+i*n+j); printf(n); for(i=0;in;i+) sum1 +=*(p+i*n+i); sum2 +=*(p+i*n+(n-i-1); printf(sum1=%dn,sum1); printf(sum2=%dn,sum2); free(p); return 0;(2)求出对角线上行、列下标均为偶数的各元素的积;(3)找出对角线上其值最大的元素和它在数组中的位置。#include void main() int i,j,max,min,a44,maxL,maxR,minL,minR; printf(请输入4*4数组:n); for(i=0;i4;i+) for(j=0;j4;j+) scanf(%d,&aij); max = min = a00; maxL = maxR = minL = minR = 0; for(i=0;i4;i+) for(j=0;jmax) max = aij; maxL = i; maxR = j; if(aij0&chi=9;i+=2) s=10*s+chi-0; printf(“%dn”,s);A)1 B)1256 C)12ab56 D)ab2下面程序段的输出结果是 C 。char c5=a,b,0,c,0printf(“%s”,c);A)ab B)ab C)ab c D)abc3mian() int m 3=1,4,7,2,5,8,3,6,9; int i, j, k=2;for(i=0;i=1) for(j=i-1;j=0;j-) printf(%d,aj);5若二维数组a有m列,则计算任一元素aij在数组中位置的公式为_D_.(假设a00位于数组的第一个位置上。) aij前面的元素个数为 B a)i*m+j b)j*m+i c)i*m+j-1 d)i*m+j+16. 当运行下面程序时,从键盘上输入7 4 8 9 1 5,则写出下面程序的运行结果。 main ( ) int a6,i,j,k,m; for (i=0 ; i=0; i-) k=a5; for (j=4; j=0; j-) aj+1=aj ; a0=k; for (m=0 ; m6 ; m+) printf(“%d ”,am); printf(“n”); 第三次实验 函数1 编程1.1 写一函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1990,应输出“1990”。#include#includeinsert_32(char string) int i=0; for(i=strlen(string);i0;i-) for(i=1;i=strlen(string);i+) /*这句为什么也有问题?555*/ string2*i=stringi; string2*i-1= ; stringstrlen(string)-1=0;1.2 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。#include void main() void exchange(int n); int n; printf(输入一个整数nn); scanf(%d,&n); printf(输出是:nn); if(nb) return(a); else return(b);main() int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(“%dn”,r);程序运行后的输出结果是 D A)3 B)6 C)8 D)122以下不正确的说法是 D 。A)全局变量,静态变量的初值是在编译时指定的B)静态变量如果没有指定初值,则其初值为0C)局部变量如果没有指定初值,则其初值不确定D)函数中的静态变量在函数每次调用时,都会重新设置初值3写出下面程序的运行结果。# define MAX 10int aMAX, i ;sub1 ( ) for (i=0; iMAX; i+) ai=i+i ;sub2 ( ) int aMAX, i ,max ; max=5; for (i=0; iMAX; i+) ai=i ;sub3 (int a ) int i ; for (i=0; iMAX; i+) printf(“%d ”,ai); printf(“n”);main ( ) sub1( ); sub3(a); sub2( ); sub3(a);4. 若输入的值是125,写出下面程序的运行结果:125= 5*5*5。#include fun (int n) int k,r ; for (k=2; k1) printf(“*”); r = n % k ; if (n!=1) printf(“%dn”,n); main ( ) int n ; scanf(“%d”,&n); printf(“%d=”,n); if (n0) printf(“-”); n = fabs(n); fun(n);5. 写出下面程序的运行结果。int i=0;fun1 (int i) i = (i%i)*(i*i)/(2*i)+4 ; printf(“i=%dn”,i); return (i) ;fun2(int i) i = i=2 ? 5 : 0 ; return (i) ;main ( ) int i = 5 ; fun2(i/2) ; printf(“i=%dn”,i) ; fun2(i=i/2) ; printf(“i=%dn”,i) ; fun2(i/2) ; printf(“i=%dn”,i) ; fun1(i/2) ; printf(“i=%dn”,i) ;i=5i=2i=2i=4i=26. 写出下面程序的功能。func (int n) int i,j,k; i=n/100; j=n/10-i*10 ; k=n%10 ; if (i*100+j*10+k) = i*i*i+j*j*j+k*k*k) return n ; return 0;main ( ) int n,k ; for (n=100; n1000 ; n+) if (k=func(n) printf(“%d”,k) ;(找出100到1000之间的水仙花数,即一个三位数,其各位数字立方和等于该数 本身)第四次实验 指针1 编程1.1 编一程序,输入月份号,输出该月的英文月名。例如,输入“3”,则输出“March”,要求用指针数组处理。#includevoid main()int n; char *name12=January,February,March,April,May,June,July,August,September,October,November,December;scanf(%d,&n);printf(%sn,namen+1);1.2 有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。#include#include#include/将str1第m个字符开始后面字符都考入str2int str(char * str1,char * str2,int n,int m) char *p; p=&str1m-1;/mn,直接返回空串 if(mn) str20=0; return 1; do *str2+=*p+; while(*p!=0); *str2=0; return 1;int main() char a9=abcdefsf,b80; str(a,b,8,3); printf(%sn,b); system(pause); return 0;2 思考题1若要对a进行自减运算,则a应有下面说明 D 。A)int p3; B)int k; C)char *a3 D)int b10; int *a=p; int *a=&k; int *a=b+1;2. 以下选项中,对指针变量p的正确操作是 B (此题目有错,应该是操作正确的)。A)int a3, *p; B)int a5, *p; C)int a5; D)int a5p=&a; p=a; int *p=a=100; int *p1,*p2=a; *p1=*p2;3下面程序段的输出是 C 。int a =2,4,6,8,10,12,14,16,18,20,22,24,*q4,k;for (k=01 k4; k+) qk=&ak*3;printf(“%dn”,q30);A)8 B)16 C)20 D)输出不合法4下面程序的运行结果是 B 。main ( ) int x5=2,4,6,8,10, *p, *pp ; p=x , pp = &p ; printf(“%d”,*(p+); printf(“%3d”,*pp);A)4 4 B)2 4 C)2 2 D)4 65. 若有定义int x43=1,2,3,4,5,6,7,8,9,10,11,12; int (*p)3=x ; 则能够正确表示数组元素x12的表达式是 。A)*(*p+1)2) B)(*p+1)+2C)*(*(p+5) D)*(*(p+1)+2)6写出下面程序的运行结果 5 。func(char *s,char a,int n) int j; *s=a; j=n ; while (*ssj) j- ; return j;main ( ) char c6 ; int i ; for (i=1; i=5 ; i+) *(c+1)=A+i+1; printf(“%dn”,fun(c,E,5);第五次实验 综合1 编程1.1 编写一个程序计算下式之和。1+(1+2)+(1+2+3)+(1+2+3+4)+.+(1+2+3+4+5+6+7+8+9+10)#includemain() int i,j,N,NUM; NUM=0; for(i=1;i=10;i+) N=0; for(j=1;j=i;j+) N+=j; NUM+=N; printf(结果是: %dn,NUM);1.2 在主函数中输入一个字符串,然后删除该字符串里面所有的空格,并打印删除空格后的字符串。(用指针)#includeint main() char str10; char *p1=str; get

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论