c语言期末试卷

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C语言程序设计A》试卷(B卷)

班级学号姓名

一、选择题:(每题1分,共计20分)

1、C语言规定:在一个源程序中,main函数的位置( C)。

A)必须在最开始

B)必须在系统调用的库函数的后面

C)可以任意

D)必须在最后

2、设a为5,执行下列语句后,b的值不为2的是(C)。

A)b=a/2 B)b=6-(--a)

C)b=a%2D)b=a>32:1

3、若a=-14,b=3,则条件表达式a

A)-14 B)-13 C)3 D)4

4、已知:int n,i=1,j=2;执行语句n=i

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

5、函数调用语句func((exp1,exp2),(exp3,exp4,exp5));中,实参的个数为

()。

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

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

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

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

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

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

7、在C语言中,下面对函数不正确的描述是( )。

A)当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。

B)允许函数递归调用。

C)函数形参的作用范围只是局限于所定义的函数内。

D)子函数必须位于主函数之前。

8、如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( )。

A)该变量只在该复合语句中有效

B)该变量在该函数中有效

C)该变量在本程序范围内均有效

D)该变量为非法变量

9、若x=4,则x*=x+2的值为()。

A)36 B)24C)18 D)20

10、下列能正确定义整型变量a、b和c并为其赋的值1的语句是( )。

A)int a=b=c=1; B)int a,b,c=1 C)a=b=c=1; D)int a=1,b=1,c=1 11、以下关于宏替换的叙述不正确的是()。

A)宏替换只是字符替换B)宏名无类型

C)宏替换不占用运行时间D)宏替换不占用编译时间12、有以下程序段

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;

b=p[5];

b中的值是( )。

A)5 B)6 C)8 D)9

13、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( )。

main()

{

int *p,*q,a,b;

p=&a;

printf("input a:");

scanf("%d",*p);

}

A)*p表示的是指针变量p的地址

B)*p表示的是变量a 的值,而不是变量a的地址C)*p表示的是指针变量p的值

D)*p只能用来说明p是一个指针变量

14、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32);后num的值为( )。

A)4 B)16 C)32 D)52

15、假设指针p已经指向某个整型变量x,则*p相当于()。

A)&x B)&p C)x D)*x

16、若有说明:int a[10]; 则对a数组元素的正确引用是( )。

A)a[10] B)a[] C)a[5-3] D)a[-1]

17、在C语言中, 一维数组的定义方式为:

类型说明符数组名();

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

C)[整型常量] D)[整型表达式]

18、以下能对一维数组a进行正确初始化的语句是( )。

A)in a[10]=(0,,0,0); B)int a[10]={};

C)int a[]={0}; D)int a[10]={10*1};

19、假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变量,则下面各项中

正确的是()。

A)p2=**p1 B)p2=*&p1

C)p2=*p1D)p2=&*p1

20、以下关于do-while循环的不正确描述是( )。

A)do-while的循环体至少执行一次

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

C)在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作。

D)do-while的循环体可以是复合语句。

二、判断题(每题1分,共计10分)

1、在一个函数内部的复合语句中定义的变量,只在该复合语句范围内有效。()

2、字符串作为一维数组存放在内存中。()

3、字符数组中的一个元素存放一个字符。()

4、字符数组中的最后一个字符必须是'\0'。()

5、形参为指针变量时,实参必须是数组名。()

6、用数组名作函数参数时传递的是数组的值。()

7、全局变量可以被任何一个函数中的任何一个表达式使用。()

8、一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据。()

9、表达式i++与++i在任何场合功能完全相同。()

10、赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。()

三、填空题:(每空2分,共40分)

1、在C语言中,一个float 型数据在内存中所占的字节数为4个字节,C 源程序的基本单位是函数.

2、算法表示的时候使用的三种基本结构是顺序,选择,循环(3)。

3、以下程序运行后的输出结果是___ 25 21 37__ 。

main( )

{ int a,b,c;

a=25;

b=025;

c=0x25;

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

}

4、以下程序运行后的输出结果是gae 。

main ()

{ char a[ ]="Language",b[]="Programe";

char *p1,*p2; int k;

p1=a; p2=b;

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

if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k));

}

5、已有定义:

int m;

float n,k;

char chl,ch2;

为使m=3, n=, k=, ch1='a', ch2='A', 输入数据的格式为:

3

则对应的scanf语句是scanf("%d%f%f%c%c",&m,&n,&k,&ch1,&ch2)