15秋北交《C语言程序设计专 》在线作业二满分答案.docx
《15秋北交《C语言程序设计专 》在线作业二满分答案.docx》由会员分享,可在线阅读,更多相关《15秋北交《C语言程序设计专 》在线作业二满分答案.docx(24页珍藏版)》请在冰豆网上搜索。
![15秋北交《C语言程序设计专 》在线作业二满分答案.docx](https://file1.bdocx.com/fileroot1/2022-10/26/d6d93996-6561-45e6-9ed9-e389551c1543/d6d93996-6561-45e6-9ed9-e389551c15431.gif)
15秋北交《C语言程序设计专》在线作业二满分答案
15秋北交《C语言程序设计(专)》在线作业二满分答案
一、单选题(共10道试题,共40分。
)
1. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为
A.4
B.16
C.32
D.52
正确答案:
C
2. 在16位IBM-PC机上使用C语言,若有如下定义 structdata {inti; charch; doublef; }b; 则结构变量b占用内存的字节数是
A.1
B.2
C.7
D.11
正确答案:
D
3. 以下程序有错,错误原因是 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;没有意义,可能会影响后面语句的执行结果
正确答案:
D
4. 设有定义:
intn=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是
A.p=1;
B.*q=2;
C.q=p;
D.*p=5;
正确答案:
D
5. 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。
#include main() {inti=0,j,k; do{i++;k=316-13*i;}while(______); j=k/11; printf("316=13*%d+11*%d",i,j); }
A.k/11
B.k
C.k/11==0
D.k==0
正确答案:
B
6. 请选出可用作C语言用户标识符的是
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
正确答案:
B
7. 下列程序的输出结果是 main() {doubled=3.2;intx,y; x=1.2;y=(x+3.8)/5.0; printf("%d\n",d*y); }
A.3
B.3.2
C.0
D.3.07
正确答案:
C
8. 以下程序的输出结果是 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]; printf("%d\n",s);
A.22
B.10
C.34
D.30
正确答案:
A
9. 下面程序的运行结果是 #include main() {inta=1,b=10; do {b-=a;a++;}while(b--<0); printf("a=%d,b=%d\n",a,b); }
A.a=3,b=11
B.a=2,b=8
C.a=1,b=-1
D.a=4,b=9
正确答案:
B
10. sizeof(float)是
A.一个双精度型表达式
B.一个整型表达式
C.一种函数调用
D.一个不合法的表达式
正确答案:
B
北交《C语言程序设计(专)》在线作业二
二、多选题(共10道试题,共40分。
)
1. 下列字符中能构成标识符的是______。
A.数字字符
B.连接符
C.下划线字符
D.大写字母
正确答案:
ACD
2. 已知:
intx;,则下面的说明指针变量pb的语句______不是正确的。
A.intpb=&x;
B.int*pb=x;
C.int*pb=&x;
D.*pb=*x
正确答案:
ABD
3. 关于文件的打开方式描述正确的是:
______。
A.r:
打开只读文件
B.a+:
打开或建立用于更新数据的文件,数据追加到文件尾
C.a:
打开或建立一个把数据追加到文件尾的文件
D.r+:
打开用于更新数据的文件
正确答案:
ABCD
4. 关于宏定义的说法正确的是:
A.宏名一般习惯用大写字母表示,以便与变量名相区别
B.使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量
C.宏定义是用宏名代替一个字符串,也就是简单的置换,不作正确性检查
D.宏定义不是C语句,不必在行末加分号
正确答案:
ABCD
5. 带参宏定义与函数的区别是:
______。
A.函数调用时,先求出实参表达式的值,然后代入形参,带参的宏只是进行简单的字符替换
B.函数调用是在程序运行时为形参分配临时的存储单元,而宏展开是在编译前进行的
C.宏不存在类型问题,宏名和参数都不存在类型问题
D.调用函数只能得到一个返回值,而使用宏可设法得到几个结果
正确答案:
ABCD
6. 下列说法中错误的是______。
A.C程序总是从第一个定义的函数开始执行
B.C程序总是从main函数开始执行
C.C函数必须有返回值,否则不能使用函数
D.C程序中有调用关系的所有函数必须放在同一个程序文件中
正确答案:
ACD
7. 以下______是正确的转义字符。
()
A.‘\\'
B.‘\’
C.‘\81'
D.‘\0'
正确答案:
ABD
8. 若定义:
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相同
正确答案:
ACD
9. 以下不正确的叙述是______。
A.C语言的主函数是无参函数
B.C语言的主函数最多允许有1个参数
C.C语言的主函数最多允许有2个参数
D.C语言的主函数可以有2个以上参数
正确答案:
ABC
10. 下列说法中错误的是______。
A.不允许设置参数的默认值
B.设置参数的默认值只能在定义函数时设置
C.设置参数的默认值时,应该设置右边的参数
D.设置参数的默认值时,应该全部参数都设置
正确答案:
ABD
北交《C语言程序设计(专)》在线作业二
三、判断题(共5道试题,共20分。
)
1. C程序中各函数之间既允许直接递归调用也允许间接递归调
A.错误
B.正确
正确答案:
B
2. 静态外部变量既可以在文本文件中引用,也可以在其它文件引用
A.错误
B.正确
正确答案:
B
3. 主函数和其它函数可以相互调用
A.错误
B.正确
正确答案:
A
4. ‘a’和“a”在内存中所占字节数相同。
()
A.错误
B.正确
正确答案:
A
5. putchar()函数可以输出一个字符串
A.错误
B.正确
正确答案:
A
北交《C语言程序设计(专)》在线作业二
一、单选题(共10道试题,共40分。
)
1. 以下程序有语法错误,有关错误原因的正确说法是 main() {intG=5,k; voidprt_char(); ... k=prt_char(G); ... }
A.语句voidprt_char();有错,它是函数调用语句,不能用void说明
B.变量名不能使用大写字母
C.函数说明和函数调用语句之间有矛盾
D.函数名不能使用下划线
正确答案:
C
2. C语言中,能识别处理的文件为
A.文本文件和数据块文件
B.文本文件和二进制文件
C.流文件和文本文件
D.数据文件和二进制文件
正确答案:
B
3. 以下叙述中不正确的是
A.在不同的函数中可以使用相同的名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
正确答案:
D
4. 设有以下语句:
charx=3,y=6,z; z=x^y<<2; 则z的二进制值是
A.00010100
B.00011011
C.00011100
D.00011000
正确答案:
B
5. 在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是
A.a=20000+20000;
B.a=4000*10;
C.a=30000+10000;
D.a=4000L*10L
正确答案:
D
6. 若有以下程序 #include inta[]={2,4,6,8}; main() {inti; int*p=a; for(i=0;i<4;i++)a[i]=*p; printf("%d\n",a[2]); } 上面程序输出结果是
A.6
B.8
C.4
D.2
正确答案:
D
7. 若已定义:
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]
正确答案:
D
8. 函数rewind的作用是
A.使文件位置指针重新返回文件的开始位置
B.将文件位置指针指向文件中所要求的特定位置
C.使文件位置指针指向文件的末尾
D.使文件位置指针自动移至下一个字符位置
正确答案:
A
9. 以下不正确的定义语句是
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′};
正确答案:
B
10. 请选出以下语句的输出结果 printf("%d\n",strlen("\t\"\065\xff\n"));
A.5
B.14
C.8
D.输出项不合法,无正常输出
正确答案:
A
北交《C语言程序设计(专)》在线作业二
二、多选题(共10道试题,共40分。
)
1. 关于宏定义的说法正确的是:
A.宏名一般习惯用大写字母表示,以便与变量名相区别
B.使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量
C.宏定义是用宏名代替一个字符串,也就是简单的置换,不作正确性检查
D.宏定义不是C语句,不必在行末加分号
正确答案:
ABCD
2. 以下对C语言函数的有关描述中,错误的是:
______。
A.调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.程序中有调用关系的所有函数必须放在同一个源程序文件中
正确答案:
BCD
3. 对静态变量的正确描述
A.静态局部变量在静态存储区内分配单元
B.静态外部变量可以赋