{ 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页)