
东北师范大学21春“计算机科学与技术”《C程序设计》离线作业(三)辅导答案1.docx
5页长风破浪会有时,直挂云帆济沧海 她东北师范大学21春“计算机科学与技术”《C程序设计》离线作业(三)答案一.综合考核(共50题)1.break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环)A.错误B.正确参考答案:B2.当循环体至少能执行一次时,while循环和do-while循环是等价的)A.错误B.正确参考答案:B3.若k为整型,则下列while循环:k=2; while(k==0) printf(“%d”,k); k--; printf(“\n”); 执行多少次?()A.2B.9C.0D.1参考答案:C4.有以下程序段:main() {int a=5,*b,*c; c=&b; b=&a;……} 程序在执行了c=&b; b=&a; 语句后,表达式**c的值是()A.变量a的地址B.变量b的地址C.变量a的值D.变量b的值参考答案:C5.循环可以并列,但不可以嵌套。
)A.错误B.正确参考答案:A6.以下程序段:char str[15]=“hello!”; printf(“%d\n”,strlen(str)); 的输出结果是()A.15B.14C.7D.6参考答案:D7.若有以下说明和语句,int c[4][5],(*p)[5]; p=c; 能正确引用c数组元素的是()A.p+1B.*(p+3)C.*(p+1)+3D.*(p[0]+2))参考答案:D8.C语言要建立一个二进制文件应选择的打开方式是()A.“r”B.“w”C.“rb”D.“wb”参考答案:D9.下面选项中正确的赋值语句是(设 char a[5],*p=a;) ()A.p=“abcd”B.a=“abcd”C.*p=“abcd”D.*a=“abcd”参考答案:A10.逻辑运算符的优先级为&&|!)A.错误B.正确参考答案:A11.C语言规定数组元素的下标从0开始)A.错误B.正确参考答案:B12.C程序总是从main()函数的一条语句开始执行的)A.错误B.正确参考答案:B13.以下程序: #define ADD(x) x*x main() {int a=4,b=6,c=7,d=ADD(a+b)*c; printf(“d=%d”,d);} 的输出结果为()。
A.d=70B.d=80C.d=140D.d=700参考答案:A14.定义在main函数后的任何函数都需在main中进行函数声明)A.错误B.正确参考答案:A15.有以下程序:main() {int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2; printf(“%d\n”,*p+*q);} 程序运行后的输出结果是()A.16B.10C.8D.6参考答案:B16.若有下面的变量定义,int i,a[10],*p; 以下语句中合法的是()A.p=a+2B.p=a[5]C.p=a[2]+2D.p=&(i+2)参考答案:A17.‘ab’是合法的字符型常量)A.错误B.正确参考答案:A18.有以下程序:main() {char a1=‘M’,a2=‘m’; printf(“%c\n”,(a1,a2));} 以下叙述中正确的是()A.程序输出大写字母MB.程序输出小写字母mC.格式说明符不足,编译出错D.程序运行时产生出错信息参考答案:B19.设整型变量a为5,使b不为2的表达式是()A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:1参考答案:C20.若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元:int *p; p=____malloc(sizeof(int)); 则应填入()。
A.intB.*intC.(*int)D.(int*)参考答案:D21.指针在任何情况下都可进行,>,=,A.错误B.正确参考答案:B22.putchar()一次可以输出多个字符)A.错误B.正确参考答案:A23.假设有int a[10],*p; 则p=&a[0]与p=a等价)A.错误B.正确参考答案:B24.int i=20; switch(i/10) {case 2:printf(“A”); case 1:printf(“B”);} 的输出结果为A)A.错误B.正确参考答案:A25.下列函数中不能用于对文件进行输入输出操作的是()A.fscanf()B.printf()C.fgetc()D.fputs()参考答案:B26.在赋值语句变量=表达式中,当表达式的类型和变量的类型不一致时,以表达式的类型为准)A.错误B.正确参考答案:A27.fseek(fd,-10L,1)中的fd和1分别为()A.文件指针,文件的开头B.文件指针,文件的当前位置C.文件号,文件的当前位置D.文件号,文件的开头参考答案:B28.若有形参定义:int a[10]; 则a++是合法的表达式)A.错误B.正确参考答案:A29.一个C程序可以包含多个函数,但只能有一个main()函数。
)A.错误B.正确参考答案:B30.在C程序中有如下语句:char *func(int x,int y); 它是()A.对函数func的定义B.对函数func的调用C.对函数func的原型说明D.不合法的参考答案:C31.以下不表示循环结构的是()A.do-whileB.switchC.forD.while参考答案:B32.假设有int A[10],*p; 则p=&a[0]与p=a等价)A.错误B.正确参考答案:B33.设有以下宏定义:#define H 30 #define LEN H+20则执行赋值语句v=LEN*10; 后,v的值是()A.60B.230C.500D.0参考答案:B34.a==b; 的功能是将b的值赋给a)A.错误B.正确参考答案:A35.为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与哪个if组成配对关系?()A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if参考答案:C36.表达式0195是一个八进制整数)A.错误B.正确参考答案:A37.有以下程序:fun(int a,int b) {if(a>b) return(a); else return(b);} main() {int x=3,y=8, z=6,r; r=fun (fun(x,y),2*z); printf(“%d\n”,r);} 程序运行后的输出结果是()。
A.3B.6C.8D.12参考答案:D38.表达式0x13&0x17的值是()A.0x17B.0x13C.0xf8D.0xec参考答案:B39.当说明一个共用体变量时,系统分配给它的内存是()A.各成员所需内存容量的总和B.共用体中一个成员所需内存C.各成员所需内存容量的最大值D.共用体中最后一个成员所需内存参考答案:A40.不允许对二维数组的部分元素赋初值)A.错误B.正确参考答案:A41.C程序是以源程序文件为单位进行编译的)A.错误B.正确参考答案:B42.若有以下调用语句,main() {...int a[50],n; ...fun(n,&a[9]);} 则不正确的fun函数的首部是()A.void fun(int m,int x[])B.void fun(int s,int h[41])C.void fun(int p,int *s)D.void fun(int n,int a)参考答案:C43.允许定义无名结构,但是它只能在定义结构类型时定义一次结构变量)A.错误B.正确参考答案:B44.019是一个合法的整型常量)A.错误B.正确参考答案:A45.不正确的指针概念是()A.一个指针变量只能指向与其类型相同的变量B.一个变量的地址称为该变量的指针C.只有同一类型变量的地址才能存放在指向该类型变量的指针变量之中D.指针变量可以赋任意整数,但不能赋浮点数参考答案:D46.设有如下定义: char *aa[2]={“abcd”,“ABCD”}; 则以下说法中正确的是()。
A.aa数组成元素的值分别是“abcd”和“ABCD”B.aa是指针变量,它指向含有两个数组元素的字符型一维数组C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D.aa数组的两个元素中各自存放了字符‘a’和‘A’的地址参考答案:D47.以下程序:main( ) {int a=011; printf(“%d\n”,a);} 的输出结果是()A.12B.11C.10D.9参考答案:D48.联合变量与结构变量的最大区别在于,联合变量的所有成员占用同一段内存,而结构变量的成员占用不同的内存)A.错误B.正确参考答案:B49.在对某一函数进行多次调用时,系统会对相应的自动变量重新分配存储单元)A.错误B.正确参考答案:B50.数组名作为实参调用函数,实际传给形参的是数组中全部的元素值)A.错误B.正确参考答案:A。












