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

时长:120分钟 总分:100分

78浏览 0人已完成答题

题型介绍
题型 单选题 简答题
数量 40 3
一、选择题(每小题1分,共40分)
1.
下列选项中不属于软件生命周期开发阶段任务的是( )。
问题详情




2.
以下程序的输出结果是( )。
main()
{ char st[20]="hello\0\t\\\";
printf("%d%d\n",strlen(st).sizeof(st));
}
问题详情




3.
若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为( )。
cb='b';
k=10;
printf("%X,%o,”,ch,ch,k);
printf("k=%%d\n",k);
问题详情




4.
若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )。
问题详情




5.
数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
问题详情




6.
下列选项中不会引起二义性的宏定义是( )。
问题详情




7.
在数据库设计中,将E—R图转换为关系模式的过程属于( )。
问题详情




8.
设有如下关系表:
  
则下列操作中正确的是( )。
问题详情




9.
源程序的文档不包括( )。
问题详情




10.
下列程序的运行结果是( )。
#include
main()
{ int a=2,b=3,c=4:
if(a<B)
if(b<0)C=0:
else c++;
printf("%d\n",c);
}
问题详情




11.
若希望下列的程序运行后输出25,程序空白处的正确选项是( )。
main()
{ int i,j=50,a[]={7,4,10,5,8};
for( )
j+=a[i];
printf("%d",j-40);
}
问题详情




12.
若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是( )。
问题详情




13.
若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以( )方式打开文件。
问题详情




14.
有以下程序:
#include
main( )
{ char cl='1',c2='2';
cl=getchar( );c2=getchar( );putchar(c1);putcha:
(c2);
}
当程序运行时输入a<回车>后,下列叙述中正确的是( )。
问题详情




15.
若有以下说明,则( )不是对strcpy库函数正确的调用。
strcpy库函数用于复制一个字符串:char*strl="abCd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";
问题详情




16.
设有以下定义和语句:
char str[2O]="Program",*P:
p=str:
则以下叙述中正确的是( )。
问题详情




17.
若有下列定义,则对a数组元素地址的正确引用是( )。
int a[5],*p=a;
问题详情




18.
以下关于typedef的叙述错误的是( )。
问题详情




19.
下述程序的输出结果是( )。
#define N 20
void fun(int a[],int n,int m)
{ int i,j;
for(i=m;i>n;i--)a[i+1]=a[i];
}
main( )
{ int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)printf("%d",a[i]);
}
问题详情




20.
有以下函数
int aaa(char*s)
{char*t=s;
while(*t+t);
t--:
return(t-s);
}
以下关于aaa函数的功能叙述正确的是( )。
问题详情




21.
有如下程序:
#include
main()
{ FILE*fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abe");
fclose(fp1);
}
若文本文件f1.txt中原有内容为:good。则运行以上程序后文件f1.txt中的内容为( )。
问题详情




22.
设计软件结构是软件生命周期的( )。
问题详情




23.
为了避免在嵌套的条件语句if else中产生二义性,C语言规定,else子句总是与( )配对。
问题详情




24.
设x=011050,则x=x&01252的值是( )。
问题详情




25.
有下列程序:
fun(int X,int y){return(x+y);}
main()
{ int a=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
执行后的输出结果是( )。
问题详情




26.
设“int x=2,y=1;”,则表达式(!x|| Y--)的值是( )。
问题详情




27.
下列叙述中错误的是( )。
问题详情




28.
有下列程序:
main()
{ char*p[]={"3697","2584"};
int i,j;long num=0;
for(i=0;i<2:i++)
{ j=0;
while(p[i][j]!='\0')
{ if((p[i][j]-'\0 ')%2)num=1O*num+p
[j][j]-'0';
j+=2;
}
}
printf("%d\n",num);
}
程序执行后的输m结果是( )。
问题详情




29.
有以下程序
#include
void fun(int n,int*p)
( int f1,f2;
if(n==1|| n==2)*p=1;
else
{ fun(n-1,&f1);fun(n-2,&f2);
*p=f1+f2;
}
}
main()
{ int s;
fun(3,&s);printf("%d",s);
}
程序的运行结果是( )。
问题详情




30.
以三级模式为框架形成的3种数据库中,真实存在于计算机外存的数据库是( )。
问题详情




31.
下列能正确定义且赋初值的语句是( )。
问题详情




32.
以下程序的输出结果是( )。
void fun(int*a,int i,int i)
{int t;
if(i<I)
{ t=a[i[;a[i]=a[j];a[j]一t;
i++;j--;
fun(a,i,j);
}
}
main()
{ int K[]={2,6,1,8},i;
fun(x,0,3);
for(i=0;i<1;i++)printf("%2d",x[i]);
printf("\n");
}
问题详情




33.
下列工具中为需求分析常用工具的是( )。
问题详情




34.
以下程序的输出结果是( )。
main()
{char str[]1-10]={"china","beijing"),*p=str;
printf("%s\n",p+10);
}
问题详情




35.
关系数据库管理系统能实现的专门关系运算包括( )。
问题详情




36.
下列程序中函数sort( )的功能是对数组a中的数据进行由大到小的排序。
#include
void sort(int a[],int ll)
{ int i,j,t;
for(i=0;i<N-1;I++)
for(j=j+1+1;j<N;J++)
if(a[i]<A[J])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main( )
{ int a[10]一{1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i=0;i<10;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是( )。
问题详情




37.
以下程序的输出结果是( )。
int f(int A)
{ return a%2; }
main()
{int s[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[8]);i++)d+=s[i];
printf("%d\n",d);
}
问题详情




38.
下列程序的执行结果是( )。
#include
main()
{ int a,b,c;
a=b=2,c=I;
c=(a++)-1;printf("%d,0Ad",a,c);
c+=-a+++(++b);printf("%d,%d",a,c);
)
问题详情




39.
若有定义:“int*P,x=0,*p,p=&x;”,则语句“printf("%d\n",*p);”的输出结果是( )。
问题详情




40.
对下述程序的判断中,正确的是( )。
#include
main( )
{ char*p,s[256];
p=s ;
while(strcmp(s,"the end"))
{ printf("Input the strin9:");
gets(s);
while(*p)
putchar(*p++);
}}
问题详情




二、程序填空题(共18分)
41.
请补充main()函数,该函数的功能是:从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。结果仍然保存在原串中。
例如,输入“abcdefg”,指定字符为“d”,则输出“abe”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#define M 80
void main()
{
int i=0;
char str[M];
char ch;
system("CLS");
printf("\n Input a strin9:\n");
gets(str);
printf("\n Input a charator;\n");
scanf("%c",&ch);
while(str[i]!='\0')
{
if(str[i]==ch)
【1】
【2】 ;
}
str[i]=【3】 ;
printf("\n***display string***\n");
puts(str);
}
问题详情
三、程序改错题(共24分)
42.
下列给定程序的功能是:读入一个整数n(2<=n<= 5000),打印它的所有为素数的因子。例如,若输入整数1234,则应输出:2,617。
请修改程序中的错误,使程序能得出正确的结果。
注意:不要改动main()函数,不能增选或删行,也不能匿改程序的结构。
试题程序:
#include
#include
//****found****
Prime(int m);
{
int j,P;
p=1;
//****found****
for(j=2;j<M;J++)
if!(m%j)
{
p=0;
break;
}
return(p);
int i,n;
printf("\nplease enter an integer number between2
and 5000:");
scanf("%d",&n);
printf("\n\nThe prime factor(s)of%d is(are):",n):
for(i=2;i<N;I4+)
if((!(n%i))&&(Prime(i)))
printf("%4d,",i);
printf("\n");
}
问题详情
四、程序设计题(共18分)
43.
请编写函数proc(),该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
例如,若字符串数组中的M个字符串为:
ABCD
BCDEFG
CDEFGHI
则合并后的字符串内容应该是ABCDBCDEFGCDEF—GHl。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。
试题程序:
#include
#include
#define M 3
#define N 20
void proc(char arr[M][N],char*b)
{
}
void main()
{
char str[M][N]={"ABCD","BCDEFG","
CDEFGHI"},i;
char arr[100]={"#############
#####");
printf("The string:\n");
for(i=0;i<M;I++)
puts(str[i]);
printf("\n");
proc(str,arr);
printf("The A string:\n");
printf("%s",arr);
printf("\n\n");
}
问题详情