分 。 三、程序改错题
1.以下程序代码是求n!。 #include
scanf(“%d”,n);->scanf(“%d”,&n);
for(s=0,i=1;i<=n;i++)->for(s=1,i=1;i<=n;i++) s*=i;
printf(“%d\\n”,s);}
2.以下程序是求整型数组中的最大值。 #include
{int a[10]={4,6,78,45,2,1,0,8,12,24},max,i;
for(max=a[0],i=1;i<=10;i++)->for(max=a[0],i=1;i<=9;i++) if(a[i]
max=a[i];
printf(“max=%d\\n”,max);}
3.以下程序实现的功能是:交换主函数中的变量a和b的值。 #include
p3=p1;p1=p2;p2=p3;} -> p3=*p1;*p1=*p2;*p2=p3;} main() {int a=10,b=5; fun(&a,&b);
printf(“a=%d,b=%d\\n”,a,b);}} -> }
4.以下程序是判断x是否是素数,若是就输出“YES”,否则输出“NO”。 #include
{int x,flag,i;
scanf(“%d”,x); -> scanf(\
for(flag=1,i=1;i<=x-1;i++) -> for(flag=1,i=2;i<=x-1;i++) if(x/i==0) {flag=0;break;} -> if(x%i==0) {flag=0;break;}
if(flag==1) printf(“YES”); else printf(“NO”);}
5.下列程序是采用折半查找算法在a数组中查找x,若找到x则显示“成功”,否则显示“失败”。 #include
{int a[15]={100,89,80,76,64,56,45,41,32,30,24,22,15,10,6}; int i,j,mid,x; scanf(“%d”, &x); i=0; j=14; while(i<=14) {mid=(i+j)/2;
if(a[mid]==x) break; else if(a[mid]>x)
j=mid-1; -> i=mid+1;
else i=mid+1;} -> else j=mid-1;}
if(i>j) printf(“查找失败\\n”); else printf(“查找成功\\n”);}
6.以下程序的功能是将一个矩阵转置。
#include
{int a[4][4]={4,3,2,1,8,7,6,5,12,11,10,9,13,14,15,16},i,j,k; for(i=0;i<=3;i++)
for(j=0;j<=3;j++) -> for(j=i;j<=3;j++)
{k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;} 加 }
7.以下程序是判断x是否是素数,若是就输出“YES”,否则输出“NO”。 #include
{int x,flag,i; scanf(“%d”,x);
for(flag=1,i=1;i<=x-1;i++) if(x/i==0) {flag=0;break;}
if(flag==1) printf(“YES”); else printf(“NO”);}
8.下列程序是采用折半查找算法在a数组中查找x,若找到x则显示“成功”,否则显示“失败”。 #include
{int a[15]={100,89,80,76,64,56,45,41,32,30,24,22,15,10,6}; int i,j,mid,x; scanf(“%d”, &x); i=0; j=14; while(i<=14) {mid=(i+j)/2;
if(a[mid]==x) break; else if(a[mid]>x)
j=mid-1; else i=mid+1;}
if(i>j) printf(“查找失败\\n”); else printf(“查找成功\\n”);}
9.以下程序的功能是将一个矩阵转置。
#include
{int a[4][4]={4,3,2,1,8,7,6,5,12,11,10,9,13,14,15,16},i,j,k; for(i=0;i<=3;i++) for(j=0;j<=3;j++)
{k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;} 四、程序分析题
1.以下程序段的输出结果是 97531 。 int a[10]={9,8,7,6,5,4,3,2,1,0},*p; for(p=a;p<=a+9;p+=2) printf(“%d”,*p);
2.以下程序的输出结果是 6 15 15 。 int t=1; int fun(int p) {static int t=5; t+=p;
printf(\return (t);} main() {int a=3;
printf(\
3.以下程序的输出结果是 -5,-12,-7 。 void sub(int x,int y,int *z) { *z=y-x; } main() { int a,b,c;
sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(“%d,%d,%d\\n”,a,b,c);}
4.以下程序段的输出结果是 15 。 main()
{int a[]={1,2,3,4,5,6,7,8,9,10},b=9,i; for(i=0;i<3;i++) b+=a[i];
printf(\
5.以下程序段的输出结果是 16 。 int fun(int n) {if (n==1) return 1; else return n+fun(n-2);} main()
{printf(\
6.以下程序段的输出结果是 1 。
int x=0; if(x++<0)
printf( “%d”,--x); printf( “%d”, x++);
7.以下程序段的输出结果是 10 。 int k,j,s;
for(k=2;k<6;k++,k++)
for(s=1,j=k;j<6;j++) s+=j; printf(“%d\\n”,s);
8.以下程序的输出结果是 25/10=2 。 int f(int m,int n) {return n/m;} main()
{int a=10,b=25,c; c=f(a,b);
printf(\
9.以下程序的运行结果是 ** 。 main() {int x=1,y=1; switch(x)
{case 1:switch(y)
{case 0:printf(“*”);break;
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C语言程序设计期末考试复习题(2)在线全文阅读。
相关推荐: