四川省计算机二级考试培训讲义(内部资料)
}
if(flag)
printf(“This word is not hello”); else
printf(“This word id hello”);
}
3.以下程序把从键盘输入的字符存放到一个文件中,用“#”作为结束符。请按题意要求填空完善程序。
#include
FILE *fp;
char ch,fname[10];
printf(“Input the file name:\\n”);
gets(fname);
if(______(32) fp=fopen(fname,”w”) ________==NULL) {
printf(“cannot open file\\n”); 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) argv[1],”r”____))==NULL) {
printf(“\\>file %s Cannot open \\n”,argv[1]); exit(1);
}
if((fpr=fopen(argv[2],____(36) ”w”____))==NULL) {
printf(“\\>file %s Cannot open \\n”,argv[2]); exit(2);
- 19 -
四川省计算机二级考试培训讲义(内部资料)
}
while((c=______(37) fgetc _______(fpr))!=EOF) fputc(c,____(38) fpw _____); fclose(fpr); fclose(fpw);
}
5.该程序是利用折半查找法在一个数组中进行数据检索。当查找到时,给出数据在数组中的位置;查找不到,给出数据不在数组中的信息。请将程序完善。
#define n 10
int a[]={1,2,3,4,5,6,7,8,9,10}; char ss(x,m) int x,m; { char z; if(x==a[m]) z=’t’; else
if(x
int p,r,m,loop,x; char c; scanf(“%d”,&x); p=0;r=n-1; m=(r-p)/2;
- 20 -
四川省计算机二级考试培训讲义(内部资料)
loop = 1;
while(loop&&(r-p)) {
c=ss(x,m); if(c==’t’) {
loop=0;
printf(“元素在数组中,其位置为:%d\\n”,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); }
- 21 -
四川省计算机二级考试培训讲义(内部资料)
答案:
选择题
(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) str[i]或str[i]!=NULL 或str[i]=0 (27)++i或i++ (28)*(str+i)或str[i]
(29)flag (30)getchar() (31)str[i] (32)fp=fopen(fname,”w”) (33)ch=getchar() (34)fp (35)argv[1],”r” (36)”w” (37)fgetc (38)fpw (39)r=m (40)p=m+1
真题二
第一部分 软件技术基础 (共15分)
一、是非判断题(每小题1分,共10分)
(判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B) 1.C++语言中所定义的类实际上也是一种数据类型。 A
2.数据结构的表示包括数据逻辑结构和存储结构两个方面的表示。A
3.冒泡排序算法是一种只能实现升序排序,而不能实现降序排序的排序算法。B 4.线性表采用链式储存时,结点的存储地址必须是连续的。B 5.栈顶的位置是随着进栈和退栈操作而变化的。A
6.在软件生存期内,软件必须进行维护,维护不会产生副作用。B
7.采用动态重定位进行地址转换,允许程序在执行过程中在内存中移动。而静态重定位则不可以。A
8.在软件的需求分析阶段,要直接面向用户,主要考虑用户的经济承受能力和费用的支付问题。B
9.需求分析阶段的主要任务应由系统分析员主持完成。A 10.操作系统是最最重要的系统软件。A
二、选择题(每小题1分,共5分)
1.以下特征中哪个不是算法得特征(D) A 可行性 B 确定性 C有穷性 D 唯一性
2.在多道程序设计系统中,处于后备状态的作业要经过(B)调度后才能真正执行 A 作业调度 B作业调度和进程调度 C 进程调度 D作业调度和设备调度
3.为解决CPU和I/O设备之间速度匹配问题,常采用“缓冲区”方法。“缓冲区”的结构多为(C)。
- 22 -
四川省计算机二级考试培训讲义(内部资料)
A顺序栈 B链栈 C顺序队列 D 循环队列
4.对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。 A 结合 B程序的效率 C封装 D 抽象 5.结构化程序设计主要强调的是(A)
A 程序易读性 B 程序的效率 C程序设计语言的先进性 D程序的规模 第二部分 C与C++语言程序设计 (共85分)
一、单项选择题(每小题1分,共10分) 1.下列程序运行结果是(B ) #include
main() { }
int a=010,b=1; swap(a,b);
printf(\x^=y; y^=x; x^=y;
A 10,1 B 8,1 C 1,8 D 1,10 2.有以下程序 #include
char *p,*q ;
p=(char*)malloc(sizeof(char)*20); q=p;
scanf(“%s %s”,p,q); }
printf(\
若输入:abc def<回车>,则输出为 (def,def) 3. 下列程序的输出是() #include
- 23 -