C语言习题集.docx

上传人:b****8 文档编号:9819973 上传时间:2023-05-21 格式:DOCX 页数:12 大小:18.05KB
下载 相关 举报
C语言习题集.docx_第1页
第1页 / 共12页
C语言习题集.docx_第2页
第2页 / 共12页
C语言习题集.docx_第3页
第3页 / 共12页
C语言习题集.docx_第4页
第4页 / 共12页
C语言习题集.docx_第5页
第5页 / 共12页
C语言习题集.docx_第6页
第6页 / 共12页
C语言习题集.docx_第7页
第7页 / 共12页
C语言习题集.docx_第8页
第8页 / 共12页
C语言习题集.docx_第9页
第9页 / 共12页
C语言习题集.docx_第10页
第10页 / 共12页
C语言习题集.docx_第11页
第11页 / 共12页
C语言习题集.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言习题集.docx

《C语言习题集.docx》由会员分享,可在线阅读,更多相关《C语言习题集.docx(12页珍藏版)》请在冰点文库上搜索。

C语言习题集.docx

C语言习题集

1.编写函数longfun(longx),它的功能是:

将长整型参数x中每一位上为偶数的数依次取出,构成一个新数返回。

高位仍在高位,低位仍在低位。

例如:

下面程序运行时输入:

124578902,程序输出:

24802. 

 longfun(longx)

 {

 }

voidmain()

 {longa,b;

   printf("Enteranumber:

");

   scanf("%ld",&a);

   b=fun(a);

   printf("b=%ld\n",b);

   }

 2.编写函数voidfun(intk,int*p),功能是:

将参数k(2≤k≤32767)所有的不相同质因子升序写入p所指的一维数组中,以-1作为所有质因子的结束标志。

例如:

下面程序运行时若输入200,输出:

25;若输入27720,输出:

235711;若输入101,输出101。

 voidfun(intk,int*p)

 {

 }

 voidmain()

 {intx,a[17]={0},i;

   do{printf("Enteranumber(2-32767):

");

       scanf("%d",&x);

       }while(x<2);

   fun(x,a);

   for(i=0;a[i]!

=-1;i++)

       printf("%d",a[i]);

   printf("\n");

 }

3.编写函数voidfun(int*x,intn),功能是:

求出长度为n的数组x中的最大数与次最大数,并把最大数和a[0]对调,次最大数与a[1]对调,其余的数保持不变。

下面程序运行时若输入:

2461397058,则输出:

9861327054。

 #defineN10

 voidfun(int*x,intn)

 {

   }

 voidmain()

 {inta[N],i;

   for(i=0;i

       scanf("%d",a+i);

   fun(a,N);

   for(i=0;i

       printf("%d",a[i]);

   printf("\n");

   }

4.数组x中保存有n个正整数,编写函数intfun(int*x,intn),对数组x进行如下操作:

当x[i]不是最后一个元素时,用x[i]+x[i+1]取代x[i],即x[0]被x[0]+x[1]取代,x[1]被x[1]+x[2]代替……当x[i]是数组最后一个元素时,x[i]被x[i]+x[0]代替,即x[n-1]=x[n-1]+x[0],然后对数组进行升序排序,并统计奇数个数返回。

例如,下面程序若输入:

3527911219输出:

7891216203032n=2

intfun(int*x,intn)

{

 }

 voidmain()

 {inta[8],i,n;

 for(i=0;i<8;i++)

 scanf("%d",&a[i]);

 n=fun(a,8);

 for(i=0;i<8;i++)

 printf("%d",a[i]);

 printf("n=%d\n",n);

 }

 5.编写函数intfun(intx,longinty),功能:

计算满足表达式x0+x1+x2+...+xn

例如,当x=2,y=1000时,程序输出8。

 intfun(intx,longinty)

 {

}

 voidmain()

 {intx;longy;

   scanf("%d%ld",&x,&y);

   printf("n=%d\n",fun(x,y));

   }

 6.编写函数intfun(char(*ss)[N],intm,char*s),功能是:

形参ss指向一个m行N列的二维字符数组,每行存放一个字符串。

求出最长的字符串,复制到s所指的字符数组中,然后返回此最长字符串的长度。

 #defineN30

 intfun(char(*ss)[N],intm,char*s)

 {

 }

 voidmain()

 {chara[8][N],b[N];

   inti,len;

   for(i=0;i<8;i++)

       gets(a[i]);

   len=fun(a,8,b);

   printf("len=%d,str=%s\n",len,b);

   }

 7.编写函数intcountw(char*str),统计字符串str中单词的个数。

单词之间以空格,逗号,句号作分隔,数字也看做单词。

单词之间可能不止一个分隔符。

如输入:

  It's 10:

10 o'clock ,Iamlate.屏幕上输出"Thereare6words." 

 intcountw(char*str)

 {

 }

 voidmain()

 {chars[200];

   gets(s);

   printf("Thereare%dwords.\n",countw(s));

 }

 8.编写函数voidfun(char*str),功能:

字符串str中单词以空格作分隔,如果单词之间不止一个空格,则删除多余的空格,使单词之间只保留一个空格。

字符串开始的空格也只保留一个。

例如,程序运行时若输入:

   It's   10:

10 o'clock ,  I am late.

              输出:

It's10:

10o'clock,Iamlate.  

 voidfun(char*str)

 {

 }

 voidmain()

 {chars[100];

   puts("Enterastring:

");

   gets(s);

   fun(s);

   puts(s);

 }

 9.函数voidfun(intx,intk,int*p)的功能是:

求出比x大的最初k(k<1000)个素数,放入p所指数组中。

例如:

程序运行时输入:

1010,输出:

11131719232931374143  

 #include

 voidfun(intx,intk,int*p)

 {

 }

 voidmain()

 {inta,b,n[1000],i;

   scanf("%d%d",&a,&b);

   fun(a,b,n);

   for(i=0;i

       printf("%d",n[i]);

   puts("");

   }

10.编写函数intfun(inta,intb),在[a,b]范围内统计满足下面条件的数的个数。

条件:

该数是素数,且该数逆序后形成的数也是素数。

例如,在[100,150]范围内101107113131149满足条件,则下面程序运行时输入100150,输出:

num=5。

 #include

 intfun(inta,intb)

 {

 }

 voidmain()

 {intnum,a,b;

   scanf("%d%d",&a,&b);

   num=fun(a,b);

   printf("num=%d\n",num);

 }

11.编写函数voidfun(char*a,char*b),功能:

将a所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个#。

例如,下面程序运行时,若输入:

ABCDEFGHIJK  输出:

ABC#DEF#GHI#JK

 voidfun(char*a,char*b)

 {

 }

 voidmain()

 {charx[80],y[120];

   gets(x);

   fun(x,y);

   puts(y);

   }

12.编写函数intfun(intk),功能:

从3个红球,5个白球,6个黑球中任意取出k(2≤k≤13)个球作为一组进行组合。

在每组中,可以没有黑球,但必须要有红球和白球。

不同组合的数目作为函数值返回。

例如,若k为8时,正确的组合数是15;若k为2时,正确的组合数是1;或k为3时,正确的组合数是3。

 intfun(intk)

 {

   }

 voidmain()

 {intx,n;

   scanf("%d",&x);

   n=fun(x);

   printf("n=%d\n",n);

   }

13.编写函数voidfun(char*str),功能:

对形参str所指字符串中的字符按ASCII码升序排序。

例如,下面程序运行时输入:

TheCProgrammingLanguage<回车>  

输出:

  CLPTaaaeegggghimmnnorru

 voidfun(char*str)

 {

 }

 voidmain()

 {chars[100];

   gets(s);

   fun(s);

   puts(s);

   }

14.请编写函数voidfun(int*a,intn,inty),它的功能是:

把y值插入到有n个数的a数组中,a数组中的数已按由大到小的次序排好,y的值从键盘读入。

插入后,数组中的数仍然有序。

对照下面三种情况运行程序:

  1)插在最前   2)插在最后  3)插在中间

  若输入数11,输出201816141211108642

      输入数1, 输出20181614121086421

      输入数33,输出332018161412108642  

 #include

 voidfun(int*a,intn,inty)

 {

 }

 voidmain()

 {inti,a[11]={20,18,16,14,12,10,8,6,4,2},x;

 voidfun(int*,intn,inty);

 scanf("%d",&x);

 fun(a,10,x);

 for(i=0;i<11;i++)

   printf("%d",*(a+i));

 }

15.编写函数intfun(char*str,charch),从字符串str中删除指定字符ch。

如果字符串str中不包含字符ch,则函数返回值为-1,如果包含字符ch,则删除所有的ch字符后,将删除字符的个数返回。

例如:

若输入的字符串为:

abaaAabcaabbabca,字符ch为:

a,则程序输出:

bAbcbbbc,n=8

若输入的字符串为:

abaaAabcaabbabca,字符ch为:

d,则程序输出:

Nofindd

#include

#include

intfun(char*str,charch)

{

}

voidmain()

{chara[80],b;

 intn;

 printf("Pleaseinputastring:

");

 gets(a);

 printf("Pleaseinputadeletecharacter:

");

 b=getchar();

 n=fun(a,b);

  if(n==-1)

   printf("Nofind%c\n",b);

 elseprintf("%s,n=%d\n",a,n);

}

16.编写函数intfun(char*str),功能是:

统计字符串str中不同字符的个数并做为函数值返回。

例如,下面程序运行时若输入:

Oneworld,Onedream!

  输出:

n=13

intfun(char*str)

{

}

void main()

{chars[80];

 intn;

 gets(s);

 n=fun(s);

 printf("n=%d\n",n);

}

17.编写函数intfun(intm,intn,int*p),要求将范围[m,n]之间所有的fibonacci数写入p所指的一维数组中,fibonacci数的个数通过函数返回值带回。

例如,[0,30]之间的fibonacci数有7个,它们是:

123581321;[1000,32767]之间有7个,它们是:

159725846765109461771128657。

 intfun(intm,intn,int*p)

 {

   }

  voidmain()

 {inta,b,n,c[22],i;

   scanf("%d%d",&a,&b);

   n=fun(a,b,c);

   for(i=0;i

       printf("%6d",c[i]);

   printf("\nn=%d\n",n);

   }

18.编写函数char*fun(char*s1,char*s2,intn),将字符串s1中后面的n个字符复制到s2所指数组中,若s1不足n个字符,则用*在前端补齐至n个字符,写入s2中。

函数返回字符串s2的指针。

例如,下面程序运行时,

若输入:

“abcd1234”和6,则输出“cd1234”

 若输入:

“abcd1234”和10,则输出“**abcd1234”

 char*fun(char*s1,char*s2,intn)

 {

   }

 voidmain()

 {charc1[80],c2[80];

   gets(c1);

   fun(c1,c2,6);

   puts(c2);

   puts(fun(c1,c2,30));

   }

19.编写函数char*fun(char*str),对英文字符串str进行加密处理,加密规则是:

A->C,B->D,……,X->Z,Y->A,Z->B,同理,小写字母也按上面规则,a->c,b->d,……,x->z,y->a,z->b,其余字符保持不变。

函数返回字符串str的指针。

例如,

如输入:

IwenttoZooyesterday!

     输出:

KygpvvqBqqaguvgtfca!

   

 char*fun(char*str)

 {

   }

 voidmain()

 {chars[80];

   gets(s);

   puts(fun(s));

   }

20.编写函数voidfun(char*s),功能是:

把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动。

例如,下面程序运行时,

若输入:

abc      输出:

abc

若输入:

abcdefg  输出:

afcbedg

若输入:

abcdefgh 输出:

ahcbedgf

 voidfun(char*s)

 {

 }

 voidmain()

 {chara[80];

   gets(a);

   fun(a);

   puts(a);}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2