四川省二级C语言21次考试试题.doc_第1页
四川省二级C语言21次考试试题.doc_第2页
四川省二级C语言21次考试试题.doc_第3页
四川省二级C语言21次考试试题.doc_第4页
四川省二级C语言21次考试试题.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

四川省普通高等学校计算机应用知识和能力第二十一次等级考试二级(C与C+语言)笔试试卷时间:2004年10月16日上午9:0011:00第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分) 1应用程序在执行过程中,需要通过打印输出数据时,一般先形成一个打印作业,将其存放在硬盘中的一个指定队列中。当打印空闲时,就会按先来后服务的方式从中取出待打印的作业进行打印。 ( 1 ) 2若无进程牌运行状态,则就绪队列和等待队列均为空。 ( 2 ) 3多道程序设计是指在一台处理上迸发运行多个程序逻辑。 ( 3 ) 4黑盒法是软件测试方法中的静态测试方法之一。 ( 4 ) 5软件的详细设计就是要编写出具体的程序。 ( 5 ) 6软件生命周期中花费最多的阶段是软件维护。( 6 ) 7Windows 是单用户多任务操作系统,UNIX是多用户多任务操作系统。( 7 ) 8进程把程序作为它的运行实体,没有程序也就没有进程。 ( 8 ) 9在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表和判定树。 ( 9 ) 10作业调度程序从后备队列中选一个作业装入主存后,决定能否占用处理机的是设备调度程序。 ( 10 )二、单项选择题(1分/小题,共5分) 1交换技术是在( 11 )之间交换程序和数据。11(A)主内存与CPU (B)CPU与外设 (C)主内存与外存 (D)外存与CPU 2以下的工具中哪个不是软件详细设计中使用的工具( 12 )。12(A)数据流图 (B)N-S图 (C)PDA图 (D)PDL语言 3任何两个并发进程之间( 13 )。13(A)一定存在互斥关系 (B)一定存在同步关系 (C)一定彼此独立无关 (D)可能存在同步或互斥关系 4进程从运行状态进入就绪状态的原因可能是( 14 )。14(A)被选中占有处理机 (B)等待某一事件 (C)等待的事件已发生 (D)时间片用完 5算法指的是( 15 )。15(A)计算机程序 (B)解决问题的有限运算序列 (C)排序算法 (D)解决问题的计算方法第二部分C与C+语言程序设计(共85分)一、单项选择题(每小题1分,共10分) 1以下程序运行后,输出结果是( 16 )。main() int a=1,b=2,m=0,n=0,k; k=(n=ba)|(m=a5)printf(“%d”,m+); else printf(“%d”,m-);17(A)7 (B)6 (C)5 (D)4 3下列程序运行的结果是( 18 )。 main() int a=10,b=11,c=12; printf(“%dn”, ab:b );18(A)11 (B)0 (C)10 (D)12 4已知:int a,b;下列switch语句中,( 19 )是正确的。19(A)switch(a) (B)switch(a+b) case a: a+;break; case 1: a+; case b: b+;break; case 2: b+; (C)switch(a*b) (D)switch(a/10+b) case 1,2: a+b; case a+b: +a;break; case 3,4: a-b; case a-b: -b; 5下列程序由两个件f1.c和f2.c组成。 f1.c文件的内容:# include # include # define N 3main() int i; for(i=1;i=N;i+) printf(“%d,”,sum(i);f2.c文件的内容:sum(int n) int t; static int s=0; for(t=1;tab; (B)cinaab; (D)cout ab; 7下列程序运行的结果是( 22 )。# include # define swap(x,y) x=y; y=x; x=y; main() int a=010,b=1; swap(a,b); printf(“%d,%dn”,a,b); 22(A)1,8 (B)8,1 (C)10,1 (D)1,10 8以下scanf 函数调用中对结构体变量成员的错误引用是( 23 )。struct student char name20; int age; int sex;stud5,*p;p=stud; 23(A)scanf(“%s”,); (B)scanf(“%d”,&stud0.age);(C)scanf(“%d”,p-age); (D)scanf(“%d”,&(p-sex) ); 9在以下关于构造函数的描述中,错误的是( 24 )。24(A)构造函数可以重载 (B)构造函数可以带缺省形参值(C)构造函数名必须与类同名 (D)构造函数可以带回返回值 10下面对C+函数重载的描述中,错误的是( 25 )25(A)函数名相同 (B)函数参数个数或参数类型至少有一个不同(C)函数参数不可以用缺省值 (D)函数返回值必须不同二、读程序回答问题(每个选择3分,共45分)。 1下列程序运行的结果为( 26 )。# include void fun(char *c,int d) *c=*c+1; d=d+1; printf(%c,%c,*c,d);main() char a=A,b=a; fun(&b,a); printf(%c,%cn,a,b); 26(A)B,a,B,a (B)a,B,a,B (C)A,b,A,b (D)b,B,A,b 2下面程序的输出是( 27 )。# include void test(int *u,int *v) int *w; w=u;u=v;v=w;main() int m=3,n=6,*x=&m,*y=&n; test(x,y); printf(%d %d, m,n); 27(A)3 6 (B)6 3 (C)0 0 (D)编译出错 3以下程序的输出结果是( 28 )。# include main() int x,y; for(x=1,y=1;x=20) break; if(y%3=1) y+=3; continue; y-=10; printf(%d,%dn,x,y); 28(A)8,22 (B)7,20 (C)6,22 (D)5,20 4fun(char *t1,char *t2) int i,j; while(*t2!=0) for(i=0,j=0;t1i;i+) if(t1i!=*t2) t1j+=t1i; t1j=0; t2+; main() char a=abcde,b=ae; fun(a,b); puts(a);该程序的输出结果为( 29 )。 29(A)abcde (B)bcd (C)abcdeae (D)ae 5以下程序的输出结果是( 30 )。# include # define FUN(y) 2.84+y# define PR(a) printf(%d,(int)(a)# define PRINT(a) PR(a);putchar(n)main() int x=2; PRINT(FUN(5)*x); 30(A)11 (B)12 (C)14 (D)15 6读下列程序,回答问题。# include void sort(int a) int i,j,t; for(i=0;i4;i+) for(j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; main() int a5= 5,10,-7,3,7,i,t,j; sort(a); for(i=0;i=4;i+) printf(%dn,ai);关于程序的说法正确的是( 31 )。 31(A)用选择法对数据按从小到大排列(B)用选择法对数据按从大到小排列(C)用冒泡法对数据按从小到大排列(D)用冒泡法对数据按从大到小排列 7 执行下面程序时输入“I will pass the exam!”,其输出结果是( 32 )。如果将程序中的scanf(“%s”,s)改为gets(s);同样输入”I will pass the exan!”,则程序的输出结果是( 33 )。# include int fun(char s) int i=0; while(si!=0) i+; return i;void main() char s81; printf(Please input a string:n); scanf(%s,s); printf(%dn,fun(s); 32(A)5 (B)21 (C)1 (D)17 33(A)5 (B)21 (C)1 (D)17 8以下是一个C+程序# include class Sample int x,y; public: Sample() x=y=0; Sample(int a,int b) x=a; y=b; void disp() coutx=xy=yendl; void main() Sample s1,s2(2,3); s1.disp(); s2.disp();(1)该程序主函数中s1.disp()的输出为( 34 )。 34(A)x=0 y=0(B)x=2 y=3(C)x=3 y=2(D)x=1 y=1(2)该程序主函数中s2.disp()的输出为( 35 )。 35(A)x=0 y=0(B)x=2 y=3(C)x=3 y=2(D)x=1 y=1 9读下列程序并回答问题。# include void fun(int *p,int i,int j) int t; if(ij) t=*(p+i); *(p+i)=*(p+j); *(p+j)=t; fun(p,+i,-j); main() int a=1,2,3,4,5,6,i; fun(a,0,5); for(i=0;i6;i+) printf(%d ,ai);(1)程序中的fun函数被调用( 36 )次。 36(A)6 (B)5 (C)4 (D)3(2)程序的运行结果是( 37 )。 37(A)123456 (B)456123 (C)135246 (D)654321 10读程序,回答问题。# include main(int argc, char *argv) FILE *fp; int fun(FILE *); int num,i=1; while(-argc0) if(fp=fopen(argvi+,r)=NULL) printf(Cannot open file!n); exit(0); else num=fun(fp) ; fclose(fp); printf(num=%dn,num);int fun(FILE *fp) static int count=0; char c; c=fgetc(fp); while(c!=EOF) if(c=0&c=9) count+; c=fgetc(fp); return(count);上述C程序经编译、连接后生成一个名为2_3.exe的可执行文件,假设盘上有两个文本文件file1.dat 和file2.dat,file1.dat的内容为123abc,file2.dat的内容为xyz ABC 987。(1)若在DOS提示符下键入:2_3 file1.dat file2.dat,则程序的运行结果为( 38 )。 38(A)num=3 (B)num=4 (C)num=5 (D)num=6(2)若将fun函数中对count的定义static int count=0;改为int count=0;其余条件不变,则在DOS提示符下键入:2_3 file1.dat file2.dat,则程序的运行结果为( 39 )。39(A)num=3 (B)num=4 (C)num=5 (D)num=6 (3)若将fun函数中对count的定义static int count =0;改为int count;其余条件不变,则在DOS提示符下键入:2_3 file1.dat file2.dat,则程序的运行结果为( 40 )。40(A)num=4 (B)num=5 (C)num=6 (D)随机值注意: 请把下面“程序填空”中各小题答案写在主观题答题纸上 每一个空只填一个语句或一个语句所缺的部分内容三、程序填空(每空2分,共30分) 1以下程序能创建一张包含有4名学生信息的单向链表并输出。# include # include # define LEN sizeof(struct student)struct student int data; ;int num=1;struct student *creat() struct student *head,*p1,*p2; head=p1=p2=(struct student *)malloc(LEN); scanf(%d,&p1-data); while(numdata); ; p2=p1; num+; p2-next=NULL; return(head);main() struct student *head,*p; head=creat(); p=head; if(head!=NULL) do printf(%d , p-data); ; while(p!=NULL);2下面程序功能是在一个字符串中找出最大的字符并放在第一个位置上,并将该字符前的原字符往后顺序移动,如:cbyab 变成ycbab。# include # include main() char str80,*p=str,*q,max; gets(p); max=*(p+); while(*p!=0) if(max*p) max=*p; ; p+; p=q; while( ) *p=*(p-1);p-; ; puts(p);3以下程序能统计低于平均成绩的人数,并将低于平均成绩的分数存放到below数组中。# include int fun(int score,int m,int below) int i,k=0,aver=0; for(i=0;im;i+) ; aver/=m; for(i=0;im;i+) if(scoreiaver) ; k+; return(k);main() int i,n,below9; int score9=10,20,30,40,50,60,70,80,90; n= ; printf(%dn,n); printf(Below the average scoer are:n); for(i=0;in;i+) printf(%d ,belowi); 4下面程序的功能是求出数组a的两条对角线上的元素之和。# include main() int a33=1,3,6,7,9,11,14,15,17; int sum1=0,sum2=0,i,j; for(i=0;i3;i+) for(j=0;j3;j+) if( ) sum1+=aij; for(i=0;i3;i+) for( ; ;j-) if(i+j=2) sum2+=aij; printf(sum1=%d , sum2=%dn,sum1,sum2); 5将三个职工的数据(编号,姓名,年龄)从键盘输入,存放到一个新建的二进制文件employee 中去。# include main() FILE *fp; struct employee long code; char name20; int age; em; int k; if(fp=fopen(employee, ) )=NULL) printf(“errorn”); exit(0); for(k=0;k3;k+) scanf(%ld%s%d,&em.code,,&em.age); fwrite( ,sizeof(struct employee), ,fp ); fclose(fp); return(1);四川省普通高等学校计算机应用知识和能力第二十一次等级考试二级 (C与 C+语言 )上机考试试卷 (第一套 ) 参考答案一、程序调试题(文件名为test1-1.c)(40分)#include #include char *fun( char str) /* 改为 *str */ int i ; for(i=0 ; str; i+) /* 改为 stri */ if(a=stri)|(stri=z) /* 改为 & */ stri+=32; /* 改为 -= */ return *str; /* 改为 str */main() char str81; printf(n Please enter a string:); gets(str81); /* 改为 str */ printf(n The result string is:n%s , fun(str);评分标准:每改对1处得5分,结果正确得10分。二、编写程序(程序文件取名为 test1-2.c)(60分)评分标准:1被调函数编写正确 20分2文件打开、数据读入正确和定位正确10分3函数调用正确 5分4屏幕输出和文件输出正确20分5程序结构合理5分参考程序:# include # include int prime(int a,int n) int i,j,k=0,flag=0; for(i=0;in;i+) for(j=2;jai;j+) if(ai%j=0) flag=0; break; else flag=1; if(flag) ak+=ai; return k;main() int n,i,a10; FILE *fp; fp=fopen(test1-2.txt,r+); for(n=0;n10;n+) fscanf(fp,%d,&an); n=prime(a,n); fseek(fp,0,2); for(i=0;in;i+) printf(%5d,ai); fprintf(fp,%5d,ai); fclose(fp);四川省普通高等学校计算机应用知识和能力第二十一次等级考试二级 (C与 C+语言 )上机考试试卷 (第二套 ) 参考答案一、程序调试题(文件名为test2-1.c)(40分)#include #define N10/* 改为 N 10 */void fi(int a,int m)/* 改为 int */ int low=0,high=N,mid; while (low=high) mid=(low+high)/2; if(m=amid)/* 改为 mamid */ low=mid+1; else return(mid); return(-1);main() int i, aN=-3,4,7,9,13,45,67,89,100,180,k,m; for(i=0;i0) printf(m=%d,index=%dn,m,k); /* 改为 k=0 */ else printf(Not be found!n);评分标准:每改对1处得5分,结果正确得10分。二、编写程序(程序文件取名为 test2-2.c)(60分)评分标准:1被调函数编写正确 20分2文件打开、数据读入正确 15分3函数调用正确 5分4屏幕输出及结果正确15分5程序结构合理5分参考程序:# include # define M 3# define N 4void fun(int ttMN,int ppN) int i,j,min; for(j=0;jN;j+) min=tt0; for(i=0;iM;i+) if(ttijmin) min=ttij; ppj=min; main() int tMN; int pN,i,j,k; FILE *fp; fp=fopen(test2-2.dat,r); for(i=0;i3;i+) for(j=0;j4;j+) fscanf(fp,%d,&tij); fclose(fp); printf(The original data is :n); for(i=0;iM;i+) for(j=0;jN;j+) printf(%6d,tij); printf(n); fun(t,p); printf(nThe result is :n); for(k=0;kN;k+) printf(%4d,pk); printf(n);四川省普通高等学校计剪机应用知识和能力第二十一次等级考试二级 (C与 C+语言 )上机考试试卷 (第三套 ) 参考答案一、程序调试题(文件名为test3-1.c)(40分)#include void main() int i,k;/* 改为 k=0 */ char a80,b80,*p; p=*a;/* 改为 p=a */ gets(p); while(!*p)/* 改为 *p */ for(i=1;i3&*p!=0;p+,k+,i+) /* 改为 i=3 */ bk=*p; if(i=4) bk=;k+;/* 改为 */ bk=0; puts(*b);/* 改为 b */评分标准:每改对1处得5分,结果正确得10分。二、编写程序(程序文件取名为 test4-2.c)(60分)评分标准:1被调函数编写正确 20分2文件打开、数据写入正确 10分3函数调用正确 10分4屏幕输出正确10分5m输入正确5分6程序结构合理5分参考程序:# include int create(int a,int m) int i,j=0; for(i=1;i=m;i+) if(i%3=0 | i%7=0) aj+=i; return (j);main() int a80,m; in

温馨提示

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

评论

0/150

提交评论