C语言期末模拟试题Word文件下载.docx

上传人:b****6 文档编号:17941923 上传时间:2022-12-12 格式:DOCX 页数:34 大小:31.49KB
下载 相关 举报
C语言期末模拟试题Word文件下载.docx_第1页
第1页 / 共34页
C语言期末模拟试题Word文件下载.docx_第2页
第2页 / 共34页
C语言期末模拟试题Word文件下载.docx_第3页
第3页 / 共34页
C语言期末模拟试题Word文件下载.docx_第4页
第4页 / 共34页
C语言期末模拟试题Word文件下载.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

C语言期末模拟试题Word文件下载.docx

《C语言期末模拟试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言期末模拟试题Word文件下载.docx(34页珍藏版)》请在冰豆网上搜索。

C语言期末模拟试题Word文件下载.docx

stdio.h>

main()

{

inti=16,j,x=6;

j=i+++1;

x*=i=j;

printf(“%d,%d\n”,j,x);

}

运行结果是:

2.#include<

#include<

math.h>

main()

inta=1,b=4,c=2;

floatx=10.5,y=4.0,z;

z=(a+b)/c+sqrt((double)y)*1.2/c+x;

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

}

3.#include<

inta,b,c,d;

a=c=0;

b=1;

d=20;

if(a)d=d-10;

elseif(!

b)

if(!

c)d=25;

elsed=15;

printf(“d=%d\n”,d);

运行结果:

4.main()

inti=10;

switch(i){

case9:

i+=1;

case10:

case11:

default:

printf(“%d”,i);

5.#include<

inta[]={1,2,3,4},i,j,s=0;

j=1;

for(i=3;

i>

=0;

i--)

s=s+a[i]*j;

j=j*10;

printf("

s=%d\n"

s);

6.func(intx)

{x=20;

intx=10;

func(x);

printf(“%d”,x);

三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。

(20分,每空2分)

1.已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年的程序如下:

intyear,leap;

scanf(“%d”,&

year);

if()

leap=1;

elseleap=0;

if()printf(“是润年”);

elseprintf(“不是润年”);

2.将100至200间不能被3整除的数输出:

intn;

for(n=100;

n<

=200;

n++)

if(n%3==0);

printf(“%d”,n);

3.判断m是否是素数

#include<

intm,i,k;

scanf(“%d”,&

m);

k=sqrt(m);

for(i=2;

i<

=k;

i++)

if(m%i==0);

if(i>

=k+1)printf(“%disaprimenumber\n”,m);

elseprintf(“%disnotaprimenumber\n”,m);

4.给定一3*4的矩阵,求出其中值最大的元素的值,及所在的行列号。

inti,j,row=0,colum=0,max;

staticinta[3][4]={{1,2,3,4}{9,8,7,6}{10,-10,-4,4}};

;

for(i=0;

=2;

for(j=0;

j<

=3;

j++)

if(a[i][j]>

max)

max=a[i][j];

printf(“max=%d,row=%d,colum=%d\n”,max,row,colum);

5.下面函数的功能是将两个字符串s和t连接起来。

char*conj(char*s,char*t)

char*p=s;

while(*s);

while(*t)

*s=;

s++;

t++;

*s=’\0’;

四、编程(40分)

1.计算1-1/2+1/3-1/4+…+1/99-1/100+…,直到最后一项的绝对值小于10-4为止。

(13分)

2.输入一行字符,分别统计求出其中英文字母、空格、数字和其他字符的个数并输出结果。

3.任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果。

(14分)

答案

一、选择题

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

二、给出下列程序的运行结果

1、17,102

2、13.700000

3、d=20

4、13

5、s=1234

6、10

三、阅读程序,在标有下滑线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。

1、 

(year%4==0&

&

year%100!

=0)||year%400==0)

leap

2、 

continue

3、 

break

4、 

max=a[0][0]

row=i+1

colum=j+1

5、 

s++

*t

return(p)

四、编程

1、

#include<

inti;

floatsum,sign;

i=1;

sum=0;

sign=1.0;

while((1.0/i)>

=1e-4)

sum+=sign/i;

i++;

sign=-sign;

sum=%.4f"

sum);

2、

charstr[81];

inti;

intletter,space,num,other;

charc;

printf("

Pleaseenterastring:

"

);

gets(str);

letter=space=num=other=0;

for(i=0;

str[i]!

='

\0'

i++)

c=str[i];

if((c>

='

A'

c<

Z'

)||(c>

a'

c<

z'

))

letter++;

elseif(c>

0'

&

9'

num++;

elseif(c=='

'

space++;

elseother++;

Inthisstring:

letter=%d,space=%d,num=%d,other=%d"

letter,space,num,other);

3、

{

intnum[10];

inti,j,k;

inttemp;

Pleaseenter10numbers:

\n"

10;

scanf("

%d"

&

num[i]);

for(i=0;

9;

k=i;

for(j=i+1;

{

if(num[k]>

num[j])

k=j;

if(k!

=i)

temp=num[i];

num[i]=num[k];

num[k]=temp;

}

}

Aftersorted:

%5d"

num[i]);

选择题(后附答案)

1. 

以下叙述正确的是__B___。

A)在C程序中,main函数必须位于程序的最前面。

B)C语言本身没有输入输出语句。

C)C程序的每行只能写一条语句。

D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。

2. 

下面四个选项中,均是不合法的用户标识符的选项是。

C

A)AB)floatC)b-aD)_123

P_01a0gototemp

do_AintINT

3、下列四个选项中都是合法的转义字符的A

A)‘\’’‘\\’‘\n’B)‘\’‘\017’‘\”’

C)‘\018’‘\f’‘xab’D)‘\\0’‘\101’‘x1f’

4、设所有变量均为整型,则表达式z=(a=2,b=5,b++,a+b)的值是:

B

A)7B)8C)6D)2

5、若有代数式,则不正确的C语言表达式是:

A)a/b/c*e*3B)3*a*e/b/c

C)3*a*e/b*cD)a*e/c/b*3

6、若希望当A的值为奇数时,表达式的值为”真”,A的值为偶数时,表达式的值为”假”。

则以下不能满足要求的表达式是__C_____。

A)A%2==1B)!

(A%2==0)

C)!

(A%2)D)A%2

7、以下程序的运行结果是:

D

main()

intm=6;

if(m++>

6)printf("

%d\n"

m);

e1seprintf("

%d\n"

--m);

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

8、当a=1,b=3,c=5,d=4,执行完下面一段程序后x的值是:

if(a<

if(c<

d)x=1;

else

c)

if(b<

d)x=2;

elsex=3;

elsex=6;

elsex=7;

A)1B)2C)3D)6

9、阅读以下程序,当输入数据的形式为25,13,10<

CR>

正确的输出结果为D

intx,y,z

scanf("

%d%d%d"

x,&

y,&

z);

printf(“x+y+z=%d\n”,x+y+z);

A)x+y+z=48B)x+y+z=35

C)x+y+z=35D)不确定值

10、 

已知各变量的类型说明如下

intk,a,b;

unsignedlongw=5;

doublex=1.42;

则以下不符合C语言语法的表达式是A:

A)x%(-3)B)w+=-2

C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3)

11、 

设有:

inta=1,b=2,c=3,d=4,m=2,n=2;

执行(m=a>

b)&

(n=c>

d)后n的值为____B___。

A)1B)2C)0D)4

12、 

判断char型变量ch是否为大写字母的正确表达式是____C____。

A)'

A'

<

=ch<

B)(ch>

='

)&

(ch<

C)(ch>

)&

)D)('

=ch)AND('

>

=ch)

13、 

以下描述中正确的是_____C____:

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

B)在while循环体中,循环体至少要执行一次。

C)在do一while循环体中,循环体至少无条件的执行一次

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

14、 

已知intx=10,y=20,z=30;

以下语句执行后x,y,z的值是__D_____。

if(x>

y)

z=x;

x=y;

y=z;

A)x=10,y=20,z=30B)x=20,y=30,z=20

C)x=20,y=30,z=10D)x=20,y=30,z=30

15、 

若i为整型变量,则以下循环执行次数是:

for(i=2;

i!

)printf("

i--);

A)无限次B)0次C)1次D)2次

16、 

下面程序段:

B

for(t=1;

t<

=100;

t++)

{scanf("

x);

if(x<

0)continue;

printf("

%3d"

t);

}

A)当x<

0时整个循环结束

B)x>

=0时什么也不输出

C)printf函数永远也不执行

D)最多允许输出100个非负整数

17、 

若有说明:

inta[3][4];

则对a数组元素的正确引用是___C___。

A)a[2][4]B)a[1,3]C)a[1+1][0]D)a

(2)

(1)

18、 

定义如下变量和数组:

intk;

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

则下面语句的输出结果是:

for(k=0;

k<

3;

k++)printf("

a[2-k][k]);

A)369B)753C)963D)357

19、 

判断字符串a和b是否相等,应当使用____D___.

A)if(a==b)B)if(a=b)

if(strcpy(a,b))D)if(strcmp(a,b))

20、 

对两个数组a和b进行如下初始化

chara[]="

ABCDEF"

charb[]={’A’,’B’,’C’,’D’,’E’,’F’};

则以下叙述正确的是_D_.

A)a与b数组完全相同B)a与b长度相同

C)a和b中都存放字符串D)a数组比b数组长度长

21、 

有两个字符数组a和b,则以下正确的输入语句是_____B__:

A)gets(a,b);

B)scanf(“%s%s”,a,b);

C)scanf(“%s%s”,&

a,&

b);

D)gets(“a”),gets(“b”);

22、 

下面程序段的运行结果是___B___

charstr[]="

ABC"

*p=str;

printf("

*(p+2));

(A)0(B)字符'

C'

的ASCII码(C)字符'

的地址(D)字符'

23、 

下面描述正确的是____D___。

两个字符串所包含的字符个数相同时,才能比较字符串

字符个数多的字符串比字符个数少的字符串大

字符串”STOP”(注:

有一个空格)与”STOP”相等

D) 

字符串”That”小于字符串”The”

24、 

下面判断正确的是___B___。

A)char*a=“china”;

等价于char*a;

*a=“china”;

B)charstr[10]={“china”};

等价于charstr[10];

str[]={“china”};

C)char*s=“china”;

等价于char*s;

s=“china”;

D)charc[4]=“abc”,d[4]=“abc”;

等价于charc[4]=d[4]=“abc”;

25、 

若用数组名作为函数调用的实参,传递给形参的是___A____。

数组的首地址

数组第一个元素的值

数组中全部元素的值

数组元素的个数

26、 

下面函数调用语句含有实参的个数为____C___。

y=func(a,b,max(d,e));

A)5B)2C)3D)4

27、 

C语言允许函数值类型缺省定义,此时该函数值隐含的类型是___B____。

A)float型

B)int型

C)long型

D)double型

28、 

在C语言中,形参的缺省存储类是A

A)autoB)registerC)staticD)extern

29、 

以下正确的函数定义形式是____A______:

doublefun(intx,inty)

doublefun(intx;

inty)

doublefun(intx,inty);

doublefun(intx,y);

30、 

在宏定义#definePI“3.14159”中,用宏名PI代替一个_D____。

A)常量B)单精度数C)双精度数D)字符串

31、 

#defineADD(x)x+x

main()

intm=1,n=2,k=3;

intsum=ADD(m+n)*k;

printf(“sum=%d”,sum);

上面的程序运行结果是___B_____:

A)sum=9B)sum=10C)sum=12D)sum=18

32、 

以下有关宏替换和函数的调用叙述不正确的是____A___:

宏替换和函数的调用均占用运行时间。

宏名无类型,函数有类型

宏替换只是字符替换,不分配内存,但函数调用要分配内存

再调用宏时程序的长度要加长,而函数调用不变

33、 

以下程序的输出的结果是C

{inti;

for(i=1;

i++)incre();

incre()

{staticintx=1;

x*=x+1;

x);

A)33B)22C)26D)25

34、 

有如下定义D

structperson{charname[9];

intage;

};

strictpersonclass[10]={"

Johu"

17,

"

Paul"

19,

Mary"

18,

Adam”,16,};

根据上述定义,能输出字母M的语句是

A)prinft("

%c\n"

class[3].mane);

B)pfintf("

class[3].name[1]);

C)prinft("

class[2].name[1])

D)printf("

class[2].name[0]);

35、 

以下程序的输出结果是哪一项?

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;

for(i=0;

4;

p[i]=&

a[i*3];

p[3][2]);

A.输出项不合法B.6

C.8D.12

36、 

以下程序的输出结果是B

unionmyun

{struct

intx,y,z;

}u;

intk;

}a;

{a.u.x=4;

a.u.y=5;

a.u.z=6;

a.k=1;

a.u.y);

A)4B)5C)6D)1

37、 

以下关于结构体与共用体的说法,其中正确的是C

A)共用体同一个内存段可以来存放几种不同类型的成员,但在某一时刻只能存放一个成员。

B)结构体变量所占的内存长度等于最长的成员的长度,共用体变量所占内存长度是各成员占的内存长度之和。

C)共用体每个成员分别占有自己的内存单元。

D)结构体类型可以出现在共用体类型的定义中,但共用体不能出现在结构体类型定义之中。

38、 

longfun(intn)

longs;

if(n==1||n==2)s=2;

elses=n-fun(n-1);

returns;

%ld\n"

fun(5));

A)1B)2C)3

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

当前位置:首页 > 人文社科 > 军事政治

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

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