C语言模拟试题II

合集下载
  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 18.以下程序运行后,输出结果是

A.13 B.51 C.11 D.53 int d=1;

fun (int p)

{int d=5;

p=d;

printf("%d",p);

}

main()

{int a=3;

fun(a);

d=a;

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

}

19.以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为

A.4 B.7 C.6 D.5

#include

#include

func(char str[ ] )

{ int num =0;

while(*(str+num)!='\0') num++;

return(num);

}

main( )

{char str[10],*p=str;

gets(p); printf("%d\n",func(p));

}

20.执行以下程序段后,m的值为

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

相关文档
最新文档