C语言试题请教

1.1 怎样打印一个变量 a 的地址?
答案:
1.2 数组的大小可以在程序运行时定义吗?
答案: 1.3 把一个值 2 加到一个指针p上意味着什么?
答案:
1.4 数组名可以进行自增加运算么? 例如 int a[10]; a++
答案:
1.5 main 函数的入口参数 int argc, char * argv[] 的含义是什么?
答案:

1.6 在C语言中,要存储一个8个字符的字符串,至少需要声明大小为____的一维字符数组?
答案:
1.7 可以在赋值语句中通过赋值运算符"="对字符数组进行整体赋值么?
答案:
1.8 c 语言中,宏定义有什么作用? 怎样定义一个宏? 怎样取消一个已定义的宏?
答案:
1.9 0x55 和 0x99 进行 & 操作,结果是什么?
答案:
1.10 在printf 语句中,出现 \n 是什么含义,出现 \t \b 是什么含义?
答案:

1.11 定义两个结构体变量 a 和 b, 可以通过 a = b 对 a 进行整体赋值么?
答案:
1.12 i++ 和 ++i 有什么区别?
答案:
1.13 请解释一下 栈 和数组的区别?
答案:

1.14 如果一个变量被声明为static,它会被分配在哪里。在什么时候分配空间?
答案:
1.15一个字符串的最后是以什么结尾?
答案:
这么多人回答,真的很感激!其实我是答完卷子,想看看自己能对多少,大部分和我自己答的差不多,不过答案还没出来,到时谁对的多就把最佳回答给谁吧,毕竟最佳只有一个,其他人只能说声谢谢了!

1.1 printf("%d",&a);
1.2 不能,编译时就确定了
1.3 p+2指p的值加上2*p所指向数据类型的字节数
1.4 不可以,数组名是一个地址
1.5 int argc, char * argv[] 是main函数的形参,其实参是操作系统给出或由执行文件的命令一同给出
1.6 8 可以不包含结束符
1.7 不可以
1.8 宏定义就是用一个名字代替一个字符串,简单置换 #define XXX xxx
1.9 结果出错 它们是常量
1.10 \n换行 \t移动到下一个tab位置 \b后退一格
1.11 可以 但a b必须为同类结构体变量
1.12 i++:先使用i,然后i的值加1,++i:先使i+1,在使用i
1.13 栈 一种数据结果 先进后出原则存储数据 数组 是一类数据类型 许多变量有序的排列起来
1.14 分配在内存的静态存储区 在函数调用时才分配空间,函数调用结束后仍保留,程序结束时释放
1.15 \0
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-29
.1 怎样打印一个变量 a 的地址?
答案:int a;int b=&a
1.2 数组的大小可以在程序运行时定义吗?
答案: 不能
1.3 把一个值 2 加到一个指针p上意味着什么?
答案: 移动指针两个单位。比如一个16位整数,就是移动两个字节。
1.4 数组名可以进行自增加运算么? 例如 int a[10]; a++
答案: 可以
1.5 main 函数的入口参数 int argc, char * argv[] 的含义是什么?
答案: 参数的个数 和 参数的值

1.6 在C语言中,要存储一个8个字符的字符串,至少需要声明大小为____的一维字符数组?
答案: 9 包含结束符
1.7 可以在赋值语句中通过赋值运算符"="对字符数组进行整体赋值么?
答案: 不能
1.8 c 语言中,宏定义有什么作用? 怎样定义一个宏? 怎样取消一个已定义的宏?
答案:define
1.9 0x55 和 0x99 进行 & 操作,结果是什么?
答案: 1
1.10 在printf 语句中,出现 \n 是什么含义,出现 \t \b 是什么含义?
答案: \r换行回车 (后两个不知)

1.11 定义两个结构体变量 a 和 b, 可以通过 a = b 对 a 进行整体赋值么?
答案: 不能
1.12 i++ 和 ++i 有什么区别?
答案:加了之后使用 和先加后使用 输入 i=0; a=0; a=i++; 打印a ; i=0; a=0; a=i++; 再打印a;使一下就清楚了
1.13 请解释一下 栈 和数组的区别?
答案: 栈先进后出, 数组连续,可直接访问,不用遍历

1.14 如果一个变量被声明为static,它会被分配在哪里。在什么时候分配空间?
答案: 静态存储区
1.15一个字符串的最后是以什么结尾?
答案:/0
第2个回答  2012-02-29
1 int a,*p=&a;然后输出printf("%ld",long(p))
2 int a[10]; 10为常量表达式,它可以包含常量和符号常量,不能包含变量.也就是说,C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值.例:
下面这样定义数组大小是不行的:
int n;
scanf("%d",&n);//在程序中临时输入数组的大小
int a[n];
3 int a[10] ,*p; p=&a[0]; 而 p+2和a+2一样都是a[2]的地址
4 不能, a 实际上就是a[0] a++ 相当于对a[0]而对别的数据无作用
5 不就是定义一个 整形变量argc和一个字符型指针数组argv[
6 9
7可以 int a[3]={0,1,2,3}
8 一般形式 #define 标识符 字符串 用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量.
9 两个十六进制数
10 \n换行,将当前位置移到下一行开头\t跳到下一个Tab位置\b退格,将当前们置移到前一列
11结构体a和b它们的成员表列都不同,怎么整体赋值
12 ++i 在使用i之前,先使i 的值加1 i++在使用i之后,使i 的值加1
13 数组是有序数据的集合.数组每一个元素都属于同一个数据类型. 栈是限定仅在表尾进行插入或删除操作的线性表. 后进先出
14 静态存储区
15 \0
累啊,感觉自己翻一下书就可以啊
第3个回答  2012-02-29
1 printf("%x",&a);
2 不可以,必须在主函数开头定义。如不知道数组大小可以申请动态数组
3加n相当与将该指针代表的地址向后移动n个单元,如对整形数据来说就移动4n个存储单元
4不能,a是一个常量地址,其值不能改变
5这个没用的,忽略吧
6 9个,因为结尾必须加零字符
7不能
8宏定义可以整体代替。定义时用#define,取消定义时用#undef
9一个指向指针的指针
10 \n为换行,\t为水平表制,\b为退格
11 不能
12 i++为输出后实现自增,++i为先自增后输出
13栈是一个存储区,而数组是一组连续的地址
14随机的,定义时
15零字符本回答被提问者和网友采纳
第4个回答  2012-02-29
1.1:printf(“%d”,a);
1.2:不可以的,因为要先告诉系统要多少存储空间;
1.12:i++是先用后加,而++i是先加后用;
1.15;‘\0’
相似回答