C语言选择题,高手帮忙做一下(7个)

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列的首地址

我来答吧
第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个回答  2010-05-29
我是你的C语言老师。。我时刻关注着百度知道。。你要是这个不努力学习 我就让你挂科!!!!!!!!!
第2个回答  2010-05-29
呵呵!! 本想帮你,你们老师都出面了! 我还是不献丑!
第3个回答  2010-05-29
A D B C C A B

C语言高手,帮帮忙
(7) k,5 因为程序中的语句是顺序语句所以先执行st=st+i; 则st=75 因为要以字符型显示,所以A的ASCII码是65,那么大写字母的ASCII码规则是逐个增一,所以到75,就是字母K 然后在执行i=st%i,因为初值i=10,经过执行第一句后st=75,所以i=75%10 ,所以是5 (8) !(非) &&(且) ||(...

c语言 选择题 求高手帮忙!
scanf("%s%s",a1,a2);可以正常读取aa bb a1=aa b1=bb gets(a3);gets(a4);gets(a3)读取了一个空字符('\/0')gets(a4)读取了 cc dd 所以输出是A ,这个你自己上机调试跟踪就可以了。这道题说明scanf和gets是有区别的,但我也说不清,上网查吧 ...

几道c语言题目 菜鸟望高手解答
第一道题:输出的是:0 1 3 4 \/\/因为for循环 i从0到4 但是当i等于2的时候执行了continue,也就是直接跳转到下一次循环,所以2没有输出 第二题:t为2 因为 if-else 结构中的else是和最近一个if相匹配的,又因为if(x<y)不成立,所以直接执行输出语句,即输出2 第三题:3 6 9 因为x被...

请c语言高手帮我计算下答案多少?我算出来是6
} } return 0;}结果 是7.关键是这个语句 while (k <= j \/ 2 && b) { ++k; b = j % k; } 只有j等于7才能导致最后跳出循环时b非0.6,9,8都不行.

求高手帮忙做一些C语言试题
第一题、单项选择题(每题1分,5道题共5分)1、设x和y均为int型变量,则以下语句:x=x+y; y=x-y; x=x-y; 的功能是:D、交换x和y中的值 2、已说明int a=256,执行语句printf(”%x” ,a);的结果是:A、100 3、以下合法的赋值语句是:A、x=y=100;4、已说明int a=...

C语言高手进,帮忙解答一下下列各题的标准答案。此题是我的重要复习题...
【答案】32.D 33.B 36.A 45.C 47.C 50.D 58.B 【解析】32.字符串数组除了里面的实际字符,系统还会自动的分配一个结束符"\\0",所以该数组所占空间为6+1=7个。33.一句话说不明白,放心,已经通过程序验证,答案肯定正确。36.括号内的只能算是一个参数。45.因为是static定义的静态变量,...

c语言编程题,请高手帮忙做一下,拜谢,急急急急……
Stu table[LEN]; \/\/ 申请一个长度为3的结构数组来存放数据 int count = 0;char *p[5] = {"姓名","数学成绩","语文成绩","英语成绩","总分"};\/\/ \/\/ 输入数据并计算总分,基本可以实现无异常输入,名字数组长度30,有越界可能 \/\/ for(count = 0; count < LEN; count++){ printf("...

请C语言高手帮忙做几道选择题(能解析一下最好),急~~!
7、break语句可用于程序的任何地方,以终止程序的执行(错)8、若有一个多维数组a,则*(a+1)与a[i]等价(错)9、C语言程序的书写结构虽然自由,但为了清晰,一般在一行内写一个语句(对)10、若有定义double(*p)[4];则p是行指针,p占一个储存单元(对)11、在程序运行过程中,系统分配给...

求各位高手帮忙作一下C语言作业
所有程序在win-tc和Dev-c++下运行通过。现在所有的题目都有答案了。第一题:include <stdio.h> define N 10 int main(){ int a[N],i,m=0,n=0,max,min,*p;p=a;printf("Please input %d elements of the matrix :\\n",N);for(i=0;i<N;i++)scanf("%d",p+i);printf("The array...

关于c语言的选择题,高手帮忙给我分析一下呀
选C!字符串后面的初值表里只有4个字符,所以D后面全都是字符串结束标志'\\0',而指针p指向了字符串的首地址,也就是'A',而*(p+4)指向a[4],也就是D后面的一个元素,是字符串结束标志'\\0'

相似回答