C语言期末复习题附答案.docx

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

C语言期末复习题附答案.docx

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

C语言期末复习题附答案.docx

C语言期末复习题附答案

1、凡是函数中未指定存储类型的局部变量,其隐含的存储类型为(A)。

A、autoB、static

C、externD、register

2、若有定义:

int*ptr[6];则标识符ptr(B)。

A、是一个指向整形变量的指针B、是一个指针数组名

C、是一个指针,它指向一个含有四个整形元素的一维数组

D、说明不合法

3、结构化程序设计的基本结构主要是(D)

A、分支结构、平行结构、循环结构B、分支结构、函数结构、循环结构

C、平行结构、选择结构、函数结构D、顺序结构、选择结构、循环结构

4、一个C程序中,主函数的个数是(B)。

A、2个B、1个

C、任意个D、10个

5、在VisualC++6、0环境下,C源程序文件名的默认后缀是(A)。

A、、cppB、、exe

C、、objD、、dsp

6、根据C语言的语法规则,下列(B)是用户定义的合法标识符

A、elseB、ElseC、user$2D、5_object

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

A、break语句只能用于switch语句体中

B、continue语句的作用是:

使程序的执行流程跳出包含它的所有循环

C、break语句只能用在循环体内和switch语句体内

D、在循环体内使用break语句和continue语句的作用相同

8、若定义intx=136,y;,执行语句y=x/10%10;后y的值是(B)

A、1B、3C、6D、0

9、下列关于C语言注释的叙述中错误的是(D)。

A、以"/*"开头并以"*/"结尾的字符串为C语言的注释内容

B、注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义

C、程序编译时,不对注释作任何处理

D、程序编译时,需要对注释进行处理

10、若有定义:

intx,a;则语句x=(a=3,a+1);运行后,x、a的值依次为(C)。

A、3,3 B、4,4 C、4,3 D、3,4

11、以下程序运行结果是(A)

voidmain()

{intx=28;

do

{

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

}while(!

x);

}

A、28B、27C、26D、0

12、如果a=1,b=2,c=3,d=4,则条件表达式a

a:

c

c:

d的值为(A)。

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

13、下列关于C语言注释的叙述中错误的是(D)。

A、以"/*"开头并以"*/"结尾的字符串为C语言的注释内容

B、注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义

C、程序编译时,不对注释作任何处理

D、程序编译时,需要对注释进行处理

14、定义如下变量和数组:

intk;

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

则下面语句的输出结果是(A)

for(k=0;k<3;k++)printf(“%d”,a[k][2-k]);

A、357B、369C、159D、147

15、C语言对嵌套if语句的规定是:

else总是与(D)配对。

A、其之前最近的if 

B、第一个if

C、缩进位置相同的if 

D、其之前最近的且没与其他else配对的if

16、有以下程序段

inta,b,c;

a=10;b=50;c=30;

if(a>b)a=b,b=c,c=a;

printf(〞a=%db=%dc=%d\n〞,a,b,c);

程序的输出结果是(B)。

A、a=10b=50c=10B、a=10b=50c=30

C、a=10b=30c=10D、a=50b=30c=50

17、判断字符串a和b是否相等,应当使用(D)

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

18、以下结果为整数的表达式(设有inti;charc;floatf;)(B)。

A、i+f  B、i*c

C、c+f D、i+c+f

19、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)。

A、INPUTx、y、z;B、scanf("%d%d%d",&x,&y,&z);

C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);

20、下列叙述正确的是(B)

A、函数的定义允许嵌套,但函数的调用不允许嵌套

B、函数的定义不允许嵌套,但函数的调用允许嵌套

C、函数的定义和调用都不允许嵌套

D、函数的定义和调用都允许嵌套

21、当执行以下程序时,(C)。

#include

voidmain()

{inta;

while(a=5)

printf("%d",a--);

}

A、循环体将执行5次B、循环体将执行0次

C、死循环D、循环体将执行4次

22、若已定义:

int*p,a;,以下正确的语句是(D)

A、p=*a;B、a=p;C、a=*p;D、p=&a;

23、如果在一个函数中的复合语句中定义了一个变量,则该变量(A)。

A、只在该复合语句中有效B、在该函数中有效

C、在本程序范围内有效D、为非法变量

24、以下叙述中错误的是(B)。

A、用户自定义的函数中可以没有return语句

B、用户自定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

C、用户自定义的函数中若没有return语句,则应当定义函数为void类型

D、函数的return语句中可以没有表达式

25、若有说明:

ints[15];则对a数组元素的正确引用是(D)。

A、s[15]B、s[3、5]C、s(5)D、s[15-15]

26、执行inta[][4]={2,3,5,7,8,9,11,13,15};语句后,a[1][2]的值是(A)

A、11B、3C、5D、9

27、下面是s的初如始化,其中不正确的是(D)。

A、chars[5]={"abc"};B、chars[5]={‘a’,‘b’,‘c’};

C、chars[5]="";D、chars[5]="abcdef";

28、以下程序运行结果是(B)

#defineM(x,y,z)x*y*z

#include

voidmain()

{

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

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

}

A、60B、15C、20D、程序错误

29、在C语言中,只有在使用时才占用内存单元的变量,其存储类型是(A)。

A、auto和registerB、extern和register

C、auto和staticD、static和register

30、如下表述中,判断字符数组a和b中所存储的字符串是否相等的选项是(D)。

A、a==bB、a=b

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

31、在以下关于带参数宏定义的描述中,正确的说法是(A)。

A、宏名和它的参数都无类型B、宏名有类型,它的参数无类型

C、宏名无类型,它的参数有类型D、宏名和它的参数都有类型

32、在C语言中,二维数组元素在内存中的存放顺序是(A)

A、按行存放B、按列存放

C、由用户自己定义D、由编译器决定

33、以下不正确的叙述是(C)。

A、在C程序中,逗号运算符的优先级最低

B、在C程序中,APH和aph是两个不同的变量

C、在C程序中,无论是整数还是实数,都能被准确无误的表示

D、在C程序中,%是只能用于整数运算的运算符

34、下面正确的函数定义形式是(A)。

A、doublefun(intx,inty){……}

B、doublefun(intx;inty){……}

C、doublefun(intx,inty);{……}

D、doublefun(intx,y;){……}

35、在执行charstr[10]={"key\0word"};语句后,strlen(str)的结果是(A)

A、3B、4C、5D、8

36、下面程序的运行结果是(B)

voidmain()

{

intb[5]={1,3,5,7,9},*p;

p=b;

printf(“%d”,*(p+1));

}

A、1B、3C、5D、7

37、以下if语句错误的是(A)。

A、if(x

B、if(x)x+=y;

C、if(x

D、if(x!

=y)scanf("%d",&x);elsex++;

38、判断char型变量c是否为小写字母的正确表达式为(D)

A、’a’<=c<=’z’B、(c>=a)&&(c<=z)

C、(‘a’<=c)||(‘z’>=c)D、(c>=’a’)&&(c<=’z’)

39、指向一个变量的指针,其存储的数据是该变量的(B)。

A、值 B、地址 C、名称 D、一个标志

40、若已定义:

inta=3,b=4,c=5 ;,则下面表达式中值为0的是(D)

A、'a'&&'b'B、a<=bC、a||b+c&&b-cD、!

((a

c||1)

41、以下对二维数组s进行初始化的语句错误的是(C)。

A、ints[2][3]={0}; B、ints[][3]={1,2,3,4,5};

C、ints[2][3]={{1,2},{3,4},{5,6}};

D、ints[][3]={{1,2},{0}};

42、若有说明语句int(*ptr)();其含义是(C)。

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

B、ptr是指针变量,指向一个整形变量

C、一个指向函数的指针,该函数的返回值是一个整数

D、以上都不对

43、若x、y均为double型变量,正确的输入函数调用是(B)

A、scanf("%f%f",&x,&y);B、scanf("%d%d",&x,&y);

C、scanf("%lf%lf",&x,&y);D、scanf("%lf%lf",x,y);

44、在C语言中,下面哪个标识符是合法的(B)

A、ifB、dayC、#25D、a[3]

45、x为int型变量,且x=65,不正确的输出函数调用是(D)

A、printf(“%d”,x);B、printf(“%3d”,x);C、printf(“%c”,x);D、printf(“%s”,x);

46、以下能正确定义且赋初值的语句是(B)

A、intn1=n2=10;B、charc=32;C、floatf=f+1、1D、doublex=12、3E2、5

47、下列程序段的执行结果为(C)。

#include

main()

{intx=3;

do

{printf("%3d\n",x-=2);

}while(!

(--x));

}

A、1B、30C、1-2D、死循环

48、C语言对嵌入if语句的规定是:

else总是与(D)配对

A、其之前最近的ifB、第一个if

C、缩进位置相同的ifD、其之前最近且不带else的if

49、调用函数时,基本类型变量作函数实参,它和对应的形参(A)。

A、各自占用独立的存储单元B、共用一个存储单元

C、同名时才能共用在存储单元D、不占用存储单元

50、以下程序:

#include

voidmain()

{

intp,a=5;

if(p=a!

=0)

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

else

printf(“%d\n”,p+2);

}程序输出结果是(B)

A、0B、1C、2D、5

51、若有说明:

ints[4][5];则对a数组元素的非法引用是(D)

A、s[0][2*1]B、s[1][3]C、s[4-2][0]D、s[0][5]

52、若有说明语句int(*ptr)();其含义是(C)。

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

B、ptr是指针变量,指向一个整形变量

C、一个指向函数的指针,该函数的返回值是一个整数

D、以上都不对

53、当执行以下程序时,(C)

#include

voidmain()

{

inta;

while(a=5)

printf("%d",a--);

}

A、循环体将执行5次B、循环体将执行0次

C、循环体将执行无限次D、系统会死机

54、以下正确的函数定义形式是(A)

A、intfun(intx,inty)B、intfun(intx;inty)C、intfun(intx,y)D、intfun(intx,y;)

55、在一个源文件中定义的全局变量的作用域为(D)

A、本文件的全部范围B、本程序的全部范围

C、本函数的全部范围D、从定义该变量的位置开始至本文件结束为止

56、以下程序运行的结果是(B)

#include

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

(x):

(y)

voidmain()

{inti=10,j=15,k;

k=10*MIN(i,j);

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

}

A、10B、15C、100D、150

57、字符串”Iamastudent、”在存储单元中占(C)字节

A、3B、4C、16D、17

58、若定义一个结构体变量,则系统分配给它的内存是(A)。

A、各成员所需内存量的总和 B、结构中第一个成员所需内存量

C、成员中占内存量最大者所需的容量

D、结构中最后一个成员所需内存量

59、以下对二维数组a的正确说明是(C)。

A、intc[5][];B、floatc(5,4);

C、doublec[1][4];D、floatc(5)(4);

60、设有intx,y;以下语句判断x和y是否相等,正确的说法是该语句(B)

if(x=y)printf("xisequaltoy、");

A、语法错B、不能判断x和y是否相等

C、编译出错D、能判断x和y是否相等

61、以下对C语言中共用体类型数据的叙述正确的是(C)。

A、可以对共用体变量名直接赋值

B、一个共用体变量中可以同时存放其所有成员

C、一个共用体变量中不可能同时存放其所有成员

D、共用体类型定义中不能出现结构体类型的成员

62、调用函数时,基本类型变量作函数实参,它和对应的形参(A)

A、各自占用独立的存储单元B、共占用一个存储单元

C、同名时才能共用存储单元D、不占用存储单元

63、要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。

能正确实现此功能的函数是(A)。

A、funa(int*x,int*y)B、funb(intx,inty)

{intp;{intt;

p=*x;*x=*y;*y=p;}t=x;x=y;y=t;}

C、func(int*x,int*y)D、fund(intx,inty)

{*x=*y;*y=*x;}{*x=*x+*y;*y=*x-*y;*x=*x-*y;}

64、如果在一个函数中的复合语句中定义了一个变量,则该变量(A)

A、只在该复合语句中有效B、在该函数中有效

C、在本程序范围内有效D、为非法变量

65、在一个源文件中定义的全局变量的作用域为(D)。

A、本文件的全部范围

B、本程序的全部范围

C、本函数的全部范围

D、从定义该变量的位置开始至本文件结束为止

66、在以下关于带参数宏定义的描述中,正确的说法是(A)。

A、宏名和它的参数都无类型B、宏名有类型,它的参数无类型

C、宏名无类型,它的参数有类型D、宏名和它的参数都有类型

67、设有如下程序段

chars[20]="Bejing",*p;

p=s;

则执行p=s;语句后,以下叙述正确的是(A)。

A、可以用*p表示s[0]

B、数组s中元素的个数和p所指字符串长度相等

C、s和p都是指针变量

D、数组s中的内容和指针变量p中的内容相等

 

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

当前位置:首页 > 医药卫生 > 基础医学

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

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