第1页(共4页)绝密★启用前黑龙江外国语学院继续教育学院2014年秋季学期《C语言程序设计》试卷(B卷)题号一二三总分评卷人审核人得分一、选择题(本大题共10小题,每小题3分,共30分)1.变量的指针,其含义是指该变量的。A)值B)地址C)名D)一个标志2.若有说明int(*p)[3];则以下是正确的叙述。A)p是一个指针数组B)p是一个指针,它只能指向一个包含3个int类型元素的数组C)p是一个指针,它可以指向一个一维数组中的任一元素D)(*p)[3]与*p[3]等价3.以下是对共用体类型数据的正确描述。A)一旦定义了一个共用体变量后,即可引用该变量或该变量中的任何成员。B)一个共用体变量中可以同时存放其所有成员C)一个共用体变量中不能同时存放其所有成员D)共用体类型数据可以出现在结构体类型定义中,但结构体类型数据不能出现在共用体类型定义中。4.若有语句intarray[3][4];以下对下标为i和j的数组元素的引用不正确的是。A)array[i][j]B)*(*(array+i)+j)C)*(array[i]+j)D)*(array+i*4+j)5.一般情况下,文件占用存储空间较多。A)二进制文件B)文本文件C)随机文件D)顺序文件6.以下引用非法的是。structstudent{intnum;intage;}stu1,*p;p=&stu1;A)stu1.ageB)student.ageC)p-ageD)(*p).age7.指针变量一定不能进行的运算是。A)+B)-C)=D)/8.以下关于main()函数的说法,正确的是。A)main()必须是程序的第一行B)main()可以有参数C)一个程序可以有多个main()D)main()可以被用户自定义的函数调用9.关于下面的函数,正确的说法是。本题得分第2页(共4页)voidSwap(int*p1,int*p2){int*p;*p=*p1;*p1=*p2;*p2=*p;}A)交换*p1和*p2的值B)正确,但无法改变*p1和*p2的值C)交换*p1和*p2的地址D)编译时可能出现警告错误10.若对文件的操作未到文件尾时,feof(fp)函数的返回值是。A)EOFB)1C)0D)不定的非零值二、填空题(本大题共10小题,每空2分,共30分)1.下列程序段的输出结果是。inti=19,j;j=i%4;printf(“%d”,j);2.已知fun1函数的功能是将三个数按由大到小的顺序调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能。voidfun2(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidfun1(){inta=20,b=30,c=25;if(cb)fun2(______________,____________);if(ac)fun2(___________,__________);if(ab)fun2(_____________,______________);}3.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33回车,则输出结果是。#includestdio.hmain(){chara,b;a=getchar();scanf(%d,&b);a=a-'A'+'0';b=b*2;printf(%c%c\n,a,b);}本题得分第3页(共4页)4.以下程序运行后的输出结果是。main(){inta=3,b=4,c=5,t=99;if(ba&&ac){t=a;a=c;c=t;}if(ac&&bc){t=b;b=a;a=t;}printf(%d%d%d\n,a,b,c);}5.若已知a=10,b=20,则表达式!ab的值是__________________6.若s是unsignedint型变量,则下面表达式的值是________________。s%2+(s+1)%27.下面程序将字符数组a复制到字符数组b中。main(){chara[]=Iamaboy.,b[20];inti;for(i=_____________;a[i]!='\0';i++){______________________;}_________________________;}8.若有inta[3][2]={{1},{3,2},{4,5}};,则a[1][1]的值是。9.有以下程序,执行后输出结果是。main(){intt=1,i=5;for(;i=0;i--)t*=i;printf(%d\n,t);}10.在循环语句中,break语句的作用是,continue语句的作用是。三、写出程序的运行结果(本大题共2小题,每题20分,共40分)1.写出程序运行后的输出结果main(){inta=1,b;for(b=1;b=10;b++){if(a=8)break;if(a%2==1){本题得分第4页(共4页)a+=5;continue;}a-=3;}printf(%d\n,b);2.写出程序运行后的输出结果#includestring.hchar*ss(char*s){returns+strlen(s)/2;}main(){char*p,*str=abcdefgh;p=ss(str);printf(%s\n,p);}第4页(共4页)答案:一、单选题ABCDBBDBDC二、填空题1.3。2.if(cb)fun2(__&c,&b____);if(ac)fun2(__&a,&c____);if(ab)fun2(__&a,&b____);}3.1B。4.435。5.___0______6.__1__。7.for(i=___0____;a[i]!='\0';i++){__b[i]=a[i]___________;}__b[i]=’\0’__;}8.2。9.0。10.是用来跳出当前一层循环的,终止本次循环。三、写出程序的运行结果1.写出程序运行后的输出结果main(){inta=1,b;for(b=1;b=10;b++){if(a=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf(%d\n,b);}输出结果:b=42.写出程序运行后的输出结果#includestring.hchar*ss(char*s){returns+strlen(s)/2;}main()第4页(共4页){char*p,*str=abcdefgh;p=ss(str);printf(%s\n,p);}输出结果:efgh