}
第六章
6_1 基础部分习题
6_1_2 正确。p+2指向字符串”CD”的起始地址,因此strcat(a, p+2)是将CD连接到字符数组a中字符串”abc”的末尾,从而构成字符串”abcCD”存放在字符数组a中。 6_1_4 正确。 6_1_6 14,13 p=a+5; 使得p指向数组a中下标为5的元素。p+1表示下标为6的数组元素的地址,而*(p+1)即表示该数组元素,*p+1表示将下标为5的元素值加1(注意运算符的优先级)。 6_1_8 *(p+3) 做该题要看懂题意。要求不移动指针变量p,即不能通过赋值运算或者自加自减运算改变p的值;要求通过指针变量p引用值为e的数组元素,则意味着用包含指针变量p的表达式来表示数组的第5个元素c[4]。p=c+1表示将指针变量指向数组的第2个元素,要获取c[4]元素的地址用包含p的表达式来表示即p+3,而*(p+3)才表示c[4]。 6_1_10 负数 (如果题目没有特别要求,则应该写出具体值即-32) 6_1_12 6_1_14
#include
6_1_16
#include
while(p=q) printf(\是回文\\n\ else printf(\不是回文\\n\}
第七章
7_1 基础部分习题 7_1_2 正确。 7_1_4 错误。
通过return语句只能从函数内部传出一个值。出现多个return语句的时候(通常有分支结构存在时),函数只会执行其中一个return语句,因为一旦执行了return语句就会退出函数的执行。 7_1_6 8 注意避免与自加自减运算符的混淆,不要误认为两次调用函数fun的返回值都是5。 7_1_8
int mysearch(int *p, int x, int n) { int i, m=10; for(i=0; i 7_1_10 略 7_1_12 #include main() { float x; scanf(“%f”, &x); printf(“%d”, f(x)); } 7_1_14 #include void DelMax(int a[], int n); main() { int a[10], i; for(i=0; i<10; i++) scanf(\ DelMax(a,10); for(i=0; i<9; i++) printf(\} void DelMax(int a[], int n) { int max=0, i; for(i=1; i 7_1_16 略 7_1_18 #include float f(int a[][N]); main() { int a[M][N], i, j; for(i=0; i float f(int a[M][N]) { int i, j; float sum=0; for(i=0; i 7_2 提高部分习题 7_2_2 正确 7_2_4 7 12 7 7 7 7 14 7_2_6 #include main() { int n; scanf(“%d”, &n); printf(“%f\\n”, sum(n)); }