printf(\}
二、编写程序(程序文件名命名为test4-2.c) (60分)
(1)编写函数convert,函数首部的形式为:convert(int n,char s[]),其功能是将一个整数n转换为其对应的数字字符串并存储在字符数组s中。
(2)编写函数main,在main中输入一个整数n,调用函数convert,输出转换后的结果。
(第五套)(60分钟)
一、程序调试题(文件名为test5-1.c )(40分)
磁盘上有一个名为test5-1.c的C程序文件,其函数fun的功能是统计字符串中“a”到“z”26个小写字母各自出现的次数。例如,当在main函数中从文件test5-1.dat中输入一个字符串为:abcdabcdefg,则调用函数fun函数后输出结果是:22221110000000000000000000。
请改正程序中的错误,使它能得出正确结果。 注意:不得增行或删行,也不得更改程序结构。 源程序如下: #include\#define N 81
void fun(char tt,int p[]) { int i;
for(i=0;i<26;i++) p[i]=0; while(*tt)
{ if(*tt>='a'&*tt<='z') p[*tt-'0']+=1; tt++; } }
void main() { char a[N]; int b[26],k,n;
FILE *fp;
if((fp=fopen(\ { printf(\ exit(0); }
printf(\ fgets(a, N-1); fclose(fp); fun(a,b);
for(k=0;k<26;k++) printf(\ printf(\
}
二、编写程序(程序文件名命名为test5-2.c) (60分)
(1)编写函数fun,其功能是删去一维数组中所有相同的数,使之只剩一个。对于main函数中的初始化数据,删除后的结果是:2 3 4 5 6 7 8 9 10。要求返回删除后的数据个数。
第 31 页 共 50 页
(2)编写main函数,在main函数中,定义一个长度为20的一维数组a,并对其进行初始化(初始化数据为2 2 2 3 4 4 5 6 6 6 7 7 8 9 9 10 10 10),调用fun函数删除相同的数据,根据返回的数据个数输出删除后的结果。
(第六套)(60分钟) 一、程序调试题(文件名为test6-1.c )(40分)
磁盘上有一个名为test6-1.c 的C程序文件,程序的功能是从文件test6-1.dat输入若干学生某门课程的成绩,然后统计该课程的平均成绩和不及格人数,并将结果追加写入到数据文件test6-1.dat中,同时将结果输出到屏幕。
请改正程序中的错误,使它能得出正确结果。 注意:不得增行或删行,也不得更改程序结构。 源程序如下: #include
fp=fopen(test6-1.dat,\ if(fp==NULL) { printf(\ exit(0); }
while(feof(fp))
{ fscanf(fp,\ s+=x;k++; }
ave=1.*s/k;
rewind(test6-1.dat); k=0;
while(!feof(fp)) { fscanf(\ if(x<60) k++; }
fclose(fp);
printf(\verage=%lf\\n\ printf(\
fp=fopen(\ fprintf(fp,\verage=%lf\\n\ fprintf(fp,\ fclose(fp);
}
二、编写程序(程序文件名命名为test6-2.c) (60分)
(1)编写函数fun,其功能是将一个字符串除首、尾字符外用冒泡排序进行按ASCII码升序排列。 (2)编写main函数,在main函数中,输入一个字符串,调用fun函数,并输出排序后的结果。
第 32 页 共 50 页
四川省普通高等学校计算机应用知识和能力
第三十四次等级考试
二级(C与C++语言) 笔 试 试 卷
时间: 2011年4月 16 日 上午 9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 作业与进程的主要区别是前者由用户提交,后者是由系统自动生成。 2. 从循环链表中任意一个结点出发都能访问到整个链表。 3. 如果分时操作系统的时间片一定,那么用户数越少,则响应时间越长。
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
4. 队列在操作系统的各种资源请求排队及数据缓冲区管理中广泛使用。 5. 死锁产生的根本原因是操作系统能够提供的资源比请求该资源的进程数少。 分析:死锁产生原因:争夺共享资源;进程推进顺序不当
6. 虚拟设备技术能将独占设备转换为可共享的设备,提高资源利用率。
7. 链栈与顺序栈相比,有一个明显的优点是通常不会出现栈满的情况。 8. 软件维护是长期的过程,交付使用的软件仍然需要排错、修改和扩充。 9. 墨盒测试要求测试人员根据程序内部逻辑结构设计或选择测试用例。 分析:白盒测试才是根据程序内部逻辑结构设计测试用例,黑盒测试是功能测试 10.软件设计时,应力求增加模块的耦合,减少模块间的内聚。 分析:软件设计时,应力求增加模块的内聚,减少模块间的耦合
二、选择题(每小题1分,共5分)
1. 设已将元素a1、a2、a3依次入栈,元素a4正等待进栈。那么下列4个序列中不可能出现的出栈序列是( 11 ) 。
11 (A) a3、a1、a4、a2
(B) a3、a2、a4、a1
(C) a3、a4、a2、a1 (D) a4、a3、a2、a1
2. 以下哪一个不是操作系统的特征( 12 )。 12 (A) 并发
(B) 分解
(C) 共享
(D) 虚拟
(D) 等待?就绪 (D) 页式存储管理 (D) 触发时间
3. 下列的进程状态变化中,( 13 )变化是不可能发生的。 13 (A) 运行?就绪 (B) 运行?等待 (C) 等待?运行 4. 很好地解决了碎片问题的存储管理方法是( 14 )。 14 (A) 多重分区管理 (B) 段式存储管理 (C) 可变分区管理 5. 作业从进入后备队列到被调度程序选中的时间间隔称为( 15 )。 15 (A) 周转时间 (B) 等待时间 (C) 响应时间
第 33 页 共 50 页
第二部分 C与C++语言程序设计 (共85分) 一、单项选择题 ( 每小题1分,共10分 )
1. 以下合法的字符常量是( 16 )。
16 (A) “a” (B) ?\\72?
2. 以下程序的结果是( 17 )。
#include \void main()
{
unsigned int a=3,b=10; printf(\}
17 (A) 1 (B) 13
3. 以下程序的输出结果是( 18 )。
#include \
void main() {
int a=-1,b=4,k;
k=(++a)&&!(b--<=0);
printf(\}
18 (A)1 0 4 (B)1 0 3 (C) 0 0 3 (D)0 0 4
4. 以下程序的输出结果是( 19 )。
#include
void main() {
char p[20]={'a','b','c','d'},q[]=\ strcpy(p+strlen(q),r);
strcat(p,q);
printf(\
}
19 (A) 20 9 (B) 9 9 (C)20 11 (D)11 11
5. 下列对C语言字符数组的描述中错误的是( 20 )。
20 (A) 字符数组可以存放字符串
(B) 字符数组的字符串可以整体输入、输出
(C) 可以在程序中用赋值运算符“=”对字符数组进行整体赋值 (D) 不可以用关系运算符对字符数组中的字符串进行比较 #include \void main() {
int a[]={7,4,6,3,10};
int m=10,k,*ptr=&a[0]; for(k=0;k<5;k++) m=*(ptr+k) 第 34 页 共 50 页 (C) ?\\0x12? (D) ?ab? (C) 12 (D) 5 6.下述程序的输出结果是( 21 )。 printf(\} 21 (A) 10 (B) 4 7. 有如下程序 #include \void main() { int a=2,b=-1,c=2; if(a else c++; (C) 6 (D) 3 printf(\ } 该程序的输出结果是( 22 )。 22 (A) 0 (B) 1 (C) 2 (D) 3 8. 根据下面的结构体类型及其结构数组的定义,值等于‘A’的表达式是( 23 )。 struct season { char name[10]; int day; }; struct season s[4]={“Spring”,90,”Summer”,91,”Autumn”,92,”Winter”,92}; 23 (A) s[3].name[0] (B) s[3].name (C) s[2].name (D) s[2].name[0] 9. 运行以下程序的输出结果为( 24 )。 #include \ #define R 1+2 #define S(r) r*r #define V(r) S(r)*R void main() { int r1=1+2; } printf(\ 24 (A) 27 (B) 11 (C)9 (D)7 10.以下不能对二维数组a进行正确初始化的语句是 ( 25 ) 。 25 (A) int a[ 2 ][ 3 ]={{1,2},{3,4},{5,6}}; (B) int a[ ][ 3 ]={{1,2},{0}}; (C) int a[ 2 ][ 3 ]={0}; (D) int a[ ][ 3 ]={1,2,3,4,5,6}; 二、读程序回答问题 ( 每个选择3分,共45分 ) 1. 读下面程序并回答问题: #include \void main() { 第 35 页 共 50 页