6.2基础实验
一、程序分析
分析以下程序段完成的功能,填写在序号后的空白处,并运行验证结果。
1. 以下程序的运行结果是:_______s=12345____________________。
#include  <stdio.h>
int main( )
{ inta[]={1,2,3,4,5},i,j=1,s=0;
for(i=4;i>=0;i--)
{ s=s+a[i]*j;
j=j*10;
}
printf( s= %d \n , s );
return 0;
}
2. 以下程序的运行结果是:_____7  5  3______________________。
#include<stdio.h>
int    main( )
{  int k ;
int a[3][3]={9,8,7,6,5,4,3,2,1};
for(k=0;k<3;k++)
printf(%d ,a[k][2-k]);
return 0;
}
3. 以下程序的功能是:____查最大值元素及下标_________________。
#include <stdio.h>
int main( )
{  int  i, j ,x =0 ,y = 0 , m ;
int  a[3][3] = { 1, -2 , 0 , 4 , -5 , 6 , 2 , 4 };
m = a [0][0] ;
for (i=0 ;i < 3 ;i++)
for (j = 0 ; j<3 ; j++ )
if ( a[ i] [ j ] >m )
{    m = a[ i ][ j ] ;
x =  i ;
y = j ;
}
printf( ( % d  , % d ) = % d \n, x , y,m );
return 0;
} 运行结果:___(1  , 2 ) = 6_________________
4. 以下程序的运行结果是:__8,I am student!___________________。
#include <stdio.h>
int main( )
{  char  s1[50]= I  am  ;
char  s2[ ]=student! ;
printf(%d,, strlen(s2) );
strcat(s1,s2);
printf(%s\n,s1);
return 0;
}
5.以下程序的运行结果是:_______6_____________________。
#include <stdio.h>
int main( )
{  char b[7]={67da12};
int i,s=0;
for(i=0;b[i]>='0'&&b[i]<='9';i+=2)
s=10*s+b[i]-'0';
printf (%d\n,s);
return 0;
}
6. 以下程序的运行结果是:_______CQM_____________________。
#include <stdio.h>
int main( )
{  int i=0;
char a[ ]= cbm,b [ ]= cqid,c[10];
while(a[i]!='\0'&&b[i]!='\0')
{  if(a[i]>=b[i]) c[i]=a[i]-32;
else c[i]=b[i]-32;
++i;
}
c[i]= '\0';
puts (c);
return 0;
}
二、程序填空
1. 下面程序的功能是将十进制整数转换成二进制,请在横线上填写正确内容。
#include <stdio.h>
int main( )
{  int k=0,n,j,num[16]={0};
printf(输入要转换的十进制数\n);
scanf(%d,&n);
printf (%d转换为二进制数:\n,n);
do
{  num[k]=_n%2_____  ;
n=n/2; 
_k++____  ;
}while(n!=0); 
for(k=15;k>=0;k--)
printf(%d,num[k]);
return 0;
}
2. 设数组 a 的元素均为正整数,以下程序是求 a 中奇数的个数和奇数的平均值,请在横线上填写正确内容。 
#include <stdio.h>
int main( )
{  int a[10]={10,9,8,7,6,5,4,3,2,1};
int k,s,i;
float ave;
for(i=0,k=s=0;i<10;i++)
{  if(_a[i]%2==0___ ) continue ;
s+=____a[i]____scanf输入整型数组;
k++;
}
if(k!=0) 
{  ave=s/k;
printf (%d,%.2f\n,k,ave);
}
return 0;
}
3. 下面程序的功能是将字符串a中所有的字符 d 删除。
#include <stdio.h>
int main( )
{  char s[80];
int i,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='d'){__s[j]=s[i]__; __j++__;}
s[j]='\0';
puts(s);
return 0;
}
4.从键盘输入:apple <CR> computer<CR>music<CR>game<CR>,想出最大字符串
#include <stdio.h>
#include<string.h>
int main( )
{  char str[10],temp[10]={0};
int i;
for(i=0;i<4;i++)
{  gets(str);
if (_strcmp(temp,str)<0_)strcpy(temp,str);
}
puts(temp);
return 0;
}   
6.3拓展实验
一、程序改错
要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。
1.以下程序实现的功能是求10个元素的和。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。