高级语言程序设计C语音Word文档格式.docx
《高级语言程序设计C语音Word文档格式.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计C语音Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
,而非选"
,此项错误。
选项c:
scanf函数的地址表列中不能写成a,此项错误。
选项D:
指针p首先指向a单元,再通过键盘以科学计数格式赋值浮点数,此项正确。
2.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是
intmain()
{intx;
%d"
&
x);
if(x++>
5)printf("
x);
elseprintf("
%d\n"
x--);
}
A)7和5B)6和3C)7和4D)6和4
A
当输入为6时,即x=6,∵++在x后,∴先取x=6与5比较,再取x=6+1=7,6>
5成立,输出x=7;
同理,当输入为4时,输出x=5。
本题考察++,--的优先级与结合性。
3.下面程序的输出是
A)xyzabcABCB)zabcABCC)yzabcABCD)xyabcABC
#include<
stdio.h>
string.h>
intmain()
{
char*p1="
abc"
*p2="
ABC"
str[50]="
xyz"
;
strcpy(str+2,strcat(p1,p2));
printf("
%s\n"
str);
}
strcat将p2字符串连在p1字符串尾,产生新字符串:
abcABC,在讲连接后的值赋在str[2]处,即a将z覆盖,产生新的字符组元素:
xyabcABC。
本题考察字符串函数应用.
4.若有以下说明:
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc='
a'
d,g;
则数值为4的表达式是
A)a[g-c]B)a[4]
C)a['
d'
-'
c'
]D)a['
-c]
数值为4的元素的位置在数组内下标为3,∵c=a,d的减去a的得3.
5.以下叙述中不正确的是
A)在不同的函数中可以使用相同名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量
c语言在函数中说明的变量为局部变量,只在函数内起作用,不会影响到其他函数。
在不同函数中使用相同的变量名不代表是同一变量,A)正确;
在函数定义时声明的参数只在函数内部起作用,是函数的局部变量,B)正确;
在一个函数中定义的变量是这个函数的局部变量,所以只在函数内部起作用,C)正确;
复合语句中定义的变量其作用域是这个复合语句,不会扩大到整个函数,所以D)错误。
可参考《c语言程序设计新视角》函数变量的有效范围问题.
6.请选出以下程序段的输出结果
#defineMIN(x,y)(x)<
(y)?
(x):
(y)
inti,j,k;
i=10;
j=15;
k=10*MIN(i,j);
k);
return0;
A)15B)100C)10D)150
执行MIN(i,j),∵i=10<
j=15,∴MIN(i,j)=10,∴k=100.
7.在C语言中,用于实现打开文件的库函数是()。
A)fclose() B)fopen() C)fseek() D)rewind()
B
本题考查c语言文件操作函数,答案为B
8.设有以下语句:
structst{intn;
structst*next;
};
staticstructsta[3]={5,&
a[1],7,&
a[2],9,'
\0'
},*p;
p=&
a[0];
则表达式_____的值是6。
A)p++->
nB)p->
n++C)(*p).n++D)++p->
n
a是先取a[0]的值5然后p自增指向a[1]的n值为7
b是直接取a[0]的5,未经过++运算
c也是直接取a[0]的5,未经过++运算
d是先取a[0]的5再自增为6
9.C语言中形参的缺省存储类别是
A)自动(auto)B)静态(static)
C)寄存器(register)D)外部(extern)
在函数体内声明的变量,在默认情况都是auto型。
参考查询《c语言程序设计新视角》变量存储类别。
10.执行下面的程序段后,变量k中的值为
intk=3,s[2];
s[0]=k;
k=s[1]*10;
A)不定值B)33C)30D)10
解析:
如题,s[0]=k=3,而s[1]并未初始化,则其内存储的是系统随机给的整数值,通常是负数,因而k也为不定值。
11.已知字母A的ASCII码为十进制的65,下面程序的输出是
{
charch1,ch2;
ch1='
A'
+'
5'
3'
ch2='
6'
%d,%c\n"
ch1,ch2);
return0;
A)67,DB)B,C
C)C,DD)不确定的值
ch1的ASCⅡ值为65+2对应到字母C,输出格式中ch1以整数形式输出67;
ch2的ASCⅡ值为65+3对应到字母D,输出格式中ch2以字符形式输出D.可以参考《c语言程序设计新视角》输出格式说明符。
12.语句:
%d\n"
,12&
012);
的输出结果是
A)12B)8C)6D)012
012表示八进制,,二进制表示001010,所以12&
012=1100&
001010(二进制)=1000(二进制)=8.
13.以下说法中正确的是
A)C语言程序总是从第一个的函数开始执行
B)在C语言程序中,要调用的函数必须在intmain()函数中定义
C)C语言程序总是从intmain()函数开始执行
D)C语言程序中的intmain()函数必须放在程序的开始部分
C
c语言程序总是main()函数开始执行,其他子函数通过主函数调用而执行。
可以参考《c语言程序设计新视角》中函数部分章节。
14.以下程序运行后,输出结果是
char*s="
abcde"
s+=2;
%ld\n"
,s);
A)cdeB)字符c的ASCII码值C)字符c的地址D)出错
s为指针变量,其值为地址,为”abcde”字符串的首地址即a的地址,s+=2等价于s=s+2,即s的值为字符串中a向后移两位对应元素c的地址。
15.设x和y均为int型变量,则执行下的循环后,y值为
for(y=1,x=1;
y<
=50;
y++)
if(x>
=10)break;
if(x%2==1){x+=5;
continue;
x-=3;
A)2B)4C)6D)8
①x=1不满足x>
=10,∴继续向下执行,x%2=1,满足第二个if,∴x=x+5=6,y=2进行第二次循环;
②x=6不满足x>
=10,∴继续向下执行,x%2=0,不满足第二个if,继续执行x=3,y=3进行第三次循环;
当进行到第六次循环时,x=11满足x>
=10跳出循环,此时y=6。
16.当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为
if(a<
b)
if(c<
d)x=1;
elseif(a<
c)
if(b<
d)x=2;
elsex=3;
elsex=6;
elsex=7;
A)1B)2C)3D)6
如果if-else语句掌握熟练可直接分析程序做题目。
否则,先将if和else配对(题目上红色数字即为配对情况)
如果a<
b成立则执行x=7;
否则如果c<
d成立则x=1;
否则,当a<
c成立x=6,否则,当b<
d成立则x=2,否则x=3;
由题目可见,a<
b不成立,c<
d不成立,而a<
c成立,因此输出x=2
17.若b是int型变量,则表达式b=25/3%3的值为
A)7B)8C)6D)2
运算级/与%自左向右,25/3=8,8%3=2,可以参考《c语言程序设计新视角》运算符相关知识。
18.设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为:
A)0-255
B)1-32767
C)0-65535
D)0-2147483647
c语言中int取值范围为-32768到32767之间,unsignedint为无符号整型,取值无赋值,因而为0到32767.
19.下面的程序
intx=3,y=0,z=0;
if(x=y+z)printf("
****"
);
####"
A)有语法错误不能通过编译
B)输出****。
C)可以通过编译,但是不能通过连接,因而不能运行。
D)输出####。
由题,x=3不等于y+z=0所以执行else语句,输出####。
20.若有以下函数调用语句:
fun(a+b,(x,y),fun(n+k,d,(a,b)));
在此函数调用语句中实参的个数是
A)3B)4C)5D)6
本题考查子函数中形参个数,因为fun()函数默认返回一个数,所以在最外层的fun()函数中有三个形式参数。
本题需注意函数的套用,相关知识点可以参考《c语言程序设计新视角》中函数部分。
二、填空题(本大题共7小题,每题2分,共14分。
1.若有定义:
doublex[3][5],则x数组中行下标的下限为_________,列下标的下限为__________。
2,4
数组下标从0开使,因而下限为数组长度-1.
2.设有说明语句"
inta[3][4]={{1,2},{3,4,5},{6,7,8}};
"
则a[0][2]的初始化值为_____________,a[2][2]的初始化值为______________。
0,8
a[0]={1,2},a[0][2]初始化但未赋值为0,a[2]={6,7,8},a[2][2]=8,注意数组下标是从0开始的。
3.表达式7/2的结果是____________。
表达式7%2的结果是____________。
答案;
3,1
解析:
/为除后取整符号,%为除后取余符号。
4.若已知a=1.5,b=15,c=1,则表达式a*b&
&
c的运算结果是____________。