【1.47】答案:A 【1.48】答案:D
注释:这里首先要明确一些基本概念。在C语言中,程序与文件是不同的概念,一个程序可以由一个文件组成,也可以由多个文件组成; 一个文件中又可以包含多个函数; 函数是构成C程序的基本单位。
变量的作用域因变量的存储类型不同而不同。auto和register类型的变量的作用域是说明变量的当前函数; 外部变量的作用域是整个程序,即外部变量的作用域可以跨越多个文件; 内部静态变量(定义在一个函数内部的static型的变量)的作用域是当前函数,外部静态变量(定义在函数外面的static型的变量)的作用域是当前文件,即可以跨越同一文件中的不同函数。 【1.49】答案:A 【1.50】答案:A
注释:它和参数a一样,数据类型说明被省略,按照C语言的规定,在这种情况下,表示它们是int型。
【1.51】答案:C 注释:函数swapa是值传递,函数的执行结果不能返回; 函数swapb中变量temp不是指针变量,所以它不能接受地址量,用指针变量x为它赋值是不对的; 函数swap中虽然指针变量交换了地址,即它们的指向的目标变量进行了交换,但是目标变量并没有行值的交换。 【1.52】答案:B 【1.53】答案:D 【1.54】答案:D
注释:主调函数中b=0,在执行fun1函数里的除法时发生溢出错误。 【1.55】答案:B 【1.56】答案:C 【1.57】答案:C
注释:要注意与说明语句\的区别。说明语句\说明的是一个指向数组的指针。
【1.58】答案:C
注释:题干中由于*和p被小括号括起,所以p应被解释为一个指针,而后的下标运算符[]说明所指向的对象是一个有4个int型元素的一维数组; 如果是int (*p)(), 则是指向函数的指针。对于int *p[4], 则根据运算符的优先级,先考虑p和[]运算符的关系,所以它就是一个指针数组了。 【1.59】答案:B
注释:选项B有两处错误,一是数组名是常量,不能出现的赋值好的左侧,二是指针变量只能和整数做加,不能和作为地址常量的数组名相加。 【1.60】答案:D
注释:s作为数组名是地址常量,而s++是s=s+1,C语言不允许对常量进行赋值。 【1.61】答案:C 【1.62】答案:A
注释:p是一个一级指针,选项B中对它进行了两次*运算是错误的。ptr是一个指向一维数组的指针,它所指向的数组有三个元素,对于这样一个指针,对它进行两次**运算才能取出地址单元中所存的数据,C选项中*ptr表示数组第一行的首地址,该地址是一维数组的地址,+3表示加上三个它所指向的数据类型的长度,所以(*ptr+1)+2是数组中数值4的地址。根据以上分析,选项D对ptr进行了两次地址操作(*和[]),所以结果应是数据,但是它加1后指向数组第二行,根据后面[]中2它的地址增加两个一维数组的长度,就指向数组的最后一行,再做*运算就是数10,即a[3][0]。 【1.63】答案:A
11
【1.64】答案:B B 【1.65】答案:D 【1.66】答案:B 【1.67】答案:D
注释:答案D是另一种交换两个变量值的算法。 【1.68】答案:B 【1.69】答案:C
注释:使用C对p进行赋值,则p->next是a[0]的地址,引用其成员n再做前增1运算,结果就是2。
【1.70】答案:B 【1.71】答案:D 【1.72】答案:A 【1.73】答案:C
注释:联合变量temp的成员是占用同一存储单元,它的长度是4个字节。266的二进制表示是100001010,存放在存储单元的低端两个字节,如下图: 高字节
0 0 0 0 0 0 0 1
低字节 0 0 0 0 1 0 1 0
引用temp.ch进行输出,只取最低的第一个字节。 【1.74】答案:D
注释:由于结构指针指向了结构数组的0号元素,所以表达式(p++)->m的含义是先取出m(变量a的地址),然后指针p加1。表达式*(p++)->m的含义是先取出m的内容(变量a的值),然后指针p再加1。表达式(*p).m的含义是取出m(变量a的地址)。表达式*(++p)->m的含义是先将指针p加1,然后再取m的内容(变量b的值)。 【1.75】答案:D 【1.76】答案:B 【1.77】答案:C 【1.78】答案:D 【1.79】答案:D 【1.80】答案:B 【1.81】答案:B
注释:语句z=2*(N+Y(5+1)引用了两个宏定义。C语言是区分字母大小的,第二个宏定义中的N直接用3替换,用5+1替换n,则有z=2*(3+(3+1)*5+1); 结果是48。注意对于带参数的宏亦是直接的文本替换,此例中n用5+1去替换,结果是(N+1)*5+1,而不是(N+1)*(5+1)。 【1.82】答案:C
注释:宏替换后的结果是printf(\。 【1.83】答案:C
二、 阅读程序题
导读:学会阅读程序对于初学者来说很重要,一方面可以巩固所学的语法知识,另一方面通过阅读别人写好的程序来打开自己的思路,就所谓见多识广。读者通过阅读理解程序,从给出的四个备选参考答案中,选择程序的正确输出。如果选择有误,就要认真分析原因,是概念方面的错误还是对程序逻辑理解不对,从而加深对语法规则的理解,提高程序设计能力。程序设计语言是开发程序的一个工具,学习语言的目的是为了编写程序来解决实际问题,所以特别提倡通过实际上机来检验备选答案,增强动手能力。
12
【2.1】以下程序的输出结果是 。 #include
a=1/100000000; printf(\ }
A) 0.00000e+00 B) 0.0 C) 1.00000e-07 D) 0 【2.2】下面程序的输出结果是____。 #include
printf (\ x); }
printf(\ x); }
A) 10,20 B) 20,10 C) 10,10 D) 20,20 【2.3】以下程序的输出结果是____。 #include
{ unsigned int n; int i=-521; n=i;
printf(\ }
A) n=-521 B) n=521 C) n=65015 D) n=102170103 【2.4】以下程序的输出结果是 。 #include
{ int x=10, y=10; printf(\ x――, ――y); }
A) 10 10 B) 9 9 C) 9 10 D) 10 9 【2.5】以下程序的输出结果是____。 #include
printf(\ }
A) 1 1 1 B) 1 0 1 C) 1 1 0 D) 1 2 1 【2.6】以下程序的输出结果是____。 #include
printf(\
13
}
A) 0 B) 1
【2.7】下面程序的输出结果是____。 #include
{ char s[12]= \ printf(\ }
A) a book! B) a book!<四个空格》
C) a bo D) 格式描述错误,输出不确定 【2.8】下面程序的输出结果是____。 #include
scanf(\ printf(\ }
A) a=12 b=34 B) a=123 b=45 C) a=12 b=345 D) 语句有错误 【2.9】以下程序段的输出结果是 。 int a=10, b=50, c=30; if(a>b) a=b; b=c; c=a;
printf(\ A) a=10 b=50 c=10 B) a=10 b=30 c=10 C) a=50 b=30 c=10 D) a=50 b=30 c=50
【2.10】以下程序的输出结果是 。 #include
{ int a=0, b=1, c=0, d=20; if(a) d=d-10; else if(!b) if(!c) d=15; else d=25;
printf(\ }
A) d=10 B) d=15 C) d=20 D) d=25 【2.11】下面程序的输出结果为 。 #include
{ case 1: switch (b)
{ case 0: printf(\ break; case 1: printf(\ break; }
14
case 2: printf(\ break; } }
A) **0** B) **0****2** C) **0****1****2** D) 有语法错误 【2.12】以下程序的输出结果是 。 #include
{ char *s=\
int v1=0, v2=0, v3=0, v4=0, k; for(k=0; s[k]; k++) switch(s[k])
{ case '1': v1++; case '3': v3++; case '2': v2++; default: v4++; }
printf(\ v2=%d, v3=%d, v4=%d\\n\ }
A) v1=4, v2=2, v3=1, v4=1 B) v1=4, v2=9, v3=3, v4=1 C) v1=5, v2=8, v3=6, v4=1 D) v1=4, v2=7, v3=5, v4=8 【2.13】下面程序的输出是 。 #include
{ int x=1, y=0, a=0, b=0; switch(x)
{ case 1: switch(y) { case 0: a++; break; case 1: b++; break; }
case 2: a++; b++; break; }
printf(\ }
A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2 【2.14】下面程序的输出是____。 #include
printf(\ } }
A) 1 B) 1234 C) 123 D) 12
【2.15】下面程序的输出结果是____。 #include
15
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《C语言程序设计》练习题(3)在线全文阅读。
相关推荐: