C习题集(5)

2019-01-27 14:22

y+=*(a+i)*t; }

⑷ }

16. 下列函数在n个元素的一维数组中,找出最大值、最小值并传送到调用函数。 #include void find(p,max,min,n)

float ⑴ ; int n; { int k; ⑵ *max=*p; ⑶ for(k=1;k

if( ⑷ ) *max=t; if(t<*min) *min=t; } }

17. 下列函数用于将任意方阵(行数等于列数的二维数组)转置。 void mt( ⑴ ) 如数组 1 11 -3 -2 { int i,j; float t; 2 3 4 5 for(i=0;i

(a+i*n+j)=*(a+j*n+i); 1 2 7 4 ⑶ 11 3 -4 5 } -3 4 4 6 } -2 5 2 7

18. 下列程序读入六个字符串,排序后输出。 #include

void sort(char *a[],int n) { int i,j,l; char *temp; for(i=0;i

for(j=i+1;j

void main()

20

{ char *name[6],ch[6][30]; int k; for(k=0;k<6;k++) ⑵

for(k=0;k<6;k++) gets(name[k]); ⑶ for(k=0;k<6;k++) puts(name[k]); }

19. 下列函数用于将链表中某个节点删除,其中n为全程量,表示链表中的节点个数。 struct tabdata *del(struct tabdata *h, long num) { struct tabdata *p1,*p2; int if(h==NULL) {

printf(”\\nlist null!\\n”); ⑴ }

p1=h;

while(num!=p1->num&& ⑵ ) { p2=p1; p1=p1->next; }

if(num==p1->num) {

if(p1==h) h=p1->next;

else ⑶

n--; printf(”delete:%ld\\n”,num); }

else printf(”%ld not been found!\\n”,num); end: return h; }

20. 下列函数用于将链表中各节点的数据依次输出。

void print(struct student *head) { ⑴ p=head;

if(head!=NULL) do {

printf(”%ld\\n”,p->data); ⑵ } while ( ⑶ ); }

21. 已建立学生“英语”课程的成绩链表(成绩存于score域中),下列函数用于计算 平均成绩并输出。

void print(struct student *head)

{ struct student *p;float num; ⑴ ; ⑵ ;

21

if(head!=NULL) {

for(num=0;p!=NULL; ⑶ ,i++) num+=p->score; num=num/i; printf(“%8.1f\\n”,num); } }

22. 已建立学生“英语”课程的成绩链表(成绩存于score域中,学号存于num域中), 下列函数用于输出待补考学生的学号和成绩,及补考学生人数。

void require(struct student *head) { struct student *p; ⑴ if( head!=NULL) { ⑵ while(p!=NULL) { if( ⑶ ) {

printf(”} %6.1f\\n”,p->num,p->score); x++; }

p=p->next; }

printf(”%ld\\n”,x); } }

23. 下列函数用于向一非空链表插入结点(由p0指向),链表按照结点no域的升序排列。 struct ltab insert(struct ltab *head, struct ltab *stud) { struct ltab *p0, *p1, *p2; p1=head;p0=stud;

while((p0->no>p1->no)&&( ⑴ )) { p2=p1; p1=p1->next; }

if(p0->no<=p1->no)

if(head==p1) { p0->next=head; head=p0;} else { p2->next=p0; ⑵ } else { p1->next=p0; ⑶ } return (head); }

24. 输入若干个学生的姓名、学号、数学、英语、计算机成绩到文件中student.dat。 #include void main()

{ ⑴ char name[8],numb[8]; ⑵ scanf(\⑶ for(i=1;i<=n;i++) {

22

scanf(\

fprintf(fp,\ }

⑷ ; }

25. 下列程序将文件a.dat、b.dat按原顺序(文件中每行一个数,按从小到大排列)合并到文件c.dat中。

#include void main()

{ FILE *f1,*f2,*f3; int x,y;

f1=fopen(\ ⑴ ;

fscanf(f1,\ while(!feof(f1)&&!feof(f2)) if(x

fprintf(f3,\ }

else {

fprintf(f3,\ }

if(feof(f1)) {

⑵ ; while(!feof(f2)) {

fscanf(f2,\⑶ ; } }

else {

fprintf(f3, ⑷ ); while(!feof(f1)) {

⑸ ; fprintf(f3,\ } }

fclose(f1); fclose(f2); fclose(f3); }

5 编程题

1. 编程,统计在所输入的50个实数中有多少个正数、多少个负数、多少个零。 2. 编程,计算并输出方程 X+Y=1989 的所有整数解。

3. 编程,输入一个10进制正整数,然后输出它所对应的八进制、十六进制数。

23

2

2

4. 一个数如恰好等于它的因子之和,这个数就称为“完数”。编程序找出1000以内的所有完数,并输出其因子(6是一个\完数\,它的因子是1,2,3)。

5. 输入一个正整数,输出它的所有质数因子(如180的质数因子为 2、2、3、3、5)。 6. 输入20个整数,输出其中能被数组中其它元素整除的那些数组元素。

7. 输入两个数组(数组元素个数自定),输出在两个数组中都出现的元素(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出3、5)。

8. 输入两个数组(数组元素个数自定),输出在两个数组中都不出现的元素(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出2、4、6、3、7、9、10、-1)。

9.编程,将字符数组S2中的全部字符拷贝到字符数组S1中(不用strcpy函数)。拷贝时,'\\0'也要拷贝过去。'\\0'后面的字符不拷贝。

10.给定年份year,判别该年份是否闰年(定义一个宏以判别该年份是否闰年)。

11.输入一行小写字母后,或输出原文,或将字母变成其下一字母(a变成b、b变成c、c变成d、…、x变成y、y变成z、z变成a)输出,用条件编译方法实现以上选择。

12. 编写一个函数,处理n行、n列的二维数组:将每一行的元素同除以该行上绝对值最大的元素。

13. 编写函数,求任意阶多项式 a0+a1X+a2X+...+anX的值并返回多项式的值。 14. 设计一个函数,使给出一个数的原码,能得到该数的补码。 15. 编写函数,求m行、n列的二维数组全体元素中负数的个数。 16. 编写函数,返回在一个整数组中出现次数最多的数及其出现次数。 17.编一个程序,打入月份号,输出该月的英文月名,要求用指针数组处理。 18.编写递归函数,将输入的以“?”结束的字符串按与输入相反的顺序输出。

19. 编写函数,在n个元素的一维数组中,统计比相邻元素大的数组元素个数并将统计数返回(不考虑a[0]和a[n-1]),要求以指针变量而不是数组名作参数。

20. 编写函数,在n个元素的一维数组中,找出最大值、最小值并传送到调用函数。 21. 编写一个函数,统计m行n列二维数组中有多少个正数、多少个负数,多少个零,并返回统计结果。

22. 写一函数,在给定的一行以“.”结束的字符中,找出最长的单词并输出。

23. 编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,用print函数输出这些记录。 24. 把文本文件d1.dat复制到文本文件d2.dat中,要求仅复制d1.dat中的英文字符。 25. 编程,把文本文件d1.dat复制到d2.dat(其中空格字符不复制)。

26. 编程,把文本文件d1.dat复制到d2.dat(其中大写英文字母要转换为小写字母)。 27. 把文本文件d1.dat复制到文本文件d2.dat中,要求仅复制d1.dat中除英文字符和数字以外的其它内容。

28. 求出1至100之间的素数(只能被1和自身整除的数)并顺序写入文件su.dat。

24

2

n


C习题集(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:“十二五”教师继续教育个人达标学习计划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: