c语言编程小题及解答.docx
- 文档编号:1905751
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:13
- 大小:17.45KB
c语言编程小题及解答.docx
《c语言编程小题及解答.docx》由会员分享,可在线阅读,更多相关《c语言编程小题及解答.docx(13页珍藏版)》请在冰豆网上搜索。
c语言编程小题及解答
【程序1】
题目:
八进制转换为十进制
程序源代码:
#include
intmain()
{
char*p,s[6];intn;
p=s;
gets(p);
n=0;
while(*(p)!
='\0')
{
n=n*8+*p-'0';
p++;
}
printf("%d",n);
return0;
}
【程序2】题目:
输入3个数a,b,c,按大小顺序输出。
1.程序分析:
利用指针方法。
2.程序源代码:
#include
intmain()
{
intn1,n2,n3;
int*pointer1,*pointer2,*pointer3;
voidswap(int*p1,int*p2);
printf("pleaseinput3number:
n1,n2,n3:
");
scanf("%d,%d,%d",&n1,&n2,&n3);
pointer1=&n1;
pointer2=&n2;
pointer3=&n3;
if(n1>n2)
swap(pointer1,pointer2);
if(n1>n3)
swap(pointer1,pointer3);
if(n2>n3)
swap(pointer2,pointer3);
printf("thesortednumbersare:
%d,%d,%d\n",n1,n2,n3);
return1;
}
voidswap(int*p1,int*p2)
{
intp;
p=*p1;*p1=*p2;*p2=p;
}
==============================================================
【程序3】题目:
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
写3个函数:
①输入10个数;②进行处理;③输出10个数。
程序源代码:
#include
voidmain()
{
intnumber[10];
voidinput(intnumber[10]);
voidmax_min(intarray[10]);
voidoutput(intarray[10]);
input(number);
max_min(number);
output(number);
}
voidinput(intnumber[10])
{
inti;
for(i=0;i<10;i++)
scanf("%d",&number[i]);
}
voidmax_min(intarray[10])
{
int*max,*min,k,l;
int*p,*arr_end;
arr_end=array+10;
max=min=array;
for(p=array+1;p { if(*p>*max) max=p; if(*p<*min) min=p; } l=*min;*min=array[0];array[0]=l; k=*max;*max=array[9];array[9]=k; } voidoutput(intarray[10]) { int*p; for(p=array;p<=array+9;p++) printf("%d",*p); printf("\n"); } ============================================================== 【程序4】 题目: 有n个人围成一圈,顺序排号。 从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 程序源代码: #include #definenmax50 voidmain() { inti,k,m,n,num[nmax],*p; printf("pleaseinputthetotalofnumbers: "); scanf("%d",&n); p=num; for(i=0;i *(p+i)=i+1; i=0; k=0; m=0; while(m { 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("%disleft\n",*p); } ============================================================== 【程序5】题目: 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。 程序源代码: #include #include voidmain() { intlen; charstr[20]; intlength(char*p); printf("pleaseinputastring: \n"); gets(str); len=length(str); printf("thestringhas%dcharacters.",len); } intlength(char*p) { intn; n=0; while(*p! ='\0') { n++; p++; } returnn; } 【程序6】有一字符串,包含n个字符。 写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。 #include voidfunc(char*str1,char*str2,intm) { char*s1=str1+m-1; char*s2=str2; while(*s1! ='\0') { *s2=*s1; s1++; s2++; } *s2='\0'; } voidmain() { charstr1[100]; charstr2[100]; intm; printf("请输入一个字符串\n"); gets(str1); printf("请输入从第几个字符开始拷贝\n"); scanf("%d",&m); func(str1,str2,m); printf("拷贝的字符串为%s\n",str2); } 【程序7】写一函数,将一个3×3的整形矩阵转置。 #include voidfunc(inta[3][3]) { int*pt,temp,i,j; pt=a[0]; for(i=0;i<3;i++) for(j=i+1;j<3;j++) { temp=*(pt+3*i+j); *(pt+3*i+j)=*(pt+3*j+i); *(pt+3*j+i)=temp; } } voidmain() { inta[3][3]; inti,j; printf("请输入一个3*3的整型数\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("转置前的矩阵为\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%d",a[i][j]); printf("\n"); } func(a); printf("转置后的矩阵为\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%d",a[i][j]); printf("\n"); } } 【程序8】在主函数中输入10个等长的字符串。 用另一函数对它们排序。 然后在主函数输出这10个已排好序的字符串。 #include #include #defineN10//字符串个数,可以任意更改 //交换字符串内容 voidchange(chara[],charb[]) { chart[81]; char*p; p=t; strcpy(p,a); strcpy(a,b); strcpy(b,p); } //对多个(ln个,即ln行)字符串从小到大排序 voidstr_sort(charstr[][81],intln) { inti,j; for(i=0;i for(j=0;j if(strcmp(*(str+j),*(str+j+1))>0)change(*(str+j),*(str+j+1)); } voidmain() { inti; chars[N][81]; printf("请输入%d个字符串: \n",N); for(i=0;i gets(s[i]);//输入字符串 str_sort(s,N);//调用函数str_sort()排序 printf("从小到大排序: \n"); for(i=0;i { printf("(%d)",i+1);//显示顺序号 puts(s[i]);//排序后输出 } } 【程序9】用指针数组处理: 在主函数中输入10个不等长的字符串。 用另一个函数对它们排序。 然后在主函数输出已排好序的字符串。 #include #include #defineN10//字符串个数(可以任意更改) //对指针数组char*str[]排序,即改变指针的值,使它们所指向的字符串(共有ln行)从小到大排序 voidstr_sort(char*str[],intln) { inti,j; char*t; for(i=0;i for(j=0;j if(strcmp(*(str+j),*(str+j+1))>0) { t=*(str+j); *(str+j)=*(str+j+1); *(str+j+1)=t; } } voidmain() { inti; charc[N][81]; char*p[N];//字符型指针数组(即N个字符指针组成的数组) printf("请输入%d个字符串: \n",N); for(i=0;i { p[i]=c[i];//指针数组中每个元素指向二维字符数组的一个行 gets(p[i]);//输入字符串 } str_sort(p,N);//调用函数str_sort()排序 printf("从小到大排序: \n"); fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 解答