二级错题(自动保存的)(2)

2020-04-17 05:58

〓16.有以下程序 #include #include main() {

char s[]=\

printf(\}

程序运行后的输出结果是( )。 A)5 B)7 C)12 D)14

strcpy(s,\将字符串\覆盖s中的字符串,之后s[]={′C′,′h′,′i′,′n′,′a′,′\\0′,′g′,′\\0′},strlen()计算的是字符串的实际长度(不包含结束标识符),即统计的是第一个′\\0′前字符个数,所以输出结果为5,答案选A)。

〓17.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下

说法错误的是( )。

A)一条C语句对应转换成一条机器指令 B)一条C语句可能会被转换成多条机器指令 C)一条C语句可能会被转换成零条机器指令

D)某种类型和格式的C语句被转换成机器指令的条数是固定的

每条可执行的C语句会依据其类型和格式转换成一条或者多条机器指令,非可执行语句:注释语句或者宏定义语句不会被转换成机器指令,而且相同类型和格式的C语句转换成机器指令的条数是相同的,所以答案选A)。

〓18.形参a对应的实参只能是数组名,错,传递给形参的实参可以是数组名,还可以是指向该数组的指针变量,指针变量本身存储的是其指向的变

量的地址值,不需要使用求地址运算符(&)来获得地址

〓19.若有以下程序 #include main()

{ int i,j=0;

char a[]=\ for (i=0; a[i]; i++)

if (a[i] != ' ') a[j++]=a[i]; a[j]='\\0';

printf(\}

则程序的输出结果是( )。

A)Howareyou! B)Howareyou C)Hay! D)How are you!

for循环将非空格的字符放置到了数组前部(见语句\(a[i] != ′ ′) a[j++]=a[i];\),然后在调整的非空格字符后面添加了字符串结束标识符,输出的即是去除了空格的字符串,答案选A)。

〓20.有如下程序 #include int * sum(int data) {

static int init = 0; init += data; return &init; }

main() {

int i, *p;

for (i=1; i<=4; i++) sum(i); p = sum(0);

printf(\}

程序运行后的输出结果是( )。 A)10 B)0 C)1 D)15

静态变量在定义时的初始化只运行一次,并且其值在程序运行过程中一直存在,所以函数sum()的作用是用静态变量init累加所有的调用sum()函数时传入的参数值。for循环中传入的参数为1,2,3,4,每次的计算结果为1,3,6,10。再次调用函数sun(0)时返回值为10,答案选A)。

〓21.有以下程序 #include #include

void fun( double *p1,double *p2,double *s) { s = (double *)calloc( 1,sizeof(double) ); *s = *p1 + *( p2+1 ); }

main()

{ double a[2] = { 1.1, 2.2 }, b[2] = { 10.0, 20.0 }, *s=a; fun( a, b, s );

printf( \}

程序的输出结果是( )。

A) 1.10 B)11.10 C)12.10 D)21.10

函数fun()的功能是用calloc()函数重新分配了1个长度为sizeof(double)的连续空间并把返回的内存地址赋值给s,之后对往新分配的内存中写入数据。由于函数传递过程中形参指针指向的变化不能影响到实参指针的指向,所以函数fun()并不能改变s的指向,*s与a[0]等价,格式输出的结果为 1.10,答案选A)。

〓22.关于C语言的符号常量,以下叙述中正确的是( )。

A)符号常量是指在程序中通过宏定义用一个符号名来代表一个常量

B)符号常量的符号名是标识符,但必须大写

C)符号常量在整个程序中其值都不能再被重新定义 D)符号常量的符号名必须是常量 C语言中,可以用一个用户自定义标识符来表示一个常量,称为符号常量,符号常量的标识符习惯大写,但是也可以用小写字符,选项B)错误;宏定义可以放在程序中的任意位置,所以可以在程序中间重新定义相同符号常量的值,选项C)错误;符号常量的符号名可以为一个常量或者字符串,选项D)错误;由此答案选A

〓23.设有定义:int a,b; float x,y; ,则以下选项中对语句所作的注释叙述错误的是( )。 A)scanf(\多余的格式符%f完全不起作用 */

B)scanf(\多余的输入项不能获得输入数据 */ C)scanf(\输入项与格式符类型不匹配,变量b和x得不到正确的输入数据 */

D)scanf(\格式串中允许加入格式符以外的字符串 */

考查scanf函数的格式输入,\格式控制串\中允许有非格式字符,只不过输入时也要输入该非格式字符,选项D)正确。输入的数据与输出类型不一致时,编译依然能通过,只不过输出结果有可能不正确,选项C)正确。输入多个数据时,系统等待接收的数据个数与\格式控制串\中的格式控制符的个数一致,然后把接收的数据依次赋值给后面的变量,若变量个数多余格式控制符个数,则多余的变量不获取数据,若少于,系统会在接收完额定数目的数据之后报错,答案选A)。

〓24.有以下程序 #include

void fun(char *t , char *s)

{ while(*t!=0) t++;

while( (*t++ = *s++ )!=0 ) ; }

main()

{ char ss[10]=\

fun(ss, aa); printf(\}

程序的运行结果是( )。

A)accbbxxyy,bbxxyy B)acc,bbxxyy C)accxxyy,bbxxyy D)accxyy,bbxxyy

函数fun()中第一个while循环将指针t指向了当前字符串的尾部,而第二个while循环则是将s指向的字符串赋值给指针t指向的后续空间,所以函数fun()的功能是把s指向的字符串复制到t指向的字符串尾部,所以输出结果为选项A)。

〓25有以下程序 #include main()

{ unsigned char a=2, b=4, c=5, d;

d = a | b; d &= c; printf(\程序运行后的输出结果是( )。 A)4

计算语句\时,字符a的ASCII码为2,对应二进制为0010;字符b的ASCII码为4,对应二进制为0100;所以按位或\运算之后d的二进制为0110。计算语句\d &= c;\时,字符c的ASCII码为5,对应二进制为0101,所以按位与\运算之后d的二进制数值为0100,对应十进制值为4,所以答案选A)。

〓26.软件需求规格说明书的作用不包括( )。 A)软件验收的依据

B)用户与开发人员对软件要做什么的共同理解


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

下一篇:开题报告

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

马上注册会员

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