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语言模拟试题及答案(6)

2011年全国计算机等级二级C语言模拟试题及答案(6)
一.单项选择题
1.各种基本数据类型的存贮空间正确的长度排列为__________。
A.CharB.DoubleC.CharD.Float
2.下面的变量说明中_____________是正确的。
A.Char:a, b, c;
B.C的作用是继续程序中的下一个循环。 ( )
四.编程题
1. 从键盘上输入20个元素的值存入一维数组a中,然后将下标为(1、3、5、7、9……)的元素值赋值给数组b,输出数组b的内容。
2. 编程序求 3,-30,20,6,77,2,0,-4,-7,99这十个数中最大值与最小值。
{ scanf(“%d”,&m[a]);
if(a%2= =1)
{ n[b]=m[a];
b++; }
}
}
2. main()
{ int m[10]={ 3,-30,20,6,77,2,0,-4,-7,99},max,min;
{ int c;
c=a*a+b*b;
return c; }
main()
{ int x,y,z;
scanf(“%d,%d”,&x,&y);
z=stu(x,y);
printf(“%d”,z); }
4.main()
{ FILE *fp;
5. C 6. B 7. D 8. C 9. B 10. C
11. B 12.A 13 D 14. B 15. A 16. A.
17. C 18. B 19. A.20. C.
二.写出下列程序的运行结果
1.10 9 2.S=9 3. 1,5 4.19 5.40

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年国家计算机二级c语言等级考试上机题库100题(含答案)

2011年国家计算机二级c语言等级考试上机题库100题(含答案)

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)k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。

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年9月全国计算机等级考试二级C语言 (全)

最新2011年9月全国计算机等级考试二级C语言 (全)

第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。

函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。

/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

int fun(STREC *a,STREC *b,int l,int h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。

函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。

第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。

/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n 返回这些数的个数。

2011年3月份计算机二级c语言考试题及答案

2011年3月份计算机二级c语言考试题及答案

2011年3月份计算机二级c语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的叙述中,错误的是()。

A. C语言是一种高级语言B. C语言是一种面向对象的程序设计语言C. C语言具有结构化的特点D. C语言可以用于编写操作系统答案:B2. 在C语言中,下列选项中不是合法的整型常量是()。

A. 012B. 0x1AC. 0LD. 1.2答案:D3. 下列关于数组的描述,正确的是()。

A. 数组必须初始化B. 数组的下标从0开始C. 数组的下标可以是小数D. 数组的元素类型必须相同答案:D4. C语言中,下列关于函数的描述,错误的是()。

A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以嵌套定义D. 函数可以递归调用答案:C5. 下列关于指针的描述,正确的是()。

A. 指针变量可以赋值给普通变量B. 指针变量可以指向不同类型的数据C. 指针变量可以作为函数的参数D. 指针变量本身没有地址答案:C6. 下列关于结构体的描述,错误的是()。

A. 结构体可以包含其他结构体B. 结构体的成员可以是函数C. 结构体的成员可以是数组D. 结构体的成员可以是指针答案:B7. 在C语言中,下列关于文件操作的描述,错误的是()。

A. 文件操作需要包含头文件stdio.hB. 文件指针是指向文件的指针C. 文件操作只能用于文本文件D. 文件操作可以使用fopen函数打开文件答案:C8. 下列关于预处理命令的描述,错误的是()。

A. #define可以定义宏B. #include可以包含头文件C. #ifdef可以进行条件编译D. #error可以产生编译错误答案:D9. 下列关于C语言中变量的作用域和生命周期的描述,错误的是()。

A. 局部变量在函数内部定义B. 全局变量在函数外部定义C. 局部变量的生命周期是函数调用期间D. 全局变量的生命周期是程序运行期间答案:B10. 下列关于C语言中循环结构的描述,错误的是()。

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

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

2011年全国计算机等级二级C语言模拟试题及答案(13)一、单项选择题。

(每题1分,共20分)1. C程序的基本单位是:()A.子程序B.程序C.子过程D.函数2.在C语言中,非法的八进制是:()A.016B.018C.017D.023. 不是C语言实型常量的是:()A.55.0B.0.0C.55.5D.55e2.54 .字符串“xyzw”在内存中占用的字节数是:()A.6B.5C.4D.35. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:()A.2.0B.2.25C.2.1D.1.56. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2-`a`,c2-c1);则输出结果为:()(a的ASCII码值为97)A.M,2B.G,3C.G,2D.D,g7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是:()A.a=2.2,b=3B.a=2.2 b=3D.2.2,38.表示关系12<=x<=y的C语言表达式为:()A.(12<=x)&(x<=y)B. (12<=x)&&(x<=y)C. (12<=x)|(x<=y)D.(12<=x)||(x<=y)9.设x=1,y=2,m=4,n=3,则表达式x>y?x:m<n?y:n的值为:()A.1B.3C.2D.410. 若有说明和语句:int a=5,b=6;b*=a+1;则b的值为:()A.5B.6C.31D.3611. 设整型变量s,t,c1,c2,c3,c4的值均为2,则执行语句(s=c1==c2)| |(t=c3>c4)后,s,t的值为:()A.1,2C.0,1D.1,012. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf 最多可执行次数为:()A.4B.6C.5D.113. 对于for(s=2;;s++)可以理解为:()A. for(s=2;0 ;s++)B. for(s=2;1 ;s++)C. for(s=2;s<2 ;s++)D. for(s=2;s>2;s++)14. 若有char h=`a`,g=`f`;int a[6]={1,2,3,4,5,6};则数值为4的表达式为:()A.a[g-h]B.a[4]C.a[`d`-`h`]D.a[`h`-`c`]15. 设:char s[10]={“october”};则printf(“%d\n”,strlen(s));输出是:()A.7B.8C.10D.1116. 若有int a[3][5]={2,2},{2,6},{2,6,2}},则数组a共有个元素:()A.8B.5C.3D.1517. 设int a=5,b,*p=&a,则使b不等于5的语句为: ()A.b=*&aB.b=*aC.b=*pD.b=a18. 若有int a[7]={1,2,3,4,5,6,7},*p=a则不能表示数组元素的表达式是: ()A.*pB.*aC.a[7]D.a[p-a]19. 若有int b[4]={0,1,2,3},*p则数值不为3的表达式是: ()A.p=s+2,*(p++)B.p=s+3,*p++C. p=s+2,*( ++p)D.s[3]20.设有如下定义:struct jan{int a;float b;}c2,*p;若有p=&c2;则对c2中的成员a的正确引用是:()A.(*p).c2.aB.(*p).aC.p->c2.aD. p.c2.a二、填空题。

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

2011年全国计算机等级二级C语言模拟试题及答案(7)
1.i<=9 j=1 i , j , i*j “\n”
2 2 2.int max(x,y)
int x,y;sp; int x,y;
{ int z;
z=x*x+y*y;
return(z); }
}
}
2. main()
{ int m[10]={ 3,-30,20,6,77,2,0,-4,-7,99},max,min;
max=min=m[0];
for(a=0;a<10;a++)
{ if(m[a]>max)
max=m[a];
if(m[a]<min)
二.写出下列程序的运行结果
1.10 9 2.S=9 3. 1,5 4.19 5.40
三.判断题
1. 对 2. 不对 3. 不对 4. 对 5.不对
6. 对 7. 不对 8. 不对 9. 不对 10.不对
五、阅读程序,写出下列程序段的结果
1. 110
2. –1 0 1
3. c1=10 ,c2=10
c1=10
4.3,5,6,7,9
5. 3
六、编程题
1.main()
{ int a[10];
5. main()
{ int x;
x=3;
do
{ printf(“%d”,x--);
}while(!x); }
该程序运行的结果是___________________________________________________________
四.编程题
1. main()
{ int m[20],n[10];

2011年计算机二级C语言各类题型试题及答案解析精选汇总

2011年计算机二级C语言各类题型试题及答案解析精选汇总

一、单项选择题【1.1】以下不正确的C语言标识符是____。

A) int B) a_1_2 C) ab1exe D) _x【1.2】以下是正确的C语言标识符是____。

A) #define B) _123 C) %d D) \n【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。

••• A) print B) i\am C) Pxq D) str_l ••• _3d one_half My->book Cpp ••• oodbs tart$it line# pow ••• aBc 3pai His.age while【1.4】下面各选项组中,均是C语言关键字的组是。

A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type【1.5】下列不属于C语言关键字的是。

A) default B) register C) enum D) external【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。

A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置【1.7】下列关于C语言的叙述错误的是____A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义【1.8】在C语言中,错误的int类型的常数是。

A) 32768 B) 0 C) 037 D) 0xAF【1.9】执行语句printf("%x",-1);屏幕显示____。

A) -1 B) 1 C) -ffff D) ffff【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。

二级C语言笔试真题及答案大全

二级C语言笔试真题及答案大全

2011年9月计算机二级C语言笔试模拟题一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

一、选择题(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为n B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。

详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)a-b(14)若有定义:double a=22;inti=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序#include<stdio.h>main(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是1A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case 0:a=b;break;case 1:a++;}C)switch(a){default:a++;break;case 1:a=b;}D)switch(a==1){case 1:a=b;break;case 0:a++;}(19)有如下嵌套的if语句if (a<b)if(a<c)k=a;else k=c;elseif(b<c)k=b;else k=c;以下选项中与上述if语句等价的语句是A)k=(a<b)?a:b;k=(b <c)?b:c;B)k=(a<b)?((b<c)?a:b):((b>c)?b:c);C)k=(a<b)?((a<c)?a:):((b<c)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序#include<stdio.h>main(){in i,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j)>3)break;m=i*j;}}printf("m=%d\n",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){int a=l;b=2;for(;a<8;a++){b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#include <stdio.h>main(){int k=011;printf("%d\n",k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;int num[N];D)#define N 2008int num[N];(26)有以下程序#include <stdio.h>void fun(char *c,int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){char b='a',a='A';fun(&b,a);printf("%e,%e\n",b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义doublea[10],*s=a;,以下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main(){int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++)s=s+a[b[i]]);printf("%d\n", s);}程序运行后的输出结果是A)6B)10C)112D)15(30)有以下程序#include <stdio.h>main(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",*s2="\n123\\";printf("%d %d\n", strlen (s1),strlen(s2));则输出结果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include <stdio.h>#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=O;i<N/2;i++){printf("%d",a[i]);}printf("\n");}程序运行后的输出结果是A)1313B)2234C)3234D)1234(33)有以下程序#include <studio.h>int f(int t[],int n);main{ int a[4]={1,2,3,4},s;s=f(a,4); printf("%d\n",s);}int f(int t[],int n){ if(n>0)return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)1OC)14D)6(34)有以下程序#include <stdio.h>int fun(){ static int x=1;x*2; return x;}main(){int i,s=1,for(i=1;i<=2;i++)s=fun();printf("%d\n",s);}程序运行后的输出结果是A)OB)1C)4D)8(35)有以下程序#include <stdio.h>#define SUB(a)(a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是A)0B)-12C)-20D)10(36)设有定义:struct complex{ int real,unreal;}data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct Aa={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;}程序运行后的输出结果是A)1001,zhangDa,1098.0B)1002,changRong,1202.0C)1001,ehangRong,1098.OD)1002,ZhangDa,1202.0(38)有以下定义和语句struct workers{int num;char name[20];char c;struct{int day; int month; int year;}s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A)*pw.year=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#include <stdio.h>main(){ int a=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是A)OB)1C)2D)3(40)有以下程序#include <stdio.h>main(){FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);3rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abcB)28cC)abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。

2011年计算机等考二级C语言上机题库(100)完整题目+答案

2011年计算机等考二级C语言上机题库(100)完整题目+答案

一、填空题:函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a 所指数组中的最小值放在a[1]中;再把a所指数组元素中的次大值放在a[2]中,把 a数组元素中的次小值放在a[3]中;其余以此类推。

例如:若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,则按规则移动后,数据排列为: 9、1、8、2、7、3、6、4、5。

形参n中存放a所指数组中数据的个数。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下BLANK1.C中。

不得增行或删行,也不得更改程序的结构!给定源程序:#include#define N 9/**********found**********/void fun(int ___1___, int n){int i, j, max, min, px, pn, t;/**********found**********/for (i=0; i {max = min = a[i];px = pn = i;/**********found**********/for (j=___3___; j< p>{if (max < a[j]){max = a[j]; px = j;}if (min > a[j]){min = a[j]; pn = j;}}if (px != i){t = a[i]; a[i] = max; a[px] = t;if (pn == i) pn= px;}if (pn != i+1){t = a[i+1]; a[i+1] = min; a[pn] = t;}}}main(){int b[N]={1,4,2,3,9,6,5,8,7}, i;printf("\nThe original data :\n");for (i=0; i< ?, printf(?%4d>fun(b, N);printf("\nThe data after moving :\n");for (i=0; i< ?, printf(?%4d>}解题答案:/第一空/void fun(int *a, int n)/第二空*/for (i=0; i /第三空/for (j=i+1; j< p>******************************************二、改错题:给定程序MODI1.C中函数fun的功能是:按顺序给s所指数组中的元素赋予从2 开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。

2011年全国计算机等级二级C语言模拟试题

2011年全国计算机等级二级C语言模拟试题

2011年全国计算机等级二级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的表达式是()。

A. b=a/2B. 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 个元素的地址为()。

A.P+i*2B. P+(i-1)*2C. P+(i-1)D. P+i5、选出下列标识符中不是合法的标识符的是()。

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

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

2011年计算机等级二级C语言章节习题及答案(4)一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。

)5.1 在C程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表示逻辑值“假”。

在求逻辑值时,用()表示逻辑表达式值为“真”,又用()表示逻辑表达式值为“假”。

A)1 0B)0 1C)非0 非0D)1 1正确答案: A5.2 已知int x=6,y=2,z;则执行表达式z=x=x>y后,变量z的值为A)0B)1C)4D)5正确答案: B5.3 能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是A)a>=10 or a<=0B)a>=0|a<=10C)a>=10 &&a<=0D)a>=10‖a<=0正确答案: D5.4 若变量c为char类型,能正确判断出c为小写字母的表达式是A)′a′<=c<=′z′B)(c>=′a′)||(c<=′z′)C)(′a′<=c)and(′z′>=c)D)(c>=′a′)&&(c<=′z′)正确答案: D5.5 设int x=1,y=1;表达式(!x||y- -)的值是A)0B)1C)2D)-1正确答案: B5.6 有如下程序段int a=14,b=15,x;char c=′A′;x=(a&&b)&&(c<′B′);执行该程序段后,x的值为A)tureB)falseC)0D)1正确答案: D5.7 以下程序的输出结果是main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf(“%d\n”,d);}A)1B)0C)非0的数D)-1正确答案: A5.8 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值是A)1B)2C)3D)4正确答案: B5.9 已知x,y,z均为整型变量,且值均为1,则执行语句++x||++y&&++z;后,表达式x+y的值为A)1B)2C)3D)4正确答案: C5.10 表达式aA)||B)&C)<D)()5.11 若运行时给变量x输入12,则以下程序的运行结果是main(){int x,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\n”,y);}A)0B)22C)12D)10正确答案: A5.12 已知char ch=′C′;则以下表达式的值是ch=(ch>=′A′ && ch<=′Z′)?(ch+32):ch;A)AB)aC)ZD)c正确答案: D5.13 若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是A)(exp==0)B)(exp!=0)C)(exp==1)正确答案: B5.14 有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf(“%d,%d,%d\n”,i,j,k); }执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,3正确答案: C5.15 请阅读以下程序:main(){ int a=5,b=0,c=0;if(a=b+c)printf(“***\n”);else printf(“$$$\n”);}以上程序A)有语法错不能通过编译B)可以通过编译但不能通过连接C)输出***正确答案: D5.16 若执行下述程序时,若从键盘输入6和8时,结果为main(){int a,b,s;scanf(“%d%d”,&a,&b);s=a;if(as=b;s*=s;printf(“%d”,s);}A)36B)64C)48D)以上都不对正确答案: B5.17 有如下程序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;printf(“%f\n”,y);}该程序的输出结果是B)0.250000C)0.500000D)1.000000正确答案: C5.18 以下4个选项中,不能看做一条语句的是A);B)a=5,b=2.5,c=3.6;C)if(a<5);D)if(b!=5)x=2;y=6;正确答案: D5.19 若int k=8;则执行下列程序后,变量k的正确结果是main(){int k=8;switch(k){case 9:k+=1;case 10:k+=1;case 11:k+=1;break;default:k+=1;}printf(“%d\n”,k);}A)12B)11C)10D)95.20 阅读如下程序段#include “stdio.h”main(){ int a=45,b=40,c=50,d;d=a>30?b:c;switch(d){ case 30 : printf(“%d,”,a);case 40 : printf(“%d,”,b);case 50 : printf(“%d,”,c);default : printf(“#”);}}则输出的结果是A)40,50,B)50,#C)40,#D)40,50,#正确答案: D5.21 现有如下程序段,此程序段编译有错误,则程序段的错误出在#includemain(){ int a=30,b=40,c=50,d;d=a>30?b:c;switch(d){ case a:printf(“%d,”,a);case b:printf(“%d,”,b);case c:printf(“%d,”,c);default:printf(“#”);}}A)default:printf(“#”);这个语句B)d=a>30?b:c;这个语句C)case a:printf(“%d,”,a); case b:printf(“%d,”,b); case c:printf(“%d,”,c);这三个语句D)switch(d)这个语句正确答案: C二、填空题(请将每一个空的正确答案写在答题卡相应序号后。

2011年计算机等级考试二级C语言全真模拟试卷(1)-中大网校

2011年计算机等级考试二级C语言全真模拟试卷(1)-中大网校

2011年计算机等级考试二级C语言全真模拟试卷(1)总分:100分及格:60分考试时间:90分一、选择题(每题1分,共10分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)设有说明语句int k,i=5,j=10;则表达式k=(++i)*(j--)的值是()(2)下述对C语言字符数组的描述中错误的是()(3)<A href="javascript:;"></A>()(4)<Ahref="javascript:;"></A>()(5)用树形结构来表示实体之间联系的模型称为()(6)<A href="javascript:;"></A>()(7)<Ahref="javascript:;"></A >()(8)以下非法的赋值语句是()(9)用C语言编写的代码程序()(10)<Ahref="javascript:;"></A >()(每题2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列SQL语句中,用于修改表结构的是()(2)<Ahref="javascript:;"></A>()(3)<A href="javascript:;"></A>()(4)若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是()(5)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()(6)判断char型变量cl是否为大写字母的正确表达式是()(7)<Ahref="javascript:;"></A>()(8)关系表中的每一横行称为一个()(9)<A href="javascript:;"></A>()(10)设有方程f(x)=0在区间[a,b]上有实根,且f(a)与f(b)异号,利用二分法求该方程在区间[a,b]上的一个实根,采用的算法设计技术为()A.减关递推技术B.递归法C.归纳法D.列举法(11)下列说法中不正确的是()(12)<A href="javascript:;"></A>()(13)实体是信息世界中广泛使用的一个术语,它用于表示()(14)<Ahref="javascript:;"></A>()(15)<A href="javascript:;"></A>()(16)以下不正确的说法是C语言规定:()(17)下列叙述中正确的是()(18)<Ahref="javascript:;"></A>()(19)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是()(20)软件工程的理论和技术性研究的内容主要包括软件开发技术和()(21)<Ahref="javascript:;"></A>()(22)定义变量和数组如下:int i;int x[3][3]=(1,2,3,4,5,6,7,8,9);则语句for(i=0;i<3;i++)printf(”%d”,x[1][2-i]);的输出结果是()(23)一个人有一个身份证号码,一个身份证号码对应一个人。

2011年计算机二级C语言上机题库及答案

2011年计算机二级C语言上机题库及答案

2011年计算机二级C语言上机题库及答案(一部分)一、填空题:给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。

例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!给定源程序:#includevoid fun(char *s, char *p){int i, j, n, x, t;n=0;for(i=0; s[i]!='\0'; i++) n++;for(i=1; i< i="i+2)">/**********found**********/___1___;/**********found**********/for(j=___2___+2 ; jif(s[t]>s[j]) t=j;if(t!=i){x=s[i]; s[i]=s[t]; s[t]=x;}}for(i=1,j=0; i/**********found**********/p[j]=___3___;}main(){char s[80]="baawrskjghzlicda", p[50];printf("\nThe original string is : %s\n",s);fun(s,p);printf("\nThe result is : %s\n",p);}解题答案:/**********第一空**********/t=i;/**********第二空**********/for(j=i+2; j/**********第三空**********/p[j]=0;******************************************二、改错题:给定程序MODI1.C中函数fun 的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num )为止:π 1 1 1┄┄≈1 - ┄┄+ ┄┄- ┄┄+ ...4 35 7例如, 程序运行后, 输入0.0001, 则程序输出3.1414。

2011年计算机等级考试二级C语言上机题库(含答案)

2011年计算机等级考试二级C语言上机题库(含答案)

程序填空给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。

如输入一个数:27638496,新的数为729第一空:{ t=*n%10;第二空:if(t%2!=0)第三空:*n=x;2.程序修改给定程序modi1.c中函数fun的功能是:计算n!。

例如,给n输入5,则输出120.000000。

double fun(int n ){ double result=1.0;/*****found******/if(n==0)return 1.0;while(n>1&&n<170)/*****found******/result*=n--;return result;}程序设计请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。

例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。

long fun(char *p){int i,len,t;long x=0;len=strlen(p);if(p[0]==‘-‗){ t=-1;len--;p++;}else t=1;while(*p)x=x*10-48+(*p++);return x*t;}1. 给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

第1 处FILE * fp;第2 处while (!feof(fp)) {第3 处putchar(ch); ch = fgetc(fp); }2.程序修改给定程序MODI1.C中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。

2011年计算机等级二级C语言课后练习题及答案解析(1)

2011年计算机等级二级C语言课后练习题及答案解析(1)
本题正确答案为C。
2.下列说法中正确的是【 】。
A) C程序书写时,不区分大小写字母
B) C程序书写时,一行只能写一个语句
C) C程序书写时,一个语句可分成几行书写
D) C程序书写时每行必须有行号
分析:C语言严格区分大小写字母,如"A1"和"a1"被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。
本题正确答案为A。
7.二进制数00110101转换成八进制数是【 】。
A) 055 B) 065 C) 056 D) 152
分析:二进制数化成八进制数的方法是:从右向左划分,将每3位二进制数书写成1位八进制数。
本题正确答案为B。
8.将二进制数1011011.011转换成十进制数是【 】。
本题正确答案为C。
10.一个字长的二进制位数是【 】。
A) 2个BYTE,即16个bit B) 3个BYTE,即24个bit C) 4个BYTE,即32个bit D) 随计算机系统不同而不同
分析:一个二进制位也称做1bit,八个二进制位称做1个BYTE,即所说的一个字节,BYTE和bit有固定的换算关系,但是计算机中的字长WORD和字节BYTE没有固定的换算关系,字长WORD是随CPU型号而异的。
printf("%d\\n",k);
}
分析在C语言中当3个加号或3个减号连在一起时,中间的符号归属左边的变量,即-i---j相当于-(i--)-j。
本题正确答案为 【5】-j 。
本题正确答案为【2】 3.500000
3.若执行下面程序段后的输出为:3,4,5,请填空。

2011年9月计算机二级C语言笔试题库50套,答案解析详细

2011年9月计算机二级C语言笔试题库50套,答案解析详细

2011年3月份全国计算机等级考试二级C语言笔试题库50套一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 BA)PAD图B)N-S图C)结构图D)数据流图(2)结构化程序设计主要强调的是BDA)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求 BA)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定 DA)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指DAA)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是CDA)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是CBA)e3,e1,e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成 BA)属性B)关系C)键D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系R和S通过运算得到关系T,则所使用的运算为 DA)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是 DA)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是BCA)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是CBA)void, define, WORDB)a3_3,_123,CarC)For, -abc, IF CaseD)2a, DO, sizeof(13)以下选项中可作为C语言合法常量的是 AA)-80B)-080C)-8e1.0D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是 AA) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是DBA)int a=b=0;B)char A=65+1,b=′b′;C)float a=1,*b=&a,*c=&b;D)double a=0 0;b=1.1;(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是CDA)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序 Dmain(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);}程序的输出结果是A)409B)277C)1D)91(18)当变量c的值不为2、4、6时,值也为"真"的表达式是 AA)(c==2)||(c==4)||(c==6)B)(c>=2&& c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段 Aint a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错B)3,5,3C)3,5,5D)3,5,7(20)有以下程序#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}程序的运行结果是 BA)a=1,b=0B)a=2,b=2C)a=1,b=1D)a=2,b=1(21)下列程序的输出结果是 B#include "stdio.h"main(){ int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4B)a=4,b=5C)a=5,b=4D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是 CA)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是 Amain(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A)3B)4C)1D)2(24)以下错误的定义语句是 CA)int x[][3]={{0},{1},{1,2,3}};B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};D)int x[][3]={1,2,3,4};(25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是 BA)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd(26)有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}该程序的输出结果是 AA)69825B)63825C)6385D)693825(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是 BA)gets(&s[0]);B)scanf("%s",s+1);C)gets(s);D)scanf("%s",s[1]);(28)以下叙述中错误的是 BA)在程序中凡是以"#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX 是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是 BA)PER 是结构体变量名B)PER是结构体类型名C)typedef struct 是结构体类型D)struct 是结构体类型名(30)以下叙述中错误的是 DA)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是 DA)int a[5]={0,1,2,3,4,5};B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′};C)char a={′A′,′B′,′C′};D)int a[5]="0123";(32)有以下程序#include<string.h>main(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是 AA) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include <stdio.h>#include <string.h>void fun(char *s[],int n){ char *t; int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;} }main(){ char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是 DA)xy,aaaaccB)aaaacc,xyC)bcc,aabccD)aabcc,bcc(34)有以下程序#include <stdio.h>int f(int x){ int y;if(x==0||x==1) return(3);y=x *x-f(x-2);return y;}main(){ int z;z=f(3); printf("%d\n",z);}程序的运行结果是A)0B)9C)6D)8(35)下面程序段的运行结果是 Cchar str[]="ABC",*p=str;printf("%d\n",*(p+3));A)67B)0C)字符′C′的地址D)字符′C′(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构: 指针p指向变量a,q指向变量c。

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

2011年全国计算机等级二级C语言模拟试题及答案(1)一、填空题1、C语言中基本的数据类型有:__________ 、___________ 、___________ 。

2、C语言中普通整型变量的类型说明符为_____________ ,在内存中占___________ 字节,有符号普通整型的数据范围是____________ 。

3、整数-35在机内的补码表示为__________ 。

4、执行下列语句int a=8; a+=a-=a*a;后,a的值是_________________ 。

5、有如下语句:char A[ ]={ ” a I a student ”该;字符串的长度是 ____________ ,A[3]= _______________ 。

6符号” a” a'区别是_____________ 。

7、所谓指针”就是__________ 。

“ &运算符的作用是 _________ 。

“ *运算符的作用是 _________ 。

8、有如下输入语句:scanf(“ a=%d,b=%d,c=%d,&a,&b,&为使变量a的值为1,b的值为3, c的值为2,从键盘输入数据的正确形式应是_______________ 。

二、选择题1、设整型变量a为5,使b不为2的表达式是()。

A.b=a/2B.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 n”,x,--y);A.10 10B.9 9C.9 10D.10 94、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为( )。

A.P+i*2B.P+(i-1)*2C.P+(i-1)D.P+i5、选出下列标识符中不是合法的标识符的是( )。

A.hot_doB.cat1C._priD.2ab6以下程序的输出结果是( )。

int a=5;float x=3.14;a*=x*( ‘ E' 'A');printf( ,(float)a);A.62.000000B.62.800000C.63.000000D.627、设有说明double(*p1)[N];其中标识符pl是( )。

A.N个指向double型变量的指针。

B.指向N个double型变量的函数指针。

C.一个指向由N个double型元素组成的一维数组的指针。

D.具有N个指针元素的一维指针数组,每个元素都只能指向double型量8、在C程序中有如下语句:char *func(int x,int y);它是( )。

A.对函数func的定义。

B.对函数func的调用。

C.对函数func的原型说明。

D.不合法的。

9、以下程序的输出结果是( )。

char str[15]= ” hello! ”;printf( “r%d,strle n(str));A.15B.14C.7D. 610、分析以下程序的输出结果是( )。

mai n(){int a=5,b=-1,c;c=adds(a,b);printf( “ %d ,c);c=adds(a,b);printf( “%d,c); }int adds(i nt x,i nt y){static int m=0,n=3;n *=++m;m=n %x+y++;return(m); }A.2,3B.2,2C.3,2D.2,411、下列描述中不正确的是( )。

A.字符型数组中可能存放字符串。

B.可以对字符型数组进行整体输入、输出。

C.可以对整型数组进行整体输入、输出。

D.不能在赋值语句中通过赋值运算符“=对字符型数组进行整体赋值。

12、以下程序的输出结果是( )。

#defi ne f(x) x*xmai n(){int a=6,b=2,c;c=f(a)/f(b);printf( “%d,c);}A.9B. 6C.36D.1813、设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是( )。

A. 1B.0C. 4D. 314、定义如下变量和数组:int i; int x[3][3]={1,2,3,4,5,6,7,8,9};则语句for(i=0;i<3;i++) printf("%d ",x[i][2-i]);的输出结果是( )。

A. 1 5 9B. 1 4 7C. 3 5 7D. 3 6 915、以下对二维数组a进行正确初始化的是( )A.int a[2][3]={{1,2},{3,4},{5,6}};B.i nt a[ ][3]={1,2,3,4,5,6};C.i nt a[2][ ]={1,2,3,4,5,6};D.int a[2][ ]={{1,2},{3,4}};16、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )< int x;sea nf("%d", &x);if(x++>5) prin tf("%d",x);else prin tf("%d\n",x --);A.7 和 5B. 6 和 3C.7 和 4D. 6 和 417、设有如下定义:char *aa[2]={"abcd","ABCD"}; 则以下说法中正确的是()A)aa数组成元素的值分别是"abed"和ABCD"B)aa是指针变量,它指向含有两个数组元素的字符型一维数组C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D)aa数组的两个元素中各自存放了字符’a和'A'的地址18、下列程序的输出结果是( )。

char *p1="abcd", *p2="ABCD", str[50]="xyz";strcpy(st r+2,strcat(p1+2,p2+1));prin tf("%s",str);A.xyabcABB.abcABzC.ABabczD.xycdBCD19、下列程序的输出结果是( )。

int a[5]={2,4,6,8,10},*P,* *k;p=a; k=&p;prin tf("%d",*(p++));prin tf("%d\n",* *k);A. 4 4B. 2 2C. 2 4D. 4 620、不能把字符串:Hello!赋给数组b的语句是( )A.char b[10]={'H','e',T,T,'o','!'};B.char b[10]; b="Hello!";C.char b[10]; strcpy(b,"Hello!");D.char b[10]="Hello!";三、读程序题1、float f=3.1415927;printf( “ %f,%5.4f,%3.3f ” ,f,f,f);则程序的输出结果是___________ 。

2、i nt x=6, y=7;printf( “ %d,” ,x++);printf( “ %nd ,++y);程序的输出结果是___________ 。

3、a=3; a+=(a<1)?a:1; printf( “ %d ,a);结果是___________ 。

4、for (a=1,b=1;a<=100;a++){ if(b>=20) break;if(b%3==1){b+=3; con ti nu e;}b-=5; }程序的输出结果a的值为____________ 。

5、int y=1, x, *p, a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);prin tf("%d\n",y);程序的输出结果y的值是____________ 。

四、程序填空题1、从键盘上输入10个数,求其平均值。

mai n(){i nt i;float f,sum;for(i=1,sum=0.0;i<11;i++){ ____________ ;________ ; } printf( “ average=%f,sum/10);2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。

#i ncludemai n(){ FILE *fp;char c;fp= ______________ ;do{c=getchar();fputs(c,fp);}while(c!=EOF);_____________ }3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入•请填空•mai n(){ float x,amax,am in;sca nf("%f", &x);amax=x; amin=x;while( ){ if(x>amax) amax=x;if( ) ami n=x;sca nf("%f", &x); }prin tf("\n amax=%f\inami n=%f\n",amax,ami n); }五、编程题1.三个整数a b、c,由键盘输入,输出其中最大的一个数。

2输出1900~2000年中所有的闰年。

每输出3个年号换一行。

(判断闰年的条件为下面二者之一:能被4整除,但不能被100整除。

或者能被400整除。

)3.请编一个函数int fun(int a),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0。

A的值由主函数从键盘读入。

4.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。

参考答案一、填空题⑴整型、实型、字符型。

(2) int , 2 , -32768~ +32767⑶ 1111111111011101 ⑷-112 (5)14 ' m(6)”是字符串常量,而’是字符常量。

相关文档
最新文档