全国高校计算机等级考试(二级C)模拟一试题
一、选择题
1、设有语句:int k, *p; 以下能正确执行的赋值语句是(D )。 A、k=p B、k=&p C、P=K D、p=&k 2、以下运算符中优先级最高的运算符是( A )。 A、! B、&& C、|| D、< 3、求字符串长度的函数是( D )。 A、strcat B、strcpy C、strcmp D、strlen 4、下面程序段的运行结果是( A )。 char x[5]=“ab\\0c\\0”; printf(\说明:“\\0”中的“0”是数字零。
A、ab B、abc C、ab\\0 D、ab\\0c\\0
5、若有说明语句: int a[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、数组中全部元素的值 8、以下程序的输出结果是( D )。 #include
int x,y; y=F(2);
printf(“y=%d”,y);
}
A、2 B、y=2 C、6 D、y=6 9、以下程序的输出结果是( A )。 #include
int x,y; } a;
void main(void) {
int x,y=50,z; a.x=10; a.y=20; z=a.x+y;
printf(“%d”,z); }
A 、60 B 、10 C、0 D、20
10、语句 fopen(“file.dat”,”r”); 的功能是( A )。
1
D、数组元素的个数 A、按照“读”方式打开文件 B、按照“写”方式打开文件 C、按照“读写”方式打开文件 D、按照“追加”方式打开文件 11、关闭文件的语句是( D )。
A、fread B、fwrite C、fprintf D、fclose
12、下面求余数的运算符是( C )。
A、 / B、^ C、% D、~
13、下面对字符数组的描述中错误的描述是( C )。
A、字符数组可以存放字符串 B、字符数组的字符可以整体输入、输出 C、可以在赋值语句中通过赋值运算符\对字符数组整体赋值 D、可以用关系运算符对字符数组中的字符进行比较 14、下面正确的字符常量是( C )。
A、300 B、'ab' C、'!' D、\
15、下面关于main函数与其它子函数之间的位置关系的叙述中正确的是( C )。 A、main函数必须是程序中的第一个函数
B、main函数如果程序中有多个函数,则不能位于最前面 C、main函数可以在任何位置
D、main函数必须是程序中最后一个函数
16、设float x=12.8,y=8.6;则(int)(x+y)的结果为( B )。 A、20 B、21 C、21.4 D、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!b B、a|=b 与 a=a|b C、a+=b 与 a=a+b D、a-=b 与 a=a-b 21、若有以下类型说明语句:
char a; int b; float c; double d; 则表达式a*b+d-c的运算结果的类型为( D )。 A、float B、char C、int D、double
22、设C语言中,unsigned int型数据的取值范围为( A )。
A、0~65535 B、0~32767 C、1~65535 D、1~32767 23、在任何时候,都能正确计算两个数之差的宏定义是( D )。 A、#define SUB(x,y) (x-y) B、#define SUB(x,y) (x)-(y) C、#define SUB(x,y) x-y D、#define SUB(x,y) ((x)-(y)) 24、以下不正确的说法为( C )。
A、在不同函数中可以使用相同名字的变量 B、虚参视同函数的局部变量 C、在函数内的复合语句中定义的变量在本函数范围内有效 D、在函数内定义的变量只在本函数范围内有效 25、!E 等价于( B )。
2
A、E!=0 B、E==0 C、E!=1 D、E==1 26、字符串比较大小的函数是( C )。
A、strcpy B、strlen C、strcmp D、strcat
27、若有说明语句: int a[ ][4]={1,2,3,4,5,6};,则数组的行数为( C )行。
A、6 B、4 C、2 D、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(\if (n<0) n= -n;
for(i=1 ; i if ( i%2!=0 && i%3 ( ==0 ) ) printf(\ \ ( i ) ); 32、下面程序的功能是输出数组中相邻两个数的和能被10整除的所有“数对”以及“数对”的个数。如:对于下面的数组:d[]={1,3,7,23,3,6,14,8,10} 将输出:(3,7) (7,23) (6,14) 3 对 #include { int d[]={1,3,7,23,3,6,14,8,10,57,13,90}; int i,count,s count= ( 0 ) ; /* count为“数对”的个数计数器 */ for(i=0; i<11; i++) { s=d[i]+ ( d[i+1] ) ; /* 计算相邻两个数的和 */ if (s= =0) { printf(“(%d,%d) ”, d[i],d[i+1]); count=count + ( 1 ) ; } } printf(“%d 对”,count); 33、下面程序的功能是将字符串s中所有的字符c删除。 #include char s[80]; int i,j; gets( ( s ) ); /* 输入字符串 */ j= ( 0 ) ; /* 计数器初始化 */ 3 for(i=0;s[i]!='\\0';i++) if (s[i]!='c') { s[j]=s[i] j++; } s[j]=’\\0’ ; /* 写入字符串结束标志 */ puts(s); 34、下面程序的功能是从键盘输入的最多10个整数中,找出第一个能被7整除的数。若找到,打印此数后 退出循环;若未找到, 打印\。 #include int i,a; for(i=1; i<11; i++) { scanf(\ &a ) ); /* 输入一个整数 */ if (a%7= =0) { printf(\ ( break ) ; /* 退出循环 */ } } if ( ( i ) = =11 ) printf(\ } 35、以下程序的运行结果是:( 150 ) #include int i,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(\ } 36、以下程序的运行结果是:( 5 ) #include int x,y,z; x=4; y=3; z=12-sub(x,y) printf(\ } 4 37、以下程序的运行结果是:( 100 ) #include int x,*p; p=&x; *p=100; printf(\ } 38、相同类型的数据之集合称为( 数组 )。说明:填写两个汉字。 39、字符串“abc\\n”的长度是( 4 )。说明:填写一个阿拉伯数字。 40、若有定义: int a[3][2]={2,4,6,8,10,12};,则*(a[1]+1)的值是( 8 )。 41、二进制运算表达式:!(10001101) 的二进制值是( 0 )。 42、为了方便阅读程序,每行最好只书写( 1 )个语句。说明:填写一个阿拉伯数字。 43、与if语句配对构成双分支结构的关键字是( else )。说明:填写4个小写英文字母。 44、变量名的第一个字符必须是( 字母 )或下划线。说明:填写两个汉字。 45、字符常量要用( 单 )引号括起来。说明:填写一个汉字。 46、若有 int a=6,x=5; 则执行 x+=a; 后 x 的值为( 11 )。 47、表示另一个同类型变量之地址的变量称为( 指针 )变量。说明:填写两个汉字。 三、判断题(A、正确 B、错误) 48、&& 的优先级低于 || 的优先级。 B 49、若有定义int x,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 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 目录中。 5