计算机类二级C

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

43 题含答案C
共 43 题返回本类
1单选题1 / 43
下列选项中,均属于通用软件的是( )。
查看答案
C. Word、Photoshop、Excel
2单选题2 / 43
一些重要的程序设计语言(in C语言和Pascal语言) 允许过程的递归调用,而实现递归调用中的存储分配通常用( )。
查看答案
A. 栈
3单选题3 / 43
以下程序输出结果是( )。
main()
{ int m=5;
if(m++>5)printf("%d\n",m):
else printf("%d\n",m--);
}
查看答案
B. 6
4单选题4 / 43
有下列程序:
#include
main()
{ int a=6,b=7,m=1;
switch(a%2)
{ case 0:m++;break;
case 1:m++;
switch(b%2)
{ default:m++;
case 0:m++;break;
}
}
printf("%d\n",m);
}
程序的运行结果是( )。
查看答案
B. 2
5单选题5 / 43
有以下程序
#include
#include
typedef strlIct{char name[9];char sex;float score[2];}STU;
STU f(STU a)
{ STU b={"Zhao",'m',85.0,90.0);int i;
strcpy(a name,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
return a;
}
main()
{STU c="Qian",'f',95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的运行结果是( )。
查看答案
C. Zhao,m,85,90
6单选题6 / 43
下列程序的输出结果是( )。
int fl(int x,int y){return x>y?x:y;)
int f2(int x,int y){return x>y?y:x;}
main()
{ int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);}
查看答案
A. 4,3,7
8单选题8 / 43
以下程序的输出结果是( )。
void prt(int*m.int n)
{int i;
for(i=0;i<N;I++)M[I]++;)
main()
{ int a[]={1,2,3,4,5),i;
prt(a,5);
for(i=0;i<5;i++)
printf("%d,",a[i]);)
查看答案
B. 2,3,4,5,6
9单选题9 / 43
下列程序的输出结果是( )。
main()
{ int p[8]={11,12,13,14,15,16,17,18},i=0,j =0;
while(i++<7)
if(p[i]%2)j+=p[i];
printf("%d\n",j);
}
查看答案
B. 45
10单选题10 / 43
下列程序的运行结果是( )。
#include
void main()
{int s=0,k;
for(k=7;k>1;k--)
{switch(k)
{case 1:
case 4:
case 7:
s++:
break;
case 2:
case 3:
case 6:break;
case 0:
case 5:
s+=2:
break;
}}
printf("s=%d",s);
}
查看答案
B. s=4
11单选题11 / 43
下列说法不正确的是( )。
查看答案
B. 调用函数时,实参与形参可以共用内存单元
12单选题12 / 43
有以下程序
#include
#include
void fun(char s[][10],int n)
{
char t;int i,j;
for(i=0;i<N-1;J++)
for(j=i+1,j<N;J++)
/*比较字符串的首字符大小,并交换字符串的首字符*/
if(s[0])>s[i][c]{t=s[i][o];s[i][o]=s[j][o];s [j][0]=t;}
}
main()
{ char ss[5][10]="bcc","bbcc","xy","aaaacc"," aabcc"}
fun(ss,5);printf("%s,%s",ss[0],ss[4]);
}
程序运行结果是( )。
查看答案
D. acc,xabcc
13单选题13 / 43
链表不具有的特点是( )。
查看答案
B. 可随机访问任意元素
14单选题14 / 43
有以下计算公式
  
若程序前面已在命令中包含math.h文件,不能够正确
计算上述公式的程序段是( )。
查看答案
B. y=sqrt(x)
if(x<0)y=sqrt(0x);
15单选题15 / 43
标准库函数fgets(s,n,file)的功能是( )。
查看答案
B. 从文件file中读取长度不超过n-1个字符的字符放到字符数组S中
16单选题16 / 43
下述程序的输出结果是( )。
#include
main()
{ int i;
for(i=l;i<=10;i++)
{ if(i*i>=20)&&(i*i<=100))
break;
}
printf("%d\n",i*i);
}
查看答案
C. 25
17单选题17 / 43
下列关于定点数与浮点数的叙述中错误自是( )。
查看答案
C. 实数的补码是其对应的反码在最后一位加1
18单选题18 / 43
若有下列定义和语句:
int u=011,v=0x11,w=11;
printf("%o,%x,%d\n",u,v,w);
则输出结果是( )。
查看答案
C. 11,11,11
19单选题19 / 43
在执行完下列的c语句段之后,则B的值是( )。
char a='A';
int b;
B=((34&&56)&&(a<'b'));
查看答案
B. 1
20单选题20 / 43
设有下列程序段:
char str[]="HelloWorld":
char* plr;
ptr=str:
执行上面的程序段后,*(ptr+10)的值为( )。
查看答案
A. '\0 '
21单选题21 / 43
在“文件包含”预处理语句的使用形式中,当#include后面的文件名用(双引号)括起时,寻找被包含文件的方式是( )。
查看答案
B. 先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索
22单选题22 / 43
以下关于字符串的叙述中正确的是( )。
查看答案
D. 空串一定比空格打头的字符串小
23单选题23 / 43
对两个数组a和b进行下列初始化:
char m[]="1234567";
char n[]={'1','2','3','4','5','6','7'};
则下列叙述正确的是( )。
查看答案
C. 数组m比数组n长1
24单选题24 / 43
下面程序的运行结果是( )。
#inelude
void del(char*s)
{ int i,j;
char*a;
a=s:
for(i=0,j=0;a[i]!='\0';i++)
{ if(a[i]>='0'&&a[i]<='9')
{s[j]=a[i];
j++;
}
s[j]='\0';
}
}
main()
{ char*s="aa89gggh";
del(s):
printf("\n%s",s);
}
查看答案
D. 4
25单选题25 / 43
设有程序段:
int k=12:
while(k=1)k=k一1;
则下列描述中正确的是( )。
查看答案
C. 循环体语句一次也不执行
26单选题26 / 43
有下列程序:
#include
main()
{ int x=0;
int y=0;
while(x<7 &&++v)
{ y--;
x++;}
printf("%d,%d",y,x);
}
程序的输出结果是( )。
查看答案
A. 0,7
27单选题27 / 43
有以下程序:
#include
main()
{ char p[20]={'a','b','c','d'),q[]="abc",r[]="
abcde";
strcpy(p+strlen(q),r);strcat(p,q);
printf("%d%d\n",sizeof(p),strlen(p));
}
程序运行后的输出结果是( )。
查看答案
C. 20 11
28单选题28 / 43
下列程序的输出结果是( )。
main()
{ int a=6,b=3,C;
if(a<B)
{c=a*b;printf("%d%d,%d\n",b,a,c);)
else
{c=b/a;printf("%d,%d,%d\n",b,a,c);)
}
查看答案
B. 3,6,2
29单选题29 / 43
设j为Int型变量,则下面for循环语句的执行结果是( )。
for(j=10;j>3;j--)
{ if(j%3)j--;
--j;--j;
printf("%d",j);
}
查看答案
B. 7 4
30单选题30 / 43
运行下列程序,若从键盘输入字符“a”,则输出结果是( )。
char c;
c=getchar();
if(c>='a'&&c<='g')c=c+4:
else if(c>='9'&&c<='2')c=c-21:
else printf("input error! \n");
putchar(c);
查看答案
C. e
31单选题31 / 43
设有如图所示二叉树,对此二叉树后序遍历的结果为( )。
  
查看答案
A. ZBTYCPXA
32单选题32 / 43
以下程序的输出结果是( )。
main()
{ char ch[3][4]={"123","456","78"),*p[3];int i;
for(i=0;i<3;i++)p[i]=ch[i];
for(i=0;i<3;i++)printf("%s",p[i]);}
查看答案
B. 123 456 780
33单选题33 / 43
下列程序的运行结果是( )。
int y=5,x=14;
y=((x=3*Y,x+1),x-1);
printf("x=%d,y=%d",x,y);
查看答案
C. x=15,y=14
34单选题34 / 43
有以下程序,其中函数f的功能是将多个字符串按字典顺序排序( )。
#include
void f(char*p[],int n)
{ char*t;int i,j;
for(i=0;i<N-1;I++)
for(j=i+1;j<N;J++)
if(strcmp(p[i],p[j]>0){t=p[i];p[i]=p[j];p[j]
=t;}
}
main()
{ char *P[5]={"abe","aabdfg","abbd","dcd-
be","cd"};
f(p,5);
printf("%d\n",strlen(p[1]));
}
程序运行后的输出结果是( )o
查看答案
D. 4
36单选题36 / 43
以下程序的输出结果是( )。
main()
{ int i=0,S=0;
for(;;)
{
if(i==3 ||i==5)continue;
if(i==6)break;
i++;
s+=i:
};
printf("%d\n",s);
}
查看答案
D. 程序陷入死循环
38单选题38 / 43
下列叙述正确的是( )。
查看答案
D. 当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
39单选题39 / 43
三种基本结构中,能简化大量程序代码的是( )。
查看答案
D. 重复结构
40单选题40 / 43
现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指定一个链表中连续的3个结点。
  
struct node
{bar data;
struct node*next;}*p,*q,*r;
现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是( )。
查看答案
D. q->next=q;P->next=r;q->next=r-> next;
41主观题41 / 43
给定程序的功能是将n个人员的考试成绩进行分段统计,考试成绩放在a数组中,各分段的人数存到b数组中:成绩为60~69的人数存到b[0]中,成绩为70~79的人数存到b[1]中,成绩为80~89的人数存到b[2]中,成绩为90~99的人数存到b[3]中,成绩为100的人数存到b[4]中,成绩为60分以下的人数存到b[5]中。
例如,当a数组中的数据是:93、85、77、68、59、43、94、75、98,调用该函数后,b数组中存放的数据应是:1、2、1、3、0、2。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在横线上填入所编写的若于表达式或语句。
试题程序:
#includedstdi0.h>
void fun(int a[],int b[],int n)
{
int i;
for(i=0;i<6;I++)
b[i]=0;
for(i=0:i<【1】 ;i++)
if(a[i]<60)
b[5]++;
【2】
b[(a[i]一60)/10]++;
}
void main()
{
int i,a[100]={93,85,77,68,59,43,94,75,98),b[6];
fun(【3】 ,9);
printf("the result is:");
for(i=0;i<6;i++)
printf("%d",b[i]);
printf("\n,");
}
查看答案
 【1】n
 【2】ElsE
 【3】A,B
42主观题42 / 43
下列给定程序中,函数proc()的功能是:根据输入的:个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回l;若不能,则返回0。
例如,输入3个边长为3,4,5,实际输入时,数与数之间以Enter键分隔而不是逗号。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
int proc(int a,int b,int c)
{
if(a+b>c&&b-c>a&&a+c>b)
{
if(a==b&&b==c)
//****found****
return 1;
else if(a==b|| b==C||a==c)
return 2;
//****found****
else return 3;
}
else return 0;
}
void main()
{
int a,b,c,shape;
printf("\nInput a,b,c:");
scanf("%d%d%d",&a,&b,&c);
printf("\na=%d.b=%d,c=%d\n",a,b,c);
shape=proc(a,b.c):
printf("\n\nThe shape:%d\n",shape);
}
查看答案
(1)错误:rEturn 1;正确:rEturn 3;
(2)错误:rEturn 3;正确:rEturn 1;
43主观题43 / 43
请编一个函数fun(oh lr*str),该函数的功能是把字符串中的内容逆置。
例如,字符串中原有的字符串为asdf9,则调用该函数后,串中的内容为9fdsa。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。
试题程序:
#include
#include
#include
#define N 100
void fun(char * str)
{
}
void main()
{
char a[N];
FILE*out:
printf("Enter a string:");
gets(a);
printf("The origir al string is:");
puts(a);
fun(a):
printf("The string after modified:");
puts(a);
strcpy(a,"Welcome!");
fun(a);
out=fopen("outfile.dat","w");
fprintf(out,"%s".a);
fclose(out);
}
查看答案
ChAr Ch;
int i,m,n;
i=0:
m=n=strlEn(str)-1; //求字符串str长度
whilE(i<(n+1)/2) //循环逆置交换
{
Ch=str[i];
str[i]=str[m];
str[m]=Ch:
i++;
m--;
}
← 上一卷下一卷 →