c语言选择题?

大佬们大神们,麻烦解答一下这两个题

自己做的仅供参考:
可能有不对的好久不看了,快忘光了!呵呵
aabcd
bddbd
dbdbd
35(数组说明的一般形式为:
类型说明符
数组名
[常量表达式],……;
不能在方括号中用变量来表示元素的个数,
但是可以是符号常数或常量表达式。
例如:
#define
FD
5
void
main()
{
int
a[3+2],b[7+FD];
……
}
是合法的。但是下述说明方式是错误的。
void
main()
{
int
n=5;
int
a[n];
……
}
问题:const变量
&
常量
为什么下面的例子在使用一个const变量来初始化数组,ANSI
C的编译器会报告一个错误呢?
const
int
n
=
5;
int
a[n];
答案与分析:
1)、这个问题讨论的是“常量”与“只读变量”的区别。常量肯定是只读的,例如5,
“abc”,等,肯
定是只读的,因为因为常量是被编译器放在内存中的只读区域,当然也就不能够去修改它。而“只读变量”则
是在内存中开辟一个地方来存放它的值,只不过这个值由编译器限定不允许被修改。C语言关键字const就是用
来限定一个变量不允许被改变的修饰符(Qualifier)。上述代码中变量n被修饰为只读变量,可惜再怎么修饰
也不是常量。而ANSI
C规定数组定义时维度必须是“常量”,“只读变量”也是不可以的。
2)、注意:在ANSI
C中,这种写法是错误的,因为数组的大小应该是个常量,而const
int
n,n只是一个变
量(常量
!=
不可变的变量,但在标准C++中,这样定义的是一个常量,这种写法是对的),实际上,根据编译
过程及内存分配来看,这种用法本来就应该是合理的,只是
ANSI
C对数组的规定限制了它。

32(b超出范围了,c不该用单引号,同理d也是)
33(别忘记空格也算一个,‘\0’不算它在计算数组长度是只是一标志)
34(好像就到a[4],没有a[5],它是不合法的)
35(感觉像是选这个,不太肯定)
39(基本概念)
40(c语言的规定)
41(结构体变量所占的内存长度是各成员内存长度的和)
42(s[0].x=1
s[0].y=2
s[1].x=2
s[1].y=7)
43(共用体变量中各成员公用一段存储单元,所以任一时刻即只能有一种数据类型放在内存单元,即在任一时刻
只有一个成员有效,其他没意义。在共用体中起作用的是最后一个元素)
44(4+w*4+w=4+2*4+2=14)
45(把break和continue的用法搞清楚,书中有我就不具体说了)
呵呵!上面都个人见解,仅供参考!
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-02-15
*p++,++和**同优先级,结合方向自右向左,作用是先取p的值后使地址移到下一位。
(*p)++表示p所指向的元素值加1,如果p=a,则(*p)++相关a[0]++,若a[0]=3则(*p)++即(a[0]++)的值为4了。
第2个回答  2019-10-27
这两题都好难啊
第九题选A。pt是个行指针,pt+1等于&t[1],再对它[2]就等于t[3]了,出界。
第十题选D。ptr等于数字2的地址,++以后就指向数字3的地址,取a1成员就是3.追问

第10题初始化是不题目写错了?不是a[0] a[1]这个顺序嘛

它是a1 a2 a0这个顺序

追答

其实我之前从未见过这种定义方式。不过编译器没报错就没问题。赋值的是未初始化的地址呗,之后才初始化。

本回答被网友采纳

计算机二级的c语言有哪几种题型?
计算机二级c语言考试题型有单项选择题、程序填空题、程序改错题、程序设计题四大类题型。各题型分值如下:一、单项选择题 单项选择题共四十题,四十分,每一个选择分值为1分,其中单项选择中含公共基础知识,该部分十道题,占10分。二、程序填空题 程序填空题有2-3个空,占比分值18分,该题型为上机题...

c语言 选择题,选正确的,选好了给个说明
答案:D 评析:通常,预处理命令位于源文件的开头,也可以写在函数与函数之间;不能在一行上写多条预处理命令:宏名一般习惯用大写字母表示,以便与变量名相区别,但这并非规定,也可用小写字母。预处理命令是以#号开头的代码行,每一条预处理命令必须单独占用一行,由于不是C的语句,因此在结尾不能有...

c语言选择题
D:*p='c',s[0]='c'

c语言 一道简单的选择题
答案是D。分析:按%d%d%d格式输入时,要求用空白(空格、换行等)作为分隔符。当输入3 4,5时,因为3 4符合输入格式的要求,所以会将3赋值给a,4赋值给b。但接下来遇到了逗号,不符合输入格式的要求,scanf函数会提前退出,并返回2(表示成功赋值了2个值),而c不会被赋值(保持它原来的值2),...

c语言选择题
答案为D 逗号表达式从左到右执行,值为最右边的值 ,D中x=y=7 然后++x (x=8),最后返回的值 为x+1,即9

C语言,题目中的选择题,求详细解析
正确答案应该是B.15。这里考察的重点是符号常量的使用。主函数中出现符号常量FUN(x,y) 则直接用 (x)<(y)?(x):(y)替代即可。本题中:k=10*FUN(i,j);可以看作:k=10*(i)<(j)<(i):(j);而i=10,j=15 所以按照运算优先级有:k=100<15?10:15;结果显然是15。故选择B。

c语言指针选择题求解
1.选C。int a,*p;定义了一个整型变量a以及整型指针p;因此p=&a;p可以存放a的地址。2.选B。int a,*p=&a;因为a是一个变量,不存在*a这一个用法。3.选D。pp未定义错误。C是正确的,p1、p2以及p都是整型指针。4.a是整型变量,p是一级指针a的地址。q是二级指针p的地址。5.q指向null。

C语言选择题
答案:C 解析:这道题主要考两个概念:1. 进入fun函数的参数p实际上是main中的变量p的拷贝,所以对fun里的p赋值将不会影响到main函数中的变量p;2. fun函数中的变量s是临时变量,是在栈上开辟的s空间,当fun函数返回时,内存就会被释放掉。对于每个选项的情况如下:A: 不符合1,2 B: 不符合1...

C语言选择题
答案是A。先执行!x,因为x非零,那么!x即为0.就是为假。相与的时候,只要判断前一个为假,那么不执行后一句。所以x<++y没有执行,y不会变化,那么整个表达式的值为假,就是0,再赋给x,那么x=0.所以。

C语言的几道选择题,求答案,谢谢
1.for(n=0,n<20;n++)控制循环执行(D)次。A.19 B.21 C.22 D.20 解释:从n=0运行到n=19,你数数,应该是20次吧!2.一个C语言源程序至少应包含一个( A )。A.Main函数 B.用户自定义函数 C.语句 D.printf函数 解释:main函数是机器的识别函数,程序在main函数...

相似回答