串c中。即字符串c为:abcdefghijklmnpq
# include
{ char a[]=\ char b[]=\ char c[80],*p; int i=0,j=0,k=0;
while(a[i]!='\\0'&&b[j]!='\\0') { if(a[i]
c[k]='\\0'; if(③ )p=b+j; else p=a+i; strcat(c,p); puts(c); }
9. 以下程序可把输入的十进制数以十六进制的形式输出。 # include
char b[17]=\ int c[64],d,i=0,base=16; long n;
scanf(\ do{
c[i]=① ; i++;
n=n/base; }while(n!=0); for(i--; i>=0; --i) {
d=② ; printf(\③ ); }
printf(\ }
10. 以下程序能统计并输出1至100之间所有能被3整除但不能被7整除的所有正整数。 # include
void fun( int m, int *p, int *t) {
int i,num=0;
for(i=1;i<=m;i++) if(① ) ② ; *t=num; }
void main() {
int a[M],n,k; ③ ; for(k=0;k printf(\ printf(\ } 11. 程序功能:有10个数按升序放在一个数组中,输入一个数,要求用折半查找该数是数组中的第几个元素,如果该数不在数组中,打印出“NO”。折半查找法:设数组长度为n,则将输入的数m与a[n/2]比较,若ma[n/2],则将a[n/2]到a[n]的数继续折半进行查找。 # include int a[10]={12,32,45,62,71,76,80,85,90,95}; int num,bott,top,mid; printf(\ scanf(\ bott=0; top=9; while(bott<=top) { mid=① ; if(num==a[mid]) { printf(\ else if(num 12. 下面程序是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数组各元素之和,并输出结果。函数Sum计算数组元素之和。请完成下列程序。 # include int TotalSum(int [],int ); void main() { int a[5]={2,3,6,8,10}; int Total; Total=① ; count<<\② < int TotalSum(int array[],int len) { int sum=0; for(int i=0;i 13. 以下程序是判断输入的字符串是否是“回文”(顺读和倒读都一样的字符串叫回文,如level),请填空。 # include \# include \void main() { char s[81],*p1,*p2; int n; gets(s); n=strlen(s); p1=s; p2=① ; while(② ) { if(*p1!=*p2) break; else { p1++; ③ ; } } if(p1 14. 下面程序功能是检查一个4阶矩阵是否对称(即对所有的i,j,都有num[i][j]=num[j][i]),请填空。 # include int num[4][4]; int i,j,flag=0; printf(\ for(i=0;i<4;i++) for(j=0;j<4;j++) scanf(\① ); for(i=0;i<4;i++) for(j=0;j<4;j++) if(② ) { flag=1; break; } if(③ ) printf(\ else printf(\} 答案: 1、 ① p=i ② i>=p ③ a[p]=x 2、 ① word++ ② max 5、 ①a=a*x ② b=b*i ③ s=sum(x,n) 6、 ① s 12、① TotalSum(a,5) ② Total ③ sum+=array[i] 13、① s+n-1 ② *p1!= '\\0' ③ p2-- 14、① &num[i][j] ② num[i][j]!=num[j][i] ③ flag==1 五 编程题 1输入三个整数x,y,z,请把这三个数由小到大输出。 2给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 3. 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,+位与千位相同。 4. 判断101-200之间有多少个素数,并输出所有素数。 判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 5.从数字1开始到200之间,求能被3整除的数,然后求这些数的累加和,直到和的值不大于100为止。输出这些数及累加和。 6. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 7. 编程计算1!+2!+3!+···+n! 8. 输入两个正整数m和n,求其最大公约数和最小公倍数。 9. 编写一个函数fun(),首先从键盘上输入一个4行4列的一个实数矩阵到一个二维数组a[4][4]中,接着求出主对角线上元素之和,最后返回求和结果。 10. 编写一个主函数,计算1+3+32+...+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。 11. 编写一个主函数,已知6≤a≤40,15≤b≤30,求出满足不定方程2a+5b=120的全部整数组解。如(13,20)就是其中的一组解。 12. 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用 来分隔不同单词。 13.输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。 如输入:56439,输出:5位数 5,6,4,3,9 9,3,4,6,5 14.编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。 主函数:①输入任意10个正整数给数组;②调用SUB1对数组进行排序;③从键盘输入一个正整数,调用SUB2将其插入该数组。 15.编写函数:(1)用选择法将数组排成降序的函数----SUB1;(2)用折半查找法查找某数是否在给定的数组当中的函数----SUB2。 主函数:输入任意10个正整数给数组,调用SUB1对数组进行排序,从键盘输入一个正整数,调用SUB2在数组中进行查找,找到后输出“OK”,没有找到则输出“NO FOUND!”。 16、编写一个函数实现对两个字符串的比较。不用使用C语言提供的标准函数strcmp。要求在主函数中输入两个字符串,并输出比较的结果(相等的结果为0,不等时结果为第一个不相等字符的ASCII差值)。 1.main() {int x,y,z,t; scanf(\ if (x>y){t=x;x=y;y=t;} /*交换x,y的值*/ if(x>z){t=z;z=x;x=t;}/*交换x,z的值*/ if(y>z){t=y;y=z;z=t;}/*交换z,y的值*/ printf(\ 2.main( ) {long a,b,c,d,e,x; scanf(\ a=x/10000;/*分解出万位*/ b=x000/1000;/*分解出千位*/ c=x00/100;/*分解出百位*/ d=x0/10;/*分解出+位*/ e=x;/*分解出个位*/ if (a!=0) printf(\else if (b!=0) printf(\ else if (c!=0) printf(\ else if (d!=0) printf(\