.
6
20.运行以下程序,从键盘输入:AhaMA[空格]Aha<回车>,则下面程序的运行结果是( )。
#include
{ char s[80],c=’a’;
int i=0;
scanf(“%s”,s); while(s[i]!=’\\0’)
{ if(s[i]==c) s[i]=s[i]-32;
else if(s[i]==c-32) s[i]=s[i]+32; i++; } puts(s); }
A)ahAMa B)AbAMa C)AhAMa[空格]ahA D)ahAMa[空格]ahA 二、填空题
1.以下程序的输出结果是 【1】 。abc #include
{ char s[ ]=”abcdef”; s[3]=’\\0’;
printf(“%s\\n”,s); } 2.若有定义:double w[10];
则w数组元素下标的上限为 【2】9 ,下限为 【3】0 。
3.在C语言中,二维数组元素在内存中的存放顺序是 【4】 。按行存放 4.若有定义:int a[3][4]={{1,2{,{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是 【5】0 ,a[2][1]得到的初值是 【6】6 。
5.以下程序可求出所有水仙花数(提示:所谓水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。如407=4*4*4+0*0*0+7*7*7,故407是一个水仙花数)。请填空。 #include
{ int x,y,z,a[8],m,i=0;
printf (“the special number are(in the arrange of 1000):\\n”); for( 【7】 ;m++) m=100;m<1000 { x=m/100;
y= 【8】 ; m/10 z=m;
if(x*100+y*10+z= =x*x*x+y*y*y+z*z*z) { 【9】 ;i++ ;} a[i]=m
.
.
}
for(x=0;x
printf(“m”,a[x]); } 三、读程序写结果
1.以下程序运行后的输出结果是( 19 )。 #include
{ int aa[5][5]={{1,2,3,4},{5,6,1,8},{5,9,10,2},{1,2,5,6}}; int i,s=0;
for(i=0;i<4;i++) s+=aa[i][2];
printf(“%d”,s); }
2.以下程序的输出结果是( 4 )。注意s初值为1 #include
{ int a[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) s+=a[i][j];
printf(“%d\\n”,s); } 3.下列程序的输出结果是( )。12344
#define N 20
fun(int a[ ],int n,int m) { int i,j;
for(i=m;i>n;i--)a[i+1]=a[i]; } void main()
{ int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9);
for(i=0;i<5;i++)
printf(“%d”,a[i]); }
4.有下列程序: 6 7 8 9 10
#include
void change(int k[ ]) { k[0]=k[5]; } void main()
{ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0; while(n<=4)
{ change(&x[n]); n++; }
.
.
for(n=0;n<5;n++)
printf(“%d ”,x[n]); printf(“\\n”); }
5.以下程序运行后的输出结果是( )。1,2,3,4,5,6,7,8,9,10,
void f(int b[ ]) { int i;
for(i=2;i<6;i++) b[i]*=2; } void main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10},i; f(a);
for(i=0;i<10;i++)
printf(“%d,”,a[i]); }
四. 阅读下列程序,在【】处填入适当内容,使程序完整
1.下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行4个元素输出数组b, 请填空。
#include
{ int a[10],b[10],i; for(i=0;i<10;i++) scanf(“%d”,&a[i]); for(i=1;i<10;i++)
【1】 ; b[i-1]=a[i]-a[i-1] for(i=1;i<10;i++)
{ printf(“%d”, 【2】 ); b[i-1]
if(i%4= =0) printf(“\\n”); }
2.下面程序将二维数组a的行和列元素互换后存放到另一个二维数组b中,请填空。
#include
{ int a[2][3]={{1,2,3},{4,5}},b[3][2],i,j; for(i=0;i<2;i++)
{ for(j=0;j<3;j++)
【3】 ; } b[i][j]=a[i][j]
}
3.下列程序功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。
#include
.
.
{ int x[10],a[9],i;
for (i=0;i<10;i++) scanf(“%d”,&x[i]);
for( 【4】 ;i<10;i++) i=1 a[i-1]=x[i]+ 【5】 ; x[i-1] for(i=0;i<9;i++)
printf(““%d”,a[i]); printf(“\\n”); } 4.用冒泡法进行排序。 #include
{ int a[10],i,j,t; for(i=0;i<10;i++) scanf(\
for(i=1; 【6】 ;i++) i<10
for(j=0; 【7】 ;j++) j<10-i if(a[j]>a[j+1])
{ t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;i<=9;i++) printf(\ printf(\5.用选择法进行排序。 #include
{ int a[10],i,j,t,mini,min; for(i=0;i<10;i++) scanf(\
for(i=0; 【8】 ;i++) i<9 { mini=i;
for( 【9】 ;j<=9;j++) j=i+1 if(a[j] {t=a[i];a[i]=a[mini];a[mini]=t;} } for(i=0;i<=9;i++) printf(\ printf(\ .