关于C语言的选择题

1、若有定义:char *p1,*p2,*p3,*p4,ch;则不能保证正确赋值的程序语句是:
A,p1=&ch;scanf("%c",p1);
B,p2=(char *)malloc(1);scanf("%c",P2);
C,p3=getchar();
D,P4=&ch;*p4=getchar();
3,在C语言中,如果下面的变量都是int类型,则输出的结果是:
sum=pad=5;pad=sum++,pad++,++pad;
printf("%d\n",pad);
A.7 B.6 C.5 D.4
4,sizeof(double)是
A.一种函数调用 B.一个双精度型表达式
C.一个整型表达式 D.一个不合法的表达式
5,以下程序的输出结果是
#include<stdio.h>
main()
{int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
6.请选出可用作C语言用户标示符的是
A.void B.a3_b3 C.For D.2a
9.合法的C语言赋值语句是
A.a=b=58 B.i++; C.a=5,b=58 D.k=int(a+b);
17.下面程序的输出的是
A.65 B.20 C.15 D.10
main()
{int a;
printf("%d\n",(a=3*5,a*4,a+5));
}
18、C语言中基本数据类型包括
A整型、实型、逻辑型 B整型、实型、字符型
C整型、字符型、逻辑型 D整型、实型、逻辑型、字符型
21、C语言提供的合法的数据类型关键字是
A.double B.short C.integer D.char
22.在16位编译系统中,合法的长整型常数是
A.0L B.4962710 C.0.054838743 D.2.1869e10
23.表达式:10!=9的值是
A.true B.非零值 C.0 D.1
30.若表达式!x的值为1,则下面与之等价的表达式是
A.x=0 B.x==1 C.x!=1 D.x!=0

31.#include <stdio.h>
main()
{
char c;
int v0=0,v1=0,v2=0;
do
switch (c=getchar())
{
case 'a':case 'A':
case 'e':case 'E':
case 'i':case 'I':
case 'o':case 'O':
case 'u':case 'U':v1+=1;
default: v0+=1;v2+=1;
}
while (c!='\n');
printf("v0=%d,v1=%d,v2%=%d\n",v0,v1,v2);
}
程序执行时从第一列开始输入如下(<CR代表换行符>):ADesctiptor<CR>,则输出的结果是:
A.v0=7,v1=4,v2=7 B.v0=8,v1=4,v2=8 C.v0=11,v1=4,v2=11 D.v0=12,v1=4,v2=12
32.若运行下面程序,执行输入的数值,则其结果为 ()
#include <stdio.h>
void main()
{
int s;
while((s=getchar())!='\n')
{
switch (s)
{
case '0':
case '1':putchar(s+4);
case '2':putchar(s+4);break;
case '3':putchar(s+4);
default :putchar(s+2);break;
}
}
printf ("%d\n",s);
}
输出数据第一列:2473<回车键>
A.6688766 B.66778777 C.668966 D.668977

哪位大虾能帮小弟作答一下,解释越详细越好,小弟在此谢过了!!!

1、c (选项A、B中p1、p2均为地址,正确。D中 *P4就是 地址的值,正确,因为getchar()返回的就是输入的值,而不是返回一个地址)
3、A
sum=pad=5; (5先赋值给pad,此时pad 为5,pad再赋值给sum,所以sum的值为5)结果为 pad=5
pad=sum++,(sum虽自增,值变为6,但是sum++的值还为5。因为sum先赋值给pad,即5先赋值给pad,sum再增加1得到6的),结果 pad=5
pad++(pad要自增,pad值为6,但若(pad++赋值给C,则c为5)) pad=6
++pad (pad自增,pad值为7,但若(pad赋值给C,则C为7)) pad=7
4、 A
sizeof()是个函数,计算sizeof(double), 所计算double类型数据的大小。
5、2,1
int a,b,d=241;
a=d/100%9; // d/9值为2,2%9值为2,故a为2 (/是求商,%是求余数) a=2
b=(-1)&&(-1); // 两个非零的数结果还是非0 b=1
printf("%d,%d\n",a,b);
6、A
void 是系统用的,我们不能自定义相同标识符。标识符由字母、数字、下划线 三部分组成,且不能以数字开头。
没时间帮你做完得了,你先把上述的看了再说吧!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-06
1.C 3.A 4.C 5. 2,1 6.A 9. C 17. B 18.B 21.D 22.D 23.A 30.A 31.D 32.A
第2个回答  2012-05-06
1.C 3.A 4.A 5. 2,1 6.A 9. C 17. B 18.B 21.B 22.D 23.A 30.A 31.D 32.A
第3个回答  2012-05-06
嘿嘿,我先琢磨一下
相似回答