全国高校计算机等级考试二级C模拟一试题Word文档格式.docx
《全国高校计算机等级考试二级C模拟一试题Word文档格式.docx》由会员分享,可在线阅读,更多相关《全国高校计算机等级考试二级C模拟一试题Word文档格式.docx(53页珍藏版)》请在冰豆网上搜索。
![全国高校计算机等级考试二级C模拟一试题Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/25/02b3b2c7-a68e-4580-86b7-18cab78cbd61/02b3b2c7-a68e-4580-86b7-18cab78cbd611.gif)
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<
n;
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对
voidmain(void)
intd[]={1,3,7,23,3,6,14,8,10,57,13,90};
inti,count,s
count=(0);
/*count为“数对”的个数计数器*/
for(i=0;
11;
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删除。
chars[80];
inti,j;
gets((s));
/*输入字符串*/
j=(0);
/*计数器初始化*/
s[i]!
='
\0'
;
i++)
if(s[i]!
c'
)
s[j]=s[i]
j++;
s[j]=’\0’;
/*写入字符串结束标志*/
puts(s);
34、下面程序的功能是从键盘输入的最多10个整数中,找出第一个能被7整除的数。
若找到,打印此数后
退出循环;
若未找到,打印"
notexist"
。
inti,a;
for(i=1;
scanf("
(&
a));
/*输入一个整数*/
if(a%7==0)
printf("
a);
(break);
/*退出循环*/
if((i)==11)printf("
notexist\n"
);
35、以下程序的运行结果是:
(150)
{
inti,s,d[10]={21,33,45,7,3,113,67,75,83,26};
s=0;
10;
i+=2)
if(d[i]%3!
=0)s+=d[i];
s=%d"
s);
36、以下程序的运行结果是:
(5)
#definesub(x,y)x-y
intx,y,z;
x=4;
y=3;
z=12-sub(x,y)
z=%d"
z);
37、以下程序的运行结果是:
(100)
intx,*p;
p=&
x;
*p=100;
x=%d"
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构成的循环。
56、联合(又称共用体)中各个元素的类型可以不相同。
57、结构变量所占内存字节数等于其各个成员所占内存字节数的和。
四、编程题
58、编写代码:
计算1至50中能被7整除的所有自然数的和。
将代码以cfile.cpp为名保存在C:
\ata\Temp\420201\454220040690\dit\GAE\ziti目录中。
voidmain()
inti,s=0;
for(i=7;
i<
=50;
if(i%7==0)s=s+i;
printf(“%d\n”,s);
}
59、编写代码:
从键盘中输入三个整数a,b,x,判断x是否等于a,b之和。
{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 )。
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;
%d,"
Z);
%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);
m);
A、120B、80C、12D、8
6、下面判断正确的是( C )。
A、char*a="
china"
等价于char*a;
*a="
B、charstr[10]={"
};
等价于charstr[10];
str[]={"
C、char*s="
等价于char*s;
s="
D、charc[4]="
abc"
d[4]="
等价于charc[4]=d[4]="
7、以下对指针变量的操作中,不正确的是(C D )。
A、inta,*p,*q;
p=q=&
a;
B、inta=6,*p,*q=&
p=q;
C、inta,b=6,*p;
p=&
b=*p;
D、inta,*p,*q;
q=&
p=*q;
8、以下运算正确的程序段是( D )。
A、charstr1[]="
12345"
str2[]="
abcdef"
strcpy(str1,str2);
B、charstr[10],*st="
abcde"
strcat(str,st);
C、char*st1="
*st2="
"
strcat(st1,st2)
D、charstr[10]="
*st="
strcat(str,st);
9、以下程序的运行结果是( C )。
#include"
stdio.h"
structdate
inty,m,d;
}today;
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++)^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'
\\'
\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 )。
(注:
_表示空格)
longy=-43456;
y=%-8ld\n"
y);
y=%-08ld\n"
y=%08ld\n"
y=%+8ld\n"
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 )。
intx;
floaty;
enterx,y:
输入语句
输出语句
输入形式enterx,y:
23.4
输出形式x+y=5.40
A、scanf("
%d,%f"
x,&
y);
\nx+y=%4.2f"
x+y);
B、scanf("
%d%f"
C、scanf("
\nx+y=%6.1f"
D、scanf("
%d%3.1f"
20、若有以下变量说明和数据的输入方式,则正确的输入语句为( B )。
(注:
_'
代表空格)
变量说明:
floatx1,x2;
数据的输入方式:
4.25<
回车>
3.5<
%f,%f"
x1,&
x2);
B、scanf("
%f%f"
%3.2f%2.1f"
D、scanf("
%3.2f%2.1f"
21、以下程序的输出结果是( B )。
intx=2,y=-1,z=2;
if(x<
y)
if(y<
0)z=0;
elsez+=1;
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>
23、语句while(!
中的表达式!
y等价于( A )。
A、y==0B、y!
=1C、y!
=0D、y==1
24、下面程序段的运行结果是( A )。
inta=1,b=2,c=2,t;
while(a<
b<
c){t=a;
a=b;
b=t;
c--;
%d,%d,%d"
a,b,c);
A、1,2,0B、2,1,0C、1,2,1D、2,1,1
25、若有如下语句
intx=3;
do
x-=2);
while(!
(--x));
则上面程序段( B )。
A、输出的是1B、输出的是1和-2C、输出的是3和0D、是死循环
26、有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;
若分成7个零件一组,则多3个零件;
若分成9个零件一组,则多5个零件。
下面程序是求这堆零件总数,请选择填空。