计算机类二级C

2013年9月全国计算机等级《二级C语言程序设计》上机临考冲刺试卷(5)

43 题含答案C
共 43 题返回本类
1单选题1 / 43
有定义:“int a=2,b=3,c=4;”,则下列选项中值为0的表达式是( )。
查看答案
A. (!a==1)&&(!b==0)
2单选题2 / 43
执行下面的程序后,a的值为( )。
main()
{ int a,b;
for(a=1,b=1;a<=10;a++)
{ if(b%3==l)
{ b+=3;
continue;}
b-=5;}}
查看答案
D. 10
3单选题3 / 43
若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是( )。
查看答案
D. 0
4单选题4 / 43
有以下程序:
main()
{int a=0,b=0;
a=10; /*给a赋值
b=20; 给b赋值 */
printf("a+b=%d\n",a+b);//输出计算机结果
}
程序运行后的输出结果是( )。
查看答案
A. a+b=10
5单选题5 / 43
有下列二叉树,对此二叉树前序遍历的结果为( )。
  
查看答案
D. ABDYECFXZ
7单选题7 / 43
执行下列程序中的输出语句后,a的值是( )。
main()
{ int a;
printf("%d\n",(a=2*3,a*5,a+7));
}
查看答案
C. 6
8单选题8 / 43
下列关于栈的描述中错误的是( )。
查看答案
B. 栈只能顺序存储
9单选题9 / 43
函数调用strcat(strcpy(str1,str2),str3)的功能是( )。
查看答案
C. 将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后
10单选题10 / 43
对两个数组a和b进行下列初始化:
char m[]1="l234567":
char n[]={'1','2 ','3','4 ','5','6','7');
则下列叙述正确的是( )。
查看答案
C. 数组m比数组n长1
11单选题11 / 43
有下列程序段:
int n,t=1,S=0;
scanf("%d",&n);
do{s=s+t;t=t-2;while(t!=n);
为使此程序段不陷入循环,从键盘输入的数据应该是( )。
查看答案
D. 任意负奇数
12单选题12 / 43
若变量a,b已正确定义,且b已正确赋值,则合法的语句是( )。
查看答案
B. (int)a=(int)b;
13单选题13 / 43
常采用的两种存储结构是( )。
查看答案
A. 顺序存储结构和链式存储结构
14单选题14 / 43
下列字符数组初始化语句中,不正确的是( )。
查看答案
A. char c[]='goodmorning';
15单选题15 / 43
若有定义“int a=5,b=7;”,则表达式a%-(b%2) 运算后,a的值为( )。
查看答案
A. 0
17单选题17 / 43
有下列程序:
main()
{ int y=10;
do{y--;}while(--y);
printf("%d\n",--y);
)
当执行程序时,输出的结果是( )。
查看答案
A. -1
19单选题19 / 43
执行下述程序后,输出的结果是( )。
#include
#define S(X)X*X
void main()
{ int a=9,k=3,m=2;
a/=S(k+m)/s(k+m);
printf("%d",a);
}
查看答案
D. 0
20单选题20 / 43
下述程序的运行结果是( )。
#included stdio.h>
#included strin9.h>
main()
{ char*s1="abDuj";
char*s2="ABdUG";
int t;
t=strcmp(s1,s2);
printf("%d",t);
}
查看答案
A. 正数
21单选题21 / 43
下列说法正确的是( )。
查看答案
D. 在C语言中,定义一个数组后.就确定了它所容纳的元素的个数
22单选题22 / 43
当执行以下程序段时,( )。
x=-l:
do{x=x*X;)while(!x);
查看答案
A. 循环体将执行一次
24单选题24 / 43
语句int(*ptr)()的含义是( )。
查看答案
C. ptr是指向函数的指针,该函数返回一个int型数据
25单选题25 / 43
下列程序的输出结果是( )。
void fun(int*X,int y)
{ printf("%d%d",*x,*y);*x=3;*y=1;}
main()
{ int x=1,y=2;
fun(&y,&x);
printf("%d%d",x,y);
}
查看答案
C. 1 2 3 4
26单选题26 / 43
C语言可执行程序的开始执行点是( )。
查看答案
C. 程序中的main( )函数
27单选题27 / 43
在下列给出的表达式中,与while(E)中的(E)不等价的表达式是( )。
查看答案
B. (E>0||E<0)
28单选题28 / 43
下述程序的输出结果是( )。
#include
void main()
{ int b[6]={2,4,6,8,10,12);
int*p=b,**q=&p;
printf("%d,",*(p++));
printf("%d,",**q);
}
查看答案
D. 2,4
29单选题29 / 43
在下列语句中,其含义为“q是一个函数指针,该指针指向整型数据”的定义语句是( )。
查看答案
B. int(*q)();
30单选题30 / 43
有下列程序:
fun(int x,int y)
{ static int m=0,i=2;
i+=m+1;m=i+x+y;return m;
}
main( )
{ int j=1,m=1,k;
k=fun(j,m);print S(”%d,”,k);
k=fun(j,m);printf(”%d\n”,k);
)
执行后的输出结果是( )。
查看答案
B. 5,11
31单选题31 / 43
有以下程序
#include
void fun(int*a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/
{int t,i,j;
for(i=0;i<N-1;J++)
for(j=i+l;j<N;J++)
if(a[i]
}
main()
{int c[10]={1,2,3,4,5,6,7,8,9,0),i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序运行的结果是( )。
查看答案
D. 1,2,3,4,9,8,7,6,5,0,
32单选题32 / 43
当c的值不为0时,在下列选项中不能正确将c的值赋给变量a、b的是( )。
查看答案
C. (a=c)&&(b=c);
33单选题33 / 43
相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。
查看答案
D. 冗余性
34单选题34 / 43
设变量已正确定义,则以下能正确计算f=n!的程序是( )。
查看答案
D. f=1;
for(i=n;i>=2;i--)f*=i:
35单选题35 / 43
有以下程序:
main()
{ char a='a',b;
printf("%c,",++a);
printf("%c\n",b=a++):
)
程序运行后的输出结果是( )。
查看答案
A. b,b
36单选题36 / 43
以下程序的输出结果是( )。
union myun
{ struct
{int x,y,z;)u;
int k:
}a;
main()
{ a.u.x=4;a.u.y=5;a.u.z=6;
k=0;
printf(%d\n",a.u.x);
}
查看答案
D. 0
37单选题37 / 43
若有说明语句:double*p,a;则通过scanf语句正确给输入项读人数据的程序段是( )。
查看答案
D. p=&a;scanf("%1f",p);
38单选题38 / 43
下列合法的声明语句是( )。
查看答案
A. int abc=50;
39单选题39 / 43
在Internet中,域名服务器的主要功能是实现( ) 的转换。
查看答案
B. 域名到IP地址
40单选题40 / 43
下列程序的输出的结果是( )。
main()
{ double d=3.2;int x,Y;
x=1.2;v=(x+3.8)/5.0;
printf("%d\n",d*y);
}
查看答案
C. 0
41主观题41 / 43
请补充main()函数,该函数的功能是:先以只写方式打开文件file.dat,再把字符串S中的字符保存到这个磁盘文件中。请勿改动main()函数与其他函数中的任何内容,仅在的横线上填写所需的若干表达式或语句。
注意:部分源程序给出如下。
试题程序:
#include
#include
#define N 100
void main()
{
FILE*f:
int i=0:
char ch;
char s[N]="Welcome!";
if((f=fopenl("【1】","w"))==NULL)
{
printf("cannot open file.dat\n");
exit(0);
}
while(s[i])
{
ch=s[i];
【2】 ;
putchar(ch);
i++:
}
【3】 ;
}
查看答案
【1】FilE.DAt【2】FputC(Ch,F)【3】FClosE(F)
42主观题42 / 43
下列给定程序中,函数ptoc()的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头两个元素进行排序,然后把第3个字符插入前两个字符中,插入后前3个字符依然有序;再把第4个字符插入前三个字符中,待排序的字符串已
在主函数中赋予。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#define M 80
void proc(char*arr)
{ int i,j,n;char ch;
n=strlen(arr):
for(i=1;i<N;I++)
//****found****
{ c=arr[i];
j=i-1;
while((j>=o)&&(ch<ARR[J]))
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=ch;
}
}
void main()
{
char a[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";
printf("The original string:%s\n",a);
proc(a);
printf("The string after sortin9:
%s\n\n",a);
}
查看答案
错误:C=Arr[i];正确:Ch=Arr[i];
43主观题43 / 43
规定输入的字符串中只包含字母和*号。编写函数fun(),其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为“****A*BC*DEF*G ****”,删除后,字符串中的内容应当是“ABCDEFG”。
注意:部分源程序给出如下。
请勿改动maini)函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。
试题程序:
#include
#include
void fun(char a)
{
void main()
{
char s[81];
print{("Enter a string:\n");
gets(s):
fun(S);
printf("The string after deleted:\n");
puts(s);
}
查看答案
void fun(Char*a)
{
int i,j=0;
for(i=0;a[i]!='\0';i++)
if(a[i]!='*')
a[j++]=a[i]; //若不是要删除的字符'*'则保留
a#j#='\0 ';//最后加上字符串结束符'\0'
}
← 上一卷下一卷 →