智能办公设备系统:aa[4][4]={{1,2,3,4}{5,6,7,8},{3,9,10,2},{4,2,9,6}};是一个矩阵?

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 12:24:22
36
#include <string.h>
main(){char *p="abcde\0fghjik\0"; printf("%d\n,s);}
输出结果是5为什么
\0是什么意思

42
int a=3;
main() {int s=0; {int a=5; s+=a++; } s+=a++; printf("%d\n", s);}
输出结果是8为什么

43
void ss(char *s, char t) {while(*s) {if(*s==t) *s=t-'a'+'A'; s++; } }
main() {char str1[100]="abcddfefdbd",c='d'; ss(str1,c); printf("%S\n",str1);}
输出结果是
abcDDfefDbD
为什么
45

struct sk {int a ; float b; } data; int *p
若要使p指向data中的a域,正确的输出语句是:p=&data.a;
为什么?

是矩阵1 2 3 4
5 6 7 8
3 9 10 2
4 2 9 6
36.\0是字符串结束标志。(你的问题里没有标志符s啊)
42.s+=a++的意思是先执行s+=a然后a再+1,注意第二个a是全局变量,不要被{int a=5; s+=a++; }里面的a的值所迷惑,第一个s+=a++执行完后s=5,然后执行第二个s+=a++,注意这个a=3,首先执行s+=a,s的值变为8,然后全局变量a++,全局变量a的值变为4。
43.s为字符指针,s++是地址运算,s指向下一个字符地址,实参行参结合时s指向字符串str的首地址,也就是第一个字母,这时*s=a。函数体{while(*s) {if(*s==t) *s=t-'a'+'A'; s++; }}的意思是当s指向的字符值为'd'时把指向的值变为大写'D'。又因为指针作函数参数时影响实参,所以字符串str中的所有字母'd'都被替换为大写'D'。因此就输出了abcDDfefDbD。('a'的ASC码为97,'A'的ASC码为65,'A'-'a'的值是大写字母与小写字母的ASC码差值,*s=t-'a'+'A';相当于*s=t-32;'d'的ASC码为100,‘D'的ASC码为68,因为t='d',因此*s=t-32相当于*s=100-32=68)
45.这个语句在声明结构体sk的同时声明了结构体变量data,p=&data.a的意思是取data.a的地址赋值给p。

aa 4x4 矩阵

printf("%d\n,p); 输出结果是5,表示p的大小5bytes
\0是字符串结束

{int a=5; s+=a++; s=0, a是后加加,所以s=0+a=5;
} s+=a++; printf("%d\n", s);}
a是全局量3,s=s+a=8, a是后加加,表达式用3不用6

ss(str1,c); 如果 字符是小写 'd' 则变大写。
abcDDfefDbD 所以D变大写

p=&data.a; 这是把结构data的a的地址给指针p,所以
p指向了a.

\0
是字符串输入完了之后的一个标志

int a=5; s+=a++;
即a=5,s=(s+a),a++
现在s=5 a=1
s+=a++; 此时a用全局变量为3
s=s+a即
s=8