main(){ }
char p[20]={'a','b','c','d'},q[]=\strcat(p,r); strcpy(p+strlen(q),q); printf(\
程序运行后的输出结果是(C) A)9 B)6 C)20 D)7 28、有以下程序 #define N 20
fun(int a[],int n,int m){ int i,j;
for(i=m;i>=n;i--) a[i+1]=a[i]; }
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(\
}
程序运行后的输出结果是 (C)。 A)10234 B)12344 C)12334 D)12234
29、有以下程序 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[i][j]; }
return s; }
main( )
{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(\}
执行后的输出结果是(D)。
A) 12 B) 11 C) 18 D) 16 30、有以下程序 void swap1(int c[]) { int t;
6
t=c[0];c[0]=c[1];c[1]=t; }
void swap2(int c0,int c1) { int t;
t=c0;c0=c1;c1=t; }
main( )
{ int a[2]={3,5},b[2]={3,5}; swap1(a) ; swap2(b[0],b[1]);
printf(\}
其输出结果是(B)。
A) 5 3 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 3 5 5 3 二、程序阅读题 1、有以下程序 main()
{
char s[]=\s[0]+=2;
printf(\}
执行后的结果是 99 。 2、有以下程序 main() {
int x[3][2]={0},i;
for(i=0;i<3;i++) scanf(\
printf(\}
若运行时输入:246<回车>,则输出结果为 204 。 3、有以下程序 main()
{
int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(“%d”,t[2-i][i]); }
程序的执行后的输出结果是 357 。 4、以下程序的输出结果是 30 。 main()
{ int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0; for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1]; printf(“%d\\n”,s); }
5、有以下程序
7
void sum(int a[])
{ a[0] = a[-1]+a[1]; } main() {
int a[10]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]);
printf(\
}
程序运行后的输出结果是 6 。 6、以下程序的输出结果是 abc 。 main() {
char s[]=\ s[3]='\\0'; printf(\}
7、下列程序的输出结果是 CDABC 。 main( ) {
char b[30];
strcpy(&b[0],”CH”); strcpy(&b[1],”DEF”); strcpy(&b[2],”ABC”); printf(“%s \\n”,b); }
8、有以下程序 main()
{
char p[]={'a', 'b', 'c'}, q[]=\
printf(\};
程序运行后的输出结果是 3 4 。 9、有以下程序
void fun(int *s,int nl,int n2) { int i,j,t; i=nl; j=n2;
while(i main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9); fun(a,0,9); 8 for(k=0;k<10;k++)printf(“%d”,a[k]); printf(“\\n”); } 程序运行的结果是 5678901234 10、以下程序运行后的输出结果是 abcbcc main() { char ch[]=\for(i=0;i<3;i++) strcpy(x[i],ch); for(i=0;i<3;i++) printf(\printf(\} 三、程序填空题 1、以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。 main() { int x[10],a[9],i; for (i=0;i<10;i++) scanf(“%d”,&x[i]); for( i=1 ;i<10;i++) a[i-1]=x[i]+ x[i-1] ; for(i=0;i<9;i++) printf(“%d”,a[i]); printf(“\\n”); } 2、若已定义:int a[10], i;,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。 fun( int a[ ]) { int i; for(i=1; i<=10; i++) a[i-1] =i; for(i=0; i<5; i++) a[4-i] =a[i]; } 3、程序的功能是使一个字符串按逆序存放,请填空。 main( ) { char str[]={“abcdefghijl”},m; int i,j; for(i=0,j=strlen(str);i< j/2 ;i++,j--) {m=str[i]; str[i]= str[9-i] ; str[j-1]=m; } printf(“%s\\n”,str); 9 } 4、用冒泡法对10个数据进行排序,请填空,让程序能正确运行。 main() { int a[11],i,j,t; printf(“input 10 numbers:\\n”); for(i=1;i<11;i++) scanf(“%d”,&a[i]); for(j=1;j<10;j++) for( i=1;i<10-j;i++ ) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } printf(“the sorted numbers:\\n”); for(i=1; i<10 ; i++) printf(“%d”,a[i]); } 5、矩阵转置,请填空,让程序能正确运行。 main() { int a[2][3]={1,2,3,4,5,6}; int b[3][2],i,j; printf(“array a:\\n”); for(i=0;i<=1;i++) { for(j=0;j<=2;j++) { _b[j][i] =a[i][j]; printf(“]”,a[i][j]);} printf(“\\n”); } printf(“array b:\\n” ); for(i=0;i<=2;i++) { for (j=0;j<=1;j++) printf(“]”,b[i][j]); __ printf(“\\n”); _ } } 6、函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下 1 10