有以下程序
#include <string.h>
void f(char p[][10], int n ) /* 字符串从小到大排序 */
{ char t[10]; int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); }
}
main()
{ char p[5][10]={"abc", " aabdfg","abbd", " dcdbe","cd"};
f(p,5);
printf("%d\n",strlen(p[0]));
}
程序运行后的输出结果是
查看答案
void f(int b[],int n,int flag)
{ int i,j,t;
for(i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if(flag?b[i]>b[j]:b[i]<b[j]) { t=b[i];b[i]=b[j];b[j]=t; }
}
main()
{ int a[10]={5,4,3,2,1,6,7,8,9,10},i;
f(&a[2],5,0); f(a,5,1);
for(i=0;i<10;i++) printf("%d",a[i]);
}
程序运行后的输出结果是
A. 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ,
B. 3 , 4 , 5 , 6 , 7 , 2 , 1 , 8 , 9 , 10 ,
C. 5 , 4 , 3 , 2 , 1 , 6 , 7 , 8 , 9 , 10 ,
D. 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 ,
下列程序中的函数 strcpy2() 实现字符串两次复制 , 即将 t 所指字符串复制两次到 s 所指内存空间中 ,合并形成一个新的字符串。例如,若 t 所指字符串为 efgh ,调用 strcpy2 后, s 所指字符串为 efghefgh 。请填空。
#include <stdio.h>
#include <string.h>
void strcpy2(char *s,char *t)
{ char *p=t;
while(*s++=*t++);
s= 【 1 5 】 ;
while(【 1 6 】 =*p++);
}
main()
{ char str1[100]="abcd",str2[]="efgh";
strcpy2(str1 ,str2); printf("%s\n",str1);
}
有以下程序
int a=4;
int f(int n)
{ int t=0; static int a=5;
if(n%2) {int a=6; t+=a++;}
else {int a=7 ;t +=a++ ; }
return t+a++ ;
}
main()
{ int s=a , i=0 ;
for(; i 〈 2 ; i++) s+=f(i);
printf ("%d\n",s);
}
程序运行后的输出结果是
A. 24
B. 28
C. 32
D. 36
有以下程序段
typedef struct node { int data; struct node *next; } *NODE;
NODE p;
以下叙述正确的是
A. p 是指向 struct node 结构变量的指针的指针
B. NODE p ;语句出错
C. p 是指向 struct node 结构变量的指针
D. p 是 struct node 结构变量