C语言选择题,高手帮忙做一下(7个)
16、设有inta[]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是()A.10,11,12B.11,1...
16、设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是 ( )
A.10,11,12 B.11,12,12 C.10,12,12 D.11,11,12
17、已知ch是字符型变量,下面正确的赋值语句是( )
A、ch=’\123’ B、ch=’xfff’ C、ch=’\08’ D、ch=’\’
18、以下函数调用语句中,含有的实参个数是( )
A、1 B、2 C、4 D、5
Func((exp1,exp2),(exp3,exp4,exp5));
19、以下叙述中正确的是 ( )
A、 输入项可以是一个实型常量,如 scanf("%f ",3.5);
B、 只有格式控制,没有输入项,也能正确输入数据到内存,如: scanf("a=%d,b=%d");
C、 当输入一个实型数据时,格式控制可以规定小数点后的位数,如:scanf("%4.2f",&f);
D、 当输入数据时,必须指明变量地址,例如: scanf("%f",&f);
20、程序运行输出了错误的结果,可以排除下列哪一个因素( )。
A.算法错误 B、运行时输入数据错误
C、未通过编译 D、系统资源配置不当
21、要为字符型变量a赋初值,下列语句中哪一个是正确的( )。
A、char a=’3’; B、char a="3";
C、char a=%; D、char a=*;
22、数组定义为"int a[4][5];", 引用"a[1]+3"表示( )。
A、a数组第1行第3列元素的地址 B、a数组第1行第3列元素的值
C、a数组第4行的首地址 D、a数组第4列的首地址 展开
A.10,11,12 B.11,12,12 C.10,12,12 D.11,11,12
17、已知ch是字符型变量,下面正确的赋值语句是( )
A、ch=’\123’ B、ch=’xfff’ C、ch=’\08’ D、ch=’\’
18、以下函数调用语句中,含有的实参个数是( )
A、1 B、2 C、4 D、5
Func((exp1,exp2),(exp3,exp4,exp5));
19、以下叙述中正确的是 ( )
A、 输入项可以是一个实型常量,如 scanf("%f ",3.5);
B、 只有格式控制,没有输入项,也能正确输入数据到内存,如: scanf("a=%d,b=%d");
C、 当输入一个实型数据时,格式控制可以规定小数点后的位数,如:scanf("%4.2f",&f);
D、 当输入数据时,必须指明变量地址,例如: scanf("%f",&f);
20、程序运行输出了错误的结果,可以排除下列哪一个因素( )。
A.算法错误 B、运行时输入数据错误
C、未通过编译 D、系统资源配置不当
21、要为字符型变量a赋初值,下列语句中哪一个是正确的( )。
A、char a=’3’; B、char a="3";
C、char a=%; D、char a=*;
22、数组定义为"int a[4][5];", 引用"a[1]+3"表示( )。
A、a数组第1行第3列元素的地址 B、a数组第1行第3列元素的值
C、a数组第4行的首地址 D、a数组第4列的首地址 展开
展开全部
我来答吧
第1题 C
执行*p++时,是先执行*p然后再把p指向的地址自加1,因此执行*p++后,原值a[0]仍为10,但p指向了&a[1]
再执行*p+=1,变换一下得*p=*p+1;这时p是a[1]的地址,因此这次是把a[1]的值加1,执行结果是a[1]=11+1=12;
当然a[2]的值没有影响,仍为12,所以最后结果为10,12,12
第2题 D
因为'\'是一个不完整的句子,也就是说他会被C这样解释,首先第一个单引号表示中间是一个字符,而\是转义字符,这个符号后面跟的是要被转义的符号,因此\'被C解释为一个整体,那么整个语句也就缺少与第一个引号相对应的反引号,所以错误
第3题 B
因为括号中的是逗号表达式,逗号表达式是以最右边的值作为整个表达式的值,也就是说(exp1,exp2)的值是exp2,而(exp3,exp4,exp5)的值是exp5,然后再以这两个值作为函数的实参,所以实参个数只有两个,就是exp2和exp5
第4题 D 自已想想,这个题,答案C是错误的
第5题 C
既然程序都能输出结果,说明没有语法错误,通过编译只要语法没有错就能通过编译所以这个答案是错的。答案D有这种可能出现,比如你在16位机上编的程,拿到8位机上去运行,就可能会有输出错误。
第6题 A 这题很简单,"3"是字符串,不能赋给字符变量a,答案C和D不知道是写的什么,所以是错的
第7题 A
因为在二维数组中a表示&a[0],而a[0]表示的是&a[0][0]的地址,因此a[1]表示的就是&a[1][0]的地址,那么a[1]+3就等于是&a[1][0]+3=&a[1][3],所以最后表示的是a[1][3]的地址。
具体二维数组的地址表示算法和指针的关系,你可以去下载本人文库中关于指针的详细解释。
第1题 C
执行*p++时,是先执行*p然后再把p指向的地址自加1,因此执行*p++后,原值a[0]仍为10,但p指向了&a[1]
再执行*p+=1,变换一下得*p=*p+1;这时p是a[1]的地址,因此这次是把a[1]的值加1,执行结果是a[1]=11+1=12;
当然a[2]的值没有影响,仍为12,所以最后结果为10,12,12
第2题 D
因为'\'是一个不完整的句子,也就是说他会被C这样解释,首先第一个单引号表示中间是一个字符,而\是转义字符,这个符号后面跟的是要被转义的符号,因此\'被C解释为一个整体,那么整个语句也就缺少与第一个引号相对应的反引号,所以错误
第3题 B
因为括号中的是逗号表达式,逗号表达式是以最右边的值作为整个表达式的值,也就是说(exp1,exp2)的值是exp2,而(exp3,exp4,exp5)的值是exp5,然后再以这两个值作为函数的实参,所以实参个数只有两个,就是exp2和exp5
第4题 D 自已想想,这个题,答案C是错误的
第5题 C
既然程序都能输出结果,说明没有语法错误,通过编译只要语法没有错就能通过编译所以这个答案是错的。答案D有这种可能出现,比如你在16位机上编的程,拿到8位机上去运行,就可能会有输出错误。
第6题 A 这题很简单,"3"是字符串,不能赋给字符变量a,答案C和D不知道是写的什么,所以是错的
第7题 A
因为在二维数组中a表示&a[0],而a[0]表示的是&a[0][0]的地址,因此a[1]表示的就是&a[1][0]的地址,那么a[1]+3就等于是&a[1][0]+3=&a[1][3],所以最后表示的是a[1][3]的地址。
具体二维数组的地址表示算法和指针的关系,你可以去下载本人文库中关于指针的详细解释。
展开全部
我是你的C语言老师。。我时刻关注着百度知道。。你要是这个不努力学习 我就让你挂科!!!!!!!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
呵呵!! 本想帮你,你们老师都出面了! 我还是不献丑!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |