全国高校计算机等级考试二级C模拟一试题.docx
- 文档编号:10852920
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:66
- 大小:44.83KB
全国高校计算机等级考试二级C模拟一试题.docx
《全国高校计算机等级考试二级C模拟一试题.docx》由会员分享,可在线阅读,更多相关《全国高校计算机等级考试二级C模拟一试题.docx(66页珍藏版)》请在冰豆网上搜索。
全国高校计算机等级考试二级C模拟一试题
全国高校计算机等级考试(二级C)模拟一试题
一、选择题
1、设有语句:
intk,*p;以下能正确执行的赋值语句是(D)。
A、k=pB、k=&pC、P=KD、p=&k
2、以下运算符中优先级最高的运算符是(A)。
A、!
B、&&C、||D、<
3、求字符串长度的函数是(D)。
A、strcatB、strcpyC、strcmpD、strlen
4、下面程序段的运行结果是(A)。
charx[5]=“ab\0c\0”;
printf("%s",x);
说明:
“\0”中的“0”是数字零。
A、abB、abcC、ab\0D、ab\0c\0
5、若有说明语句:
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)。
#include
#defineF(y)8-y
voidmain(void)
{
intx,y;
y=F
(2);
printf(“y=%d”,y);
}
A、2B、y=2C、6D、y=6
9、以下程序的输出结果是(A)。
#include
struct
{
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、20
10、语句fopen(“file.dat”,”r”);的功能是(A)。
A、按照“读”方式打开文件B、按照“写”方式打开文件
C、按照“读写”方式打开文件D、按照“追加”方式打开文件
11、关闭文件的语句是(D)。
A、freadB、fwriteC、fprintfD、fclose
12、下面求余数的运算符是(C)。
A、/B、^C、%D、~
13、下面对字符数组的描述中错误的描述是(C)。
A、字符数组可以存放字符串B、字符数组的字符可以整体输入、输出
C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D、可以用关系运算符对字符数组中的字符进行比较
14、下面正确的字符常量是(C)。
A、300B、'ab'C、'!
'D、"a"
15、下面关于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、22
17、一个C程序的执行是从(A)。
A、本程序的main函数开始,到main函数结束
B、本程序的第一个函数开始,到本程序的最后一个函数结束
C、本程序的main函数开始,到本程序的最后一个函数结束
D、本程序的第一个函数开始,到本程序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-b
21、若有以下类型说明语句:
chara;intb;floatc;doubled;则表达式a*b+d-c的运算结果的类型为(D)。
A、floatB、charC、intD、double
22、设C语言中,unsignedint型数据的取值范围为(A)。
A、0~65535B、0~32767C、1~65535D、1~32767
23、在任何时候,都能正确计算两个数之差的宏定义是(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)。
A、E!
=0B、E==0C、E!
=1D、E==1
26、字符串比较大小的函数是(C)。
A、strcpyB、strlenC、strcmpD、strcat
27、若有说明语句:
inta[][4]={1,2,3,4,5,6};,则数组的行数为(C)行。
A、6B、4C、2D、1.5
28、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(n<0)n=-n;
for(i=1;i if(i%2! =0&&i%3(==0))printf("%d",(i)); 32、下面程序的功能是输出数组中相邻两个数的和能被10整除的所有“数对”以及“数对”的个数。 如: 对于下面的数组: d[]={1,3,7,23,3,6,14,8,10} 将输出: (3,7)(7,23)(6,14)3对 #include voidmain(void) { intd[]={1,3,7,23,3,6,14,8,10,57,13,90}; inti,count,s count=(0);/*count为“数对”的个数计数器*/ for(i=0;i<11;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删除。 #include voidmain(void) { chars[80]; inti,j; gets((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"。 #include voidmain(void) { inti,a; for(i=1;i<11;i++) { scanf("%d",(&a));/*输入一个整数*/ if(a%7==0) { printf("%d",a); (break);/*退出循环*/ } } if((i)==11)printf("notexist\n"); } 35、以下程序的运行结果是: (150) #include voidmain(void) { inti,s,d[10]={21,33,45,7,3,113,67,75,83,26}; s=0; for(i=0;i<10;i+=2) if(d[i]%3! =0)s+=d[i]; printf("s=%d",s); } 36、以下程序的运行结果是: (5) #include #definesub(x,y)x-y voidmain(void) { intx,y,z; x=4; y=3; z=12-sub(x,y) printf("z=%d",z); } 37、以下程序的运行结果是: (100) #include voidmain(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)。 47、表示另一个同类型变量之地址的变量称为(指针)变量。 说明: 填写两个汉字。 三、判断题(A、正确B、错误) 48、&&的优先级低于||的优先级。 B 49、若有定义intx,y;则执行x=2/4*2和y=2/4.0*2后x和y的值相同。 B 50、指针变量也应当遵循“先赋值后使用”的原则。 A 51、运算符“*”有时是单目运算符,有时又可能是双目运算符。 A 52、文件打开方式中的加号(如: “r+”)表示按照追加方式打开文件。 B 53、C语言中,变量名中的英文字母一般不区分大小写。 B 54、逻辑表达式的值是一个非负整数。 A 55、break语句也能够结束由if……goto构成的循环。 B 56、联合(又称共用体)中各个元素的类型可以不相同。 A 57、结构变量所占内存字节数等于其各个成员所占内存字节数的和。 A 四、编程题 58、编写代码: 计算1至50中能被7整除的所有自然数的和。 将代码以cfile.cpp为名保存在C: \ata\Temp\420201\454220040690\dit\GAE\ziti目录中。 #include voidmain() { inti,s=0; for(i=7;i<=50;i++) if(i%7==0)s=s+i; printf(“%d\n”,s); } 59、编写代码: 从键盘中输入三个整数a,b,x,判断x是否等于a,b之和。 将代码以cfile.cpp为名保存在C: \ata\Temp\420201\454220040690\dit\GAE\ziti目录中。 #include voidmain() {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); else printf(“\n%d+%disnot%d”,a,b,x); } 全国高校计算机等级考试(二级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、若有宏定义#defineZ(x,y)x*y,则执行以下程序段后,z的值为( B )。 intz; z=Z(3+5,4); A、32B、23C、17D、20 4、若有宏定义如下: #defineX5 #defineYX+1 #defineZY*X/2 则执行以下printf语句后,输出的结果为( D )。 inta; a=Y; printf("%d,",Z); printf("%d\n",--a); A、7,6B、12,6C、12,5D、7,5 5、执行以下程序后,m的值是( D )。 #defineMIN(x,y)(x)<(y)? (x): (y) voidmain(void)) { inti=12,j=8,m; m=10*MIN(i,j); printf("%d\n",m); } A、120B、80C、12D、8 6、下面判断正确的是( C )。 A、char*a="china";等价于char*a;*a="china"; B、charstr[10]={"china"};等价于charstr[10];str[]={"china"}; C、char*s="china";等价于char*s;s="china"; D、charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc"; 7、以下对指针变量的操作中,不正确的是(C D )。 A、inta,*p,*q;p=q=&a;B、inta=6,*p,*q=&a;p=q; C、inta,b=6,*p;p=&a;b=*p;D、inta,*p,*q;q=&a;p=*q; 8、以下运算正确的程序段是( D )。 A、charstr1[]="12345",str2[]="abcdef";strcpy(str1,str2); B、charstr[10],*st="abcde";strcat(str,st); C、char*st1="12345",*st2="abcde"";strcat(st1,st2) D、charstr[10]="",*st="abcde";strcat(str,st); 9、以下程序的运行结果是( C )。 #include"stdio.h" voidmain(void) { structdate { inty,m,d; }today; printf("%d\n",sizeof(structdate)); } A、2B、3C、6D、出错 10、当说明一个共用体变量时系统分配给它的内存是( C )。 A、共用体中第一个成员所需内存量B、共用体中最后一个成员所需内存量 C、共用体成员中占内存量最大者所需的容量D、共用体中各成员所需内存量的总和 11、设有以下结构体类型数组的定义,且数组mini的10个元素都已赋值,若要将这些元素写到文件fp中,以下不正确的形式是( B )。 ^structabc^{^inta;charb;floatc[4];^}^mini[10];(^表示换行) A、fwrite(mini,10*sizeof(structabc),1,fp);B、fwrite(mini,5*sizeof(structabc),5,fp); C、for(i=0;i<10;i++)^fwrite(mini,sizeof(structabc),1,fp);D、fwrite(mini,sizeof(structabc),10,fp); *12、函数fgets(string,m,fp)的作用是( D )。 A、从fp所指向的文件中读取长度不超过m的字符串,存入由指针string指向的内存区域 B、从fp所指向的文件中读取长度为m的字符串,存入由指针string指向的内存区域 C、从fp所指向的文件中读取m个字符串,存入由指针string指向的内存区域 D、从fp所指向的文件中读取长度不超过m-1的字符串,存入由指针string指向的内存区域 13、一个C语言程序是由( B )。 A、一个主程序和若干子程序组成B、若干函数组成C、若干过程组成D若干子程序组成 14、下面四个选项中,均是合法整型常量的选项是( A )。 A、160-0xff011B、-0xcdf01a0xeC、-01986,0120668D、-0x48a2e50x 15、已知各变量的类型说明如下: inti=8,k,a,b; unsignedlongw=5; doublex=1.42,y=5.2; 则以下符合C语言语法的表达式是( A )。 A、a+=a-=(b=4)*(a=3);B、a=a*3=2;C、x%(-3);D、y=float(i); 16、下面不正确的字符常量是( D )。 A、'\X17'B、'\70'C、'\\'D、"\n" 17、以下能正确定义整型变量x,y和z并为其赋初值5的语句是( C )。 A、intx=y=z=5;B、intx,y,z=5;C、intx=5,y=5,z=5;D、x=y=z=5; 18、以下C程序正确的运行结果是( C )。 (注: _表示空格) voidmain(void) { longy=-43456; printf("y=%-8ld\n",y); printf("y=%-08ld\n",y); printf("y=%08ld\n",y); printf("y=%+8ld\n",y); } A、y=_-43456^y=-_43456^y=-0043456^y=-43456 B、y=-43456^y=-43456^y=-0043456^y=+_-43456 C、y=-43456^y=-43456^y=-0043456^y=__-43456 D、y=_-43456^y=-0043456^y=00043456^y=+43456 19、根据题目中给出的数据的输入和输出形式,程序中输入输出语句的正确内容是( B )。 voidmain(void) { intx;floaty; printf("enterx,y: ") 输入语句 输出语句 } 输入形式enterx,y: 23.4 输出形式x+y=5.40 A、scanf("%d,%f",&x,&y);printf("\nx+y=%4.2f",x+y); B、scanf("%d%f",&x,&y);printf("\nx+y=%4.2f",x+y); C、scanf("%d%f",&x,&y);printf("\nx+y=%6.1f",x+y); D、scanf("%d%3.1f",&x,&y);printf("\nx+y=%4.2f",x+y); 20、若有以下变量说明和数据的输入方式,则正确的输入语句为( B )。 (注: '_'代表空格) 变量说明: floatx1,x2; 数据的输入方式: 4.25<回车> 3.5<回车> A、scanf("%f,%f",&x1,&x2);B、scanf("%f%f",&x1,&x2); C、scanf("%3.2f%2.1f",&x1,&x2);D、scanf("%3.2f%2.1f",&x1,&x2); 21、以下程序的输出结果是( B )。 voidmain(void) { intx=2,y=-1,z=2; if(x if(y<0)z=0; elsez+=1; printf("%d\n",z) } A、3B、2C、1D、0 22、设有说明语句intx,a,b,c;则以下不合法的if语句是。 (C) A、if(a==b)x++;B、if(a<=b)x++;C、if(a<>b)x++;D、if(a>=b)x++; 23、语句while(! y);中的表达式! y等价于( A )。 A、y==0B、y! =1C、y! =0D、y==1 24、下面程序段的运行结果是( A )。 inta=1,b=2,c=2,t; while(a printf("%d,%d,%d",a,b,c); A、1,2,0B、2,1,0C、1,2,1D、2,1,1 25、若有如下语句 intx=3; do { printf("%d\n",x-=2); } while(! (--x)); 则上面程序段( B )。 A、输出的是1B、输出的是1和-2C、输出的是3和0D、是死循环 26、有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。 下面程序是求这堆零件总数,请选择填空。 #include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国高校 计算机等级考试 二级 模拟 试题