真题笔试部分.doc_第1页
真题笔试部分.doc_第2页
真题笔试部分.doc_第3页
真题笔试部分.doc_第4页
真题笔试部分.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

真题一一、选择题(每小题1分,共10分)若有以下说明和语句,且0=i10,则_C_是对数组元素的错误引用。int a10,*p=a; A *(a+i) B ap-a C p+I D pi2现已定义:char b6,*p=b;选择正确的赋值语句_C_。A b=”china” B *b=”china” C p=”china” D *p=”china”?3运行下列程序后,全局变量t.x和t.s的正确结果为_B_。 struct tree int x;char *s; ; fun(struct tree t)/ 形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量 t.x=10;t.s=”computer”;return(0); main() struct tree t; t.x=1; t.s=”minicomputer”; fun(t); printf(”%d,%sn”,t.x,t.s);A 10,computer B 1,minicomputer C 1,computer D 10,minicomputer4若fp是指向某文件的指针,且已读到文件的末尾,则表达式feof(fp)的返回值是_C_。 A 0 B -1 C 非零值 D NULL5正确的指针数组的描述是_C_。 A int (*a)10 B int aij C int *a10 D 指针数组表示一个指针指向数组6如下,哪个是c语言绘图时必须使用的语句_C_。 A #include /定义了通过控制台进行数据输入和数据输出的函数 B #include C gdriver=VGA /图形驱动器为VGA 图形适配器 D window(20,5,50,20);/ 建立字符模式下的矩形字符窗口window(left,top,right,bottom);7main() int x=3,y=2,z=1; printf(“%s=%dn”,”x/y&z”,x/y&z);程序的输出结果是:_B_。 A x/y&z=0 B x/y&z=1 C xy&z=0 D xy&z=1/优先诀括号成员第一; /括号运算符() 成员运算符. -全体单目第二; /所有的单目运算符比如+ - +(正) -(负) 指针运算*&乘除余三,加减四; /这个余是指取余运算即%移位五,关系六; /移位运算符: ,关系: = y A 0,1,0 B 0,1,1 C 0,0,0 D 1,1,0二读程序,并选出正确的答案(每空3分,共45分)1#include int find(char *s1, char *s2) int t; char *p1,*p2; for(t=0;s1t;t+) p1=&s1t; p2=s2; while(*p2&*p2=*p1)/先算*p2=*p1 p1+; p2+; if(!*p2) return(t);return -1; main() if(find(“c is fun”,”is”)!=-1) L1: printf(“is”); if(find(“c is fun”,”Basic”)!=-1) L2:printf(“basicn”);(11)行L1输出的结果为_A_。A is B i C c is fun D没有输出 (12)行L2输出的结果为_D_。 A Basic B c is fun C basic D没有输出2main() int w=2,k; for(k=0;k3;k+) w=f(w); printf(“%dn”,w);f(int x) int y=0; static z=3; y+;z+; return (x+y+z);程序结束后,y的值为_B_。(13) A 0 B 1 C 2 D 3 程序结束后,w的值为_A_。(14) A 20 B 7 C 28 D 133int x1=30,x2=40; main() int x3=10,x4=20; sub(x3,x4); sub(x2,x1); L1:printf(“%d,%d,%d,%dn”,x3,x4,x1,x2);sub(int x, int y) x1=x;x=y;y=x1; L2:printf(“%d,%dn”,x,y);L1行输出结果为_D_。(15) A 10,20,30,40 B 10,20,40,10 C 20,10,40,30 D 10,20,40,40 L2行输出结果为_B_。(16) A 10,20 B 20,10 C 10,20 D 20,10 40,10 10,40 10,40 40,104main() int x=1,i=1; for(;x10) break; if(x%2!=2) x+=3;continue; x-=1;printf(” %dn”,x); 17该语句输出为_D_。printf(” %dn”,i); 18该语句输出为_D_。修订为:main() int x=1,i=1 ; for( ;x10) break ; if(x%2 !=0) x+=3 ;continue ; x-=1 ;printf( %dn,x) ; / Dprintf( %dn,i) ; / D(17) A 11 B 14 C 10 D 12(18) A 7 B 8 C 9 D 105以下程序不用第三个变量实现两个数对调的操作。程序中(19)为_A_,(20)为_B_,(21)为_B_。 #includ main() int a,b; scanf(“%d,%d”&a,&b); a=_A_;(19) b=_B_;(20) c=_B_;(21) printf(“%d,%d”,a,b);修订为:#include main() int a,b; scanf(%d,%d,&a,&b); a=a+b; b=a-b; a=a-b; printf(%d,%d,a,b); (19) A a+b B a-b C a*b D a/b (20) A a+b B a-b C b-a D a*b (21) A a+b B a-b C b*a D a/b6#include void stringcat(char *s, char *t) int i=0,j=0; while(*(s+i) i+; while(si+=tj+);main() char s=”123”,t=”456”; stringcat(s,t); printf(“%sn”,s);修订为:程序运行结果为:_C_。 (22) A 123 B 456 C123456 D456123在程序中,若将指针改为数组,stringcat函数的形式为: void stringcat(char s, char t) int i=0,j=0; while(*si!=0) i+; while(si+=tj+);修订为: void stringcat(char s, char t) int i=0,j=0; while(si!=0) i+; while(si+=tj+);则程序运行后的结果为_C_。(23) A 123 B 456 C 123456 D 4561237main() int x=10,y; y=x+; printf(“%d,%dn”,(+x,y),y+);/表达式从右向左解 则程序运行后的结果为_D_。 (24) A 11,11 B 10,10 C 10,11 D 11,108main() struct data int i; float f; double d; union uchar u15; long u22; ud;printf(“%dn”,sizeof(struct sata);修订为:#include stdio.hmain() struct data int i; float f; double d; union uchar u15; long u22; ud;printf(%dn,sizeof(struct data);程序运行结果为:_C_。/按TC长度计算 (25) A 27 B 25 C 22 D 19三程序填空(每小题2分,共30分)1下面程序删除字符串中的所有空格(包括TAB符,回车符、换行符)。请在程序的对应位置处填入。(函数isspace()用于测试字符是否为空格) #include #include main() char str81=“1 2 3 4 5 6 7 8 9 ”; delspace(str); puts(str);delspace(str) char *str; int i,t; char is81; for(i=0,t=0;_(26) stri或stri!=NULL 或stri=0 _;_(27) +i或i+_) if(!isspace(_(28) *(str+i)或stri_) ist+=stri; ist=0; strcpy(str,is);/原型:extern int isspace(int c);/ 用法:#include / 功能:判断字符c是否为空白符 / 说明:当c为空白符时,返回非零值,否则返回零。 / 空白符指空格、水平制表、垂直制表、换页、回车和换行符。/从键盘输入五个字符组成的单词,判断该单词是不是hello,并显示结果。#include main() static char str=h,e,l,l,o; char str15; int i,_(29) flag _; for(i=0;i5;i+) str1i=_(30) getchar() _; flag=0; for(i=0;i5;i+) if(str1i!=_(31) stri _) flag=1; break; if(flag) printf(“This word is not hello”); else printf(“This word id hello”);3以下程序把从键盘输入的字符存放到一个文件中,用“#”作为结束符。请按题意要求填空完善程序。 #include main() FILE *fp; char ch,fname10; printf(“Input the file name:n”); gets(fname); if(_(32) fp=fopen(fname,”w”) _=NULL) printf(“cannot open filen”); exit(0);while(_(33)ch=getchar()_)!=#) fputc(ch,_(34) fp _);fclose(fp);4该程序是完成文件的换名拷贝操作(类似于DOS的COPY命令)。请将程序补充完善。 #include main(int argc,char *argv) int c; FILE *fpr,*fw; if(argc!=3) puts(“Usage:copyfile filename1 filename2”); exit(0);if(fpr=fopen(_(35) argv1,”r”_)=NULL) printf(“file %s Cannot open n”,argv1); exit(1);if(fpr=fopen(argv2,_(36) ”w”_)=NULL) printf(“file %s Cannot open n”,argv2); exit(2);while(c=_(37) fgetc _(fpr)!=EOF)fputc(c,_(38) fpw _);fclose(fpr);fclose(fpw);5该程序是利用折半查找法在一个数组中进行数据检索。当查找到时,给出数据在数组中的位置;查找不到,给出数据不在数组中的信息。请将程序完善。#define n 10int a=1,2,3,4,5,6,7,8,9,10;char ss(x,m) int x,m; char z; if(x=am) z=t; else if(xam) z=p; else z=r; return(z);main() int p,r,m,loop,x; char c; scanf(“%d”,&x); p=0;r=n-1; m=(r-p)/2; loop = 1; while(loop&(r-p) c=ss(x,m); if(c=t) loop=0; printf(“元素在数组中,其位置为:%dn”,m);else if(c=p) p=p;_(39) r=m _;m=(r-p)/2+p; else _(40) p=m+1_;r=r;m=(r-p)/2+p;if(loop) printf(“%d 数据不在数组中n”,x);答案:选择题(1)C (2)C (3)B (4)C (5)C (6)C (7)B (8)C (9)C (10)A二、选择题(11)A (12)D (13)B (14)A (15)D (16)B (17)D (18)D (19)A (20)B(21)B (22)C (23)C (24)D (25)C三、程序填空(26) stri或stri!=NULL 或stri=0 (27)+i或i+ (28)*(str+i)或stri(29)flag (30)getchar() (31)stri (32)fp=fopen(fname,”w”) (33)ch=getchar()(34)fp (35)argv1,”r” (36)”w” (37)fgetc (38)fpw (39)r=m (40)p=m+1真题二第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)(判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B)1C+语言中所定义的类实际上也是一种数据类型。 A2数据结构的表示包括数据逻辑结构和存储结构两个方面的表示。A3冒泡排序算法是一种只能实现升序排序,而不能实现降序排序的排序算法。B4线性表采用链式储存时,结点的存储地址必须是连续的。B5栈顶的位置是随着进栈和退栈操作而变化的。A6在软件生存期内,软件必须进行维护,维护不会产生副作用。B7采用动态重定位进行地址转换,允许程序在执行过程中在内存中移动。而静态重定位则不可以。A8在软件的需求分析阶段,要直接面向用户,主要考虑用户的经济承受能力和费用的支付问题。B9需求分析阶段的主要任务应由系统分析员主持完成。A10操作系统是最最重要的系统软件。A二、选择题(每小题1分,共5分)1以下特征中哪个不是算法得特征(D)A 可行性 B 确定性 C有穷性 D 唯一性2在多道程序设计系统中,处于后备状态的作业要经过(B)调度后才能真正执行A 作业调度 B作业调度和进程调度 C 进程调度 D作业调度和设备调度3为解决CPU和I/O设备之间速度匹配问题,常采用“缓冲区”方法。“缓冲区”的结构多为(C)。A顺序栈 B链栈 C顺序队列 D 循环队列4对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。A 结合 B程序的效率 C封装 D 抽象5结构化程序设计主要强调的是(A)A 程序易读性 B 程序的效率 C程序设计语言的先进性 D程序的规模第二部分C与C+语言程序设计(共85分)一、单项选择题(每小题1分,共10分)1下列程序运行结果是(B )#includevoid swap(int x,int y)x=y;y=x;x=y;main()int a=010,b=1;swap(a,b);printf(%d,%dn,a,b);A 10,1 B 8,1 C 1,8 D 1,102有以下程序#include#includemain()char *p,*q ;p=(char*)malloc(sizeof(char)*20);q=p;scanf(“%s %s”,p,q);printf(%s,%sn,p,q);若输入:abc def,则输出为 (def,def)3. 下列程序的输出是()#includemain()int a=-1,b=4,k;k=(a+=0)&(!(b-=0);coutkabendl;输出 1034关于类概念的描述中,(A)是错误的A 类就是C语言中的结构体类型B 类是创建对象的样板C 类是具有共同行为的若干对象的统一描述体D 类是抽象数据类型的实现5.下列程序的运行结果是()#includeMain()Void fu();fu();fu();.Void fu()Static int a=0;Printf(“a=%d,”,!a? 1:8);运行结果 a=1,a=16.以下程序中,输出值是()#include#define M 3#define N M+1#define NN N*N/2Mai()Printf(“%dn”,NN);输出值 67.若有语句:char s1=”string1”,s28,*s3,*s4=”string2”;则(D)是对库函数strcpy的错误调用A)strcpy(s1,“string2”);B)strcpy(s4,“string1”);A)strcpy(s3,“string1”);A)strcpy(“string2”,s2);8以下(C)为不正确的if语句A)if(xy); B)if(x=y) x+=y; C)if(x!=y) x=x*x else x+=1; D)if(xy) x+;y+;9关于C+函数参数的描述中,错误的是(D)A 实参个数与形参个数可以不同B 缺省参数必须放在形参表的最右端C用引用变量做形参可以实现地址传递D 重载函数可以有缺省参数10.若有如下定义:struct nodeInt data;struct node *next;且已建立下面的链表结构,指针p,q分别指向图中所示接点,则不能将q所指结点插入到链表末尾的一组语句是()A、q-next=NULL;p=p-next;p-next=q;B、p=p-next;q-next=p-next;p-next=q;C、p=p-next;q-next=p;p-next=q;D、p=(*p).next;(*q).next=(*p).next;(*p).next=q;二、读程序回答问题1以下程序运行的结果为:()include”stdio.h”#include”string.h”Void fun(char *s,int m)Char t,*p1,*p2;P1=s;p2=s+m-1;While(p1p2) t=*p1+;*p1=*p2-;*p2=t;Main()Char a=”ABCDEFG”;Fun(a,strlen(a);Puts(a);运行结果为 AGAAGAG2.读下列c程序,选择正确的输出结果#include#includevoid fun(char str10,int n)char t20;int i,j;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(strlen(stristrlen(strj)strcpy(t,stri);strcpy(stri,strj);strcpy(strj,t);main()char str10=“abc”,”aabcd”,”abed”,”a”,”acdefg”;int i;fun(str,5);for(i=0;i5;i+)printf(“%2d”,strlen(stri); /输出6 5 4 3 2 1printf(“n”);for(i=0;i5;i+)puts(stri); /输出acdefg 换行 aabcd 换行 abed 换行 abc 换行 a3.以下是一个C+程序,读程序并回答运行结果#includeint fun(int u,int v)int temp;while(v!=0)temp=u%v;u=v;v=temp;return u;void main()int u,v;int t;coutuv;t=fun(u,v);couttendl; /输出5coutu*v/tendl; /输出304.以下程序的运行结果是()#includemain()int flag=1;char ch;doch=getchar();flag=chang(&ch,flag);putchar(ch);while(ch!=n);chang(c,fg);char *c;int fg;if(*c=)return 1;else if(fg &*c=a)*c+=A-a;return 0;运行结果:输入This is a book! 则输出This Is A Book!5.以下程序的运行结果是()#includemain()int a=1,b=2,c=3;a+;c+=b;int b=4,c;c=2*b;a+=c;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%dn”,a,b,c);运行结果 10,4,8,10,2,56.以下程序的输出是()#includemain()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0: a+;break;case 1: b+;break;case 2:a+;b+;break;case 3;a+;b+;printf(“a=%d,b=%dn”,a,b);程序输出结果 a=2,b=17.若有以下程序段,该程序功能是( )int a=4,0,2,3,1,k,j,t;for(j=I;j=0&tak)ak+1=ak;k-;ak+1=t;程序功能:对数组a进行插入排序(降序);插入排序是数组前面i-1个数已经排好序,将后面第i个插入到前面排好序的数列合适位置去8.程序运行的结果#includeint m33=1,2,3;int n33=1,2,3;main()printf(“%dn”,m10+n00); /3printf(“%dn”,m01+n10); /09程序运行结果()#includemain()struct dateint year,month,day;today;unionlong i;int k;char c;mix;printf(date=%dn,sizeof(struct date); /date=6printf(mix=%dn,sizeof(mix); /mix=410.读下面程序,程序命名为MyCopy.c/*-MyCopy.c-*/#includevoid main(int argc,char *argv)if(argc!=3)printf(n Format: MyCopyn);elseFILE *source,*destin;source=fopen(argv1,rb);destin=fopen(argv2,wb);if(source=NULL)printf(ERROR:Cannot open source file %s!n,argv1);else if(destin=NULL)printf(ERROR:Cannot open source file %s!n,argv2);elsewhile(!feof(source)fputc(fgetc(source),destin);fclose(source);fclose(destin);程序功能:将磁盘文件的信息显示在屏幕上当键入:MyCopy FILE1 FILE2 则程序将实现将一个FILE1复制到FILE2中三、程序填空1.以下程序的功能是将磁盘文件a.dat中的10个整数读入并进行升序排序#include “stdio.h”void sort(int *p,int n)int i,j,t;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(*(p+j)*(p+i)/pjpi)t=pi;pi=pj;pj=t;main()int a10,i,j,t;FILE *fp;for(i=0;i10;i+)fscanf(fp,”%d”,&ai);fclose(fp);for(i=0;i10;i+)printf(“%d”,ai);printf(“n”);sort(a,10);for(i=0;i10;i+)printf(“%d”,ai);printf(“n”);2.下列程序用递归算法实现,输入任意一个整数,在各数位之间插入空格后输出.#includemain()long int n;void func(long);scanf(“%ld”,&n);fun(n);void func(long int m)if(m=10)func(m/10);printf(“ %d”,m%10);3.程序功能:有10个数按升序放在一个数组中,输入一个数,要求用折半查找该数是数组中的第几个元素,如果该数不在数组中,打印出”NO”.折半查找法:设数组长度为n,则将输入的数m与an/2比较,若man/2,则将an/2到an的数继续折半进行查找.#includemain()int a10=12,32,45,62,71,76,80,85,90,95;int num,bott,top,mid;printf(“Input a number:n”);scanf(“%d”,&num);bott=0;top=9;while(bott=top)mid=(bott+top)/2;if(num= =amid) printf(“%d is the %d numbern”,num,mid+1);break;else if(numtop) printf(“N0n”);4有两个字符串str1和str2,将str1和str2对应字符中ASCII码值较大者存入字符数组str3的对应位置,若str1和str2长度不一致,则将较长字符串中剩余字符直接连接到str3的末尾.例如:str1存放字符串”abaxef”,str2存放字符串”bac”,则str3中的字符串为”bbcxef”.#include#includemain()int i;char str180,str280,str380=” ”;char *p1,*p2;p1=str1;p2=str2;gets(str1);gets(str2);for(i=0;*(p1+i)!=0&*(p2+i)!=0;i+)/stri!=0&str2i!=0if(*(p1+i)*(p2+i) str3i=*(p1+i);else str3i=*(p2+i);if(*(p1+i)!=0) strcat(str3,p1+i);/stri!=0else strcat(str3,p2+i);/strcat(str3,str2+j)printf(“Result:%sn”,str3);5.下面程序的功能是计算100至1000之间有多少个数其各位数字之和是5#includevoid main()int i,s,k,count=0;for(i=100;i=1000;i+)s=0;k=i;while(k)s=s+k%10;k=k/10;if(s!=5) continue;else count+;coutcountendl;真题三第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)(判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B)1、数据在计算机内存中的表示是指数据的存储结构。A2、能影响中断响应次序的技术是中断优先级和中断屏蔽。A3、链表可以随机访问任意一个结点,而顺序表则不能。B4、作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。B5、Windows、OS/2,Linux微机操作系统都是多用户多任务操作系统。B6、数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。A7、流式文件和记录式文件都以字符为基本单位进行存取。B8、不定长文件是指字段的长度不固定。B9、软件工程的三要素包括方法、工具和环境。B10、软件结构是以指令为基础而组成的一种控制层次结构。B二、选择题(每小题1分,共5分)1、若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能出栈的序列是(C)A、1,4,3,2B、2,3,4,1C、3,1,4,2D、3,4,2,12、任何两个并发进程之间(D)A、一定存在互斥关系B、一定存在同步关系C、一定彼此独立无关D、可能存在同步或互斥关系3、以下哪个特征不是分时操作系统的主要特征(C)A、中断管理B、独立性C、交互性D、多路性4、以下的准则中哪个不是面向对象软件设计应遵循的(B)A、抽象准则B、独立性准则C、信息屏蔽准则D、模块化准则5、需求分析中开发人员主要从用户那里了解( A)A、软件做什么B、软件的结构C、输入的信息C、软件的测试第二部分C与C+语言程序设计(共85分)一、单项选择题(每小题1分,共10分)1、若变量已定义并赋值,下列符合C语法的表达式是:(B)A、a:=b+1B、a=b=c+2C、int 18.5%3D、a=a+7=c+b2、以下程序输出的结果是(A)void main() char s=Hello China; s5=0; puts(s);A、HelloB、ChinaC、Hello ChinaD、03、有以下程序#include void main() char *p,*q; p=(char *)malloc(sizeof(char)*20); q=p; scanf(%s,%s,p,q); printf(%s,%sn,p,q);若输入abd def,则输出为(A)A、def,defB、abc,defC、abc,dD、d,d4、下列函数形式正确的是( D)A、double fun(int x,int y)B、fun(int x,y)z=x+y;int z; return z; return z;C、fun(x,y)D、 double fun(int x,int y) int x,y; double z; double z=x+y; z=x+y; return z; return z;5、下列有关类和对象的说法不正确的是()A、对象是类的一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论