几道C语言小题,,求详解!!!

1、以下选项中能用作用户标识符的是()A、voidB、8_8C、0_0D、unsigned(注:最好讲解一下能用作用户标识符的条件是什么?)2、设有以下定义,inta=1... 1、以下选项中能用作用户标识符的是()
A、void B、8_8 C、0_0 D、unsigned(注:最好讲解一下能用作用户标识符的条件是什么?)
2、设有以下定义,int a=1,b=2,c=3;一下语句的执行效果与其他三个不同的是()
A、if(a>b)c=a,a=b,b=c; B、if(a>b){c=a,a=b,b=c;} C、if(a>b)c=a;a-b;b=c; D、if(a>b){c=a;a-b;b=c;}
3、有以下程序:
#include<stdio.h>
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf("%d%d\n",k,n);
}
A.0 2 B.1 3 C.5 7 D.1 2
3、若有定义语句:int a[4][10],*p,*q[4];0<=i<4,则错误的赋值是()
A.p=a B.q[i]=a[i] C.p=a[i] D.p=&a[2][1]
4.有以下程序:
#include<stdio.h>
int fun(n);
main()
{ int n=3,s;
s=f(a);s=s+f(a);printf("%d\n",s);
}
int fun(int n)
{ static int a=1;
n+=a++;
return n;
}
程序运行输出的结果是()
A。7 B.8 C.9 D。10
展开
 我来答
果凝易A
2011-09-11
知道答主
回答量:24
采纳率:0%
帮助的人:14.8万
展开全部
1.没有答案。标识符由数字、字母、下划线组成。而且不能以数字开头,不能为C语言的关键字,根据以上判据可以判定没有答案。
2.选择C。C、D中的减号,应该改为等号吧,应该是打错了。改完之后,ABD都是将a、b的值互换,而C中则是这样的:if(a>b) { c=a; }a=b;b=c;。
3.选择D。因为当执行while语句的时候,遇到了k++,则先使用k的值,然后再加1,由于k的值为0,所以&&后边的内容忽略了,直接使while里边的语句值为0,然后k的值再加1,n的值一直没变,故k值加1,n值不变。
4.选择A。p是一个整形指针,而a是一个二维数组,不能赋值。
5.选择C。首先源程序中有不少错误,希望写程序的时候严谨点,函数原型声明中的参数列表,可以省略参数名,但是不可以省略参数类型。另外调用fun函数的时候,要写全名,而且调用fun函数时,传递的参数应该是已有的,不能随便写一个s,所以劝您以后写程序认真点。
s=f(n),将实参n=3,传递给形参n,在fun函数中n加上a的值变成了4,此时a的值变为了2,由于a被定义为static,所以当再次调用a的时候,a使用值2,所以很明显此时加了2,所以返回5,加起来得到结果9。
百度网友647f507
2011-09-11 · TA获得超过1582个赞
知道小有建树答主
回答量:709
采纳率:0%
帮助的人:406万
展开全部
第一个没有答案吧,标示符由字母、数字、下划线组成,第一个必须是字母或下划线。但又不能是关键字所以没有答案咯。
第二个选Cc选项相当于下列语句:if(a>b) { c=a; }a=b;b=c;
第三个选Dwhile(k++ && n++ >2); 执行这个的时候k=0k++执行时,先取k的值是0,为假,所以&& n++ >2就不执行了,再将k的值加1,所以结果应该是1,2
第四个A,a是二维数组
第五个选C主函数中a=3,是实参,它传递给被调用函数的的形参n,所以n=3+1=4;
s=s+f(a); 中的f(a)=5所以s=4+5=9.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hssdx
2011-09-11 · TA获得超过188个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:45.6万
展开全部
Q我。绝对帮你解决!517978307 木马
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式