2011年计算机等级二级C语言章节习题及答案
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语言笔试答案
2011年 2011年9月计算机等级考试二级 VB 笔试答案 ) (网友提供,非官方答案,仅供参考! 网友提供,非官方答案,仅供参考! 选择 【1—5】45215 【6—10】32421 【11—15】25241 【16—20】24132
【21—25】23113 【26—30】23132 【31—35】32115 填空 【1】线性结构 【2】n 【3】结构化 【4】 【5】Autosize 【6】 【7】Result*x 【8】m 【9】t 【10】m<40 【11】4 【12】70 【13】#1 【14】"end " 【15】ct,nt
Access:选择: Access:选择: 选择 1-10:4421343421 11-20:4413424121 21-30:4231311442 31-35:23234 填空: 填空: 1、线性结构 2、N 3、结构化 4、dbms 5、关系 6、1 7、 8、页 9、This.Caption="Access 窗体" 10、m<=100 11、-1*f 12、Second+1
2011年 2011年9月计算机等级考试二级 C 语言笔试答案 ) (网友提供,非官方答案,仅供参考! 网友提供,非官方答案,仅供参考! 参考答案1 参考答案1 C 语言 44213 43421 34132 32344 22211 34221 44241 22413 1、线性结构2、n 3、结构化 4、DBMS 5、关系 6、自己做 7、1 8、34 9、14 10、AEJ 11、2 12、213 13、2 14、i+1 15、1 参考答案2 参考答案2 1-10BBBACDADCA11-15CDDCD 16-20CACDA 【21-25】22114 【26—30】34245 【31—35】42141 【36—40】15413 填空 【1】线性结构 【2】n 【3】 【4】数据库系统 【5】 【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
2011计算机等考二级C语言课后练习题及答案
2011计算机等级二级C语言课后练习题及答案(1)一、单项选择题1.C语言程序的执行,总是起始于【】。
A) 程序中的第一条可执行语句B) 程序中的第一个函数C) main函数D) 包含文件中的第一个函数分析:在一个C语言源程序中,无论main函数书写在程序的前部,还是后部,程序的执行总是从main函数开始,并且在main函数中结束。
本题正确答案为C。
2.下列说法中正确的是【】。
A) C程序书写时,不区分大小写字母B) C程序书写时,一行只能写一个语句C) C程序书写时,一个语句可分成几行书写D) C程序书写时每行必须有行号分析:C语言严格区分大小写字母,如"A1"和"a1"被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。
本题正确答案为C。
3.下面对C语言特点,不正确描述的是【】。
A) C语言兼有高级语言和低级语言的双重特点,执行效率高B) C语言既可以用来编写应用程序,又可以用来编写系统软件C) C语言的可移植性较差D) C语言是一种结构式模块化程序设计语言分析:C语言是介于汇编语言和高级语言之间的一种语言,由于它可以直接访问物理地址,对硬件操作,所以C语言既可以编写应用程序,又可以开发系统软件,而且C程序可移植性好于汇编语言,程序清晰具有模块化的特点。
本题正确答案为C。
4.C语言源程序的最小单位是【】。
A) 程序行B) 语句C) 函数D) 字符分析:程序行、语句、函数都是由字符构成的,字符是C语言的最小单位。
本题正确答案为D。
5.以下四项中属于C语言关键字的是【】。
A) CHAR B) define C) unsigned D) return分析:C语言有32个关键字(或称保留字),它们都有特定的含意,并且由小写字母组成,所以选项A是错的,选项B不是保留字,选项D是return的错误拼写。
本题正确答案为C。
2011年计算机等级二级C语言课后练习题及答案解析(3)
一、单项选择题1.下面不属于C语言的数据类型是【】。
A) 整型B) 实型C) 逻辑型D) 双精度实型分析:和其它高级语言相比,C语言中没有逻辑型数据,也没有逻辑型变量。
本题正确答案为C。
2.C语言中,下列属于构造类型的是【】。
A) 整型B) 实型C) 指针类型D) 结构体类型分析:C语言中构造类型的数据有三种:数组、结构体和共用体,数组是同类型数据的集合,结构体是不同类型的数据集合。
本题正确答案为D。
3.下列字符串不符合标识符规定的是【】。
A) SUM B) sum C) 3cd D) end分析:标识符规定只能由26个英文字母(大小写均可),数字0~9和下划线组成,且不能以数字开头,题中的3cd不符合规定。
本题正确答案为C。
4.下面能正确表示八进制数的是【】。
A) 0x16 B) 029 C) -114 D) 033分析:选项A)以0x开头是十六进制数,选项B)虽然是0开头,但出现了数字9,选项C)是十进制数。
本题正确答案为D。
5.下面四个选项中,均是合法实数的选项是【】。
A) 2e-4.2 B)-0.50 C) 0.2e-.5 D)-e5分析:实数有两种表示形式:小数形式和指数形式,小数形式必须有小数点,指数形式中,字母e之前必须有数字,e之后必须是整数。
选项A)中的"2e-4.2",选项C)中的"0.2e-.5",选项D)中的"-e5"均是不合法的。
本题正确答案为B。
6.C语言中,字符型数据在内存中存储形式是【】。
A) 原码B) 反码C) 补码D) ASCII码分析:C语言中int型数据是以补码形式存放的,字符型数据是以ASCII码形式存放的。
本题正确答案为D。
7.下列正确的字符型常量是【】。
A) "a" B) ′\\\\′ C) "\\r" D) 277分析:字符常量的定义是用单引号括起来的一个字符,A和C的定界符不对,D超过了char型数据的表示范围,′\\\\′是转义字符。
最新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年计算机等级考试二级C语言上机题库(含答案)
重要说明:本题库为从题中一题一题复制出来工作量大,而且有许多表达式无法在word中快速表示出来(这样会加大工作量)故而省略,或者表达错位,有的地方可能或者肯定会有错,我相信准备参加C语言二级考试的同学应当能够对照参考答案看出来,这是2011年最新版最完整考试题库,相信大家一定都能通过!第一套程序填空给定程序中,函数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的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
2011年计算机等级二级C语言章节习题及答案(2)
2011年计算机等级二级C语言章节习题及答案(2)2011年计算机等级二级C语言章节习题及答案(2)第3章数据类型运算符与表达式一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。
)3.1 C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案: B3.2 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母,数字和下划线中任一字符正确答案: C3.3 下列可用于C语言用户标识符的一组是A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof正确答案: B3.4 下面四个选项中,均是不正确的8进制数或16进制数的选项是A)016 0x8f 018B)0abc 017 0xaC)010 -0x11 0x16D)0a12 7ff -123正确答案: D3.5 下列数据中,不合法的C语言实型数据的是A)0.123B)123e3C)2.1e3.5D)789.0正确答案: C3.6 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A)a=20000+20000;B)a=4000*10;C)a=30000+10000;D)a=4000L*10L;3.7 若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案: A3.8 有字符串如下,"\n\\\407as1\"\xabc",则字符串的长度为A)6B)7C)8D)9正确答案: D3.9 C语言中运算对象必须是整型的运算符是A)%=B)/C)=D)<=正确答案: A3.10 若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1B)a=b=c+2C)int 18.5%3D)a=a+7=c+b正确答案: B3.11 若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1B)++i;C)a=a++=5;D)a=int(i);正确答案: B3.12 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A)2.500000B)2.750000C)3.500000D)0.000000正确答案: A3.13 若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是A)sizeof,&=,<<,^B)sizeof,<<,^,&=C)^,<<,sizeof,&=D)<<,^,&=,sizeof3.14 以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案: D3.15 已知int i,a;执行语句i=(a=3,a++,- -a,a+4,a+5,++a);后,变量i的值为A)2B)3C)4D)5正确答案: C3.16 设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为A)intB)floatC)doubleD)不确定正确答案: C3.17 在C语言中,char型数据在内存中的存储形式是A)补码B)反码C)原码D)ASCII码正确答案: D3.18 字符型数据在机器中是用ASCII码表示的,字符’5’和’7’在机器中表示为A)10100011和01110111B)01000101和01100011C)00110101和00110111D)01100101和01100111正确答案: C3.19 不能进行++和- -运算的数据类型为A)指针B)整型C)长整型D)常量正确答案: D3.20 设有int x=11;则表达式(x++*1/3)的值是A)3B)4C)11D)12正确答案: A3.21 以下程序的输出结果是main(){ int a=21,b=11;printf("%d\n",- -a+b,- -b+a);}A)30B)31C)32D)33正确答案: A3.22 假设整型变量a,b,c的值均为5,则表达式a+++b+++c++的值为A)17B)16C)15D)14正确答案: C3.23 已知int a=6; 则执行a+=a-=a*a;语句后,a的值为A)36B)0C)-24D)-60正确答案: D3.24 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0正确答案: B3.25 sizeof(float)是A)一个双精度型表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式正确答案: B3.26 在C语言中,int,char和short三种类型数据在内存中所占用的字节数A)由用户自己定义B)均为2个字节C)是任意的D)由所用机器的机器字长决定正确答案: D3.27 以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C 语言表达式是A)x/y*zB)x*(1/(y*z))C)x/y*1/zD)x/y/z正确答案: A3.28 下列关于复合语句和空语句的说法错误的是A)复合语句是由“{”开头,由“}”结尾的B)复合语句在语法上视为一条语句C)复合语句内,可以有执行语句,不可以有定义语句部分D)C程序中的所有语句都必须由一个分号作为结束正确答案: C3.29 下列关于字符串的说法中错误的是A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志B)′\0′作为标志占用存储空间,计入串的实际长度C)在表示字符串常量的时候不需要人为在其末尾加入′\0′D)在C语言中,字符串常量隐含处理成以′\0′结尾正确答案: B二、填空题(请将每一个空的正确答案写在答题卡相应序号后。
(1)2011年计算机二级C语言考试(试题及答案详解)
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;
B)11
C)20
D)21
(39)有以下程序
#include<stdio>
main()
{ unsigned char a=8,c;
c=a>>3;
printf("%d\n",c);
#include<stdio>
main() { 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
B)4,1
C)3,4
D)2,3
(38)有以下程序
#include<stdio>
struct S
{ int a,b;}data[2]={10,100,20,200}; main()
{ struct S p=data[1];
printf("%d\n",++(p.a));
全国计算机等级考试二级C语言真题2011年09月-34次
--------------------------------------------------------------------------------
16. 若有定义: int a,b;,通过语句scanf(“%d;%d”,&a,&b);,能把整数3赋给变量a,5赋给变量b的输入数据是
--------------------------------------------------------------------------------
12. 以下选项中关于程序模块化的叙述错误的是
A)把程序分成若干相对对立的模块,可便于编码和测试
B)把程序分为若干相对独立、功能单一的模块,可便于重复使用这些模块
【解析】: 程序模块化。结构化程序设计的方法。
--------------------------------------------------------------------------------
13. 以下选项中关于C语言常量的叙述错误的是( )
A)所谓常量,是指在程序运行过程中,其值不能被改变的量
正确答案: B
试题来源: 全国计算机等级考试二级C语言真题2011年09月-34次
【解析】: 点的度是指树中每个结点具有的子树个数或者说是后继结点数。题中的度为2是说具有的2个子树的结点;二叉树有个性质:二叉树上叶子结点数等于度为二的节点+1。我们设度为0,1,2的节点分别为n0,n1,n2个,那么节点总数n=n0+n1+n2,然而边数b=n-1,并且b=n1+2*n2=n-1=n0+n1+n2-1,由此式我们可以推出n0=n2+1。也就是说叶子节点要比度为二的节点多一个。
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);屏幕显示____。
2011年3月计算机二级C语言真题含答案
2011年3月電腦等級考試二級C語言筆試一、選擇題(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)數據操縱語言D)數據控制語言(8)一個教師可講授多門課程,一門課程可由多個教師講授。
則實體教師和課程間的聯繫是A)1:1聯繫B)1:m聯繫C)m:1聯繫D)m:n聯繫(9)有三個關係R、S和T如下:RA B C a 1 2B 2 1C 3 1SA BC 3TC1則由關係R和S得到關係T的操作是A)自然連接B)交C)除D)並(10)定義無符號整數類為UInt,下麵可以作為類UInt實例化值的是A)-369 B)369 C)0.369 D)整數集合{1,2,3,4,5}(11)電腦高級語言程式的運行方法有編譯執行和解釋執行兩種,以下敘述中正確的是A)C語言程式僅可以編譯執行B)C語言程式僅可以解釋執行C)C語言程式既可以編譯執行又可以解釋執行D)以上說法都不對(12)以下敘述中錯誤的是A)C語言的可執行程式是由一系列機器指令構成的B)用C語言編寫的根源程式不能直接在電腦上運行C)通過編譯得到的二進位目標程式需要連接才可以運行D)在沒有安裝C語言集成開發環境的機器上不能運行C根源程式生成的.exe檔(13)以下選項中不能用作C程式合法常量的是A)1,234 B)'123'C)123 D)"\x7G"(14)以下選項中可用作C程式合法實數的是A).1e0 B)3.0e0.2C)E9 D)9.12E(15)若有定義語句:int a=3,b=2,c=1;,以下選項中錯誤的賦值運算式是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)LiliB)name=LiliC)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++;}。
2011年全国计算机二级C语言上机题题库及答案
{ b[j]=a[i]; j++; } b[j]=‘\0’; }
7: 第7题 请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最 大元素在数组中的下标并存放在k所指的储存单元中。 答案: void fun (int *s, int t, int *k) { int I, max; max=s[0]; for(i=0;i<t;i++) if (s[i]>max) { max=s[i]; *k=I; } }
6: 第6题 请编写一个函数void fun(char a[],char[],int n),其功能是:删 除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字 符串存放在b所指的数组中,n中存放指定的下标。 答案: void fun(char a[],char b[], int n) { int I,j=0; for (i=0;i<LEN;i++) if (i!=n)
17: 第17题 请编写一个函数fun(char *s),该函数的功能使把字符串中 的内容拟置。 答案: void fun(char *s) { char ch; int I,m,n; i=0; m=n=strlen(s)-1; while(i<(n+1)/2) { ch=s[i]; s[i]=s[m]; s[m]=ch; i++;
for(j=0;j<N;j++) { s+=w[N-1][j]; k++; } for(i=1;i<=N-2;i++) { s+=w[i][0]; k++; } for(i=1;i<=N-2;i++) { s+=w[ return s/=k; }
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语言上机题库(含答案)
认识实习报告9月初,我们先前往了山东威海滨田印刷机械有限公司进行认识实习。
此后我们又去了一家大型零件加工厂进行了参观。
通过这次的实习,我们了解到机械行业第一线的一些具体情况,了解了工业生产实施的具体过程,同时也对一些工厂的技术实施,管理方法有了一定的认识。
前往滨田印刷机械有限公司以后,我们在指导老师和工程师的带领下,分批开始了对该厂的参观。
这一切对我们而言陌生有新鲜。
开始,我们在一位严谨的工程师的带领下,去了零件加工厂了解了各类零件的加工。
其中参观了各种自动化得机床,我们还从一部分机床中看到了上学期我们金工实习那些机床的影子。
但给我最大的感触是整个车间里,国产的机床并不是很多。
整个过程纪律严明,一边参观零件的加工,一边聆听了工程师给予我们的讲解了解了整个工厂的第一道程序。
此后,我们前往了三间组装车间,参观了52系列,66系列和47系列三种印刷机的组装。
这次给我们介绍的是一位年轻的工程师,他详细的向我们介绍了这三种印刷机的一些知识。
我们也了解了刚知道这几个型号产生的疑惑,原来,47,52和66的意思是最大用纸尺寸的长。
其中47系列是单色印刷机,可用于印号码,打孔线和树脂凸版印刷。
使用的集中供油系统可以有效的防止因局部遗忘加油造成的零件磨损,延长零件的精度和使用寿命,杜绝润滑油浪费,保护环境卫生。
52系列性能较高,大都是以高级胶印机所具有的高耐久性、高精度的部件为基础,生产的高性能印刷机。
同时也是可适合文字、线条印刷,实地印刷等各种印刷需要。
另外通过添加多种备选装置,使机器升级到更高效率的印刷机。
到66系列时,工程师大哥向我们介绍的较为详细,它分为两款:WEIHAI HAMADA66-NP 实现精美平版印刷及号码印刷的高品质重型印刷机和WEIHAI HAMADA66 真正高品质的重型印刷机。
WEIHAI HAMADA66系列是以真正高质量印刷为目标而生产的大四开重型胶印机。
这款先进的机械拥有按扭式与触摸式键盘,所需操作全部集中在3处操作盘上。
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语言章节习题及答案(3)
2011年计算机等级二级C语言章节习题及答案(3)第4章顺序程序设计一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。
)4.1 若变量已正确说明为float型,要通过语句scanf ("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是A)10<回车>22<回车>33<回车>B)10.0,22.0,33.0<回车>C)10.0<回车>22.0 33.0<回车>D)10 22<回车>33<回车>正确答案: B4.2 现有以下程序段#includemain(){ int a,b,c;scanf("a=%*d%d,b=%d%*d,c=%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c); }若输出的结果为a=20,b=30,c=40,则以下能够正确输入数据的是A)a=10]20,b=20]30,c=40B)20,30,40C)a=20,b=30,c=40D)a=10]20,b=30]20,c=40[注]: “]”表示空格,表示回车正确答案: D4.3x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是A)INPUT x、y、z;B)scanf("%d%d%d",&x,&y,&z);C)scanf("%d%d%d",x,y,z);D)read("%d%d%d",&x,&y,&z);正确答案: B4.4 已有定义int a=-2;和输出语句printf("%8lx",a);以下正确的叙述是A)整型变量的输出形式只有%d一种B)%x是格式符的一种,它可以适用于任何一种类型的数据C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度正确答案: D4.5 下列程序段的输出结果是:int a=1234;float b=123.456;double c=12345.54321;printf("-,%2.1f,%2.1f",a,b,c);A)无输出B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.5正确答案: C4.6 执行下列程序时输入:123<空格>456<空格>789<回车> 输出结果是main(){ char s[100]; int c, i;scanf("%c",&c); scanf("%d",&i); scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}A)123,456,789B)1,456,789C)1,23,456,789D)1,23,456正确答案: D4.7若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf ("###a=%d,b=%d,c=%d\n",a,b,c);程序输出的结果是A)***a=25,b=13,c=19B)***a=26,b=14,c=19C)### a=25,b=13,c=19D)### a=26,b=14,c=19正确答案: C4.8 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A)5B)14C)8D)输出项不合法,无正常输出正确答案: A4.9下列程序的输出结果是main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d\n", d*y);}A)3B)3.2C)0D)3.07正确答案: C4.10调用gets和puts函数时,必须包含的头文件是A)stdio.hB)stdlib.hC)defineD)以上都不对正确答案: A4.11 阅读下面程序段#include "stdio.h"main(){ char c;c=(′z′-′a′)/2+′A′;putchar(c);}输出结果为A)MB)NC)OD)Q正确答案: A二、填空题(请将每一个空的正确答案写在答题卡相应序号后。
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语言章节习题及答案(6)
2011年计算机等级二级C语言章节习题及答案(6)2011年计算机等级二级C语言章节习题及答案(6)温馨提示:帮考网计算机二级C语言免费练习题,如需完整题库请登录 /doc/429053078.html,一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。
)7.1 若有说明 int a[3][4];则a数组元素的非法引用是A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]正确答案:D7.2 在C语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式正确答案:C7.3 执行下面的程序段后,变量k中的值为int k=3, s[2];s[0]=k; k=s[1]*10;A)不定值B)33C)30D)10正确答案:A7.4 定义如下变量和数组:int k;int a[3][3]={9,8,7,6,5,4,3,2,1};则下面语句的输出结果是for(k=0;k《3;k++)printf(“%d”,a[k][k]);A)7 5 3B)9 5 1C)9 6 3D)7 4 1正确答案:B7.5 下列程序执行后的输出结果是main(){ char arr[2][4];strcpy(arr,“you”);strcpy(arr[1],“me”);arr[0][3]=′&′;printf(“%s\n”,arr);}A)you&meB)youC)meD)err正确答案:A7.6 设有数组定义: char array[]=“China”; 则数组 array所占的空间为A)4个字节B)5个字节C)6个字节D)7个字节正确答案:C7.7 以下不正确的定义语句是A)double x[5]={2.0,4.0,6.0,8.0,10.0};B)int y[5]={0,1,3,5,7,9};C)char c1[]={′1′,′2′,′3′,′4′,′5′};D)char c2[]={′\x10′,′\xa′,′\x8′};正确答案:B7.8 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是A)2B)3C)4D)无确定值正确答案:B7.9 对以下说明语句的正确理解是int a[10]={6,7,8,9,10};A)将5个初值依次赋给a[1]至a[5]B)将5个初值依次赋给a[0]至a[4]C)将5个初值依次赋给a[6]至a[10]D)因为数组长度与初值的个数不相同,所以此语句不正确正确答案:B7.10 若有说明:int a[][4]={0,0};则下面不正确的叙述是A)数组a的每个元素都可得到初值0B)二维数组a的第一维大小为1C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值正确答案:D7.11 有以下程序main(){ char a[]={ ′a′,′b′,′c′,′d′,′e′,′f′,′g′,′h′,′\0′};int i,j;i=sizeof(a);j=strlen(a);printf(“%d,%d\b”,i,j);}程序运行后的输出结果是A)9,9B)8,9C)1,8D)9,8正确答案:D7.12 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A)3B)6D)20正确答案:D7.13 以下能对二维数组c进行正确的初始化的语句是A)int c[3][]={{3},{3},{4}};B)int c[][3]={{3},{3},{4}};C)int c[3][2]={{3},{3},{4},{5}};D)int c[][3]={{3},{},{3}};正确答案:B7.14 在C语言中,一维数组的定义方法为类型说明符数组名A)[常量表达式]B)[整型常量]C)[整型变量]D)[整型常量]或[整型表达式]正确答案:A7.15 若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为(假设a[0][0]位于数组的第一个位置上)A)i*m+jB)j*m+IC)i*m+j-1D)i*m+j+1正确答案:A7.16 下面程序输出的结果是{ int i;int a[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i《3;i++)printf(“%d ”,a[2-i][i]);}A)1 5 9B)7 5 3C)3 5 7D)5 9 1正确答案:B7.17 以下不能对二维数组a进行正确初始化的语句是A)int a[2][3]={0};B)int a[][3]={{1,2},{0}};C)int a[2][3]={{1,2},{3,4},{5,6}};D)int a[][3]={1,2,3,4,5,6};正确答案:C7.18 阅读下面程序,则程序段的功能是#include “stdio.h”main(){ int c[]={23,1,56,234,7,0,34},i,j,t; for(i=1;i 《7;i++){ t=c[i];j=i-1;while(j》=0 && t》c[j]){c[j+1]=c[j];j--;}c[j+1]=t;}for(i=0;i《7;i++)printf(“%d ”,c[i]);putchar(′\n′);}A)对数组元素的升序排列B)对数组元素的降序排列C)对数组元素的倒序排列D)对数组元素的随机排列正确答案:B7.19 下列选项中错误的说明语句是A)char a[]={′t′,′o′,′y′,′o′,′u′,′\0′}; B)char a[]={“toyou\0”};C)char a[]=“toyou\0”;D)char a[]=′toyou\0′;正确答案:D7.20 下述对C语言字符数组的描述中错误的是A)字符数组的下标从0开始B)字符数组中的字符串可以进行整体输入/输出C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D)字符数组可以存放字符串正确答案:C7.21 阅读下列程序,则在执行后,程序的运行结果为#include “stdio.h”#include “string.h”main(){ char a[30]=“nice to meet you!”;strcpy(a+strlen(a)/2,“you”);printf(“%s\n”,a);}A)nice to meet you youB)nice toC)meet you youD)nice to you正确答案:D7.22 现有如下程序段#include “stdio.h”main(){ int k[30]={12,324,45,6,768,98,21,34,453,456}; int count=0,i=0;while(k[i]){ if(k[i]%2==0‖k[i]%5==0)count++;i++;}printf(“%d,%d\n”,count,i);则程序段的输出结果为A)7,8B)8,8C)7,10D)8,10正确答案:D7.23 有如下定义语句:int aa[][3]={12,23,34,4,5,6,78,89,45};,则45在数组aa中的行列坐标各为A)3,2B)3,1C)2,2D)2,1正确答案:C7.24 现在有如下程序#include “stdio.h”main(){ char s[80];int i,j;gets(s);for(i=j=0;s[i]!=′\0′;i++)if(s[i]!=′H′______)s[j]=′\0′;puts(s);这个程序段的功能是删除输入的字符串中字符′H′,则空线上应当添入的是A)s[j++]=s[i];j++;B)s[j]=s[i++];j++;C)s[j++]=s[i];D)s[j]=s[i];正确答案:C7.25 以下二维数组c的定义形式是A)int c[3][]B)float c[3,4]C)double c[3][4]D)float c(3)(4)正确答案:C7.26 已知:int c[3][4];则对数组元素引用正确的是A)c[1][4]B)c[1.5][0]C)c[1+0][0]D)以上表达都错误正确答案:C7.27 若有以下语句,则正确的描述是char a[]=“toyou”;char b[]={′t′,′o′,′y′,′o′,′u′};A)a数组和b数组的长度相同B)a数组长度小于b数组长度C)a数组长度大于b数组长度D)a数组等价于b数组正确答案:C7.28 已知:char a[15],b[15]={“I love china”};则在程序中能将字符串I love china赋给数组a的正确语句是A)a=“I love china”;B)strcpy(b,a);C)a=b;D)strcpy(a,b);正确答案:D7.29 已知:char a[20]= “abc”,b[20]= “defghi”;则执行下列语句后的输出结果为printf(“%d”,strlen(strcpy(a,b)));A)11B)6C)5D)以上答案都不正确正确答案:B7.30 阅读如下程序段,则程序在先后输入love和china后,输出结果是#include#includemain(){ char a[30],b[30];int k;gets(a);gets(b);k=strcmp(a,b);if(k》0) puts(a);else if(k《0) puts(b);}A)loveB)chinaC)lovechinaD)没有输出结果正确答案:A二、填空题(请将每一个空的正确答案写在答题卡相应序号后。
2011年计算机等级二级C语言章节习题及答案(8)
2011年计算机等级二级C语言章节习题及答案(8)2011年计算机等级二级C语言章节习题及答案(8)第9章预处理命令一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。
)9.1 有以下程序#define F(X,Y)(X)*(Y)main(){ int a=3, b=4;printf("%d\n", F(a++, b++));}程序运行后的输出结果是A)12B)15C)16D)20正确答案: A9.2 以下叙述中不正确的是A)预处理命令行都必须以#号开始B)在程序中凡是以#号开始的语句行都是预处理命令行C)宏替换不占用运行时间,只占编译时间D)在以下定义是正确的:#define PI 3.1415926; 正确答案: D9.3 有如下程序:#define N 2#define M N+1#define NUM 2*M+1main(){ int i;for(i=1;i<=NUM;i++)printf("%d\n",i);}该程序中的for循环执行的次数是A)5B)6C)7D)8正确答案: B9.4 以下程序的运行结果是#define MIN(x,y)(x)<(y)?(x):(y)main(){ int i=10,j=15,k;k=10*MIN(i,j);printf("%d\n",k);}A)10B)15C)100D)150考生答案: 正确答案: B9.5 有如下定义#define D 2int x=5;float y=3.83;char c=′D′;则下面选项中错误的是A)x++;B)y++;C)c++;D)D++;正确答案: D9.6 以下程序段的执行结果为#define PLUS(X,Y)X+Y main(){ int x=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);printf("SUM=%d",sum);}A)SUM=9 B)SUM=12 C)SUM=18 D)SUM=28 正确答案: B9.7 下列程序的输出结果是#include "stdio.h"#defineM(x,y)x%ymain(){ int a,m=12,n=100;a=M(n,m);printf("%d\n",a--);}A)2B)3C)4D)5正确答案: C9.8 阅读下列程序段,则程序的输出结果为#include "stdio.h"#define M(X,Y)(X)*(Y)#define N(X,Y)(X)/(Y)main(){ int a=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}A)3B)5C)6D)8正确答案: A9.9 已知#define M 2;的宏定义,执行语句k=M*5;后,k的值是A)10B)5C)2D)以上答案都不对正确答案: D9.10 以下关于宏替换叙述中,错误的是A)宏替换占用编译时间B)替换文本中可以包含已定义过的宏名C)宏名可以由+号组成D)宏替换只能是字符替换正确答案: C来源:考试大-计算机二级考二、填空题(请将每一个空的正确答案写在答题卡相应序号后。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章程序的灵魂----算法一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。
)2.1以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案: C2.2 以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义正确答案: A2.3 以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分正确答案: C2.4 C语言规定,在一个源程序中,main函数的位置A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后正确答案: C2.5 以下叙述不正确的是A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面正确答案: D2.6 下列叙述中正确的是A)C语言编译时不检查语法B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义D)C语言的函数可以嵌套调用正确答案: D2.7 以下叙述正确的是A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运算符正确答案: D2.8 以下说法错误的是A)一个算法应包含有限个步骤B)在计算机上实现的算法是用来处理数据对象的C)算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现D)算法的目的是为了求解正确答案: C2.9 算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是A)有零个输入或多个输入B)高效性C)有穷性D)确定性正确答案: B2.10 下列关于C语言的说法不正确的是A)C语言既具有高级语言的一切功能,也具有低级语言的一些功能B)C语言中的每一条执行语句都必须用分号结束,分号不是C语言的一部分,是语句之间的分隔符号C)注释可以出现在程序中任意合适的地方D)命令行后面不能加分号,命令行不是C语言的语句正确答案: B2.11 以下说法错误的是A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B)计算机只能处理由0和1的代码构成的二进制指令或数据C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件D)每一种高级语言都有它对应的编译程序正确答案: C2.12 C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue正确答案: A二、填空题(请将每一个空的正确答案写在答题卡相应序号后。
)2.13 用高级语言编写的程序称为【1】程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。
正确答案: 源程序2.14 C语言程序的注释可以出现在程序中的任何地方,一个注释以【2】作为开始和结束。
正确答案: /* */第3章数据类型运算符与表达式一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。
)3.1 C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案: B3.2 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母,数字和下划线中任一字符正确答案: C3.3 下列可用于C语言用户标识符的一组是A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof正确答案: B3.4 下面四个选项中,均是不正确的8进制数或16进制数的选项是A)016 0x8f 018B)0abc 017 0xaC)010 -0x11 0x16D)0a12 7ff -123正确答案: D3.5 下列数据中,不合法的C语言实型数据的是A)0.123B)123e3C)2.1e3.5D)789.0正确答案: C3.6 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A)a=20000+20000;B)a=4000*10;C)a=30000+10000;D)a=4000L*10L;正确答案: D3.7 若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案: A3.8 有字符串如下,"\n\\\407as1\"\xabc",则字符串的长度为A)6B)7C)8D)9正确答案: D3.9 C语言中运算对象必须是整型的运算符是A)%=B)/C)=D)<=正确答案: A3.10 若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1B)a=b=c+2C)int 18.5%3D)a=a+7=c+b正确答案: B3.11 若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1B)++i;C)a=a++=5;D)a=int(i);正确答案: B3.12 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A)2.500000B)2.750000C)3.500000D)0.000000正确答案: A3.13 若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是A)sizeof,&=,<<,^B)sizeof,<<,^,&=C)^,<<,sizeof,&=D)<<,^,&=,sizeof正确答案: B3.14 以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案: D3.15 已知int i,a;执行语句i=(a=3,a++,- -a,a+4,a+5,++a);后,变量i的值为A)2B)3C)4D)5正确答案: C3.16 设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为A)intB)floatC)doubleD)不确定正确答案: C3.17 在C语言中,char型数据在内存中的存储形式是A)补码B)反码C)原码D)ASCII码正确答案: D3.18 字符型数据在机器中是用ASCII码表示的,字符’5’和’7’在机器中表示为A)10100011和01110111B)01000101和01100011C)00110101和00110111D)01100101和01100111正确答案: C3.19 不能进行++和- -运算的数据类型为A)指针B)整型C)长整型D)常量正确答案: D3.20 设有int x=11;则表达式(x++*1/3)的值是A)3B)4C)11D)12正确答案: A3.21 以下程序的输出结果是main(){ int a=21,b=11;printf("%d\n",- -a+b,- -b+a);}A)30B)31C)32D)33正确答案: A3.22 假设整型变量a,b,c的值均为5,则表达式a+++b+++c++的值为A)17B)16C)15D)14正确答案: C3.23 已知int a=6; 则执行a+=a-=a*a;语句后,a的值为A)36B)0C)-24D)-60正确答案: D3.24 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0正确答案: B3.25 sizeof(float)是A)一个双精度型表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式正确答案: B3.26 在C语言中,int,char和short三种类型数据在内存中所占用的字节数A)由用户自己定义B)均为2个字节C)是任意的D)由所用机器的机器字长决定正确答案: D3.27 以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C 语言表达式是A)x/y*zB)x*(1/(y*z))C)x/y*1/zD)x/y/z正确答案: A3.28 下列关于复合语句和空语句的说法错误的是A)复合语句是由“{”开头,由“}”结尾的B)复合语句在语法上视为一条语句C)复合语句内,可以有执行语句,不可以有定义语句部分D)C程序中的所有语句都必须由一个分号作为结束正确答案: C3.29 下列关于字符串的说法中错误的是A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志B)′\0′作为标志占用存储空间,计入串的实际长度C)在表示字符串常量的时候不需要人为在其末尾加入′\0′D)在C语言中,字符串常量隐含处理成以′\0′结尾正确答案: B二、填空题(请将每一个空的正确答案写在答题卡相应序号后。
)3.30 以下程序的输出结果是【1】。
int a=1234;printf ("-\n",a);正确答案: 12343.31 在计算机中,字符的比较是对它们的【2】进行比较。
正确答案: ASCII码3.32 在内存中,存储字符′x′要占用1个字节,存储字符串″X″要占用【3】个字节。
正确答案: 23.33 在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为【4】。