2011级C++语言总复习

合集下载

2011年9月全国计算机等级考试二级C语言试卷及答案

2011年9月全国计算机等级考试二级C语言试卷及答案

2011年9月全国计算机等级考试二级笔试试卷(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)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.26.程序调试的任务是A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误7.下列关于数据库设计的叙述中,正确的是A.在需求分析阶段建立数据字典B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典8.数据库系统的三级模式不包括A.概念模式B.内模式C.外模式D.数据模式9.有三个关系 R、S 和 T 如下:则由关系 R 和 S 得到关系 T 的操作是A.自然连接B.差C.交D.并10.下列选项中属于面向对象设计方法主要特征的是A.继承B.自顶向下C.模块化D.逐步求精11.以下叙述中错误的是A.C 语言编写的函数源程序,其文件名后缀可以是 CB.C 语言编写的函数都可以作为一个独立的源程序文件C.C 语言编写的每个函数都可以进行独立的编译并执行D.一个 C 语言程序只能有一个主函数12.以下选项中关于程序模块化得叙述错误的是A.把程序分成若干相对独立的模块可便于编码和调试B.把程序分成若干相对独立,功能单一的模块,可便于重复使用这些模块C.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序13.以下选项中关于 C 语言常量的叙述错误的是:A.所谓常量,是指在程序运行过程中,其值不能被改变的量B.常量分为整型常量、实型常量、字符常量和字符串常量C.常量可分为数值型常量和非数值型常量D.经常被使用的变量可定义成常量14.若有定义语句:int a=10;double b=3.14;,则表达式‘A’+a+b 值得类型是A.charB.intC.doubleD.float15.如有定义语句:int x=12,y=8,z;,在其后执行语句 z=0.9+x/y,则 z 的值为A.1.9B.1C.2D.2.416.若有定义:int a,b;,通过语句scanf(‚%d;%d‛,&a,&b);,能把整数 3 赋给变量 a,5 付给变量 b 的输入数据是A.3 5B.3,5C.3;5D.3517.若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1 和 k2 的值分别为A. 0 和 1B.0 和 20C.10 和 1D. 10 和 2018.有以下程序#include <stdio.h>Main(){ int a=1,b=0;If(--a) b++;Else if(a==0) b+=2;Elseb+=3;Printf(‚%d\n‛,b);}程序运行后的输出结果是A.0B.1C.2D.319.下列条件语句中输出结果与其他语句不同的是A.if(a)printf(‚%d\n‛,x); else printf(‚%d\n‛,y);B.if(a==0)printf(‚%d\n‛,y); else printf(‚%d\n‛,x);C.if(a!=0)printf(‚%d\n‛,x); else printf(‚%d\n‛,y);D.if(a==0)printf(‚%d\n‛,x); else printf(‚%d\n‛,y);20.有以下程序:#include <stdio.h>Main(){ int a=7;While(a--);Printf(‚%d\n‛,a);}程序运行后的输出结果是A.-1B.0C.1D.721.以下不能输出字符 A 的语句是(注:字符 A 的 ASCII 码值为 65,字符 a 的 ASCII 码值为97)A.printf(‚%c\n‛,’A’-32);B.printf(‚%d\n‛,’A’);C.printf(‚%c\n‛,65);D.printf(‚%c\n‛,’B’-1);22.有以下程序(注:字符 a 的 ASCII 码值为 97)#include <stdio.h>Main(){ char *s={‚abc‛}; Do{printf(‚%d‛,*s%10);++s;}While(*s);}程序运行后的输出结果是A.abcB.789C.7890D.97989823.若有定义语句:double a,*p&a;以下叙述中错误的是A.定义语句中的*号是一个地址运算符B.定义语句中的*号只是一个说明符C.定义语句中的 p 只能存放 double 类型变量的地址D.定义语句中,*p=&a 把变量 a 的地址作为初值赋给指针变量 p24.有以下程序:#include <stdio.h>Double f(double x);Main(){ double a=0; int I; For(i=0;i<30;i+=10)a+=f((double)i); Printf(‚%5.0f\n‛,a);}Double f(double x){return x*x+1;}程序运行后的输出结果是A.503B.401C.500D.140425.若定义语句:int year=2009,*p=&year;,以下不能使变量 year 中的值增至 2010 的语句是A.*p+=1;B.(*p)++;C.++(*p);D.*p++;26.以下定义数组的语句中错误的是A.int num[]={1,2,3,4,5,6};B.int num[][3]={{1,2},3,4,5,6};C.int num[2][4]={{1,2},{3,4},{5,6}};D.int num[][4]={1,2,3,4,5,6};27.有以下程序#include <stdio.h>Void fun(int *p){printf(‚%d\n‛,p[5]);}Main(){int a[10]={1,2,3,4,5,6,7,8,9,10};Fun(&a[3]);}程序运行后的输出结果是A.5B.6C.8D.928. 有以下程序#include<stdio.h>#define N 4Void fun(int a[][N],int b[]) { inti;for(i=0;i<N;i++) b[j]=a[i]][j]-a[i][N,1-i];}Main(){ int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;Fun(x,y);for(i=0;i<N;i++) printf(‚%d‛,y[i]); printf(‚\n‛);程序运行后的输出结果是A.-12,-3,0,0,B.-3,-1,1,3,C.,0,1,2,3,D.-3,-3,-3,-3,29.有以下函数int fun(char *x,char *y){ int n=0;While((*x=*y)&&*x!=’\0’){x++;y++;n++;}Return n;}函数的功能是A.查找 x 和 y 所指字符串中是否有‘\0‘B.统计 x 和 y 所指字符串中最前面连续相同的字符个数C.将 y 所指字符串赋给 x 所值存储空间D.统计 x 和 y 所指字符串中相同的字符个数30.若有定义语句:char *s1=‛OK‛;*s2=‛ok‛;,以下选项中,能够输出‚OK‛的语句是A.if(stremp(s1,s2)==0) puts(s1);B.if(stremp(s1,s2)!=0) puts(s2);C.if(stremp(s1,s2)==1) puts(s1);D.if(stremp(s1,s2)!=0) puts(s1);31.以下程序的主函数中调用了在其前面定义的 fun 函数#include<stdio.h>Main(){double a[15],k; K=fun(a);}则以下选项中错误的fun函数首部是A.double fun(double a[15])B.double fun(double *a)C.double fun(double a[])D.double fun(double a)32.有以下程序:#include<stdio.h>#include<string.h>Main(){ char a[5][10]={‚china‛,‛beijing‛,‛you‛,‛tiananmen‛,‛welcome‛}; Int I,j;char t[10];For(i=0;i<4;i++)For(j=i+1;j<5;j++)If(stremp(a[i],a[j])>0){ strepy(t,a[i]); strepy(a[i],a[j]); strepy(a[i],t);} Puts(a[3]);}程序运行后的输出结果是A.beijingB.chinaC.welcomeD.tiananmen33.有以下程序:#include<stdio.h> Int f(intm){ static int n=0; N+=m;Return n;}Main(){ int n=0; Printf(‚%d,‛,f(++n));Printf(‚%d\n‛,f(n++));程序运行后的输出结果是____________A. 1,2B. 1,1C. 2,3D. 3,334.有以下程序#include<stdio.h>Main(){ char ch[3][5]={‚AAAA‛,‛BBB‛,‛CC‛} Printf(‚%s\n‛,ch[1]);}程序运行后的输出的结果是A.AAAAC.BBBCCD.BBB35.有以下程序#include<stdio.h>#include<string.h> Void fun(char *u,int n){ char x,*y1,*y2; Y1=u;y2=u+n-1;While(y1<y2) {s=*y1;*y1=*y2;*y2=s;p1++;p2--;}}Main(){ char a[]=‛1,2,3,4,5,6‛;Fun(a,strem(a));puts(a);}程序运行后的输出结果是A.654321B.115611C.153525D.12345636.有以下程序#include<stdio.h>#include<string.h>typedef struct{char name[];char sex;int score[2]}STU; STU f(STU i) {STU i={‚Zhao‛,‛m‛,85,90}; Int I;Strcpy(a name,b name); A sex=b sex;For(i=0;i<2;i++) a score[i]=b score[i]; Return a;}Main()STU c={‚Qian‛,‛f‛,95,92},d; D=f(c);Printf(‚%s,%c,%d,%d,‛,,d.sex,d.score[0],d.score[1]);Printf(‚%s,%c,%d,%d\n‛,,c.sex,c.score[0],c.score[1]);}程序运行后的输出结果是A.zhao,m,85,90,Qian,f,95,92B.zhao,m,85,90,zhao,m,85,90C.Qian,f,95,92,Qian,f,95,92D.Qian,f,95,92,zhao,m,85,9037.在以下程序#include<stdio.h>Main(){struct node{int n; struct node *next;}*p; Struct nodex[3]={{2,x+1},{4,x+2},{6,NULL}}; P=x;Printf(‚%d,‛,p>a);Printf(‚%d\n‛,p>next>a);程序运行后的输出结果是A.2,3B.2,4C.3,4D.4,638.有以下程序#include<stdio.h>Main(){ int a=2,b;B=a<<2; printf(‚%d\n‛,b);}程序运行后的输出结果是A.2B.4C.6D.839.以下选项中叙述错误的是A.C程序函数中定义的赋有初始值的静态变量,每调用一次函数,赋一次初值B.在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内C.C程序函数中定义的自动变量,系统不能自动赋确定的初值D.C程序函数的形参不可以说明为 static 型变量40.有以下程序#include<stdio.h>Main() {FILE *fp;Int k,n,I,a[6]={1,2,3,4,5,6};Fp=fopen(‚d2.dat‛,‛w‛);For(i=0;i<6;i++) fprintf(fp,‛%d\n‛,a[i]);Fclose(fp);Fp=fopen(‚d2.dat‛,‛r‛);For(i=0;i<3;i++) fscanf(fp,‛%d%d‛,&k,&n);Fclose(fp);Printf(‚%d,%d\n‛,k,n);}程序运行后的输出结果是A.1,2B.3,4C.5,6D.123,456二、填空题(每空2分,共30分)1.数据结构分为线性结构与非线性结构,带链的栈属于【1】2.在长度为 n 的顺序存储的线性表中插入一个元素,最坏情况下需要移动表中【2】3.常见的软件开发方法有结构化方法和面向对象方法,对某应用系统经过需求分析建立数据流图(DFD),则应采用【3】方法。

2011年计算机等级二级C语言章节习题及答案(13)

2011年计算机等级二级C语言章节习题及答案(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语言笔试试卷、答案 电子书.txt

2011年9月全国计算机等级考试C语言笔试试卷、答案 电子书.txt
(17)i若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和
k2的值分别为___________。
A)0和1 B)0和20 C)10和1 D)10和20
(17)B 【解析】根据清华大学出版社“C程序设计”P94关于逻辑表达式运算规定(1),
a&&b&&c,只要a为0,则不必判别b和c;若a为1才判别b;若b为0,则不必判别c。
现题目逻辑表达式左边(k1=k1>k2)为0,右边不再判别,所以答案是a为0;b仍为原值20。
(18)有以下程序
#include <stdio.h>
main()
{ int a=1,b=0;
是所有用户的公共数据视图。外模式也称用户模式,它是数据库用户能够看见和使用的局部
数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑
表示。内模式也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的
描述,是数据在数据库内部的表示方式,所以正确答案为D。
(9)有三个关系R、S和T如下:
R S T
A
B
C
A
B
C
A
B
C
a
1
2
a
1
2
c
3
1
b
2
1
b
2
1
C
3
1
则由关系R和S得到关系T的操作是___________。
辑判断值为0,输出y;D) 逻辑判断值a==0为1,输出x

2011年全国计算机等级二级C语言模拟试题及答案(9)

2011年全国计算机等级二级C语言模拟试题及答案(9)

2011年全国计算机等级二级C语言模拟试题及答案(9)一、选择题1.一个C语言程序是由()构成。

A.语句B.行号C.数据D.函数2.下面标识符中正确的是()。

A.d&efB.6aC.z4x5cD.a3/b43.在C语言中,存储一个字符型、整型、单精度实型变量所需的空间是()。

型、单精度实型变量所需的空间是()。

A.1、2、4B.1、1、4C.1、2、8D.2、2、84.为了避免嵌套的条件分支语句 if--else中的else总是与()组成成对关系。

A. 缩排位置相同的B. 在其之前未配对的C. 在其之前未配对的最近的ifD. 在同一行上的if5.下列表达式的结果正确的是()。

int aa,bb,cc,dd;aa=bb=cc=dd=1;sp; aa=bb=cc=dd=1;sp; aa=bb=cc=dd=1;(aa+1==2)?bb=aa+2:aa+3A.2B.3C. 1D.56.设有int x=11 ;则表达式(x+1/3)的值是()。

A.3B. 4C. 11D.127.设有字符串A=“He has 钱!”,则该字符串的长度为()。

A. 9B. 10C. 11D. 88.有如下程序段,则正确的执行结果是()int m=3;while(m<=5){ printf(“%d”,m-3); m++;}A. 0 0 0B.0 1 2C.1 2 3D.无结果9.执行语句:printf("%d",(a=2)&&(b= -2);后,输出结果是()。

A.无输出B.结果不确定C.-1D. 110.有如下定义类型语句,若从键盘输入数据,正确的输入语句是()。

int x; char y; char z[20];A. scanf("%d%c%c",&x,&y,&z);B. scanf("%d%c%s",&x,&y,&z);C. scanf("%d%c%c",&x,&y,z);D. scanf("%d%c%s",&x,&y,z);11. struct ex{ int x ; float y; char z ;} example;则下面的叙述中不正确的是()。

2011年计算机二级C语言编写程序题及答案解析精选1

2011年计算机二级C语言编写程序题及答案解析精选1

2011年计算机二级C语言编写程序题及答案解析精选【4.1】已知银行整存整取存款不同期限的月息利率分别为:0.315%期限一年0.330%期限二年月息利率=0.345%期限三年0.375%期限五年0.420%期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。

【4.2】输入年份year和月month,求该月有多少天。

判断是否为闰年,可用如下C语言表达式:year%4==0&&year0!=0||year@0==0。

若表达式成立(即表达式值为1),则year 为闰年;否则,表达式不成立(即值为0),year为平年。

【4.3】编写一个简单计算器程序,输入格式为:data1op data2。

其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。

【4.4】输入n值,输出如图所示矩形。

【4.5】输入n值,输出如图所示平行四边形。

【4.6】输入n值,输出如图所示高为n的等腰三角形。

【4.7】输入n值,输出如图所示高为n的等腰三角形。

【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。

【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。

【4.10】输入n值,输出如图所示边长为n的空心正六边型。

【4.11】输入n值,输出如图所示图形。

【4.12】输入n值,输出如图所示图形。

【4.13】输入n值,输出如图所示图形。

【4.14】输入n值,输出如图所示图形。

【4.15】输入n值,输出如图所示图形。

【4.16】输入n值,输出如图所示图形。

(例为n=6时)【4.17】编写程序,输出如图所示sin(x)函数0到2π的图形。

【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。

【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。

若屏幕的横向为x轴,纵向为y 轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。

C语言期末考试全部知识点复习资料重点常考点

C语言期末考试全部知识点复习资料重点常考点

C语言期末考试全部知识点复习资料重点常考点C语言知识点复习资料考试就是难得的训练自己的机会,在特定的时间、特定的地点、特定的气氛下,您需要调动各方面的能力。

而在每一次考试中,我都下意识地应用自己摸索出来的“目标控制法”,做到了每次考试有有收获与进步。

每次考试前,我都会在一张白纸上写满通过本次考试要达到的目标:要注意克服哪些易犯的错误,尤其就是要克服前几次考试中暴露出来的共性的失误;要积累哪些经验,应用哪些技巧,比如选择题中的特征值法;要在多长的时间内完成卷面各部分,比如,争取35分钟内完成数学试卷中的选择题与填空题;要培养锻炼哪些考试应试的心理素质等。

也就就是说,我们要把考试瞧成就是一个完整的流程,包括考前准备、考场发挥与考后调整三个阶段。

同学中存在的误区往往就是只注意考前的准备与考场的发挥两个阶段,对考后调整注意不够。

事实上,高考之前的每一次模拟考试,最重要的就就是考试后的总结与反思,只有这样,才能认识到自己的薄弱环节,不断提高考试能力。

所以,有心的同学一定要注意做好健全的考后调整,不断提高自己的实力。

总体上必须清楚的:1.程序中基本的控制结构就是三种: 顺序结构、选择结构(分支结构)、循环结构。

2.读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。

3.计算机的数据在电脑中保存就是以二进制的形式、数据存放的位置就就是它的地址、4.bit就是位就是指为0 或者1。

byte 就是指字节, 一个字节 = 八个位、5、编译预处理不就是C语言的一部分,不占运行时间,不要加分号。

(常考!)#define PI 3、1415926; 这个写法就是错误的,一定不能出现分号。

6、每个C语言程序中main函数就是有且只有一个。

7、用C语言编写的程序称为源程序,扩展名就是、c。

C程序必须经过编辑、编译、链接、运行四个步骤才可得到运行结果。

注意、c 与、obj文件时无法运行的,只有、exe文件才可以运行。

2011年3月计算机二级考试c语言试题及答案详细解析

2011年3月计算机二级考试c 语言试题及答案详细解析2011年3月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题(1-10,21-40每题2分,11-20每题1分,共70分)(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3 B)4 C)6 D)7(4)在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划 B)软件详细设计说明书C)用户手册 D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构 B)GOTO跳转C)选择(分支)结构 D)重复(循环)结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操纵语言A)a=(b=4)=3; B)a=b=c+1;C)a=(b=4)+c; D)a=1+(b=c=4);(16)有以下程序段char name[20];int num;scanf("name=%s num=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name 的值为A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值 B)必须是整数值C)必须是正数 D)可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是A)12 B)11 C)10 D)9(19)有以下程序#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case1:printf("%d",s+5);case2:printf("%d",s+4); break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入1 2 3 4 5 0<回车>,则输出结果是A)6566456 B)66656 C)66666 D)6666656(20)有以下程序段int i,n;for(i=0;i<8;i++){ n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n); continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次 B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行(21)有以下程序#includemain(){ char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);}程序运行后的输出结果是A)0 B)3 C)7 D)8(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环(23)有以下程序#includemain(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+b);else putchar(i+c);} printf("\n");}程序运行后的输出结果是A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));C)scanf("%lf",p+6); D)scanf("%lf",p[6]);(25)有以下程序(说明:字母A的ASCII码值是65)#includevoid fun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}}main(){ char a[]="BYTE";fun(a); printf("\n");}程序运行后的输出结果是A) BY B) BT C) YT D) YE(26)有以下程序段#includemain(){ …while( getchar()!='\n');…}以下叙述中正确的是A)此while语句将无限循环B) getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行(27)有以下程序#includemain(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运行后的输出结果是A)3 B)2 C)1 D) 0(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A)p=s; B)p=k; C)p=s[0]; D)k=s;(29)有以下程序#includevoid fun(char *c){ while(*c){ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main(){ char s[81];gets(s); fun(s); puts(s):}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。

2011二级C语言考试大纲Microsoft Word 文档

考试内容一、C语言的结构1.程序的构成,MAIN函数和其他函数。

2.头文件,数据说明,函数的开始和结束标志。

3.源程序的书写格式4.C语言的风格。

二、数据类型及其运算(基础)1.C的数据类型(基本类型,构造类型,指针类型,空类型)及其定义方法。

2.C运算符的种类、运算优先级和结合性。

3.不同类型数据间的转换与运算。

4.C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。

三、基本语句(基础)1.表达式语句,空语句,复合语句。

2.数据的输入和输出,输入输出函数的调用。

3.复合语句。

4.GOTO语句和语句标号的使用。

(这个了解即可)四、选择结构程序设计1.用if语句实现选择结构。

(基础)2.用switch语句实现多分支选择结构。

(笔试有)3.选择结构的嵌套。

五、循环结构程序设计 (基础)1.for 循环结构。

2.while和do while循环结构。

3.continue语句和break语句。

4.循环的嵌套。

(基础)六、数组的定义和引用1.一维数组和多维数组的定义、初始化和引用。

2.字符串与字符数组。

七、函数 (基础)1.库函数的正确调用。

2.函数的定义方法。

3.函数的类型和返回值。

4.形式参数与实在参数,参数值的传递。

5.函数的正确调用,嵌套调用,递归调用。

6.局部变量和全局变量。

7.变量的存储类别(自动、静态、寄存器、外部),变量的作用域和生存期。

8.内部函数与外部函数。

八、编译预处理 (基础,笔试有考到宏替换)1.宏定义:不带参数的宏定义;带参数的宏定义。

2.“文件包含”处理。

九、指针 (这个很重要,上机题有这方面的)1.指针与指针变量的概念,指针与地址运算符。

2.变量、数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量。

通过指针引用以上各类型数据。

3.用指针作函数参数。

4.返回指针值的指针函数。

5.指针数组,指向指针的指针,MAIN函数的命令行参数。

2011《C语言》复习提纲

基本知识要求一、语法基础1、记住C语言常量的定义方法(#define 名称值),理解符号常量与变量的区别;2、记住C语言标识符的要求(只能由数字、英文字母、下划线组成,第一个字符不能是数字);3、理解计算机存储整数的方法(什么是补码?怎样计算?程序实现补码提取的方法?);理解计算机存储字符的方式(ASCII码),区分数字字符与数字,掌握相互转换的方法。

同时理解大小写字符的转换方法及与自然数的映射方法;4、了解(unsigned)char、(unsigned)(short)int、(unsigned)long、float、double常量表达方法,掌握怎样求各类整数范围,以及在printf及scanf中对应的格式控制符;(注意char也可以当作整数使用,用的是什么?)5、理解转义字符的含义,掌握常见转义字符:\0、\n、\t、\\、\’、\”、\ddd、\xhh;6、记住常量字符串的表示方法(与常量字符表示区别?),理解字符串在C语言中的存储方式及特点,由此掌握字符串在C语言中的访问及遍历方式。

7、理解C语言中的不同类型数据在同一个表达式中的运算规则,能手动计算简单表达式;8、理解C语言的常用运算符,掌握++、--运算符的简单使用(前置与后置的区别),掌握/和%的使用规则,掌握指针[] 与*(指针) 的关系;9、理解强制类型转换的含义及使用场合;10、理解赋值规则(注意有符号数赋给无符号变量的使用);理解复合赋值;(注意赋值号左边必须是一个存储单元,实际上常常就是一个变量);11、了解逗号运算符和三元运算符。

二、控制结构1、记住C语言中的关系运算符与逻辑运算符(注意==与!=),掌握关系和逻辑表达式的运算规则和方式;理解C语言对逻辑值的判断方式(非零作为真);2、熟练掌握if语句的使用,注意{}的使用及if-else的配对;3、理解C语言中的常用的三种循环(while、do-while和for),特别注意for循环的表达方式及循环执行流程;4、掌握for循环的常见使用方法(与一维数组、二维数组和字符结合各自的使用方式,一些数组使用的技巧);5、理解break、continue的含义及使用方式及场合(break在循环和switch中)。

2011年C语言考试复习要点

各位C语言任课老师:临近期末考试,现将期末复习的考试类型及复习范围告诉各位,请安排学生进行及时的复习一、考试类型上机考试二、复习范围选择题目:涉及的都是基本概念、简单读程序写结果(文件不考,指针、结构共用体只考简单的概念)操作题:主要类型(1)打开指定文件,编译、运行、存盘(2)新建一.c文件,编译、运行、按指定程序名存盘主要考学生对于程序的建立、编译、运行过程的操作以及能否读懂程序,并按照程序要求输入数据程序改错题目:主要类型(1)数据类型是否定义正确(2)变量的初值设置是否正确(3)输入输出语句的格式及类型控制符是否使用正确(4)程序的主要算法关键语句的赋值是否正确(5)主要语句体中是否有缺失的条件、循环的条件是否正确等(6)函数调用的参数是否正确主要考察学生调试程序的能力,并能够根据要求改正错误,运行程序、存盘程序填空题目:主要类型(1)填写程序的赋初值语句(2)填写循环条件、选择条件中的条件(3)填写主要语句体中缺失的语句(4)填写函数调用语句主要考察学生读程序的能力,读懂程序后,根据上下文,填写缺失的语句,并运行出正确的结果,运行程序、存盘编程题目:主要类型因为程序中涉及一些给定的初值的设定,有些学生可以根据给定的初值,推算出结果进而直接用return语句返回结果而省略了主要程序段的编写,因此在题库中使用了随机函数生成一个或多个整数的语句。

(1)要求学生掌握随机数产生函数rand()的用法(2)考试的主要算法有求素数用辗转相除法求最大公约数求和、求积(阶乘)(可根据实验手册、书P131的一些求和公式给学生复习)(1)求公式的前1000项,求π的近似值:(2)直到最后一项中的分数小于1e-6为止(不包括最后一项)求最大值最小值(n个数、一维数组、二维数组)二维数组对角线元素之和字符串逆序(数组元素逆序存放)数组(字符数组)元素的查找、替换、统计、求平均值等其他:如(1)已知某企业今年的产值为100万元,如果产值的年均增长率为5%,经过5年后,企业的产值达到多少万元?(或求经过多少年后,企业产值达150万元)三、复习资料:实验手册上(分支、循环、数组、函数)的所有填空、改错的题目都具有代表性可以给学生附件中的题目复习,有很大的参考价值(除选择题以外,考题与这些题目不一样)书上讲过的一些典型的比较简单的例题(排序、递归等不在考试范围内)四、复习模拟练习机房即将安装模拟考试练习,模拟考试练习只用于学生熟悉考试环境用(里面只有3套题目)17~18周教师可以在课内安排学生模拟练习考试环境,但是大量的练习还是在课后。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C++语言》复习提纲一、数据类型与表达式1C++数据类型:掌握C++数据类型的含义、应用及在内存中所占字节数(表2.1)。

2常量:2.1数值型常量:数值型常量的类型、整型常量的3种表示方式(三种进制)、浮点数的表示方法;2.2字符型常量:普通字符常量、转义字符及其含义(表2.2)、字符在内存中的存储形式(ASCII码形式存储,占1个字节)、字符数据与整数数据的计算、字符串常量、‘字符’与“字符串“的区别;2.3符号常量:符号常量的定义方法(#define )、符号常量与变量及常变量区别。

3变量:3.1变量值、存储单元的区别;3.2变量名规则:会判断何为合法变量名;3.3变量的定义与使用:变量须先定义后使用!3.4常变量:定义方法(const),符号常量、变量、常变量的区别?4C++运算符与运算表达式:4.1掌握各运算符定义及算法、优先级顺序、结合性、对数据要求4.2掌握表达式中各类数值型数据间的混合运算,能计算表达式的值5习题:3、4、5、6、7(41页-42页)二、基本程序设计1C++程序和语句:预处理命令(#include< >等)、C++语句语法格式。

2能够根据程序语句写出运行结果(赋值语句、输入输出、if-else语句、多分支/swicth 语句、条件表达式语句、循环do-while/while/for语句等。

3会分析判断循环程序的循环次数、是否为“死循环”。

4例题:3.7、3.9、3.13、3.14、3.15、PPT课件中例题、练习。

5习题:8、9、15、18、24。

三、★函数★1C++程序由函数构成,程序从main()函数开始执行。

2什么是函数定义、函数声明及函数调用?函数须平行定义,可嵌套、递归调用。

3什么是形参、实参、函数的值?4函数返回值语句(return),返回值唯一。

5有默认参数函数,实参与形参结合顺序。

6什么是局部变量、全局变量?静态局部变量?7例题:4.11、4.12、4.13、4.8,PPT课件中例题。

8习题:1、3、4。

四、★★数组★★1数组概念:数组、下标、数组元素。

2数组定义、初始化、引用。

3一维数组——函数参数。

4字符数组:定义、初始化、赋值、引用;字符串及字符串结束标志‘/0’,字符串长度;用字符串为字符数组赋值;字符串处理函数:strcat、strcpy、strcmp、strlen。

6习题:2、3、4、5。

五、★★指针★★1概念:内存单元地址、直接访问、间接访问;指向、指针、指针变量; &--取地址符号;2指针变量的定义:*--指针定义类型;指针变量的引用:*--指向符号;3指针做函数参数(通过调用函数使变量的值发生变化!);4指向数组元素的指针;5例题:6.1、6.2、6.3、6.5、表6.1、 PPT课件中例题。

6习题:1、2、3、14。

注:●期末考试题型:选择题、填空题、分析程序写结果(程序填空)、编程题(教材习题)。

●考试要求:100分钟,闭卷。

●总评成绩=期末试卷成绩*70%+平时成绩*30%。

(1/3以上课时未出勤无考试资格)附:参考练习题1.与十进制数97不等值的字符常量是A) ’a’ B) ’\101’ C) ’\x61’ D) ’\141’2.以下选项中正确的整型常量是A) 5.B)-10 C)1.000 D)4/53.以下选项中正确的实型常量是A) 0 B)3.1415 C)0.03x102 D)-324.以下选项中不合法的用户标识符是A)wb_1 B)file C)main D)PRINTF5.以下选项中不合法的用户标识符是A)_123 B)12aa C)Aa D)John6.C++语言中运算对象必须是整型的运算符是A)% B)/ C)* D)+7.可在C++程序中用作标识符的一组标识符是A)void B)as_b3 C)For D)2cDefine _123 -abc DOWORD John case SiG8.若变量已正确定义并赋值,符合C++语言语法的表达式是A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 9.以下非法的赋值语句是10.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是A) 6.500000 B) 6 C) 5.500000 D) 6.00000011.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是A) 6 B) 0 C) 2 D) 112.以下叙述中正确的是A)在C++程序中,无论是整数还是实数,只要在允许的范围内都能准确无误的表示。

B)C++程序由主函数组成。

C)C++程序由函数组成。

D)C++程序由函数和过程组成。

13.Visual C++6.0中int类型变量所占字节数是A)1 B)2 C)3 D)414.不合法的八进制数是A)0 B)028 C)07700 D)0115.若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是A)a=b=c=100; B)d++; C)c+b; D)d=(c=22)-(b++);16.以下选项中不是C++语句的是A){int i; i++; cout<<i; } B);C)a=5,c=10 D){ ; }17.以下程序的输出结果是main(){ int x = 10, y = 3;Cout<<x/y;}A)0 B)1 C)3 D)不确定的值18.C++语言中,字符(char)型数据在微机内存中的存储形式是A)反码 B)补码 C)EBCDIC码D)ASCII码19.设有语句char a= ‘\172’;,则变量aA)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法20.C++语言中不合法的字符常量是A)’\xff’ B)’\65’ C)’&’ D)’\028’21.C++语言中不合法的字符串量是A)”\121” B)’y=’ C)”\n\n” D)”ABCD\x6d”22.判断char型变量c是否为大写字母的最简单且正确的表达式是A)’A’<=c<=’Z’ B)(c>=’A’&(c<=’Z’)C) (‘A’<=c)AND(‘Z’>=c) D)(c>=’A’)&&(c<=’Z’)23.下列运算符中优先级最高的运算符是A)! B)% C)-= D)&&24.下列运算符中优先级最低的运算符是A)|| B)!= C)<= D)+25.为表示关系 x≥y≥z,应使用的C++语言表达式是A)(x>=y)&&(y>=z) B)(x>=y)AND(y>=z)C)(x>=y>=z) D)(x>=y)&(y>=z)26.设a、b和c都是int变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是A)a&&b B)a<=b C)a||b+c&&b-c D)!((a<b)&&!c||1)1.若k为int型变量且赋值11,请写出运算k++后表达式的值 11 和变量的值 12 。

2.若x为double型变量,请写出运算x = 3.2, ++x后表达式的值 4.2 变量的值 4.2 。

3.函数体由符号 { 开始,用符号 } 结束。

4.函数体的前面是声明部分,其后面是可执行语句部分。

5.在C++语言程序中,用关键字 int 定义基本整型变量,用关键字 float 定义单精度实型变量,用关键字 double 定义双精度实型变量。

6.把a1、a2定义成单精度实型变量,并赋初值1的定义语句是 float a1=1,a2=1;。

7.表达式3.5 + 1 / 2的计算结果是 3.5 。

8.表达式s = 10应当读做“将10赋给s ”。

9.C++语言中用 1 表示逻辑真,用 0 表示逻辑假。

10.根据C++语言运算符的优先顺序和结合性,按从高到低的顺序写出以下表达式中,运算符“+”、“>”、“*”、“&&”、“!=”、“||”、“!”和“/”的优先顺序:、、、、、、、。

11.若表达式(a + b) > c * 2 && b != 5 || !(1 / 2)中,a、b、c的定义和赋值为int a = 3, b = 4, c = 2;则表达式的值为 1 。

单选题1.运行以下程序后,输出的结果是main(){ int k = -3;if(k <= 0)cout<<“****\n”;else cout<<“&&&&\n”;}A)**** B)&&&&C)****&&&& D)有语法错误不能通过编译2.有如下程序main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}cout<<”a=”<<a<<”,b=”<<b<<endl;}该程序的输出结果是A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=23.有以下程序main(){if(a>b>c) 表达式的值为假cout<<d;else if((c-1 >= d) == 1)cout<<d+1;else cout<<d+2;}执行后输出结果是A) 2 B) 3 C) 编译时出错 D) 44.有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)cout<<i<<j<<k;}执行后输出结果是A)112 B)221 C)222 D)2235.有如下程序main(){float x=2.0,y;if(x<0.0)y=0.0;else if(x<10.0)y=1.0/x;else y=1.0;cout<<y;}该程序的输出结果是A)0.000000 B)0.250000 C)0.500000 D)1.000000填空题1.请写出以下程序的输出结果 1 。

main(){ int a = 100;if( a > 100) cout<< (a > 100);else cout<<( a <= 100);}2.当a = 1、b = 2、c = 3时,以下if语句执行后,a、b、c中的值分别为:3 、2 、2 。

相关文档
最新文档