当前位置:首页 >> 其它课程 >> 四川计算机二级c语言考试30次笔试真题

四川计算机二级c语言考试30次笔试真题


四川省普通高等学校计算机应用知识和能力 第三十次等级考试

二级(C 与 C++语言) 笔 试 试 卷
时间: 2009 年 4 月 18 日 上午 9:00—11:00

第一部分 软件技术基础 (共 15 分)
一、是非判断题(每小题 1 分,共 10 分)
判断下列各题是否正确,如正确,在客观答题纸上对应

编号选 A,否则选 B ) 能影响中断响应次序的技术是中断优先级和中断屏蔽。 ( 1 线性结构中元素的关系是一对一,树形结构中元素的关系也是一对一。 ( 2 在操作系统中,进程是一个具有独立运行功能的程序在某个数据集合上的一次运行过程。 ( 3 4. 操作系统的存储器管理部分负责对进程进行调度。 ( 4 5. 分时操作系统通常采用时间片轮转策略为用户服务。 ( 5 6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。 ( 6 7. 顺序查找只适用于存储结构为顺序存储的线性表。 ( 7 8. 栈顶的位置是随着进栈和退栈操作而变化的。 ( 8 9. 结构化程序设计主要强调的是程序的易读性。 ( 9 10.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、判定树。 ( 1. 2. 3. ) ) ) ) ) ) ) ) ) (

10 )

二、选择题(每小题 1 分,共 5 分)
1. 分页式存储管理的主要特点是( 11 ) 。 11 (A) 要求作业全部同时装入内存 (B) 不要求作业装入到内存的连续区域 (C) 要求扩充外存容量 (D) 不要求处理缺页中断 2. 进程从运行状态进入就绪状态的原因可能是( 12 ) 。 12 (A) 被选中占有处理机 (B) 等待某一事件 (C) 等待的事件已发生 (D) 时间片用完 3. 多道程序设计是指( 13 ) 。 13 (A) 在实时系统中并发运行多个程序 (B) 在分布系统工程中同一时刻运行多个程序 (C) 在一台处理机上同一时刻运行多个程序 (D) 在一台处理机上并发运行多个程序 4. 需求分析中开发人员主要从用户那里了解( 14 ) 。 14 (A) 软件如何做 (B) 软件数据结构 (C) 软件做什么 (D) 软件模块大小 5. 对象实现了数据和操作的结合,使数据和操作 ( 15 )于对象的统一体中。 15 (A) 结合 (B) 隐藏 (C) 封装 (D) 抽象

四川省计算机二级考试第三十次 C 与 C++语言笔试试卷 第 1 页 共 9 页

第二部分 C 与 C++语言程序设计 (共 85 分)
一、单项选择题 ( 每小题 1 分,共 10 分 )
1. C 语言中,若有说明: (考点:指针) float n=2.0,*p=&n,*q=p; 则以下非法的赋值语句是( 16 ) 。 16 (A) p=q; (B) *p=*q; (C) n=*q; (D) p=n; 2. C++中,已知 int a=6,b=3;将 a+b 的值输出到屏幕上,下列正确的输出是(17)(*考点:C++) 。 17 (A) cout<<a<<’+’<<b<<endl (B) cout<<”a+b”<<endl (C) cout<<a+b<<endl (D) cout<<”%d”,a+b<<endl 3. 有类型定义:typedef struct {int x; int y; } POINT;下面正确的语句是(18)(考点:自定义类型) 。 18 (A) POINT.x=12; POINT.y=10; (B) POINT a; (C) struct POINT a{12,10}; (D) POINT a(12,10); 4. 下面程序的输出结果是( 19 )(考点:带参数的宏定义) 。 # define SQURE(N) N*N void main() { printf("%d",SQURE(3+2)); } 19 (A) 25 (B) 11 (C) 15 (D) 9 5. 要实现一个文件引用另一个文件中的变量,必须通过( 20 )(考点:存储类型 extern) 。 20 (A) 用 extern 对变量说明 (B) #include 预处理命令 (C) # define 预处理命令 (D) 用 typedef 重新定义 6. 以下定义语句中,错误的是( 21 )(考点:定义数组) 。 21 (A) int a[]={1,2}; (B) char *a[3]; (C) char s[10]="test"; (D) int n=5,a[n]; 7. 下面语句彼此等价的是( 22 )(考点:关系、逻辑运算表达式) 。 22 (A) !(a<10)&&!(a>10) 与 !(a<10&&a>10) (B) !(a==b) 与 a>b&&a<b (C) !(a>b) 与 a<b (D) !(a>=10||a<=10) 与 !(a<=10) && !(a>=10) 8. 设有说明:int (*a)[M]; 其中的标识符 a 是( 23 )(考点:行指针) 。 23 (A) 一个指向具有 M 个整型元素的一维数组的指针 (B) 指向 M 个整型变量的函数指针 (C) M 个指向整型变量的指针 (D) 具有 M 个指针元素的一维数组指针,每个元素都只能指向整型量 9. 若有以下说明和语句: (考点:结构体指针) struct student { int age; int num; }std, *p; p=&std; 则以下对结构体变量 std 中成员 age 的引用方式不正确的是( 24 ) 。 24 (A) std.age (B) p->age (C) (*p).age (D) *p.age 10. 若有定义:char s[100]="string"; 则执行语句 puts( strcat( s,strcpy( s,"s" ) ) ); 后,屏幕上输出的结果是 ( 25 ) 。 (考点:字符串处理库函数)
四川省计算机二级考试第二十八次 C 与 C++语言笔试试卷 共 9 页 第2页

25 (A) s

(B) strings

(C) ss

(D) sstring

二、读程序回答问题 ( 每个选择 3 分,共 45 分 )
1. 读程序并回答问题(考点:数组、函数(地址参数) 、逆置算法) # include <stdio.h> void fun(int *a,int bott,int top) { int i,j,t; i=bott; j=top; while(i<j) { t=a[i]; a[i]=a[j]; a[j]=t; i++;j--; } } void main() { int a[10]={1,2,3,4,5,6,7,8,9,0},i; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(i=0;i<10;i++) printf("%d ",a[i]); } 函数 fun 的功能是( 26 ) 。 26 (A) 将下标为 bott 到 top 之间的数组元素逆置 (B) 将下标为 bott 到 top 之间数组元素进行升序排列 (C) 将下标为 bott 到 top 之间数组元素进行降序排列 (D) 将下标为 bott 和下标为 top 的两个元素互换 程序的运行结果为( 27 ) 。 27 (A)0987654321 (B) 4321098765 (C) 5678901234 (D) 0987651234 2. 读程序并回答问题。 (考点:递归函数) # include <stdio.h> long fun(int n) { long z; if(n==0|| n==1) z=1; else z=n*fun(n-2); return z; } void main() { long z; int n; scanf("%d",&n); z=fun(n); printf("%ld\n",z); } 若输入 n 的值为 6,则程序的输出结果为( 28 ) 。 28 (A) 21 (B) 15 (C) 48 (D) 720 以下哪个非递归程序与函数 fun 的功能相同( 29 ) 。
四川省计算机二级考试第三十次 C 与 C++语言笔试试卷 第 3 页 共 9 页

(B) long fun(int n) 29 (A) long fun(int n) { int i; { int i; long z; long z; for(i=n,z=0;i>0;i-=2) for(i=n,z=1;i>0;i-=2) z=z+i; z=z*i; return z; retrun z; } } (C) long fun(int n) (D) long fun(int n) { int i; { int i; long z; long z; for(i=n,z=1;i>0;i--) for(i=n,z=0;i>0;i--) z=z*i; z=z+i; retrun z; return z; } } 3. 读程序并回答问题(考点:文件、函数(地址参数) 、排序算法) # include <stdio.h> void fun(int *a,int n) { int i,j,t; for(i=0;i<n;i++) for(j=0;j<n-i-1;j++) if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } void main() { FILE *fp; int a[5],i; if((fp=fopen("data.txt","r+"))==NULL) { printf("Cannot open the file.\n"); exit(0); } for(i=0;i<5;i++) fscanf(fp,"%d",a+i); fun(a,5); rewind(fp); for(i=0;i<5;i++) { printf("%d ",a[i]); fprintf(fp,"%d ",a[i]); } fclose(fp); } 若文件 data.txt 中的内容为 1 3 2 5 4 ,读程序回答下面两个问题 程序运行后,屏幕上的输出结果为( 30 ) 。 30 (A) 5 4 3 2 1 (B) 1 2 3 4 5 (C) 1 3 2 5 4 1 2 3 4 5 (D) 1 3 2 5 4 5 4 3 2 1 程序运行后,文件 data.txt 中的内容为( 31 ) 。 31 (A) 5 4 3 2 1 (B) 1 2 3 4 5
四川省计算机二级考试第二十八次 C 与 C++语言笔试试卷 共 9 页 第4页

(C) 1 3 2 5 4 1 2 3 4 5 (D) 1 3 2 5 4 5 4 3 2 1 4. 有下列程序(考点:循环(continue) ) # include <stdio.h> void main() { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2) continue; x++; } printf(" %d",x); x++; } printf("\n %d",x); } (1)程序吉第一条 printf 语句输出的结果是( 32 ) 32 (A) 4 5 (B) 5 6 (C) 5 8 (D) (2)程序吉第二条 printf 语句输出的结果是( 33 ) 33 (A) 4 (B) 8 (C) 6 (D) 5. 有下列程序: (考点:if~else 嵌套) # include <stdio.h> void main() { int x=100,a=10,b=20; int v1=5,v2=0; if(a<b) if(b!=15) if(!v1) x=1; else if(v2) x=10; x=-1; printf("%d",x); } (1)程序的运行结果是( 34 ) 34 (A) 100 (B) 1 (C) 10 (D) -1 (2)if(v2)与下列选项相同的是( 35 ) 35 (A) if(v2==0) (B) if(v2!=0) (C) if(v2==1) (D) if(v2!=1) 6. 有下列程序: (考点:switch 语句、自增、自减运算) # include <stdio.h> void main() { int x=10,y=5; switch(x) { case 1: x++; default: x+=y;

3 7 12

四川省计算机二级考试第三十次 C 与 C++语言笔试试卷 第 5 页 共 9 页

case 2: y--; case 3: x--; } printf("x=%d, y=%d",x,y); } 执行下列程序后,输出结果为( 36 ) 。 36 (A) x=15, y=4 (B) x=14, y=4 (C) x=10, y=5 (D) x=15, y=5 7. 有以下程序: (考点:二维数组、循环(continue、嵌套) 、自增运算 ) # include <stdio.h> void main() { int array[4][4]={{9,8,7,6},{5,4,3,2},{1,2,3,4},{5,6,7,8}}; int i=0,j=0,m=0,n=0; while(i++<3) { if(i==3||i==1) continue; j=0; do { n=array[i][j]; m+=n;j++; }while(j<4); } printf("%d\n",m); } (1)程序运行的结果是( 37 ) 37 (A) 10 (B) 9 (C) 8 (D) 不能运行 (2)对于本程序来说,不影响运行结果的是( 38 ) 38 (A) 将 i++改为++i (B) 将 i++<3 改为 i++<=3 (C) 去掉 continue (D) 将 continue 改为 break 8. 有以下程序: (考点:函数、全局变量、复合赋值运算、自增运算) # include <stdio.h> int d=1; fun(int p) { int d=5; d+=p++; printf("%d ",d); } void main() { int a=3; fun(a); d+=a++; printf("%d\n",d); } (1)fun 函数中的输出结果为( 39 ) 。 39 (A) 6 (B) 7 (C) 8 (D) 9 (2)main 函数中的输出结果为( 40 ) 。 40 (A) 12 (B) 13 (C) 4 (D) 5
四川省计算机二级考试第二十八次 C 与 C++语言笔试试卷 共 9 页 第6页

注意:① 请把下面“程序填空”中各小题答案写在主观题答题纸上 ② 每一个空只填一个语句或一个语句所缺的部分内容 三、程序填空 ( 每空 2 分,共 30 分 )
1. 以下程序可以把从键盘上输入的十进制数以二或十六进制形式输出,变量 n 为待转换的十制制整数。 变量 base 确定转换后的类型,若转换成二进制,则输入 base 的值为 2;若转换成十六进制,则 base 的值 为 16。请填空。 (考点:进位计数制转换算法) # include <stdio.h> void main() { char a[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; int c[64],d,i=0,base; long n; printf("enter a number:\n"); scanf("%ld",&n); printf("enter new base:\n"); scanf("%d",&base); do { c[i]=① ; i++; n=n/base; }while(n!=0); printf("Transmite new base:\n"); for(--i;② ;--i) { d=c[i]; printf("%c",③ ); } printf("\n"); } 2. 下列程序能从一个词典 dict 中查找某个单词。 如果查到时报告成功并输出该单词, 否则报告失败。 (考 点:指针数组、二级指针、返回指针的函数、查找字符串算法) # include <stdio.h> # include <string.h> char *dict[]={"a","ab","abc","abcd","abcdef"}; char *check(char *word) { char **d; int flag; for(d=dict;d<dict+5;d++) { flag=strcmp(word,*d); if(flag!=0) continue; else if(flag==0) return ① ; } return NULL; } void main()
四川省计算机二级考试第三十次 C 与 C++语言笔试试卷 第 7 页 共 9 页

{ char word[80],*result; printf("Enter a word:"); scanf("%s",word); result=check(② ); if(③ !=NULL) { printf("Success!\n"); printf("%s",result); } else printf("Unsuccess!\n"); } 3. 以下 C 程序将磁盘中的一个文件复制到另一个文件中, 两个文件名在命令行给出 (假定文件名无误) 。 请填空。 (考点:文件、命令行参数、文件复制算法) # include <stdio.h> void main(int argc,char *argv[]) { FILE *fp1,*fp2; if(argc<① ) { printf("命令行参数错!\n"); exit(0); } fp1=fopen(argv[1], ② ); fp2=fopen(argv[2],"w"); while(!feof(fp1)) fputc(③ ,fp2); fclose(fp1); fclose(fp2); } 4. 下列程序实现输入输出 100 人的电话号码簿。 (考点:结构体数组) # include <stdio.h> # define N 100 struct p { int code; char name[20]; char tel[15]; }; ① ; void main() { int i; for(i=0;i<N;i++) { printf("Code:"); scanf("%d",② ); printf("Name:"); scanf("%s",t[i].name); printf("Tel:"); scanf("%s",t[i].tel); } for(i=0;i<N;i++)
四川省计算机二级考试第二十八次 C 与 C++语言笔试试卷 共 9 页 第8页

printf("CODE:%4d,NAME:%9s,TEL:%s\n",③ ,t[i].name,t[i].tel); } 5. 用以下程序求出数组 a 中所有素数的和,函数 fun 的功能是判断形参 n 是否为素数,是素数返回 1, 不是返回 0。 (考点:函数、判素数算法) # include <stdio.h> int fun(int n) { int i; if(n<=1) return 0; else { for(i=2;i<=n/2;i++) if(① ==0) return 0; ② ; } } void main() { int i,a[10],sum=0; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) if(③ ==1) sum=sum+a[i]; printf("sum=%d\n",sum); }

四川省计算机二级考试第三十次 C 与 C++语言笔试试卷 第 9 页 共 9 页


更多相关文档:

四川计算机二级c语言考试30次笔试真题

四川计算机二级c语言考试30次笔试真题四川计算机二级c语言考试30次笔试真题隐藏>> 四川省普通高等学校计算机应用知识和能力 第三十次等级考试 二级(C 与 C++语言) ...

2015四川省计算机等级考试试题 二级C试题考资料

暂无评价|0人阅读|0次下载|举报文档2015四川省计算机等级考试试题 二级C试题考资料_韩语学习_外语学习_教育专区。2015四川省计算机等级考试试题 二级C试题考资料 1...

四川计算机二级c语言考试30次机试真题

四川计算机二级c语言考试30次机试真题_IT认证_资格考试/认证_教育专区。四川计算机二级c语言考试30次机试真题 四川省第三十次计算机二级考试 C 与 C++语言 机试...

四川省计算机二级真题(C语言)

四川省计算机二级真题(C语言)_其它考试_资格考试/认证_教育专区。四川省普通高校第 33 次计算机二级考试辅导资料(C 程序设计) ? 第一部分: 历年笔试真题 ??真题...

四川省C语言(30次)等级考试真题

四川省C语言(30次)等级考试真题_教育学_高等教育_教育专区。绝对真题,值得拥有...# include <stdio.h> 四川省计算机二级考试第二十七次 C 与 C++语言笔试试卷...

四川省计算机二级C(第三十四次)笔试真题

读下面程序并回答问题: #include "stdio.h" void main() 四川省计算机二级考试三十四次 C 与 C++语言笔试试卷 第 3 页共 12 页 { int x=1,y=0,a=...

四川省计算机二级C语言试题和答案

四川省计算机二级考试历年... 129页 2财富值 四川计算机二级c语言31次笔... ...四川省计算机二级C语言30次... 7页 免费如要投诉违规内容,请到百度文库投诉中心...

四川省计算机二级C语言30次笔试和机试试题_参考答案

四川省第二十九次等级考试二级 C 与 C++语言 (2008 年 10 月 19 日) 机试试题 参考答案 四川省计算机二级 C 语言 30 次 笔试和机试试题_ 笔试和机试试题...

四川计算机二级C语言机试真题含答案

四川计算机二级C语言机试真题含答案_IT认证_资格考试...例如:若 m=30,则满足条件的整数有 13 个,为: ...准考证号、笔试成绩、上机成 绩三项组成,中间由空格...

四川省二级C语言28~33次笔试真题及答案

四川省二级C语言28~33次笔试真题及答案 - 四川省普通高等学校计算机应用知识和能力 第二十八次等级考试 二级(C 与 C++语言) 笔试试卷 时间: 2008 年 4 月 ...
更多相关标签:
二级c语言笔试真题 | 计算机二级c语言笔试 | 二级c语言笔试题库 | 四川电信笔试真题 | c语言二级考试真题 | 计算机二级c语言真题 | 浙江省二级c语言真题 | 二级c语言真题 |
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com