C语言编程小题及解答.doc_第1页
C语言编程小题及解答.doc_第2页
C语言编程小题及解答.doc_第3页
C语言编程小题及解答.doc_第4页
C语言编程小题及解答.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【程序1】题目:八进制转换为十进制程序源代码:#include int main()char *p,s6;int n;p=s;gets(p);n=0;while (*(p)!=0)n=n*8+*p-0;p+;printf(%d,n);return 0;【程序2】题目:输入3个数a,b,c,按大小顺序输出。1.程序分析:利用指针方法。2.程序源代码:#include int main()int n1,n2,n3;int *pointer1,*pointer2,*pointer3;void swap(int *p1,int *p2);printf(please input 3 number:n1,n2,n3:);scanf(%d,%d,%d,&n1,&n2,&n3);pointer1=&n1;pointer2=&n2;pointer3=&n3;if(n1n2) swap(pointer1,pointer2);if(n1n3) swap(pointer1,pointer3);if(n2n3) swap(pointer2,pointer3);printf(the sorted numbers are:%d,%d,%dn,n1,n2,n3);return 1;void swap(int *p1,int *p2)int p;p=*p1;*p1=*p2;*p2=p;=【程序3】题目:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:输入10个数;进行处理;输出10个数。程序源代码:#include void main()int number10;void input(int number10);void max_min(int array10);void output(int array10);input(number);max_min(number);output(number);void input(int number10)int i;for(i=0;i10;i+)scanf(%d,&numberi);void max_min(int array10)int *max,*min,k,l;int *p,*arr_end;arr_end=array+10;max=min=array;for(p=array+1;p*max) max=p;if(*p*min)min=p;l=*min;*min=array0;array0=l;k=*max;*max=array9;array9=k;void output(int array10) int *p;for(p=array;p=array+9;p+)printf(%d ,*p);printf(n);=【程序4】题目:有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。程序源代码:#include #define nmax 50void main()int i,k,m,n,numnmax,*p;printf(please input the total of numbers:);scanf(%d,&n);p=num;for(i=0;in;i+)*(p+i)=i+1;i=0;k=0;m=0;while(mn-1)if (*(p+i)!=0) k+;if (k=3) *(p+i)=0;k=0;m+;i+;if(i=n) i=0;while(*p=0) p+;printf(%d is leftn,*p);=【程序5】题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。程序源代码:#include #include void main()int len;char str20;int length(char *p);printf(please input a string:n);gets(str);len=length(str);printf(the string has %d characters.,len);int length(char *p)int n;n=0;while(*p!=0)n+;p+;return n;【程序6】有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。#include void func(char *str1,char *str2,int m)char *s1=str1+m-1;char *s2=str2;while(*s1!=0)*s2=*s1;s1+;s2+;*s2=0; void main()char str1100;char str2100;int m;printf(请输入一个字符串n);gets(str1);printf(请输入从第几个字符开始拷贝n);scanf(%d,&m);func(str1,str2,m);printf(拷贝的字符串为%sn,str2);【程序7】写一函数,将一个33的整形矩阵转置。#include void func(int a33)int *pt,temp,i,j;pt=a0;for(i=0;i3;i+)for(j=i+1;j3;j+)temp=*(pt+3*i+j);*(pt+3*i+j)=*(pt+3*j+i);*(pt+3*j+i)=temp;void main()int a33;int i,j;printf(请输入一个3*3的整型数n);for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);printf(转置前的矩阵为n);for(i=0;i3;i+)for(j=0;j3;j+)printf(%d ,aij);printf(n);func(a);printf(转置后的矩阵为n);for(i=0;i3;i+)for(j=0;j3;j+)printf(%d ,aij);printf(n);【程序8】在主函数中输入10个等长的字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。#include #include #define N 10 /字符串个数,可以任意更改/交换字符串内容void change(char a,char b)char t81;char *p;p=t;strcpy(p,a);strcpy(a,b);strcpy(b,p);/对多个(ln个,即ln行)字符串从小到大排序void str_sort(char str81,int ln)int i,j;for(i=0;iln-1;i+)for(j=0;j0) change(*(str+j),*(str+j+1);void main() int i; char sN81; printf(请输入%d个字符串:n,N); for(i=0;iN;i+) gets(si); /输入字符串 str_sort(s,N); /调用函数str_sort()排序 printf(从小到大排序:n); for(i=0;iN;i+) printf(%d) ,i+1);/显示顺序号 puts(si); /排序后输出 【程序9】用指针数组处理:在主函数中输入10个不等长的字符串。用另一个函数对它们排序。然后在主函数输出已排好序的字符串。#include #include #define N 10 /字符串个数(可以任意更改)/对指针数组char *str排序,即改变指针的值,使它们所指向的字符串(共有ln行)从小到大排序void str_sort(char *str,int ln)int i,j;char *t;for(i=0;iln-1;i+)for(j=0;j0) t=*(str+j);*(str+j)=*(str+j+1);*(str+j+1)=t;void main() int i; char cN81; char *pN; /字符型指针数组(即N个字符指针组成的数组) printf(请输入%d个字符串:n,N); for(i=0;iN;i+) pi=ci; /指针数组中每个元素指向二维字符数组的一个行 gets(pi); /输入字符串 str_sort(p,N); /调用函数str_sort()排序 printf(从小到大排序:n); for(i=0;iN;i+) printf(%d) ,i+1);/输出排序号 puts(pi); /排序后输出 【程序10】 输入一个字符串,内有数字和非数字字符,如 a123x45617960?302tab5876将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a0,456放在a1统计共有多少个整数,并输出这些数。#include #include #include void main()int a100;int num; int i;char s100;int func(char *str,int a100);int Tran(char *str); /字符串转换成数字gets(s); num=func(s,a); printf(总共有%d个整数:n,num); for(i=0;i=0&*p=0&*(p+n)=9)tempn=*(p+n);n+; tempn=0;ai+=Tran(temp);p+=n;num+;elsep+;return num;int Tran(char *str) /字符串转换成数字 int n,i; int result=0; char *p; n=strlen(str); p=str; for(i=0;in;i+) result*=10; result+=(*p-0); p+; return result;【程序11】 编一程序,输入月份号,输出该月的英文月名。例如:输入“3”,则输出“March”,要求用指针数组处理#include int main()int i,n;char mon12100=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论