C模拟考试题及参考答案09级Word文档下载推荐.docx

上传人:b****6 文档编号:21744878 上传时间:2023-02-01 格式:DOCX 页数:19 大小:21.53KB
下载 相关 举报
C模拟考试题及参考答案09级Word文档下载推荐.docx_第1页
第1页 / 共19页
C模拟考试题及参考答案09级Word文档下载推荐.docx_第2页
第2页 / 共19页
C模拟考试题及参考答案09级Word文档下载推荐.docx_第3页
第3页 / 共19页
C模拟考试题及参考答案09级Word文档下载推荐.docx_第4页
第4页 / 共19页
C模拟考试题及参考答案09级Word文档下载推荐.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C模拟考试题及参考答案09级Word文档下载推荐.docx

《C模拟考试题及参考答案09级Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C模拟考试题及参考答案09级Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。

C模拟考试题及参考答案09级Word文档下载推荐.docx

B.if(a!

=b&

b);

C.if(a=b)printf("

equal"

);

D.if(a>

b)&

(b>

c)printf("

max=%d"

a);

7、关于if后面一对圆括号中的表达式,叙述正确的是()。

A.只能用关系表达式

B.只能用逻辑表达式

C.只能用关系表达式或逻辑表达式

D.可以使用任意合法的表达式

8、以下运算符中,优先级最高的是()。

A.!

B.[]

C.++

D.%

9、假设有两个字符数组a[80],b[80],则正确的输出语句是()。

A.puts(a,b);

B.printf("

%s%s"

a[],b[]);

C.putchar(a,b);

D.puts(a);

puts(b);

10、对定义"

inta[2];

"

的正确描述是()。

A.定义一维数组a,包含a[1]和a[2]两个元素

B.定义一维数组a,包含a[0]和a[1]两个元素

C.定义一维数组a,包含a[0]、a[1]和a[2]三个元素

D.定义一维数组a,包含a(0)、a

(1)和a

(2)三个元素

11、在引用数组元素时,其下标表达式的类型必须是()。

A.字符型

B.整型

C.整型或字符型

D.整型常量

12、feof(fp)函数是用来测试fp所指的文件是否结束,如果文件结束,则feof(fp)返回的值是():

A.0

B.1

C.NULL

D.以上答案都不对

13、调用fopen函数打开一个文件失败时,函数返回的值是():

A.-1

B.EOF

D.1

14、在对文件进行操作时,读文件的含义是():

A.将内存中的信息存入磁盘

B.将磁盘中的信息输入到内存

C.将CPU中的信息存入磁盘

D.将磁盘中的信息输入到CPU

15、在C程序中,不合法的浮点型常量是():

A.3.4E2.5

B..456

C.0.

D.100.3e5

16、C程序中,合法的关键字是():

A.int

B.integer

C.Int

D.Integer

17、设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是()

A.P2=k;

B.P1=P2;

C.k=*P1+*P2;

D.k=*P1*(*P2);

18、以下选项中,对指针变量p不正确的操作是()。

A.inta[6],*p;

p=&

a;

B.inta[6],*p;

p=a;

C.inta[6];

int*p=a=1000;

D.inta[6];

int*p1,*p2=a;

*p1=*p2;

19、设有如下的程序段:

charstr[]="

Hello"

char*ptr;

ptr=str;

执行上面的程序段后,*(ptr+5)的值为()。

A.'

o'

B.'

\0'

C.不确定的值

D.'

的地址

20、While语句中循环结束的条件是while后面表达式的值是()。

C.-1

D.非0

21、有以下程序段:

intt=0;

while(t=1)t--;

while循环执行的次数是()。

A.一次也不执行

B.只执行一次

C.无限次

D.执行2次

22、执行循环语句"

for(i=1;

i<

10;

i++)a++;

后,变量i的值是()。

A.9

B.10

C.11

D.不确定

23、C语言中while和do-while循环的主要区别为()。

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件严格

C.do-while允许从外部转到循环体内

D.do-while的循环体不能是复合语句

24、以下关于函数调用的描述中错误的是()。

A.实参可以是常量、表达式或有确定值的变量

B.实参和形参共用同一内存单元

C.实参和形参的类型、个数必须一致

D.只有发生函数调用时,系统才为形参分别存储空间

25、以下正确的描述是()。

A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义和函数的调用均不可以嵌套

D.函数的定义和函数的调用均可以嵌套

26、已经有以下函数定义:

fun(chara)

{printf((“a=%c\n”,a);

}

该函数的返回值类型是()。

A.void

B.char

C.int

D.不确定

27、以下叙述中正确的是()。

A.在C语言中静态变量在未赋值时,其值为0

B.在C语言中任何变量在未赋值时,其值为0

C.外部变量在程序的任何函数中均有效

D.函数中任何一个局部变量均无法保留上一次调用时的运行结果

28、在VC++6.0中,若有以下说明:

structst

{intx;

floaty;

};

则:

sizeof(structst)的值为():

A.6

B.8

C.10

D.12

29、在下列结构变量st的定义中,不正确的是()。

A.structstudent{intnum;

floatscore;

}st;

B.structstudent{intnum;

};

studentst;

C.struct{intnum;

D.structstudent{intnum;

structstudentst;

30、在VC6.0中,若有以下共用体说明:

unionuu

{floatx;

doubley;

charz;

}luck;

luck所占存储单元字节数为():

A.8

B.4

C.13

二、填空题(共5小题,每小题3分,共15分)

1、下面程序是实现1+1/2+1/4+1/6+…+1/50的值,请填空:

main()

{inti=2;

floatsum=1;

while(i<

=50)

{

sum=sum+1/(float)i;

i++;

__________;

printf(“sum=%f\n”,sum)

答案:

i++

i=i+1

++i

i+=1

i++;

i=i+1;

++i;

i+=1;

2、下面的程序可以实现从10个数中找出最大值和最小值功能,请填空。

#include<

stdio.h>

intmax,min;

find(int*p,intn)

{int*q;

max=min=*p;

for(q=p;

q<

p+n;

q++)

if(___________)max=*q;

elseif(min>

*q)min=*q;

main()

{intI,num[10];

printf("

Input10numbers:

\n"

);

for(i=0;

i<

i++)

%d"

&

num[i]);

find(num,10);

printf("

max=%d,min=%d\n"

max,min);

max<

*q

=*q

*q>

max

=max

3、下面的程序将浮点数写到文件test中,然后读出并显示。

#include<

{FILE*fp;

floatf=12.34;

if((______(“test”,“wb”))==NULL)

{printf("

Cannotopenfile."

);

exit(l);

fwrite(&

f,sizeof(float),1,fp);

rewind(fp);

fread(&

printf(“%f\n”,f);

fclose(fp);

fp=fopen

4、统计学生成绩中不及格的学生名单。

structstudent

{

longnum;

charname[20];

floatscore;

}stu[6]={{,”wangling”,85},{,”liming”,90.5},{,”fengyong”,90.5},{,”fangjun”,56},{,”sunping”,77.5},{,”kongxiao”,50.5}};

main()

structstudent*p;

intcount=0;

printf(“不及格名单:

\n”);

for(p=stu;

________;

p++)

if(p->

score<

60)

{count++;

printf(“%ld:

%-12s%.1f\n”,p->

num,p->

name,p->

score);

printf(“不及格人数:

%d\n”,count);

p<

stu+6

=stu+5

5、下面程序输入一个字符串,输出其中所出现过的大写英文字母.如输入字符串“UKSDYckjsjsjJSJJD”;

应输出“UKSDYJ”。

按程序功能填空。

main()

{chara[80],b[26];

inti,j,k=0;

gets(a);

for(i=0;

a[i]!

='

i++)

if(a[i]>

A'

a[i]<='

Z'

{for(j=0;

j<

k;

j++)

if(b[j]==a[i])break;

if(j==k)

{b[k]=a[i];

k++;

}

}

b[k]='

\0'

__;

%c"

b[i]);

strlen(b)

k

j+1

b[i]!

=0

三、程序改错题(共5小题,每小题3分,共15分)

1、打开C:

\CAADATA\36中源程序文件pg4102.cpp,该程序是从键盘上输入一批学生的成绩,计算其中及格的有多少人(以负数作为数据输入结束的标识)?

请修改,使程序能正确运行。

该源程序内容如下:

#include<

voidmain(void)

intcount,grades;

printf(“请输入分数:

scanf("

grades);

while(grades>

=0)

if(grades>

=60)count++;

共有%d个学生成绩合格!

count);

2、打开C:

\CAADATA\37中源程序文件pg3104.cpp,该程序是判断一个输入的字符是哪种类型的字符,修改程序,使之能正确运行。

voidmain()

charch;

printf(“pleaseinputacharacter!

”);

ch=getchar();

ifch>

ch<

z'

thisisalowercase\n"

elseifch>

printf("

thisisauppercase\n"

0'

9'

thisisanumber\n"

else

thisisaothercharacter\n"

 

3、打开C:

\CAADATA\41中源程序文件pg6101.cpp,该程序有小问题,程序结果不正确。

inta[5];

请输入5个整数:

for(i=1;

=5;

i++)

scanf("

a[i]);

这5个数为:

%4d"

a[i]);

printf(“\n”);

4、打开C:

\CAADATA\42中源程序文件pg5101.cpp,该程序是求两个数的和,有一个小问题,请修改,使程序能正确运行。

#include<

floata,b,c;

请输入两个数,中间用逗号隔开:

%f,%f"

a,&

b);

c=add(a,b);

两个数之和为:

%f\n"

c);

floatadd(floatx,floaty)

floatz;

z=x+y;

returnz;

5、打开C:

\CAADATA\43中源程序文件pg8107.cpp,该程序将字符串a的值复制给字符串b。

请改正其中的错误。

string.h>

intmain(void)

char*a="

Youareagreatboy"

char*b="

复制前,字符串a:

%s,字符串b:

%s\n"

a,b);

strcpy(b,a);

复制后,字符串a:

return0;

四、编程题

\CAADATA\38中的源程序文件pg106.cpp,补充程序使得程序运行时完成以下功能:

从键盘输入3个数,并按由大到小的顺序输出。

并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。

(10分)

\CAADATA\39中的源程序文件pg207.cpp,补充程序并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分),使得程序运行时完成以下功能:

编写程序找出3×

3矩阵中的最大元素及其行列位置并输出。

(12分)

\CAADATA\40中的源程序文件pg307.cpp,按要求补充程序并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分),要求为:

编写判断一个年份是否为闰年的函数leapyear(),并在主函数调用该函数输出1900~2100年之间的所有闰年。

闰年的条件是:

能被4整除但不能被100整除,或者能被400整除。

(18分)

C语言程序设计模拟题参考答案(09级)

一、单选题:

题号

1

2

3

4

5

6

7

8

9

10

答案

B

A

D

C

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

二、填空题:

1、答案:

或:

i=i+1

++i

i+=1

i=i+1;

++i;

i+=1;

2、答案:

3、答案:

4、答案:

5、答案:

注意:

以上答案只需填一个,多填会被自动评卷系统扣分

三、程序改错题:

1、参考答案:

请输入分数:

count=0;

//添加本句

=0)

2、参考答案:

pleaseinputacharacter!

if(ch>

)//加上括号

elseif(ch>

3、参考答案:

inta[6],i;

//增加变量i定义,修改数组长度为6

4、参考答案:

floatadd(floatx,floaty)//将add函数定义提前到调用add之前

5、参考答案:

charb[20]="

//定义数组b

//参数b必须是数组

四、编程题:

1、pg106.cpp

参考程序:

{inta,b,c,temp;

scanf(“%d,%d,%d”,&

b,&

c);

if(a<

b)

{temp=a;

a=b;

b=temp;

c)

a=c;

c=temp;

if(b<

{temp=b;

b=c;

printf(“%d,%d,%d\n”,a,b,c);

2、pg307.cpp

可在主函数中将二维数组的9个元素初始化为以下值:

864

219

753

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

inti,j,row,colum,max;

max=a[0][0];

row=colum=0;

=2;

for(j=0;

if(a[i][j]>

max)

{max=a[i][j];

row=i;

colum=j;

max=%d,row=%d,colum=%d\n"

max,row,colum);

3、pg307.cpp

{intleapyear(intyear);

intyear;

printf(“1900~2100年之间的所有闰年是:

for(year=1900;

year<

2100;

year++)

if(leapyear(year)==1)printf(“%8d”,year);

intleapyear(intyear)

{intleap;

if(year%4==0)

{if(year%100==0)

{if(year%400==0)leap=1;

elseleap=0;

elseleap=1;

elseleap=0;

return(leap);

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

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1