C语言选择题库答案

更新时间:2024-06-11 12:13:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言选择题答案

1、 在计算机内部,一切信息存取处理和传送的形式是:C A) ASCⅡ码 B) BCD码 C) 二进制 D) 十六进制 2、计算机的软件系统一般分为: C A) 系统软件、应用软件与各种字处理软件 B) 操作系统、用户软件与管理软件 C) 系统软件与应用软件

D) 操作系统、实时系统与分时系统

3、在C语言中,要求运算数必须是整型的运算符是:A A) % B) / C) < D) !

4、下列语句中符合C语言语法的赋值语句是:D A) a=7+b+c=a+7; B) a=7+b++=a+7; C) a=7+b,b++,a+7 D) a=7+b;c=a+7;

5、如果按字长来划分,微机可以分为8位机`16位机`32位机和64位机. 所谓32位机是指该计算机所用的CPU: A

A) 同时能处理32位二进制数 B) 具有32位的寄存器

C) 只能自理32位二进制定点数 D) 有32个寄存器

6、以下不正确的C语言标识符是____。 A(不能使用关键字) A) int B) a_1_2 C) ab1exe D) _x

7、、以下叙述正确的是______。 C

A)在C程序中main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句

D)在对一个C程序进行编译的过程中,可发现注释中的错误 8、下列运算中,操作数只能是整型的________D

1

A)+ B)* C) / D) %

9、下列转义字符中错误的一个是____。C(\\x后面应该是1到2位十六进制数) A) '\\000' B) '\\0014' C) '\\x111' D) '\\2'

10、以下叙述中正确的是_____ C

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

B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的函数不可以单独进行编译 11、以下是正确的C语言标识符是____。 B

A) #define(系统关键字) B) _123 C) %d (%错) D) \\n(\\错) 12、下列关于C语言的叙述错误的是____ A A) 大写字母和小写字母的意义相同

B) 不同类型的变量可以在一个表达式中

C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

13、C语言中字符型(char)数据在内存中的存储形式是____。 D A) 原码 B) 补码 C) 反码 D) ASCII码

14、将字符g赋给字符变量c,正确的表达式是 。 C(使用8位二进制码,最左边1位为0) A) c=\\147 B) c=\可以用以下程序来检验: #include void main() {

char c='\\147'; printf(\}

15、以下程序的输出为____A____ #include void main() {

2

int m=7, n=4;

float a=38.4, b=6.4, x; x=m/2+n*a/b+1/2; printf(“%f\\n”, x); }

A) 27.000000 B) 27.500000 C) 28.000000 D) 28.500000

16、已知字母A的ASCⅡ码为十进制的65,下面程序的输出是:A A) 67,D B) B,C

C) C,D D) 不确定的值 main() {

char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3';

printf(\ }

17、下面程序的输出是:C A) 0 B) 1

C) 3 D) 不确定的值 main() {

int x=10,y=3;

printf(\ }

18、在以下一组运算符中,优先级最高的运算符是:C A)<= B)= C)% D)&&

19、能正确表示a≥10或a≤0的关系表达式是:D A)a>=10 or a<=0 B)a>=10│a<=0 C)a≥10││a≤0 D)a>=10 ││a<=0

3

20、一个C程序的执行是从: A

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

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 21、下列不属于C语言关键字的是 。 D

A) default(如default 用于switch语句当中:default : break;)

B) register(寄存器类型) C) enum(枚举类型) D) external(应为extern)

22、逗号表达式\的值是____。 C A) 15 B) 60 C) 30 D) 不确定

23、已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是____。 C A) 0 B) 1 C) 5 D) 6

24、使用语句scanf(\;输入变量x、y的值(□代表空格),正确的输入是____。 C A) 1.25,2.4 B) 1.25□2.4 C) x=1.25,y=2.4 D) x=1.25□y=2.4 25、C语言程序从main()函数开始执行,所以这个函数要写在____。 D A) 程序文件的开始 B) 程序文件的最后

C) 它所调用的函数的前面 D) 程序文件的任何位置 26、下面各选项组中,均是C语言关键字的组是 。 B

说明:所谓关键字就是已被Turbo C2.0本身使用, 不能作其它用途使用的字。例如关键字不能用作变量名、函数名等

C语言总共有32个关键字:

Turbo C2.0有以下关键字: Turbo C2.0扩展的共11个

asm _cs _ds _es _ss cdecl far near huge interrupt pascal

由ANSI标准定义的共32个 :

auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if while static

4

注:auto是系统在没有为变量显示声明存储类型时自动视为auto;register 寄存器变量;extern 外部变量;static 静态变量;volatile(易变的)表示该变量不经过赋值,其值也可能被改变(例如表示时钟的变量、表示通信端口的变量等)。

A) auto,printf,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type

27、为判断字符变量c的值是字母时,应采用下述表达式____。 D

【解析】由于单目运算符优先级高于“&&”和“||”运算,所以先计算!a、!b和!c分别为“假”、“假”、“真”,然后是&&运算和“||”运算,原表达式就等价于“假”&&“假” ||“真”,又由于“&&”的优先级高于“||”运算符,所以先计算“假”&&“假”,还是为假,最后是“假”||“真”为真。 A) c<=65||c>=90&&c<=97||c>=122(不是字母的取值范围) B) c>=57&&c<=65|| c<=97&&c>=122(不是字母的取值范围) C) c>=65&&c<=90,c>=97&&c<=122(,号错误,表达式错) D) c>=65&&c<=90||c>=97&&c<=122

28、以下程序执行后sum的值是 C(应为sum未赋初值) A)15 B)14 C)不确定 D)0 main()

{ int i , sum;

for(i=1;i<6;i++) sum=sum+i; printf(\}

529、温度华氏和摄氏的关系是: C=9(F?32)。已知:float C,F;由华氏求摄氏的正确的赋值表达式是____。

B(运算符的次序问题,且*不能省) A) C=5/9(F-32) B) C=5*(F-32)/9 C) C=5/9*(F-32) D) 三个表达式都正确 选择题:

30、当类型长度为2字节且为无符号时,则它的值范围为:D A)0至255 B)-32768至32767 C)-256至255 D)0至65535

31、在C语言的循环语句中for,while,do-while中,有一个_____语句用于直接中断最内层循环。 C A)switch B)continue C)break D)if

5

32、C语言规定:在一个源程序中,main函数的位置:C A)必须在最开始

B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后

33、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符:C A)必须为字母 B)必须为下划线

C)必须为字母或下划线 D)可以是字母,数字和下划线中任一种字符

34、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为:A

A)D B)68 C)不确定的值 D)C 35、以下叙述中不正确的是______ D

A)在不同的函数中可以使用相同名字的变量 B)函数中的形式参数是局部变量

C)在一个函数内定义的变量只在本函数范围内有效

D)在一个函数内的复合语句中定义的变量在本函数范围内有效(返回值就不是)

36、已知:char a;int b;float c;double d;执行语句\;\后,变量c的数据类型是 。C(有争议,还取决于输出格式)

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

37、已知int x=1,y;执行下述语句后变量x的值是____。 B

y=++x>5&&++x<10;(因为机器计算了++x>5后就能判断y的值为0了,所以运行结束,x只自加了一次) A) 1 B) 2 C) 3 D) 4

38、语句 printf(“%d”,(a=2)&&(b= -2);的输出结果是_______ D((a=2)和(b= -2)均不为0,所以结果为1)

A)无输出 B)结果不确定 C)0

D)1

6

39、若执行以下程序时从键盘上输入9,则输出结果是_____ B A) 11 B) 10 C) 9 D) 8 main() { int n;

scanf(\

if(n++<10) printf(\(n=9,假设成立n++后输出n值)*/ else printf(\}

40、一个C语言程序是由______。 A

A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成

41、以下叙述正确的是______ B 【解析】if 是C语言中的保留字,而define不是保留字。用户标识符不允许使用保留字。

A) 可以把define和if定义为用户标识符 (if是关键字)

B) 可以把define定义为用户标识符,但不能把if定义为用户标识符 C) 可以把if定义为用户标识符,但不能把define定义为用户标识符 D) define和if都不能定义为用户标识符

42、函数sqrt(x)的功能是______ D A) 求x的长度 B) 求x的绝对值 C) 求x的平方值 D) 求x的平方根

43、若有以下定义 D(数据类型向上兼容) char a; int b;

float c; double d;

则表达式a*b+d-c值的类型为_______

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

44、下列说法中,正确的是_______C

A) break语句可以用在循环语句中,作用是结束本次循环 B) break语句不能用在switch语句中

C)continue语句用在循环语句中,作用是结束本次循环

D) break语句和continue语句用在循环语句中,都可以直接终止整个循环

选择题:

7

45、以下描述中正确的是:C

A)由于do一while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B) do一while循环由do开始,用while结束,在while(表达式)后面不能写分号 C)在do一while循环体中,一定要有能使while后表达式值变为零(\假\的操作 D)do一while循环中,根据情况可以省略while

46、在c语言中,引用数组元素时,其数组下标的数据类型允许是: C A)整型常量 B)整型表达式 C)整型常量或整型表达式 D)任何类型的表达式 47、以下能对一维数组a进行正确初始化的语句是: C A) int a[10]=(0,0,0,0,0) B)int a[10]={} C) int a[]={0}; D) int a[10]={10*1}; 48、以下对二维数组a的正确说明是: C

A) int a[3][]; B) floatf a(3,4); C) double a[1][4]; D) float a(3)(4);

49、在C语言中,一维数组的定义方式为:,类型说说明符 数组名: A A) [常量表达式] B) [整形表达式] c)[ 整型常量]或[整型表达式] D)[整型常量]

50、对字符数组s赋值,不合法的一个是____。C A) char s[]=\; B) char s[20]={\; C) char s[20];s=\;

D) char s[20]={'B','e','i','j','i','n','g'};

51、对字符数组str赋初值,str不能作为字符串使用的一个是____。D A) char str[]=\; B) char str[]={\;

C) char str[9]={'s','h','a','n','g','h','a','i'};

D) char str[8]={ 's','h','a','n','g','h','a','i'};(因为\\0还占用一个字节,所以8应改为9或数组中少一个字符)

52、字符串\的长度是____。 B(因为\\0还占用一个字节)

8

A) 0 B) 1 C) 2 D) 非法字符串

53、有二维数组定义 int a[4][5]; 下列对该数组的元素引用正确的是________A A) a[0][0] B) a[0,3]

C) a[4][1](一维超限) D)a[1][5] (二维超限)

54、对字符数组s赋值,不合法的一个是____C。 A) char s[]=\; B) char s[20]={\; C) char s[20];s=\;

D) char s[20]={'B','e','i','j','i','n','g'};

55、对字符数组str赋初值,str不能作为字符串使用的一个是____D(少一个字节空间存放\\n)。 A) char str[]=\; B) char str[]={\;

C) char str[9]={'s','h','a','n','g','h','a','i'}; D) char str[8]={ 's','h','a','n','g','h','a','i'}; 56、字符串\的长度是____C。 A) 0 B) 1 C) 2 D) 非法字符串

57、对二维数组的正确说明是____C。(A、B第二维均未标注值,D的书写格式不对) A) int a[][]={1,2,3,4,5,6}; B) int a[2][]={1,2,3,4,5,6}; C) int a[][3]={1,2,3,4,5,6}; D) int a[2,3]={1,2,3,4,5,6}; 选择题:

58、函数调用:strcat(strcpy(str1,str2),str3)的功能是:C A)将串str1复制到串str2中后再连接到串str3之后 B)将串str1连接到串str2之后再复制到串str3之后

C)将串str2复制到串str1中后再将串str3连接到串str1之后 D)将串str2连接到串str1之后再将串str1复制到串str3中

59、以下对C语言函数的有关描述中,正确的是:A

A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B)C函数既可以嵌套定义又可以递归调用 C)函数必须有返回值,否则不能使用函数

D)C程序中有调用关系的所有函数必须放在同一个源程序文件中

9

60、以下叙述中错误的是 :B

A) 在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值 B)在C语言中,外部变量的隐含类别是自动存储类别

C) 在C语言中,函数形参的存储类型是自动(auto)类型的变量

D)在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容

61、在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___。 A) int B) double C) void D)char

62、简单变量做实参时,它相对应形参之间的数据传递方式是__B__。 A) 地址传递 B) 单向值传递

C) 由实参传给形参,再由形参传回给实参 D) 由用户指定传递方式

63、一个C程序的执行是从______。 A

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

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数的结束 C)本程序文件的main开始,到本程序文件的最后一个函数的结束 D)本程序文件的第一个函数开始,到本程序文件的main函数的结束 64、下面函数的功能是____。A a(s1,s2)

char s1[ ],s2[ ];

{ while(s2++==s1++) ; }

A) 字符串比较 B) 字符串复制 C) 字符串连接 D) 字符串反向 65、以下所列的各函数首部中,正确的是 C A) void play(var :Integer,var b:Integer) B) void play(int a,b)

C) void play(int a,int b)

D) Sub play(a as integer,b as integer)

66、对函数形参的说明有错误的是____。 C(形参中数组不应规定元素个数,它是由系统动态分配空间的) A) int a(float x[],int n) B) int a(float *x,int n) C) int a(float x[10],int n) D) int a(float x,int n)

67、已知int x=12,y=3;执行下述程序后,变量x的值是____。D(循环到y=0时,除法有错误,不能进行下去) do

10

{ x/=y--; }while(x>y);

A) 1 B) 2 C) 3 D) 程序运行有错误

68、在C语言中,函数的数据类型是指____A。

A) 函数返回值的数据类型 B) 函数形参的数据类型

C) 调用该函数时的实参的数据类型 D) 任意指定的数据类型

69、如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为____A。

A) 静态变量 B) 动态变量 C) 外部变量 D) 内部变量

70、若用数组名作为函数调用时的实参,则实际上传递给形参的是 。A A) 数组首地址 B) 数组的第一个元素值

C) 数组中全部元素的值 D) 数组元素的个数 71、已知如下定义的函数: fun1(int a)

{ printf(\; }

则该函数的数据类型是__B__。

A) 与参数a的类型相同 B) void型 C) 没有返回值 D) 无法确定

72、以下程序的输出结果是 C(自己运行一下) A) 0 B) 29 C) 31 D) 无定值 fun(int x, int y, int z) { z=x*x+y*y; } main()

{ int a=31; fun(5,2,a);

printf(\}

选择题:

73、C语言中有如下定义:B char str[4]=”ABC”; char *ptr;

执行了语句ptr=str后,*(ptr+3)的值是: A) 不确定 B) ’\\0’ C) ’C’ D) 字符的地址

11

74、下列各语句行中,能正确进行赋字符串操作的是:C A)char st[4][5]={“ABCDE”};

B)char s[5]={‘A’,’B’,’C’,’D’,’E’}; C)char *s; s=”ABCED”; D)char *s; scanf(“%s”,s);

75、对于类型相同的指针变量,不能进行哪种运算?A A)+ B)- C)= D)= =

76、若有以下说明和语句,且0<=i<10,则下面哪个是对数组元素地址的正确表示?(D) int a[]={1,2,3,4,5,6,7,8,9,0}, *p,i; p=a;

A)&(a+1) B)a++ C)&p D)&p[i]

77、已知有以下的说明,那么执行语句a=p+2;后, a[0]的值等于多少?(D) float a[3]={1.2,45.6,-23.0}; float *p=a;

A)1.2 B)45.6

C)-23.0 D) 语句有错

78、下列程序的输出结果是———C

A) 非法 B)a[4]的地址 C)5 D)3 main()

{ char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf(\}

79、已知:char s[100];int i;则引用数组元素的错误的形式是 。——A(数组名[]中应为常量表达式,不能为变量)

A) s[i+10] B) *(s+i) C) *(i+s) D) *((s++)+i)

80、已知:char s[10], *p=s,则在下列语句中,错误的语句是 。B(指针变量与地址相加无意义) A) p=s+5; B) s=p+s; C) s[2]=p[4]; D) *p=s[0];

81、设有说明int (*p)[4];其中的标识符p是 。——C(p为指向含4个元素的一维整型数组的指针变量)

12

A) 4个指向整型变量的指针变量 B) 指向4个整型变量的函数指针

C) 一个指向具有4个整型元素的一维数组的指针

D) 具有4个指向整型变量的指针元素的一维指针数组 82、下面程序的输出结果是——A(运行一下) A) 0 B) 1 C) 10 D) 9 main()

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

printf(\

83、已知:int a, *y=&a;则下列函数调用中错误的是 D A) scanf(\; B) scanf(\; C) printf(\; D) printf(\;

84、说明语句\;\的含义是 :C(p为指向函数的指针变量,该函数返回整型数) A) p是一个指向一维数组的指针变量 B) p是指针变量,指向一个整型数据

C) p是一个指向函数的指针,该函数的返回值是一个整型 D) 以上都不对

85、函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是 。D(运行一下)

#include func (int *x, int *y)

{ *x=*x+*y;*y=*x-*y;*x=*x-*y;} main() { int a,b;

int *pointer_1,*pointer_2; scanf(\ pointer_1=&a; pointer_2=&b; if(a

}

A) funa (int *x, int *y) B) funb (int x, int y) { int *p; { int t;

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

C) func (int *x, int *y) D) func (int *x, int *y)

13

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

86、已知:int x[ ]={ 1,3,5,7,9,11 },*ptr=x;则能够正确引用数组元素的语句是 。B A) x (地址名) B) *(ptr--) C) x[6] (超出范围) D) *(--ptr) (超出范围)

14

本文来源:https://www.bwwdw.com/article/8cr6.html

Top