C语言模拟试题II

  • 格式:doc
  • 大小:55.00 KB
  • 文档页数:11

下载文档原格式

  / 11
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C语言程序设计教程实验与练习》(第二版)模拟试题II及答案

一、单项选择题(每题2分,30道题,共60分)

1.下面的程序将输出:

main()

{

float f;

int x=1,y=2.5;

f=x/y;

printf("f=%1.1f,y=%#X", f, y );

}

A.f=0.0 , y=2

B.f=0.5 , y=0X2

C.f=0.0 , y=0X2

D.f=0.5 , y=2

2.下面的程序将输出:

#include "string.h"

main()

{

int len;

char str[]="a\b\04235\0";

len=strlen(str);

printf("%d",len);

}

A. 10

B. 5

C. 6

D. 7

3.下面的程序将输出:

main()

{

int a=0x31;

char *str[]={"this is one. ","this is two. "};

char ch;

ch=++a-’0’;

switch(ch)

{

case 1: printf ("%s", str[0]);

case 2: printf ("%s", str[1]);

default: printf ("no way! ");

}

}

A.this is one.

B.this is two.

C.no way!

D.this is two.no way!

4.下面的程序将输出:

main()

{

int a[5]={1,2,3};

int k,j;

for(k=1;k<4;k++)

a[k]++;

for(j=0;j<5;j++)

printf("%d ",a[j]);

}

A.1 3 4 1 0

B.2 3 4 1 0

C.2 3 4 0 0

D.1 3 4 0 0

5.已知有下面两个变量,将数组a的第2个单元赋值为1的C语句是:

int a[10];

int *p;

p=a;

A.a[2]=1;

B.p[1]=1;

C.*(p++)=1;

D.*(++a)=1;

6.下面程序将输出:

void add(int a)

{

a++;

return;

}

main()

{

int k;

k=3.4;

add(k);

printf("%d",k);

}

A. 3.4

B. 4.4

C. 3

D. 4

无限循环的是:

7.下列循环结构中,不是

..

A. for(i=1, s=0; ; i++)

B. i=10;

s=s+i ; while(1)

{i=i%10+1;

if(i>10) break; }

C. int i=0;

D. i =100;

do{ ++i ; }while(i>=0); while(++i%2) i++;

8.若已知int a[3][4],*p;p=(int *)a;那么对数组a的第2行第2列的正确引用是:

A.a[2][2]

B.p[5]

C.a[5]

D.p[1][1]

9.已知:int (*p)[20]; 且p的值是0X5000,请问表达式p+2的值是多少?

A. 0X5050

B. 0X5002

C. 0X5004

D. 0X5040

10.若有说明int a[2][2];那么,下面正确的C赋值语句是:

A.a=2;

B.a[1]=2;

C.a[1]={1,2};

D.a[0][1]=a[1][0];

11.设x为int型变量,则执行以下语句后,x的值为

x=10; x+=x-=x-x;

A.10 B.20 C.40 D.30

12.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是:

A.0 B.语法错C.1 D."假"

13.下面能正确进行字符串

赋值操作的语句是:

...

A.char s[5]={"ABCDE"}; B.char s[]={'A','B','C','D','E'};

C.char *s;s="ABCDEF"; D.char *s;scanf("%s",s);

14.已知:int a[3][4], *p=&a[0][0]; p+=6; 那么*p 和_____的值相同.

A.(a+6) B.*(&a[0]+6) C.a[2][2] D.*(&a[0][0]+6)

15.设有以下说明和定义:

typedef union { long i; int k[4]; char c; }DATE;

struct date { int cat; DATE cow; double dog; } too;

DATE max;

则下列语句的执行结果是

printf ("%d",sizeof (struct date ) +sizeof(max));

A.26 B.30 C.18 D.8

16.设有如下定义:

int *(*ptr)();

则以下叙述中正确的是

A.ptr是指向一维组数的指针变量

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是指向函数的指针,该函数的返回值是指向int型数据的指针

17.若二维数组a 有m列,则在a[i][j]之前的元素个数为______

A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1