C语言考试题及答案别忘评价一下哈.docx

上传人:b****7 文档编号:10428685 上传时间:2023-02-11 格式:DOCX 页数:184 大小:96.24KB
下载 相关 举报
C语言考试题及答案别忘评价一下哈.docx_第1页
第1页 / 共184页
C语言考试题及答案别忘评价一下哈.docx_第2页
第2页 / 共184页
C语言考试题及答案别忘评价一下哈.docx_第3页
第3页 / 共184页
C语言考试题及答案别忘评价一下哈.docx_第4页
第4页 / 共184页
C语言考试题及答案别忘评价一下哈.docx_第5页
第5页 / 共184页
点击查看更多>>
下载资源
资源描述

C语言考试题及答案别忘评价一下哈.docx

《C语言考试题及答案别忘评价一下哈.docx》由会员分享,可在线阅读,更多相关《C语言考试题及答案别忘评价一下哈.docx(184页珍藏版)》请在冰豆网上搜索。

C语言考试题及答案别忘评价一下哈.docx

C语言考试题及答案别忘评价一下哈

本卷共有4道大

一、单项选择题(25道小题,共50分)

1、以下说法中正确的是(C)(2分)

A、C语言程序总是从第一个的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分

2、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)(2分)

A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性

3、以下选项中,不合法常量的是(B)(2分)

A、1.234e04B、1.234e0.4

C、1.234e+4D、1.234e0

4、C语言中最简单的数据类型包括(B)(2分)

A、整型、实型、逻辑型B、整型、实型、字符型

C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型

5、能正确表示逻辑关系:

“10≥=a≥=0”的C语言表达式是(D)(2分)

A、10>=a>=0B、a>=0anda<=10

C、a>=0||a<=10D、a>=0&&a<=10

6、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)

A、6.500000B、6

C、5.500000D、6.000000

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

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

8、设x和y均为int型变量,则以下语句:

x+=y;y=x-y;x-=y;的功能是(D)(2分)

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

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

9、若有以下程序段:

intc1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分)

A、0B、0.5

C、1D、2

10、设charch='A';则ch=(ch>='A'&&ch<='Z')?

(ch+32):

ch的值是(B)。

(2分)

A、AB、a

C、ZD、z

11、执行程序段inta=-1,b=4,k;k=(++a<0)&&!

(b--<=0);printf(“%d%d%d\n”,k,a,b);后的输出结果是(D)。

(2分)

A、104B、103

C、003D、004

12、设intx=1,y=1;表达式(!

x||y--)的值是(B)。

(2分)

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

13、程序段intx=3;do{printf(“%d”,x-=2);}while(!

(--x));的输出结果是(C)。

(2分)

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

14、程序段for(i=2;i==0;)printf(“%d”,i--);的循环次数是(A)。

(2分)

A、无限次B、0次

C、1次D、2次

15、语句intk=1;while(k++<10);执行后,变量k的值是(B)。

(2分)

A、10B、11C、9D、无限循环,值不定

16、程序inti,sum;for(i=1;i<=3;sum++)sum+=i;printf(“%d\n”,sum);的执行结果是(C)。

(2分)

A、6B、3C、不确定D、0

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

(2分)

A、inta[3][];B、floata(3,4);

C、doublea[1][4];D、floata(3)(4)

18、若已定义chars[10];在下面表达式中不能表示s[1]的地址的是(B)。

(2分)

A、s+1B、s++

C、&s[0]+1D、&s[1]

19、对两个字符数组a和b进行初始化chara[]="ABCDEF";charb[]={'A','B','C','D','E','F'};则以下叙述正确的是(D)

(2分)

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

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

20、有说明:

char*language[]={"FORTRAN","BASIC","PASCAL","JAVA","C"};则表达式*language[1]>*language[2]比较的是(D)

A、字符B和字符PB、字符串FORTRAN和字符串BASIC

C、字符F和字符BD、字符串BASIC和字符串PASCAL

21、C语言程序由函数组成,它的(B)。

(2分)

A、主函数必须在其它函数之前,函数内可以嵌套定义函数B、主函数可以在其它函数之后,函数内不可以嵌套定义函数

C、主函数必须在其它函数之前,函数内不可以嵌套定义函数D、主函数必须在其它函数之后,函数内可以嵌套定义函数

22、在C语言中,若需一变量只在本文件中所有函数使用,则该变量的存储类别是(D)。

(2分)

A、externB、registerC、autoD、static

23、已知:

inta[]={1,2,3,4,5,6},*p=a;则值为3的表达式是(A)。

.(2分)

A、p+=2,*(p++)B、p+=2,*++p

C、p+=3,*p++D、p+=2,++*p

24、设有说明语句“structstu{inta;floatb;}stutype;”,则叙述不正确的是(C)(2分)

A、struct是结构体类型的关键字。

B、structstu是用户定义的结构体类型。

C、stutype是用户定义的结构体变量名。

D、a和b都是结构体变量。

25、下列关于文件指针的描述中,错误的是(D)(2分)

A、文件指针是由文件类型FILE定义的。

B、文件指针是指向内存某个单元的地址值。

C、文件指针是用来对文件操作的标识。

D、文件指针在一个程序中只能有一个。

26、以下叙述中正确的是(B)(2分)

A、C语言的源程序不必通过编译就可以直接运行

B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C、C源程序经编译形成的二进制代码可以直接运行

D、C语言中的函数不可以单独进行编译

27、以下叙述中正确的是(C)(2分)

A、用C语言实现的算法必须要有输入和输出操作

B、用C语言实现的算法可以没有输出但必须要有输入

C、用C程序实现的算法可以没有输入但必须要有输出

D、用C程序实现的算法可以既没有输入也没有输出

28、C语言中,下列字符常量合法的是(A)(2分)

A、'\t'B、"A"C、65D、A

29、下列关于赋值运算符的表述中,错误的是(C)(2分)

A、赋值运算符优先级高于逗号运算符

B、赋值运算符的结合性是从左至右C、赋值运算符是双目运算符

D、赋值运算符可在表达式中连用

30、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)

A、6.500000B、6C、5.500000D、6.000000

31、以下不是关键字的是(C)(2分)

A、continueB、charC、IfD、default

32、设x,y为浮点型变量,合法赋值语句是(A)(2分)

A、x=8+y;B、(float)3;C、y=(x%2)/10;D、*x=10;

33、已定义ch为字符型变量,以下赋值语句中错误的是(B)(2分)

A、ch='\';B、ch=62+3;C、ch='';D、ch='\xaa';

34、已知i、j、k为int型变量,若从键盘输入:

1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)(2分)

A、scanf("%2d%2d%2d",&i,&j,&k);

B、scanf("%d%d%d",&i,&j,&k);C、scanf("%d,%d,%d",&i,&j,&k);

D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);

35、为了避免在嵌套的条件语句if――else中产生二义性,c语言规定:

else子句总是与(B)配对。

(2分)

A、缩排位置相同的ifB、其之前最近的ifC、其之后最近的ifD、同一行上的if

36、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表达式是(A)。

(2分)

A、(x>=1)&&(x<=100)&&(x>=200)&&(x<=300)

B、(x>=1)||(x<=100)||(x>=200)||(x<=300)C、(x>=1)&&(x<=100)||(x>=200)&&(x<=300)

D、(x>=1)||(x<=100)&&(x>=200)||(x<=300)

37、若w,x,y,z,m均为int型变量,则执行语句w=1;x=2;y=3;z=4;m=(w

w:

x;m=(m

m:

y;m=(m

m:

z;后的m值是(A)。

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

38、c语言中(D)。

(2分)

A、不能使用do-while语句构成的循环

B、do-while语句构成的循环必须用break语句才能退出

C、do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环D、do—while语句构成的循环,当while语句中的表达式值为零时结束循环

39、设j为int型变量,则for(j=10;j>3;j--){if(j%3)j--;--j;--j;printf(“%d”,j);}的执行结果是(A)。

(2分

A、74B、47C、56D、13

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

(2分)

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

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

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

D、do-while循环中,根据情况可以省略while

41、以下正确的定义语句是(D)。

(2分)

A、inta[1][4]={1,2,3,4,5};

B、floatx[3][]={{1},{2},{3}};C、longb[2][3]={{1},{1,2},{1,2,3}};

D、doubley[][3]={0};

42、下面描述正确的是(D)。

(2分)

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

B、字符个数多的字符串比字符个数少的字符串大C、字符串"stop"与"stop"相等

D、字符串“That”小于字符串"The"

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

(2分)

A、整型常量

B、整型表达式C、整型常量或整型表达式

D、任何类型的表达式

44、若有说明:

inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(B)。

(2分)

A、2B、3C、4D、无确定值

45、已知intf(int);和intg(int);是函数f和g的原形。

下列语句中,将函数f作为函数参数的有(A)。

 (2分)

A、f(3);B、p=f(3);C、g(f(3));D、f(g(3));

46、函数调用结束后,形式参数(C)。

(2分)

A、继续占用相同大小的内存B、占用的内存减小C、释放内存D、不确定

47、已知:

inta,*p=&a;则下列函数调用中错误的是(D)。

(2分)

Ascanf("%d",&aB、scanf("%d",p);C、printf("%d",a);D、printf("%d",p);

48、枚举类型首元素默认值和两个相邻元素之间默认的差值分别是(C)(2分)

A、1,0B、1,1C、0,1D、0,0

49、语句“fseek(fp,100L,2);”的功能是(C)(2分)

A、将fp所指向文件的位置指针移至距文件首100个字节。

B、将fp所指向文件的位置指针移至距文件尾100个字节。

C、将fp所指向文件的位置指针移至距当前位置指针的文件首方向100个字节。

D、将fp所指向文件的位置指针移至距当前位置

指针的文件尾方向100个字节。

50、以下叙述错误的是(D)(2分)

A、一个C程序总是从main函数开始执行的;

B、C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上;

C、每个语句和数据定义的最后必须有一个分号;

D、C语言本身有输入输出语句。

51、若有以下类型说明语句:

charw;intx;floaty;doublez;则表达式w*x+z-y的结果类型是(D)(2分)

A、floatB、charC、intD、double

52、下面不正确的字符串常量是(A)(2分)

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

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

intk,a,b=1;unsignedlongw=5;则以下不符合C语言语法的表达式是(A)(2分)

A、k=b+2=wB、w+=-2C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)

54、执行下列语句intx=10,y=3;printf("%d\n",y=x/y);后的输出是(C)(2分)

A、0B、1C、3D、不确定的值

55、若执行以下程序段:

inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%d\n”,a,b,c);其输出结果是(B)(2分)

A、0,0,-10B、0,0,5C、-10,3,-10D、3,3,-10

56、已知i、j、k为int型变量,若从键盘输入:

1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)(2分)

A、scanf("%2d%2d%2d",&i,&j,&k);

B、scanf("%d%d%d",&i,&j,&k);C、scanf("%d,%d,%d",&i,&j,&k);

D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);

57、以下错误的if语句是(C)。

(2分)

A、if(x>y)z=x;

B、if(x==y)z=0;C、if(x!

=y)printf("%d",x)elseprintf("%d",y);

D、if(x

58、条件运算符的结合方向是(A)。

(2分)

A、自右至左;B、自左至右;C、任意;D、前后顺序;

59、对于程序段intx=-1;do{x=x*x;}while(!

x);说法正确的是(C)。

(2分)

A、是死循环B、循环执行两次C、循环执行一次D、有语法错误

60、t为int类型,进人下面的循环之前,t的值为0,则对于while(t=l){……}叙述中正确的是(A)。

(2分)

A、循环控制表达式的值为0

B、循环控制表达式的值为1C、循环控制表达式不合法

D、以上说法都不对

61、执行语句x=y=0;while(x<15)y++,x+=++y;printf(“%d,%d”,y,x);的结果是(D)。

(2分)

A、20,7B、6,12C、20,8D、8,20

62、以下对一维整形数组a进行正确初始化的语句是(C)。

(2分)

A、inta[10]=(0,0,0,0,0);B、inta[10]={};C、inta[]={0};D、inta[10]={10*1};

63、若有说明:

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

(2分)

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

64、以下能对二维整形数组a进行正确初始化的语句是(D)。

(2分)

A、inta[2][3]={0};B、inta[][3]={{1,2},{0}};C、inta[2][3]={{1,2},{3,4},{5,6}};D、inta[][3]={1,2,3,4,5,6};

65、程序charc[5]={‘a’,’b’,’\0’,’c’c,’\0’};printf(“%s”,c);}的运行结果是(D)。

(2分)

A、'a''b'B、abC、abcD、ab

66、一个C程序的执行是从(A)。

(2分)

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

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

C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束

67、在定义语句int*f();中,标识符f代表的是(D)。

(2分)

A、一个用于指向整型数据的指针变量

B、一个用于指向一维数组的行指针C、一个用于指向函数的指针变量

D、一个返回值为指针型的函数名

68、设p1和p2是指向同一个字符串的指针变量,e为字符变量,则以下不能正确执行的赋值语句是(B)。

(2分)

A、c=*p1+*p2;B、p2=cC、p1=p2D、c=*p1*(*p2);

69、C语言结构体类型变量在程序执行期间(B)(2分)

A、所有成员一直驻留在内存中。

B、只有一个成员驻留在内存中。

C、部分成员驻留在内存中。

D、没有成员驻留在内存中。

70、语句“fseek(fp,100L,1);”的功能是(C)(2分)

A、将fp所指向文件的位置指针移至距文件首100个字节。

B、将fp所指向文件的位置指针移至距文件尾100个字节。

C、将fp所指向文件的位置指针移至距当前位置指针的文件首方向100个字节。

D、将fp所指向文件的位置指针移至距当前位置

指针的文件尾方向100个字节。

71、以下不是结构化程序设计方法的是(B)(2分)

A、循环结构B、模块结构C、顺序结构D、选择结构

72、以下选项中,不合法常量的是(B)(2分)

A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e0

73、若变量已正确定义,以下非法的表达式是(B)(2分)

A、a/=b+cB、a%(4.0)C、a=1/2*(x=y=20,x*3)D、a=b=c

74、下列语句中符合C语言语法的赋值语句是(D)(2分)

A、a=7+b+c=a+7;B、a=7+b++=a+7;C、a=7+b,b++,a+7D、a=7+b,c=a+7;

75、若有以下定义和语句:

charc1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A");则输出结果是(B)(2分)

A、2,MB、3,EC、2,ED、输出项与对应的格式控制不一致,输出结果不确定

76、若变量已正确说明,要求用语句:

scanf(“%f%c%f%c”,&a,&c1,&b,&c2);给c1赋予字符%、给c2赋予字符#、给a赋予2.0、给b赋予4.0,则正确的输入形式是(B)(2分)

A、2.0%4.0#B、2.0%4.0#C、2%4#D、2%4#

77、下述表达式中,(A)可以正确表示x≤0或x≥1的关系。

(2分)

A、(x>=1)||(x<=0)B、x>=1|x<=0C、x>=1&&x<=0D、(x>=1)&&(x<=0)

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

a:

b+1的值为(A)。

(2分)

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

79设:

inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为(B)。

(2分)

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

80、对for(表达式1;;表达式3)可以理解为(B)。

(2分)

A、for(表达式1;0;表达式3)

B、for(表达式1;1;表达式3)C、for(表达式1;表达式1;表达式3)

D、for(表达式1;表达式3;表达式3)

81、若I为整型变量,则for(I=2;I==1)printf(“%d”,I--);的循环执行次数是(B)。

(2分)

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

82、程序inti,sum;for(i=1;i<=3;sum++)sum+=i;printf(“%d\n”,sum);的执行结果是(C)。

(2分)

A、6B、3C、不确定D、0

83、若有说明:

inta[3][4];则对a数组元素的正确引用是(C)。

(2分)

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

(2)

(1)

84、下面是对数组a的初始化,其中不正确的是(D)。

(2分)

A、a[5]={"ABCD"}B、a[5]={'A','B','C','D'}C、a[5]=""D、a[5]="ABCDE"

85、判断字符串a是否大于b,应当使用(D)。

(2分)

A、if(a>b)B、if(strcmp(a,b))C、if(strcmp(b,a)>0)D、if(strcmp(a,b)>0)

86、若已定义chars[2][40]={"china","English"};则在下面表达式中能表示字符‘E’的地址的是(B)。

(2分)

A、&s[2][1]B、s[1]C、&s[1]D、&(s[1]+1)

87、关于局部变量,下列说法正确的是(D)。

(2分)

A、定义该变量的程序文件中的函数都可以访问。

B、定义该变量的函数中的定义处以下的任何语句都可以访问。

C、定义该变量的复合语句的定义处以下的任何语句都可以访问。

D、局部变量可用于函数之间传递数据。

88、程序chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf(“%d”,*--p);的输出结果是(A)。

(2分)

A、非法B、a[4]的地址C、5D、3

89、C语言结构体类型变量在程序执行期间(B)(2分)

A、所有成员一直驻留在内存中。

B、只有一个成员驻留在内存中。

C、部分成员驻留在内存中。

D、没有成员驻留在内存中。

90、下列正确定义一个文件指针pm的语句是(C)(2分)

A、FILEpm;B、file*pm;C、FILE

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

当前位置:首页 > 成人教育 > 电大

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

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