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

  

一、选择题(每题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.下列叙述中,不属于结构化分析方法的是
A)面向数据流的结构化分析方法
B)面向数据结构的Jackson方法
C)面向数据结构的结构化数据系统开发方法
D)面向对象的分析方法
A       B       C       D      

6.详细设计的结果基本决定了最终程序的
A)代码的规模 B)运行速度
C)质量 D)可维护性
A       B       C       D      
7.下列不属于静态测试方法的是
A)代码检查 B)白盒法
C)静态结构分析 D)代码质量度量
A       B       C       D      
8.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是
A)多对多 B)一对一
C)多对一 D)一对多
A       B       C       D      
9.下列关系运算的叙述中,正确的是
A)投影、选择、连接是从二维表行的方向进行的运算
B)并、交、差是从二维表的列的方向来进行运算
C)投影、选择、连接是从二维表列的方向进行的运算
D)以上3种说法都不对
A       B       C       D      
10.关系数据库管理系统应能实现的专门的关系运算包括
A)排序、索引、统计 B)选择、投影、连接
C)关联、更新、排序 D)显示、打印、制表
A       B       C       D      

11.下列常数中不能作为C语言常量的是
A)0xabc B)2.5e-0.2
C)32 D)0747
A       B       C       D      
12.设int型的数据长度为2个字节,则unsigned int 类型数据的取值范围是
A)-127~128 B)0~255
C)0~65535 D)0~32768
A       B       C       D      
13.已知int t=6,s;则执行语句s=(++t)+(t++);后,s的值是
A)12 B)13
C)14 D)15
A       B       C       D      
14.已知int x=6,y=2,z;则执行表达式z=x=x>y后,变量z的值为
A)0 B)1
C)4 D)5
A       B       C       D      
15.下列说法中正确的是
A)一个C程序是从命令行开始执行的
B)C程序中有些执行语句不用分号(;)结束
C)分号不是C语句的一部分,是C语句之间的分隔符
D)命令行必须用“#”开头,最后不能加“;”号,命令行不是C程序中的语句
A       B       C       D      

16.现有以下程序段
#include
main()
{ int a,b,c;
scanf("a=%*d%d,b=%d%*d,c=%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d\n",a,b,c); }
若输出的结果为a=20,b=30,c=40,则以下能够正确输入数据的是
A)a=10 20,b=20 30,c=40
B)20,30,40
C)a=20,b=30,c=40
D)a=10 20,b=30 20,c=40
[注]: “ ”表示空格,表示回车
A       B       C       D      
17.有如下程序段
#include "stdio.h"
main()
{ int a=10,b=50,c=30;
a=a>30?1:2;
b=b>30?1:2;
c=c>30?1:2;
printf("%d,%d,%d\n",a,b,c);}
则执行结果为
A)2,1,2 B)1,2,1
C)1,1,2 D)2,1,1
A       B       C       D      
18.阅读如下程序段
#include "stdio.h"
main()
{ int a=45,b=40,c=50,d;
d=a>30?b:c;
switch(d)
{ case 30 : printf("%d,",a);
case 40 : printf("%d,",b);
case 50 : printf("%d,",c);
default : printf("#");}}
则输出的结果是
A)40,50, B)50,#
C)40,# D)40,50,#
A       B       C       D      
19.若有定义 int k=10;,则下列程序的输出结果为
do{
printf("%d",k--); } while(!k);
A)9 B)10
C)10987654321 D)没有输出
A       B       C       D      
20.阅读下列程序段,则程序的输出结果是
#include "stdio.h"
main()
{ int a=10,b=10,k;
for(k=0;a>8;b=++k)
printf("%d,%d,",a--,--b);
printf("\n");}
A)10,10,10,0, B)10,9,9,0,
C)10,10,9,1, D)9,9,9,1,
A       B       C       D   

21.下列程序的运行结果是
#include "stdio.h"
main()
{ int a,b,m;
for(a=5;a>=1;a--)
{ m=0;
for(b=a;b<=5;b++)
m=m+a*b;}
printf("%d\n",m);}
A)30 B)15
C)20 D)10
A       B       C       D      
22.阅读下面程序段
#include "stdio.h"
main()
{ char c;
c=(′z′-′a′)/2+′A′;
putchar(c);}
输出结果为
A)M B)N
C)O D)Q
A       B       C       D      
23.下列说法中不正确的是
A)C语言规定,不能在一个函数的内部再定义函数
B)在没有声明函数返回值类型的情况下,C默认的函数返回值类型为int型
C)函数的类型可以是整型、实型、字符型,但不能是指针型
D)函数可以没有形参,但函数名后的一对圆括号不能省略
A       B       C       D      
24.现有如下程序,则程序的输出结果为
#include "stdio.h"
int f(int a,int b)
{ int c;
if(a>0&&a<10)c=(a+b)/2;
else c=a*b/2;
return c;}
main()
{ int a=8,b=20,c;
c=f(a,b);
printf("%d\n",c);}
A)随机数 B)80
C)28 D)14
A       B       C       D      
25.阅读如下程序段,则程序段的执行后的输出结果为
#include "stdio.h"
main()
{ char c;
int i;
char count();
int p(char);
for(i=0;i<30;i++)c=count();
p(c);}
char count()
{ char str=′A′;
str+=1;
return(str);}
p(char c)
{ putchar(c);
putchar(′\n′);}
A)A B)B
C)a D)b
A       B       C       D      

26.阅读如下程序段,则执行后的结果为
#include "stdio.h"
main()
{ int a,*p,*q,**w;
p=&a;
q=&a;
w=&p;
*p=5%6;
*q=5;
**w=3;
printf("%d\n",a);}
A)无确定值 B)1
C)5 D)3
A       B       C       D      
27.现有下列程序段
#include "stdio.h"
void JFT(int *a,int *b,int *c,int *d,int *e)
{ int i,j,k,m;
for(i=0;i<*a;i++)
for(j=0;j<*b;j++)
for(k=0;k<*c;k++)
for(m=0;m<*d;m++)*e++;}
main()
{ int a=10,b=10,c=10,d=10,e=0;
JFT(&a,&b,&c,&d,&e);
printf("%d\n",e);}
则程序段的输出结果是
A)10000 B)1000
C)10001 D)0
A       B       C       D      
28.以下能对二维数组c进行正确的初始化的语句是
A)int c[3][]={{3},{3},{4}};
B)int c[][3]={{3},{3},{4}};
C)int c[3][2]={{3},{3},{4},{5}};
D)int c[][3]={{3},{},{3}};
A       B       C       D      
29.阅读下列程序段,则程序段实现的功能是
#include "stdio.h"
main()
{ int k[10];
int j;
for(j=0;j<10;j++)
scanf("%d",&k[j]);
for(j=9;j>=0;j--)
printf("%d,",k[j]);}
A)输入10个数据的顺序输入并输出
B)输入10个数据的逆序存放
C)输入10个数据的逆序输出
D)以上叙述均错误
A       B       C       D      
30.阅读程序,则执行后的结果为
#include "stdio.h"
main()
{ int i,m,n;
for(i=0;i<3;i++)
{ m=test1();
n=test2();}
printf("%d,%d\n",m,n);}
test1()
{ int x=0;
x++;
return x;}
test2()
{ static int x=0;
x++;
return x;}
A)1,1 B)1,3
C)3,1 D)3,3
A       B       C       D      

31.阅读下面程序,则程序的输出结果为
#include "stdio.h"
main()
{ int c[]={1,2,3,4,5,6};
int *p;
p=c;
printf("%d,",*p);
printf("%d\n",*++p);}
A)1,2 B)2,1
C)1,1 D)2,2
A       B       C       D      
32.阅读如下程序段,则程序在先后输入love和china后,输出结果是
#include
#include
main()
{ char a[30],b[30];
int k;
gets(a);
gets(b);
k=strcmp(a,b);
if(k>0)puts(a);
else if(k<0)puts(b);}
A)love B)china
C)lovechina D)没有输出结果
A       B       C       D      
33.阅读下面程序,则执行后的结果为
#include "stdio.h"
#include "string.h"
#define N 10
#define M 10
char *find(char (*a)[M],int n)
{ char *q; int i;
q=a[0];
for(i=0;iif(strcmp(a[i],q)<0)q=a[i];
return q;}
main()
{ char s[N][M]={"tomeetme","you","and","he","china"};
char *p;
int n=5,i;
p=find(s,n);
puts(p);}
A)he B)and
C)you D)tomeetme
A       B       C       D      
34.若有以下程序段,则选项中值为2的是
struct a{int n,*next;};
int x=1,y=2,z=3;
struct a s[3],*p=s;
s[0].next=&x;s[1].next=&y;s[2].next=&2;
A)*(p++)->next B)*(++p)->next
C)(*p).next D)(p++)->next
A       B       C       D      
35.阅读下面程序,此程序的功能为
#include "stdio.h"
main(int argc,char *argv[])
{ FILE *p1,*p2;
int c;
p1=fopen(argv[1],"r");
p2=fopen(argv[2],"a");
c=fseek(p2,0L,2);
while((c=fgetc(p1))!=EOF)fputc(c,p2);
fclose(p1);
fclose(p2);}
A)实现将p1打开的文件中的内容复制到p2打开的文件
B)实现将p2打开的文件中的内容复制到p1打开的文件
C)实现将p1打开的文件中的内容追加到p2打开的文件内容之后
D)实现将p2打开的文件中的内容追加到p1打开的文件内容之后
A       B       C       D      

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

1.用链表表示线性表的突出优点是 【1】 。
输入答案,中间不含空格:
2.子程序通常分为两类: 【2】 和函数,前者是命令的抽象,后者是为了求值。
输入答案,中间不含空格:
3.软件的 【3】 设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。
输入答案,中间不含空格:
4.对软件是否能达到用户所期望的要求的测试称为 【4】 。
输入答案,中间不含空格:
5.实体之间的联系可以归结为一对一联系、一对多(或多对多)的联系与多对多联系。如果一个学校有许多教师,而一个教师只归属于一个学校,则实体集学校与实体集教师之间的联系属于 【5】 的联系。
输入答案,中间不含空格:

6.阅读下面的程序,当程序在执行时,如果输入的是′A′,则输出结果为 【6】 。
#include "stdio.h"
main()
{ char a;
a=getchar();
switch(a)
{ case 65: printf("%c",′A′);
case 66: printf("%c",′B′);
default :printf("%s\n","other");}}
输入答案,中间不含空格:
7.阅读下面程序段,则执行后的输出结果为 【7】 。
#include "stdio.h"
main()
{ int a=1;
for(;a<=15;)
if(++a%5!=2)continue;
else printf("%d",a);
printf("\n");}
输入答案,中间不含空格:
8.阅读下列程序,则执行后的结果为 【8】 。
#include "stdio.h"
fun(int x,int y)
{ int z;
z=x;x=y;y=z;}
main()
{ int a,b;
a=100;b=640;
fun(a,b);
printf("%d,%d\n",a,b);}
输入答案,中间不含空格:
9.阅读以下程序,使程序输出结果为30,4.000000,请填空。
#include "stdio.h"
main()
{ int a=30,b=40,c;
double 【9】 ,s;
s=fun(&a,&b,&c);
printf("%d,%lf\n",c,s);}
double fun(int *a,int *b, 【10】 )
{ *c=*a%*b;
return(4.0); }
输入答案,中间不含空格:
10.下面程序段的功能是从键盘上输入两个字符串,对两个字符串分别排序;然后将它们合并,合并后的字符串按ASCII码值从小到大排序,并删去相同的字符。请填空。
#include "stdio.h"
fun(char *x,char *y,char *z)
{ char t,*p;
p=z;
while(*x!=′\0′&&*y!=′\0′)
{ t=*x<*y?*x++:*y<*x?*y++: 【11】 ;
if(*p==′\0′)*p=t;
else if(t!=*p)*++p=t;}
if(*x!=′\0′)
while(*x!=′\0′)
if(*x!=*p)*++p=*x++;
else x++;
if(*y!=′\0′)while(*y!=′\0′)
if(*y!=*p)*++p=*y++;
else y++;
*++p=【12】;}
sort(char *s)
{ int i,j,k;
char t,*p;
p=s;
for(k=0;*p!=′\0′;k++)p++;
for(i=0;i for(j=i+1;j if(s[i]>s[j])
{【13】}}
main()
{ char s1[100],s2[100],s3[200];
scanf("%s",s1);
scanf("%s",s2);
sort(s1);
sort(s2);
s3[0]=′\0′;
fun(s1,s2,s3);
printf("%s\n",s3);}
输入答案,中间不含空格:

11.以下函数set用来建立一个带头结点的单向链表,新产生的结点总是插入在链表的末尾。单向链表的头指针作为函数值返回,请填空。
struct node{ char data;
struct node *next; };
struct node *set()
{ struct node *t1,*t2,*t3;
char ch;
t1=(struct node*)malloc(sizeof(struct node));
t3=t2=t1;
ch=getchar();
while(ch!=′\n′)
{ t2= 【14】 malloc(sizeof(struct node));
t2->data=ch;
t3->next=t2;
t3=t2;
ch=getchar();}
t3->next=′\0′ ;
【15】 }
输入答案,中间不含空格:
打印本文 打印本文  关闭窗口 关闭窗口