您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 会议纪要 > 2015韩山师范学院《高级语言程序设计》样卷
(A卷)第1页共13页1韩山师范学院专升本插班生考试样卷计算机科学与技术专业高级语言程序设计样卷题号一二三四五六七八九十总分评卷人得分一、填空题(每空1分,共10分)1.C语言的数据类型中,构造类型包括:数组、结构体和共用体。2.在C程序中,指针变量能够赋地址值或变量值。3.C目标程序经连接后生成扩展名为exe的可执行程序文件。4.设有定义语句staticchars[5」;则s[4]的值是0。5.设x为int型变量。与逻辑表达式!x等价的关系表达式是X==0。6.若一全局变量只允许本程序文件中的函数使用,则该变量需要使用的存储类别是static。7.磁盘文件按文件读写方式分类可以为顺序存取文件和随机存取文件。8.设有下列结构体变量xx的定义,则表达式sizeof(xx)的值是_________。struct{longnum;charname[20];union{floaty;shortz;}yz;}xx;二、单项选择题(每小题1.5分,共30分)题号12345678910答案题号11121314151617181920(A卷)第2页共13页2答案1.设有定义intx=8,y,z;则执行y=z=x++,x=y==z;语句后,变量x值是(B)A、0B、1C、8D、9逗号表达式的运算过程为:从左往右逐个计算表达式所以先计算y=z=x++;y=z=x=8,x再自加,x=9再计算x=y==z;y=z=8,所以y==z为真,x=12.有以下程序main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf(%d,%d,%d\n,i,j,k);}执行后输出结果是(C)A、1,1,2B、2,2,1C、2,2,2D、2,2,3[解析]该题目的关键是要搞清楚“&&”和“‖”两个逻辑运算符的运算功能。运算符“&&”和“‖”是双目运算符,要求有两个运算量。且规定逻辑与运算中,只有前面运算量的值为真时,才需要判别后面的值。只要前面为假,就不必判别后面的值。而逻辑或则为只要前为真,就不必判别后面的值;只有前为假,才判别后。本题中j++值为真,不进行k++的运算,所以k的值保持不变。3.已知i、j、k为int型变量,若从键盘输入:1,2,3回车,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)A、scanf(“%2d%2d%2d”,&i,&j,&k);(A卷)第3页共13页3B、scanf(“%d%d%d”,&i,&j,&k);C、scanf(“%d,%d,%d”,&i,&j,&k);D、scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);4.有以下程序main(){inta=5,b=4,c=3,d=2;if(abc)printf(%d\n,d);elseif((c-1=d)==1)printf(%d\n,d+1);elseprintf(%d\n,d+2);}执行后输出结果是(B)A、2B、3C、4D、编译时有错,无结果5.以下程序段(C)x=1;do{x=x*x;}while(!x);A、是死循环B、循环执行二次C、循环执行一次D、有语法错误6.以下不能正确定义二维数组的选项是(D)A、inta[2][2]={{1},{2}};B、inta[][2]={1,2,3,4};C、inta[2][2]={{1},2,3};D、inta[2][]={{1,2},{3,4}};[解析]选项A)定义的数组按行各数组元素分别是:1,0,2,0;选项B)定义的数组按行各数组元素分别是:1,2,3,4;选项C)定义的数组按行各数组元素分别是:1,0,2,3;因为定义数组时,第一维的长度可以不指定,第二维的长度必须指定,所以选项D)错。7.有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;(A卷)第4页共13页4for(i=0;i4;i++)s+=aa[i][1];printf(“%d\n”,s);}程序运行后的输出结果是(B)A、11B、19C、13D、208.以下程序的输出结果是(B)main(){charch[3][5]={AAAA,BBB,CC};printf(\%s\\n,ch[1]);}A、AAAAB、BBBC、BBBCCD、CC9.有以下程序#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf(“%d\n”,i);}执行后输出结果是(A)A、28B、22C、16D、4解析:本题中首先将所有的宏替换掉,则表达式为i=4+4*4+4/2+2*2+2,故最后输出的i值为28。10.决定C语言中函数返回值类型的是(D)。A、return语句中的表达式类型B、调用该函数的主调函数类型C、调用函数时临时指定的类型D、定义函数时在函数首部中所指定的类型(若缺省,则隐含为int型)。11.系统对预处理命令(如宏替换、文件包含、条件编译)的处理时机是(B)。(A卷)第5页共13页5A、编译源程序B、编译源程序之前C、连接目标文件时D、运行程序时12.在位运算中,操作数每左移一位,其结果相当于(A)A、操作数乘以2C、操作数除以2B、操作数除以4D、操作数乘以413.下述描述中不正确的是(C)。A、字符型数组中可以存放字符串B、可以对字符型数组进行整体输入、输出C、可以对整型数组进行整体进行输入、输出D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值[解析]本题考查对数组的理解。C语言规定只能逐个引用数组元素,而不能一次引用整个数组。对于字符数组,可以将整个字符串一次输入或输出。所以,选项C)不正确。14.若有以下定义inta[2][3],则对a数组第i行第j列元素的正确引用是(A)A、*(*(a+i)+j)B、(a+i)[j]C、*(a+i+j)D、*(a+i)+j15.有以下程序voidfun(char*a,char*b){a=b;(*a)++;}main(){charc1='A',c2='a',*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf(%c%c\n,c1,c2);}程序运行后的输出结果是(A)(A卷)第6页共13页6A、AbB、aaC、AaD、Bb16.已定义以下函数Fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数Fun的功能是(A)A、将p1所指字符串复制到p2所指内存空间B、将p1所指字符串的地址赋给指针p2C、对p1和p2两个指针所指字符串进行比较D、检查p1和p2两个指针所指字符串中是否有'\0'[解析]函数funO中只有一条while循环语句,其循环条件为:当表达式(*p2=*p1)!='\0'的值为真时则循环,即先将p1所指内容赋给p2所指地址,然后判断该内容是否为字符串结束符'\0',是则循环结束,否则执行循环体,让p1和p2同时后移一位。所以该函数实现的是“将p1所指字符串复制到p2所指内存空间”17.设有以下结构体类型:structst{charname[8];intnum;floats[4];}student[50];并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,以下不正确的形式是(C)A、fwrite(student,sizeof(structst),50,fp);B、fwrite(student,50*sizeof(structst),1,fp);C、fwrite(student,25*sizeof(structst),25,fp);D、for(i=0;i50;i++)fwrite(student+i,sizeof(structst),1,fp);(A卷)第7页共13页718.若有说明语句chara[]=Itismine;char*p=Itismine;则以下不正确的叙述是(D)A、a+1表示的是字符t的地址B、p指向另外的字符串时,字符串的长度不受限制C、p变量中存放的地址值可以改变D、a中只能存放10个字符19.当调用函数时,实参是一个数组名,则向函数传送的是(B)A、数组的长度B.数组的首地址B、数组每一个元素的地址C、数组每一个元素中的值[评析]当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址,函数中的形参可定义成以下三种形式;①形参定义成数组;②形参定义成可变长数组;③形参定义为指针变量。20.设有变量说明inta=3,b=6;charc;若执行赋值语句c=(a^b)2;则c的二进制值是(D)。A、00011100B、00000111C、00000001D、00010100三、阅读程序,将运行结果写到各题右侧的空白处(每小题4分,共20分)1.#includestdio.hmain(){charstr[]=1234567;inti;(A卷)第8页共13页8for(i=0;i7;i+=3)printf(%s\n,str+i);}2.#includestdio.hmain(){inti;for(i=0;i3;i++)switch(i){case0:printf(%d,i);case2:printf(%d,i);default:printf(%d,i);}}3.#includestdio.hmain(){inti;for(i=1;i6;i++){if(i%2){printf(#);continue;}printf(*);}printf(\n);}(A卷)第9页共13页94.#includestdio.hintb=1;func(intp){staticintd=5;d+=p;printf(%d,,d);return(d);}main(){inta=3;printf(%d\n,func(a+func(b)));}5.#includestdio.hstructstu{intnum;charname[10];intage;};voidpy(structstu*p){printf(%s\n,(*p).name);}main(){structstustudent[3]={{1001,Sun,25},{1002,Ling,23},{1003,Shen,22}};py(student+2);}(A卷)第10页共13页10四、阅读程序或程序段,填空(每小题4分,共20分)1.下面程序的功能是调用fun函数以删除字符串中指定的字符,请填空。voidfun(chars[],intc){inti,j;for(i=0,j=0;s[i]!='\0';i++)if()s[j]='\0';}main(){charstr[]=abcdefgAbcd,ch;scanf(%c,&ch);fun(str,ch);printf(%s\n,str);}2.下面程序是按学生姓名查询其排名和平均成绩,查询可连续进行直到键入0时结束,请填空。#includestring.h#defineNUM4structstudent{intrank;char*name;floatscore;};stu[]={3,”Tom”,89.3,4,”Mary”,78.2,1,”Jack”,95.1,2,”Jim”,90.6};main(){charstr[10];inti;(A卷)第11页共13页11do{printf(Enteraname:);scanf(%s,str);for(i=0;iNUM;i++)if(){printf(%s,%d,%f\n,stu[i].name,stu[i].rank,stu[i].score);break;}if(i=NUM)printf(Notfound\n);}while(strcmp(str,”0”)!=0);}3.下面程序是用“顺序查找法”查找数组中的元素,请填空。main(){inta[8]={25,57,48,37,12,92,86,
本文标题:2015韩山师范学院《高级语言程序设计》样卷
链接地址:https://www.777doc.com/doc-4721062 .html