阅读程序模拟题
1.下面程序执行结果是
#include void swap(int *,int *); void main() { int a=5, b=7, *ptr1, *ptr2; ptr1=&a, ptr2=&b; swap (ptr1,ptr2); printf(“*ptr1=%d,*ptr2=%d\\n”,*ptr1,*ptr2); printf(“a=%d,b=%d\\n”,a,b); } void swap (int *p1, *p2) { int p; p=*p1; *p1=*p2; *p2=p; } 2.输入we are students ,下面程序运行结果 3 #include void main() { char string[81]; int i,num=0,word=0; char c; gets(string); for(i=0;(c=string[i])!='\\0';i++) if(c==' ') word=0; else if(word==0) { word=1; num++; } printf(\" %d\\n\ } 3.下面程序的运行结果是 2 4 5 7 6 0 11 9 7 3 #include void inv(int x[], int n); void main() { int i,a[10]={3,7,9,11,0,6,7,5,4,2}; inv(a,10); printf(\"The array has been reverted:\\n\"); for(i=0;i<10;i++) printf(\"%d,\ printf(\"\\n\"); } void inv(int x[], int n) { int t,i,j,m=(n-1)/2; for(i=0;i<=m;i++) { j=n-1-i; t=x[i]; x[i]=x[j]; x[j]=t; } } 4.下面程序的运行结果是 char *a=I am a teacher char *b=I am a teacher #include void copy_string(char *,char *); void main() { char *a=\"I am a teacher.\"; char *b=\"You are a student.\"; copy_string(a,b); printf(\"\\nstring_a=%s\\nstring_b=%s\\n\ } void copy_string(char *from,char *to) { for(;*from!='\\0';from++,to++) *to=*from; *to='\\0'; } 5.下面程序的运行的功能是 BASIC Computer FORTRAN Follow me Great Wall (按从小到大排列单词) #include #include void sort(char *name[],int ); void print(char *name[],int); void main() { char *name[]={\"Follow me\ \"Great Wall\ int n=5; sort(name,n); print(name,n); } void sort(char *name[],int n) { char *temp; int i,j,k; for(i=0;i for(j=i+1;j { temp=name[i]; name[i]=name[k]; name[k]=temp;} } } void print(char *name[],int n) k=j; { int i; for(i=0;i } 6. 输入5回车后,下面程序的执行结果是 120 #include long int fac(int ); void main() { int n; scanf(\"%d\ printf(\"%d\\n\ } long int fac(int m) { long int f; if(m<0) printf(\"data error!\\n\"); else if(m==0||m==1) f=1; else f=fac(m-1)*m; return f; } 7.下面程序执行的结果是: li 3 Zhang 3 Wang 2 统计选票数目 输入如下数据: Li Zhang Li Li Wang Zhang Wang Zhang #include struct person { char name[20]; int count; }leader[3]={ \"Li\ void main() { int i,j; char leader_name[20]; for(i=1;i<=8;i++) { scanf(\"%s\ for(j=0;j<3;j++) if(strcmp(leader_name,leader[j].name)==0) leader[j].count++; } for(i=0;i<3;i++) printf(\"%5s:%d\\n\ } 8.输入17,下面程序执行的结果是 17 is a prime number #include #include void main() { int m,i,k; scanf(\"%d\ k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>k) printf(\"%d is a prime number\\n\ else printf(\"%d is not a prime number\\n\ } 9.下面程序执行的结果是 #include #include void main() { int a[3][3], i, j; for(i=0;i<3;i++) for(j=0;j<3;j++) { switch(abs(i-j)) { case 0: if(i==0||i==2) a[i][j]+=3; else a[i][j]++; break; case 1: a[i][j]+=2; break; case 2: a[i][j]+=3; } } printf(\"%d , %d , %d\ } 10.写出下面程序的运行结果: 8,17 #include int func (int ,int ); void main ( ) { int k=4,m=1,p1,p2; p1=func(k,m) ; p2=func(k,m) ; printf(“%d,%d\\n”,p1,p2) ; } int func (int a,int b) { Static(静态变量,执行完成后保留值) int m=0,i=2; i+=m+1; m=i+a+b; return (m); } 11.以下程序执行后输出的结果是 123,0 #include void main( ) { FILE *fp; int i,k=0,n=0; fp=fopen(\"d1.dat\ for(i=1;i<4;i++) fprintf(fp, \"%d\ fclose(fp); fp=fopen(\"d1.dat\ fscanf(fp, \"%d%d\ printf(\"%d,%d\\n\ fclose(fp); } 12.以下程序执行后输出的结果是 3个空格 1 3个空格2 3个空格3 3个空格4 3个空格5 3个空格6 #include void main() { int a[2][3]={{1,3,5},{2,4,6}}; int b[3][2],i,j; for(i=0;i<2;i++) { for(j=0;j<3;j++) { b[j][i]=a[i][j]; } } for(i=0;i<3;i++) { for(j=0;j<2;j++) printf(\"%4d\j]);(输出4列,不足的前头补空) printf(\"\\n\"); } } 13.若输入的值是-75,以下程序的运行结果是 -3*5*5 #include #include void fun(int ); void main( ) { int n; scanf(\"%d\ if(n<0) printf(\"-\"); n=abs(n); fun(n); } void fun(int x) { int k,r; for(k=2;k while(r==0) { printf(\"%d\ x=x/k; if(x>1) printf(\"*\"); r=x%k; } } if(x!=1) printf(\"%d\\n\ } 14.以下程序的运行结果是 4 #include #include struct NODE { int num; struct NODE *next; }; void main( ) { struct NODE *p,*q,*r; int sum=0; p=(struct NODE*) malloc(sizeof(struct q=(struct NODE *) malloc(sizeof(struct r=(struct NODE *) malloc(sizeof(struct p->num=1; q->num=2; r->num=3; p->next=q; q->next=r; r->next=NULL; NODE)); NODE)); NODE)); sum+=q->next->num; sum+=p->num; printf(\"%d\\n\ } 15.输入87653142,下面程序运行的结果是 7531 #include void fun(long int , long int *); void main() { long s, t; scanf(\"%ld\ fun(s, &t); printf(\"%ld\\n\ } void fun(long int s, long int *t) { int d; long s1=1; *t=0; while(s>0) { d=s%10; if(d%2!=0)(若改成=0,则输出数字中的偶数,并组成新的数字) { *t=d*s1+*t; s1*=10; } s/=10; } } 16.下面程序运行的结果 13431 #include struct NODE { int k; struct NODE *link; }; void main() { struct NODE m[5],*p=m,*q=m+4; int i=0; while(p!=q) { p->k=++i;/*p指向k*/ p++; q->k=i++; q--; } q->k=i; for(i=0;i<5;i++) printf(\"%d\ printf(\"\\n\"); } 因篇幅问题不能全部显示,请点此查看更多更全内容