计算机等级二级C笔试考前练习习题.docx
《计算机等级二级C笔试考前练习习题.docx》由会员分享,可在线阅读,更多相关《计算机等级二级C笔试考前练习习题.docx(16页珍藏版)》请在冰点文库上搜索。
计算机等级二级C笔试考前练习习题
计算机等级二级C笔试考前练习习题一
1.打开一个已经存在的非空文本文件,若文件名为stu,则正确的打开语句为()
A)FILE*fp;
fp=fopen("stu.txt","r")
B)FILE*fp;
fp=fopen(stu.txt,r)
C)FILE*fp;
fp=fopen("stu.txt","wb")
D)FILE*fp;
fp=fopen("stu.txt",wb)
2.设有如下程序:
charsub(char*q)
{while(*q!
=′\0′)
{if(*q>=′A′&&*q<=′Z′)*q=*q+32;
elseif(*q>=′a′&&*q<=′z′)*q=*q-32;
printf("%c",*q);
q++;}}
main()
{char*s="abcABC";
sub(s);}
则程序运行后的输出结果是()
A)ABCabc
B)abcABC
C)abcabc
D)ABCABC
3.在下列语句中,正确的是()
A)staticcharstr[]="China";
B)staticcharstr[];str="China";
C)staticcharstr1[5],str2[]={"China"};str1=str2;
D)staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);
4.若在fopen函数中使用文件的方式是"wb+",该方式的含义是()
A)为读/写打开一个文本文件
B)为输出打开一个文本文件
C)为读/写建立一个新的文本文件
D)为读/写建立一个新的二进制文件
5.以下关于宏与函数的叙述中正确的是()
A)使用函数或宏命令对C的源程序都没有影响
B)函数具有类型,宏不具有类型
C)函数调用和带参的宏调用都是将实参的值传给形参
D)使用函数比使用宏运行速度快
6.有以下程序:
intx=1,y=2;
voidfun1()
{x=3;y=4;}
voidfun2(intx,inty)
{printf("%d,%d,\n",x,y);}
main()
{fun1();
printf("%d,%d,"x,y);
fun2(5,6);
}
程序的运行结果是()
A)1,2,3,4
B)1,2,5,6
C)3,4,5,6
D)3,4,1,2
7.若有如下调用函数:
intsub(int*t)
{return(t);}
该函数的返回值是()
A)形参t中存放实参变量的地址值
B)形参t自身的地址值
C)指针变量t所指的实参变量的值
D)随机的值
8.下面程序的输出结果是()
#definePI3.1415
#defineARE(x)PI*x*x
main()
{intr=2;
printf("%f",ARE(r+1));
}
A)28.26
B)28.260000
C)9.28
D)9.280000
9.以下程序的输出结果是()
main()
{
inta=2,k;
for(k=0;k<3;k++)printf("M",f1(a));
}
f1(inta)
{
intb=0;staticintc=3;
b++;c++;
return(a+b+c);}
A)777
B)71013
C)7911
D)789
10.在下面关于指针的说法中,错误的一条是()
A)变量的指针就是变量的地址
B)可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量
C)一个指针变量只能指向同一个类型的变量
D)指针变量中只能存放地址(指针)
答案:
1.A2.A3.A4.D5.B6.C7.A8.D9.D10.B
计算机等级二级C笔试考前练习习题二
1.sizeof(double)是()
A)一种函数调用
B)一个双精度型表达式
C)一个整型表达式
D)一个不合法的表达式
2.以下选项中错误的是()
A)char*sp;gets(sp);
B)charsp[5];gets(sp);
C)char*sp="12345";gets(sp);
D)charsp[5]="\0";gets(sp);
3.在宏定义#definePI3.14159中,用宏名PI代替一个()
A)单精度数
B)双精度数
C)常量
D)字符串
4.设有如下定义:
char*aa[2]={"abcd","ABCD"};
则以下说法中正确的是()
A)aa数组元素的值分别是"abcd"和"ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符′a′和′A′的地址
5.有以下程序:
#include
voidfun(int*s,int**d)
{**d=*(s+2);}
main()
{inta[]={1,2,3,4,5},*b;
b=(int*)malloc(sizeof(int));
fun(a,&b);
printf("%d\n",*b+1);
}
程序的输出结果是()
A)2
B)3
C)4
D)5
6.若有如下程序:
sub(intx)
{inty=0;staticintz=1;
y+=x+2;z+=y+x;
return(z);}
main()
{intt=1,n;
for(n=0;n<3;n++)printf("%d,",sub(t));}
则程序运行后的输出结果是()
A)5,5,5
B)5,9,13,
C)5,7,9,
D)5,8,11,
7.若有如下定义和声明:
structs
{intm;charch;doublex;
uniont{chara[6];intb[3];}tt;}ss;
则sizeof(structs)的值是()
A)6
B)14
C)17
D)20
8.以下选项中的表达式调用库函数依次求-4.5的绝对值、-4.0的平方根值、30°角的正弦值和2的3次方值。
正确的调用是()
A)abs(-4.5)
B)sqrt(-4.0)
C)sin(3.1416/6.0)
D)paw(2.0,3.0)
9.若有如下程序:
#definePI3.1415926
#defineA(r)2*PI*r
main()
{floata,l;
a=3.0;
l=A(a);
printf("r=%.2f,l=%.2f\n",a,l);}
则程序运行后的输出结果是()
A)r=3.00l=18.85
B)3.00,18.85
C)r=3.000000l=18.8495555
D)r=3.0l=18.8495555
10.若有如下程序:
#include"stdio.h"
voidmain()
{FILE*fp;
fp=fopen("test","wb")
fprintf(fp,"%d%.1f,%c%c",5,238.41,′B′,′h′);
fclose(fp);}
则程序运行后向文件输出的结果是()
A)5238.41
BhB)5238.4,Bh
C)5,238.4,B,h
D)5238.41Bh
答案:
1.C2.A3.D4.C5.C6.B7.C8.C9.A10.B
计算机等级二级C笔试考前练习习题三
1.若有如下程序:
voids(char*m,intn)
{*m=*m+3;n=n+3;
printf("%c,%c,",*m,n);}
main()
{charp=′b′,q=′B′;
s(&q,p);
printf("%c,%c\n",p,q);}
则程序运行后的输出结果是()
A)E,e,b,E
B)e,E,b,F
C)E,e,e,E
D)e,E,b,E
2.在C语言的函数中()
A)必须有形参
B)形参必须是变量名
C)可以有也可以没有形参
D)数组名不参与形参
3.若有如下程序:
sub(int*t,intn)
{int*p1,*p2;
for(p1=t,p2=t;p1-t if(*p1<*p2)p2=p1;
return(*p2);}
main()
{inta[9]={9,36,19,39,26,5,6,33,15};
printf("%d\n",sub(a,9));}
则程序运行后的输出结果是()
A)5
B)9
C)15
D)39
4.在表示C语言的整型变量时,表示“无符号整型”的符号是()
A)unsignedint
B)unsignedshort
C)longint
D)unsignedlong
5.以下程序段给数组所有的元素输入数据,请选择正确答案填入。
()
#include
main()
{inta[10],i=0;
while(i<10)scanf("%d",);
…
}
A)a+(i++)
B)&a[i+1]
C)a+i
D)&a[i++]
6.若输入60和13,以下程序的输出结果为()
#defineSURPLUS(a,b)((a)%(b))
main()
{inta,b;
scanf("%d,%d",&a,&b);
printf("\n",SURPLUS(a,b));
}
A)60
B)13
C)73
D)8
7.在下列叙述中,正确的一条是()
A)语句int*pt中的*pt是指针变量名
B)语句“int*p=a;”等价于“int*p;p=&a[0];”
C)运算符*和&都是取变量地址的运算符
D)已知指针变量p指向变量a,则&a和*p值相同,都是变量a的值
8.设有定义:
#defineSTR"12345";,则以下叙述中正确的是()
A)宏名STR代替的是数值常量12345
B)宏定义以分号结束,编译时一定会产生错误信息
C)宏名STR代替的是字符串"12345";
D)宏名STR代替的是字符串常量"12345"
9.fprintf函数的一般调用方式是()
A)fprintf(格式字符串,文件指针,输出表列);
B)fprintf(文件指针,格式字符串,输出表列)
C)fprintf(文件指针,格式字符串,输出表列);
D)fprintf(fp,格式字符串,输出表列);
10.函数调用语句:
fseek(fp,-20L,SEEK_END);的含义是()
A)将文件位置指针移到距离文件头20个字节处
B)将文件位置指针从当前位置向后移动20个字节
C)将文件位置指针从文件末尾处向后退20个字节
D)将文件位置指针移到离当前位置20个字节处
答案:
1.A2.C3.A4.A5.D6.D7.D8.C9.C10.C
计算机等级二级C笔试考前练习习题四
1.下面程序的输出结果是()
func(intx)
{staticinta=2;
return(a+=x);}
main()
{intb=2,c=4,d;
d=func(b);
d=func(c);
printf("%d\n",d);}
A)4
B)6
C)8
D)12
2.以下程序运行后的输出结果是()
main()
{chars[]="1234",*ps;
for(ps=s;ps
printf("\n");
}
A)123
B)112123
C)1234
D)乱码
3.以下关于宏的叙述中正确的是()
A)宏名必须用大写字母表示
B)宏替换时要进行语法检查
C)宏替换不占用运行时间
D)宏定义中不允许引用已有的宏名
4.如果文件1包含文件2,文件2中要用到文件3的内容,而文件3中要用到文件4的内容,则可在文件1中用三个#include命令分别包含文件2、文件3和文件4。
在下列关于这几个文件包含顺序的叙述中,正确的一条是()
A)文件4应出现在文件3之前,文件3应出现在文件2之前
B)文件2应出现在文件3之前,文件3应出现在文件4之前
C)文件3应出现在文件2之前,文件2应出现在文件4之前
D)出现的先后顺序可以任意
5.有以下程序段
main()
{chara[7]="abcdef";
charb[4]="ABC";
strcpy(a,b);
printf("%c",a[5]);
}
程序段运行后的输出结果是()
A)a
B)\0
C)e
D)f
6.下面程序的输出结果是()
#include
f(b,n)
intb[],n;
{inti,r;
r=1;
for(i=0;i<=n;i++)
r=r*b[i];
returnr;
}
main()
{intx,a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
printf("%d\n",x);
}
A)720
B)120
C)24
D)6
7.下面程序的输出结果是()
#include"stdio.h"
fun(x)
intx;
{
inty=0;
staticintz=5;
z=x++,y++;
return(z);
}
main()
{
inta=4,i,j;
for(i=0;i<2;i++)
j=fun(a++);
printf("%d",j);
}
A)0
B)3
C)4
D)5
8.对于以下程序段,设a和q都是整型变量,
…
a=q;
Loop∶if(a==0)gotoEnd;
Elseif(a>0){printf("&");a--;gotoLoop;}
ElsegotoEnd;
End;
…
不能与上面程序等价的是()
A)a=q;
do
{f(a<0)break;
a--;printf("*");
}while(a);
B)a=q;
for(;a>0;a--)printf("&");
C)a=q;
while(a)
{printf("&");a--;}
D)for(a=q;a>0;--a,printf("*"));
9.有以下程序
#include
#definePT5.5
#defineS(x)PT*x*x
main()
{inta=1,b=2;
printf("%4.1f\n",S(a+b));
}
程序运行后的输出结果是()
A) 49.5
B) 9.5
C) 22.0
D) 45.0
10.设有以下语句:
structSS
{intno;charname[10];}PERSON;
则下面叙述中错误的是()
A)struct是结构体类型的关键字
B)structSS是结构体类型
C)PERSON是结构体类型名
D)name是结构体成员名
答案:
1.C2.D3.C4.A5.D6.B7.D8.C9.B10.C