全国计算机等级考试二级笔试考题.docx
《全国计算机等级考试二级笔试考题.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级笔试考题.docx(16页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级笔试考题
1、请选出可用作C语言用户标识符的一组标识符
A)voidB)a3_b3C)ForD)2a
define_123-abcDO
WORDIFCasesizeof
2、设inta=12,则执行完语句a+=a-=a*a后,a的值是
A)552B)264C)144D)-264
3、C语言程序的基本单位是
A)程序行B)语句C)函数D)字符
4、请选出不合法的C语言赋值语句
A)a=b=58B)i++;
C)a=58,b=58D)k=int(a+b);
5、执行下面程序片段的结果是
intx=23;
do
{printf("%2d",x--);}
while(!
x);
A)打印出321B)打印出23C)不打印任何内容D)陷入死循环
6、请选出以下语句的输出结果
printf("%d\n",strlen("\t\"\065\xff\n"));
A)5B)14C)8D)输出项不合法,无正常输出
7、设有如下的函数
ggg(x)
floatx;
{printf("\n%d",x*x);}
则函数的类型
A)与参数x的类型相同B)是voidC)是intD)无法确定
8、设有如下枚举类型定义:
enumlanguage{Basic=3,Assembly,Ada=100,COBOL,Fortran};
枚举量Fortran的值为
A)4B)7C)102D)103
9、若有以下说明和语句,请选出哪个是对c数组元素的正确引用
intc[4][5],(*cp)[5];
cp=c;
A)cp+1B)*(cp+3)C)*(cp+1)+3D)*(*cp+2)
10、标准函数fgets(s,n,f)的功能是
A)从文件f中读取长度为n的字符串存入指针s所指的内存
B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
C)从文件f中读取n个字符串存入指针s所指的内存
D)从文件f中读取长度为n-1的字符串存入指针s所指的内存
11、设有如下一段程序:
int*var,ab;
ab=100
var=&ab;
ab=*var+10;
执行上面的程序后,ab的值为
A)120B)110C)100D)90
12、以下程序段给数组所有的元素输入数据,请选择正确答案填入。
#include
main()
{inta[10],i=0;
while(i<10)scanf("%d",________);
}
A)a+(i++)B)&a[i+1]C)a+iD)&a[++i]
13、设有如下的程序段:
charstr[]="Hello";
char*ptr;
ptr=str;
执行上面的程序段后,*(ptr+5)的值为
A)'o'B)'\0'C)不确定的值D)'o'的地址
14、在宏定义#definePI3.14159中,用宏名PI代替一个
A)单精度数B)双精度数C)常量D)字符串
15、字符(char)型数据在微机内存中的存储形式是
A)反码B)补码C)EBCDIC码D)ASCII码
16、执行下面的程序段
intx=35;
charz='A';
intb;
b=((x&15)&&(z<'a'));
后,b的值为
A)0B)1C)2D)3
17、C语言规定,程序中各函数之间
A)既允许直接递归调用也允许间接递归调用
B)不允许直接递归调用也不允许间接递归调用
C)允许直接递归调用不允许间接递归调用
D)不允许直接递归调用允许间接递归调用
18、假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表
1
示代数式-----―――的表达式是
abc
A)1/a*b*c
B)1/(a*b*c)
C)1/a/b/(float)c
D)1.0/a/b/c
19、若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是
A)pb=&xB)pb=x;C)*pb=&x;D)*pb=*x
20、设有
staticcharstr[]="Beijing";
则执行
printf("%d\n",strlen(strcpy(str,"China")));
后的输出结果为
A)5B)7C)12D)14
21、设有如下程序:
#include
main()
{int**k,*j,i=100;
j=&i;k=&j;
printf("%d\n",**k);
}
上面程序的输出结果是
A)运行错误B)100C)i的地址D)j的地址
22、设a=5,b=6,c=7,d=8,m=2,n=2,执行
(m=a>b)&&(n=c>d)
后n的值为
A)1B)2C)3D)4
23、下面函数的功能是
sss(s,t)
char*s,*t;
{while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}
A)求字符串的长度B)比较两个字符串的大小
C)将字符串s复制到字符串t中D)将字符串s接续到字符串t中
24、请选出以下程序的输出结果
#include
sub(x,y,z)
intx,y,*z;
{*z=y-x;}
main()
{inta,b,c;
sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c);
}
A)5,2,3B)-5,-12,-7C)-5,-12,-17D)5,-2,-7
25、下面程序的输出结果是
#include
main()
{inti=2,p;
p=f(i,i+1);
printf("%d",p);
}
intf(a,b)
inta,b;
{intc;
if(a>b)c=1;
else
if(a==b)c=0;
elsec=-1;
return(c);
}
A)-1B)0C)1D)2
26、请选出以下程序段的输出结果
#include
#defineMIN(x,y)(x)<(y)?
(x):
(y)
main()
{inti,j,k;
i=10;j=15;
k=10*MIN(i,j);
printf("%d\n",k);
}
A)15B)100C)10D)150
27、请选出以下程序段的输出结果
#include
main()
{charsl[10],s2[10],s3[10],s4[10];
scanf("%s%s",s1,s2);gets(s3);gets(s4);
puts(s1);puts(s2);puts(s3);puts(s4);
}
输入数据如下:
(此处代表回车符)
aaaabbbb
ccccdddd
A)aaaaB)aaaaC)aaaaD)aaaa
bbbbbbbbbbbbbbbb
ccccccccdddd
ccccddddccccdddddddd
28、请选出以下程序的输出结果
#include
fun(s,n1,n2)
int*s,n1,n2;
{inti,j,t;
i=n1;j=n2;
while(i{t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;
i++;j--;
}
}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;
fun(p,0,3);fun(p,4,9);fun(p,0,9);
for(i=0;i<10;i++)printf("%d",*(a+i));
printf("\n");
}
A)0987654321B)4321098765
C)5678901234D)0987651234
29、请选出以下程序的输出结果
#include
main()
{inta[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{sub(a,x);printf("%d",x);}
printf("\n");
}
sub(s,y)
int*s,y;
{staticintt=3;
y=s[t];t--;
}
A)1234B)4321C)0000D)4444
30、下面程序的输出结果为
structst
{intx;
int*y;
}*p;
intdt[4]={10,20,30,40};
structstaa[4]={50,&dt[0],60,&dt[1],
70,&dt[2],80,&dt[3]};
main()
{p=aa;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
printf("%d\n",++(*p->y));
}
A)10B)50C)51D)60
20606070
20212131
31、设有如下程序段:
inti=0,sum=1;
do
{sum+=i++;}
while(i<6);
printf("%d\n",sum);
上述程序段的输出结果是[6]。
-----
32、阅读下列程序:
#include
main()
{inti,j,row,column,m;
staticintarray[3][3]={{100,200,300},
{28,72,-30},
{-850,2,6}
};
m=array[0][0];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(array[i][j]{m=array[i][j];row=i;column=j;}
printf("%d,%d,%d\n",m,row,column);
}
上述程序的输出结果是[7]。
-----
33、设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:
a*=16+(b++)-(++c);
后,a的值是[8]。
-------
34、下面程序的输出结果是[9]。
-----
#include
main()
{inta=3,b=2,c=1;
c-=++b;
b*=a+c;
{intb=5,c=12;
c/=b*2;
a-=c;
printf(“%d,%d,%d,",a,b,c);
a+=--c;
}
printf(“%d,%d,%d,",a,b,c);
}
35、设有如下程序:
#include
main(argc,argv)
intargc;char*argv[];
{while(--argc>0)printf("%s",argv[argc]);
printf("\n");
}
假定上述程序经编译和连接后生成可执行文件PROG.EXE,如果在DOS提示符下
键入PROGABCDEFGHIJKL,则输出结果为[10]。
------
36、阅读下列程序:
#include
#defineMAX_COUNT4
voidfun();
main()
{intcount;
for(count=1;count<=MAX_COUNT;count++)fun();
}
voidfun()
{staticinti;
i+=2;printf("%d",i);
}
上述程序的输出结果是[11]。
------
37、设有下列程序:
#include
#include
main()
{inti;
charstr[10],temp[10];
gets(temp);
for(i=0;i<4;i++)
{gets(str);
if(strcmp(temp,str)<0)strcpy(temp,str);
}
printf("%s\n",temp);
}
上述程序运行后,如果从键盘上输入(在此代表回车符):
C++
BASIC
QuickC
Ada
Pascal
则程序的输出结果是[12]。
------
38、设有如下程序:
#include
main(argc,argv)
intargc;char*argv[];
{FILE*fp;
voidfc();
inti=1;
while(--argc>0)
if((fp=fopen(argv[i++],"r"))==NULL)
{printf("Cannotopenfile!
\n");
exit
(1);
}
else
{fc(fp);fclose(fp);}
}
voidfc(ifp)
FILE*ifp;
{charc;
while((c=getc(ifp))!
='#')putchar(c-32);
}
上述程序经编译、连接后生成可执行文件名为cpy.exe。
假定磁盘上有三个
文本文件,其文件名和内容分别为:
文件名内容
aaaaaa#
bbbbbb#
cccccc#
如果在DOS下键入
cpyabc
则程序输出[13]。
------
39、若输入3个整数3,2,1,则下面程序的输出结果是[14]。
------
#include
voidsub(n,uu)
intn,uu[];
{intt;
t=uu[n--];t+=3*uu[n];
n=n++;
if(t>=10)
{uu[n++]=t/10;uu[n]=t%10;}
elseuu[n]=t;
}
main()
{inti,n,aa[10]={0,0,0,0,0,0}
scanf("%d%d%d",&n,&aa[0],&aa[1]);
for(i=1;ifor(i=0;i<=n;i++)printf("%d",aa[i]);
printf("\n");
}
40、以下程序统计从终端输入的字符中每个大写字母的个数。
用#号作为输入结束
标志,请填空。
#include
#include
main()
{intnum[26],i;charc;
for(i=0;i<26;i++)num[i]=0;
while([17]!
='#')/*统计从终端输入的大写字母个数*/
------
if(isupper(c))num[c-65]+=1;
for(i=0;i<26;i++)/*输出大写字母和该字母的个数*/
if(num[i])printf("%c:
%d\n”,[18],num[i]);
------
}
41、下面的程序调用getone函数开辟一个动态存储单元,调用assone函数把数据输入此动态存储单元,调用outone函数输出此动态存储单元中的数据。
请填空。
#include
getone(s)
int**s;
{*s=(int*)malloc(sizeof(int));}
assone(a)
int*a;
{scanf("%d",[19]);}
------
outone(b)
int*b;
printf("%d\n",[20]);}
------
main()
{int*p;
getone(&p);
assone(p);
outone(p);
}