您的当前位置:首页正文

C语言选择题题库2

2021-09-04 来源:好走旅游网


《卷6》

一、 填空

1、C语言的三种基本结构是__顺序__结构、选择结构、循环结构.

2、函数调用时的实参和形参之间的数据是单向的__值__传递.

3、已知a=13,b=6, a/b的十进制数值为__2__

4、执行语句char str[81]=\"abcdef\";后,字符串str结束标志存储在str[__6__]

0、1、2、3、4、5、6--\\0

5、为了避免嵌套条件语句的二义性,C语言规定else与其前面最近的__if__语句配对.

6、已知a=13,b=6, a^b的十进制数值为__11__

7、执行下列语句后,*(p+1)的值是__b__

char s[3]=\"ab\

p=s; ---首地址

8、已知 i=5;写出语句 i+=012; 执行后整型变量 i 的十进制值是__15__

9、已知 i=5.6;写出语句 a=(int)i; 执行后变量 i 的值是__5.6__ a=5 i不影响

10、设 x 的值为15,n 的值为2,则表达式 x%=(n+3) 运算后 x 的值是__0__

二、 判断

1、在Turbo C中,此定义和语句是合法的:

enum aa{ a=5,b,c}bb;

bb=(enum aa)5;

Y

2、若有int ⅰ=10, j=0;则执行完语句

if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11

N

3、进行宏定义时,宏名必须使用大写字母表示

N

4、7&3+12的值是15。

N

5、a=(b=4)+(c=6) 是一个合法的赋值表达式。

Y

6、char c[]=\"Very Good\"; 是一个合法的为字符串数组赋值的语句。

Y

7、int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0。

Y

8、一个include 命令可以指定多个被包含的文件。

N

9、若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,

所以此宏定义是错误的

N

10、若有定义和语句:

int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;

for(i=0;i<3;i++) sum+=a[i][2-i];则sum=21.

Y

三、 单项选择

1、以下程序的输出结果是(B)。

main()

{ char s[]=\"123\ 1

p=s; 2

printf(\"%c%c%c\\n\ 3

}

A:123 B:321

C:213 D:312

2、a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是(C)。

A:a*b/a*b==1

B:a/b*b/a==1

C:a/b*b+a%b==a

D:a/b*b==a

3、以下描述中,正确的是(C)。

A:预处理是指完成宏替换和文件包含中指定的文件的调用

B:预处理指令只能位于C源文件的开始

C:C源程序中凡是行首以#标识的控制行都是预处理指令

D:预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备

4、下列程序的输出为(D)。

main()

{ int y=10;

while(y--);

printf(\"y=%d\\n\

}

A:y=0 B:while构成无限循环

C:y=1 D:y=-1

5、下列运算符中,不属于关系运算符的是(D)。

A:<

B:>

C:>=

D:!

6、设有如下定义: struct sk {int a; float b;} data,*p;

若要使p指向data中的a域,正确的赋值语句是(A)。

A:p=(struct sk*)&data.a;

B:p=(struct sk*) data.a;

C:p=&data.a;

D:*p=data.a;

7、若有以下程序段:int a=3,b=4; a=a^b;b=b^a;a=a^b;则执行以上语句后,a和b的值分别是(B)。

A:a=3,b=4

B:a=4,b=3

C:a=4,b=4

D:a=3,b=3

8、以下程序段的执行结果是(C)。

double x;x=218.82631; printf(\"%-6.2e\\n\

A:输出格式描述符的域宽不够,不能输出

B:输出为21.38e+01

C:输出为2.2e+02

D:输出为-2.14e2

9、若有int a[][]={{1,2},{3,4}}; 则*(a+1),*(*a+1)的含义分别为(B)。

A:非法,2

B:&a[1][0],2

C:&a[0][1],3

D:a[0][0],4

10、C语言中,文件由(D)。

A:记录组成

B:由数据行组成

C:由数据块组成

D:由字符(字节)序列组成

一、 填空

1、执行下列语句后,z 的值是__30__

int x=4,y=25,z=5; z=y/x*z;

2、已知a=13,b=6, a&&b的十进制数值为__1__

3、若所用变量均已正确定义,则执行下面程序段后的值是__YESYES__

for(i=0 ; i<2 ; i++ ) printf(\"YES\"); printf(\"\\n\");

4、执行语句char str[81]=\"abcdef\";后,字符串str结束标志存储在str[__6__]

5、C语言表达式!(3<6)||(4<9)的值是__1__

6、已知 i=5;写出语句 a=--i; 执行后整型变量 a 的值是__4__

7、已知a=13,b=6, a/b的十进制数值为__2__

8、若有以下数组a,数组元素:a[0]~a[9],其值为

9 4 12 8 2 10 7 5 1 3

该数组中下标最大的元素的值是__2__

9、已知a=13,b=6, a|b的十进制数值为__15__

10、如果函数不要求带回值,可用__void__来定义函数返回值为空.

二、 判断

1、在Turbo C中,整型数据在内存中占2个字节。

N

2、若有说明int c;则while(c=getchar());是正确的C语句。

Y

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

N

4、结构体类型只有一种。

N

5、C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的

Y

6、函数strlen(\"ASDFG\\n\")的值是7。

N

7、7&3+12的值是15。

N

8、进行宏定义时,宏名必须使用大写字母表示。

N

9、若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为6。

Y

10、char c[]=\"Very Good\"; 是一个合法的为字符串数组赋值的语句。

Y

三、单项选择

1、具有相同类型的指针变量p与数组a,不能进行的操作是(D)。

A:p=a;

B:*p=a[0];

C:p=&a[0];

D:p=&a;

2、执行下列语句后的输出为(A)。

int j=-1;

if(j<=1) printf(\"****\\n\");

else printf(\"%%%%\\n\");

A:****

B:%%%%

C:%%%%c

D:有错,执行不正确

3、以下程序的输出结果是(D)。 main()

{int i,j,k,a=3,b=2;

i=(--a==b++)?--a:++b;

j=a++;k=b;

= =!

printf(\"i=%d,j=%d,k=%d\\n\

}

A:i=2,j=1,k=3

B:i=1,j=1,k=2

C:i=4,j=2,k=4

D:i=1,j=1,k=3

4、在C语言中,为了结束由while语句构成的循环,while后一对圆括号中表达式的值应该为(A)。

A:0 B:1

C:True D:非0

5、以下运算符中,优先级最高的运算符是(C)。

A:*=

B:>=

C:(类型)

D:+

6、在C语言的函数中,下列正确的说法是(C)。

A:必须有形参

B:形参必须是变量名

C:可以有也可以没有形参

D:数组名不能作形参

7、若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),

则以下程序段的执行结果是(C)。

ch='a'; k=12; printf(\"%x,%o,\

A:因变量类型与格式描述符的类型不匹配,输出无定值

B:输出项与格式描述符个数不符,输出为零值或不定值

C:61,141,k=%d

D:61,141,k=%12

8、C语言程序中,当调用函数时(A)。

A:实参和虚参各占一个独立的存储单元

B:实参和虚参可以共用存储单元

C:可以由用户指定是否共用存储单元

D:计算机系统自动确定是否共用存储单元

9、下列定义不正确的是(C)。

A:#define PI 3.141592

B:#define S 345

C:int max(x,y); int x,y; { }

D:static char c;

10、关于指针概念说法不正确的是(D)。

A:一个指针变量只能指向同一类型变量

B:一个变量的地址称为该变量的指针

C:只有同一类型变量的地址才能放到指向该类型变量的指针变量之中

D:指针变量可以由整数赋,不能用浮点赋

一、填空

1、若有以下数组a,数组元素:a[0]~a[9],其值为

9 4 12 8 2 10 7 5 1 3

该数组中下标最大的元素的值是__3__

2、表达式 i++ 相当于表达式____

3、下面程序段的输出结果是____

int a=12;a=a&052;printf(\"%d\\n\

4、已知a=13,b=6, a>>2的十进制数值为____

5、C程序在执行过程中,不检查数组下标是否__越界__

6、已知a=13,b=6, a|b的十进制数值为____

7、复制字符串的库函数是____,只写函数名即可

8、getchar()函数只能接收一个____

9、若有以下数组a,数组元素:a[0]~a[9],其值为

9 4 12 8 2 10 7 5 1 3

该数组可用的最小下标值是____

10、合并字符串的库函数是____,只写函数名即可.

二、判断

1、进行宏定义时,宏名必须使用大写字母表示。

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

3、通过return语句,函数可以带回一个或一个以上的返回值。

4、关系运算符<= 与 == 的优先级相同。

5、char c[]=\"Very Good\"; 是一个合法的为字符串数组赋值的语句。

6、如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准

7、若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。

8、char *p=\"girl\";的含义是定义字符型指针变量p,p的值是字符串\"girl\"。

9、int i=20;switch(i/10){case 2:printf(\"A\");

case 1:printf(\"B\");}的输出结果为A

10、int i,*p=&i;是正确的C说明。

三、单项选择

1、若有下列定义,则对a数组元素地址的正确引用是()。

int a[5],*p=a;

A:*(p+5)

B:*p+2

C:*(a+2)

D:*&a[5]

2、C语言中要求对变量作强制定义的主要理由是(D)。

A:便于移植

B:便于写文件

C:便于编辑预处理程序的处理

D:便于确定类型和分配空间

3、下列数组说明中,正确的是(A)。

A:static char str[]=\"China\";

B:static char str[]; str=\"China\";

C:static char str1[5],str2[]={\"China\

D:static char str1[],str2[];str2={\"China\

4、fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是(C)。

A:字符串读入后不会自动加入'\\0'

B:fp是file类型的指针

C:fgets函数将从文件中最多读入n-1个字符

D:fgets函数将从文件中最多读入n个字符

5、以下运算符中,优先级最高的运算符是()。

A:*= B:>=

C:(类型) D:+

6、在下列程序段中,枚举变量c1,c2的值依次是()。

enum color {red,yellow,blue=4,green,white} c1,c2;

c1=yellow;c2=white;

printf(\"%d,%d\\n\

A:1,6

B:2,5

C:1,4

D:2,6

7、在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的

表达式是(C)。

A:(!E==0)

B:(E>0||E<0)

C:(E==0)

D:(E!=0)

8、以下程序的输出结果为()。

main()

{int i=010,j=10;

printf(\"%d,%d\\n\

}

A:11,10

B:9,10

C:010,9

D:10,9

9、设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。

A:552

B:144

C:264

D:-264

10、若给定条件表达式(M)?(a++):(a--),则其中表达式M()。

A:和(M==0)等价

B:和(M==1)等价

C:和(M!=0)等价

D:和(M!=1)等价

一、填空

1、若有以下数组a,数组元素:a[0]~a[9],其值为

9 4 12 8 2 10 7 5 1 3

该数组中下标最大的元素的值是

2、表达式 i++ 相当于表达式

3、下面程序段的输出结果是【1】.

int a=12;a=a&052;printf(\"%d\\n\

4、已知a=13,b=6, a>>2的十进制数值为【1】.

5、C程序在执行过程中,不检查数组下标是否【1】.

6、已知a=13,b=6, a|b的十进制数值为【1】.

7、复制字符串的库函数是【1】,只写函数名即可.

8、getchar()函数只能接收一个【1】.

9、若有以下数组a,数组元素:a[0]~a[9],其值为

9 4 12 8 2 10 7 5 1 3

该数组可用的最小下标值是

10、合并字符串的库函数是【1】,只写函数名即可.

二、判断

1、进行宏定义时,宏名必须使用大写字母表示。

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

3、通过return语句,函数可以带回一个或一个以上的返回值。

4、关系运算符<= 与 == 的优先级相同。

5、char c[]=\"Very Good\"; 是一个合法的为字符串数组赋值的语句。

6、如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准

7、若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。

8、char *p=\"girl\";的含义是定义字符型指针变量p,p的值是字符串\"girl\"。

9、int i=20;switch(i/10){case 2:printf(\"A\");

case 1:printf(\"B\");}的输出结果为A

10、int i,*p=&i;是正确的C说明。

三、单项选择

1、若有下列定义,则对a数组元素地址的正确引用是()。

int a[5],*p=a;

A:*(p+5)

B:*p+2

C:*(a+2)

D:*&a[5]

2、C语言中要求对变量作强制定义的主要理由是()。

A:便于移植

B:便于写文件

C:便于编辑预处理程序的处理

D:便于确定类型和分配空间

3、下列数组说明中,正确的是()。

A:static char str[]=\"China\";

B:static char str[]; str=\"China\";

C:static char str1[5],str2[]={\"China\

D:static char str1[],str2[];str2={\"China\

4、fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()。

A:字符串读入后不会自动加入'\\0'

B:fp是file类型的指针

C:fgets函数将从文件中最多读入n-1个字符

D:fgets函数将从文件中最多读入n个字符

5、以下运算符中,优先级最高的运算符是()。

A:*=

B:>=

C:(类型)

D:+

6、在下列程序段中,枚举变量c1,c2的值依次是()。

enum color {red,yellow,blue=4,green,white} c1,c2;

c1=yellow;c2=white;

printf(\"%d,%d\\n\

A:1,6 B:2,5

C:1,4 D:2,6

7、在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的

表达式是()。

A:(!E==0)

B:(E>0||E<0)

C:(E==0)

D:(E!=0)

8、以下程序的输出结果为()。

main()

{int i=010,j=10;

printf(\"%d,%d\\n\

}

A:11,10

B:9,10

C:010,9

D:10,9

9、设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。

A:552

B:144

C:264

D:-264

10、若给定条件表达式(M)?(a++):(a--),则其中表达式M()。

A:和(M==0)等价

B:和(M==1)等价

C:和(M!=0)等价

D:和(M!=1)等价

一、填空

1、C语言中调用____函数来打开文件.

2、结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体____,再说明结构体变量.

3、若有以下数组a,数组元素:a[0]~a[9],其值为

9 4 12 8 2 10 7 5 1 3

该数组可用的最小下标值是____

4、已知 i=5;写出语句 i+=012; 执行后整型变量 i 的十进制值是____

5、预处理命令行都必须以____号开始.

6、若有以下数组a,数组元素:a[0]~a[9],其值为

9 4 12 8 2 10 7 5 1 3

该数组中下标最大的元素的值是____

7、调用 fopen 函数打开一文本文件,在\"使用方式\"这一项中,为追加而打开需填入____

8、输入整型变量a的值.

int a; scanf(\"%d\

9、static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};其中a[1][2]的值为____

10、字符串比较的库函数是____,只写函数名即可.

二、判断

1、如果想使一个数组中全部元素的值为0,可以写成

int a[10]={0*10};

2、用fopen(\"file\打开的文件\"file\"可以进行修改。

3、若有int ⅰ=10, j=0;则执行完语句

if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11。

4、结构体类型只有一种。

5、关系运算符<= 与 == 的优先级相同。

6、int i,*p=&i;是正确的C说明。

7、a=(b=4)+(c=6) 是一个合法的赋值表达式。

8、共同体变量所占的内存长度等于最长的成员的长度。

9、语句 printf(\"%f%%\输出为 0.333333。

10、C语言中只能逐个引用数组元素而不能一次引用整个数组。

三、单项选择

1、以下标识符中,不能作为合法的C用户定义标识符的是()。

A:answer

B:to

C:signed

D:_if

2、以下程序段的输出结果是()。

char *alp[]={\"ABC\

A:A

B:B

C:D

D:DEF

3、关于指针概念说法不正确的是()。

A:一个指针变量只能指向同一类型变量

B:一个变量的地址称为该变量的指针

C:只有同一类型变量的地址才能放到指向该类型变量的指针变量之中

D:指针变量可以由整数赋,不能用浮点赋

4、C语言程序中,当调用函数时()。

A:实参和虚参各占一个独立的存储单元

B:实参和虚参可以共用存储单元

C:可以由用户指定是否共用存储单元

D:计算机系统自动确定是否共用存储单元

5、以下运算符中,优先级最高的运算符是()。

A:?: B:++

C:&& D:,

6、C语言中,文件由()。

A:记录组成

B:由数据行组成

C:由数据块组成

D:由字符(字节)序列组成

7、以下程序的输出结果为()。

main()

{int i=010,j=10;

printf(\"%d,%d\\n\

}

A:11,10

B:9,10

C:010,9

D:10,9

8、若有下列定义,则对a数组元素地址的正确引用是()。

int a[5],*p=a;

A:&a[5]

B:p+2

C:a++

D:&a

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

main()

{

printf(\"%d\\n\

}

A:0

B:变量无定义

C:-1

D:1

10、C 语言中以下几种运算符的优先次序()的排列是正确的。

A:由高到低为:!,&&,||,算术运算符,赋值运算符

B:由高到低为:!,算术运算符,关系运算符,&&,||,赋值运算符

C:由高到低为:算术运算符,关系运算符,赋值运算符,!,&&,||

D:由高到低为:算术运算符,关系运算符,!,&&,||,赋值运算符

因篇幅问题不能全部显示,请点此查看更多更全内容