北交《C语言程序设计专》在线作业一15秋100分答案Word下载.docx
《北交《C语言程序设计专》在线作业一15秋100分答案Word下载.docx》由会员分享,可在线阅读,更多相关《北交《C语言程序设计专》在线作业一15秋100分答案Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
5.以下程序有错,错误原因是main(){int*p,i;
char*q,ch;
p=&
i;
q=&
ch;
*p=40;
*p=*q;
......}
A.p和q的类型不一致,不能执行*p=*q;
语句
B.*p中存放的是地址值,因此不能执行*p=40;
C.q没有指向具体的存储单元,所以*q没有实际意义
D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;
没有意义,可能会影响后面语句的执行结果
6.sizeof(float)是
A.一个双精度型表达式
B.一个整型表达式
C.一种函数调用
D.一个不合法的表达式
7.函数rewind的作用是
A.使文件位置指针重新返回文件的开始位置
B.将文件位置指针指向文件中所要求的特定位置
C.使文件位置指针指向文件的末尾
D.使文件位置指针自动移至下一个字符位置
8.有以下程序:
#includeunionpw{inti;
charch[2];
}a;
main(){a.ch[0]=13;
a.ch[1]=0;
printf(
A.13
B.14
C.208
D.209
9.下列程序的输出结果是intb=2;
intfunc(int*a){b+=*a;
return(b);
}main(){inta=2,res=2;
res+=func(&
a);
printf(
A.4
B.6
C.8
D.10
10.下面程序的输出结果是main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
A.3
C.1
D.2
北交《C语言程序设计(专)》在线作业一
二、多选题(共10道试题,共40分。
1.以下______是正确的转义字符。
()
A.‘\\'
B.‘\’
C.‘\81'
D.‘\0'
ABD
2.若定义:
inta[2][3]{0,2,4,6,8,10};
以下描述正确的有
A.*(a+1)为元素6的地址
B.*(a[1]+1)的值为2
C.**(a+1)+2的值为8
D.a[0]与a相同
3.下列说法中错误的是______。
A.C程序总是从第一个定义的函数开始执行
B.C程序总是从main函数开始执行
C.C函数必须有返回值,否则不能使用函数
D.C程序中有调用关系的所有函数必须放在同一个程序文件中
ACD
4.函数调用可以______。
A.出现在一个表达式中
B.出现在执行语句中
C.作为一个函数的实参
D.作为一个函数的形参
ABC
5.若有以下定义和语句:
doubler=99,*p=&
r;
*p=r;
则以下不正确的叙述是:
______
A.以上两处的*p含义相同,都说明给指针变量p赋值
B.语句“*p=r;
”把变量r的地址值赋给指针变量p
C.语句“*p=r;
”取变量r的值放回r中
D.在“doubler=99,*p=&
”中,把r的地址赋值给了p所指的存储单元正确答案:
6.下列描述正确的是
A.由main函数及其参数argc和*argv[]可以实现命令行方式
B.使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中
C.字符数组并不要求它的最后一个字符是‘\0’
D.‘A’和“A”都是字符串常量
AC
7.关于静态局部变量的说明正确的是______。
A.静态局部变量存储在静态存储区
B.静态局部变量是在编译时赋初值的,即只赋一次值,在程序运行时它已有初值
C.若在定义局部变量时不赋初值,则编译时自动赋初值为0或空字符
D.虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的
8.已知:
intx;
,则下面的说明指针变量pb的语句______不是正确的。
A.intpb=&
x;
B.int*pb=x;
C.int*pb=&
D.*pb=*x
9.以下正确的C语言标识符是_____。
A.ABC
B.abc
C.a_bc
D.ab.c
10.以下说法不正确的是______。
A.定义函数时,形参的类型说明可以放在函数体内
B.return后边的值不能为表达式
C.如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准
D.如果形参与实参的类型不一致,以实参类型为准
三、判断题(共5道试题,共20分。
1.主函数和其它函数可以相互调用
A.错误
B.正确
2.数据结构指的是数据的组织形式,数组就是一种数据结构()
3.语句int*pt中的*pt是指针变量名。
4.若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清除。
5.调用函数只可得到一个返回值,而用宏可以设法得到几个结果。
1.下面程序的输出结果是main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
2.函数rewind的作用是
3.以下程序有语法错误,有关错误原因的正确说法是main(){intG=5,k;
voidprt_char();
...k=prt_char(G);
...}
A.语句voidprt_char();
有错,它是函数调用语句,不能用void说明
B.变量名不能使用大写字母
C.函数说明和函数调用语句之间有矛盾
D.函数名不能使用下划线
C
4.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为
B.16
C.32
D.52
5.以下不正确的叙述是
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
6.以下程序的输出结果是voidreverse(inta[],intn){inti,t;
for(i=0;
i{t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};
inti,s=0;
reverse(b,8);
for(i=6;
i<
10;
i++)
s+=b[i];
A.22
B.10
C.34
D.30
7.设有定义:
8.有如下程序:
9.有以下程序:
10.在16位IBM-PC机上使用C语言,若有如下定义structdata{inti;
charch;
doublef;
}b;
则结构变量b占用内存的字节数是
A.1
B.2
C.7
D.11
1.以下叙述中正确的是______。
A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
C.可以通过赋初值的方式确定数组元素的个数
D.数组名代表的是数组所占存储区的首地址,其值不可改变
2.下列关于#include命令的叙述中,正确的是______。
A.一个#include命令中只能指定一个被包含文件
B.一个#include命令中可以指定多个被包含文件
C.一个被包含文件中又可以包含另一个被包含文件
D.#include命令中,文件名可以用双引号或尖括号括起来
3.以下对一维数组a进行初始化,错误的语句是______。
A.inta[10]=(0,0,0,0,0);
B.inta[10]={};
C.inta[10]={0};
D.inta[2]={10,9,8}
4.不与while(x)语句中的x等价的是_____。
A.x==0
B.x==1
C.x!
=1
D.x!
=0
5.在动态存储区中主要存放以下数据______。
A.函数形式参数
B.自动变量
C.函数调用时的现场保护和返回地址
D.全局变量
6.关于实参和形参的说法正确的是______。
A.在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元
B.实参可以是变量、常量或表达式
C.实参与形参的类型应相同或赋值兼容
D.实参变量对形参变量的数据传递是“值传递”
ABCD
7.下列说法中错误的是______。
A.不允许设置参数的默认值
B.设置参数的默认值只能在定义函数时设置
C.设置参数的默认值时,应该设置右边的参数
D.设置参数的默认值时,应该全部参数都设置
8.对静态变量的正确描述
A.静态局部变量在静态存储区内分配单元
B.静态外部变量可以赋初值,也可以不赋初值
C.静态外部变量的作用与外部变量相同
D.静态局部变量在函数调用结束时,仍保存其值,不会随着消失。
9.在文件操作中,用于检测和设置文件状态的函数有______。
A.文件结束检测函数feof()
B.读写文件出错检测函数ferror()
C.文件出错和结束标志文件函数才clearerr()
D.文件关闭函数fclose()
10.以下不正确的描述是______。
A.函数的定义可以嵌套,函数的调用不可以嵌套
B.函数的定义不可以嵌套,函数的调用可以嵌套
C.函数的定义和函数的调用均可以嵌套
D.函数的定义和函数的调用均不可以嵌套
1.模运算符要求两侧均应为整型数据。
2.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。
3.C语言中,整常数有三种表示形式:
十进制整数,八进制整数,十六进制整数。
5.宏定义就是用宏名代替一个字符串,也就是简单的置换,不作正确性检查。
1.C语言中,能识别处理的文件为
A.文本文件和数据块文件
B.文本文件和二进制文件
C.流文件和文本文件
D.数据文件和二进制文件
2.假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:
3.以下不正确的定义语句是
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5]={0,1,3,5,7,9};
C.charc1[]={′1′,′2′,′3′,′4′,′5′};
D.charc2[]={′\x10′,′\xa′,′\x8′};
4.一个C语言程序是由
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
5.设有intx=11;
则表达式(x++*1/3)的值是
C.11
D.12
6.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。
#includemain(){inti=0,j,k;
do{i++;
k=316-13*i;
}while(______);
(
A.k/11
B.k
C.k/11==0
D.k==0
7.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为
A.4j=k/11;
printf
8.请选出可用作C语言用户标识符的是
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
9.下面程序段的运行结果是char*format=
a=11,b=10;
a+=b;
printf(format,
A.for,
B.format,
C.a+=b,a=21,b=10
D.以上结果都不对
10.函数rewind的作用是
)int
1.已知:
2.对静态变量的正确描述
3.以下不正确的叙述是______。
A.C语言的主函数是无参函数
B.C语言的主函数最多允许有1个参数
C.C语言的主函数最多允许有2个参数
D.C语言的主函数可以有2个以上参数
4.以下对一维数组a进行初始化,错误的语句是______。
5.在C语言中,正确的int类型的常数是:
______。
A.0
B.32768
C.037
D.0xaf
6.函数调用可以______。
7.C语言中函数返回值的类型与下列哪项无关?
A.定义函数时所指定的函数类型
B.调用函数时临时
C.调用该函数的主函数类型
D.return语句中的表达式类型
BCD
8.以下说法不正确的是______。
9.关于实参和形参的说法正确的是______。
10.下列说法中错误的是______。
1.共用体所占的内存空间大小取决于占空间最多的那个成员变量。
2.模运算符要求两侧均应为整型数据。
3.主函数和其它函数可以相互调用
4.C程序的执行总是从第一个定义的函数开始
5.for(;
;
)语句相当于while
(1)语句
1.下面程序段的运行结果是char*format=
2.下列程序的输出结果是main(){doubled=3.2;
intx,y;
x=1.2;
y=(x+3.8)/5.0;
B.3.2
C.0
D.3.07
3.设有以下说明语句structex{intx;
floaty;
charz;
}example;
则下面的叙述中不正确的是
A.struct结构体类型的关键字
B.example是结构体类型名
C.x,y,z都是结构体成员名
D.structex是结构体类型名
4.若已定义:
inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;
其中0≤i≤9,则对a数组元素不正确的引用是
A.a[p-a]
B.*(&
a[i])
C.p[i]
D.a[10]
5.一个C语言程序是由
6.下面程序的运行结果是#includemain(){inta=1,b=10;
do{b-=a;
a++;
}while(b--<
0);
A.a=3,b=11
B.a=2,b=8
C.a=1,b=-1
D.a=4,b=9
7.设有以下语句:
charx=3,y=6,z;
z=x^y<
<
2;
则z的二进制值是
A.00010100
B.00011011
C.00011100
D.00011000
8.函数rewind的作用是
9.设有定义:
10.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为
1.下列字符中能构成标识符的是______。
A.数字字符
B.连接符
C.下划线字符
D.大写字母