C语言模拟试题II.docx

上传人:b****4 文档编号:3925448 上传时间:2023-05-06 格式:DOCX 页数:16 大小:18.91KB
下载 相关 举报
C语言模拟试题II.docx_第1页
第1页 / 共16页
C语言模拟试题II.docx_第2页
第2页 / 共16页
C语言模拟试题II.docx_第3页
第3页 / 共16页
C语言模拟试题II.docx_第4页
第4页 / 共16页
C语言模拟试题II.docx_第5页
第5页 / 共16页
C语言模拟试题II.docx_第6页
第6页 / 共16页
C语言模拟试题II.docx_第7页
第7页 / 共16页
C语言模拟试题II.docx_第8页
第8页 / 共16页
C语言模拟试题II.docx_第9页
第9页 / 共16页
C语言模拟试题II.docx_第10页
第10页 / 共16页
C语言模拟试题II.docx_第11页
第11页 / 共16页
C语言模拟试题II.docx_第12页
第12页 / 共16页
C语言模拟试题II.docx_第13页
第13页 / 共16页
C语言模拟试题II.docx_第14页
第14页 / 共16页
C语言模拟试题II.docx_第15页
第15页 / 共16页
C语言模拟试题II.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言模拟试题II.docx

《C语言模拟试题II.docx》由会员分享,可在线阅读,更多相关《C语言模拟试题II.docx(16页珍藏版)》请在冰点文库上搜索。

C语言模拟试题II.docx

C语言模拟试题II

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

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

1.下面的程序将输出:

main()

{

floatf;

intx=1,y=2.5;

f=x/y;

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

}

A.f=0.0,y=2B.f=0.5,y=0X2C.f=0.0,y=0X2D.f=0.5,y=2

2.下面的程序将输出:

#include"string.h"

main()

{

intlen;

charstr[]="a\b\04235\0";

len=strlen(str);

printf("%d",len);

}

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

3.下面的程序将输出:

main()

{

inta=0x31;

char*str[]={"thisisone.","thisistwo."};

charch;

ch=++a-’0’;

switch(ch)

{

case1:

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

case2:

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

default:

printf("noway!

");

}

}

A.thisisone.B.thisistwo.C.noway!

D.thisistwo.noway!

4.下面的程序将输出:

main()

{

inta[5]={1,2,3};

intk,j;

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

a[k]++;

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

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

}

A.13410B.23410C.23400D.13400

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

inta[10];

int*p;

p=a;

A.a[2]=1;B.p[1]=1;C.*(p++)=1;D.*(++a)=1;

6.下面程序将输出:

voidadd(inta)

{

a++;

return;

}

main()

{

intk;

k=3.4;

add(k);

printf("%d",k);

}

A.3.4B.4.4C.3D.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.inti=0;D.i=100;

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

8.若已知inta[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.0X5050B.0X5002C.0X5004D.0X5040

10.若有说明inta[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.10B.20C.40D.30

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

y)的值是:

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

13.下面能正确进行字符串赋值操作的语句是:

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

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

14.已知:

inta[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.设有以下说明和定义:

typedefunion{longi;intk[4];charc;}DATE;

structdate{intcat;DATEcow;doubledog;}too;

DATEmax;

则下列语句的执行结果是

printf("%d",sizeof(structdate)+sizeof(max));

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

16.设有如下定义:

int*(*ptr)();

则以下叙述中正确的是

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

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

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

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

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

A.j*m+iB.i*m+jC.i*m+j-1D.i*m+j+1

18.以下程序运行后,输出结果是

A.13B.51C.11D.53

intd=1;

fun(intp)

{intd=5;

p=d;

printf("%d",p);

}

main()

{inta=3;

fun(a);

d=a;

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

}

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

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

#include

#include

func(charstr[])

{intnum=0;

while(*(str+num)!

='\0')num++;

return(num);

}

main()

{charstr[10],*p=str;

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

  }

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

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

intm,*p;

p=&a[0][0];

m=(*p)*(*(p+2))*(*(p+4));

A.15B.14C.13D.12

21.已知定义了两个结构体变量,下面是正确的语句是:

struct{intx;charname[10];floatmark;}S1,S2;

A.S1={5,”yang”,90.5};

B.S1=S2;

C.S1.x=S2.x;S1.name=S2.name;S1.mark=S2.mark;

D.strcpy(S1,S2);

22.下面这段程序运行的结果是:

inta=0x4145;

char*p;

p=(char*)&a;

*p+=1;

printf(“%X”,*p);

A.46B.42C.4146D.4245

23.下面这段程序运行的结果是:

charstr[]=”%#X”;

inta=50;

printf(str,a++);

A.50B.0X33C.0X32D.有语法错

24.下面哪个语句是函数的原型声明

A.int(*f)(inta,intb);B.intf(inta,5);

C.intf(inta,intb);D.intf(inta=5,intb=6);

25.已知inta=0XF11F,b;执行完下面的操作后,a的值是多少?

b=(a&0xFF00)>>4;

A.0X0FF1B.0XF11FC.0XFF10D.0XFFF1

26.有以下程序:

inta=2;

intf(int*a)

{return(*a)++;}

main()

{ints=0;

{inta=5;

s+=f(&a);

}

s+=f(&a);

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

}

执行后输出结果是。

A.10B.9C.7D.8

27.设有以下语句:

typedefstructS

{intg;charh;}T;

则下面叙述中正确的是。

A.可用S定义结构体变量B.可以用T定义结构体变量

C.S是struct类型的变量 D.T是structS类型的变量

28.有以下程序:

main()

{unsignedchara,b;

a=4|3;

b=4&3;

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

}

执行后输出结果是。

A.70B.07C.11D.430

29.有以下程序

voidsort(inta[],intn)

{inti,j,t;

for(i=0;i

for(j=i+2;j

if(a[i]

}

main()

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

sort(k,10);

for(i=0;i<10;i++)printf("%d,",k[i]);

printf("\n");

}

其输出结果是。

A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,

C.9,2,7,4,5,6,3,8,1,10,D.1,10,3,8,5,6,7,4,9,2,

30.有以下程序:

voidf(inta[],inti,intj)

{intt;

if(i

{t=a[i];a[i]=a[j];a[j]=t;

f(a,i+1,j-1);

}

}

main()

{inti,k[5]={1,2,3,4,5};

f(k,0,4);

for(i=0;i<5;i++)printf("%d,",k[i]);printf("\n");

}

执行后输出结果是。

A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,2,3,4,5,

二、阅读程序,将运行结果写在右边空白处(共2道题,每题5分,共10分)

程序1

#include

intf(intn)

{staticints=1;

while(n)s*=n--;

returns;

}

main()

{inti,j;

i=f(3);j=f(5);

printf("\nTheoutputis:

\n");

printf("i=%d,j=%d\n",i,j);}

程序2

#include

#include

structdata_tag

{

intx;

structdata_tag*next;

};

typedefstructdata_tagDATA;

voidmain()

{

DATANode[5];

DATA*p;

inti;

clrscr();

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

Node[i].x=i*2+1;

Node[0].next=&Node[3];

Node[3].next=&Node[2];

Node[2].next=&Node[4];

Node[4].next=&Node[1];

Node[1].next=NULL;

p=Node;

while(p!

=NULL)

{

printf("%d",p->x);

p=p->next;

}

}

三、改错题(每道题有5个错,每改对一个给2分,共3道题,30分)

程序1

#include″stdio.h″

voidmain()

{

inta,b;

scanf(″%d%d″,&a,b);

f=float(a/b);

printf(″a/b=%d″,f);

}

程序2

#include″stdio.h″

#include″conio.h″

intCompareInt(inta,intb)

{

if(a>b)

return1;

elseif(a=b)

return0;

elseif(!

a>=b)

return-1;

}

voidmain()

{

inta,b;

unsignedintk;

printf("inputtwonumber,likethis"12,13\":

");

scanf("%d,%d",&a,&b);

k=CompareInt(a,b);

switch(k)

{

case1:

printf("%d>%d",a,b);

case0:

printf("%d=%d",a,b);break;

case-1:

printf("%d<%d",a,b);break;

}

getch();

}

程序3

longStrToNum(char*str)

{

intk;

longresult=0;

k=0;

while(str[k]!

=0)

result=result*10+str[k];

returnresult;

}

voidmain()

{

char*str;

inti;

longl;

for(i=0,i<6;i++)

*(str+i)="1"+i;

l=StrToNum(str);

printf("%ld",l);

}

参考答案:

一、选择题

1~5CBDAB6~10CCBAD11~15BCCDA16~20DBDDA

21~25BACCB26~30CBACA

二、读程序写结果

程序1

TheOutputis:

i=6,j=720

程序2

17593

三、改错题(双下划线是修改后的错误之处)

程序1

#include"stdio.h"

voidmain()

{

inta,b;floatf;

scanf("%d%d",&a,&b);

f=(float)a/b;

printf("a/b=%f",f);

}

程序2

#include"stdio.h"

#include"conio.h"

intCompareInt(inta,intb)

{

if(a>b)

return1;

elseif(a==b)

return0;

elseif(a

return-1;

}

voidmain()

{

inta,b;

intk;

printf("inputtwonumber,likethis\"12,13\":

");

scanf("%d,%d",&a,&b);

k=CompareInt(a,b);

switch(k)

{

case1:

printf("%d>%d",a,b);break;

case0:

printf("%d=%d",a,b);break;

case-1:

printf("%d<%d",a,b);break;

}

getch();

}

程序3

longStrToNum(char*str)

{

intk;

longresult=0;

k=0;

while(str[k]!

=0)

result=result*10+str[k++]-'0';

returnresult;

}

voidmain()

{

charstr[6];

inti;

longl;

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

*(str+i)='1'+i;

l=StrToNum(str);

printf("%ld",l);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2