C语言程序设计综合练习题 下载本文

{ int age; int num; }stu1, *p; p=&stu1;

A)stu1.age B)student.age C)(*p).age D)p->age 2.设有如下定义 struct ss

{ char name[10]; int age; char sex; } std[3],*p=std;

下面各输入语句中错误的是

A)scanf(\ B)scanf(\ C)scanf(\ D)scanf(\3.若有以下说明,能正确的引用“Li Ming”的方式是

struct stu { int name; int num;

}stu1[2]={{\ struct stu *p=stu1;

A)stu1.name B)stu1[1].name C)(*p++).name

综 合 练 习 题

一、 编写程序

第21页(共23页)

p->name

D)1.求下列分段函数的值。

?1?1?XX??1? Y??0X??1

?X2X??1??2.求下列分段函数的值。(a、b由键盘输入 )

?a?ba?b? Y??0a?b

?a?ba?b?3.求分段函数的值

z?logxx?0x1 x?0

x?01?x2X?0X?0 X?0?1?ex?4.求分段函数的值 Y??1?lnx2?5.计算:s=1+1/1+1/2+?? +1/n ,其中n由键盘输入。 6.用台劳级数求e的近似值,直到最后一项小于10-6

e=1+1/1!+1/2!+1/3!+ ??

7.求s=1-2+3-4+5??+99-100

8.输出200~1000之间能被7整除的数,并统计其个数。

9.任意输入100个整数,分别统计其中的正数、负数和零的个数。 10.任意输入N个数,统计其中的正数个数和负数个数。

11.任意输入a[N][N]个数,找出并输出其中的最大数和最小数,以及它们的下标。 12. 求数组a[8][8]中,主对角线和次对角线上各元素之和。 13.任意输入N个数,将它们由大到小排序输出。 14.编程打印下列的杨辉三角形。(设10行) 1 1 1 1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1 ??

15.以“#”为字符,打印一个正三角形。

16.以“@”为字符,打印一个6行的倒正三角形。

17. 打印10~1000之间满足下列条件的所有数: 正序读和反序读都相同,例如:55、232等。

18.从键盘任意输入一个大于0且小于1000的整数,然后输出此整数的所有整数因子。

例如:输入12,输出1,2,3,4,6,12。

第22页(共23页)

19.编写一个函数,将字符串中的元音字母输出。例如字符串为“boy and girl”, 则输出为: oai 20.从键盘上任意输入一个字符串S,输出其中的数字字符。例如输入为:sd12we$*55abc8,则输出结果为:12558

21.编写一个函数,将两个字符串连接起来。(不能用strcat函数)。

22.编写一个函数:完成判断方阵a[N][N]是否关于主对角线对称(相等),若对称则返回1,否则返回0。

23.输入10个学生(包括姓名和成绩)的信息,找出成绩最高的,然后输出该学生的姓名和成绩。

24.输入10个学生(包括姓名、计算机、英语)的信息,找出二门课的平均成绩最高的学生,然后输出该学生的姓名和成绩。

25.函数int add(int a[N][N] , int b[N])的功能是将a数组中每行的最小元素放入b数组中,编写该函数实现之。

26.函数int add(int a[N][N] , int b[N])的功能是将a数组中每行的最大元素放入b数组中,编写该函数实现之。

27.函数int add(int a[N][N] , int b[N])的功能是将a数组中每列的最小元素放入b数组中,编写该函数实现之。

28.编写一函数: int substring(char *str, char *sub), 判断字符串sub是否是字符串str的子串,若是子串,则返回子串的位置,否则返回 -1。

29.函数void comp(char *s1, *s2)的功能是比较字符串s1和字符串s2,若字符串s1大于字符串s2,则函数返回1,若字符串s1等于字符串s2,则函数返回0,若字符串s1小于字符串s2,则函数返回-1。(要求:不能调用库函数strcmp)

30.函数void dele(char *s)的功能是删除字符串s中的所有数字字符和非字母字符,并将字符串压缩。例如原字符串为:abc12ef5ghij8#%%yz,处理后的字符串为:abcefghijyz。

第23页(共23页)