1全国高校计算机等级考试(二级C)模拟一试题一、选择题1、设有语句:intk,*p;以下能正确执行的赋值语句是(D)。A、k=pB、k=&pC、P=KD、p=&k2、以下运算符中优先级最高的运算符是(A)。A、!B、&&C、||D、3、求字符串长度的函数是(D)。A、strcatB、strcpyC、strcmpD、strlen4、下面程序段的运行结果是(A)。charx[5]=“ab\0c\0”;printf(%s,x);说明:“\0”中的“0”是数字零。A、abB、abcC、ab\0D、ab\0c\05、若有说明语句:inta[2][4];则对数组a元素的正确引用是(D)。A、a[2]B、a[4]C、a[2][4]D、a[1][3]6、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B)。A、float型B、int型C、long型D、double型7、用数组名作为函数调用的实参时,传递给虚参的是(A)。A、数组的首地址B、数组第一个元素的值C、数组中全部元素的值D、数组元素的个数8、以下程序的输出结果是(D)。#includestdio.h#defineF(y)8-y2voidmain(void){intx,y;y=F(2);printf(“y=%d”,y);}A、2B、y=2C、6D、y=69、以下程序的输出结果是(A)。#includestdio.hstruct{intx,y;}a;voidmain(void){intx,y=50,z;a.x=10;a.y=20;z=a.x+y;printf(“%d”,z);}A、60B、10C、0D、2010、语句fopen(“file.dat”,”r”);的功能是(A)。3A、按照“读”方式打开文件B、按照“写”方式打开文件C、按照“读写”方式打开文件D、按照“追加”方式打开文件11、关闭文件的语句是(D)。A、freadB、fwriteC、fprintfD、fclose12、下面求余数的运算符是(C)。A、/B、^C、%D、~13、下面对字符数组的描述中错误的描述是(C)。A、字符数组可以存放字符串B、字符数组的字符可以整体输入、输出C、可以在赋值语句中通过赋值运算符=对字符数组整体赋值D、可以用关系运算符对字符数组中的字符进行比较14、下面正确的字符常量是(C)。A、300B、'ab'C、'!'D、a15、下面关于main函数与其它子函数之间的位置关系的叙述中正确的是(C)。A、main函数必须是程序中的第一个函数B、main函数如果程序中有多个函数,则不能位于最前面C、main函数可以在任何位置D、main函数必须是程序中最后一个函数16、设floatx=12.8,y=8.6;则(int)(x+y)的结果为(B)。A、20B、21C、21.4D、2217、一个C程序的执行是从(A)。A、本程序的main函数开始,到main函数结束B、本程序的第一个函数开始,到本程序的最后一个函数结束C、本程序的main函数开始,到本程序的最后一个函数结束4D、本程序的第一个函数开始,到本程序main函数结束18、以下关于函数的实参与虚参(又称形参)的叙述中不正确的说法是(B)。A、实参可以是常量、变量或表达式B、虚参可以是常量、变量或表达式C、虚参应与其对应的实参类型应当尽量一致D、虚参为指针时,与其对应的实参只能是表示地址的表达式19、下面关于注释语句的叙述中正确的叙述是(C)。A、注释语句必须单独占用一行B、注释语句必须在语句行的末尾C、注释语句可以跨行使用D、注释语句不能单独占用一行20、以下表达式不等价的一组是(A)。A、a!=b与a=a!bB、a|=b与a=a|bC、a+=b与a=a+bD、a-=b与a=a-b21、若有以下类型说明语句:chara;intb;floatc;doubled;则表达式a*b+d-c的运算结果的类型为(D)。A、floatB、charC、intD、double22、设C语言中,unsignedint型数据的取值范围为(A)。A、0~65535B、0~32767C、1~65535D、1~3276723、在任何时候,都能正确计算两个数之差的宏定义是(D)。A、#defineSUB(x,y)(x-y)B、#defineSUB(x,y)(x)-(y)C、#defineSUB(x,y)x-yD、#defineSUB(x,y)((x)-(y))24、以下不正确的说法为(C)。A、在不同函数中可以使用相同名字的变量B、虚参视同函数的局部变量C、在函数内的复合语句中定义的变量在本函数范围内有效D、在函数内定义的变量只在本函数范围内有效25、!E等价于(B)。5A、E!=0B、E==0C、E!=1D、E==126、字符串比较大小的函数是(C)。A、strcpyB、strlenC、strcmpD、strcat27、若有说明语句:inta[][4]={1,2,3,4,5,6};,则数组的行数为(C)行。A、6B、4C、2D、1.528、C语言规定,函数返回值的类型由(B)。A、return语句中的表达式类型所决定B、在定义该函数时函数头所指定的函数类型所决定C、调用该函数时的主调函数类型所决定D、调用函数时由系统临时决定29、非指针型变量做实参时,它和对应虚参之间的数据传递方式是(B)。A、地址传递B、单向值传递C、双向值传递D、由用户指定传递方式*30、建立子函数的主要目的之一是(B)。A、提高程序的执行效B、提高程序的可读性C、减少程序所占磁盘空间D、减少程序所占内存空间二、填空题31、下面程序段用来打印出正整数n以内能被3整除的所有正奇数。scanf(%d,&n);if(n0)n=-n;for(i=1;in;i++)if(i%2!=0&&i%3(==0))printf(%d,(i));32、下面程序的功能是输出数组中相邻两个数的和能被10整除的所有“数对”以及“数对”的个数。如:对于下面的数组:d[]={1,3,7,23,3,6,14,8,10}6将输出:(3,7)(7,23)(6,14)3对#includestdio.hvoidmain(void){intd[]={1,3,7,23,3,6,14,8,10,57,13,90};inti,count,scount=(0);/*count为“数对”的个数计数器*/for(i=0;i11;i++){s=d[i]+(d[i+1]);/*计算相邻两个数的和*/if(s%10==0){printf(“(%d,%d)”,d[i],d[i+1]);count=count+(1);}}printf(“%d对”,count);33、下面程序的功能是将字符串s中所有的字符c删除。#includestdio.hvoidmain(void){chars[80];inti,j;7gets((s));/*输入字符串*/j=(0);/*计数器初始化*/for(i=0;s[i]!='\0';i++)if(s[i]!='c'){s[j]=s[i]j++;}s[j]=’\0’;/*写入字符串结束标志*/puts(s);34、下面程序的功能是从键盘输入的最多10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印notexist。#includestdio.hvoidmain(void){inti,a;for(i=1;i11;i++){scanf(%d,(&a));/*输入一个整数*/if(a%7==0){printf(%d,a);8(break);/*退出循环*/}}if((i)==11)printf(notexist\n);}35、以下程序的运行结果是:(150)#includestdio.hvoidmain(void){inti,s,d[10]={21,33,45,7,3,113,67,75,83,26};s=0;for(i=0;i10;i+=2)if(d[i]%3!=0)s+=d[i];printf(s=%d,s);}36、以下程序的运行结果是:(5)#includestdio.h#definesub(x,y)x-yvoidmain(void){intx,y,z;x=4;y=3;9z=12-sub(x,y)printf(z=%d,z);}37、以下程序的运行结果是:(100)#includestdio.hvoidmain(void){intx,*p;p=&x;*p=100;printf(x=%d,x);}38、相同类型的数据之集合称为(数组)。说明:填写两个汉字。39、字符串“abc\n”的长度是(4)。说明:填写一个阿拉伯数字。40、若有定义:inta[3][2]={2,4,6,8,10,12};,则*(a[1]+1)的值是(8)。41、二进制运算表达式:!(10001101)的二进制值是(0)。42、为了方便阅读程序,每行最好只书写(1)个语句。说明:填写一个阿拉伯数字。43、与if语句配对构成双分支结构的关键字是(else)。说明:填写4个小写英文字母。44、变量名的第一个字符必须是(字母)或下划线。说明:填写两个汉字。45、字符常量要用(单)引号括起来。说明:填写一个汉字。46、若有inta=6,x=5;则执行x+=a;后x的值为(11)。1047、表示另一个同类型变量之地址的变量称为(指针)变量。说明:填写两个汉字。三、判断题(A、正确B、错误)48、&&的优先级低于||的优先级。B49、若有定义intx,y;则执行x=2/4*2和y=2/4.0*2后x和y的值相同。B50、指针变量也应当遵循“先赋值后使用”的原则。A51、运算符“*”有时是单目运算符,有时又可能是双目运算符。A52、文件打开方式中的加号(如:“r+”)表示按照追加方式打开文件。B53、C语言中,变量名中的英文字母一般不区分大小写。B54、逻辑表达式的值是一个非负整数。A55、break语句也能够结束由if……goto构成的循环。B56、联合(又称共用体)中各个元素的类型可以不相同。A57、结构变量所占内存字节数等于其各个成员所占内存字节数的和。A四、编程题58、编写代码:计算1至50中能被7整除的所有自然数的和。将代码以cfile.cpp为名保存在C:\ata\Temp\420201\454220040690\dit\GAE\ziti目录中。#includestdio.hvoidmain(){inti,s=0;for(i=7;i=50;i++)if(i%7==0)s=s+i;11printf(“%d\n”,s);}59、编写代码:从键盘中输入三个整数a,b,x,判断x是否等于a,b之和。将代码以cfile.cpp为名保存在C:\ata\Temp\420201\454220040690\dit\GAE\ziti目录中。#includestdio.hvoidmain(){inta,b,x;printf(“pleaseinputtwonumbera,b,x:”);scanf(“%d,%d,%d”,&a,&b,&x);if(x==a+b)printf(“\n%d+%dis%d”,a,b,x);elseprintf(“\n%d+%disnot%d”,a,b,x);}12全国高校计算机等级考试(二级C)模拟二试题一、选择题1、以下程序有语法性错误,有关错误原因的正确说法是(C)。voidmain(void){intS,k;voidprt_char();k=prt_char(G);}A、语句voidprt_char();有错,它是函数调用语句,不能用void说明。B、变量名不能使用大写字母。C、函数原型说明和函数调用语句之间有矛盾。D、函数名不能使用下划线。2、函数值作单向传递时以下正确的说法是(A)。A、实参和与其对应的形参各占用独立的存储单元。B、实参和与其对应的形参共用一个存储单元。C、只有当实参和与其对应的形参同名时才共用存储单元。D、形参是虚拟的,不占用存储单元。3、若有宏