PTA期末错题集3

单选2

1.C/C++过程化程序设计的三种基本程序控制结构是( ) 。A 

A.顺序结构、选择结构、循环结构

B.输入、处理、输出

C.for、while、do…while

D.复合语句、基本语句、空语句

2.定义 char a; 则以下赋值语句不恰当的是: B

A. a = 65

B. a = "A"

C. a = '\65'

D. a = 6 + 'A'

解析:在C语言中,使用单引号表示字符类型变量,而使用双引号表示字符串。

3.下列运算符中优先级最低的是__.A

A.II

B.>=

C.!=

D.~

解析:关系运算符(>=)>关系运算符(!=)>操作运算符(~取反)>  逻辑或运算符(||)

4.逻辑运算符两侧运算对象的数据类型( )。D

A.只能是 0 或 1

B.只能是 0 或非 0 正数

C.只能是整型或字符型的数据

D.可以是任何类型的数据

5.在基类型相同的两个指针变量之间,不能进行的运算是( )。C

A.<

B.=

C.+

D.–

解析:两个同类型的指针间允许比较大小(按实际内存的高低位)和赋值;同类型指针变量相减可得相隔的同类型元素个数(应用于数组);因两个指针相加无意义,规定不允许相加。

6.下述对C语言字符数组的描述中错误的是()。C

A.字符数组可以存放字符串

B.字符数组中的字符串可以整体输入、输出

C.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D.不可以用关系运算符对字符数组中的字符串进行比较

解析:“=”对字符数组初始化;char a[]="abc" or char a[]={"abc"}存放;gets(ch)整体输入puts(ch)整体输出;数组名退化为指针,关系运算符比较指针所指向的内存地址的大小,与比较字符串的大小无关。

7.若x为浮点型,则表达式x=10/4为( )。B

A.2.5

B.2.0

C.2

D.3

解析:float((int)10/(int)4)=float(2)=2.0

8.以下正确的说法是()。B

A.实参与其对应的形参共同占用一个存储单元

B.实参与其对应的形参各占用独立的存储单元

C.只有当实参与其对应的形参同名时才占用一个共同的存储单元

D.形参是虚拟的,不占用内存单元

9.以下说法正确的是:D

A.一个C语言源文件(.c文件)必须包含main函数

B.一个C语言源文件(.c文件)可以包含两个以上main函数

C.C语言头文件(.h文件)和源文件(.c文件)都可以进行编译

D.在一个可以正确执行的C语言程序中,一个C语言函数的声明(原型)可以出现任意多次

解析:一个函数的声明可以出现很多次;一个c的项目可以包含很多.c文件,其中有且只能有一个有main函数 ;.c文件无main函数时无法编译。

10.若aint类型,且其值为3,则执行完表达式a+= a-= a*a后,a的值是__。C

A.-3

B.9

C.-12

D.6

解析:a-=a*a=-6,a+=a=(-6)+(-6)=-12

11.有以下定义:char x[ ]="abcdefg"; char y[ ]={'a', 'b', 'c', 'd', 'e', 'f', 'g'}; 则正确的叙述为()。C

A.数组x和数组y等价

B.数组x和数组y的长度相同

C.数组x的长度大于数组y的长度

D.数组x的长度小于数组y的长度

解析:在C语言中,字符串以'\0'作为结束符,len(x[])=7+1=8,len(y[])=7。

e.g.设有数组定义:char array [ ]="China"; 则数组 array所占的空间为()。6个字节

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

A.int a[10]=(0,0,0,0,0)

B.int a[2]={0,1,2}

C.int a[]={0}

D.int a[]={{}}

解析:A{0,0,0,0,0};B未初始化;D初始化错误

ps:int a[10]={10*a}; 错误,数组a未定义无法参与运算。在Java中,数组初始化与C/C++类似,nt a[10]={ }和int a[]={0}同样可行。主要区别是Java不需要预先定义数组长度,都是根据初始化元素推断长度。

13.以下正确的函数定义形式是()。A

A.double fun(int x, int y)

B.double fun(int x ; int y)

C.double fun(int x, int y);

D.double fun(int x, y)

14.如果有定义:int m, n = 5, *p = &m; 与m = n 等价的语句是 () 。B

A.m = *p;

B.*p = *&n;

C.m = &n;

D.m = **p;

解析:int *p=&m定义指针变量p的值是m的地址,*p的值为m,*&n表示值为n。

若有int *p, a=4; 和 p=&a; 下面( )均代表地址。D

A.&*a, &a, *p

B.*&p, *p, &a

C.a, p, *&a

D.&a, &*p, p

解析:&*p=&a(*&p=*(p的地址))->a的地址;*&a->a所在地址的值;&地址,*值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值