C语言期末模拟试题12Word文档格式.docx

上传人:b****4 文档编号:6478049 上传时间:2023-05-06 格式:DOCX 页数:38 大小:29.90KB
下载 相关 举报
C语言期末模拟试题12Word文档格式.docx_第1页
第1页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第2页
第2页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第3页
第3页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第4页
第4页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第5页
第5页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第6页
第6页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第7页
第7页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第8页
第8页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第9页
第9页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第10页
第10页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第11页
第11页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第12页
第12页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第13页
第13页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第14页
第14页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第15页
第15页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第16页
第16页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第17页
第17页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第18页
第18页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第19页
第19页 / 共38页
C语言期末模拟试题12Word文档格式.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言期末模拟试题12Word文档格式.docx

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

C语言期末模拟试题12Word文档格式.docx

2.#include<

#include<

main()

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

floatx=,y=,z;

z=(a+b)/c+sqrt((double)y)*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、

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=;

while(i)>

=1e-4)

sum+=sign/i;

i++;

sign=-sign;

sum=%.4f"

sum);

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"

for(i=0;

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.以下叙述正确的是_____。

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

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

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

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

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

A)AB)floatC)b-aD)_123

P_01a0gototemp

do_AintINT

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

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

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

4、设所有变量均为整型,则表达式z=(a=2,b=5,b++,a+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的值为偶数时,表达式的值为”假”。

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

A)A%2==1B)!

(A%2==0)

C)!

(A%2)D)A%2

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

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>

正确的输出结果为

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=;

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

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的值为_______。

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

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

A)'

A'

<

=ch<

B)(ch>

='

)&

(ch<

C)(ch>

)&

)D)('

=ch)AND('

=ch)

13、以下描述中正确的是_________:

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

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

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

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

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

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

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、下面程序段:

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数组元素的正确引用是______。

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是否相等,应当使用_______.

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

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

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

chara[]="

ABCDEF"

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

则以下叙述正确的是__.

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

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

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

A)gets(a,b);

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

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

a,&

b);

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

22、下面程序段的运行结果是______

charstr[]="

ABC"

*p=str;

printf("

*(p+2));

(A)0(B)字符'

C'

的ASCII码(C)字符'

的地址(D)字符'

23、下面描述正确的是_______。

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

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

C)字符串”STOP”(注:

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

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

24、下面判断正确的是_______。

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)数组的首地址

B)数组第一个元素的值

C)数组中全部元素的值

D)数组元素的个数

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

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

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

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

A)float型

B)int型

C)long型

D)double型

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

A)autoB)registerC)staticD)extern

29、以下正确的函数定义形式是__________:

A)doublefun(intx,inty)

B)doublefun(intx;

inty)

C)doublefun(intx,inty);

D)doublefun(intx,y);

30、在宏定义#definePI“”中,用宏名PI代替一个_______。

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);

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

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

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

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

B)宏名无类型,函数有类型

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

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

33、以下程序的输出的结果是

{inti;

for(i=1;

i++)incre();

incre()

{staticintx=1;

x*=x+1;

x);

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

34、有如下定义

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;

4;

p[i]=&

a[i*3];

p[3][2]);

A.输出项不合法B.6

C.8D.12

36、以下程序的输出结果是

unionmyun

{struct

intx,y,z;

}u;

intk;

}a;

{"

4B)5C)6D)1

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

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)3D)4

39、下列程序段的输出结果为

intarr[]={6,7,8,9,10};

int*ptr;

ptr=arr;

*(ptr+2)+=2;

%d,%d\n"

*ptr,*(ptr+2));

A)8,10B)6,8C)7,9D)6,10

40、设有如下定义:

int(*ptr)();

则以下叙述中正确的是

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

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

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

D)ptr是一个函数名,该函数的返回值是指向int型数据的指针

1-5:

BCABC6-10:

CDBDA

11-15:

BCCDD16-20:

BCBDD

21-25:

BBDBA26-30:

CBAAD

31-35:

BACDD36-40:

DABD

一单项选择题(每小题1分,共10分)

1.以下4组用户定义标识符中,全部合法的一组是()

A)_totalclu_1sum

B)if-maxturb

C)txtREAL3COM

D)intk_2_001

2.以下程序的输出结果是()

#include<

main()

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

printf(“%d”,c>

b>

a);

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

3.以下正确的叙述是()

A)在C语言中,main函数必须位于文件的开头

B)C语言每行中只能写一条语句

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

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

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

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

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