a[j++]=val; return j; }
void main() {
char str[N]; int a[N],n,i; FILE *fp;
if((fp=fopen(\ {
printf(\ exit(0); }
fgets(fp,str,N-1); fclose(fp); n=fun(str,a); for(i=0;i printf(\ printf(\ } 二、编写程序(程序文件名命名为test6-2.c) (60分) (1)编写fun函数,其功能是将N个数按如下规律输出。例如输入:1,2,3,4,fun函数输出: 4 1 2 3 3 4 1 2 2 3 4 1 1 2 3 4 (2)在main函数中输入N个数,调用函数fun。 第 16 页 共 50 页 四川省普通高等学校计算机应用知识和能力 第三十三次等级考试 二级(C与C++语言) 笔 试 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 栈是一种先进先出的线性表,只能采用顺序存储结构。 ( ) 分析:也可以采用链式存储 2. 从循环链表中任意一个结点出发都能访问到整个链表。 ( ) 3. 为了便于对单链表实现结点的插入、删除操作,通常增设一个表头结点。 ( ) 4. 队列在操作系统的各种资源请求排队及数据缓冲区管理中广泛使用。 ( ) 5. 死锁产生的根本原因是操作系统能够提供的资源比请求该资源的进程数少。 ( ) 分析:死锁产生原因:争夺共享资源;进程推进顺序不当 6. 虚拟设备技术能将独占设备转换为可共享的设备,提高资源利用率。 ( ) 7. 进程控制块是进程存在的唯一标志。 ( ) 8. 软件维护是长期的过程,交付使用的软件仍然需要排错、修改和扩充。 ( ) 9. 墨盒测试要求测试人员根据程序内部逻辑结构设计或选择测试用例。 ( ) 分析:白盒测试才是根据程序内部逻辑结构设计测试用例,黑盒测试是功能测试 10.软件设计时,应力求增加模块的内聚,减少模块间的耦合。 ( ) 二、选择题(每小题1分,共5分) 1. 如果进栈序列为1、2、3、4,则可能的出栈序列是( 11 ) 。 11 (A) 3、1、4、2 (B) 2、4、3、1 (C) 3、4、1、2 (D) 任意顺序 2. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,则它的前序遍历序列是( 12 12 (A) acbed (B) decab (C) deabc (D) cedba 3. 下列的进程状态变化中,( 13 )变化是不可能发生的。 13 (A) 运行?就绪 (B) 运行?等待 (C) 等待?运行 (D) 等待?就绪 4. 很好地解决了碎片问题的存储管理方法是( 14 )。 14 (A) 页式存储管理 (B) 段式存储管理 (C) 可变分区管理 (D) 多重分区管理 5. 在软件生命周期中,所花费用最多的阶段是( 15 )。 15 (A) 详细设计 (B) 软件编码 (C) 软件测试 (D) 软件维护 第 17 页 共 50 页 。 ) 第二部分 C与C++语言程序设计 (共85分) 一、单项选择题 ( 每小题1分,共10分 ) 1. 已知int i=10; 表达式\5<=i<=10\的值是( 16 ) 。(考点:关系运算表达式) 16 (A) 0 (B) 1 (C) 10 (D) 没有正确答案 2. 求取满足式1+2+3+??+n≤1000的n,正确的语句是( 17 )。(考点:循环结构) 17 (A) for(i=1,s=0;(s=s+i*i)<=1000;n=i++); (B) for(i=1,s=0;(s=s+i*i)<=1000;n=++i); (C) for(i=1,s=0;(s=s+i*++i)<=1000;n=i); (D) for(i=1,s=0;(s=s+i*i++)<=1000;n=i); 3. 以下叙述中正确的是( 18 )。(考点:循环语法) 2 2 2 2 18 (A) C语言中所有的循环语句都是先判断条件再执行循环体 (B) break语句只能中断循环 (C) continue 语句可以结束所有的循环 (D)C语言中,任意表达式都可作为循环条件,只要能做出0和非0的判断即可 4. 设有以下定义: struct node { int data; struct node *next; }*p; 则以下的语句中正确的是( 19 )。(考点:结构体指针、动态分配存储空间函数) 19 (A) p=malloc(sizeof(struct node)) (B) p=(struct node *)malloc(sizeof(struct node)) (C) *p=(struct node *)malloc(4) (D) p=(struct node )malloc(sizeof(struct node)) 5. 运行以下程序的输出结果为( 20 )。(考点:枚举类型) # include { enum color {Black=1,Red,Blue,Green}; enum color c1,c2; c1=Red; c2=Blue; printf(\} 20 (A) 2,3 (B) 1,2 (C) 1,1 (D) 0,-1 6. 若变量x和y都为int类型,x=100,y=200,下面程序段的输出结果是( 21 )。(考点:逗号运算) printf(\(x,y)); 21 (A) 200 (B) 100 # include int a=6,b=2,c; c=f(a+b)/f(a-b); printf(\ 第 18 页 共 50 页 (C) 100 200 (D) 输出不确定的值 7. 以下程序的输出结果是( 22 )。(考点:带参数的宏) } 22 (A) -2.5 (B) -2 (C) 64 (D) 4 8. C语言中fscanf函数的正确调用形式是(考点:文件) 23 (A) fscanf(文件指针,格式字符串,输出列表); (B) fscanf(格式字符串,输出列表,文件指针); (C) fscanf(格式字符串,文件指针,输入列表); (D) fscanf(文件指针,格式字符串,输入列表); 9. 设有定义:int a=1,b=2,c=3; ,以下语句中执行效果与其它三个不同的是( 24 )。(考点:if语句) 24 (A) if(a>b) c=a,a=b,b=c; (B) if(a>b) {c=a,a=b,b=c; } (C) if(a>b) c=a;a=b;b=c; (D) if(a>b) {c=a;a=b;b=c;} 分析:if语句只能控制之后的一条执行语句 10. 以下选项中与if(a==1)a=b; else a++; 语句功能不同的switch语句是 ( 25 ) 。(考点:switch语句) 25 (A) switch(a) (B) switch(a==1) { case 0: a=b;break; case 1:a++; { case 1: a=b;break; default:a++; } (C) switch(a) } (D) switch(a==1) { case 1:a=b;break; case 0:a++; } { default:a++;break; case 1: a=b; } 二、读程序回答问题 ( 每个选择3分,共45分 ) 1. 有如下程序:(考点:函数、变量的作用域) # include int k=1; //全局变量 void fun(int m) //m=4 { m+=k; k+=m;//此处用到的k是全局变量,m=5, k=6 { char k='D'; //k为局部变量 printf(\ /* ① */ //1 } } void main() { int i=4; fun(i); //i是普通值传递,由实参单向传递给形参 printf(\ /* ② */ //k是全局变量 ,4,6 } ① 处输出结果为( 26 )。 26 (A) 2 (B) 1 (C) 3 (D) A、B、C参考答案都不对 (D) A、B、C参考答案都不对 ② 处输出结果为( 27 )。 27 (A) 4,1 (B) 5,6 2. 有如下程序(考点:函数、字符数组) # include 第 19 页 共 50 页 (C) 4,6 int i;char c; c=s[0]; //c暂存第一个字符 for(i=1;s[i]!='\\0';i++) s[i-1]=s[i]; //从第二个字符开始到末尾,每个字符左移一个位置 s[i-1]=c; //将第一个字符放到字符串的末尾 } void main() { char s[10]=\ int i; for(i=1;i<=3;i++) fun(s); puts(s); } 函数fun的功能是( 28 )。 28 (A) 左移一个字符,并将第一个字符放到字符串末尾 (B) 右移一个字符,并将最后一个字符放到字符串开头 (C) 删除第一个字符 (D) 删除最后一个字符 (C) efgabcd (D) bcdefg 程序的运行结果是( 29 )。 29 (A) bcdefga (B) defgabc 3. 有下列程序(考点:递归函数) # include void main() { int n; scanf(\ if(n<0) { putchar('-'); n=-n; } fun(n); } 若输入整数-1234,请回答下面两个问题: 函数fun的调用次数为( 30 )。 30 (A) 5 (B) 4 程序的输出结果为( 31 )。 (C) 3 (D) 2 (D) -1234 31 (A) 4321 (B) 1234 (C) -4321 4. 有下列程序(考点:函数(地址参数)、指针运算) # include void fun1(int *x,int *y) //指针参数,但未对实参间接运算,所以不能改变实参的值 { int *z; z=x; x=y; y=z; 第 20 页 共 50 页 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库c语言近几年考题(4)在线全文阅读。
相关推荐: