2011年9月全国计算机等级考试二级C语言真题及答案
- 格式:doc
- 大小:3.82 MB
- 文档页数:13
2011年计算机等级二级C语言章节习题及答案(13)2011年计算机等级二级C语言章节习题及答案(13)第13章文件一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。
)13.1 fseek函数的正确调用形式是A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)正确答案: B13.2 若fp是指向某文件的指针,且已读到文件末尾,则函数feof (f p)的返回值是A)EOFB)-1C)1D)NULL正确答案: C13.3 fscanf函数的正确调用形式是A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);正确答案: D13.4 下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件正确答案: D13.5 函数fseek(pf, OL,SEEK_END)中的SEEK_END代表的起始点是A)文件开始B)文件末尾C)文件当前位置D)以上都不对正确答案: B13.6 C语言中,能识别处理的文件为A)文本文件和数据块文件B)文本文件和二进制文件C)流文件和文本文件D)数据文件和二进制文件正确答案: B13.7 若调用fputc函数输出字符成功,则其返回值是A)EOFB)1C)0D)输出的字符正确答案: D13.8 已知函数的调用形式:fread(buf,size,count,fp),参数buf 的含义是A)一个整型变量,代表要读入的数据项总数B)一个文件指针,指向要读的文件C)一个指针,指向要读入数据的存放地址D)一个存储区,存放要读的数据项正确答案: C13.9 当顺利执行了文件关闭操作时,fclose函数的返回值是A)-1B)TRUEC)0D)1正确答案: C13.10 如果需要打开一个已经存在的非空文件“Demo”进行修改下面正确的选项是A)fp=fopen("Demo","r");B)fp=fopen("Demo","ab+");C)fp=fopen("Demo","w+");D)fp=fopen("Demo","r+");正确答案: D13.11 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是A)fopen("A:\user\abc.txt","r")B)fopen("A:\\user\\abc.txt","rt+")C)fopen("A:\user\abc.txt","rb")D)fopen("A:\user\abc.txt","w")正确答案: B13.12 fwrite函数的一般调用形式是A)fwrite(buffer,count,size,fp);B)fwrite(fp,size,count,buffer);C)fwrite(fp,count,size,buffer);D)fwrite(buffer,size,count,fp);正确答案: D13.13 C语言中,文件组成的基本单位为A)记录B)数据行C)数据块D)字符序列正确答案: D13.14 C 语言中,系统的标准输入文件是指A)键盘B)显示器C)软盘D)硬盘正确答案: A13.15 有以下程序#includemain(){ FILE *fp; int i=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);fclose(fp);}程序运行后的输出结果是A)20 30B)20 50C)30 50D)30 20正确答案: A13.16 阅读以下程序及对程序功能的描述,其中正确的描述是#includemain(){ FILE *in,*out;char ch,infile[10],outfile[10];printf("Enter the infile name:\n");scanf("%s",infile);printf("Enter the outfile name:\n");scanf("%s",outfile);if((in=fopen(infile,"r"))==NULL){ printf("cannot open infile\n");exit(0);}if((out=fopen(outfile,"w"))==NULL){ printf("cannot open outfile\n");exit(0);}while(! feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}A)程序完成将磁盘文件的信息在屏幕上显示的功能B)程序完成将两个磁盘文件合二为一的功能C)程序完成将一个磁盘文件复制到另一个磁盘文件中D)程序完成将两个磁盘文件合并并在屏幕上输出正确答案: C13.17 下面的程序执行后,文件test中的内容是#includevoid fun(char *fname,char *st){ FILE *myf; int i;myf=fopen(fname,"w" );for(i=0;ifclose(myf);}main(){ fun("test","new world"); fun("test","hello,");} A)hello, B)new worldhello,C)new worldD)hello, rld正确答案: A13.18 假定当前盘符下有两个文本文件,如下文件名a1.txt a2.txt内容123# 321#则下面程序段执行后的结果为#include "stdio.h"void fc(FILE *p){ char c;while((c=fgetc(p))!=′#′)putchar(C);}main(){ FILE *fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");fc(fp);fclose(fp);putchar(′\n′);}A)123321B)123C)321D)以上答案都不正确正确答案: A13.19 阅读下面程序,程序实现的功能是(a123.txt在当前盘符下已经存在)#include "stdio.h"void main(){ FILE *fp;int a[10],*p=a;fp=fopen("a123.txt","w");while(strlen(gets(p))>0 ){ fputs(a,fp);fputs("\n",fp);}fclose(fp);}A)从键盘输入若干行字符,按行号倒序写入文本文件a123.txt 中B)从键盘输入若干行字符,取前2行写入文本文件a123.txt中C)从键盘输入若干行字符,第一行写入文本文件a123.txt中D)从键盘输入若干行字符,依次写入文本文件a123.txt中正确答案: D13.20 阅读下面程序,此程序的功能为#include "stdio.h"main(int argc,char *argv[]){ FILE *p1,*p2;int c;p1=fopen(argv[1],"r");p2=fopen(argv[2],"a");c=fseek(p2,0L,2);while((c=fgetc(p1))!=EOF)fputc(c,p2);fclose(p1);fclose(p2);}A)实现将p1打开的文件中的内容复制到p2打开的文件B)实现将p2打开的文件中的内容复制到p1打开的文件C)实现将p1打开的文件中的内容追加到p2打开的文件内容之后D)实现将p2打开的文件中的内容追加到p1打开的文件内容之后正确答案: C二、填空题(请将每一个空的正确答案写在答题卡相应序号后。
2011年9月计算机等级二级C语言模拟试题及答案1考试吧整理“2011年9月计算机等级二级C语言模拟试题及答案1”,请考生抓紧备考!一、填空题1、C语言中基本的数据类型有:__________、__________ 、__________ 。
2、C语言中普通整型变量的类型说明符为__________,在内存中占__________字节,有符号普通整型的数据范围是__________。
3、整数-35在机内的补码表示为__________。
4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是__________ 。
5、有如下语句:char A[ ]={”I am a student”}; 该字符串的长度是__________,A[3]=__________ 。
6、符号”a”和’a’的区别是__________。
7、所谓“指针”就是__________ 。
“&”运算符的作用是__________。
“*”运算符的作用是__________ 。
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是__________。
二、选择题1、设整型变量a为5,使b不为2的表达式是( )。
B. b=6-(--a)C. b=a%2D. b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与( )组成配对关系。
A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是( )。
int x=10,y=10;printf(“%d %d\n”,x--,--y);A. 10 10B. 9 9C. 9 10D. 10 94、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。
201 1年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上答在试卷上不得分。
(1)下列叙述中正确的是( )。
A)算法就是程序B)设计算法时只需要考虑数据结构的设计C)设计算法时只需要考虑结果的可靠性D)以上三种说法都不对(2)下列关于线性链表的叙述中,正确的是( )。
A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C)进行插入与删除时,不需要移动表中的元素D)以上三种说法都不对(3)下列关于二叉树的叙述中,正确的是( )。
A)叶子结点总是比度为2的结点少一个B)叶子结点总是比度为2的结点多一个c)叶子结点数是度为2的结点数的两倍D)度为2的结点数是度为1的结点数的两倍(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是( )。
A)学生成绩管理系统B)C语言编译程序C)UNIX操作系统D)数据库管理系统(5)某系统总体结构图如下图所示:该系统总体结构图的深度是( )。
A)7B)6C)3D)2(6)程序调试的任务是( )。
A)设计测试用例B)验证程序的正确性C)发现程序中的错误D)诊断和改正程序中的错误A)在需求分析阶段建立数据字典B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典D)在物理设计阶段建立数据字典(8)数据库系统的三级模式不包括( )。
A)概念模式B)内模式C)外模式D)数据模式(9)有三个关系R、S利T如下:则由关系R和s得到关系T的操作是( )。
A)自然连接B)差C)交D)并(10)下列选项中属于面向对象设计方法主要特征的是( )。
2021年9月全国计算机二级C++考试真题及答案(考试时间90分钟,总分值100分)一、选择题(每题2分,共70分)以下各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)以下表达中正确的选项是〔D 〕。
A)算法就是程序B)设计算法时只需要考虑数据构造的设计C)设计算法时只需要考虑结果的可靠性D)以上三种说法都不对(2)以下关于线性链表的表达中,正确的选项是〔C 〕。
A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C)进展插入与删除时,不需要移动表中的元素D)以上三种说法都不对(3)以下关于二叉树的表达中,正确的选项是〔B 〕。
A)叶子结点总是比度为2的结点少一个B)叶子结点总是比度为2的结点多一个C)叶子结点数是度为2的结点数的两倍D)度为2的结点数是度为1的结点数的两倍(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是〔 A 〕。
A)学生成绩管理系统 B)C语言编译程序C)UNIX操作系统 D)数据库管理系统(5)某系统总体构造图如以下图所示:该系统总体构造图的深度是〔C 〕。
A)7 B)6 C)3 D)2(6)程序调试的任务是〔D 〕。
A)设计测试用例 B)验证程序的正确性C)发现程序中的错误 D)诊断和改正程序中的错误(7)以下关于数据库设计的表达中,正确的选项是〔 A 〕。
A)在需求分析阶段建立数据字典 B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典 D)在物理设计阶段建立数据字典(8)数据库系统的三级模式不包括〔D 〕。
A)概念模式 B)内模式 C)外模式 D)数据模式(9)有三个关系R、S和T如下:那么由关系R和S得到关系T的操作是〔B 〕。
A)自然连接 B)差 C)交 D)并(10)以下选项中属于面向对象设计方法主要特征的是〔 A 〕。
1程序填空给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边值为0。
第1处for(i=0;i<N;i++)第2处t[i][j+m]=t[i][j];第3处for(j=0;j<m;j++)2程序修改给定程序MODI1.C是函数fun的功能是:计算并输出high以内最大的10个素数之和。
high的值由主函数传给fun函数。
int fun(int high){ int sum=0,n=0,j,yes;/*******found******/while((2<=high)&&(n<10)){ yes=1;for(j=2;j<=high/2;j++)if(high%j==0){/*******found******/yes=0;break;}if(yes){sum+=high;n++;}}return sum;}3程序设计编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。
xn+1=cos(xn)迭代步骤如下:1. 取x1初值为0.02. x0=x1,把x1的值赋给x03. x1=cos(x0),求出一个新的x14. 若x0-x1的绝对值小于0.000001执行步骤(5)否则执行步骤(2)5. 所求x1就是方程cos(x)-x=0的一个实根作为函数值返回。
程序将输出结果Root=0.739058。
float fun(){float x0,x1=0.0;do {x0=x1;x1=cos(x0);}while(fabs(x0-x1)>0.000001);return x1;}第64套1程序填空给定程序中,函数fun的功能是:将a所指3×5矩阵中第k 列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。
第1处for(p=1;p<=k;p++)第2处for(j=0;j<N-1;j++)a[i][j]=a[i][j+1];第3处a[i][N-1]=temp;2程序修改给定程序MODI1.C是函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。
2011年全国计算机二级C语言上机题题库1:第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2:第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int*a,int*n){int i,j=0;for(i=2;i<1000;i++)if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}3:第3题请编写函数void fun(int x,int pp[],int*n),它的功能是:求出能整除x 且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x,int pp[],int*n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4:第4题请编写一个函数void fun(char*tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
答案:void fun(char*tt,int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;while(*tt){switch(*tt){case‘a’:pp[0]++;break;case‘b’:pp[1]++;break;case‘c’:pp[2]++;break;case‘d’:pp[3]++;break;case‘e’:pp[4]++;break;case‘f’:pp[5]++;break;case‘g’:pp[6]++;break;case‘h’:pp[7]++;break;case‘i’:pp[8]++;break;case‘j’:pp[9]++;break;case‘k’:pp[10]++;break;case‘l’:pp[11]++;break;case‘m’:pp[12]++;break;case‘n’:pp[12]++;break;case‘o’:pp[14]++;break;case‘p’:pp[15]++;break;case‘q’:pp[16]++;break;case‘r’:pp[17]++;break;case‘s’:pp[18]++;break;case‘t’:pp[19]++;break;case‘u’:pp[20]++;break;case‘v’:pp[21]++;break;case‘w’:pp[22]++;break;case‘x’:pp[23]++;break;case‘y’:pp[24]++;break;case‘z’:pp[25]++;break;}tt++;}}5:第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。
2011年九月及三月计算机国二c语言个别考题分析九月:(1)下列叙述中正确的是( )。
A)算法就是程序B)设计算法时只需要考虑数据结构的设计C)设计算法时只需要考虑结果的可靠性D)以上三种说法都不对答:计算机算法是以一步接一步的方式来详细描述计算机如何将输入转化为所要求的输出的过程,或者说,算法是对计算机上执行的计算过程的具体描述。
一个算法必须具备以下性质:(1)算法首先必须是正确的,即对于任意的一组输入,包括合理的输入与不合理的输入,总能得到预期的输出。
如果一个算法只是对合理的输入才能得到预期的输出,而在异常情况下却无法预料输出的结果,那么它就不是正确的。
(2)算法必须是由一系列具体步骤组成的,并且每一步都能够被计算机所理解和执行,而不是抽象和模糊的概念。
(3)每个步骤都有确定的执行顺序,即上一步在哪里,下一步是什么,都必须明确,无二义性。
(4)无论算法有多么复杂,都必须在有限步之后结束并终止运行,即算法的步骤必须是有限的。
在任何情况下,算法都不能陷入无限循环中。
一个问题的解决方案可以有多种表达方式,但只有满足以上4个条件的解才能称之为算法。
(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是( )。
A)学生成绩管理系统B)C语言编译程序C)UNIX操作系统D)数据库管理系统答:1.用户直接使用的软件通常为应用软件, 而应用软件通常是通过系统软件来指挥计算机的硬件完成其功能的。
最重要的系统软件是操作系统(Operation System,OS),它完成指挥计算机运行的各个细节, 亦即, 操作系统是计算机系统中用于指挥和管理其自身的软件。
实质上, 使用计算机时, 我们并不直接使用计算机的硬件, 与我们直接打交道的是应用软件。
我们使用应用软件, 由应用软件在“幕后”与操作系统打交道, 再由操作系统指挥计算机完成相应的工作2.系统软件---操作系统操作系统(Operating System)是最基本、最重要的系统软件。
2011年全国计算机二级C语言上机题题库(超值100题)1:第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
浙江省2011年秋季C语言二级考试上机编程试题及答案1.三个数比较大小.#include <stdio。
h〉void swap(______1______) //int *pa,int *pb{/*交换两个数的位置*/int temp; temp = *pa;*pa = *pb;*pb = temp; }void main(){ int a,b,c,temp;scanf(”%d%d%d”,&a,&b,&c);if(a〉b) swap(&a,&b);if(b〉c) swap(&b,&c);if(______2______) //a>bswap(&a,&b);printf("%d,%d,%d",a,b,c);}2.表达式求和.#include <stdio。
h〉#include <math.h>void main(){FILE *fp;float n=1,t=1,pi=0;int i;// 从以下开始答题i=1;while(fabs(t)>=1e—6){pi=pi+t; i= —i;n=n+2;t=i/n; }fp=fopen("Design1.dat","w”);fprintf(fp,”%.6f”,4*pi);fclose(fp);}运行结果:3.1415943.字母后移循环输出。
#include 〈stdio.h>void main(){ char c; c=getchar();if(______1______) // c>=’a' && c〈'v'c=c+5;elseif (c>=’v' &&c<=’z’)______2______ // c=c-21;putchar(c); }4.求满足条件的数。
一、选择题答案
1.D 2.C 3.B 4.A 5.C
6.D 7.C 8.D 9.B 10.A
11.C 12.C 13.D 14.C 15.B
16.C 17.B 18.C 19.D 20.A
21.B 22.B 23.A 24.A 25.D
26.C 27.D 28.B 29.B 30.D
31.D 32.C 33.A 34.D 35.A
36.A 37.B 38.D 39.A 40.C
二、填空题答案
(1)线性结构 (3)结构化 (5)关系 (2)n
(4)数据库管理系统
(6)print('****a=%d,b=%d****')
(7)1 (8)34
(9)14 (10)AFK
(11)211 (12)213
(13)3 (14)i+1
(15)1