18次省计算机等级笔试题.doc_第1页
18次省计算机等级笔试题.doc_第2页
18次省计算机等级笔试题.doc_第3页
18次省计算机等级笔试题.doc_第4页
18次省计算机等级笔试题.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

一、是非判断题 (每小题1分,共10分)(判断下列各小题的叙述正确与否,如正确,在客观答题纸上对应编号选A,否则选B)1白盒测试时,测试者不考虑程序的内部结构和特性。 (1)2简单选择排序算法是稳定的排序算法。 (2)3实存管理技术中,每个分区内的地址是连续的。 (3)4在面向对象的程序设计中,对象的动作取决于发送给该对象的消息。 (4)5在结构化程序设计中, N S 图是用于详细设计的工具之一 。 (5)6线性顺序队列会产生“假溢出”,而线性循环队列则不会。 (6)7二分查找可以对链表进行查找,但是链表必须是按关键字有序排列。(7)8“二叉树”是一种特殊的树,特点是每个分支节点都存在左右子树。 (8)9链接文件只适合顺序存取,索引文件则可以方便的实现随机存取。 (9)10定长和变长记录式文件都是无结构的。 (10)二、选择题(每小题1分,共5分)1对进程的描述错误的是( 11 )11 (A)进程有3种状态,就绪、执行、等待 (B)进程是系统分配资源的基本单位 (C)操作系统对进程的控制是通过原语来实现的 (D)进程总是在就绪状态下结束2以下哪个不是死锁产生的必要条件( 12 )。12 (A)互斥条件 (B)全部分配条件 (C)环路条件 (D)不可剥夺条件3线性链表中的结点一般有3种信息:直接前趋、数据域和直接后继,属于单向链表所独有的是 ( 13 )。 13 (A)直接前趋和数据域 (B)数据域和直接后继 (C)直接前趋和直接后继 (D)直接前趋、数据域和直接后继 4软件总体设计所得到的是( 14 )。14 (A)数据流图和数据字典 (B)软件每个模块的详细算法 (C)数据结构和软件的系统结构 (D)需求说明书5一组待排序元素的排序码序列(11, 7 , 20 , 9 , 13 , 2 ,14) ,以排序码11作为划分依据,则第一趟快速排序完后,排序码序列为 ( 15 )。15 (A)11,7,20,9,13,2,14 (B)2,7,20,11,13,9,14 (C)2,7,11,9,13,20,14 (D)2,7,9,11,13,20,14一、 单项选择题(每小题1分,共10分)1.有下列程序段,请选择( 16 )。 char a10=”3821631”; char *p=a; printf(“%c”,p1-0);16 (A)输出格式错误 (B) p1语法错误(C)输出8 (D) 输出ASCII码为8的字符2. 下列程序的输是( 17 )。#include stdio.hvoid main()int a=-1,b=4,k;k=(a+=0)&(!(b-=0);printf(%d,%d,%d,k,a,b);17 (A) 0,0,3 (B) 0,1,2 (C) 1,1,2 (D) 1,0,33. 设x为整型变量,不能正确表达数学关系:7x11的C语言表达式是( 18 )。18 (A) 7x7&x11 (D) !(m=11)4.下列程序段中,正确的是( 19 )。19 (A)int x=0,y=10; (B) int x=0,y; switch(x) switch(x) case y:x+;break; case x0:y=1;break;case y+2:x+=10;break; case x=0:y=0;break;case y-1:x=-7;break; case x0;y=-1;break; (C) #define y 20 (D) int x=0,y;int x=10,z; switch(x)switch(x) case 3:case 12:z=3;break; case 1:y=2;break; case y+1:z+=10;break; case 2:break; case y-8:y-=3;break; 5. 定义如下数组s: char s81;若准备将字符串“This is a string.”记录下来,( 20 )是错误的输入语句。20 (A) gets(s+2); (B) scanf(“%20s”,s); (C) for(i=0;i17;i+) (D) while(c=getchar( )!=n) si=getchar( ); si+=c;6. 下述函数aaa的功能是( 21 )。int aaa(char *s) char *t=s;while(*t+);return t-s; 21 (A) 求字符串长度 (B) 比较两个串的大小 (C) 将串s复制到串t中 (D) 以上三种说法均不对7. 下述程序的输出结果是( 22 )。 int x=10; int y=x+; printf(“%d,%d”,(x+,y),y+); (A) 11,10 (B) 11,11 (C) 10,10 (D) 10,118. 若有说明 int i,j=2,*p=&i; ,则能完成i=j赋值功能的语句是( 23 )23 (A) i=*p; (B) *p=j; (C) i=*j; (D) i=*p;9. main ( ) union data int i ; char ch ;float f ; float x ; a ; a .i = 1 ; a. ch = a ; a .f = 1.5 ; printf ( “%f , %f n” , a .f , a.x ) ; 该程序运行结果是( 24 )。24 (A) 1.5 (B)1.5 , 1 (C) 1.5 , 1.5 (D) 1 , 1.510. 已知结构体:structperson char name20 ; int age; ; 下列操作正确的是( 25 )25 (A)struct person person1=“Tom” , 20; (B)struct person person1; person1=“Tom” , 20; (C)struct person person1; scanf(“%s%d” , name , &age); (D)struct person person1=“Tom” , 20; printf(“%s%d” , person1);二、读程序回答问题(每个选择3分,共45分)1. 运行下列程序后,test中的结果为( 26 )。#include “stdio.h”#include “string.h”void fun(char *fname , char *st) FILE *myf ; int i ; myf=fopen(fname , “w”) ; for( i=0 ; istrlen(st) ; i+ +)fputc(sti , myf) ; fclose(myf) ;main( ) fun(“test” , “new world”) ; fun(“test” , “hello”) ;26 (A)new world (B) new worldhello (C)hello (D) hello,world2. 读下列程序,分别选择3条printf语句行的正确输出结果。point1( int x , int y) int t=1;x=x+t ; y=y+t;return ; point2( int *x , int *y) int t=1;*x=*x+t ; *y=*y+t;return ; void point3 ( char * p ) p + =1 ; *p =*p +1 ; main ( ) char b 4 = a, c, s, f , *pt = b ;int x =3 , y = 4 ;point1( x , y ) ;27 printf ( “ %d , %d n ”, x , y ) ;point2( &x , &y ) ;28 printf ( “ %d , %d n ”, x , y ) ;point3( pt ) ;29 printf ( “ %c n ”, *( pt + 1) ) ;27 (A) 4 , 5 (B) 3 , 4 (C) 4 , 3 (D) 5 , 428 (A) 4 , 5 (B) 3 , 4 (C) 4 , 3 (D) 5 , 429 (A) c (B) s (C) acsf (D) d3. 有下列程序 #include func(int x) int y=0;L1:static z=3; x=z+,y+; return(x); main() int a=2,i,b; for(i=0;i2;i+) b=func(a+); printf(%dn,b); 执行后输出的结果是( 30 )。30 (A) 4 (B) 5 (C) 3 (D) 0如果将语句L1:static z=3;改为L1:int z=3;程序执行后输出的结果是( 31 )。 31 (A) 4 (B) 5 (C) 3 (D) 04#include “stdio.h”char *cat( char *str1 , char *str2 ) char *pt ; for(pt=str1 ; *pt!=0 ; pt + +) ; while(*str2!=0) *pt + +=*str2 + + ; *pt=0 ; return (pt) ; main( ) char *p , s130 = “210” , s230 = “45” ; p=cat(s1 , s2) ; p=cat(s1 , s2) ; printf(“%dn” , p s1) ; (1) 该程序运行的结果为( 32 )。32 (A) 5 (B) 6 (C) 7 (D) 8(2) 如果去掉 *pt=0 ; 程序运行的结果为( 33 )。33 (A) 5 (B) 6 (C) 7 (D) 85. 读程序,回答问题。#include main( ) char *s=”12134211”;int a=0, b=0, c=0, d=0;int k;for(k=0;sk;k+) switch(sk) default: d+; case 1: a+; case 3: c+; case 2: b+; printf(“a=%d, b=%d, c=%d, d=%d”,a,b,c,d);(1)该程序运行结束时, k的值是( 34 )。34 (A) 7 (B) 8 (C) 9 (D) 10(2) 该程序的输出结果是( 35 )35 (A) a=4,b=2,c=1,d=1 (B) a=4,b=9,c=3,d=1(C) a=5,b=8,c=6,d=1 (D) a=8,b=8,c=8,d=86. 读程序,回答问题。#include void fun(char *m); void main( ) char *s =“BASIC”,”FORTRAN”,”C”; char *p=s; fun(p); puts(*p); void fun(char *m) +m; printf(“%s,”, *m); (1)语句puts(*p);输出结果是( 36 )。36 (A) BASIC (B) C (C) SICA (D) FORTRAN(2)语句printf(“%s,”, *m);输出结果是( 37 )。37 (A) BASIC, (B) SICA, (C) FORTRAN, (D) BASIC,7. 读程序,回答问题。swap( int *p1 , int *p2 ) int *temp ;temp=p1; p1=p2 ; p2=temp ;*p1+1 ; *p2+1 ;4: printf(“%d , %dn” , *p1 , *p2 );main( ) int a=4 , b=5 , *pointer1 , *pointer2 ;pointer1=&a ; pointer2=&b ;swap( pointer1 , pointer2 ) ;10: printf(“%d , %dn” , *pointer1 , *pointer2 ) ; (1) 该程序swap函数中的printf的输出为( 38 )。38 (A) 4 , 5 (B) 6 , 5 (C) 5 , 4 (D) 5 , 6(2) 该程序main函数中的printf的输出为( 39 )。39 (A) 4 , 5 (B) 6 , 5 (C) 5 , 4 (D) 5 , 68. 读程序,回答问题。#include stdio.hunion un int i; char c2;void main() union un x; x.c0=10; x.c1=1; printf(n%d,x.i);程序执行后的输出结果为( 40 )。40 (A) 11 (B) 266 (C) 265 (D) 138三、程序填空(每空2分,共30分)1. 下述程序在数组中同时查找最大元素下标和最小元素下标,分别存放在main函数的变量max和min中,请填空。# include void find(int *a, int n, int *max, int *min) int i; *max=*min=0; for(i=1;ia*max) (1) ; else if(aia*min) (2) ; return;void main( ) int a =5,8,7,6,2,7,3; int max,min; find( (3) ); printf(“n%d,%d”,max,min);2. 输入6个用户的用户名和密码,用户名为15个字符以内的字符串,密码为5个字符的定长字符串。新建一个文件,将用户名和密码以结构体的形式存入,要求密码存放时将每个字符的ASCII码加1。#includemain() struct person char name16; char code6; per; int k,j; (1) ; char fname20; scanf(%s,fname); if(fp=fopen(fname,wb)=NULL) printf(fail creat failed!n); exit(0); for(k=0;k6;k+) scanf( (2) ); for(j=0;j5;j+) (3) ; fwrite(&per,sizeof(struct person),1,fp); fclose(fp); 3. 下面程序的功能是在三个字符串中找出最小的。#include stdio.h#include string.hmain( ) char s20 , str320 ; int i ; for( i=0 ; i 3 ; i+ ) (1) ; strcpy( s , (strcmp(str0,str1)0? str0 :str1 ) ) ; if ( (2) 0 ) strcpy( s , str2 ) ; printf( %sn , (3) ) ;4. 下述程序通过命令行参数将任意多个文本文件连接到第二个命令行参数所命名的文件中。文件每行字符的个数小于BUFFSIZE。请填空。# include # define BUFFS

温馨提示

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

评论

0/150

提交评论