c语言若是其他字符,C语言单选题(三)

1.C语言结构体类型变量在程序执行期间(C)。

A.部分成员驻留在内存中

B.只有一个成员驻留在内存中

C.所有成员一直驻留在内存中

D.没有成员驻留在内存中

2.若要说明一个类型名STP,使得定义语句STPs等价于char *s,以下选项中正确的是(A)。

A.typedef char* STP;

B.typedef stp *char;

C.typedef STP char *s;

D.typedef*char STP;

3.若已建立下面的链表结构,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾的语句组是(B)   。

A.s->next = NULL; p = p->next; p->next = s;

B.p = p->next; s->next = p;  p->next = s;

C.p = (*p).next; (*s).next = (*p).next;  (*p).next= s;

4.以下程序运行后的输出结果是(A)。

#include 

struct  NODE

{ int  num;

struct  NODE *next;  };

main()

{struct  NODE  *p, *q, *r;

int  sum = 0;

p =(struct NODE *)malloc(sizeof(struct NODE));

q=(struct NODE *)malloc(sizeof(struct NODE));

r=(struct NODE *)malloc(sizeof(struct NODE));

p->num = 1; q -> num = 2; r -> num = 3;

p ->next = q; q -> next = r ; r -> next = NULL;

sum += q-> next -> num;  sum += p ->num;

printf("%d\n", sum);

}

A.4

B.3

C.5

D.6

5.不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以什么的形式存在磁盘上(D)。

A.内存

B.寄存器

C.缓冲区

D.文件

6.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数

feof(fp)的值为(D)。

A.一个非0值

B.-1

C.1

D.0

7.若以"a+"方式打开一个已存在的文件,则以下叙述正确的是(D)。

A.文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作

B.其他各种说法皆不正确

C.文件打开时,原有文件内容被删除,只可作写操作

D.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作

8.在执行fopen 函数时,ferror 函数的初值是(D)。

A.TRUE

B.1

C.-1

D.0

9.若变量已正确定义并赋值,下面符合C语言语法的表达式是(C)。

A.a:=b+1

B.a=a+7=c+b

C.a=b=c+2

D.int18.5%3

10.以下叙述不正确的是(B)。

A.C程序的基本组成单位是函数

B.在C程序中,注释说明只能位于一条语句的后面

C.一个C源程序可由一个或多个函数组成

D.一个C源程序必须包含一个main函数

11.以下叙述中正确的是(C)。

A.在以下定义中C R 是称为"宏名"的标识符    #defineC  R 045

B.在程序的一行上可以出现多个有效的预处理命令行

C.宏替换不占用运行时间,只占编译时间

D.使用带参的宏时,参数的类型应与宏定义时的一致

12.以下叙述中正确的是(B)。

A.C语言中的函数不可以单独进行编译

B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C.C源程序经编译形成的二进制代码可以直接运行

D.C语言的源程序不必通过编译就可以直接运行

13.以下运算符中,优先级最高的运算符是(B)。

A.*(乘号)

B.()

C.!=

D.=

14.已知x=43,ch='A',y=0;则表达式(x>=y&&ch

A.语法错

B.0

C.1

D."假"

15.若a=1,b=2则a|b的值是(D)。

A.1

B.2

C.0

D.3

16.以下程序的输出结果是B

main()

{  int  x = 35;   char z = ‘A’;

printf(“%d\n”, (x & 15) && (z < ‘a’) );

}

A.2

B.1

C.0

D.3

17.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:'\b'是退格符)(A)。

A.re'hi'you

B.a\bre\'hi\'y\\\bou

C.abre'hi'y\bou

D.a\bre\'hi\'y\bou

18.若有以下程序:

main()

{ int k=2,i=2, m;

m=(k+=i*=k);printf("%d,%d\n",m,i);

}

执行后的输出结果是(B)

A.8,3

B.6,4

C.7,4

D.8,6

19.以下不符合C语言语法的赋值语句是(C)。

A.a=b=5;

B.y=(a=3,6*5);

C.a=1,b=2

D.j=j+1;

20.下列程序的输出结果是(D)。

main()

{int  a=7,b=5;

printf("%d\n",b=b/a);

}

A.不确定值

B.1

C.5

D.0

21.下列程序的输出结果是(A)。

main()

{ int  x=1,y=0,a=0,b=0;

switch(x)

{

case 1:switch(y)

{

case  0:a++;break;

case  1:b++;break;

}

case 2:a++;b++;break;

case 3:a++;b++;break;

}

printf("a=%d,b=%d\n",a,b);

}

A.a=2,b=1

B.a=1,b=0

C.a=2,b=2

D.a=1,b=1

22.有以下程序

main()

{

int a=5, b=4,c=3, d=2;

if(a>b>c)

printf("%d\n",d);

elseif((c-1 >= d) == 1)

printf("%d\n",d+1);

else  printf("%d\n",d+2);

}

执行后输出结果是(D)

A.2

B.4

C.编译时出错

D.3

23.假定所有变量均已正确定义,下列程序段运行后x的值是(D)。

k1=1;

k2=2;

k3=3;

x=15;

if(!k1)   x--;

else  if(k2)   x=4;

else   x=3;

A.15

B.14

C.3

D.4

24.选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为"真"或"假"。哪个数作为逻辑"假"值(D)。

A.非零的数

B.1

C.-1

D.0

25.以下描述中正确的是(D)。

A.do-while循环中,根据情况可以省略 while

B.由于do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

C.do-while循环由do开始,用while结束,在 while(表达式)后面不能写分号

D.在do-while 循环体中,一定要有能使 while 后面表达式的值变为零("假")的操作

26.判断两个字符串是否相等,正确的表达是(D)

A.while(s1=s2)

B.while(s1= =s2)

C.while(strcmp(s1,s2)=0)

D.while(strcmp(s1,s2)= =0)

27.若i为整型变量,则以下循环执行次数是(A)。

for(i=2;i==0;)printf("%d",i--);

A.0次

B.1次

C.无限次

D.2次

28.while(fabs(t)<1e-5)if(!(s/10)) break;其中int s;循环结束的条件是(C)。

A.fabs(t)<1e-5&&!s/10

B.t>=1e-5&&t<=-1e-5&&s>-10&&s<10

C.(t>=1e-5||t<=-1e-5)&&(s>-10&&s<10)

D.s/10==0

29.以下定义语句中,错误的是(B)。

A.char*a[3];

B.chars[10];s="test";

C.chars[10]="test";

D.inta[]={1,2};

30.以下定义语句中,错误的是(D)。

A.char*a[3];

B.chars[10];s="test";

C.chars[10]="test";

D.inta[]={1,2};

31.以下程序的输出结果是(D)

main()

{  int  i,  x[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};

for(i= 0; i < 3; i++)

printf("%d,", x[i][2-i]);

}

A.1,5,9,

B.3,6,9,

C.1,4,7,

D.3,5,7,

32.若有定义语句:charc[5]={‘a’,’b’,’\0’,’c’,’\0’};, 则执行语句pritnf(“%s”, c);的结果是(D)

A.ab c

B.ab\0c

C.‘a’’b’

D.ab

33.以下叙述中不正确的是(C)。

A.表达式a&=b等价于a=a&b

B.表达式a|=b等价于a=a|b

C.表达式a!=b等价于a=a!b

D.表达式a^=b等价于a=a^b

34.任何一个C语言的可执行程序都是从(A)开始执行的.

A.main()函数的入口处

B.编译预处理语句

C.程序中的第一条语句

D.程序中的第一个函数

35.以下正确的说法是(C)。

A.return后边的值不能为表达式

B.定义函数时,形参的类型说明可以放在函数体内

C.如果函数值的类型与返回值类型不一致,以函数值类型为准

D.如果形参与实参类型不一致,以实参类型为准

b3e4f2ddffd562f2ea6ef0a2813b2bd6.png

1934eca34c74992066d05df9d403e5f0.png

3e1143a24ac992422ae2493d85b269dc.png

63ddb6ba6cbb5bc9a792073dcfbc6e6f.png

36.以下正确的函数形式是(B)

A.

c6bc347ed727067a028dc665f79e905f.png

B.

b8fc6cf2c543afc3749270a54d443e65.png

C.

D.

37.以下程序的输出结果是(A)

main()

{   int  k= 2, m = 4, n = 6;

int *pk = &k, *pm = &m, *p;

*(p = &n) = *pk * (*pm);

printf("%d\n", n);

}

A.8

B.10

C.6

D.4

38.当运行以下程序时输入OPEN THEDOOR,则输出结果是(C)

#include 

char fun(char  *c)

{  if(*c <= 'Z' && *c >= 'A' )

*c -= 'A' - 'a';

return*c;

}

main()

{  char  s[8], *p = s;

gets(s);

while(*p)

{   *p = fun( p );

putchar(*p);  p++;

}

putchar('\n');

}

A.oPENtHE dOOR

B.OpenThe Door

C.openthe door

D.OPENTHE DOOR

39.关于指针概念说法不正确的是(A)。

A.指针变量可以由整数赋,不能用浮点赋

D.一个指针变量只能指向同一类型变量

40.若有定义和语句:

int   a[4][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11, 12}, (*prt )[3] = a,  *p[4], i;

for(i = 0; i < 4; i++)

p[i] = a[i];

则不能够正确表示a数组元素的表达式是(B)

A.(*(p+1))[1]

B.a[4][3]

C.p[0][0]

D.prt[2][2]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值