}
14.从键盘上输入两个字符串,若不相等,将短的字符串连接到长的字符串的末尾并输出。 #include
if(strcmp(s1,s2)!=0;
if(strlen(s1)>strlen(s2)) {strcat(s1,s2);puts(s1);}
else{strcat(s2,s1);puts(s2);} }
15.从键盘输入两个字符串,不用字符串函数strcmp()比较两者的大小。 #include
int i,flag;
int compstr(char,char); char str1[80],str2[80]; gets(str1); gets(str2); i=0;
do{
flag=compstr(str1[i],str2[i]); i++;
}while((str[i]!=’\\0’)&&(str2[i]!=’0’)&&(flag==0)); if(flag==0) printf(“%s=%s”,str1,str2);
else if(flag>0) printf(“%s>%s”,str1,str2); else printf(“%s<%s”,str1,str2); }
int compstr(char c1,char c2) {int t; t=c1-c2; return t; }
16.用冒泡法将8个数按由大到小排序。 #include
int i,m;
void sort(int b[],int k); void print(int b[],int k); printf(“\\nInput m(<80):”); scanf(“%d”,&m);
for(i=0;i void sort(int b[],int k) {int i,j,t,flag; for(j=0;j for(i=0;i if(flag==0) break; } } void print(int b[],int k) {int i; for(i=0;i { if(i%4==0)putchar(‘\\n’); printf(“%-6d”,b[i]); } } 17.从键盘输入一个正整数,判断其是否为回文数。所谓回文数是顺读与反读都是一样的数,如12321,234555432都是回文数。 #include int digit[10]; puts(“Input a position integer:”); scanf(“%ld”,&n); m=n;k=0; do {digit[k++]=m; m/=10; }while(m!=0); k--; for(i=0;i if(digit[i]!=digit[k])break; if(i else printf(“%ld is a palindrome.”,n); } 18.输入一行字符,统计其中有多少个单词,单词之间用一个或者多个空格隔开。 #include char s[80]; int count_words(char str[]); printf(“Input a string:”); gets(s); n=count_word(s); printf(“Word number is %d”,n); } int count words(char str[]) { int k,num=0; k=strlen(str); do{ k--; }while(str[k]==’’); str[k+1]=’\\0’; k=0; while(str[k]==’ ‘)k++; if(str[k]!=’ ‘) num=1; while(str[k]!=’0’) {if(k>0&&str[k]==’ ‘&&str[k-1]!=’ ‘) num++; k++; } return num; } 19.从键盘输入一串英文字母(不含空格与其它字符),统计每个字母的个数,并输出字母个数及相应的个数。 #include {int i=0,c[52]={0},m=0; char str[80]; printf(“Input a string:”); scanf(“%s”,str); while(str[i]) {if(str[i]>=’A’&&str[i]<=’Z’)c[str[i]-‘A’]++ if(str[i]>’a’&&str[i]<=’z’)c[str[i]-‘a’+26]++; i++; } for(i=0;i<26;i++) if(c[i]){if(m%8==0) putchar(‘\\n‘);m++; printf(“%c:%-d”,i+’A’,c[i]); } for(i=0;i<26;i++) if(c[i+26]){if(m%s==0) putchar(‘\\n’);m++; printf(“%c:%-d”,i+’a’,c[i+26]); } } 20.从键盘输入一个4*4整数矩阵,以主对角线(\\)为对称轴,将左下角元素中较大元素代替右上角对应元素,并将右上角元素(含对角线元素)输出。 #include int d[4][4],i,j,temp; printf(“Input 16 numbers:”); for(i=0;i<4;i++) for(j=0;j<4;j++) scanf(“%d”,&d[i][j]); for(i=0;i<4;i++) for(j=0;j if(d[i][j]>d[j][i]) d[j][i]=d[i][j]; for(i=0;i<4;i++) {printf(“\\n”); for(j=0;j<4;j++) if(j>=i) printf(“m”,d[i][j]); else printf(“l”,’ ‘); } } 21.求一组成绩的平均分数以及高于平均分的成绩,设给定的成绩为 90,85,92,77,80,62。 main() { int score[6]={90,85,92,77,80,62}; int i,sum=0; float aver; for(i=0;i<6;i++)sum+=score[i]; aver=sum/6.0; printf(\ printf(\ for(i=0;i<6;i++) if(score[i]>aver)printf(\ } 22.编写程序,输入一组整数,将它们排序后由小到大输出。 【提示】假设为具有 10 个元素的正整数数组;外层循环从数组的第一个元素开始选取;内层循环从外层循环选定的元素下一个元素开始选取,依次与外层循环选定的元素进行比较,将小者放入外层循环选定的元素中。 #define N 10 main() { int a[N],i,j,t; for(i=0;i printf(\ scanf(\ } for(i=0;i for(j=i+1;j if(a[i]>a[j]) { t=a[i];a[i]=a[j];a[j]=t; } } printf(\/*输出已更新为较小值之外层选定元素*/ } } 23.从键盘输入一个4×4整数矩阵,以主对角线(\\)为对称轴,将左下角元素中较大元素代替右上角对应元素,将右上角(含对角线元素)输出。 【提示】a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] a[3][0] a[3][1] a[3][2] a[3][3] #define M 4 main() { int a ; int i,j,k,t; printf(\