C语言期末练习题.docx

上传人:b****5 文档编号:12566000 上传时间:2023-04-20 格式:DOCX 页数:29 大小:26.45KB
下载 相关 举报
C语言期末练习题.docx_第1页
第1页 / 共29页
C语言期末练习题.docx_第2页
第2页 / 共29页
C语言期末练习题.docx_第3页
第3页 / 共29页
C语言期末练习题.docx_第4页
第4页 / 共29页
C语言期末练习题.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C语言期末练习题.docx

《C语言期末练习题.docx》由会员分享,可在线阅读,更多相关《C语言期末练习题.docx(29页珍藏版)》请在冰豆网上搜索。

C语言期末练习题.docx

C语言期末练习题

C语言期末练习题

长江大学试卷院(系、部)专业班级姓名学号

…………….…………………………….密………………………………………封………………..…………………..线……………………………………..

一、选择题

1._____是C语言合法的常量。

(A).45(B)078(C)25.6e3.4(D)‘xy’

2.一个程序的执行是从。

(A)本程序的main函数开始,到main函数结束

(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。

(C)本程序的main函数开始,到本程序文件的最后一个函数结束。

(D)本程序文件的第一个函数开始,到main函数结束。

3.以下叙述正确的是。

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

(B)C程序每行中只能写一条语句。

(C)C语言本是没有输入输出语句。

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

4.以下叙述不正确的是。

(A)逗号运算符的运算级最低。

(B)ABC和abc是两个不同的变量。

(C)若a和b类型相同,在执行a=b后,b的自身值不变。

(D)‘a’和“a”是完全等价的常量。

5.intx=3,y=2;则表达式x+=x*=y+8的值为。

(A)28(B)30(C)60(D)17

6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为。

(A)2.7(B)3.7(C)4.7(D)4.03

7.执行下面两个语句后,输出的结果为_____。

charc1=98;

printf(“%d%c”,c1,c1-32);

(A)9766(B)98b(C)b66(D)98B

8.执行下面语句后的结果为。

y=10;x=y++;

(A)x=10,y=10(B)x=11,y=11(C)x=10,y=11(D)x=11,y=10

9.Charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型是。

(A)double(B)char(C)int(D)float

10.C语言中要求操作数必须是整数的运算符是。

(A)/(B)%(C)!

=(D)=

11.用scanf(“%d,%d”,&a,&b)输入数据时,下面输入法中正确的是。

(A)123,4(B)1234(C)123;4(D)

12.以下关于运算符优先顺序的描述中正确的是________

(A)关系运算符<算术运算符<赋值运算符<逻辑与运算符

(B)逻辑与运算符 <关系运算符< 算术运算符<赋值运算符

(C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符

(D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符

13.下列程序段中,功能与其它程序段不同的是。

(A)for(i=1,p=1;i<=5;i++)p*=i;

(B)for(i=1;i<=5;){p=1;p*=i;i++;}

(C)i=1;p=1;while(i<=5){p*=i;i++;}

(D)i=1;p=1;do{p*=i;i++;}while(i<=5);

14.C语言规定else总是与配对。

(A)缩进位置相同的if(B)同一行上的if

(C)其之前最近的if(D)其之后最近的if

15.以下程序的运行结果为______。

main( )

{intn;

for(n=1;n<=10;n++)

{if(n%3==0)continue;printf(“%d”,n);}

}

(A)12457810(B)369(C)12(D)12345678910

16.设x和y均为int型变量,则语句x+=y;y=x-y;x-=y;的功能是。

(A)把x和y按从大到小排列(B)把x和y按从小到大排列

(C)无确定结果(D)交换x和y中的值

17.变量的指针,其含义是指该变量的_____

(A)值(B)地址(C)名(D)一个标志

18.以下函数调用语句中含有个实参。

func((e1,e2),(e3,e4,e5));

(A)2(B)3(C)5(D)语法错误

19.以下正确的描述是________

(A)continue语句的作用是结束整个循环的执行

(B)只能在循环体内和switch语句体内使用break语句

(C)在循环体内使用break语句或continue语句的作用相同

(D)goto语句只能用于退出多层循环

20.以下程序运行的结果是。

main()

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

if(a

if(a

c--;

else

c+=1;

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

}

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

21.inta[4]={2,3,4},I;

i=a[0]*a[1]+a[2]*a[3];

i的值为。

(A)2(B)4(C)6(D)10

22.以下正确的函数定义形式是。

(A)doublefun(intx,inty);

(B)doublefun(intx;inty)

(C)doublefun(intx,inty)

(D)doublefun(intx,y)

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

(A)float型(B)int型(C)long型(D)double型

24.若有定义inta[4]={1,2,3};

请问a[a[a[0]]]的值是。

(A)1(B)2(C)3(D)4

25.以下正确的描述是____________

(A)函数的定义可以嵌套,函数的调用不可以嵌套

(B)函数的定义不可以嵌套,函数的调用可以嵌套

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

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

26.以下不正确的说法是____________

(A)在函数内的复合语句中定义的变量在本函数范围内有效

(B)在不同函数中可以使用相同名字的变量

(C)形参是局部变量

(D)函数调用结束后,静态局部变量的值仍然保留。

27.已有定义:

intx=3,y=4,z=5;

则表达式!

(x+y)+z-1&&y+z/2的值是。

(A)6(B)0(C)2(D)1

28.main()

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

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

{if(k/2)break;

n[k]++;

}

printf(“%d\n”,n[++k]);

}

执行后输出的结果是。

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

29.判断字符串是否相等,应当使用。

(A)if(a==b)(B)if(a=b)(C)if(strcpy(a,b))(D)if(!

strcmp(a,b))

30.以下程序运行结果是。

voidsub(intx,inty,int*z)

{*z=y-x;}

main()

{inta,b,c;

sub(11,7,&a);sub(5,a,&b);sub(a,b,&c);

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

}

(A)-4,-9,-5(B)-4,9,5(C)4,-9,-5(D)-4,9,-5

31.以下程序运行结果是。

main()

{inta[2][3]={1,3,5,4,7,6},i,j,b=a[0][0];

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

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

if(b

b=a[i][j];

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

}

(A)5(B)7(C)4(D)1

32.以下程序运行结果是。

main()

{chars[50]=”Iamastudent”,c;

inti,num=0,word=0;

for(i=0;c=s[i];i++)

if(c==’’)word=0;

elseif(word==0)

{word=1;num++;}

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

}

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

33.以下程序运行结果是。

#include

main()

{chars[50]=”1234567”,*p=s;

inti;

i=*(p+5)-*(p+2);

printf(“%d\n”,i*strlen(s));

}

(A)21(B)24(C)14(D)28

34.以下程序运行结果是。

main()

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

for(i=0,j=8;i

{k=a[i];a[i]=a[j];a[j]=k;}

printf(“%d\n”,a[1]+a[5]);

}

(A)11(B)12(C)13(D)14

35.以下程序运行结果是。

main()

{intx[]={1,2,3},s,*p=x,i;

for(i=0,s=1;i<3;i++,p++)

s*=*p;

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

}

(A)2(B)4(C)6(D)8

36.设有语句:

inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;以下对数组a

中的数组元素的不正确引用是()。

Aa[p-a]B*(&a[i])Cp[i]D*(&(a+i))

37.下列程序的输出结果是()

#include

#defineMIN(x,y)(x)<(y)?

(x):

(y)

main()

{inti,j,k;

i=10;j=15;

k=10*MIN(i,j);printf(“%d\n”,k);}

A15B100C10D150

38.以下描述中不正确的是()。

A数组是一批类型相同的若干个元素的集合

B数组的各个元素的类型可以不同

C数组在内存中占用一块连续的存储空间

D数组是一种构造类型

39.可用作C语言用户标识的一组标识符()。

AviodBa3_b3CForD2a

define_123-abcDO

WORDIFCasesizeof

40.已知i,j,k为int型变量,若从键盘输入1,2,3回车,使i的值为

1,j的值为2,k的值为3,以下选项中正确的输入语句是()。

Ascanf(“%2d%2d%2d”,&i,&j,&k);

Bscanf(“%d%d%d”,&i,&j,&k);

Cscanf(“%d,%d,%d”,&i,&j,&k);

Dscanf(“i=%d,j=%d,k=%d”,&i,&j,&k);

41.与y=(x>0?

1:

x<0?

-1:

0);的功能相同的if语句是()。

Aif(x>0)y=1;Bif(x)

elseif(x<0)y=-1;if(x>0)y=1;

elsey=0;elseif(x<0)y=-1;

elsey=0;

Cy=-1;Dy=0;

if(x)if(x>=0)

if(x>0)y=1;if(x>0)y=1;

elseif(x==0)y=0;elsey=-1;elsey=-1;

42.下列程序输出的结果是()。

main()

{inta=0,i;for(i=1;i<5;i++){

switch(i)

{case0:

case3:

a+=2;

case1:

case2:

a+=3;

default:

a+=5;}}

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

A31B13C10D20

43.下列程序中,while循环次数是()。

main()

{inti=0;

while(i<10){

if(i<1)continue;

if(i==5)break;

i++;}}

A1B10C6D死循环,不能确定次数

44.以下说法中正确的是()。

AC语言程序总是从第一个函数开始执行

B在C语言程序中,要调用的函数必须在main()函数中定义

CC语言程序总是从main()函数开始执行

DC语言程序中的main()函数必须放在程序的开始部分

45.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是()。

A地址传递B值传递C由用户指定传递方式

D由实参传给形参,并由形参传回来给实参

46.设有:

int[10],i=5;,以下对数组元素引用不正确的是()。

Aa[9]BA[0]Ca[i]Da[i+5]

47.若有定义:

inti,j,*p=&i,则与i=j等价的语句是()。

Ai=*p;B*p=*&j;Ci=&j;Di=**p;

48.设a,b和c都是整型变量,且a=3,b=4,c=5;则以下表达式中,值为0

的表达式是()。

Aa&&bBa<=bCa||b+c&&b-cD!

((a

c||1)

49、下面标识符中,不合法的用户标识符为()

A)PadB)a_10C)_12abD)int

50、调用scanf(“%d,%d”,&a,&b);时,正确的键盘输入是()

A)10,20B)a=10,b=20

C)10:

20D)1020

51、能表示条件0≤x≤100的表达式是()

A)0<=x<=100B.x>=0,x<=100

C)0≤x≤100D)x>=0&&x<=100

52、设有:

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

执行(m=a>b)&&(n=c>d)后n的值为()

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

53、下面不正确的字符串常量是()

A)'abc'B)"12'12"C)"0"D)""

54、对字符串“Cat”进行完整赋值的操作是()

A)chars[3]={'C','a','t'};B)chars[]="Cat";

C)chars[3]={"Cat"};D)chars[3];s="Cat";

55、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()

A)–3B)9C)–12D)6

56、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是printf(“%d,%d\n”,x--,--y);()

A)10,3B)9,3C)9,2D)10,2

57、在TurboC中,设inta[10];假设数组a开始于内存2000单元,则a[2]的存储始于()

A)2002B)2004C)2006D)2008

58、在C语言中,引用数组元素时,其数组下标的数据类型允许是()

A)整型常量B)整型表达式

C)整型常量或整型表达式D)任何类型的表达式

59、若有ints[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是()

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

60、用数组名作为函数的实参时,传递给形参的是()

A)数组的首地址B)数组的第1个元素

C)数组中的全部元素D)数组的元素个数

61、以下程序的输出结果是()

main()

{charch[3][5]={"AAAA","BBB","CC"};

printf(“%s”,ch[1]);

}

A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"

62、有以下程序段

intk=0;

while(k=1)k++;

while循环执行的次数是()

A)无限次B)有语法错,不能执行

C)一次也不执行D)执行1次

63、设有以下说明语句

structstu

{inta;

floatb;

}stutype;

则下面的叙述不正确的是()

A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型

C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名

 

二、填空题

1、C语言程序的三种基本结构是、、。

2、一个C程序有且仅有一个函数。

3、C语言描述“x和y都大于或等于z”的表达式是。

4、C语言可以用来实现循环的结构化语句是、、。

5、数组名表示数组在内存的。

6、inta=3,*p=&a;*p+2的值是。

7、变量的作用域是指变量的有效范围,在作用域内可以引用该变量。

按作用域来说,变量可以分为__________变量和______变量。

8、如果程序中已有定义:

intk;通过指针变量,将数值10赋值给k的

句是___________。

9、设a,b,c,d,m,n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则

逻辑表达式(m=a

10、当函数的返回值的类型与函数定义的类型不一致时,系统

11、C语言中,变量是指

12、指针变量是把内存中另一个数据的_______作为其值的变量。

13、C语言源程序文件的后缀是,经过编译后,生成文件的后缀是,经过连接后,生成文件的后缀是。

14、若x为double型变量,请写出运算x=3.2,++x后表达式的值和

变量的值。

15、若有定义:

intx,a;则语句x=(a=3,a+1);运行后,x=,a=。

16、有下列程序段:

s=1.0;

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

s=s+1.0/(k*(k+1));

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

试填空,使下列的程序段的功能完全与之等同。

s=0.0;

__________;

d=0.0;

do{s=s+d;_____________;

d=1.0/(k*(k+1));}while(__________);

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

17、如果不指定精度,格式字符e,E和f默认输出小数点后____位小数。

18、下列程序的输出结果是()。

#include

main()

{charb[30];

strcpy(&b[0],”AB”);

strcpy(&b[1],”CDE”);

strcpy(&b[2],”FGH”);

printf(“%s\n”,b);}

n

19、下列程序的功能是计算s=∑k!

请填空。

k=0

longf(intn)

{inti;longs;

s=1;

for(i=1;_______;i++)s*=i;

return_______;}

main()

{longs;intk,n;

scanf(“%d”,&n);

s=___________;

for(k=0;k<=n;k++)s+=_______;

printf(“%ld\n”,s);}

20、下列程序的输出结果是___________。

#defineN20

#defines(x)x*x

#definef(x)(x*x)

main()

{inti1,i2;

i1=800/s(N);i2=800/f(N);

printf(“%d%d\n”,i1,i2);}

21、下列程序由两个文件组成,其运行结果是__________。

/*文件1*//*文件2*/

intx;staticintx=5;

sub()main()

{{

x=8;sub()

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

}

22、补充以下缺省的程序,实现求两个整型数的和:

intsum(intx,inty)

{

intz;

z=x+y;

return;

}

main()

{

inta,b,s;

printf(“pleaseenteraandb:

”);

scanf(“%d%d”,&a,&b);

s=

printf(“%d+%d=%d\n”,a,b,s);

}

 

三、阅读题(每小题5分,共20分)

1.写出下列程序的运行结果()。

main()

{inta=100;

if(a<=50)

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

elseif(a>50)

printf(“%d\n”,a>50);}

2.写出下列程序的输出结果()。

main()

{intn=‘b’;

switch(n)

{default:

printf(“error\n”);break;

case‘a’:

case‘b’printf(“good\n”);break;

case‘c’:

printf(“pass\n”);break;

case‘d’:

printf(“warn\n”);break;}}

3.写出下列程序的运行结果()。

#include

main()

{inti,s=0;

for(i=1;i<3;i++)

s+=i;

printf(“%d\n”,s);}

4.写出下列程序的输出结果()。

main()

{inti=10,j=0;

do

{j=j+1;i--;}

while(i>2);

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

5.有下列程序段,请写出运行结果。

func(intx)

{inty=13;

x=x+y;

returnx;

}

main()

{intx=3;

func(x);

printf("%d",x+x);

}

输出:

6.有下面程序段,请写出运行结果

main()

{intsum,j;

for(j=1;j<=100;j++){sum=0;sum=sum+j;}

printf(“sumis%d”,sum);

}

输出:

7.有下面程序段,请写出运行结果

main()

{

floata=3.4;

intb;

b=a*3;

printf(“%d”,b);

}

输出:

8.

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

当前位置:首页 > 经管营销 > 经济市场

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

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