打印本文 打印本文  关闭窗口 关闭窗口  
全国计算机等级考试二级C语言模拟试题9
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 14:12:11  文章录入:杜斌  责任编辑:杜斌

答案

一、选择题(每题2分,共计70分)

1.最简单的交换排序方法是
A)快速排序 B)选择排序
C)堆排序 D)冒泡排序
A       B       C       D      
2.栈通常采用的两种存储结构是
A)线性存储结构和链表存储结构
B)散列方式和索引方式
C)链表存储结构和数组
D)线性存储结构和非线性存储结构
A       B       C       D      
3.线性表的顺序存储结构和线性表的链式存储结构分别是
A)顺序存取的存储结构、顺序存取的存储结构
B)随机存取的存储结构、顺序存取的存储结构
C)随机存取的存储结构、随机存取的存储结构
D)任意存取的存储结构、任意存取的存储结构
A       B       C       D      
4.完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是
A)黑箱测试法 B)白箱测试法
C)错误推测法 D)安装测试法
A       B       C       D      
5.在结构化设计方法中,生成的结构图(SC)中,带有箭头的连线表示
A)模块之间的调用关系 B)程序的组成成分
C)控制程序的执行顺序 D)数据的流向
A       B       C       D      

答案
6.下列选项中,不属于模块间耦合的是
A)数据耦合 B)同构耦合
C)异构耦合 D)公用耦合
A       B       C       D      
7.一个关系中属性个数为1时,称此关系为
A)对应关系 B)单一关系
C)一元关系 D)二元关系
A       B       C       D      
8.为用户与数据库系统提供接口的语言是
A)高级语言 B)数据描述语言(DDL)
C)数据操纵语言(DML) D)汇编语言
A       B       C       D      
9.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和
A)可重用性差 B)安全性差
C)非持久性 D)冗余性
A       B       C       D      
10.需求分析阶段的任务是确定
A)软件开发方法 B)软件开发工具
C)软件开发费用 D)软件系统功能
A       B       C       D      

答案
11.以下说法错误的是
A)一个算法应包含有限个步骤
B)在计算机上实现的算法是用来处理数据对象的
C)算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现
D)算法的目的是为了求解
A       B       C       D      
12.下列选项中不是结构化程序基本结构的是
A)顺序结构 B)跳转分支结构
C)选择结构 D)循环结构
A       B       C       D      
13.已知int k,m=1;执行语句k=-m++;后,k的值是
A)-1 B)0
C)1 D)2
A       B       C       D      
14.下面各选项中,均是C语言标识符的选项组是
A)33weauto B)_23me_3ew
C)_433e_ else D)ER -DF32
A       B       C       D      
15.已知int k;float m=-3;执行语句k=m%2;后,变量k的值是
A)-1 B)0
C)1 D)语句有错误
A       B       C       D      

答案
16.不能进行++和--运算的数据类型为
A)指针 B)整型
C)长整型 D)常量
A       B       C       D      
17.已知int k=10,m=3,n;则下列语句输出结果是
printf("%d\n",n=(k%m,k/m));
A)2 B)3
C)4 D)5
A       B       C       D      
18.下列程序的运行结果是
#include "stdio.h"
main()
{ int x=-9,y=5,z=8;
if(xif(y<0)z=0;
else z+=1;
printf("%d\n",z);
}
A)6 B)7
C)8 D)9
A       B       C       D      
19.以下程序的运行结果为
#include "stdio.h"
main()
{ int m,n;
for(m=0,n=10;mprintf("%d,%d\n",m,n);
}
A)6,7 B)7,6
C)9,7 D)7,9
A       B       C       D      
20.阅读下列程序,程序的输出结果是
#include "stdio.h"
main()
{
int m,n;
float k;
for(m=6;m>2;m--)
{ k=0;
for(n=m;n>1;n--)
k=k+m*n;
}
printf("%f\n",k);
}
A)5.000000 B)15.000000
C)25.000000 D)35.000000
A       B       C       D      

答案
21.下列程序的输出结果是
#include "stdio.h"
main()
{ int i,a=0,b=0;
for(i=1;i<10;i++)
{ if(i%2==0)
{ a++;
continue;
}
b++;}
printf("a=%d,b=%d",a,b);}
A)a=4,b=4 B)a=4,b=5
C)a=5,b=4 D)a=5,b=5
A       B       C       D      
22.下面对C语言的描述中,正确的是
A)函数一定有返回值,否则无法使用函数
B)C语言函数既可以嵌套定义又可以递归调用
C)在C语言中,调用函数时,只能将实参的值传递给形参
D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中
A       B       C       D      
23.阅读下面程序段,则执行后的结果为
#include "stdio.h"
main()
{ int m=4,n=2,k;
k=fun(m,n);
printf("%d\n",k);
}
fun(int m,int n)
{return(m*m*m-n*n*n);}
A)64 B)8
C)56 D)0
A       B       C       D      
24.阅读下面程序段,则执行后输出的结果是
#include "stdio.h"
main()
{ char fun(char,int);
char a=′A′;
int b=13;
a=fun(a,b);
putchar(a);
}
char fun(char a,int b)
{ char k;
k=a+b;
return k;
}
A)A B)M
C)N D)L
A       B       C       D      
25.阅读下面程序,执行后的结果为
#include "stdio.h"
void fun(int *a,int *b)
{ int k;
k=5;
*a=k;
*b=*a+k;
}
main()
{ int *a,*b,x=10,y=15;
a=&x;
b=&y;
fun(a,b);
printf("%d,%d\n",*a,*b);
}
A)10,15 B)5,15
C)5,10 D)15,10
A       B       C       D    

答案
26.阅读下面程序,在程序执行后的结果为
#include "stdio.h"
int *fun(int *a,int *b)
{ int m;
m=*a;
m+=*b-3;
return(&m);
}
main()
{ int x=21,y=35,*a=&x,*b=&y;
int *k;
k=fun(a,b);
printf("%d\n",*k);
}
A)53 B)21
C)35 D)14
A       B       C       D      
27.阅读下列程序,则运行结果为
#include "stdio.h"
fun()
{ staticint x=5;
x++;
return x;
}
main()
{ int i,x;
for(i=0;i<3;i++)
x=fun();
printf("%d\n",x);
}
A)5 B)6
C)7 D)8
A       B       C       D      
28.下列程序的输出结果是
#include "stdio.h"
#defineM(x,y)x%y
main()
{ int a,m=12,n=100;
a=M(n,m);
printf("%d\n",a--);
}
A)2 B)3
C)4 D)5
A       B       C       D      
29.阅读下面程序,则程序段的功能是
#include "stdio.h"
main()
{ int c[]={23,1,56,234,7,0,34},i,j,t;
for(i=1;i<7;i++)
{ t=c[i];j=i-1;
while(j>=0 && t>c[j])
{ c[j+1]=c[j];j--;}
c[j+1]=t;
}
for(i=0;i<7;i++)
printf("%d ",c[i]);
putchar(′\n′);
}
A)对数组元素的升序排列 B)对数组元素的降序排列
C)对数组元素的倒序排列 D)对数组元素的随机排列
A       B       C       D      
30.阅读下列程序,则在执行后,程序的运行结果为
#include "stdio.h"
#include "string.h"
main()
{ char a[30]="nice to meet you!";
strcpy(a+strlen(a)/2,"you");
printf("%s\n",a);
}
A)nice to meet you you B)nice to
C)meet you you D)nice to you
A       B       C       D   

答案
31.阅读下面程序,则执行后的结果是
#include "stdio.h"
main()
{ char str[]="tomeetme",*p;
for(p=str;pprintf("\n");
}
A)tomeetme B)tmem
C)oete D)tome
A       B       C       D      
32.下面程序的文件名为t.exe,在DOS下输入的命令行参数如下:t to meet me<回车>
则程序输出的结果是
#include "stdio.h"
main(argc,argv)
int argc;char *argv[];
{ int i;
printf("%d\n",argc);
}
A)3 B)4
C)2 D)以上答案都不正确
A       B       C       D      
33.阅读下面程序,则执行后的结果为
#include "stdio.h"
long fun(int n)
{ if(n>2)
return(fun(n-1)+fun(n-2));
else return(2);
}
main()
{ printf("%ld\n",fun(5));}
A)10 B)15
C)20 D)以上3个答案都不正确
A       B       C       D      
34.已知函数的原形如下,其中结构体a为已经定义过的结构,且有下列变量定义
struct a *f(int t1,int *t2,strcut a t3,struct a *t4)
struct a p,*p1;int i;
则正确的函数调用语句为
A)&p=f(10,&i,p,p1); B)p1=f(i++,(int *)p1,p,&p);
C)p=f(i+1,&(i+2),*p,p); D)f(i+1,&i,p,p);
A       B       C       D      
35.假定当前盘符下有两个文本文件,如下
文件名 a1.txta2.txt
内容123# 321#
则下面程序段执行后的结果为
#include "stdio.h"
void fc(FILE *p)
{ char c;
while((c=fgetc(p))!=′#′)putchar(c);
}
main()
{ FILE *fp;
fp=fopen("a1.txt","r");
fc(fp);
fclose(fp);
fp=fopen("a2.txt","r");
fc(fp);
fclose(fp);
putchar(′\n′);
}
A)123321 B)123
C)321 D)以上答案都不正确
A       B       C       D      

答案

二、填空题(每空2分,共计30分)

1.栈和队列通常采用的存储结构是 【1】 。
输入答案,中间不含空格:
2.在程序设计阶段应该采取 【2】 和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。
输入答案,中间不含空格:
3.软件结构是以 【3】 为基础而组成的一种控制层次结构。
输入答案,中间不含空格:
4.数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和 【4】 两个含义。
输入答案,中间不含空格:
5.数据库保护分为:安全性控制、 【5】 、并发性控制和数据的恢复。
输入答案,中间不含空格:

答案
6.以下程序的输出结果是 【6】 。
#include "stdio.h"
main()
{ int a=065;
printf("%d\n",--a);
}
输入答案,中间不含空格:
7.阅读下面程序,则执行后的输出结果是 【7】 。
#include "stdio.h"
main()
{ int x,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
else printf("%d",y);
printf("%d\n",z);
}
输入答案,中间不含空格:
8.阅读下面程序,则程序的执行结果为 【8】 。
#include "stdio.h"
main()
{ int a=30,b=20,z;
z=fun(a+b,a-b);
printf("%d\n",z);
}
fun(int a,int b)
{ int z;
z=a/b;
return z;
}
输入答案,中间不含空格:
9.下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。
fun(int *p,int n)
{ int *q;
int max,min;
max=min=*p;
for(q=p; 【9】 ;q++)
if( 【10】 )max=*q;
else if( 【11】 )min=*q;
}
输入答案,中间不含空格:
10.下面函数的功能是将一个字符串的内容颠倒过来,请填空。
void fun(char str[])
{ int i,j, 【12】 ;
for(i=0,j= 【13】 ;i { k=str[i];
str[i]=str[j];
str[j]=k;
}
}
输入答案,中间不含空格:

答案
11.阅读下面程序,则程序的执行结果为 【14】 。
#include "stdio.h"
fun(int k,int *p)
{ int a,b;
if(k==1||k==2)
*p=1;
else{ fun(k-1,&a);
fun(k-2,&b);
*p=a+b;
}
}
main()
{ int x;
fun(6,&x);
printf("%d\n",x);
}
输入答案,中间不含空格:
12.阅读下列程序,则程序的输出结果为 【15】 。
#include "stdio.h"
struct ty
{ int data;
char c;
};
main()
{ struct ty a={30,′x′};
fun(a);
printf("%d%c",a.data,a.c);
}
fun(struct ty b)
{ b.data=20;
b.c=′y′;
}
输入答案,中间不含空格:
打印本文 打印本文  关闭窗口 关闭窗口