二级错题(自动保存的)

2020-04-17 05:58

〓1.在面向对象方法中,不属于\对象\基本特点的是( )。

A)一致性 B)分类性 C)多态性 D)标识唯一性

【2.设有定义:int x=11,y=12,z=0;,以下表达式值不等于12的是( )。 A)z=(x==y) B)(z=x,y) C)z=(x,y) D)(z,x,y)

考查运算符与表达式,A)中先计算(x==y),为0,将0赋值给z,表达式值为0,A)错;选项B)、C)、D)均涉及到逗号表达式,整个逗号表达式的值为最后一个表达式的值,所以均为12。选A)。

〓3.有以下程序段 #include int j; float y;

char name[50];

scanf(\

当执行上述程序段,从键盘上输入55566 7777abc 后,y的值为( )。

函数scanf()输入字符串时默认空格为间隔符,格式控制符若为\表示控制输入语句的宽度为2,程序中输入为55566 7777abc时,只把55赋予变量x,而把566赋予变量y,7777abc赋予变量name,所以答案选A)。

〓4.以下不能输出小写字母a的选项是( )。

A)printf(\ B)printf(\ C)putchar(97); D)putchar('a');

选项A)中输出语句的输出项和格式控制符不相符,应写作\a′);\,答案选A)。

〓5.以下程序段中的变量已正确定义 for( i=0; i<4; i++,i++ )

for( k=1; k<3; k++ ); printf(\该程序段的输出结果是( )。

A)* B)**** C)** D)********

考查循环嵌套。循环嵌套执行次数为 外层循环次数*内层循环次数。但是本题中循环次数与输出结果没有关系,两层循环之后只是执行了一个空语句 ;,然后输出一个′* ′。故而答案选A)。

〓6.以下叙述中正确的是( )。

A)调用函数时,函数名必须与被调用的函数名完全一致 B)函数调用时,不必区分函数名称的大小写 C)函数名允许用数字开头

D)在函数体中只能出现一次return语句

调用函数的时候只有保证调用语句的函数名和被调函数的函数名、参数列表一致才能保证调用的正确性,A)正确。C语言对大小写敏感,选项B)错。用户自定义的函数名需要遵循用户标识符的命名规则,由字母、数字、下划线组成并且第一个字符不能为数字,选项C)错。一个函数每次只能使用一个return语句,但是该函数体中可以有多个返回点,也就是有多条return语句,每次只从其中一点返回,选项D)错。答案选A)。

〓7.设有某函数的说明为 int* func(int a[10], int n);

则下列叙述中,正确的是( )。

A)说明中的a[10]写成a[]或*a效果完全一样 B)形参a对应的实参只能是数组名

C)func的函数体中不能对a进行移动指针(如a++)的操作 D)只有指向10个整数内存单元的指针,才能作为实参传给a

考查数组名作为函数参数。数组名作为函数参数时,只传递数组的首地址而不检查形参数组的长度,所以形参表中可以不给出形参数组的长度,形参数组和实参数组长度也可以不同,选项D)错; a[10]、a[]、*a做形参都是接受实参数组首地址,效果一样,A)正确。传递给形参的实参可以是数组名,还可以是指向该数组的指针变量,选项B)错。数组名可以看做一个指针常量,对其进行自加自减运算相当于指针变量的自加自减,选项C)错。答案选A)。

〓8.有以下程序 #include void fun(char **p) {

++p;

printf(\}

main() {

char *a[] = {\ fun(a); }

程序的运行结果是( )

A)Afternoon B)fternoon C)Morning D)orning

二级指针p访问字符串数组时,++p表示指针p指向下一个字符串的首地址,所以输出的结果为第二个字符串的内容,即答案选A)。

〓9.以下选项中,能正确进行字符串赋值的是( )。 A)char *s = \

B)char s[5] = { 'A', 'B', 'C', 'D', 'E' }; C)char s[4][5] = { \D)char *s ; gets( s );

用字符数组存放字符串的时候,C语言编译系统会自动在其后面添加上结束标识符′\\0′,所以数组维数一定要比字符串长度大,选项B)、C)错误;函数gets(s)是将输入存放到s指向的空间中,指针s在使用前没有指定空间,选项D)错误;可以将一个字符串常量直接赋值给一个字符指针,选项A)正确。答案选A)。

〓10.#include #define F(x) 2.84+x

#define PR(a) printf(\#define PRINT(a) PR(a);putchar('\\n') main() {

PRINT( F(5)*2 ); }

程序运行后的输出结果是( )。

宏替换是使用宏名代替一个字符串,是一种机械、简单的置换,所以语句\;\可用字符串\\\n′);\替换,而语句\可以用字符串\,即为\,所以输出结果为12,答案选A)。

〓11.有以下程序 #include

typedef struct { int b, p; } A;

void f(A c) /* 注意:c是结构变量名 */ { int j;

c.b += 1; c.p+=2; }

main() { int i;

A a={1,2}; f(a);

printf(\}

程序运行后的输出结果是( )。

A)1,2 B)2,4 C)1,4 D)2,3

考查结构体变量作为函数实参整体传递,也是一种值传参,形参的变化不能影响到实参,所以调用函数f(a)对a中的数据没有影响,输出结果为1,2,答案选A)。

〓12下面对对象概念描述正确的是( )。

A)对象间的通信靠消息传递 B)对象是名字和方法的封装体 C)任何对象必须有继承性 D)对象的多态性是指一个对象有多个操作

消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。所以答案选择A)。

〓13.有以下程序 #include #define PT 3.5 ;

#define S(x) PT*x*x ; main()

{ int a=1, b=2; printf(\

程序运行后的输出结果是( )。

A)程序有错无输出结果 B)31.5 C)7.5 D)14.0 宏定义不是C语句,结尾不加\,所以该程序会出现编译错误,答案选A)。

〓14.以下关于函数的叙述中正确的是( )。

A)函数形参的类型与返回值的类型无关 B)函数必须要有形参 C)函数必须要有返回值 D)函数调用必须传递实参

函数分为有参函数和无参函数,所以一个函数定义时可以有形参也可以没有形参,调用函数时必须和被调函数的参数列表保持一致,所以选项B)、D)错误;函数调用时可以没有返回值,此时函数的类型用void标识,选项C)错误;选项A)描述正确,答案选A)。

〓15.有以下程序

#include

void fun( int a, int b ) { int t;

t=a; a=b; b=t; }

main()

{ int c[10]={1,2,3,4,5,6,7,8,9,0}, i;

for (i=0; i<10; i+=2) fun(c[i], c[i+1]); for (i=0;i<10; i++) printf(\ printf(\ }

程序的运行结果是( )。

A)1,2,3,4,5,6,7,8,9,0, B)2,1,4,3,6,5,8,7,0,9, C)0,9,8,7,6,5,4,3,2,1, D)0,1,2,3,4,5,6,7,8,9,

函数fun()属于值传参,形参的变化不会影响实参,所以函数调用结束后,数组c没有任何变化,输出结果为选项A)。


二级错题(自动保存的).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:开题报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: