全国计算机等级考试二级C笔试练习题.docx
《全国计算机等级考试二级C笔试练习题.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C笔试练习题.docx(15页珍藏版)》请在冰豆网上搜索。
![全国计算机等级考试二级C笔试练习题.docx](https://file1.bdocx.com/fileroot1/2023-2/7/f77948ef-fc31-476b-8e5c-0a1dfdef8c40/f77948ef-fc31-476b-8e5c-0a1dfdef8c401.gif)
全国计算机等级考试二级C笔试练习题
2011年全国计算机等级考试二级C笔试练习题
(1)
1.若变量已正确定义并赋值,对库函数错误调用的是
A)k=scanf("%d%d",&i,&j);
B)printf("\\%d\\\n",k);
C)getchar(ch);
D)putchar(ch);
2.要求定义一个返回值为double类型的名为mysum的函数,其功能为求两个double类型数的和值,正确的定义是:
A)mysum(doublea,b)
{return(a+b);}
B)mysum(doublea,doubleb)
{returna+b;}
C)doublemysum(inta,intb);
{returna+b;}
D)doublemysum(doublea,doubleb)
{retrun(a+b);}
3.以下是对fun函数的正确调用:
fun(a+b,fun(a+b,(a,b)));
则fun函数有______个形参。
4.若有以下函数定义:
myfun(doublea,intn)
{……}
则myfun函数值的类型是
A)void
B)double
C)int
D)char
5.若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值。
以下选项中错误的程序是
A)doublefun(inta,intb)
{……}
main()
{┇
fun(i,k);
┇
}
B)main()
{
printf("%f\n",fun(2,10));
┇
}
doublefun(inta,intb)
{……}
C)doublefun(int,int);
main()
{┇
x=fun(i,k);
┇
}
doublefun(inta,intb)
{……}
D)main()
{doublefun(inti,inty);
┇
x=fun(i,k);
┇
}
doublefun(inta,intb)
{……}
6.若有以下函数:
intfun(intx)
{return(1+x*x);}
则语句printf("%d\n",fun(fun(fun(fun
(1)))));的输出结果是
答案:
CD2CB677
2011年全国计算机等级考试二级C笔试练习题
(2)
1.若有以下定义:
floatx;inta,b,c=2;,则正确的switch语句是()
A)
switch(x)
{case1.0∶printf("*\n");
case2.0∶printf("**\n");
}
B)switch(int(x))
{case1∶printf("*\n");
case2∶printf("**\n");
}
C)
switch(a+b)
{case1∶printf("*\n");
case1+2∶printf("**\n");
}
D)switch(a+b)
{case1∶printf("*\n");
casec∶printf("**\n");
}
2.执行下面程序片段的结果是()
intx=123;
do
{printf("=\n",x--);}
while(!
x);
A)打印出321
B)打印出123
C)不打印任何内容
D)陷入死循环
3.以下程序的输出结果是()
#include
main()
{inti=0,a=0;
while(i<20)
{for(;;){if((i_)==0)break;elsei--;}
i+=11;a+=i;
}
printf("%d\n",a);
}
A)21B)32C)33D)11
4.下列与表达式“b=(a<0?
-1∶a>0?
1∶0)”的功能等价选项是()
A)b=0;
if(a>=0)
if(a>0)b=1;
elseb=-1;
B)if(a>0)b=1;
elseif(a<0)b=-1;
elseb=0
C)if(a)
if(a<0)b=-1;
elseif(a>0)b=1;
elseb=0;
D)b=-1;
if(a)
if(a>0)b=1;
elseif(a==0)b=0;
elseb=-1;
5.若有以下定义:
chara;intb;floatc;doubled;则表达式“a*b+d-c”值的类型为()
A)float
B)int
C)char
D)double
6.以下叙述中正确的是()
A)在函数中必须
须要有return语句
B)在函数中可以有多个return语句,但只执行其中的一个
C)return语句中必须要有一个表达式
D)函数值并不总是通过return语句传回调用处
7.有以下程序
floatfun(intx,inty)
{return(x+y);
}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));
}
程序运行后的输出结果是()
A)编译出错
B)9
C)21
D)9.0
8.若已定义:
inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;
其中0≤i≤9,则对a数组元素不正确的引用是()
A)a[p-a]
B)*(&a[i])
C)p[i]
D)a[10]
9.以下叙述中正确的是()
A)全局变量的作用域一定比局部变量的作用域大
B)静态(static)类型变量的生存期贯穿于整个程序的运行期间
C)函数的形参都属于全局变量
D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
10.若有如下程序:
main()
{chara[][9]={"china","Japan","USA","France"};
printf("\′%s\′\n",a[2]);}
则程序运行后的输出结果是()
A)′Japan′
B)′USA′
C)USA
D)′inaJapanUSAFrance′
答案:
1.C2.B3.B4.B5.D6.B7.B8.D9.B10.B
2011年全国计算机等级考试二级C笔试练习题(3)
1.若变量c为char类型,能正确判断出c为小写字母的表达式是()
A)′a′<=c<=′z′
B)(c>=′a′)||(c<=′z′)
C)(′a′=C)
D)(c>=′a′)&&(c<=′z′)
2.下面程序的输出结果是()
main()
{intx=2,y=0,z;
x+=3+2;printf("%d",x);
x*=y=z=4;printf("%d",x);
}
A)728
B)无法计算
C)7,4
D)8,4
3.有如下程序
main()
{intx=1,a=0,b=0;
switch(x){
case0∶b++;
case1∶a++;
case2∶a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序运行后的输出结果是()
A)a=2,b=1
B)a=1,b=1
C)a=1,b=0
D)a=2,b=2
4.以下选项中,正确的if-else语句是()
A)if(x!
=0)
printf("%d",x)
else
printf("%d",-x);
B)if(x!
=0)
{x=x+y;printf("%d",x);}
else
printf("%d",-x);
C)if(x!
=0)
x=x+y;printf("%d",x);
else
printf("%d",-x);
D)if(x!
=0)
{x=x+y;printf("%d",x)};
else
printf("%d",-x);
5.有以下程序段
intn=0,p;
do{scanf("%d",&p);n++;}while(p!
=12345&&n<3);
此处do-while循环的结束条件是()
A)p的值不等于12345并且n的值小于3
B)p的值等于12345并且n的值大于等于3
C)p的值不等于12345或者n的值小于3
D)p的值等于12345或者n的值大于等于3
6.若有如下程序段:
main()
{intn=0;
while(printf("*"))
{n++;
if(n<3)break;}}
则下列描述正确的是()
A)其中循环控制表达式与0等价
B)其中循环控制表达式与’0’等价
C)其中循环控制表达式是不合法的
D)以上说法都不对
7.C语言中main函数参数的非法表示形式是()
A)main(char*argv[],intargc)
B)main(inta,char**b)
C)main(inty,char*x[])
D)main(intargv,char*argc[])
8.设有如下枚举类型定义:
enumlanguage{Basic=3,Assembly,Ada=100,COBOL,Fortran};
枚举类型Fortran的值为()
A)4
B)7
C)102
D)103
9.阅读下述程序段:
y=-1;
if(x!
=0)
if(x>0)
y=1;
else
y=0;
该程序段所描述的数学关系是()
A)y=-1(x<0)
0(x=0)
1(x>0)
B)y=1(x<0)
0(x=0)
-1(x>0)
C)y=0(x<0)
-1(x=0)
1(x>0)
D)y=-1(x<0)
1(x=0)
0(x>0)
10.设有数组定义:
chararray[]="China";蚴閍rray所占的空间为()
A)4个字节
B)5个字节
C)6个字节
D)7个字节
答案:
1.D2.A3.A4.B5.D6.B7.A8.C9.C10.C
2011年全国计算机等级考试二级C笔试练习题(4)
1.有以下程序:
main()
{intx=0xFFFF;printf("%d\n",x--);}
执行后的输出结果是()
A)32767
B)FFFE
C)-1
D)-32768
2.以下程序的输出结果是()
#include
#include
main()
{charstr[12]={′s′,′t′,′r′,′i′,′n′,′g′};
printf("%d\n",strlen(str));
}
A)6
B)7
C)11
D)12
3.若有以下定义:
chars[20]="programming",*ps=s;
则不能代表字符o的表达式是()
A)ps+2
B)s[2]
C)ps[2]
D)ps+=2,*ps
4.关于语句“for(表达式1;表达式2;表达式3)”,下面说法中错误的是()
A)for语句中的三个表达式可以同时省略
B)for语句可以用于循环次数不确定的情况
C)for语句中表达式2只能是关系表达式或逻辑表达式
D)for语句中表达式1和表达式3可以是逗号表达式
5.执行下面程序片段的结果是()
intx=23;
do
{printf("-",x--);}
while(!
x);
A)打印出321
B)打印出23
C)不打印任何内容
D)陷入死循环
6.与y=(x>0?
1∶x<0?
-1∶0);的功能相同的if语句是()
A)if(x>0)y=1;
elseif(x<0)y=-1;
elsey=0;
B)if(x)
if(x>0)y=1;
elseif(x<0)y=-1;
elsey=0;
C)y=-1;
if(x)
if(x>0)y=1;
elseif(x==0)y=0;
elsey=-1;
D)y=0;
if(x>=0)
if(x>0)y=1;
elsey=-1;
7.标准库函数fgets(s,n,f)的功能是()
A)从文件f中读取长度为n的字符串存入指针s所指的内存
B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
C)从文件f中读取n个字符串存入指针s所指的内存
D)从文件f中读取长度为n-1的字符串存入指针s所指的内存
8.若有如下函数调用语句:
sub(a,1,ffun(b,c),d+c,(a+d,c*f));
则在该函数调用语句中含有实参的个数是()
A)5
B)7
C)10
D)6
9.若要定义a为3×4的二维数组,正确的定义语句是()
A)floata(3,4);
B)floata[3][4];
C)floata(3)(4);
D)floata[3,4];
10.有以下程序
main()
{intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
inti,s=0;
for(i=0;i<4;i++)s+=aa[i][1];
printf("%d\n",s);
}
程序运行后的输出结果是()
A)11
B)19
C)13
D)20
答案:
1.C2.A3.A4.C5.B6.A7.B8.A9.B10.B