计算机类二级C

2009年3月全国计算机等级考试二级笔试试卷(C语言程序设计)

55 题含答案C
共 55 题返回本类
1单选题1 / 55
下列叙述中正确的是
查看答案
D. 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
4单选题4 / 55
下列排序方法中,最坏情况下比较次数最少的是
查看答案
D. 堆排序
5单选题5 / 55
软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件),下面属于应用软件的是
查看答案
C. 教务管理系统
6单选题6 / 55
下面叙述中错误的是
查看答案
A. 软件测试的目的是发现错误并改正错误
7单选题7 / 55
耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是
查看答案
B. 降低耦合性提高内聚性有利益提高模块的独立性
8单选题8 / 55
数据库应用系统中的核心问题是
查看答案
A. 数据库设计
9单选题9 / 55
有两个关系R、S如下:
       
有关系R通过运算得到关系S,则所使用的运算为
查看答案
B. 投影
12单选题12 / 55
若函数中有定义语句:int k;,则
查看答案
B. 这时k中的值无定义
14单选题14 / 55
设有定义:int x=2;,以下表达式中,值不为6的是
查看答案
D. 2*x,x+=2
15单选题15 / 55
程序段:int x=12;double y=3.141593;printf(“%d%8.6f”,x,y);的输出结果是:
查看答案
A. 123.141593
16单选题16 / 55
若有定义语句:double x,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是
查看答案
C. scanf(“%1f%1e”,px,py);
17单选题17 / 55
以下是if语句的基本形式:if(表达式) 语句其中“表达式”
查看答案
D. 可以是任意合法的表达式
18单选题18 / 55
有以下程序
#include <stdio.h>
main()
{ int  x;
scanf(“%d”,&x);
if(x<=3) ; else
if(x!=10) printf(“%d\n”,x);
}
程序运行时,输入的值在哪个范围才会有输出结果
查看答案
B. 大于3且不等于10的整数
19单选题19 / 55
有以下程序
#include <stdio.h>
main()
{ int a=1,b=2,c=3,d=0;
if (a==1 && b++==2)
if (b!=2||c==!=3)
printf(“%d,%d,%d\n”,a,b,c);
else  printf(“%d,%d,%d\n”,a,b,c);
else  printf(“%d,%d,%d\n”,a,b,c);
}
程序运行后输出的结果是
查看答案
C. 1,3,3
20单选题20 / 55
以下程序段中的变量已正确定义
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);printf(“*”);
程序段输出的结果是
查看答案
D. *
21单选题21 / 55
有以下程序
#include <stdio.h>
main()
{  char  *s={“ABC”};
do
{ printf(“%d”,*s%10); s++;
}while(*s);
}
注意:字母A的ASCⅡ码值为65。程序运行后的输出结果是
查看答案
C. 567
22单选题22 / 55
设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是
查看答案
D. n=0;for(ch=getchar();ch!=‘\n’;n++);
23单选题23 / 55
有以下程序
#include <stdio.h>
main()
{  int  a1,a2; char c1,c2;
scanf(“%d%c%c”,&a1,&c1,&a2,&c2);
printf(%d,%c,%d,%c,a1,c1,a2,c2);
}
若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出的结果是:12,a,34,b则正确的输入格式是(以下︿代表空格,<CR>代表回车)
查看答案
A. 12a34b<CR>
24单选题24 / 55
有以下程序
#include <stdio.h>
int f(int x,int y)
{ return((y-x)*x);}
main()
{ int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf(“%d\n”,d);
}
程序运行后的输出结果是
查看答案
B. 9
25单选题25 / 55
有以下程序
#include <stdio.h>
void fun(char *s)
{  while (*s)
{ if(*s%2==0) printf(“%c”,*s);
s++
}
}
注意:字母a的ASCⅡ码值为97,程序运行后的输出结果是
查看答案
A. d
26单选题26 / 55
有以下程序
#include <stdio.h>
void fun( int *a,int *b)
{ int *c;
c=a;a=b;b=c;
}
main()
{ int x=3, y=5, *p=&x, *q=&y ;
fun(p,q); printf(“%d,%d,”,*P,*q);
fun(&x,&y);printf(“%d,%d\n”,*p,*q);
}
程序运行后输出的结果是
查看答案
B. 3,5,3,5
27单选题27 / 55
有以下程序
#include <stdio.h>
void f(int *P,int *q);
main()
{  int m=1,n=2,*r=&m;
f(r, &n); printf(“%d,%d”,m,n);
}
void f(int *P,int *q)
{p=p+1; *q=*q+1;}
程序运行后的输出结果是
查看答案
A. 1,3
28单选题28 / 55
以下函数按每行8个输出数组中的数据
void fun( int *w, int n)
{  int i;
for(i=0;i<n;i++)
{  _______
printf(“%d”,w[i]);
}
printf(“\n”);
}
下列划线处应填入的语句是
查看答案
C. if(i%8==0)printf(“\n”);
29单选题29 / 55
若有以下定义
int  x[10], *pt=x;
则对x数组元素的正确引用是
查看答案
B. *(x+3)
30单选题30 / 55
设有定义:char  s[81]; int  i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是
查看答案
C. scanf(“%s”,s);
31单选题31 / 55
有以下程序
#include <stdio.h>
main()
{  char  *a[ ]={“abcd”,“ef”,“gh”,“ijk”};  int i;
for(i=0;i<4;i++) printf(“%c”,*a[i]);
}
程序运行后输出的结果是
查看答案
A. aegi
32单选题32 / 55
以下选项中正确的语句组是
查看答案
D. char  *s;s=“BOOK!”;
33单选题33 / 55
有以下程序
#include <stdio.h>
int fun(int x,int y)
{ if(x==y) return(x);
else return((x+y)/2);
}
main()
{ int  a=4,b=5,c=6;
printf(“%d\n”,fun(2*a,fun(b,c)));
}
程序运行后输出的结果是
查看答案
B. 6
34单选题34 / 55
设函数中有整形变量n,为保证其在未赋初值的情况下初值为0,应选择的存储类别是
查看答案
C. static
35单选题35 / 55
有以下程序
#include <stdio.h>
int  b=2;
int  fun(int *k )
{  b=*k+b;  return (b); }
main()
{  int a[10]={1,2,3,4,5,6,7,8},i;
for(i=2;i<4;i++) {b=fun(&a[i])+b; printf{“%d”,b);}
printf(“\n”);
}
程序运行后的输出结果是
查看答案
C. 10  28
36单选题36 / 55
有以下程序
#include <stdio.h>
#define  PT  3.5;
#define  S(x)  PT*x*x;
main()
{  int  a=1,b=2;  printf(“%4.1f\n”,S(a+b)); }
程序运行后输出的结果是
查看答案
D. 程序有错无输出结果
37单选题37 / 55
有以下程序
#include <stdio.h>
struct ord
{  int x ,y;} dt[2]={1,2,3,4};
main()
{  struct  ord  *p=dt;
printf(“%d,”,++p->x);  printf(“%d\n”,++p->y);
}
程序的运行结果是
查看答案
B. 2,3
38单选题38 / 55
设有宏定义:#define  IsDIV(k,n)    ((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&& IsDIV(m,7)为真时所要表达的是
查看答案
D. 判断m被5和7整除是否都余1
39单选题39 / 55
有以下程序
#include <stdio.h>
main()
{  int a=5,b=1,t;
t=(a<<2)|b;  printf(“%d\n”,t);
}
程序运行后输出的结果是
查看答案
A. 21
40单选题40 / 55
有以下程序
#include <stdio.h>
main()
{  FILE  *f;
f=fopen(“filea.txt”,“w”);
fprintf(f,“abc”);
fclose(f);
}
若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea,txt中的内容为
查看答案
C. abc
41填空题41 / 55
假设用一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有【1】__个元素。
查看答案
19
43填空题43 / 55
符合结构化原则的三种基本控制结构是:选择结构、循环结构和【3】__。
查看答案
顺序结构
45填空题45 / 55
在E-R图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是【5】__框。
查看答案
菱形
47填空题47 / 55
若变量x,y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(【7】__,x/y);补充完整,使其输出的计算结果形式为:x/y=11。
查看答案
“x/y=%d”
48填空题48 / 55
有以下程序
#include <stdio.h>
main()
{  char c1,c2;
scanf(“%c”,&c1);
while(c1<65||c1>90)  scanf(“%c”,&c1);
c2=c1+32;
printf(“%c,%c\n”,c1,c2);
}
程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能)【8】__。
查看答案
不能
49填空题49 / 55
以下程序的输出结果是【9】__。
#include <stdio.h>
main()
{  int  k=1,s=0;
do{
if((k%2)!=0) continue;
s+=k; k++;
}while(k>10);
printf(“s=%d\n”,s);
}
查看答案
s=0
50填空题50 / 55
下列程序运行时,若输入1abcedf2df<回车>  输出结果为【10】__。
#include <stdio.h>
main()
{ char a=0,ch;
while((ch=getchar())!=‘\n’)
{ if(a%2!=0&&(ch>=‘a’&&ch<=‘z’))  ch=ch-‘a’+‘A’;
a++; putchar(ch);
}
printf(“\n”);
}
查看答案
1ABCeDf2Df
51填空题51 / 55
有以下程序,程序执行后,输出结果是【11】__。
#include <stdio.h>
void fun(int  *a)
{  a[0]=a[1];}
main()
{  int a[10]={10,9,8,7,6,5,4,3,2,1},i;
for(i=2;i>=0;i-- )fun(&a[i]);
for(i=0;i<10;i++) printf(“%d”,a[i]);
printf(“\n”);
}
查看答案
7777654321
52填空题52 / 55
请将下列程序中的函数声明语句补充完整。
#include <stdio.h>
int 【12】__;
main()
{ int x,y,(*p)();
scanf(“%d%d”,&x,&y);
p=max;
printf(“%d\n”,(*p)(x,y));
}
int max(int a,int b)
{  return(a>b?a:b);}
查看答案
max(int a,int b)
53填空题53 / 55
以下程序用来判断指定文件是否能正常打开,请填空。
#include <stdio.h>
main()
{  FILE *fp;
if(((fp=fopen(“test.txt”,“r”))== 【13】__))
printf(“未能打开文件!\n”);
else
printf(“文件打开成功!\n”);
}
查看答案
NULL
54填空题54 / 55
下列程序运行结果是【14】__。
#include <stdio.h>
#include <string.h>
struct A
(  int a;  char b[10];  double c;  );
void f(struct A  *t);
main()
{ struct A a={1001, “ZhangDa”,1098.0};
f(&a); printf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);
}
void f(struct A *t)
{strcpy(t->b,“ChangRong”);}
查看答案
1001,ChangRong,1098.0
55填空题55 / 55
以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据。请填空。
#include <stdio.h>
struct node
{  int data;struct node *next;};
typedef struct node NODETYPE;
main()
{ NODETYPE a,b,c,*h,*p;
a.data=10;b.data=20;c.data=30;h=&a;
a.next=&b;b.next=&c;c.next=‘\n’;
p=h;
while(p){printf(“%d,”,p->data); 【15】__;}
printf(“\n”);
}
查看答案
P++
← 上一卷下一卷 →